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