Ссылка OSAtomic.h
Этот заголовок объявляет группу OSAtomic функций для атомарного чтения и обновления значений.
Включенные заголовки
<libkern/OSBase.h>
-
32-разрядный добавляют работу, выполняемую атомарно относительно всех устройств, участвующих в архитектуре когерентности платформы.
Объявление
Objective C
SInt32 OSAddAtomic ( SInt32 amount, volatile SInt32 *address );
Параметры
amount
Сумма для добавления.
address
4 байта выровняли адрес значения для обновления атомарно.
Возвращаемое значение
Значение перед дополнением
Обсуждение
Функция OSAddAtomic добавляет указанную сумму к значению в указанном адресе и возвращает исходное значение.
Эта функция гарантирует атомарность только с главной системной памятью. Это является в частности неподходящим для использования на некэшируемой памяти, такой как это в устройствах; эта функция не может гарантировать атомарность, например, на с отображенной памятью от устройства PCI. Предыдущие воплощения этой функции включили барьер памяти в системах со слабо упорядоченными архитектурами памяти, но текущие версии не содержат барьеров.
Оператор импорта
Objective C
#include <OSAtomic.h>;
Доступность
Доступный в OS X v10.0 и позже.
-
16-разрядный добавляют работу, выполняемую атомарно относительно всех устройств, участвующих в архитектуре когерентности платформы.
Объявление
Objective C
SInt16 OSAddAtomic16 ( SInt32 amount, volatile SInt16 *address );
Параметры
address
2 байта выровняли адрес значения для обновления атомарно.
Возвращаемое значение
Значение перед дополнением
Обсуждение
Функция OSAddAtomic16 добавляет указанную сумму к значению в указанном адресе и возвращает исходное значение.
Эта функция гарантирует атомарность только с главной системной памятью. Это является в частности неподходящим для использования на некэшируемой памяти, такой как это в устройствах; эта функция не может гарантировать атомарность, например, на с отображенной памятью от устройства PCI. Предыдущие воплощения этой функции включили барьер памяти в системах со слабо упорядоченными архитектурами памяти, но текущие версии не содержат барьеров.
Оператор импорта
Objective C
#include <OSAtomic.h>;
Доступность
Доступный в OS X v10.0 и позже.
-
64-разрядный атомарный добавляют работу.
Объявление
Objective C
SInt64 OSAddAtomic64 ( SInt64 theAmount, volatile SInt64 *address );
Обсуждение
Посмотрите OSAddAtomic.
Оператор импорта
Objective C
#include <OSAtomic.h>;
Доступность
Доступный в OS X v10.5 и позже.
-
8-разрядный добавляют работу, выполняемую атомарно относительно всех устройств, участвующих в архитектуре когерентности платформы.
Объявление
Objective C
SInt8 OSAddAtomic8 ( SInt32 amount, volatile SInt8 *address );
Параметры
amount
Сумма для добавления.
address
Адрес значения для обновления атомарно.
Возвращаемое значение
Значение перед дополнением.
Обсуждение
Функция OSAddAtomic8 добавляет указанную сумму к значению в указанном адресе и возвращает исходное значение.
Эта функция гарантирует атомарность только с главной системной памятью. Это является в частности неподходящим для использования на некэшируемой памяти, такой как это в устройствах; эта функция не может гарантировать атомарность, например, на с отображенной памятью от устройства PCI. Предыдущие воплощения этой функции включили барьер памяти в системах со слабо упорядоченными архитектурами памяти, но текущие версии не содержат барьеров.
Оператор импорта
Objective C
#include <OSAtomic.h>;
Доступность
Доступный в OS X v10.0 и позже.
-
32-разрядный логичный и работа, выполняемая атомарно относительно всех устройств, участвующих в архитектуре когерентности платформы.
Объявление
Objective C
UInt32 OSBitAndAtomic ( UInt32 mask, volatile UInt32 *address );
Параметры
mask
Маска к логически и со значением.
address
4 байта выровняли адрес значения для обновления атомарно.
Возвращаемое значение
Значение перед битовой операцией
Обсуждение
OSBitAndAtomic функционируют логически ands биты указанной маски в значение в указанном адресе, и возвращает исходное значение.
Эта функция гарантирует атомарность только с главной системной памятью. Это является в частности неподходящим для использования на некэшируемой памяти, такой как это в устройствах; эта функция не может гарантировать атомарность, например, на с отображенной памятью от устройства PCI. Предыдущие воплощения этой функции включили барьер памяти в системах со слабо упорядоченными архитектурами памяти, но текущие версии не содержат барьеров..
Оператор импорта
Objective C
#include <OSAtomic.h>;
Доступность
Доступный в OS X v10.0 и позже.
-
16-разрядный логичный и работа, выполняемая атомарно относительно всех устройств, участвующих в архитектуре когерентности платформы.
Объявление
Objective C
UInt16 OSBitAndAtomic16 ( UInt32 mask, volatile UInt16 *address );
Параметры
mask
Маска к логически и со значением.
address
2 байта выровняли адрес значения для обновления атомарно.
Возвращаемое значение
Значение перед битовой операцией.
Обсуждение
OSBitAndAtomic16 функционируют логически ands биты указанной маски в значение в указанном адресе и возвратах исходное значение.
Эта функция гарантирует атомарность только с главной системной памятью. Это является в частности неподходящим для использования на некэшируемой памяти, такой как это в устройствах; эта функция не может гарантировать атомарность, например, на с отображенной памятью от устройства PCI. Кроме того, эта функция включает барьер памяти в системах со слабо упорядоченными архитектурами памяти.
Оператор импорта
Objective C
#include <OSAtomic.h>;
Доступность
Доступный в OS X v10.0 и позже.
-
8-разрядный логичный и работа, выполняемая атомарно относительно всех устройств, участвующих в архитектуре когерентности платформы.
Объявление
Objective C
UInt8 OSBitAndAtomic8 ( UInt32 mask, volatile UInt8 *address );
Параметры
mask
Маска к логически и со значением.
address
Адрес значения для обновления атомарно.
Возвращаемое значение
Значение перед битовой операцией.
Обсуждение
OSBitAndAtomic8 функционируют логически ands биты указанной маски в значение в указанном адресе и возвратах исходное значение.
Эта функция гарантирует атомарность только с главной системной памятью. Это является в частности неподходящим для использования на некэшируемой памяти, такой как это в устройствах; эта функция не может гарантировать атомарность, например, на с отображенной памятью от устройства PCI. Кроме того, эта функция включает барьер памяти в системах со слабо упорядоченными архитектурами памяти.
Оператор импорта
Objective C
#include <OSAtomic.h>;
Доступность
Доступный в OS X v10.0 и позже.
-
32-разрядный логичный или работа, выполняемая атомарно относительно всех устройств, участвующих в архитектуре когерентности платформы.
Объявление
Objective C
UInt32 OSBitOrAtomic ( UInt32 mask, volatile UInt32 *address );
Параметры
mask
Маска к логически или со значением.
address
4 байта выровняли адрес значения для обновления атомарно.
Возвращаемое значение
Значение перед битовой операцией.
Обсуждение
OSBitOrAtomic функционируют логически ors биты указанной маски в значение в указанном адресе, и возвращает исходное значение.
Эта функция гарантирует атомарность только с главной системной памятью. Это является в частности неподходящим для использования на некэшируемой памяти, такой как это в устройствах; эта функция не может гарантировать атомарность, например, на с отображенной памятью от устройства PCI. Кроме того, эта функция включает барьер памяти в системах со слабо упорядоченными архитектурами памяти.
Оператор импорта
Objective C
#include <OSAtomic.h>;
Доступность
Доступный в OS X v10.0 и позже.
-
16-разрядный логичный или работа, выполняемая атомарно относительно всех устройств, участвующих в архитектуре когерентности платформы.
Объявление
Objective C
UInt16 OSBitOrAtomic16 ( UInt32 mask, volatile UInt16 *address );
Параметры
mask
Маска к логически или со значением.
address
2 байта выровняли адрес значения для обновления атомарно.
Возвращаемое значение
Значение перед битовой операцией.
Обсуждение
OSBitOrAtomic16 функционируют логически ors биты указанной маски в значение в указанном адресе и возвратах исходное значение.
Эта функция гарантирует атомарность только с главной системной памятью. Это является в частности неподходящим для использования на некэшируемой памяти, такой как это в устройствах; эта функция не может гарантировать атомарность, например, на с отображенной памятью от устройства PCI. Кроме того, эта функция включает барьер памяти в системах со слабо упорядоченными архитектурами памяти.
Оператор импорта
Objective C
#include <OSAtomic.h>;
Доступность
Доступный в OS X v10.0 и позже.
-
8-разрядный логичный или работа, выполняемая атомарно относительно всех устройств, участвующих в архитектуре когерентности платформы.
Эта функция гарантирует атомарность только с главной системной памятью. Это является в частности неподходящим для использования на некэшируемой памяти, такой как это в устройствах; эта функция не может гарантировать атомарность, например, на с отображенной памятью от устройства PCI. Кроме того, эта функция включает барьер памяти в системах со слабо упорядоченными архитектурами памяти.
Объявление
Objective C
UInt8 OSBitOrAtomic8 ( UInt32 mask, volatile UInt8 *address );
Параметры
mask
Маска к логически или со значением.
address
Адрес значения для обновления атомарно.
Возвращаемое значение
Значение перед битовой операцией.
Обсуждение
OSBitOrAtomic8 функционируют логически ors биты указанной маски в значение в указанном адресе и возвратах исходное значение.
Оператор импорта
Objective C
#include <OSAtomic.h>;
Доступность
Доступный в OS X v10.0 и позже.
-
32-разрядная логическая xor работа, выполняемая атомарно относительно всех устройств, участвующих в архитектуре когерентности платформы.
Эта функция гарантирует атомарность только с главной системной памятью. Это является в частности неподходящим для использования на некэшируемой памяти, такой как это в устройствах; эта функция не может гарантировать атомарность, например, на с отображенной памятью от устройства PCI. Кроме того, эта функция включает барьер памяти в системах со слабо упорядоченными архитектурами памяти.
Объявление
Objective C
UInt32 OSBitXorAtomic ( UInt32 mask, volatile UInt32 *address );
Параметры
mask
Маска к логически или со значением.
address
4 байта выровняли адрес значения для обновления атомарно.
Возвращаемое значение
Значение перед битовой операцией.
Обсуждение
OSBitXorAtomic функционируют логически xors биты указанной маски в значение в указанном адресе, и возвращает исходное значение.
Оператор импорта
Objective C
#include <OSAtomic.h>;
Доступность
Доступный в OS X v10.0 и позже.
-
16-разрядная логическая xor работа, выполняемая атомарно относительно всех устройств, участвующих в архитектуре когерентности платформы.
Объявление
Objective C
UInt16 OSBitXorAtomic16 ( UInt32 mask, volatile UInt16 *address );
Параметры
mask
Маска к логически или со значением.
address
2 байта выровняли адрес значения для обновления атомарно.
Возвращаемое значение
Значение перед битовой операцией.
Обсуждение
OSBitXorAtomic16 функционируют логически xors биты указанной маски в значение в указанном адресе и возвратах исходное значение.
Эта функция гарантирует атомарность только с главной системной памятью. Это является в частности неподходящим для использования на некэшируемой памяти, такой как это в устройствах; эта функция не может гарантировать атомарность, например, на с отображенной памятью от устройства PCI. Кроме того, эта функция включает барьер памяти в системах со слабо упорядоченными архитектурами памяти.
Оператор импорта
Objective C
#include <OSAtomic.h>;
Доступность
Доступный в OS X v10.0 и позже.
-
8-разрядная логическая xor работа, выполняемая атомарно относительно всех устройств, участвующих в архитектуре когерентности платформы.
Эта функция гарантирует атомарность только с главной системной памятью. Это является в частности неподходящим для использования на некэшируемой памяти, такой как это в устройствах; эта функция не может гарантировать атомарность, например, на с отображенной памятью от устройства PCI. Кроме того, эта функция включает барьер памяти в системах со слабо упорядоченными архитектурами памяти.
Объявление
Objective C
UInt8 OSBitXorAtomic8 ( UInt32 mask, volatile UInt8 *address );
Параметры
mask
Маска к логически или со значением.
address
Адрес значения для обновления атомарно.
Возвращаемое значение
Значение перед битовой операцией.
Обсуждение
OSBitXorAtomic8 функционируют логически xors биты указанной маски в значение в указанном адресе и возвратах исходное значение.
Оператор импорта
Objective C
#include <OSAtomic.h>;
Доступность
Доступный в OS X v10.0 и позже.
-
Сравните и подкачайте работу, выполняемую атомарно относительно всех устройств, участвующих в архитектуре когерентности платформы.
Объявление
Objective C
Boolean OSCompareAndSwap ( UInt32 oldValue, UInt32 newValue, volatile UInt32 *address );
Параметры
oldValue
Значение для сравнения в адресе.
newValue
Значение для записи, чтобы адресоваться, если oldValue сравнивает истину.
address
4 байта выровняли адрес данных для обновления атомарно.
Возвращаемое значение
истина, если newValue был записан в адрес.
Обсуждение
Функция OSCompareAndSwap сравнивает значение в указанном адресе с oldVal. Значение newValue записано в адрес, только если oldValue и значение в адресе равны. Если newValue записан в адрес, OSCompareAndSwap возвращает true; иначе, это возвращает false.
Эта функция гарантирует атомарность только с главной системной памятью. Это является в частности неподходящим для использования на некэшируемой памяти, такой как это в устройствах; эта функция не может гарантировать атомарность, например, на с отображенной памятью от устройства PCI. Кроме того, эта функция включает барьер памяти в системах со слабо упорядоченными архитектурами памяти.
Оператор импорта
Objective C
#include <OSAtomic.h>;
Доступность
Доступный в OS X v10.0 и позже.
-
64-разрядный сравнивают и подкачивают работу.
Объявление
Objective C
Boolean OSCompareAndSwap64 ( UInt64 oldValue, UInt64 newValue, volatile UInt64 *address );
Обсуждение
Посмотрите OSCompareAndSwap.
Оператор импорта
Objective C
#include <OSAtomic.h>;
Доступность
Доступный в OS X v10.5 и позже.
-
Сравните и подкачайте работу, выполняемую атомарно относительно всех устройств, участвующих в архитектуре когерентности платформы.
Объявление
Objective C
Boolean OSCompareAndSwapPtr ( void *oldValue, void *newValue, void * volatile *address );
Параметры
oldValue
Значение указателя для сравнения в адресе.
newValue
Значение указателя для записи, чтобы адресоваться, если oldValue сравнивает истину.
address
Размер указателя выровнял адрес данных для обновления атомарно.
Возвращаемое значение
истина, если newValue был записан в адрес.
Обсуждение
Функция OSCompareAndSwapPtr сравнивает значение размера указателя в указанном адресе с oldVal. Значение newValue записано в адрес, только если oldValue и значение в адресе равны. Если newValue записан в адрес, OSCompareAndSwapPtr возвращает true; иначе, это возвращает false.
Эта функция гарантирует атомарность только с главной системной памятью. Это является в частности неподходящим для использования на некэшируемой памяти, такой как это в устройствах; эта функция не может гарантировать атомарность, например, на с отображенной памятью от устройства PCI. Кроме того, эта функция включает барьер памяти в системах со слабо упорядоченными архитектурами памяти.
Оператор импорта
Objective C
#include <OSAtomic.h>;
Доступность
Доступный в OS X v10.6 и позже.
-
32-разрядная декрементная работа, выполняемая атомарно относительно всех устройств, участвующих в архитектуре когерентности платформы.
Объявление
Objective C
SInt32 OSDecrementAtomic ( volatile SInt32 *address );
Параметры
address
4 байта выровняли адрес значения для обновления атомарно.
Возвращаемое значение
Значение перед декрементом.
Обсуждение
Функция OSDecrementAtomic постепенно уменьшает значение в указанном адресе одним и возвращает исходное значение.
Эта функция гарантирует атомарность только с главной системной памятью. Это является в частности неподходящим для использования на некэшируемой памяти, такой как это в устройствах; эта функция не может гарантировать атомарность, например, на с отображенной памятью от устройства PCI. Предыдущие воплощения этой функции включили барьер памяти в системах со слабо упорядоченными архитектурами памяти, но текущие версии не содержат барьеров.
Оператор импорта
Objective C
#include <OSAtomic.h>;
Доступность
Доступный в OS X v10.0 и позже.
-
16-разрядная декрементная работа, выполняемая атомарно относительно всех устройств, участвующих в архитектуре когерентности платформы.
Объявление
Objective C
SInt16 OSDecrementAtomic16 ( volatile SInt16 *address );
Параметры
address
2 байта выровняли адрес значения для обновления атомарно.
Возвращаемое значение
Значение перед декрементом.
Обсуждение
Функция OSDecrementAtomic16 постепенно уменьшает значение в указанном адресе одним и возвращает исходное значение.
Эта функция гарантирует атомарность только с главной системной памятью. Это является в частности неподходящим для использования на некэшируемой памяти, такой как это в устройствах; эта функция не может гарантировать атомарность, например, на с отображенной памятью от устройства PCI. Предыдущие воплощения этой функции включили барьер памяти в системах со слабо упорядоченными архитектурами памяти, но текущие версии не содержат барьеров.
Оператор импорта
Objective C
#include <OSAtomic.h>;
Доступность
Доступный в OS X v10.0 и позже.
-
64-разрядный декремент.
Объявление
Objective C
SInt64 OSDecrementAtomic64 ( volatile SInt64 *address );
Обсуждение
Посмотрите OSDecrementAtomic.
Оператор импорта
Objective C
#include <OSAtomic.h>;
Доступность
Доступный в OS X v10.5 и позже.
-
8-разрядная декрементная работа, выполняемая атомарно относительно всех устройств, участвующих в архитектуре когерентности платформы.
Объявление
Objective C
SInt8 OSDecrementAtomic8 ( volatile SInt8 *address );
Параметры
address
Адрес значения для обновления атомарно.
Возвращаемое значение
Значение перед декрементом.
Обсуждение
Функция OSDecrementAtomic8 постепенно уменьшает значение в указанном адресе одним и возвращает исходное значение.
Эта функция гарантирует атомарность только с главной системной памятью. Это является в частности неподходящим для использования на некэшируемой памяти, такой как это в устройствах; эта функция не может гарантировать атомарность, например, на с отображенной памятью от устройства PCI. Предыдущие воплощения этой функции включили барьер памяти в системах со слабо упорядоченными архитектурами памяти, но текущие версии не содержат барьеров.
Оператор импорта
Objective C
#include <OSAtomic.h>;
Доступность
Доступный в OS X v10.0 и позже.
-
32-разрядная инкрементная работа, выполняемая атомарно относительно всех устройств, участвующих в архитектуре когерентности платформы.
Объявление
Objective C
SInt32 OSIncrementAtomic ( volatile SInt32 *address );
Параметры
address
4 байта выровняли адрес значения для обновления атомарно.
Возвращаемое значение
Значение перед инкрементом.
Обсуждение
Функция OSIncrementAtomic постепенно увеличивает значение в указанном адресе одним и возвращает исходное значение.
Эта функция гарантирует атомарность только с главной системной памятью. Это является в частности неподходящим для использования на некэшируемой памяти, такой как это в устройствах; эта функция не может гарантировать атомарность, например, на с отображенной памятью от устройства PCI.
Оператор импорта
Objective C
#include <OSAtomic.h>;
Доступность
Доступный в OS X v10.0 и позже.
-
16-разрядная инкрементная работа, выполняемая атомарно относительно всех устройств, участвующих в архитектуре когерентности платформы.
Объявление
Objective C
SInt16 OSIncrementAtomic16 ( volatile SInt16 *address );
Параметры
address
2 байта выровняли адрес значения для обновления атомарно.
Возвращаемое значение
Значение перед инкрементом.
Обсуждение
Функция OSIncrementAtomic16 постепенно увеличивает значение в указанном адресе одним и возвращает исходное значение.
Эта функция гарантирует атомарность только с главной системной памятью. Это является в частности неподходящим для использования на некэшируемой памяти, такой как это в устройствах; эта функция не может гарантировать атомарность, например, на с отображенной памятью от устройства PCI. Предыдущие воплощения этой функции включили барьер памяти в системах со слабо упорядоченными архитектурами памяти, но текущие версии не содержат барьеров.
Оператор импорта
Objective C
#include <OSAtomic.h>;
Доступность
Доступный в OS X v10.0 и позже.
-
64-разрядный инкремент.
Объявление
Objective C
SInt64 OSIncrementAtomic64 ( volatile SInt64 *address );
Обсуждение
Посмотрите OSIncrementAtomic.
Оператор импорта
Objective C
#include <OSAtomic.h>;
Доступность
Доступный в OS X v10.5 и позже.
-
8-разрядная инкрементная работа, выполняемая атомарно относительно всех устройств, участвующих в архитектуре когерентности платформы.
Объявление
Objective C
SInt8 OSIncrementAtomic8 ( volatile SInt8 *address );
Параметры
address
Адрес значения для обновления атомарно.
Возвращаемое значение
Значение перед инкрементом.
Обсуждение
Функция OSIncrementAtomic8 постепенно увеличивает значение в указанном адресе одним и возвращает исходное значение.
Эта функция гарантирует атомарность только с главной системной памятью. Это является в частности неподходящим для использования на некэшируемой памяти, такой как это в устройствах; эта функция не может гарантировать атомарность, например, на с отображенной памятью от устройства PCI. Предыдущие воплощения этой функции включили барьер памяти в системах со слабо упорядоченными архитектурами памяти, но текущие версии не содержат барьеров.
Оператор импорта
Objective C
#include <OSAtomic.h>;
Доступность
Доступный в OS X v10.0 и позже.
-
Подпрограмма OSSynchronizeIO гарантирует организованную загрузку и операции хранилища к некэшируемым устройствам ввода-вывода с отображенной памятью.
Объявление
Objective C
void OSSynchronizeIO ( void );
Обсуждение
Подпрограмма OSSynchronizeIO гарантирует организованную загрузку и операции хранилища к некэшируемым устройствам ввода-вывода с отображенной памятью. Это выполняет eieio инструкцию на процессорах PowerPC.
Оператор импорта
Objective C
#include <OSAtomic.h>;
Доступность
Доступный в OS X v10.0 и позже.
-
Контроль битов и ясная работа, выполняемая атомарно относительно всех устройств, участвующих в архитектуре когерентности платформы.
Объявление
Objective C
Boolean OSTestAndClear ( UInt32 bit, volatile UInt8 *startAddress );
Параметры
bit
Разрядное число в диапазоне 0 до 7.
startAddress
Адрес байта для обновления атомарно.
Возвращаемое значение
истина, если бит был уже ясным, ложным иначе.
Обсуждение
Функция OSTestAndClear очищает единственный бит в байте в указанном адресе. Если бит был уже ясным, ложным иначе, это возвращает true.
Эта функция гарантирует атомарность только с главной системной памятью. Это является в частности неподходящим для использования на некэшируемой памяти, такой как это в устройствах; эта функция не может гарантировать атомарность, например, на с отображенной памятью от устройства PCI. Кроме того, эта функция включает барьер памяти в системах со слабо упорядоченными архитектурами памяти.
Оператор импорта
Objective C
#include <OSAtomic.h>;
Доступность
Доступный в OS X v10.0 и позже.
-
Контроль битов и операция присвоения, выполняемая атомарно относительно всех устройств, участвующих в архитектуре когерентности платформы.
Эта функция гарантирует атомарность только с главной системной памятью. Это является в частности неподходящим для использования на некэшируемой памяти, такой как это в устройствах; эта функция не может гарантировать атомарность, например, на с отображенной памятью от устройства PCI. Кроме того, эта функция включает барьер памяти в системах со слабо упорядоченными архитектурами памяти.
Объявление
Objective C
Boolean OSTestAndSet ( UInt32 bit, volatile UInt8 *startAddress );
Параметры
bit
Разрядное число в диапазоне 0 до 7.
startAddress
Адрес байта для обновления атомарно.
Возвращаемое значение
истина, если бит был уже установлен, ложь иначе.
Обсуждение
Функция OSTestAndSet устанавливает единственный бит в байте в указанном адресе. Если бит был уже установлен, ложь иначе, это возвращает true.
Оператор импорта
Objective C
#include <OSAtomic.h>;
Доступность
Доступный в OS X v10.0 и позже.
Посмотрите раздел Overview выше для документации уровня заголовка.
-
Тип данных для спин-блокировки.
Объявление
Objective C
typedef SInt32 OSSpinLock;
Обсуждение
Необходимо всегда инициализировать спин-блокировку к OS_SPINLOCK_INIT перед использованием его.
Оператор импорта
Objective C
#include <OSAtomic.h>;
Доступность
Доступный в OS X v10.7 и позже.
Посмотрите раздел Overview выше для документации уровня заголовка.