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

📄 device.h

📁 GNU FreeDOS兼容MS DOS很好的东东.
💻 H
📖 第 1 页 / 共 2 页
字号:
#define DF_DPCHANGED  0x080#define DF_REFORMAT   0x100#define DF_NOACCESS   0x200/* freedos specific flag bits */#define DF_LBA        0x400#define DF_WRTVERIFY  0x800/* typedef struct ddtstruct ddt;*/struct gblkio {  UBYTE gbio_spcfunbit;  UBYTE gbio_devtype;  UWORD gbio_devattrib;  UWORD gbio_ncyl;  UBYTE gbio_media;  bpb gbio_bpb;  UWORD gbio_nsecs;};struct gblkfv                   /* for format / verify track */{  UBYTE gbfv_spcfunbit;  UWORD gbfv_head;  UWORD gbfv_cyl;  UWORD gbfv_ntracks;};struct gblkrw                   /* for read / write track */{  UBYTE gbrw_spcfunbit;  UWORD gbrw_head;  UWORD gbrw_cyl;  UWORD gbrw_sector;  UWORD gbrw_nsecs;  UBYTE FAR *gbrw_buffer;};struct Gioc_media {  WORD ioc_level;  ULONG ioc_serialno;  BYTE ioc_volume[11];  BYTE ioc_fstype[8];};struct Access_info {  BYTE AI_spec;  BYTE AI_Flag;};/*                                                                      *//* Boot Block (Super Block)                                             *//*                                                                      *//* See BPB comments for the offsets below                               *//*                                                                      */#define BT_JUMP         0#define BT_OEM          3#define BT_BPB          11#define BT_SIZEOF       36typedef struct {  BYTE bt_jump[3];              /* Boot Jump opcodes            */  BYTE bt_oem[8];               /* OEM Name                     */  bpb bt_bpb;                   /* BPB for this media/device    */  WORD bt_nsecs;                /* # Sectors per Track          */  WORD bt_nheads;               /* # Heads                      */  WORD bt_hidden;               /* # Hidden sectors             */  LONG bt_huge;                 /* use if nsecs == 0            */  BYTE bt_drvno;  BYTE bt_reserv;  BYTE bt_btid;  ULONG bt_serialno;  BYTE bt_volume[11];  BYTE bt_fstype[8];} boot;/* File system information structure */struct fsinfo {  UDWORD fi_signature;          /* must be 0x61417272 */  DWORD fi_nfreeclst;           /* number of free clusters, -1 if unknown */  DWORD fi_cluster;             /* most recently allocated cluster, -1 if unknown */  UBYTE fi_reserved[12];};typedef boot super;             /* Alias for boot structure             */typedef struct {  UBYTE r_length;               /*  Request Header length               */  UBYTE r_unit;                 /*  Unit Code                           */  UBYTE r_command;              /*  Command Code                        */  UWORD r_status;               /*  Status                              */  BYTE r_reserved[8];           /*  DOS Reserved Area                   */  union {    struct {      UBYTE _r_nunits;          /*  number of units     */      BYTE FAR *_r_endaddr;     /*  Ending Address      */      bpb *FAR * _r_bpbptr;     /*  ptr to BPB array    */      UBYTE _r_firstunit;    } _r_init;    struct {      BYTE _r_meddesc;          /*  MEDIA Descriptor    */      BYTE _r_retcode;          /*  Return Code         */      BYTE FAR * _r_vid;        /* volume id */    } _r_media;    struct {      BYTE _r_meddesc;          /*  MEDIA Descriptor    */      boot FAR * _r_fat;        /*  boot sector pointer */      bpb FAR * _r_bpbpt;       /*  ptr to BPB table    */    } _r_bpb;    struct {      BYTE _r_meddesc;          /*  MEDIA Descriptor    */      BYTE FAR * _r_trans;      /*  Transfer Address    */      UWORD _r_count;           /*  Byte/Sector Count   */      UWORD _r_start;           /*  Starting Sector No. */      BYTE FAR * _r_vid;        /* Pointer to volume id */      LONG _r_huge;             /* for > 32Mb drives    */    } _r_rw;    struct {      unsigned char _r_ndbyte;  /*  Byte Read From Device       */    } _r_nd;    struct {      UBYTE _r_cat;             /* Category code */      UBYTE _r_fun;             /* Function code */      UWORD _r_si;              /* Contents of SI and DI */      UWORD _r_di;              /* (PC DOS 7 Technical Update, pp 104,105) */      union      {        struct gblkio FAR *_r_io;        struct gblkrw FAR *_r_rw;        struct gblkfv FAR *_r_fv;        struct Gioc_media FAR *_r_gioc;        struct Access_info FAR *_r_ai;      } _r_par;                 /* Pointer to param. block from 440C/440D */    } _r_gen;  } _r_x;} request;#define HUGECOUNT       0xffff#define MAXSHORT        0xffffl/* * Macros to assist request structure legibility *//* Init packet macros                                                   */#define r_nunits        _r_x._r_init._r_nunits#define r_endaddr       _r_x._r_init._r_endaddr#define r_bpbptr        _r_x._r_init._r_bpbptr#define r_firstunit     _r_x._r_init._r_firstunit/* MEDIA Check packet macros                                            */#define r_mcmdesc       _r_x._r_media._r_meddesc#define r_mcretcode     _r_x._r_media._r_retcode#define r_mcvid         _r_x._r_media._r_vid/* Build BPB packet macros                                              */#define r_bpmdesc       _r_x._r_bpb._r_meddesc#define r_bpfat         _r_x._r_bpb._r_fat#define r_bpptr         _r_x._r_bpb._r_bpbpt/* rw packet macros                                                     */#define r_meddesc       _r_x._r_rw._r_meddesc#define r_trans         _r_x._r_rw._r_trans#define r_count         _r_x._r_rw._r_count#define r_start         _r_x._r_rw._r_start#define r_rwvid         _r_x._r_rw._r_vid#define r_huge          _r_x._r_rw._r_huge/* ndread packet macros                                                 */#define r_ndbyte        _r_x._r_nd._r_ndbyte/* generic IOCTL and IOCTL query macros */#define r_cat           _r_x._r_gen._r_cat#define r_fun           _r_x._r_gen._r_fun#define r_si            _r_x._r_gen._r_si#define r_di            _r_x._r_gen._r_di#define r_rw            _r_x._r_gen._r_par._r_rw#define r_io            _r_x._r_gen._r_par._r_io#define r_fv            _r_x._r_gen._r_par._r_fv#define r_gioc          _r_x._r_gen._r_par._r_gioc#define r_ai            _r_x._r_gen._r_par._r_ai/* *interrupt support (spl & splx) support - IBM style */#define I_NONE          0       /* Initial value                *//* predefined interrupt levels - 8259 support                           */#define IRQ0            0x01    /* Level 0 - highest            */#define IRQ1            0x02#define IRQ2            0x04#define IRQ3            0x08#define IRQ4            0x10#define IRQ5            0x20#define IRQ6            0x40#define IRQ7            0x80    /* Level 7 - lowest             *//* standard hardware configuration                                      */#define I_RTC           IRQ0    /* Timer                        */#define I_KBD           IRQ1    /* Keyboard                     */#define I_COM2          IRQ3    /* COM1:                        */#define I_COM1          IRQ4    /* COM2:                        */#define I_HDC           IRQ5    /* Fixed disk                   */#define I_FDC           IRQ6    /* Diskette                     */#define I_PRT           IRQ7    /* Printer                      *//* standard hardware vectors - 8259 defined                             */#define V_RTC           0x08    /* Timer                        */#define V_KBD           0x09    /* Keyboard                     */#define V_LEV2          0x0a    /* Level 2 - uncomitted         */#define V_COM2          0x0b    /* COM1:                        */#define V_COM1          0x0c    /* COM2:                        */#define V_HDC           0x0d    /* Fixed disk                   */#define V_FDC           0x0e    /* Diskette                     */#define V_PRT           0x0f    /* Printer                      */#define V_LEV0          0x08    /* Level 0 - highest            */#define V_LEV1          0x09#define V_LEV2          0x0a    /* Level 2 - uncomitted         */#define V_LEV3          0x0b#define V_LEV4          0x0c#define V_LEV5          0x0d#define V_LEV6          0x0e#define V_LEV7          0x0f    /* Level 7 - lowest             *//* */typedef request FAR *rqptr;typedef bpb FAR *bpbptr;typedef BYTE FAR *byteptr;typedef struct dhdr FAR *dhdrptr;extern request                  /* I/O Request packets                  */  ASM CharReqHdr, ASM IoReqHdr, ASM MediaReqHdr;/* dsk.c */COUNT ASMCFUNC FAR blk_driver(rqptr rp);ddt * getddt(int dev);/* error.c */COUNT char_error(request * rq, struct dhdr FAR * lpDevice);COUNT block_error(request * rq, COUNT nDrive, struct dhdr FAR * lpDevice, int mode);/* sysclk.c */WORD ASMCFUNC FAR clk_driver(rqptr rp);/* execrh.asm */WORD ASMPASCAL execrh(request FAR *, struct dhdr FAR *);/* *      end of device.h */

⌨️ 快捷键说明

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