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

📄 ioctl.h

📁 这是又一个C语言解释器, 我们可以方便地扩展其功能, 并将其用于我们的工作中
💻 H
📖 第 1 页 / 共 2 页
字号:
/* Copyright (C) 1996 DJ Delorie, see COPYING.DJ for details */#ifndef __dj_include_sys_ioctl_h_#define __dj_include_sys_ioctl_h_#ifdef __cplusplusextern "C"{#endif#ifndef __dj_ENFORCE_ANSI_FREESTANDING#ifndef __STRICT_ANSI__#ifndef _POSIX_SOURCE/***  plain ioctl functions. Do not use them.**  Never. Really _N_E_V_E_R_. Unless you really know what**  you are doing.***/#define DOS_PLAIN_GETDEVDATA    0x00#define DOS_PLAIN_SETDEVDATA    0x01#define DOS_PLAIN_RCVDATA       0x02#define DOS_PLAIN_SNDDATA       0x03#define DOS_PLAIN_RCVCTLDATA    0x04#define DOS_PLAIN_SNDCTLDATA    0x05#define DOS_PLAIN_CHKINSTAT     0x06#define DOS_PLAIN_CHKOUTSTAT    0x07#define DOS_PLAIN_ISCHANGEABLE  0x08#define DOS_PLAIN_ISREDIRBLK    0x09#define DOS_PLAIN_ISREDIRHND    0x0a#define DOS_PLAIN_SETRETRY      0x0b#define DOS_PLAIN_GENCHARREQ    0x0c#define DOS_PLAIN_GENBLKREQ     0x0d#define DOS_PLAIN_GLDRVMAP      0x0e#define DOS_PLAIN_SLDRVMAP      0x0f#define DOS_PLAIN_QGIOCTLCAPH   0x10#define DOS_PLAIN_QGIOCTLCAPD   0x11/***  Flags for DOS commands*/#define DOS_XFER        0x8000         /* use xfer buffer                   */#define DOS_RETMASK     0x7000         /* Here we put the bits to tell      */                                       /* what to return. 8 possible values */#define DOS_BRAINDEAD   0x0400         /* CX does not hold the number of    */                                       /* bytes to transfer                 */#define DOS_XINARGS(a)  ((a & 3)<<12)  /* How many extra args we expect.    */#define DOS_RETAX       0x1000         /* return AX as result */#define DOS_RETDX       0x2000         /* return DX as result */#define DOS_RETDISI     0x3000         /* return DI SI as result *//*** DOS ioctls we support:*/#define DOS_GETDEVDATA      (DOS_PLAIN_GETDEVDATA|         DOS_RETDX|DOS_XINARGS(0))#define DOS_SETDEVDATA      (DOS_PLAIN_SETDEVDATA|                   DOS_XINARGS(1))#define DOS_RCVDATA         (DOS_PLAIN_RCVDATA   |DOS_XFER|DOS_RETAX|DOS_XINARGS(1))#define DOS_SNDDATA         (DOS_PLAIN_SNDDATA   |DOS_XFER|DOS_RETAX|DOS_XINARGS(1))#define DOS_RCVCTLDATA      (DOS_PLAIN_RCVCTLDATA|DOS_XFER|DOS_RETAX|DOS_XINARGS(1))#define DOS_SNDCTLDATA      (DOS_PLAIN_SNDCTLDATA|DOS_XFER|DOS_RETAX|DOS_XINARGS(1))#define DOS_CHKINSTAT       (DOS_PLAIN_CHKINSTAT |         DOS_RETAX)#define DOS_CHKOUTSTAT      (DOS_PLAIN_CHKOUTSTAT|         DOS_RETAX)#define DOS_ISCHANGEABLE    (DOS_PLAIN_ISCHANGEABLE|       DOS_RETAX)#define DOS_ISREDIRBLK      (DOS_PLAIN_ISREDIRBLK|         DOS_RETDX)#define DOS_ISREDIRHND      (DOS_PLAIN_ISREDIRHND|         DOS_RETDX)#define DOS_SETRETRY        (DOS_PLAIN_SETRETRY|                     DOS_XINARGS(1))/*These ones do not fit into my scheme, because they _DO_NOT_ put the sizeof the xfer buffer in CX. Aaaaargh*/#define DOS_GENCHARREQ      (DOS_PLAIN_GENCHARREQ|DOS_BRAINDEAD|DOS_RETDISI)#define DOS_GENBLKREQ       (DOS_PLAIN_GENBLKREQ |DOS_BRAINDEAD|DOS_RETAX)#define DOS_GLDRVMAP        (DOS_PLAIN_GLDRVMAP|           DOS_RETAX)#define DOS_SLDRVMAP        (DOS_PLAIN_SLDRVMAP|           DOS_RETAX)#define DOS_QGIOCTLCAPH     (DOS_PLAIN_QGIOCTLCAPH|        DOS_RETAX)#define DOS_QGIOCTLCAPD     (DOS_PLAIN_QGIOCTLCAPD|        DOS_RETAX)#define __IS_UNIX_IOCTL(a) ((a) & 0xd0000000U)#if 0/*** UNIX stuff**** This is subject to major changes in the near future.** Do not use it yet.*//*** __WARNING__ :** This ifdef works for DJGPP, because its io.h** defines __djgpp_include_io_h_*/#ifndef _IO/** Ioctl's have the command encoded in the lower word,* and the size of any in or out parameters in the upper* word.  The high 2 bits of the upper word are used* to encode the in/out status of the parameter; for now* we restrict parameters to at most 128 bytes.*/#define IOCPARM_MASK    0x7f            /* parameters must be < 128 bytes */#define IOC_VOID        0x20000000      /* no parameters */#define IOC_OUT         0x40000000      /* copy out parameters */#define IOC_IN          0x80000000      /* copy in parameters */#define IOC_INOUT       (IOC_IN|IOC_OUT)/* the 0x20000000 is so we can distinguish new ioctl's from old */#define _IO(x,y)        (IOC_VOID|(x<<8)|y)#define _IOR(x,y,t)     (IOC_OUT|((sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y)#define _IOW(x,y,t)     (IOC_IN|((sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y)/* this should be _IORW, but stdio got there first */#define _IOWR(x,y,t)    (IOC_INOUT|((sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y)#endif /* _IO *//* Common ioctl's for all disciplines which are handled in ttiocom */enum tty_ioctl {    TXISATTY = ('X'<<8),    /* quick path for isatty */    TXTTYNAME,				/* quick path for ttyname */    TXGETLD,				/* get line discipline */    TXSETLD,				/* set line discipline */    TXGETCD,				/* get control disciplines */    TXADDCD,				/* add control discipline */    TXDELCD,				/* delete control discipline */    TXSBAUD,				/* set integer baud rate */    TXGBAUD,				/* get integer baud rate */    TXSETIHOG,				/* set the input buffer limit */    TXSETOHOG,				/* set the output buffer limit */    TXGPGRP,				/* get p grp with posix security */    TXSPGRP                 /* set p grp with posix security */};#define TTNAMEMAX 32        /* used with TXGETLD, et al */union txname {				/* used with TXGETCD */    int tx_which;			/* which name to get -- inbound */    char tx_name[TTNAMEMAX];/* the name -- outbound */};/*  * window size structure used with TXSETWIN and TXGETWIN.  This is  * exactly the same as the Berkeley structure and can be used with  * TIOCSWINSZ and TIOCGWINSZ -- in fact they are defined to be the  * same. */struct winsize {	unsigned short	ws_row;			/* rows, in characters */	unsigned short	ws_col;			/* columns, in characters */	unsigned short	ws_xpixel;		/* horizontal size, pixels */	unsigned short	ws_ypixel;		/* vertical size, pixels */};struct tchars {	char	t_intrc;	/* interrupt */	char	t_quitc;	/* quit */	char	t_startc;	/* start output */	char	t_stopc;	/* stop output */	char	t_eofc;		/* end-of-file */	char	t_brkc;		/* input delimiter (like nl) */};struct ltchars {	char	t_suspc;	/* stop process signal */	char	t_dsuspc;	/* delayed stop process signal */	char	t_rprntc;	/* reprint line */	char	t_flushc;	/* flush output (toggles) */	char	t_werasc;	/* word erase */	char	t_lnextc;	/* literal next character */};/** Structure for TIOCGETP and TIOCSETP ioctls.*/struct sgttyb {	char	sg_ispeed;		/* input speed */	char	sg_ospeed;		/* output speed */	char	sg_erase;		/* erase character */	char	sg_kill;		/* kill character */	short	sg_flags;		/* mode flags */};/* * Pun for SUN. */

⌨️ 快捷键说明

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