IORangeAllocator
Служебный класс для управления выделениями от диапазона.
Класс IORangeAllocator обеспечивает функции для выделения диапазонов в фиксированном или любом смещении и освобождении их назад к бесплатному списку. Это полезно для описания диапазонов пространства памяти или адресного пространства, не требуя хранения в памяти - информация, описывающая свободные элементы, хранится в другом месте. Диапазоны описаны смещением запуска и размером. IORangeAllocator дополнительно защищен от многопоточного доступа.
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Не применимый
Objective C
@import Kernel;
Доступность
Доступный в OS X v10.0 и позже.
-
Выделяет из бесплатного списка, при любом смещении.
Объявление
C++
virtual bool allocate( IORangeScalar
size
, IORangeScalar *result
, IORangeScalar alignment = 0 );Параметры
size
Размер диапазона требуют.
result
Начало выделенного диапазона возвращается сюда на успехе.
alignment
Если нуль передается, значение по умолчанию к выравниванию средств выделения, иначе передайте выравнивание, требуемое для выделения, например 4096 для разбивки на страницы выравниваются.
Возвращаемое значение
Если выделение было успешным, еще ложным, возвращает true.
Обсуждение
Этот метод выделяет диапазон от бесплатного списка. Когда средство выделения создавалось или может быть установлено здесь, выравнивание примет значение по умолчанию к набору выравнивания.
-
Выделяет из бесплатного списка, при смещении набора.
Объявление
C++
virtual bool allocateRange( IORangeScalar
start
, IORangeScalarsize
);Параметры
start
Начало диапазона требуют.
size
Размер диапазона требуют.
Возвращаемое значение
Если выделение было успешным, еще ложным, возвращает true.
Обсуждение
Этот метод выделяет диапазон от бесплатного списка учитывая смещение набора, переданное в.
-
Освобождает диапазон к бесплатному списку.
Объявление
C++
virtual void deallocate( IORangeScalar
start
, IORangeScalarsize
);Параметры
start
Начало диапазона требуют.
size
Возвращает размер диапазона, который требуют.
Обсуждение
Этот метод освобождает диапазон к бесплатному списку, данному, смещение запуска и длина передали в.
-
Средство доступа для возврата числа свободных фрагментов в диапазоне.
Объявление
C++
virtual UInt32 getFragmentCapacity(
void
);Возвращаемое значение
Возвращает токовую нагрузку бесплатного списка фрагмента.
Обсуждение
Этот метод возвращает токовую нагрузку бесплатного списка фрагмента.
-
Средство доступа для возврата числа свободных фрагментов в диапазоне.
Объявление
C++
virtual UInt32 getFragmentCount(
void
);Возвращаемое значение
Возвращает количество свободных фрагментов.
Обсуждение
Этот метод возвращает количество свободных фрагментов. Каждый фрагмент описывает свободный диапазон состоящий из нескольких несмежных участков - освобождение объединит непрерывные фрагменты вместе.
-
Составляет размеры свободных фрагментов.
Объявление
C++
virtual IORangeScalar getFreeCount(
void
);Возвращаемое значение
Возвращает общее количество свободных размеров фрагментов.
Обсуждение
Этот метод возвращает общее количество размеров фрагментов в бесплатном списке.
-
Стандартный инициализатор для IORangeAllocator.
Объявление
C++
virtual bool init( IORangeScalar
endOfRange
, IORangeScalardefaultAlignment
, UInt32capacity
, IOOptionBitsoptions
);Параметры
endOfRange
Если бесплатный список должен содержать начальный фрагмент, установите endOfRange в последнее смещение в диапазоне, т.е. размер - 1, для создания свободного фрагмента для нуля диапазона к endOfRange включительно. Если нуль будет передан, то бесплатный список будет инициализирован пустой, и может быть заполнен с вызовами к освобождать методу.
defaultAlignment
Если этот параметр является ненулевым, он указывает требуемое выравнивание для всех выделений, например, передайте 256 для выравнивания выделений на 256-байтовых границах. Нуль или каждый указывают невыровненные выделения.
capacity
Устанавливает начальный размер бесплатного списка в числе фрагментов состоящих из нескольких несмежных участков. Это значение также используется для capacityIncrement.
options
Синхронизация передачи, если экземпляр может использоваться многократными потоками.
Возвращаемое значение
Если экземпляр успешно инициализируется, ложь при отказе, возвращает true.
Обсуждение
Этот метод инициализирует IORangeAllocator и дополнительно устанавливает бесплатный список для содержания одного фрагмента от нуля до endOfRange параметра. Способность с точки зрения свободных фрагментов и опций блокировки установлена для экземпляра.
-
Устанавливает количество фрагментов, которыми увеличится бесплатный список, когда полный.
Объявление
C++
virtual void setFragmentCapacityIncrement( UInt32
count
);Параметры
count
Число фрагментов для постепенного увеличения способности тем, когда бесплатный список полон.
Обсуждение
Этот метод определяет номер дополнительных фрагментов, до которых расширится бесплатный список, когда полный. Это принимает значение по умолчанию к начальной способности.
-
Стандартный метод фабрики для IORangeAllocator.
Объявление
C++
static IORangeAllocator * withRange( IORangeScalar
endOfRange
, IORangeScalar defaultAlignment = 0, UInt32 capacity = 0, IOOptionBits options = 0 );Параметры
endOfRange
Если бесплатный список должен содержать начальный фрагмент, установите endOfRange в последнее смещение в диапазоне, т.е. размер - 1, для создания свободного фрагмента для нуля диапазона к endOfRange включительно. Если нуль будет передан, то бесплатный список будет инициализирован пустой, и может быть заполнен с вызовами к освобождать методу.
defaultAlignment
Если этот параметр является ненулевым, он указывает требуемое выравнивание для всех выделений, например, передайте 256 для выравнивания выделений на 256-байтовых границах. Нуль или каждый указывают невыровненные выделения.
capacity
Устанавливает начальный размер бесплатного списка в числе фрагментов состоящих из нескольких несмежных участков. Это значение также используется для capacityIncrement.
options
Синхронизация передачи, если экземпляр может использоваться многократными потоками.
Возвращаемое значение
Возвращает новый экземпляр IORangeAllocator, чтобы быть выпущенным вызывающей стороной или нулем при отказе.
Обсуждение
Этот метод выделяет и инициализирует IORangeAllocator и дополнительно устанавливает бесплатный список для содержания одного фрагмента от нуля до endOfRange параметра. Способность с точки зрения свободных фрагментов и опций блокировки установлена для экземпляра.