locks.h
来自「基于组件方式开发操作系统的OSKIT源代码」· C头文件 代码 · 共 65 行
H
65 行
#ifndef _LINUX_LOCKS_H#define _LINUX_LOCKS_H#ifndef _LINUX_MM_H#include <linux/mm.h>#endif#ifndef _LINUX_PAGEMAP_H#include <linux/pagemap.h>#endif/* * Buffer cache locking - note that interrupts may only unlock, not * lock buffers. */extern void __wait_on_buffer(struct buffer_head *);extern inline void wait_on_buffer(struct buffer_head * bh){ if (test_bit(BH_Lock, &bh->b_state)) __wait_on_buffer(bh);}extern inline void lock_buffer(struct buffer_head * bh){ while (test_and_set_bit(BH_Lock, &bh->b_state)) __wait_on_buffer(bh);}extern inline void unlock_buffer(struct buffer_head *bh){ clear_bit(BH_Lock, &bh->b_state); wake_up(&bh->b_wait);}#ifndef OSKIT_DEV/* * super-block locking. Again, interrupts may only unlock * a super-block (although even this isn't done right now. * nfs may need it). */extern void __wait_on_super(struct super_block *);extern inline void wait_on_super(struct super_block * sb){ if (sb->s_lock) __wait_on_super(sb);}extern inline void lock_super(struct super_block * sb){ if (sb->s_lock) __wait_on_super(sb); sb->s_lock = 1;}extern inline void unlock_super(struct super_block * sb){ sb->s_lock = 0; wake_up(&sb->s_wait);}#endif /* OSKIT_DEV */#endif /* _LINUX_LOCKS_H */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?