Книга: Разработка ядра Linux
Другие средства работы со спин-блокировками
Другие средства работы со спин-блокировками
Функция spin_lock_init()
используется для инициализации спин-блокировок, которые были созданы динамически (переменная типа spinlock_t
, к которой нет прямого доступа, а есть только указатель на нее).
Функция spin_try_lock()
производит попытку захватить указанную спин-блокировку. Если блокировка находится в состоянии конфликта, то, вместо циклической проверки и ожидания на освобождение блокировки, эта функция возвращает ненулевое значение. Если блокировка была захвачена успешно, то функция возвращает нуль. Аналогично функция spin_is_locked()
возвращает ненулевое значение, если блокировка в данный момент захвачена. В противном случае возвращается нуль. Эта функция никогда не захватывает блокировку[48].
В табл. 9.3 приведен полный список функций работы со спин-блокировками.
Таблица 9.3. Список функций работы со спин-блокировками
Функция | Описание |
---|---|
spin_lock() |
Захватить указанную блокировку |
spin_lock_irq() |
Запретить прерывания на локальном процессоре и захватить указанную блокировку |
spin_lock_irqsave() |
Сохранить текущее состояние системы прерываний, запретить прерывания на локальном процессоре и захватить указанную блокировку |
spin_unlock() |
Освободить указанную блокировку |
spin_unlock_irq() |
Освободить указанную блокировку и разрешить прерывания на локальном процессоре |
spin_unlock_irqrestore() |
Освободить указанную блокировку и восстановить состояние системы прерываний на локальном процессоре в указанное первоначальное значение |
spin_lock_init() |
Инициализировать объект типа spinlock_t в заданной области памяти |
spin_trylock() |
Выполнить попытку захвата указанной блокировки и в случае неудачи возвратить ненулевое значение |
spin_is_locked() |
Возвратить ненулевое значение, если указанная блокировка в данный момент захвачена, и нулевое значение в противном случае |
- Другие инструменты для осуществления резервного копирования
- Типы данных для работы с датой и временем
- Новые функции API для работы с Blob и массивами
- Другие изменения в 7-й версии InterBase
- 10 Алгоритм работы с возражениями
- Датчик расположения и другие датчики
- 33.1. Интерактивный и неинтерактивный режим работы
- 4. Режимы работы экспертных систем
- 6.4 Другие файловые системы
- ГЛАВА 5. СИСТЕМНЫЕ ОПЕРАЦИИ ДЛЯ РАБОТЫ С ФАЙЛОВОЙ СИСТЕМОЙ
- Введение Визуализация работы коллективного интеллекта
- 5.2. Основные приемы работы, элементы текстового редактора