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)Параметры
descriptorIOMemoryDescriptor, описывающий данные, связанные с запросом I/O.
fromPositionСтартовое расположение I/O в дескрипторе памяти.
segmentsУказатель на массив IOMemoryCursor:: PhysicalSegments для физического вывода рассеиваются/собирают список.
maxSegmentsМаксимальное количество сегментов, которые могут быть записаны в массив сегментов.
inMaxTransferSizeМаксимальный размер передачи ограничивается этим много байтов, иначе он принимает значение по умолчанию к максимальному размеру передачи, указанному, когда был инициализирован курсор памяти.
transferSizeУказатель на переменную IOByteCount, которая может содержать общий размер описываемой передачи. Значения по умолчанию к 0 указаниям, что никакой размер передачи не должен быть возвращенным.
Возвращаемое значение
Если дескриптор исчерпывается памяти, нуль возвращается, иначе число сегментов, которые были заполнены в, возвращается.
Обсуждение
Генерирует список физических сегментов от данного дескриптора памяти, относительно текущей позиции дескриптора. Обертки IOMemoryCursor:: genPhysicalSegments.
-
Основной инициализатор для класса IOBigMemoryCursor.
Объявление
C++
virtual bool initWithSpecification( IOPhysicalLengthmaxSegmentSize, IOPhysicalLengthmaxTransferSize, IOPhysicalLength alignment = 1);Параметры
maxSegmentSizeМаксимальный допустимый размер для одного сегмента. Значения по умолчанию к 0.
maxTransferSizeМаксимальный размер всей передачи. Значения по умолчанию к 0 указаниям никакого максимума.
alignmentОграничения выравнивания на выходные физические адреса. Не в настоящее время реализовываемый. Значения по умолчанию к единственному выравниванию байта.
Возвращаемое значение
Если наследованные классы и этот экземпляр инициализируют успешно, возвращает true.
-
Выводит данный сегмент в выходной массив сегментов в обратном порядке байтов.
Объявление
C++
static void outputSegment( PhysicalSegmentsegment, void *segments, UInt32segmentIndex);Параметры
segmentФизический адрес и длина, которая является рядом с быть выведенной.
segmentsОснова выходного вектора DMA адресует пар длины.
segmentIndexИндекс для вывода 'сегмента' в массиве 'сегментов'.
-
Создает и инициализирует IOBigMemoryCursor в одной работе.
Объявление
C++
static IOBigMemoryCursor * withSpecification( IOPhysicalLengthmaxSegmentSize, IOPhysicalLengthmaxTransferSize, IOPhysicalLength alignment = 1);Параметры
maxSegmentSizeМаксимальный допустимый размер для одного сегмента. Значения по умолчанию к 0.
maxTransferSizeМаксимальный размер всей передачи. Значения по умолчанию к 0 указаниям никакого максимума.
alignmentОграничения выравнивания на выходные физические адреса. Не в настоящее время реализовываемый. Значения по умолчанию к единственному выравниванию байта.
Возвращаемое значение
Возвращает новый курсор памяти, если успешно создается и инициализировано, 0 иначе.
Обсуждение
Функция фабрики, чтобы создать и инициализировать IOBigMemoryCursor в одной работе. См. также IOBigMemoryCursor:: initWithSpecification.
