writeBytes

Copy data to the memory descriptor's buffer from the specified buffer.

Declaration

virtual IOByteCount writeBytes(
 IOByteCountoffset, 
 const void *bytes,
 IOByteCountwithLength); 

Parameters

offset

A byte offset into the memory descriptor's memory.

bytes

The caller supplied buffer to copy the data from.

withLength

The length of the data to copy.

Return Value

The number of bytes copied, zero will be returned if the specified offset is beyond the length of the descriptor. Development/debug kernel builds will assert if the offset is beyond the length of the descriptor.

Overview

This method copies data to the memory descriptor's memory at the given offset, from the caller's buffer. The memory descriptor MUST have the kIODirectionIn direcction bit set and be prepared. kIODirectionIn means that this memory descriptor will be input from an external device, so writeBytes is used to write memory into the descriptor for PIO drivers.

See Also

Miscellaneous

- complete

Complete processing of the memory after an I/O transfer finishes.

- createMappingInTask

Maps a IOMemoryDescriptor into a task.

- getDirection

Accessor to get the direction the memory descriptor was created with.

- getLength

Accessor to get the length of the memory descriptor (over all its ranges).

- getPageCounts

Retrieve the number of resident and/or dirty pages encompassed by an IOMemoryDescriptor.

- getPhysicalAddress

Return the physical address of the first byte in the memory.

- getPhysicalSegment

Break a memory descriptor into its physically contiguous segments.

- getTag

Accessor to the retrieve the tag for the memory descriptor.

- initWithOptions

Master initialiser for all variants of memory descriptors. For a more complete description see IOMemoryDescriptor::withOptions.

- map

Maps a IOMemoryDescriptor into the kernel map.

- performOperation

Perform an operation on the memory descriptor's memory.

- prepare

Prepare the memory for an I/O transfer.

- readBytes

Copy data from the memory descriptor's buffer to the specified buffer.

- setMapping

Establishes an already existing mapping.

- setPurgeable

Control the purgeable status of a memory descriptors memory.

- setTag

Set the tag for the memory descriptor.

- withAddress

Create an IOMemoryDescriptor to describe one virtual range of the kernel task.

- withAddressRange

Create an IOMemoryDescriptor to describe one virtual range of the specified map.

- withAddressRanges

Create an IOMemoryDescriptor to describe one or more virtual ranges.

- withOptions

Master initialiser for all variants of memory descriptors.

- withPersistentMemoryDescriptor

Copy constructor that generates a new memory descriptor if the backing memory for the same task's virtual address and length has changed.

- withPhysicalAddress

Create an IOMemoryDescriptor to describe one physical range.