---
title: C++ Runtime Support
framework: driverkit
role: collectionGroup
role_heading: API Collection
path: driverkit/c-runtime-support
---

# C++ Runtime Support

Examine low-level types that DriverKit uses to support kernel-level operations.

## Topics

### Object Support

- [OSObjectAllocate](driverkit/osobjectallocate.md)
- [OSObjectRetain](driverkit/osobjectretain.md)
- [OSObjectRelease](driverkit/osobjectrelease.md)

### Additional Types

- [IOReturn](driverkit/ioreturn.md)
- [IOOptionBits](driverkit/iooptionbits.md)
- [integer_t](driverkit/integer_t.md)
- [natural_t](driverkit/natural_t.md)
- [kern_return_t](driverkit/kern_return_t.md)
- [IOItemCount](driverkit/ioitemcount.md)
- [IOVersion](driverkit/ioversion.md)

### Log Support

- [OSObjectLog](driverkit/osobjectlog.md)
- [IOLogBuffer](driverkit/iologbuffer.md)
- [crc32](driverkit/crc32.md)

### Base Classes

- [OSMetaClass](driverkit/osmetaclass.md)
- [OSMetaClassBase](driverkit/osmetaclassbase.md)

### RPC Support

- [IORPC](driverkit/iorpc.md)
- [IORPCMessage](driverkit/iorpcmessage.md)
- [IORPCMessageMach](driverkit/iorpcmessagemach.md)
- [IORPCMessageErrorReturn](driverkit/iorpcmessageerrorreturn.md)
- [OSClassLoadInformation](driverkit/osclassloadinformation.md)
- [OSClassDescription](driverkit/osclassdescription.md)
- [OSDispatchMethod](driverkit/osdispatchmethod.md)
- [RPC Message ID](driverkit/3222959-rpc_message_id.md)
- [RPC Message Types](driverkit/3222960-rpc_message_types.md)
- [RPC Capabilities](driverkit/3222961-rpc_capabilities.md)
- [RPC Version](driverkit/3353062-rpc_version.md)
- [IORPCMessageFromMach](driverkit/iorpcmessagefrommach.md)

### Mach Ports

- [mach_port_name_t](driverkit/mach_port_name_t.md)
- [mach_port_t](driverkit/mach_port_t.md)

### Mach Timebase

- [mach_absolute_time](driverkit/mach_absolute_time.md)
- [mach_continuous_time](driverkit/mach_continuous_time.md)
- [mach_timebase_info](driverkit/mach_timebase_info-c.func.md)
- [mach_timebase_info_t](driverkit/mach_timebase_info_t.md)
- [Time Scales](driverkit/3223112-time_scales.md)

### Mach Messages

- [mach_msg_bits_t](driverkit/mach_msg_bits_t.md)
- [mach_msg_copy_options_t](driverkit/mach_msg_copy_options_t.md)
- [mach_msg_descriptor_type_t](driverkit/mach_msg_descriptor_type_t.md)
- [mach_msg_id_t](driverkit/mach_msg_id_t.md)
- [mach_msg_size_t](driverkit/mach_msg_size_t.md)
- [mach_msg_type_name_t](driverkit/mach_msg_type_name_t.md)
- [mach_msg_body_t](driverkit/mach_msg_body_t.md)
- [mach_msg_header_t](driverkit/mach_msg_header_t.md)
- [mach_msg_max_trailer_t](driverkit/mach_msg_max_trailer_t.md)
- [mach_msg_ool_descriptor_t](driverkit/mach_msg_ool_descriptor_t.md)
- [mach_msg_port_descriptor_t](driverkit/mach_msg_port_descriptor_t.md)
- [mach_timebase_info_data_t](driverkit/mach_timebase_info_data_t.md)

### Boot Support

- [IOParseBootArgNumber](driverkit/ioparsebootargnumber.md)
- [IOParseBootArgString](driverkit/ioparsebootargstring.md)

### Thread Utilities

- [IODelay](driverkit/iodelay.md)
- [IOSleep](driverkit/iosleep.md)

### Additional Utilities

- [OSReportWithBacktrace](driverkit/osreportwithbacktrace.md)
- [OSSynchronizeIO](driverkit/ossynchronizeio.md)

## See Also

### Runtime support

- [OSDynamicCast](driverkit/osdynamiccast.md)
- [OSRequiredCast](driverkit/osrequiredcast.md)
- [IMPL](driverkit/impl.md)
- [TYPE](driverkit/type.md)
- [QUEUENAME](driverkit/queuename.md)
- [SUPERDISPATCH](driverkit/superdispatch.md)
- [IIG_KERNEL](driverkit/iig_kernel.md)
- [LOCAL](driverkit/local.md)
- [LOCALONLY](driverkit/localonly.md)
- [Error Codes](driverkit/error-codes.md)
