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

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

Разработчик

Ссылка OSMalloc.h

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

На этой странице

Ссылка OSMalloc.h

Этот заголовок объявляет выделение памяти OSMalloc KPI.

Расширения ядра могут использовать эти функции, чтобы выделить и освободить блоки памяти, прослеженные под именованными тегами. Расширение ядра может создать любые теги, в которых оно нуждается, но обычно просто создает один с его идентификатором пакета.

Теги требуются; при попытке использовать эти функции без каждый приведет к панике.

Используйте ограничения

Ни одну из функций OSMalloc не безопасно вызвать в основном обработчике прерываний.

Включенные заголовки

  • <sys/cdefs.h>

  • <stdint.h>

Функции

  • Освобождает блок памяти, выделенной OSMalloc.

    Объявление

    Objective C

    void OSFree ( void *addr, uint32_t size, OSMallocTag tag );

    Параметры

    addr

    Указатель на блок памяти к свободному.

    size

    Размер блока памяти к свободному.

    tag

    OSMallocTag с которым addr был первоначально выделен.

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

    Objective C

    #include <OSMalloc.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Выделяет блок памяти, связанной с данным OSMallocTag.

    Объявление

    Objective C

    void * OSMalloc ( uint32_t size, OSMallocTag tag );

    Параметры

    size

    Размер блока памяти для выделения.

    tag

    OSMallocTag под которым можно выделить память.

    Возвращаемое значение

    Указатель на память на успехе, NULL при отказе.

    Обсуждение

    Если tag создавался с OSMT_PAGEABLE атрибут и size полная страница или больше, выделенная память листаема; иначе это соединено проводом.

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

    Objective C

    #include <OSMalloc.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Выделяет блок памяти, связанной с данным OSMallocTag, возврат NULL если это блокировало бы.

    Объявление

    Objective C

    void * OSMalloc_noblock ( uint32_t size, OSMallocTag tag );

    Параметры

    size

    Размер блока памяти для выделения.

    tag

    OSMallocTag под которым можно выделить память.

    Возвращаемое значение

    Указатель на память на успехе, NULL при отказе или если выделение блокировало бы.

    Обсуждение

    Если tag создавался с OSMT_PAGEABLE атрибут и size полная страница или больше, выделенная память листаема; иначе это соединено проводом.

    Эта функция, как гарантируют, не блокирует.

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

    Objective C

    #include <OSMalloc.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Эквивалентный OSMalloc_noblock.

    Объявление

    Objective C

    void * OSMalloc_nowait ( uint32_t size, OSMallocTag tag );

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

    Objective C

    #include <OSMalloc.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Создает тег для использования с функциями OSMalloc.

    Объявление

    Objective C

    OSMallocTag OSMalloc_Tagalloc ( const char *name, uint32_t flags );

    Параметры

    name

    Имя тега для создания.

    flags

    Битовая маска, управляющая поведением выделения; см. описание.

    Возвращаемое значение

    Непрозрачный тег, который будет использоваться с OSMalloc, функционирует для отслеживания использования памяти.

    Обсуждение

    Теги OSMalloc могут иметь произвольные имена длины до 63 символов. Вызывание этой функции дважды с тем же именем создает два тега, совместно использующие то имя.

    flags может быть битовое «ИЛИ» следующих флагов:

    • OSMT_DEFAULT - выделения соединены проводом. Это - 'нулевое' значение битовой маски и переопределяется любым другим указанным флагом.

    • OSMT_PAGEABLE - выделения полностраничного размера или больше листаемы; выделения, меньшие, чем страница, соединены проводом.

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

    Objective C

    #include <OSMalloc.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Освобождает тег, используемый с функциями OSMalloc.

    Объявление

    Objective C

    void OSMalloc_Tagfree ( OSMallocTag tag );

    Параметры

    tag

    OSMallocTag к свободному.

    Обсуждение

    Теги OSMalloc не должны быть освобождены, в то время как все еще существуют любые блоки памяти, выделенные с ними. Любая функция OSMalloc обратилась к тем блокам, приведет к панике.

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

    Objective C

    #include <OSMalloc.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

Типы данных

Посмотрите раздел Overview выше для документации уровня заголовка.

  • Непрозрачный тип раньше отслеживал выделения памяти.

    Объявление

    Objective C

    typedef struct __OSMallocTag__ * OSMallocTag;

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

    Objective C

    #include <OSMalloc.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Посмотрите OSMallocTag.

    Объявление

    Objective C

    typedef struct __OSMallocTag__ * OSMallocTag_t;

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

    Objective C

    #include <OSMalloc.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

Константы

Посмотрите раздел Overview выше для документации уровня заголовка.

  • Объявление

    Objective C

    #define OSMT_DEFAULT 0x00 #define OSMT_PAGEABLE 0x01

    Константы

    • OSMT_DEFAULT

      OSMT_DEFAULT

      Указывает что OSMallocTag будьте созданы с атрибутами по умолчанию.

      OSMallocTag создаваемый с этим атрибутом выделяет все блоки в соединенной проводом памяти.

      Доступный в OS X v10.4 и позже.

    • OSMT_PAGEABLE

      OSMT_PAGEABLE

      Указывает что OSMallocTag должен выделить листаемую память, если это возможно.

      OSMallocTag создаваемый с этим атрибутом выделяет блоки полностраничного размера или больше в листаемой памяти и блокирует меньший, чем полностраничный размер в соединенной проводом памяти.

      Доступный в OS X v10.4 и позже.