req.h
来自「南京航空航天大学开发的一个类Unix和Linux的操作系统,好不好看看就知道了,」· C头文件 代码 · 共 56 行
H
56 行
#ifndef _DEVBLKREQ_H#define _DEVBLKREQ_H#include <kern/sched.h>#include <lib/queue.h>#include <fs/buf.h>#include <mm/allockm.h>struct req_t { CHAIN(,req_t); int cmd; dev_t dev; int bsize; /* all buf in this req must have same blk size */ int sectperblk; bno_t startsect, nsect; Q(req,buf_t) bufq; buf_t * curbuf, * endbuf; char * cursect, * endsect; static int lt(req_t * a, req_t * b) { return a->startsect < b->startsect; } req_t(int rw, buf_t * b); ~req_t(); void setcur(); int merge(int rw, buf_t * b); void error(int nsect_); void error() { error(nsect); } void advance(int nsect_); int more() { return cursect != NULL; }; private: void nextsect(int state);};QUEUE(,req_t);typedef Q(,req_t) reqq_t;extern req_t * newreq(int rw, buf_t * b);extern void zapreq(req_t * r);struct scanreq_t { int nsect; buf_t * curbuf, * endbuf; char * cursect, * endsect; scanreq_t(req_t * req, int nsect_); int more() { return (nsect > 0) && cursect; }; void next();};#define foreachsect(sect, req, nsect) \for (scanreq_t __scanreq(req, nsect); \ sect = __scanreq.cursect, __scanreq.more(); \ __scanreq.next())#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?