IOBigMemoryCursor
IOMemoryCursor разделяет на подклассы, это выводит вектор PhysicalSegments в обратном порядке байтов.
Когда аппаратные средства DMA требуют адреса с обратным порядком байтов и пары длины, IOBigMemoryCursor использовался бы. Этот курсор выводит массив PhysicalSegments, кодирующихся в формате с обратным порядком байтов.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
Objective C
@import Kernel;
Доступность
Доступный в OS X v10.0 и позже.
-
Генерирует медосмотр с обратным порядком байтов, рассеиваются/собирают список, данный дескриптор памяти.
Объявление
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.
-
Основной инициализатор для класса IOBigMemoryCursor.
Объявление
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
Индекс для вывода 'сегмента' в массиве 'сегментов'.
-
Создает и инициализирует IOBigMemoryCursor в одной работе.
Объявление
C++
static IOBigMemoryCursor * withSpecification( IOPhysicalLength
maxSegmentSize
, IOPhysicalLengthmaxTransferSize
, IOPhysicalLength alignment = 1);Параметры
maxSegmentSize
Максимальный допустимый размер для одного сегмента. Значения по умолчанию к 0.
maxTransferSize
Максимальный размер всей передачи. Значения по умолчанию к 0 указаниям никакого максимума.
alignment
Ограничения выравнивания на выходные физические адреса. Не в настоящее время реализовываемый. Значения по умолчанию к единственному выравниванию байта.
Возвращаемое значение
Возвращает новый курсор памяти, если успешно создается и инициализировано, 0 иначе.
Обсуждение
Функция фабрики, чтобы создать и инициализировать IOBigMemoryCursor в одной работе. См. также IOBigMemoryCursor:: initWithSpecification.