81 #ifndef __IGATEPROVIDER_H__
82 #define __IGATEPROVIDER_H__
86 #if defined (__cplusplus)
96 #define IGateProvider_NULL (IGateProvider_Handle)0xFFFFFFFF
105 #define IGateProvider_Q_BLOCKING 1
114 #define IGateProvider_Q_PREEMPTING 2
120 #define IGateProvider_SuperObject \
121 IGateProvider_ENTER enter; \
122 IGateProvider_LEAVE leave
128 #define IGateProvider_ObjectInitializer(x,y) \
129 ((IGateProvider_Handle)(x))->enter = (IGateProvider_ENTER)y##_enter; \
130 ((IGateProvider_Handle)(x))->leave = (IGateProvider_LEAVE)y##_leave;
179 static inline IArg IGateProvider_enter (IGateProvider_Handle handle)
185 key = (handle->
enter) ((
void *)handle);
207 static inline Void IGateProvider_leave (IGateProvider_Handle handle,
IArg key)
211 (handle->
leave) ((
void *)handle, key);
215 #if defined (__cplusplus)