linux-old/include/linux/raid/md_u.h
<<
>>
Prefs
   1/*
   2   md_u.h : user <=> kernel API between Linux raidtools and RAID drivers
   3          Copyright (C) 1998 Ingo Molnar
   4          
   5   This program is free software; you can redistribute it and/or modify
   6   it under the terms of the GNU General Public License as published by
   7   the Free Software Foundation; either version 2, or (at your option)
   8   any later version.
   9   
  10   You should have received a copy of the GNU General Public License
  11   (for example /usr/src/linux/COPYING); if not, write to the Free
  12   Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  
  13*/
  14
  15#ifndef _MD_U_H
  16#define _MD_U_H
  17
  18/* ioctls */
  19
  20/* status */
  21#define RAID_VERSION            _IOR (MD_MAJOR, 0x10, mdu_version_t)
  22#define GET_ARRAY_INFO          _IOR (MD_MAJOR, 0x11, mdu_array_info_t)
  23#define GET_DISK_INFO           _IOR (MD_MAJOR, 0x12, mdu_disk_info_t)
  24#define PRINT_RAID_DEBUG        _IO (MD_MAJOR, 0x13)
  25#define RAID_AUTORUN            _IO (MD_MAJOR, 0x14)
  26
  27/* configuration */
  28#define CLEAR_ARRAY             _IO (MD_MAJOR, 0x20)
  29#define ADD_NEW_DISK            _IOW (MD_MAJOR, 0x21, mdu_disk_info_t)
  30#define HOT_REMOVE_DISK         _IO (MD_MAJOR, 0x22)
  31#define SET_ARRAY_INFO          _IOW (MD_MAJOR, 0x23, mdu_array_info_t)
  32#define SET_DISK_INFO           _IO (MD_MAJOR, 0x24)
  33#define WRITE_RAID_INFO         _IO (MD_MAJOR, 0x25)
  34#define UNPROTECT_ARRAY         _IO (MD_MAJOR, 0x26)
  35#define PROTECT_ARRAY           _IO (MD_MAJOR, 0x27)
  36#define HOT_ADD_DISK            _IO (MD_MAJOR, 0x28)
  37#define SET_DISK_FAULTY         _IO (MD_MAJOR, 0x29)
  38#define HOT_GENERATE_ERROR      _IO (MD_MAJOR, 0x2a)
  39
  40/* usage */
  41#define RUN_ARRAY               _IOW (MD_MAJOR, 0x30, mdu_param_t)
  42#define START_ARRAY             _IO (MD_MAJOR, 0x31)
  43#define STOP_ARRAY              _IO (MD_MAJOR, 0x32)
  44#define STOP_ARRAY_RO           _IO (MD_MAJOR, 0x33)
  45#define RESTART_ARRAY_RW        _IO (MD_MAJOR, 0x34)
  46
  47typedef struct mdu_version_s {
  48        int major;
  49        int minor;
  50        int patchlevel;
  51} mdu_version_t;
  52
  53typedef struct mdu_array_info_s {
  54        /*
  55         * Generic constant information
  56         */
  57        int major_version;
  58        int minor_version;
  59        int patch_version;
  60        int ctime;
  61        int level;
  62        int size;
  63        int nr_disks;
  64        int raid_disks;
  65        int md_minor;
  66        int not_persistent;
  67
  68        /*
  69         * Generic state information
  70         */
  71        int utime;              /*  0 Superblock update time                  */
  72        int state;              /*  1 State bits (clean, ...)                 */
  73        int active_disks;       /*  2 Number of currently active disks        */
  74        int working_disks;      /*  3 Number of working disks                 */
  75        int failed_disks;       /*  4 Number of failed disks                  */
  76        int spare_disks;        /*  5 Number of spare disks                   */
  77
  78        /*
  79         * Personality information
  80         */
  81        int layout;             /*  0 the array's physical layout             */
  82        int chunk_size; /*  1 chunk size in bytes                     */
  83
  84} mdu_array_info_t;
  85
  86typedef struct mdu_disk_info_s {
  87        /*
  88         * configuration/status of one particular disk
  89         */
  90        int number;
  91        int major;
  92        int minor;
  93        int raid_disk;
  94        int state;
  95
  96} mdu_disk_info_t;
  97
  98typedef struct mdu_start_info_s {
  99        /*
 100         * configuration/status of one particular disk
 101         */
 102        int major;
 103        int minor;
 104        int raid_disk;
 105        int state;
 106
 107} mdu_start_info_t;
 108
 109typedef struct mdu_param_s
 110{
 111        int                     personality;    /* 1,2,3,4 */
 112        int                     chunk_size;     /* in bytes */
 113        int                     max_fault;      /* unused for now */
 114} mdu_param_t;
 115
 116#endif 
 117
 118
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.