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

📄 osst.h

📁 讲述linux的初始化过程
💻 H
📖 第 1 页 / 共 2 页
字号:
#if   defined(__BIG_ENDIAN_BITFIELD)        unsigned        one             :1;        unsigned        reserved2_6     :1;        unsigned        record32_5      :1;        unsigned        record32        :1;        unsigned        reserved2_23    :2;        unsigned        play32_5        :1;	unsigned        play32          :1;#elif defined(__LITTLE_ENDIAN_BITFIELD)	unsigned        play32          :1;        unsigned        play32_5        :1;        unsigned        reserved2_23    :2;        unsigned        record32        :1;        unsigned        record32_5      :1;        unsigned        reserved2_6     :1;        unsigned        one             :1;#else#error "Please fix <asm/byteorder.h>"#endif} osst_block_size_page_t;/* *	Tape Parameters Page */typedef struct {#if   defined(__BIG_ENDIAN_BITFIELD)        unsigned        ps              :1;        unsigned        reserved1_6     :1;	unsigned        page_code       :6;     /* Page code - Should be 0x2b */#elif defined(__LITTLE_ENDIAN_BITFIELD)	unsigned        page_code       :6;     /* Page code - Should be 0x2b */        unsigned        reserved1_6     :1;        unsigned        ps              :1;#else#error "Please fix <asm/byteorder.h>"#endif	u8		reserved2;	u8		density;	u8		reserved3,reserved4;	u16		segtrk;	u16		trks;	u8		reserved5,reserved6,reserved7,reserved8,reserved9,reserved10;} osst_tape_paramtr_page_t;/* OnStream definitions */#define OS_CONFIG_PARTITION     (0xff)#define OS_DATA_PARTITION       (0)#define OS_PARTITION_VERSION    (1)/* * partition */typedef struct os_partition_s {        __u8    partition_num;        __u8    par_desc_ver;        __u16   wrt_pass_cntr;        __u32   first_frame_ppos;        __u32   last_frame_ppos;        __u32   eod_frame_ppos;} os_partition_t;/* * DAT entry */typedef struct os_dat_entry_s {        __u32   blk_sz;        __u16   blk_cnt;        __u8    flags;        __u8    reserved;} os_dat_entry_t;/* * DAT */#define OS_DAT_FLAGS_DATA       (0xc)#define OS_DAT_FLAGS_MARK       (0x1)typedef struct os_dat_s {        __u8            dat_sz;        __u8            reserved1;        __u8            entry_cnt;        __u8            reserved3;        os_dat_entry_t  dat_list[16];} os_dat_t;/* * Frame types */#define OS_FRAME_TYPE_FILL      (0)#define OS_FRAME_TYPE_EOD       (1 << 0)#define OS_FRAME_TYPE_MARKER    (1 << 1)#define OS_FRAME_TYPE_HEADER    (1 << 3)#define OS_FRAME_TYPE_DATA      (1 << 7)/* * AUX */typedef struct os_aux_s {        __u32           format_id;              /* hardware compability AUX is based on */        char            application_sig[4];     /* driver used to write this media */        __u32           hdwr;                   /* reserved */        __u32           update_frame_cntr;      /* for configuration frame */        __u8            frame_type;        __u8            frame_type_reserved;        __u8            reserved_18_19[2];        os_partition_t  partition;        __u8            reserved_36_43[8];        __u32           frame_seq_num;        __u32           logical_blk_num_high;        __u32           logical_blk_num;        os_dat_t        dat;        __u8            reserved188_191[4];        __u32           filemark_cnt;        __u32           phys_fm;        __u32           last_mark_ppos;        __u8            reserved204_223[20];        /*         * __u8         app_specific[32];         *         * Linux specific fields:         */         __u32          next_mark_ppos;         /* when known, points to next marker */         __u8           linux_specific[28];        __u8            reserved_256_511[256];} os_aux_t;#define OS_FM_TAB_MAX 1024typedef struct os_fm_tab_s {	__u8		fm_part_num;	__u8		reserved_1;	__u8		fm_tab_ent_sz;	__u8		reserved_3;	__u16		fm_tab_ent_cnt;	__u8		reserved6_15[10];	__u32		fm_tab_ent[OS_FM_TAB_MAX];} os_fm_tab_t;typedef struct os_ext_trk_ey_s {	__u8		et_part_num;	__u8		fmt;	__u16		fm_tab_off;	__u8		reserved4_7[4];	__u32		last_hlb_hi;	__u32		last_hlb;	__u32		last_pp;	__u8		reserved20_31[12];} os_ext_trk_ey_t;typedef struct os_ext_trk_tb_s {	__u8		nr_stream_part;	__u8		reserved_1;	__u8		et_ent_sz;	__u8		reserved3_15[13];	os_ext_trk_ey_t	dat_ext_trk_ey;	os_ext_trk_ey_t	qfa_ext_trk_ey;} os_ext_trk_tb_t;typedef struct os_header_s {        char            ident_str[8];        __u8            major_rev;        __u8            minor_rev;	__u16		ext_trk_tb_off;        __u8            reserved12_15[4];        __u8            pt_par_num;        __u8            pt_reserved1_3[3];        os_partition_t  partition[16];	__u32		cfg_col_width;	__u32		dat_col_width;	__u32		qfa_col_width;	__u8		cartridge[16];	__u8		reserved304_511[208];	__u32		old_filemark_list[16680/4];		/* in ADR 1.4 __u8 track_table[16680] */	os_ext_trk_tb_t	ext_track_tb;	__u8		reserved17272_17735[464];	os_fm_tab_t	dat_fm_tab;	os_fm_tab_t	qfa_fm_tab;	__u8		reserved25960_32767[6808];} os_header_t;/* * OnStream ADRL frame */#define OS_FRAME_SIZE   (32 * 1024 + 512)#define OS_DATA_SIZE    (32 * 1024)#define OS_AUX_SIZE     (512)//#define OSST_MAX_SG      2/* The tape buffer descriptor. */typedef struct {  unsigned char in_use;  unsigned char dma;	/* DMA-able buffer */  int buffer_size;  int buffer_blocks;  int buffer_bytes;  int read_pointer;  int writing;  int midlevel_result;  int syscall_result;  Scsi_Request *last_SRpnt;  unsigned char *b_data;  os_aux_t *aux;               /* onstream AUX structure at end of each block */  unsigned short use_sg;       /* zero or number of segments for this adapter */  unsigned short sg_segs;      /* total number of allocated segments */  unsigned short orig_sg_segs; /* number of segments allocated at first try */  struct scatterlist sg[1];    /* MUST BE last item */} OSST_buffer;/* The tape drive descriptor */typedef struct {  kdev_t devt;  unsigned capacity;  Scsi_Device* device;  struct semaphore lock;       /* for serialization */  struct semaphore sem;        /* for SCSI commands */  OSST_buffer * buffer;  /* Drive characteristics */  unsigned char omit_blklims;  unsigned char do_auto_lock;  unsigned char can_bsr;  unsigned char can_partitions;  unsigned char two_fm;  unsigned char fast_mteom;  unsigned char restr_dma;  unsigned char scsi2_logical;  unsigned char default_drvbuffer;  /* 0xff = don't touch, value 3 bits */  int write_threshold;  int timeout;			/* timeout for normal commands */  int long_timeout;		/* timeout for commands known to take long time*/  /* Mode characteristics */  ST_mode modes[ST_NBR_MODES];  int current_mode;#ifdef CONFIG_DEVFS_FS  devfs_handle_t de_r[ST_NBR_MODES];  /*  Rewind entries     */  devfs_handle_t de_n[ST_NBR_MODES];  /*  No-rewind entries  */#endif  /* Status variables */  int partition;  int new_partition;  int nbr_partitions;    /* zero until partition support enabled */  ST_partstat ps[ST_NBR_PARTITIONS];  unsigned char dirty;  unsigned char ready;  unsigned char write_prot;  unsigned char drv_write_prot;  unsigned char in_use;  unsigned char blksize_changed;  unsigned char density_changed;  unsigned char compression_changed;  unsigned char drv_buffer;  unsigned char density;  unsigned char door_locked;  unsigned char rew_at_close;  unsigned char inited;  int block_size;  int min_block;  int max_block;  int recover_count;            /* from tape opening */  int recover_erreg;            /* from last status call */  /*   * OnStream specific data   */  int	   os_fw_rev;			       /* the firmware revision * 10000 */  unsigned char  raw;                          /* flag OnStream raw access (32.5KB block size) */  unsigned char  poll;                         /* flag that this drive needs polling (IDE|firmware) */  unsigned char  logical_blk_in_buffer;	       /* flag that the block as per logical_blk_num						* has been read into STp->buffer and is valid */  int      logical_blk_num;                    /* logical block number */  unsigned first_frame_position;               /* physical frame to be transfered to/from host */  unsigned last_frame_position;                /* physical frame to be transferd to/from tape */  int      cur_frames;                         /* current number of frames in internal buffer */  int      max_frames;                         /* max number of frames in internal buffer */  char     application_sig[5];                 /* application signature */  unsigned char  fast_open;                    /* flag that reminds us we didn't check headers at open */  unsigned short wrt_pass_cntr;                /* write pass counter */  int      update_frame_cntr;                  /* update frame counter */  int      onstream_write_error;               /* write error recovery active */  int      header_ok;                          /* header frame verified ok */  int      linux_media;                        /* reading linux-specifc media */  int      linux_media_version;  os_header_t * header_cache;		       /* cache is kept for filemark positions */  int      filemark_cnt;  int      first_mark_ppos;  int      last_mark_ppos;  int      first_data_ppos;  int      eod_frame_ppos;  int      eod_frame_lfa;  int      write_type;				/* used in write error recovery */  int      read_error_frame;			/* used in read error recovery */  unsigned long cmd_start_time;  unsigned long max_cmd_time;#if DEBUG  unsigned char write_pending;  int nbr_finished;  int nbr_waits;  unsigned char last_cmnd[6];  unsigned char last_sense[16];#endif} OS_Scsi_Tape;/* Values of write_type */#define OS_WRITE_DATA      0#define OS_WRITE_EOD       1#define OS_WRITE_NEW_MARK  2#define OS_WRITE_LAST_MARK 3#define OS_WRITE_HEADER    4#define OS_WRITE_FILLER    5

⌨️ 快捷键说明

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