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

📄 aspi.h

📁 unix 下tar 执行程序的源代码
💻 H
字号:
#ident "$Id: aspi.h,v 1.3 1991/05/11 13:07:36 chris Exp $"

/*
 $Log: aspi.h,v $
 * Revision 1.3  1991/05/11  13:07:36  chris
 * Add the _srbgeneric structure
 *
 * Revision 1.2  1991/05/02  21:21:16  chris
 * bug fix in the "rdwr" CCB
 *
 * Revision 1.1  1991/03/04  01:21:34  chris
 * Initial revision
 *
 */

static char *aspi_h_id = "$Id: aspi.h,v 1.3 1991/05/11 13:07:36 chris Exp $";

/*
 * structures and typedefs for aspi.c
 */

#pragma pack(1)

struct _srbhead {
  unsigned char cmd;
  unsigned char status;
  unsigned char adapter;
  unsigned char flags;
  DWORD reserved;
} ;

struct _srbinquiry {
  struct _srbhead h;
  unsigned char adapters;
  unsigned char target_id;
  char manager_id[16];
  char adapter_id[16];
  unsigned char parameters[16];
} ;

struct _srbgettyp {
  struct _srbhead h;
  unsigned char target_id;
  unsigned char lun;
  unsigned typ;
} ;

struct _srbreset {
  struct _srbhead h;
  unsigned char target_id;
  unsigned char lun;
  unsigned char reserved[14];
  unsigned char adapter_status;
  unsigned char target_status;
  unsigned int post_off;
  unsigned int post_seg;
  unsigned char workspace[34];
} ;

struct _ccb6  {                 /* common ccb for 6 byte commands */
  unsigned cmd : 8;
  unsigned flag0 : 1;
  unsigned flag1 : 1;
  unsigned flag2 : 1;
  unsigned flag3 : 1;
  unsigned flag4 : 1;
  unsigned lun : 3;
  unsigned adr_1 : 8;
  unsigned adr_0 : 8;
  unsigned len : 8;
  unsigned control : 8;
  unsigned char sense[14];
} ;

struct _ccb10 {                 /* common ccb for 10 byte commands */
  unsigned cmd : 8;
  unsigned flag0 : 1;
  unsigned flag1 : 1;
  unsigned flag2 : 1;
  unsigned flag3 : 1;
  unsigned flag4 : 1;
  unsigned lun : 3;
  unsigned adr_3 : 8;
  unsigned adr_2 : 8;
  unsigned adr_1 : 8;
  unsigned adr_0 : 8;
  unsigned _reserved1 : 8;
  unsigned len_1 : 8;
  unsigned len_0 : 8;
  unsigned control : 8;
  unsigned char sense[14];
} ;

struct _fmt  {                  /* used for the format unit command */
  unsigned cmd : 8;
  unsigned list_fmt : 3;
  unsigned cmplist : 1;
  unsigned fmtdata : 1;
  unsigned lun : 3;
  unsigned vendor : 8;
  unsigned i1 : 8;
  unsigned i0 : 8;
  unsigned control : 8;
  unsigned char sense[14];
} ;

struct _inq  {                  /* used for the scsi inquiry command */
  unsigned cmd : 8;
  unsigned _reserved1 : 5;
  unsigned lun : 3;
  unsigned _reserved2 : 7;
  unsigned evpd : 1;
  unsigned vpd : 8;
  unsigned len : 8;
  unsigned control : 8;
  unsigned char sense[14];
} ;

struct _stp  {                 /* used for the start/stop unit command */
  unsigned cmd : 8;
  unsigned immed : 1;
  unsigned _reserved1 : 4;
  unsigned lun : 3;
  unsigned _reserved2 : 8;
  unsigned _reserved3 : 8;
  unsigned start : 1;
  unsigned eject : 1;
  unsigned _reserved4 : 6;
  unsigned control : 8;
  unsigned char sense[14];
} ;

struct _rem  {                 /* used for the allow medium removal command */
  unsigned cmd : 8;
  unsigned _reserved1 : 5;
  unsigned lun : 3;
  unsigned _reserved2 : 8;
  unsigned _reserved3 : 8;
  unsigned prevent : 1;
  unsigned _reserved4 : 7;
  unsigned control : 8;
  unsigned char sense[14];
} ;

struct _ld  {                /* used for the load/unload command */
  unsigned cmd : 8;
  unsigned immediate : 1;
  unsigned _reserved1 : 4;
  unsigned lun : 3;
  unsigned _reserved2 : 8;
  unsigned _reserved3 : 8;
  unsigned load : 1;
  unsigned retention : 1;
  unsigned eot : 1;
  unsigned _reserved4 : 5;
  unsigned control : 8;
  unsigned char sense[14];
} ;

struct _rdwr  {              /* used for sequencial read/write command */
  unsigned cmd : 8;
  unsigned fixed : 1;
  unsigned sili : 1;
  unsigned _reserved1 : 3;
  unsigned lun : 3;
  unsigned len_2 : 8;
  unsigned len_1 : 8;
  unsigned len_0 : 8;
  unsigned control : 8;
  unsigned char sense[14];
} ;

struct _spc  {               /* used for the space command */
  unsigned cmd : 8;
  unsigned code : 3;
  unsigned _reserved1 : 2;
  unsigned lun : 3;
  unsigned cnt2 : 8;
  unsigned cnt1 : 8;
  unsigned cnt0 : 8;
  unsigned control : 8;
  unsigned sense[14];
} ;

union _ccb  {
  struct _ccb6 c6;
  struct _ccb10 c1;
  struct _fmt fmt;
  struct _inq inq;
  struct _stp stp;
  struct _rem rem;
  struct _ld ld;
  struct _rdwr rdwr;
  struct _spc spc;
} ;

struct _srbio  {
  struct _srbhead h;
  unsigned char target_id;
  unsigned char lun;
  DWORD alloc_len;
  unsigned char sense_len;
  unsigned int  buf_off;
  unsigned int  buf_seg;
  unsigned int  link_off;
  unsigned int  link_seg;
  unsigned char cdb_len;
  unsigned char adapter_status;
  unsigned char target_status;
  unsigned int  post_off;
  unsigned int  post_seg;
  unsigned char workspace[34];
  union _ccb ccb;
} ;

struct _srbgeneric {
  struct _srbhead h;
  unsigned char target_id;
  unsigned char lun;
  DWORD alloc_len;
  unsigned char sense_len;
  unsigned int  buf_off;
  unsigned int  buf_seg;
  unsigned int  link_off;
  unsigned int  link_seg;
  unsigned char cdb_len;
  unsigned char adapter_status;
  unsigned char target_status;
  unsigned int  post_off;
  unsigned int  post_seg;
  unsigned char workspace[34];
} ;

⌨️ 快捷键说明

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