99 lines
2.6 KiB
Plaintext
99 lines
2.6 KiB
Plaintext
/*
|
|
* PROTOCOL definitions for AGENT_GET_CONFIG
|
|
*/
|
|
struct ch_cfg_t {
|
|
u_int ch_id;
|
|
u_int encl_id<>;
|
|
u_int stat_gencode<>;
|
|
};
|
|
typedef struct ch_cfg_t cfg_t<>;
|
|
%#ifdef XDR_SHORTCUT
|
|
%#define encl_id_len encl_id.encl_id_len
|
|
%#define encl_id_val encl_id.encl_id_val
|
|
%#define stat_gencode_len stat_gencode.stat_gencode_len
|
|
%#define stat_gencode_val stat_gencode.stat_gencode_val
|
|
%#endif
|
|
|
|
/*
|
|
* PROTOCOL definitions for AGENT_GET_STATUS
|
|
*/
|
|
struct enc_addr_t {
|
|
u_int ch_id;
|
|
u_int encl_id;
|
|
};
|
|
|
|
typedef opaque drv_stat_t<>;
|
|
typedef opaque fan_stat_t<>;
|
|
typedef opaque ps_stat_t<>;
|
|
typedef opaque lcc_stat_t<>;
|
|
|
|
struct enc_stat_t {
|
|
u_int encl_id;
|
|
u_int encl_status;
|
|
u_int encl_phys_id;
|
|
char encl_vid[8]; /* Vendor ID */
|
|
char encl_pid[8]; /* Vendor ID */
|
|
char encl_prl[8]; /* Rev. Level */
|
|
u_char encl_wwn[8]; /* Unique WWN */
|
|
char encl_lccstr<>; /* LCC text string */
|
|
drv_stat_t drv<>;
|
|
fan_stat_t fan<>;
|
|
ps_stat_t ps<>;
|
|
lcc_stat_t lcc<>;
|
|
};
|
|
%#ifdef XDR_SHORTCUT
|
|
%#define encl_lccstr_len encl_lccstr.encl_lccstr_len
|
|
%#define encl_lccstr_val encl_lccstr.encl_lccstr_val
|
|
%#define drv_len drv.drv_len
|
|
%#define drv_val drv.drv_val
|
|
%#define fan_len fan.fan_len
|
|
%#define fan_val fan.fan_val
|
|
%#define ps_len ps.ps_len
|
|
%#define ps_val ps.ps_val
|
|
%#define lcc_len lcc.lcc_len
|
|
%#define lcc_val lcc.lcc_val
|
|
%#endif
|
|
|
|
/*
|
|
* PROTOCOL definitions for AGENT_SET_DRV_[REMOVE,INSERT,LED]
|
|
*/
|
|
typedef opaque fcid_t<16>;
|
|
struct drive_op_t {
|
|
u_int ch_id;
|
|
u_int op;
|
|
fcid_t fcid_bm;
|
|
};
|
|
|
|
%#ifndef _FCID_BM_
|
|
%#define _FCID_BM_
|
|
%typedef struct {
|
|
% u_char fcid_bits[16];
|
|
%} fcid_bitmap_struct_t;
|
|
%typedef fcid_bitmap_struct_t *fcid_bitmap_t;
|
|
%#define NFCIDBITS 128
|
|
%#define FCID_SET(_bm, _n) \
|
|
% ((_bm)->fcid_bits[15-(_n)/8] |= (u_char) (1 << ((_n) % 8)))
|
|
%#define FCID_CLR(_bm, _n) \
|
|
% ((_bm)->fcid_bits[15-(_n)/8] &= (u_char) ~(1 << ((_n) % 8)))
|
|
%#define FCID_ISSET(_bm, _n) \
|
|
% ((_bm)->fcid_bits[15-(_n)/8] & (u_char) (1 << ((_n) % 8)))
|
|
%#define FCID_NEW() \
|
|
% (calloc(1, sizeof(fcid_bitmap_struct_t)))
|
|
%#define FCID_FREE(_bm) \
|
|
% (free(_bm))
|
|
%#define FCID_COPY(_bmsrc, _bmdst) \
|
|
% (bcopy(_bmsrc, _bmdst, sizeof(fcid_bitmap_struct_t)))
|
|
%#endif
|
|
|
|
program AGENT_PROG {
|
|
version AGENT_VERS {
|
|
string AGENT_GET_VERS(void) = 1;
|
|
cfg_t AGENT_GET_CONFIG(void) = 2;
|
|
enc_stat_t AGENT_GET_STATUS(enc_addr_t) = 3;
|
|
int AGENT_SET_DRV_REMOVE(drive_op_t) = 4;
|
|
int AGENT_SET_DRV_INSERT(drive_op_t) = 5;
|
|
int AGENT_SET_DRV_LED(drive_op_t) = 6;
|
|
int AGENT_SET_DRV_BYPASS(drive_op_t) = 7;
|
|
} = 1;
|
|
} = 0x20455349; /* 'E' 'S' 'I' */
|