PointerType
template<typename PointerType> PointerType*
atomic_pointer_test_and_set(PointerType** _pointer, const PointerType* set,
const PointerType* test)
return (PointerType*)atomic_test_and_set((int32*)_pointer, (int32)set,
return (PointerType*)atomic_test_and_set64((int64*)_pointer, (int64)set,
template<typename PointerType> PointerType*
atomic_pointer_get_and_set(PointerType** _pointer, const PointerType* set)
return (PointerType*)atomic_get_and_set((int32*)_pointer, (int32)set);
return (PointerType*)atomic_get_and_set64((int64*)_pointer, (int64)set);
template<typename PointerType> void
atomic_pointer_set(PointerType** _pointer, const PointerType* set)
ASSERT((addr_t(_pointer) & (sizeof(PointerType*) - 1)) == 0);
template<typename PointerType> PointerType*
atomic_pointer_get(PointerType* const* _pointer)
ASSERT((addr_t(_pointer) & (sizeof(PointerType*) - 1)) == 0);
return (PointerType*)atomic_get((int32*)_pointer);
return (PointerType*)atomic_get64((int64*)_pointer);
fArray = new PointerType[size];
template<typename PointerType>
/ sizeof(PointerType);
PointerType* pointer = (PointerType*)((uint8*)acpiSdt
template<typename PointerType>
/ sizeof(PointerType);
PointerType* pointer = (PointerType*)((uint8*)acpiSdt