---
title: IOGatedOutputQueue
framework: kernel
role: symbol
role_heading: Class
path: kernel/iogatedoutputqueue
---

# IOGatedOutputQueue

An extension of an IOBasicOutputQueue.

## Declaration

```occ
class IOGatedOutputQueue : IOBasicOutputQueue
```

## Overview

Overview An IOCommandGate object is created by this queue and added to a work loop as an event source. All calls to the target by the consumer thread must occur with the gate closed. Therefore, all calls to the target of this type of queue will be serialized with any other thread that runs on the same work loop context. This is useful for network drivers that have a tight hardware coupling between the transmit and receive engines, and a single-threaded hardware access model is desirable.

## Topics

### Miscellaneous

- [free](kernel/iogatedoutputqueue/1812925-free.md)
- [init](kernel/iogatedoutputqueue/1812930-init.md)
- [output(IOMbufQueue *, UInt32 *)](kernel/iogatedoutputqueue/1812936-output.md)
- [output(void *)](kernel/iogatedoutputqueue/1812941-output.md)
- [scheduleServiceThread](kernel/iogatedoutputqueue/1812945-scheduleservicethread.md)
- [withTarget(IONetworkController *, IOWorkLoop *, UInt32)](kernel/iogatedoutputqueue/1812948-withtarget.md)
- [withTarget(IONetworkController *, IOWorkLoop *, UInt32, UInt32)](kernel/iogatedoutputqueue/1812950-withtarget.md)
- [withTarget(OSObject *, IOOutputAction, IOWorkLoop *, UInt32)](kernel/iogatedoutputqueue/1812954-withtarget.md)
- [withTarget(OSObject *, IOOutputAction, IOWorkLoop *, UInt32, UInt32)](kernel/iogatedoutputqueue/1812957-withtarget.md)

### Instance Methods

- [free](kernel/iogatedoutputqueue/1485485-free.md)
- [getMetaClass](kernel/iogatedoutputqueue/1485479-getmetaclass.md)
- [output](kernel/iogatedoutputqueue/1485495-output.md)
- [scheduleServiceThread](kernel/iogatedoutputqueue/1485488-scheduleservicethread.md)

### Type Methods

- [gatedOutput](kernel/iogatedoutputqueue/1485502-gatedoutput.md)
- [restartDeferredOutput](kernel/iogatedoutputqueue/1485498-restartdeferredoutput.md)
- [withTarget](kernel/iogatedoutputqueue/1485491-withtarget.md)
- [withTarget](kernel/iogatedoutputqueue/3516609-withtarget.md)

## Relationships

### Inherits From

- [IOBasicOutputQueue](kernel/iobasicoutputqueue.md)

## See Also

### Output Queues

- [IOBasicOutputQueue](kernel/iobasicoutputqueue.md)
- [IOOutputQueue](kernel/iooutputqueue.md)
