void spin_lock(spinlock_t *lock): acquires the specified lock, spinning if needed until it is available.
void spin_lock_irq(spinlock_t *lock): like spin_lock, but also disables interrupts on the local processor.
void spin_lock_irqsave(spinlock_t *lock, unsigned long flags): like spin_lock_irq, but also saves the current interrupt state in flags.
void spin_lock_bh(spinlock_t *lock): like spin_lock, but also disables the execution of all softirqs.
void spin_unlock(spinlock_t *lock), void spin_unlock_irq(spinlock_t *lock), void spin_unlock_irqrestore(spinlock_t *lock, unsigned long flags) and void spin_unlock_bh(spinlock_t *lock): the corresponding versions of the above, but they release the lock.
void spin_trylock(spinlock_t *lock): returns nonzero if lock is currently held and zero otherwise.
void read_lock(rwlock_t *lock) and void read_unlock(rwlock_t *lock): lock/unlock the read version of a read/write spinlock.
void write_lock(rwlock_t *lock) and void write_unlock(rwlock_t *lock): lock/unlock the write version of a read/write spinlock.
Semaphores
void sema_init(struct semaphore *sem, int val): initializes the given semaphore to the given usage count.
void down(struct semaphore *sem): attempts to acquire the given semaphore, blocking if unavailable.
int down_interruptible(struct semaphore *sem): like down, but also returns -EINTR if a signal is received.
int down_trylock(struct semaphore *sem): like down, but returns nonzero immediately if the semaphore is not available.
void up(struct semaphore *sem): releases the given semaphore.
void init_rwsem(struct rw_semaphore *rwsem): initializes the given read/write semaphore to 1.
void down_read(struct rw_semaphore *rwsem) and void up_read(struct rw_semaphore *rwsem): up/down for reading the given read/write semaphore.
void down_write(struct rw_semaphore *rwsem) and void up_write(struct rw_semaphore *rwsem): up/down for writing the given read/write semaphore.
Big Kernel Lock
void lock_kernel(): tries to acquire the big kernel lock (BKL).
void unlock_kernel(): releases the BKL.
int kernel_locked(): returns true if the BKL is currently acquired and false if not.
Preemption Disabling
void preempt_disable(): increments the preemption counter.
void preempt_enable(): decrements the preemption counter and allows a preemptive reschedule if needed.
void preempt_enable_no_resched(): decrements the preemption counter.
int preempt_get_count(): returns the current value of the preemption counter.