<!--
{
  "documentType" : "article",
  "framework" : "DriverKit",
  "identifier" : "/documentation/DriverKit/driverkit-functions",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "DriverKit Functions"
}
-->

# DriverKit Functions

## Topics

### Functions

[`static queue_entry_tdequeue_head(queue_t que);`](/documentation/DriverKit/dequeue_head)

[`static queue_entry_tdequeue_tail(queue_t que);`](/documentation/DriverKit/dequeue_tail)

[`static void enqueue_head(queue_t que, queue_entry_t elt);`](/documentation/DriverKit/enqueue_head)

[`static void enqueue_tail(queue_t que, queue_entry_t elt);`](/documentation/DriverKit/enqueue_tail)

[`static IOHistogramReporter_IVars *get_IOHistogramReporter_IVars(IOHistogramReporter_IVars *p);`](/documentation/DriverKit/get_IOHistogramReporter_IVars-4lwpg)

[`static IOHistogramReporter_IVars *get_IOHistogramReporter_IVars(IOHistogramReporter *p);`](/documentation/DriverKit/get_IOHistogramReporter_IVars-5lkdv)

[`static IOReporter_IVars *get_IOReporter_IVars(IOReporter_IVars *p);`](/documentation/DriverKit/get_IOReporter_IVars-6q8vt)

[`static IOReporter_IVars *get_IOReporter_IVars(IOReporter *p);`](/documentation/DriverKit/get_IOReporter_IVars-89ntc)

[`static IOStateReporter_IVars *get_IOStateReporter_IVars(IOStateReporter_IVars *p);`](/documentation/DriverKit/get_IOStateReporter_IVars-3g28i)

[`static IOStateReporter_IVars *get_IOStateReporter_IVars(IOStateReporter *p);`](/documentation/DriverKit/get_IOStateReporter_IVars-56435)

[`static void insque(queue_entry_t entry, queue_entry_t pred);`](/documentation/DriverKit/insque)

[`void IOCallOnce(struct IOCallOnceFlag *flag, IOCallOnceBlock block);`](/documentation/DriverKit/IOCallOnce)

[`struct IOLock *IOLockAlloc();`](/documentation/DriverKit/IOLockAlloc)

[`void IOLockAssert(struct IOLock *lock, IOLockAssertState type);`](/documentation/DriverKit/IOLockAssert)

[`void IOLockFree(struct IOLock *lock);`](/documentation/DriverKit/IOLockFree)

[`void IOLockLock(struct IOLock *lock);`](/documentation/DriverKit/IOLockLock)

[`bool IOLockTryLock(struct IOLock *lock);`](/documentation/DriverKit/IOLockTryLock)

[`void IOLockUnlock(struct IOLock *lock);`](/documentation/DriverKit/IOLockUnlock)

[`int IOLog(const char *format, ...);`](/documentation/DriverKit/IOLog)

[`int IOLogv(const char *format, va_list ap);`](/documentation/DriverKit/IOLogv)

[`void *IOMallocTyped(size_t length, malloc_type_id_t type_id);`](/documentation/DriverKit/IOMallocTyped)

[`void *IOMallocZeroTyped(size_t length, malloc_type_id_t type_id);`](/documentation/DriverKit/IOMallocZeroTyped)

[`struct IORecursiveConditionLock *IORecursiveConditionLockAlloc();`](/documentation/DriverKit/IORecursiveConditionLockAlloc)

[`void IORecursiveConditionLockFree(struct IORecursiveConditionLock *lock);`](/documentation/DriverKit/IORecursiveConditionLockFree)

[`bool IORecursiveConditionLockHaveLock(struct IORecursiveConditionLock *lock);`](/documentation/DriverKit/IORecursiveConditionLockHaveLock)

[`void IORecursiveConditionLockLock(struct IORecursiveConditionLock *lock);`](/documentation/DriverKit/IORecursiveConditionLockLock)

[`bool IORecursiveConditionLockTryLock(struct IORecursiveConditionLock *lock);`](/documentation/DriverKit/IORecursiveConditionLockTryLock)

