---
title: IOPacketQueue
framework: kernel
role: symbol
role_heading: Class
path: kernel/iopacketqueue
---

# IOPacketQueue

Implements a bounded FIFO queue of mbuf packets.

## Declaration

```occ
class IOPacketQueue : OSObject
```

## Overview

Overview Packets are removed from the head of the queue (dequeue), and new packets are added to the tail of the queue (enqueue). A spinlock is used to synchronize access to the queue between methods that have a "lock" prefix.

## Topics

### Miscellaneous

- [dequeue](kernel/iopacketqueue/1810464-dequeue.md)
- [dequeueAll](kernel/iopacketqueue/1810493-dequeueall.md)
- [enqueue(IOPacketQueue *)](kernel/iopacketqueue/1810512-enqueue.md)
- [enqueue(mbuf_t)](kernel/iopacketqueue/1810538-enqueue.md)
- [enqueueWithDrop](kernel/iopacketqueue/1810567-enqueuewithdrop.md)
- [flush](kernel/iopacketqueue/1810584-flush.md)
- [free](kernel/iopacketqueue/1810608-free.md)
- [getCapacity](kernel/iopacketqueue/1810646-getcapacity.md)
- [getSize](kernel/iopacketqueue/1810665-getsize.md)
- [initWithCapacity](kernel/iopacketqueue/1810679-initwithcapacity.md)
- [lockDequeue](kernel/iopacketqueue/1810698-lockdequeue.md)
- [lockDequeueAll](kernel/iopacketqueue/1810717-lockdequeueall.md)
- [lockEnqueue](kernel/iopacketqueue/1810734-lockenqueue.md)
- [lockEnqueueWithDrop](kernel/iopacketqueue/1810758-lockenqueuewithdrop.md)
- [lockFlush](kernel/iopacketqueue/1810785-lockflush.md)
- [lockPrepend](kernel/iopacketqueue/1810813-lockprepend.md)
- [peek](kernel/iopacketqueue/1810837-peek.md)
- [prepend(IOPacketQueue *)](kernel/iopacketqueue/1810853-prepend.md)
- [prepend(mbuf_t)](kernel/iopacketqueue/1810881-prepend.md)
- [setCapacity](kernel/iopacketqueue/1810899-setcapacity.md)
- [withCapacity](kernel/iopacketqueue/1810920-withcapacity.md)

### Constants

- [IOPacketQueueDefaultCapacity](kernel/iopacketqueue/iopacketqueuedefaultcapacity.md)

### Instance Variables

- [_reserved](kernel/iopacketqueue/reserved.md)

### Instance Methods

- [dequeue](kernel/iopacketqueue/1526779-dequeue.md)
- [dequeueAll](kernel/iopacketqueue/1526777-dequeueall.md)
- [enqueue](kernel/iopacketqueue/1526775-enqueue.md)
- [enqueue](kernel/iopacketqueue/3516617-enqueue.md)
- [enqueueWithDrop](kernel/iopacketqueue/1526759-enqueuewithdrop.md)
- [flush](kernel/iopacketqueue/1526772-flush.md)
- [free](kernel/iopacketqueue/1526773-free.md)
- [getCapacity](kernel/iopacketqueue/1526767-getcapacity.md)
- [getMetaClass](kernel/iopacketqueue/1526784-getmetaclass.md)
- [getSize](kernel/iopacketqueue/1526760-getsize.md)
- [initWithCapacity](kernel/iopacketqueue/1526781-initwithcapacity.md)
- [lockDequeue](kernel/iopacketqueue/1526764-lockdequeue.md)
- [lockDequeueAll](kernel/iopacketqueue/1526757-lockdequeueall.md)
- [lockEnqueue](kernel/iopacketqueue/1526762-lockenqueue.md)
- [lockEnqueueWithDrop](kernel/iopacketqueue/1526765-lockenqueuewithdrop.md)
- [lockFlush](kernel/iopacketqueue/1526776-lockflush.md)
- [lockPrepend](kernel/iopacketqueue/1526755-lockprepend.md)
- [peek](kernel/iopacketqueue/1526771-peek.md)
- [prepend](kernel/iopacketqueue/1526770-prepend.md)
- [prepend](kernel/iopacketqueue/3516618-prepend.md)
- [setCapacity](kernel/iopacketqueue/1526786-setcapacity.md)

### Type Methods

- [withCapacity](kernel/iopacketqueue/1526783-withcapacity.md)

## Relationships

### Inherits From

- [OSObject](kernel/osobject.md)

## See Also

### Network Data

- [IONetworkData](kernel/ionetworkdata.md)
- [IONetworkMedium](kernel/ionetworkmedium.md)
- [IOPacketBufferConstraints](kernel/iopacketbufferconstraints.md)
