IONaturalMemoryCursor
IOMemoryCursor разделяет на подклассы, это выводит вектор PhysicalSegments в естественной ориентации байта для CPU.
IONaturalMemoryCursor использовался бы, когда слишком трудно безопасно описать SegmentFunction, который является более подходящим для Ваших аппаратных средств. Этот курсор просто выводит массив PhysicalSegments.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
Objective C
@import Kernel;
Доступность
Доступный в OS X v10.0 и позже.
-
Генерирует CPU, естественный медосмотр рассеивается/собирает список, данный дескриптор памяти.
Объявление
C++
virtual UInt32 getPhysicalSegments( IOMemoryDescriptor *
descriptor
, IOByteCountfromPosition
, PhysicalSegment *segments
, UInt32maxSegments
, UInt32 inMaxTransferSize = 0, IOByteCount *transferSize = 0)Параметры
descriptor
IOMemoryDescriptor, описывающий данные, связанные с запросом I/O.
fromPosition
Стартовое расположение I/O в дескрипторе памяти.
segments
Указатель на массив IOMemoryCursor:: PhysicalSegments для физического вывода рассеиваются/собирают список.
maxSegments
Максимальное количество сегментов, которые могут быть записаны в массив сегментов.
inMaxTransferSize
Максимальный размер передачи ограничивается этим много байтов, иначе он принимает значение по умолчанию к максимальному размеру передачи, указанному, когда был инициализирован курсор памяти.
transferSize
Указатель на переменную IOByteCount, которая может содержать общий размер описываемой передачи. Значения по умолчанию к 0 указаниям, что никакой размер передачи не должен быть возвращенным.
Возвращаемое значение
Если дескриптор исчерпывается памяти, нуль возвращается, иначе число сегментов, которые были заполнены в, возвращается.
Обсуждение
Генерирует список физических сегментов от данного дескриптора памяти, относительно текущей позиции дескриптора. Обертки IOMemoryCursor:: genPhysicalSegments.
-
Основной инициализатор для класса IONaturalMemoryCursor.
Объявление
C++
virtual bool initWithSpecification( IOPhysicalLength
maxSegmentSize
, IOPhysicalLengthmaxTransferSize
, IOPhysicalLength alignment = 1);Параметры
maxSegmentSize
Максимальный допустимый размер для одного сегмента. Значения по умолчанию к 0.
maxTransferSize
Максимальный размер всей передачи. Значения по умолчанию к 0 указаниям никакого максимума.
alignment
Ограничения выравнивания на выходные физические адреса. Не в настоящее время реализовываемый. Значения по умолчанию к единственному выравниванию байта.
Возвращаемое значение
Если наследованные классы и этот экземпляр инициализируют успешно, возвращает true.
-
Выводит данный сегмент в выходной массив сегментов в естественном порядке байтов.
Объявление
C++
static void outputSegment( PhysicalSegment
segment
, void *segments
, UInt32segmentIndex
);Параметры
segment
Физический адрес и длина, которая является рядом с быть выведенной.
segments
Основа выходного вектора DMA адресует пар длины.
segmentIndex
Индекс для вывода 'сегмента' в массиве 'сегментов'.
-
Создает и инициализирует IONaturalMemoryCursor в одной работе.
Объявление
C++
static IONaturalMemoryCursor * withSpecification( IOPhysicalLength
maxSegmentSize
, IOPhysicalLengthmaxTransferSize
, IOPhysicalLength alignment = 1);Параметры
maxSegmentSize
Максимальный допустимый размер для одного сегмента. Значения по умолчанию к 0.
maxTransferSize
Максимальный размер всей передачи. Значения по умолчанию к 0 указаниям никакого максимума.
alignment
Ограничения выравнивания на выходные физические адреса. Не в настоящее время реализовываемый. Значения по умолчанию к единственному выравниванию байта.
Возвращаемое значение
Возвращает новый курсор памяти, если успешно создается и инициализировано, 0 иначе.
Обсуждение
Функция фабрики, чтобы создать и инициализировать IONaturalMemoryCursor в одной работе. Для получения дополнительной информации посмотрите IONaturalMemoryCursor:: initWithSpecification.
Объявление
CPlusPlus
#define naturalOutputSegment IONaturalMemoryCursor::outputSegment