#ifndef OS_OSBASE_H
#define OS_OSBASE_H

#include <sys/cdefs.h>

#include <libkern/OSTypes.h>

#include <stdint.h>

/*OSIncrementAtomic


32-bit increment operation, performed atomically with respect to all devices that participate in the coherency architecture of the platform. 
extern SInt32 OSIncrementAtomic(
    SInt32 *address);  
Parameters
address
The 4-byte aligned address of the value to update atomically.
Return Value

Returns the value before the increment. 
Discussion 

The OSIncrementAtomic function increments the value at the specified address by one and returns the value as it was before the change. 

This function guarantees atomicity only with main system memory. It is specifically unsuitable for use on noncacheable memory such as that in devices; this function cannot guarantee atomicity, for example, on memory mapped from a PCI device.*/
extern SInt32 OSIncrementAtomic(
    SInt32 *address);  

#endif