---
title: OSData
framework: kernel
role: symbol
role_heading: Class
path: kernel/osdata
---

# OSData

OSData wraps an array of bytes in a C++ object for use in Libkern collections.

## Declaration

```occ
class OSData : OSObject
```

## Overview

Overview OSData represents an array of bytes as a Libkern C++ object. OSData objects are mutable: You can add bytes to them and overwrite portions of the byte array. Use Restrictions With very few exceptions in the I/O Kit, all Libkern-based C++ classes, functions, and macros are unsafe to use in a primary interrupt context. Consult the I/O Kit documentation related to primary interrupts for more information. OSData provides no concurrency protection; it's up to the usage context to provide any protection necessary. Some portions of the I/O Kit, such as IORegistryEntry, handle synchronization via defined member functions for setting properties.

## Topics

### Miscellaneous

- [appendByte](kernel/osdata/1808052-appendbyte.md)
- [appendBytes(const OSData *)](kernel/osdata/1808058-appendbytes.md)
- [appendBytes(const void *, unsigned int)](kernel/osdata/1808067-appendbytes.md)
- [ensureCapacity](kernel/osdata/1808072-ensurecapacity.md)
- [free](kernel/osdata/1808080-free.md)
- [getBytesNoCopy()](kernel/osdata/1808085-getbytesnocopy.md)
- [getBytesNoCopy(unsigned int, unsigned int)](kernel/osdata/1808094-getbytesnocopy.md)
- [getCapacity](kernel/osdata/1808100-getcapacity.md)
- [getCapacityIncrement](kernel/osdata/1808106-getcapacityincrement.md)
- [getLength](kernel/osdata/1808111-getlength.md)
- [initWithBytes](kernel/osdata/1808118-initwithbytes.md)
- [initWithBytesNoCopy](kernel/osdata/1808127-initwithbytesnocopy.md)
- [initWithCapacity](kernel/osdata/1808134-initwithcapacity.md)
- [initWithData(const OSData *)](kernel/osdata/1808141-initwithdata.md)
- [initWithData(const OSData *, unsigned int, unsigned int)](kernel/osdata/1808150-initwithdata.md)
- [isEqualTo(const OSData *)](kernel/osdata/1808160-isequalto.md)
- [isEqualTo(const OSMetaClassBase *)](kernel/osdata/1808165-isequalto.md)
- [isEqualTo(const OSString *)](kernel/osdata/1808172-isequalto.md)
- [isEqualTo(const void *, unsigned int)](kernel/osdata/1808178-isequalto.md)
- [serialize](kernel/osdata/1808185-serialize.md)
- [setCapacityIncrement](kernel/osdata/1808190-setcapacityincrement.md)
- [withBytes](kernel/osdata/1808195-withbytes.md)
- [withBytesNoCopy](kernel/osdata/1808197-withbytesnocopy.md)
- [withCapacity](kernel/osdata/1808204-withcapacity.md)
- [withData(const OSData *)](kernel/osdata/1808208-withdata.md)
- [withData(const OSData *, unsigned int, unsigned int)](kernel/osdata/1808211-withdata.md)

### Instance Methods

- [appendByte](kernel/osdata/1387997-appendbyte.md)
- [appendBytes](kernel/osdata/1388036-appendbytes.md)
- [appendBytes](driverkit/osdata/appendbytes-38hs5.md)
- [ensureCapacity](kernel/osdata/1387999-ensurecapacity.md)
- [free](driverkit/osdata/free.md)
- [getBytesNoCopy](driverkit/osdata/getbytesnocopy-91vcg.md)
- [getBytesNoCopy](driverkit/osdata/getbytesnocopy-53puz.md)
- [getCapacity](driverkit/osdata/getcapacity.md)
- [getCapacityIncrement](kernel/osdata/1388014-getcapacityincrement.md)
- [getLength](driverkit/osdata/getlength.md)
- [getMetaClass](kernel/osdata/1388028-getmetaclass.md)
- [initWithBytes](kernel/osdata/1388002-initwithbytes.md)
- [initWithBytesNoCopy](kernel/osdata/1388020-initwithbytesnocopy.md)
- [initWithCapacity](kernel/osdata/1388008-initwithcapacity.md)
- [initWithData](kernel/osdata/1388030-initwithdata.md)
- [initWithData](kernel/osdata/3516834-initwithdata.md)
- [isEqualTo](driverkit/osdata/isequalto-2kdml.md)
- [isEqualTo](driverkit/osdata/isequalto-5ssf5.md)
- [isEqualTo](driverkit/osdata/isequalto-79gqy.md)
- [isEqualTo](driverkit/osdata/isequalto-4xz0j.md)
- [isSerializable](kernel/osdata/2721392-isserializable.md)
- [serialize](kernel/osdata/1388032-serialize.md)
- [setCapacityIncrement](kernel/osdata/1388004-setcapacityincrement.md)
- [setDeallocFunction](kernel/osdata/1388022-setdeallocfunction.md)
- [setSerializable](kernel/osdata/1388038-setserializable.md)

### Type Methods

- [withBytes](kernel/osdata/1388001-withbytes.md)
- [withBytesNoCopy](kernel/osdata/1388010-withbytesnocopy.md)
- [withCapacity](driverkit/osdata/withcapacity.md)
- [withData](driverkit/osdata/withdata-9y3g.md)
- [withData](driverkit/osdata/withdata-4rd8n.md)

## Relationships

### Inherits From

- [OSObject](kernel/osobject.md)

## See Also

### Simple Types

- [OSBoolean](kernel/osboolean.md)
- [OSString](kernel/osstring.md)
- [OSNumber](kernel/osnumber.md)
