Logo Search packages:      
Sourcecode: dmraid version File versions

sil.h

/*
 * Copyright (C) 2004,2005  Heinz Mauelshagen, Red Hat GmbH.
 *                          All rights reserved.
 *
 * See file LICENSE at the top of this source tree for license information.
 */

#ifndef     _SIL_H_
#define     _SIL_H_

#ifdef      FORMAT_HANDLER
#undef      FORMAT_HANDLER

#include <stdint.h>

#define SIL_CONFIGOFFSET        ((di->sectors - 1) << 9)
#define SIL_DATAOFFSET          0       /* Data offset in sectors */

struct sil {
        uint8_t   unknown0[0x2E];         /* 0x4 - 0x2D */
        uint8_t   ascii_version[0x36 - 0x2E];/* 0x2E - 0x35 */
      int8_t            diskname[0x56 - 0x36];  /* 0x36 - 0x55 */
      int8_t            unknown1[0x60 - 0x56];  /* 0x56 - 0x59 */ 
      uint32_t    magic;                  /* 0x60 - 0x63 */
#define     SIL_MAGIC   0x3000000
#define     SIL_MAGIC_OK(sil) ((sil->magic & 0x3ffffff) == SIL_MAGIC)
      int8_t            unknown1a[0x6C - 0x64]; /* 0x64 - 0x6B */ 
      uint32_t    array_sectors_low;      /* 0x6C - 0x6F */
      uint32_t    array_sectors_high;     /* 0x70 - 0x73 */
      int8_t            unknown2[0x78 - 0x74];  /* 0x74 - 0x77 */
      uint32_t    thisdisk_sectors; /* 0x78 - 0x7B */
      int8_t            unknown3[0x100 - 0x7C]; /* 0x7C - 0xFF */
      int8_t            unknown4[0x104 - 0x100];/* 0x100 - 0x103 */
      uint16_t    product_id;       /* 0x104 + 0x105 */
      uint16_t    vendor_id;        /* 0x106 + 0x107 */
        uint16_t  minor_ver;        /* 0x108 + 0x109 */
        uint16_t  major_ver;        /* 0x10A + 0x10B */
      uint8_t     seconds;          /* 0x10C */
      uint8_t     minutes;          /* 0x10D */
      uint8_t     hour;             /* 0x10E */
      uint8_t     day;              /* 0x10F */
      uint8_t     month;                  /* 0x110 */
      uint8_t     year;             /* 0x111 */
      uint16_t    raid0_stride;           /* 0x112 + 0x113 */
      int8_t            unknown6[0x116 - 0x114];/* 0x114 + 0x115 */
      uint8_t     disk_number;            /* 0x116 */
      uint8_t     type;             /* 0x117 */
#define     SIL_T_RAID0 0
#define     SIL_T_RAID1 1
#define     SIL_T_RAID10      2
#define     SIL_T_RAID5 16
#define     SIL_T_SPARE 3
#define     SIL_T_JBOD  255
      int8_t            drives_per_striped_set; /* 0x118 */
      int8_t            striped_set_number;     /* 0x119 */
        int8_t          drives_per_mirrored_set;/* 0x11A */
        int8_t          mirrored_set_number;    /* 0x11B */
      uint32_t    rebuild_ptr_low;  /* 0x11C - 0x12F */
      uint32_t    rebuild_ptr_high; /* 0x120 - 0x123 */
      uint32_t    incarnation_no;         /* 0x124 - 0x127 */
        uint8_t   member_status;          /* 0x128 */
        uint8_t   mirrored_set_state;     /* 0x129 */
#define     SIL_OK                  0
#define     SIL_MIRROR_NOSYNC 1
#define     SIL_MIRROR_SYNC         2
        uint8_t   reported_device_location;/* 0x12A */
        uint8_t   idechannel;       /* 0x12B */
        uint8_t   auto_rebuild;           /* 0x12C */
#define     SIL_MIRROR_NOAUTOREBUILD      0
      uint8_t           unknown8;         /* 0x12D */
      uint8_t           text_type[0x13E - 0x12E]; /* 0x12E - 0x13D */
      uint16_t    checksum1;        /* 0x13E + 0x13F */     
      int8_t            assumed_zeros[0x1FE - 0x140];/* 0x140 - 0x1FD */
      uint16_t    checksum2;        /* 0x1FE + 0x1FF */
} __attribute__ ((packed));
#endif

int register_sil(struct lib_context *lc);

#endif

Generated by  Doxygen 1.6.0   Back to index