Mac OS 9
DriverSynchronization.h
Go to the documentation of this file.
1 
19 #ifndef __DRIVERSYNCHRONIZATION__
20 #define __DRIVERSYNCHRONIZATION__
21 
22 #ifndef __CONDITIONALMACROS__
23 #include <ConditionalMacros.h>
24 #endif
25 
26 #ifndef __MACTYPES__
27 #include <MacTypes.h>
28 #endif
29 
30 #if PRAGMA_ONCE
31 #pragma once
32 #endif
33 
34 #ifdef __cplusplus
35 extern "C"
36 {
37 #endif
38 
39 #if PRAGMA_IMPORT
40 #pragma import on
41 #endif
42 
43 #if PRAGMA_STRUCT_ALIGN
44 #pragma options align = mac68k
45 #elif PRAGMA_STRUCT_PACKPUSH
46 #pragma pack(push, 2)
47 #elif PRAGMA_STRUCT_PACK
48 #pragma pack(2)
49 #endif
50 
51 #if CALL_NOT_IN_CARBON
60  void
62 
63 #endif /* CALL_NOT_IN_CARBON */
64 
73  Boolean
74  CompareAndSwap(UInt32 oldVvalue, UInt32 newValue, UInt32 *OldValueAdr);
75 
84  Boolean
85  TestAndClear(UInt32 bit, UInt8 *startAddress);
86 
95  Boolean
96  TestAndSet(UInt32 bit, UInt8 *startAddress);
97 
106  SInt8
107  IncrementAtomic8(SInt8 *value);
108 
117  SInt8
118  DecrementAtomic8(SInt8 *value);
119 
128  SInt8
129  AddAtomic8(SInt32 amount, SInt8 *value);
130 
139  UInt8
140  BitAndAtomic8(UInt32 mask, UInt8 *value);
141 
150  UInt8
151  BitOrAtomic8(UInt32 mask, UInt8 *value);
152 
161  UInt8
162  BitXorAtomic8(UInt32 mask, UInt8 *value);
163 
172  SInt16
173  IncrementAtomic16(SInt16 *value);
174 
183  SInt16
184  DecrementAtomic16(SInt16 *value);
185 
194  SInt16
195  AddAtomic16(SInt32 amount, SInt16 *value);
196 
205  UInt16
206  BitAndAtomic16(UInt32 mask, UInt16 *value);
207 
216  UInt16
217  BitOrAtomic16(UInt32 mask, UInt16 *value);
218 
227  UInt16
228  BitXorAtomic16(UInt32 mask, UInt16 *value);
229 
238  SInt32
239  IncrementAtomic(SInt32 *value);
240 
249  SInt32
250  DecrementAtomic(SInt32 *value);
251 
260  SInt32
261  AddAtomic(SInt32 amount, SInt32 *value);
262 
271  UInt32
272  BitAndAtomic(UInt32 mask, UInt32 *value);
273 
282  UInt32
283  BitOrAtomic(UInt32 mask, UInt32 *value);
284 
293  UInt32
294  BitXorAtomic(UInt32 mask, UInt32 *value);
295 
296 #if PRAGMA_STRUCT_ALIGN
297 #pragma options align = reset
298 #elif PRAGMA_STRUCT_PACKPUSH
299 #pragma pack(pop)
300 #elif PRAGMA_STRUCT_PACK
301 #pragma pack()
302 #endif
303 
304 #ifdef PRAGMA_IMPORT_OFF
305 #pragma import off
306 #elif PRAGMA_IMPORT
307 #pragma import reset
308 #endif
309 
310 #ifdef __cplusplus
311 }
312 #endif
313 
314 #endif /* __DRIVERSYNCHRONIZATION__ */
Set up for compiler independent conditionals.
UInt32 BitXorAtomic(UInt32 mask, UInt32 *value)
SInt16 IncrementAtomic16(SInt16 *value)
Boolean CompareAndSwap(UInt32 oldVvalue, UInt32 newValue, UInt32 *OldValueAdr)
SInt32 AddAtomic(SInt32 amount, SInt32 *value)
void SynchronizeIO(void)
SInt8 DecrementAtomic8(SInt8 *value)
SInt32 DecrementAtomic(SInt32 *value)
SInt16 AddAtomic16(SInt32 amount, SInt16 *value)
SInt16 DecrementAtomic16(SInt16 *value)
Boolean TestAndClear(UInt32 bit, UInt8 *startAddress)
UInt16 BitAndAtomic16(UInt32 mask, UInt16 *value)
UInt8 BitAndAtomic8(UInt32 mask, UInt8 *value)
UInt16 BitXorAtomic16(UInt32 mask, UInt16 *value)
SInt32 IncrementAtomic(SInt32 *value)
UInt8 BitOrAtomic8(UInt32 mask, UInt8 *value)
SInt8 IncrementAtomic8(SInt8 *value)
UInt16 BitOrAtomic16(UInt32 mask, UInt16 *value)
SInt8 AddAtomic8(SInt32 amount, SInt8 *value)
UInt32 BitAndAtomic(UInt32 mask, UInt32 *value)
UInt32 BitOrAtomic(UInt32 mask, UInt32 *value)
UInt8 BitXorAtomic8(UInt32 mask, UInt8 *value)
Boolean TestAndSet(UInt32 bit, UInt8 *startAddress)
Basic Macintosh data types.
unsigned char Boolean
Definition: MacTypes.h:318