[`void IORecursiveConditionLockUnlock(struct IORecursiveConditionLock *lock);`](/documentation/DriverKit/IORecursiveConditionLockUnlock)

[`struct IORecursiveLock *IORecursiveLockAlloc();`](/documentation/DriverKit/IORecursiveLockAlloc)

[`void IORecursiveLockFree(struct IORecursiveLock *lock);`](/documentation/DriverKit/IORecursiveLockFree)

[`bool IORecursiveLockHaveLock(struct IORecursiveLock *lock);`](/documentation/DriverKit/IORecursiveLockHaveLock)

[`void IORecursiveLockLock(struct IORecursiveLock *lock);`](/documentation/DriverKit/IORecursiveLockLock)

[`bool IORecursiveLockTryLock(struct IORecursiveLock *lock);`](/documentation/DriverKit/IORecursiveLockTryLock)

[`void IORecursiveLockUnlock(struct IORecursiveLock *lock);`](/documentation/DriverKit/IORecursiveLockUnlock)

[`struct IORWLock *IORWLockAlloc();`](/documentation/DriverKit/IORWLockAlloc)

[`void IORWLockFree(struct IORWLock *lock);`](/documentation/DriverKit/IORWLockFree)

[`void IORWLockRead(struct IORWLock *lock);`](/documentation/DriverKit/IORWLockRead)

[`void IORWLockUnlock(struct IORWLock *lock);`](/documentation/DriverKit/IORWLockUnlock)

[`void IORWLockWrite(struct IORWLock *lock);`](/documentation/DriverKit/IORWLockWrite)

[`void *IOThreadLocalStorageGet(uint64_t key);`](/documentation/DriverKit/IOThreadLocalStorageGet)

[`kern_return_t IOThreadLocalStorageKeyCreate(uint64_t *key);`](/documentation/DriverKit/IOThreadLocalStorageKeyCreate)

[`kern_return_t IOThreadLocalStorageKeyDelete(uint64_t key);`](/documentation/DriverKit/IOThreadLocalStorageKeyDelete)

[`kern_return_t IOThreadLocalStorageSet(uint64_t key, const void *value);`](/documentation/DriverKit/IOThreadLocalStorageSet)

[`static void movqueue(queue_t _old, queue_t _new);`](/documentation/DriverKit/movqueue)

[`void *operator new(size_t , void *) noexcept;`](/documentation/DriverKit/operator_new)

[`template <typename To, typename From> OSSharedPtr<To> OSConstPtrCast(OSSharedPtr<From> && ptr) noexcept;`](/documentation/DriverKit/OSConstPtrCast-4ob3v)

[`template <typename To, typename From> OSSharedPtr<To> OSConstPtrCast(const OSSharedPtr<From> & ptr) noexcept;`](/documentation/DriverKit/OSConstPtrCast-5xl80)

[`template <typename To, typename From> OSSharedPtr<To> OSStaticPtrCast(OSSharedPtr<From> && ptr) noexcept;`](/documentation/DriverKit/OSStaticPtrCast-45klz)

[`template <typename To, typename From> OSSharedPtr<To> OSStaticPtrCast(const OSSharedPtr<From> & ptr) noexcept;`](/documentation/DriverKit/OSStaticPtrCast-7od5p)

[`extern void panic(const char *string, ...);`](/documentation/DriverKit/panic)

[`static void re_queue_head(queue_t que, queue_entry_t elt);`](/documentation/DriverKit/re_queue_head)

[`static void re_queue_tail(queue_t que, queue_entry_t elt);`](/documentation/DriverKit/re_queue_tail)

[`void read_random(void *buffer, size_t numBytes);`](/documentation/DriverKit/read_random)

[`static void remque(queue_entry_t elt);`](/documentation/DriverKit/remque)

[`static void remqueue(queue_entry_t elt);`](/documentation/DriverKit/remqueue)

[`constexpr void swap(OSSharedPtr<T> & a, OSSharedPtr<T> & b) noexcept;`](/documentation/DriverKit/swap)



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)