📄 intermezzo_upcall.h
字号:
/* * Based on cfs.h from Coda, but revamped for increased simplicity. * Linux modifications by Peter Braam, Aug 1996 * Rewritten for InterMezzo */#ifndef _PRESTO_HEADER_#define _PRESTO_HEADER_/* upcall.c */#define SYNCHRONOUS 0#define ASYNCHRONOUS 1int lento_permit(int minor, int pathlen, int fsetnamelen, char *path, char *fset);int lento_opendir(int minor, int pathlen, char *path, int async);int lento_kml(int minor, unsigned int offset, unsigned int first_recno, unsigned int length, unsigned int last_recno, int namelen, char *fsetname);int lento_open(int minor, int pathlen, char *path);int lento_journal(int minor, char *page, int async);int lento_release_permit(int minor, int cookie);/* * Kernel <--> Lento communications. *//* upcalls */#define LENTO_PERMIT 1#define LENTO_JOURNAL 2#define LENTO_OPENDIR 3#define LENTO_OPEN 4#define LENTO_SIGNAL 5#define LENTO_KML 6#define LENTO_COOKIE 7/* Lento <-> Presto RPC arguments */struct lento_up_hdr { unsigned int opcode; unsigned int unique; /* Keep multiple outstanding msgs distinct */ u_short pid; /* Common to all */ u_short uid;};/* This structure _must_ sit at the beginning of the buffer */struct lento_down_hdr { unsigned int opcode; unsigned int unique; unsigned int result;};/* lento_permit: */struct lento_permit_in { struct lento_up_hdr uh; int pathlen; int fsetnamelen; char path[0];};struct lento_permit_out { struct lento_down_hdr dh;};/* lento_opendir: */struct lento_opendir_in { struct lento_up_hdr uh; int async; int pathlen; char path[0];};struct lento_opendir_out { struct lento_down_hdr dh;};/* lento_kml: */struct lento_kml_in { struct lento_up_hdr uh; unsigned int offset; unsigned int first_recno; unsigned int length; unsigned int last_recno; int namelen; char fsetname[0];};struct lento_kml_out { struct lento_down_hdr dh;};/* lento_open: */struct lento_open_in { struct lento_up_hdr uh; int pathlen; char path[0];};struct lento_open_out { struct lento_down_hdr dh;};/* lento_response_cookie */struct lento_response_cookie_in { struct lento_up_hdr uh; int cookie;};struct lento_response_cookie_out { struct lento_down_hdr dh;};struct lento_mknod { struct lento_down_hdr dh; int major; int minor; int mode; char path[0];};/* NB: every struct below begins with an up_hdr */union up_args { struct lento_up_hdr uh; struct lento_permit_in lento_permit; struct lento_open_in lento_open; struct lento_opendir_in lento_opendir; struct lento_kml_in lento_kml; struct lento_response_cookie_in lento_response_cookie;};union down_args { struct lento_down_hdr dh; struct lento_permit_out lento_permit; struct lento_open_out lento_open; struct lento_opendir_out lento_opendir; struct lento_kml_out lento_kml; struct lento_response_cookie_out lento_response_cookie;}; #include "intermezzo_psdev.h"int lento_upcall(int minor, int read_size, int *rep_size, union up_args *buffer, int async, struct upc_req *rq );#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -