00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef LIBSTORAGEMGMT_TYPES_H
00020 #define LIBSTORAGEMGMT_TYPES_H
00021
00022
00023 #ifdef __cplusplus
00024 #define __STDC_FORMAT_MACROS
00025 #define __STDC_LIMIT_MACROS
00026 #endif
00027 #include <inttypes.h>
00028
00029 #ifdef __cplusplus
00030 extern "C" {
00031 #endif
00032
00035
00036 typedef uint64_t lsm_flag;
00037
00038 #define LSM_CLIENT_FLAG_RSVD 0
00039
00043 typedef struct _lsm_connect lsm_connect;
00044
00048 typedef struct _lsm_volume lsm_volume;
00049
00054 typedef struct _lsm_pool lsm_pool;
00055
00059 typedef struct _lsm_initiator lsm_initiator;
00060
00064 typedef struct _lsm_storage_capabilities lsm_storage_capabilities;
00065
00069 typedef struct _lsm_access_group lsm_access_group;
00070
00074 typedef struct _lsm_nfs_export lsm_nfs_export;
00075
00079 typedef struct _lsm_block_range lsm_block_range;
00080
00084 typedef struct _lsm_system lsm_system;
00085
00089 typedef struct _lsm_string_list lsm_string_list;
00090
00094 typedef struct _lsm_fs lsm_fs;
00095
00099 typedef struct _lsm_fs_ss lsm_fs_ss;
00100
00104 typedef struct _lsm_disk lsm_disk;
00105
00109 typedef struct _lsm_hash lsm_hash;
00110
00114 typedef struct _lsm_target_port lsm_target_port;
00115
00118 typedef enum {
00119 LSM_VOLUME_REPLICATE_UNKNOWN = -1,
00121 LSM_VOLUME_REPLICATE_CLONE = 2,
00123 LSM_VOLUME_REPLICATE_COPY = 3,
00125 LSM_VOLUME_REPLICATE_MIRROR_SYNC = 4,
00127 LSM_VOLUME_REPLICATE_MIRROR_ASYNC = 5
00129 } lsm_replication_type;
00130
00132 typedef enum {
00133 LSM_VOLUME_PROVISION_UNKNOWN = -1,
00135 LSM_VOLUME_PROVISION_THIN = 1,
00137 LSM_VOLUME_PROVISION_FULL = 2,
00139 LSM_VOLUME_PROVISION_DEFAULT = 3
00141 } lsm_volume_provision_type;
00142
00143
00145 typedef enum {
00146 LSM_VOLUME_RAID_TYPE_UNKNOWN = -1,
00148 LSM_VOLUME_RAID_TYPE_RAID0 = 0,
00150 LSM_VOLUME_RAID_TYPE_RAID1 = 1,
00152 LSM_VOLUME_RAID_TYPE_RAID3 = 3,
00154 LSM_VOLUME_RAID_TYPE_RAID4 = 4,
00156 LSM_VOLUME_RAID_TYPE_RAID5 = 5,
00158 LSM_VOLUME_RAID_TYPE_RAID6 = 6,
00160 LSM_VOLUME_RAID_TYPE_RAID10 = 10,
00162 LSM_VOLUME_RAID_TYPE_RAID15 = 15,
00164 LSM_VOLUME_RAID_TYPE_RAID16 = 16,
00166 LSM_VOLUME_RAID_TYPE_RAID50 = 50,
00168 LSM_VOLUME_RAID_TYPE_RAID60 = 60,
00170 LSM_VOLUME_RAID_TYPE_RAID51 = 51,
00172 LSM_VOLUME_RAID_TYPE_RAID61 = 61,
00174 LSM_VOLUME_RAID_TYPE_JBOD = 20,
00176 LSM_VOLUME_RAID_TYPE_MIXED = 21,
00178 LSM_VOLUME_RAID_TYPE_OTHER = 22,
00180 } lsm_volume_raid_type;
00181
00182
00184 typedef enum {
00185 LSM_POOL_MEMBER_TYPE_UNKNOWN = 0,
00187 LSM_POOL_MEMBER_TYPE_OTHER = 1,
00189 LSM_POOL_MEMBER_TYPE_DISK = 2,
00191 LSM_POOL_MEMBER_TYPE_POOL = 3,
00198 } lsm_pool_member_type;
00199
00200 #define LSM_VOLUME_STRIP_SIZE_UNKNOWN 0
00201 #define LSM_VOLUME_DISK_COUNT_UNKNOWN 0
00202 #define LSM_VOLUME_MIN_IO_SIZE_UNKNOWN 0
00203 #define LSM_VOLUME_OPT_IO_SIZE_UNKNOWN 0
00204
00208 #define LSM_VOLUME_ADMIN_STATE_ENABLED 0x1
00209
00210 #define LSM_VOLUME_ADMIN_STATE_DISABLED 0x0
00211
00217 #define LSM_SYSTEM_STATUS_UNKNOWN 0x00000001
00218
00219 #define LSM_SYSTEM_STATUS_OK 0x00000002
00220
00221 #define LSM_SYSTEM_STATUS_ERROR 0x00000004
00222
00223 #define LSM_SYSTEM_STATUS_DEGRADED 0x00000008
00224
00225 #define LSM_SYSTEM_STATUS_PREDICTIVE_FAILURE 0x00000010
00226
00227 #define LSM_SYSTEM_STATUS_OTHER 0x00000020
00228
00231 typedef enum {
00232 LSM_ACCESS_GROUP_INIT_TYPE_UNKNOWN = 0,
00234 LSM_ACCESS_GROUP_INIT_TYPE_OTHER = 1,
00236 LSM_ACCESS_GROUP_INIT_TYPE_WWPN = 2,
00238 LSM_ACCESS_GROUP_INIT_TYPE_ISCSI_IQN = 5,
00240 LSM_ACCESS_GROUP_INIT_TYPE_ISCSI_WWPN_MIXED = 7
00242 } lsm_access_group_init_type;
00243
00244
00246 typedef enum {
00247 LSM_JOB_INPROGRESS = 1,
00249 LSM_JOB_COMPLETE = 2,
00251 LSM_JOB_ERROR = 3
00253 } lsm_job_status;
00254
00255 typedef enum {
00256 LSM_DISK_TYPE_UNKNOWN = 0,
00257 LSM_DISK_TYPE_OTHER = 1,
00258 LSM_DISK_TYPE_ATA = 3,
00259 LSM_DISK_TYPE_SATA = 4,
00260 LSM_DISK_TYPE_SAS = 5,
00261 LSM_DISK_TYPE_FC = 6,
00262 LSM_DISK_TYPE_SOP = 7,
00263 LSM_DISK_TYPE_SCSI = 8,
00264 LSM_DISK_TYPE_LUN = 9,
00265 LSM_DISK_TYPE_NL_SAS = 51,
00266 LSM_DISK_TYPE_HDD = 52,
00267 LSM_DISK_TYPE_SSD = 53,
00268 LSM_DISK_TYPE_HYBRID = 54,
00269 } lsm_disk_type;
00270
00271
00272 #define LSM_DISK_STATUS_UNKNOWN 0x0000000000000001
00273 #define LSM_DISK_STATUS_OK 0x0000000000000002
00274 #define LSM_DISK_STATUS_OTHER 0x0000000000000004
00275 #define LSM_DISK_STATUS_PREDICTIVE_FAILURE 0x0000000000000008
00276 #define LSM_DISK_STATUS_ERROR 0x0000000000000010
00277 #define LSM_DISK_STATUS_REMOVED 0x0000000000000020
00278 #define LSM_DISK_STATUS_STARTING 0x0000000000000040
00279 #define LSM_DISK_STATUS_STOPPING 0x0000000000000080
00280 #define LSM_DISK_STATUS_STOPPED 0x0000000000000100
00281 #define LSM_DISK_STATUS_INITIALIZING 0x0000000000000200
00282 #define LSM_DISK_STATUS_MAINTENANCE_MODE 0x0000000000000400
00283 #define LSM_DISK_STATUS_SPARE_DISK 0x0000000000000800
00284 #define LSM_DISK_STATUS_RECONSTRUCT 0x0000000000001000
00285 #define LSM_DISK_STATUS_FREE 0x0000000000002000
00286
00296 #define LSM_DISK_BLOCK_SIZE_NOT_FOUND -1
00297 #define LSM_DISK_BLOCK_COUNT_NOT_FOUND -1
00298
00299 #define LSM_POOL_STATUS_UNKNOWN 0x0000000000000001
00300 #define LSM_POOL_STATUS_OK 0x0000000000000002
00301 #define LSM_POOL_STATUS_OTHER 0x0000000000000004
00302 #define LSM_POOL_STATUS_DEGRADED 0x0000000000000010
00303 #define LSM_POOL_STATUS_ERROR 0x0000000000000020
00304 #define LSM_POOL_STATUS_STOPPED 0x0000000000000200
00305 #define LSM_POOL_STATUS_RECONSTRUCTING 0x0000000000001000
00306 #define LSM_POOL_STATUS_VERIFYING 0x0000000000002000
00307 #define LSM_POOL_STATUS_INITIALIZING 0x0000000000004000
00308 #define LSM_POOL_STATUS_GROWING 0x0000000000008000
00309
00310 #define LSM_POOL_ELEMENT_TYPE_POOL 0x0000000000000002
00311 #define LSM_POOL_ELEMENT_TYPE_VOLUME 0x0000000000000004
00312 #define LSM_POOL_ELEMENT_TYPE_FS 0x0000000000000008
00313 #define LSM_POOL_ELEMENT_TYPE_DELTA 0x0000000000000010
00314 #define LSM_POOL_ELEMENT_TYPE_VOLUME_FULL 0x0000000000000020
00315 #define LSM_POOL_ELEMENT_TYPE_VOLUME_THIN 0x0000000000000040
00316 #define LSM_POOL_ELEMENT_TYPE_SYS_RESERVED 0x0000000000000400
00317
00318 #define LSM_POOL_UNSUPPORTED_VOLUME_GROW 0x0000000000000001
00319 #define LSM_POOL_UNSUPPORTED_VOLUME_SHRINK 0x0000000000000002
00320
00321 typedef enum {
00322 LSM_TARGET_PORT_TYPE_OTHER = 1,
00323 LSM_TARGET_PORT_TYPE_FC = 2,
00324 LSM_TARGET_PORT_TYPE_FCOE = 3,
00325 LSM_TARGET_PORT_TYPE_ISCSI = 4
00326 } lsm_target_port_type;
00327
00328 #define LSM_VOLUME_VCR_STRIP_SIZE_DEFAULT 0
00329
00331 #ifdef __cplusplus
00332 }
00333 #endif
00334 #endif