#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
#error meh!
#endif

GO(SmcClientID, pFp)
GO(SmcCloseConnection, iFpip)
GO(_SmcDefaultErrorHandler, vFpiiliip)
GO(SmcDeleteProperties, vFpip)
GO(SmcGetIceConnection, pFp)
//GOM(SmcGetProperties, iFEpBp)
GO(SmcInteractDone, iFpi)
GOM(SmcInteractRequest, iFEpipp)
//GOM(SmcModifyCallbacks, vFEpuB)
GOM(SmcOpenConnection, pFEppiiLpppip)
//GO(_SmcProcessMessage, 
GO(SmcProtocolRevision, iFp)
GO(SmcProtocolVersion, iFp)
GO(SmcRelease, pFp)
GO(SmcRequestSaveYourself, vFpiiiii)
GOM(SmcRequestSaveYourselfPhase2, iFEppp)
GO(SmcSaveYourselfDone, vFpi)
GOM(SmcSetErrorHandler, pFEp)
GO(SmcSetProperties, vFpip)
GO(SmcVendor, pFp)
GO(SmFreeProperty, vFp)
GO(SmFreeReasons, vFpp)
GO(SmsCleanUp, vFp)
GO(SmsClientHostName, pFp)
GO(SmsClientID, pFp)
GO(_SmsDefaultErrorHandler, vFpiiliip)
GO(SmsDie, vFp)
GO(SmsGenerateClientID, pFp)
GO(SmsGetIceConnection, pFp)
//GOM(SmsInitialize, iFppBpBip)
GO(SmsInteract, vFp)
//GO(_SmsProcessMessage, 
GO(SmsProtocolRevision, iFp)
GO(SmsProtocolVersion, iFp)
GO(SmsRegisterClientReply, iFpp)
GO(SmsReturnProperties, vFpip)
GO(SmsSaveComplete, vFp)
GO(SmsSaveYourself, vFpiiii)
GO(SmsSaveYourselfPhase2, vFp)
//GOM(SmsSetErrorHandler, BFEB)
GO(SmsShutdownCancelled, vFp)

GO(dummy_vFpiiLiip, vFpiiLiip) // for error handler