diff options
Diffstat (limited to 'libc/kernel/common/linux/blockgroup_lock.h')
-rw-r--r-- | libc/kernel/common/linux/blockgroup_lock.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/libc/kernel/common/linux/blockgroup_lock.h b/libc/kernel/common/linux/blockgroup_lock.h new file mode 100644 index 0000000..c814020 --- /dev/null +++ b/libc/kernel/common/linux/blockgroup_lock.h @@ -0,0 +1,29 @@ +/**************************************************************************** + **************************************************************************** + *** + *** This header was automatically generated from a Linux kernel header + *** of the same name, to make information necessary for userspace to + *** call into the kernel available to libc. It contains only constants, + *** structures, and macros generated from the original header, and thus, + *** contains no copyrightable information. + *** + **************************************************************************** + ****************************************************************************/ +#ifndef _LINUX_BLOCKGROUP_LOCK_H +#define _LINUX_BLOCKGROUP_LOCK_H + +#include <linux/spinlock.h> +#include <linux/cache.h> + +#define NR_BG_LOCKS 1 + +struct bgl_lock { + spinlock_t lock; +} ____cacheline_aligned_in_smp; + +struct blockgroup_lock { + struct bgl_lock locks[NR_BG_LOCKS]; +}; + +#define sb_bgl_lock(sb, block_group) (&(sb)->s_blockgroup_lock.locks[(block_group) & (NR_BG_LOCKS-1)].lock) +#endif |