elevator.h

来自「unxi下共享内存的使用」· C头文件 代码 · 共 87 行

H
87
字号
#ifndef _LINUX_ELEVATOR_H#define _LINUX_ELEVATOR_Htypedef int (elevator_merge_fn)(request_queue_t *, struct request **,				struct list_head *, struct buffer_head *bh,				int rw, int max_sectors);typedef void (elevator_merge_cleanup_fn) (request_queue_t *, struct request *, int);typedef void (elevator_merge_req_fn) (struct request *, struct request *);struct elevator_s{	int read_latency;	int write_latency;	int max_bomb_segments;	elevator_merge_fn *elevator_merge_fn;	elevator_merge_cleanup_fn *elevator_merge_cleanup_fn;	elevator_merge_req_fn *elevator_merge_req_fn;	unsigned int queue_ID;};elevator_merge_fn		elevator_noop_merge;elevator_merge_cleanup_fn	elevator_noop_merge_cleanup;elevator_merge_req_fn		elevator_noop_merge_req;elevator_merge_fn		elevator_linus_merge;elevator_merge_cleanup_fn	elevator_linus_merge_cleanup;elevator_merge_req_fn		elevator_linus_merge_req;typedef struct blkelv_ioctl_arg_s {	int queue_ID;	int read_latency;	int write_latency;	int max_bomb_segments;} blkelv_ioctl_arg_t;#define BLKELVGET   _IOR(0x12,106,sizeof(blkelv_ioctl_arg_t))#define BLKELVSET   _IOW(0x12,107,sizeof(blkelv_ioctl_arg_t))extern int blkelvget_ioctl(elevator_t *, blkelv_ioctl_arg_t *);extern int blkelvset_ioctl(elevator_t *, const blkelv_ioctl_arg_t *);extern void elevator_init(elevator_t *, elevator_t);/* * Return values from elevator merger */#define ELEVATOR_NO_MERGE	0#define ELEVATOR_FRONT_MERGE	1#define ELEVATOR_BACK_MERGE	2static inline int elevator_request_latency(elevator_t * elevator, int rw){	int latency;	latency = elevator->read_latency;	if (rw != READ)		latency = elevator->write_latency;	return latency;}#define ELEVATOR_NOOP							\((elevator_t) {								\	0,				/* read_latency */		\	0,				/* write_latency */		\	0,				/* max_bomb_segments */		\	elevator_noop_merge,		/* elevator_merge_fn */		\	elevator_noop_merge_cleanup,	/* elevator_merge_cleanup_fn */	\	elevator_noop_merge_req,	/* elevator_merge_req_fn */	\	})#define ELEVATOR_LINUS							\((elevator_t) {								\	8192,				/* read passovers */		\	16384,				/* write passovers */		\	6,				/* max_bomb_segments */		\	elevator_linus_merge,		/* elevator_merge_fn */		\	elevator_linus_merge_cleanup,	/* elevator_merge_cleanup_fn */	\	elevator_linus_merge_req,	/* elevator_merge_req_fn */	\	})#endif

⌨️ 快捷键说明

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