⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spinlock.h

📁 Linux下的一个关系数据库源代码
💻 H
字号:
#ifndef __SPINLOCK_H__#define __SPINLOCK_H__#if HAVE_CONFIG_H#include <config.h>#endif#include "tdb.h"#ifdef USE_SPINLOCKS#define RWLOCK_BIAS 0x1000UL/* OS SPECIFIC */#define MAX_BUSY_LOOPS 1000#undef USE_SCHED_YIELD/* ARCH SPECIFIC *//* We should make sure these are padded to a cache line */#if defined(SPARC_SPINLOCKS)typedef volatile char spinlock_t;#elif defined(POWERPC_SPINLOCKS)typedef volatile unsigned long spinlock_t;#elif defined(INTEL_SPINLOCKS)typedef volatile int spinlock_t;#elif defined(MIPS_SPINLOCKS)typedef volatile unsigned long spinlock_t;#else#error Need to implement spinlock code in spinlock.h#endiftypedef struct {	spinlock_t lock;	volatile int count;} tdb_rwlock_t;int tdb_spinlock(TDB_CONTEXT *tdb, int list, int rw_type);int tdb_spinunlock(TDB_CONTEXT *tdb, int list, int rw_type);int tdb_create_rwlocks(int fd, unsigned int hash_size);int tdb_clear_spinlocks(TDB_CONTEXT *tdb);#else /* !USE_SPINLOCKS */#if 0#define tdb_create_rwlocks(fd, hash_size) 0#define tdb_spinlock(tdb, list, rw_type) (-1)#define tdb_spinunlock(tdb, list, rw_type) (-1)#elseint tdb_spinlock(TDB_CONTEXT *tdb, int list, int rw_type);int tdb_spinunlock(TDB_CONTEXT *tdb, int list, int rw_type);int tdb_create_rwlocks(int fd, unsigned int hash_size);#endifint tdb_clear_spinlocks(TDB_CONTEXT *tdb);#endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -