Ссылка 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 и позже.
-