IOBufferMemoryDescriptor
Обеспечивает простой дескриптор памяти, выделяющий его собственную буферную память.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
Objective C
@import Kernel;
Доступность
Доступный в OS X v10.0 и позже.
-
Создает буфер памяти с дескриптором памяти для того буфера.
Объявление
C++
static IOBufferMemoryDescriptor * inTaskWithOptions( task_t
inTask
, IOOptionBitsoptions
, vm_size_tcapacity
, vm_offset_t alignment = 1);Параметры
inTask
Задача буфер будет выделена в.
options
Опции для выделения:
kIODirectionOut, kIODirectionIn - установите направление передачи I/O.
kIOMemoryPhysicallyContiguous - передайте памяти запроса быть физически непрерывными. Этой опции в большой степени обескураживают. Если память фрагментируется, может вызвать большие суммы действия разбивки на страницы и может занять очень долгое время для выполнения, запрос может перестать работать.
kIOMemoryPageable - передают памяти запроса быть несоединенными проводом - значение по умолчанию для выделенной памяти ядра соединено проводом.
kIOMemoryPurgeable - передайте памяти запроса, которая может позже иметь ее purgeable набор состояния с IOMemoryDescriptor:: setPurgeable. Только поддерживаемый для kIOMemoryPageable выделений.
kIOMemoryKernelUserShared - передайте памяти запроса, которая будет отображена и в ядро и в клиентские приложения.
kIOMapInhibitCache - выделите память с запрещенным параметром кэша.
kIOMapWriteThruCache - выделите память с writethru параметром кэша.
kIOMapCopybackCache - выделите память с copyback параметром кэша.
kIOMapWriteCombineCache - выделите память с writecombined параметром кэша.
capacity
Число байтов для выделения.
alignment
Минимальное требуемое выравнивание буфера в байтах - 1 является значением по умолчанию ни для какого требуемого выравнивания. Например, передайте 256 для выделения памяти в адресе с битами нуль 0-7.
Возвращаемое значение
Возвращает экземпляр класса IOBufferMemoryDescriptor, который будет выпущен вызывающей стороной, которая освободит память desriptor и связанный буфер.
Обсуждение
Добавленный в Mac OS X 10.2, этот метод выделяет буфер памяти с данным размером и выравниванием в адресном пространстве задачи, указанном, и возвращает экземпляр дескриптора памяти, представляющий память. Рекомендуется, чтобы память, выделенная для I/O или совместного использования через отображение, была создана через IOBufferMemoryDescriptor. Опции, переданные с запросом, указывают, что вид памяти, которая будет выделена - pageablity и совместное использование, указан с битами опции. В то время как простая блокировка сохранена, эта функция может блокировать и так не должна быть вызвана от уровня прерывания или.
-
Создает буфер памяти с дескриптором памяти для того буфера.
Объявление
C++
static IOBufferMemoryDescriptor * inTaskWithPhysicalMask( task_t
inTask
, IOOptionBitsoptions
, mach_vm_size_tcapacity
, mach_vm_address_tmask
);Параметры
inTask
Задача буфер будет отображена в. Передайте NULL для создания памяти, неотображенной в любой задаче (например, для использования в качестве буфера DMA).
options
Опции для выделения:
kIODirectionOut, kIODirectionIn - установите направление передачи I/O.
kIOMemoryPhysicallyContiguous - передайте памяти запроса быть физически непрерывными. Этой опции в большой степени обескураживают. Если память фрагментируется, может вызвать большие суммы действия разбивки на страницы и может занять очень долгое время для выполнения, запрос может перестать работать.
kIOMemoryKernelUserShared - передайте памяти запроса, которая будет отображена и в ядро и в клиентские приложения.
kIOMapInhibitCache - выделите память с запрещенным параметром кэша.
kIOMapWriteThruCache - выделите память с writethru параметром кэша.
kIOMapCopybackCache - выделите память с copyback параметром кэша.
kIOMapWriteCombineCache - выделите память с writecombined параметром кэша.
capacity
Число байтов для выделения.
mask
Буфер будет выделен со страницами, таким образом, что физические адреса будут только иметь настоящее набора битов в physicalMask. Например, передайте 0x00000000FFFFFFFFULL для буфера, к которому получат доступ аппаратные средства, имеющие 32 адресных бита.
Возвращаемое значение
Возвращает экземпляр класса IOBufferMemoryDescriptor, который будет выпущен вызывающей стороной, которая освободит память desriptor и связанный буфер.
Обсуждение
Добавленный в Mac OS X 10.5, этот метод выделяет буфер памяти с данным размером и выравниванием в адресном пространстве задачи, указанном, и возвращает экземпляр дескриптора памяти, представляющий память. Рекомендуется, чтобы память, выделенная для I/O или совместного использования через отображение, была создана через IOBufferMemoryDescriptor. Опции, переданные с запросом, указывают, что вид памяти, которая будет выделена - pageablity и совместное использование, указан с битами опции. В то время как простая блокировка сохранена, эта функция может блокировать и так не должна быть вызвана от уровня прерывания или.
-
Объявление
C++
struct ExpansionData { IOMemoryMap *map; };
Обсуждение
Эта структура будет использоваться для расширения capablilties этого класса в будущем.
-
Зарезервированный для будущего использования. (Только внутреннее использование)
Объявление
C++
ExpansionData * reserved;