Ссылка OSMalloc.h
Этот заголовок объявляет выделение памяти OSMalloc KPI.
Расширения ядра могут использовать эти функции, чтобы выделить и освободить блоки памяти, прослеженные под именованными тегами. Расширение ядра может создать любые теги, в которых оно нуждается, но обычно просто создает один с его идентификатором пакета.
Теги требуются; при попытке использовать эти функции без каждый приведет к панике.
Используйте ограничения
Ни одну из функций OSMalloc не безопасно вызвать в основном обработчике прерываний.
Включенные заголовки
<sys/cdefs.h><stdint.h>
-
Освобождает блок памяти, выделенной
OSMalloc.Объявление
Objective C
void OSFree ( void *addr, uint32_t size, OSMallocTag tag );Параметры
addrУказатель на блок памяти к свободному.
sizeРазмер блока памяти к свободному.
tagOSMallocTagс которымaddrбыл первоначально выделен.Оператор импорта
Objective C
#include <OSMalloc.h>;Доступность
Доступный в OS X v10.4 и позже.
-
Выделяет блок памяти, связанной с данным
OSMallocTag.Объявление
Objective C
void * OSMalloc ( uint32_t size, OSMallocTag tag );Параметры
sizeРазмер блока памяти для выделения.
tagOSMallocTagпод которым можно выделить память.Возвращаемое значение
Указатель на память на успехе,
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Размер блока памяти для выделения.
tagOSMallocTagпод которым можно выделить память.Возвращаемое значение
Указатель на память на успехе,
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 );Параметры
tagOSMallocTagк свободному.Обсуждение
Теги 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_DEFAULTOSMT_DEFAULTУказывает что
OSMallocTagбудьте созданы с атрибутами по умолчанию.OSMallocTagсоздаваемый с этим атрибутом выделяет все блоки в соединенной проводом памяти.Доступный в OS X v10.4 и позже.
-
OSMT_PAGEABLEOSMT_PAGEABLEУказывает что
OSMallocTagдолжен выделить листаемую память, если это возможно.OSMallocTagсоздаваемый с этим атрибутом выделяет блоки полностраничного размера или больше в листаемой памяти и блокирует меньший, чем полностраничный размер в соединенной проводом памяти.Доступный в OS X v10.4 и позже.
-
