Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка класса IOBufferMemoryDescriptor

Опции
Развертывание Target:

На этой странице
Язык:

IOBufferMemoryDescriptor

Обеспечивает простой дескриптор памяти, выделяющий его собственную буферную память.

Наследование


Не применимый

Соответствует


Не применимый

Оператор импорта


Не применимый

Objective C

@import Kernel;

Доступность


Доступный в OS X v10.0 и позже.
  • Создает буфер памяти с дескриптором памяти для того буфера.

    Объявление

    C++

    static IOBufferMemoryDescriptor * inTaskWithOptions( task_t inTask, IOOptionBits options, vm_size_t capacity, 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_tinTask, 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;