#ifndef _FIOMP_H
#define _FIOMP_H
#pragma ident "%Z%%M% %I% %E% SMI"
#ifdef __cplusplus
extern "C" {
#endif
#define FIOMP_TRUE 1
#define FIOMP_FALSE 0
#define FIOMP_MAX_STR 1024
#define FIOMP_PATH_ALL (-1)
#define FIOMPC ('f' << 8)
#define FIOMPNEW (FIOMPC|0x0)
#define FIOMPENCAP (FIOMPC|0x1)
struct fiompdev {
int api_level;
int inst_no;
minor_t inst_minor;
minor_t user_minor;
int num;
char **devs;
int mpmode;
int autopath;
int block;
int needsync;
void *ext;
};
#define FIOMPDEVINFO (FIOMPC|0x2)
struct fiomp_devinfo {
int inst_no;
char real_name[FIOMP_MAX_STR];
char user_path[FIOMP_MAX_STR];
int path_num;
int mpmode;
int autopath;
int block;
int needsync;
void *ext;
};
#define FIOMPALLINSTNUM (FIOMPC|0x3)
#define FIOMPALLDEVINFO (FIOMPC|0x4)
struct fiomp_all_devinfo {
int num;
struct fiomp_devinfo *devinfo;
};
#define FIOMPMAXPATHNUM (FIOMPC|0x10)
#define FIOMPSETPROP (FIOMPC|0x11)
#define FIOMPGETPROP (FIOMPC|0x12)
struct fiompprop {
char *iomp_name;
char *iomp_real_name;
char *iomp_user_path;
char *iomp_status;
int num;
char **iomp_path;
char **iomp_logical_path;
char **iomp_path_status;
char **iomp_path_block;
};
#define FIOMPDESTROY (FIOMPC|0x13)
#define FIOMPSTOP (FIOMPC|0x14)
#define FIOMPSTART (FIOMPC|0x15)
#define FIOMPLIST (FIOMPC|0x16)
#define FIOMPSTATUS (FIOMPC|0x17)
struct fiompstatus {
int pathnum;
int status;
char *message;
int block_status;
void *ext;
};
#define FIOMP_STAT_ACTIVE PATH_STAT_ACTIVE
#define FIOMP_STAT_STANDBY PATH_STAT_STANDBY
#define FIOMP_STAT_STOP PATH_STAT_STOP
#define FIOMP_STAT_FAIL PATH_STAT_FAIL
#define FIOMP_STAT_DISCON PATH_STAT_DISCON
#define FIOMP_STAT_ENCAP PATH_STAT_ENCAP
#define FIOMP_STAT_EMPTY PATH_STAT_EMPTY
#define FIOMP_BSTAT_BLOCK 1
#define FIOMP_BSTAT_UNBLOCK 0
#define FIOMPADD (FIOMPC|0x18)
#define FIOMPDEL (FIOMPC|0x19)
struct fiomppath {
int num;
char **devs;
};
#define FIOMPACTIVE (FIOMPC|0x1a)
#define FIOMPSTANDBY (FIOMPC|0x1b)
#define FIOMPBLOCK (FIOMPC|0x1c)
#define FIOMPUNBLOCK (FIOMPC|0x1d)
#define FIOMPDIAGON (FIOMPC|0x1e)
#define FIOMPDIAGOFF (FIOMPC|0x1f)
struct fiomp_diag_mode {
int pathnum;
int level;
};
#define FIOMPGETALLSTAT (FIOMPC|0x20)
struct fiomp_all_stat {
int num;
struct fiompstatus *status;
};
#define FIOMPCHG (FIOMPC|0x21)
struct fiompchg {
int num;
struct fiompstatus *set_status;
struct fiompstatus *pre_status;
struct fiompstatus *status;
};
#define FIOMPRECOVER (FIOMPC|0x22)
#define FIOMPDISCONNECT (FIOMPC|0x23)
#define FIOMPCONNECT (FIOMPC|0x24)
#define FIOMPGETEVENT (FIOMPC|0x30)
struct fiompevent {
int event;
int num;
struct fiompstatus *pre_status;
struct fiompstatus *status;
};
#define FIOMP_EVT_NONE 0x0
#define FIOMP_EVT_NEW 0x1
#define FIOMP_EVT_DESTROY 0x2
#define FIOMP_EVT_STAT 0x101
#define FIOMP_EVT_PATHS 0x102
#define FIOMP_PROP_NAME "iomp-name"
#define FIOMP_PROP_REAL_NAME "iomp-real-name"
#define FIOMP_PROP_PATH_N "iomp-path-"
#define FIOMP_PROP_USER_PATH "iomp-user-path"
#define FIOMP_PROP_LOGIC_PATH_N "iomp-logical-path-"
#define FIOMP_PROP_STATUS "iomp-status"
#define FIOMP_PROP_PATH_NUM "iomp-path-num"
#define FIOMP_PROP_STATUS_N "iomp-path-status-"
#define FIOMP_PROP_BLOCK_N "iomp-path-block-"
#define FIOMP_PROP_BLOCK_DEFAULT "iomp-path-block-default"
#ifdef __cplusplus
}
#endif
#endif