00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 #ifndef _IPMI_SOLPARM_H
00035 #define _IPMI_SOLPARM_H
00036
00037 #include <OpenIPMI/ipmi_types.h>
00038
00039 #ifdef __cplusplus
00040 extern "C" {
00041 #endif
00042
00043
00044 typedef struct ipmi_solparm_s ipmi_solparm_t;
00045
00046
00047
00048 typedef void (*ipmi_solparm_done_cb)(ipmi_solparm_t *solparm,
00049 int err,
00050 void *cb_data);
00051
00052
00053 typedef void (*ipmi_solparm_ptr_cb)(ipmi_solparm_t *solparm,
00054 void *cb_data);
00055
00056
00057 int ipmi_solparm_alloc(ipmi_mc_t *mc,
00058 unsigned int channel,
00059 ipmi_solparm_t **new_solparm);
00060
00061
00062 int ipmi_solparm_destroy(ipmi_solparm_t *solparm,
00063 ipmi_solparm_done_cb handler,
00064 void *cb_data);
00065
00066
00067
00068
00069
00070
00071 void ipmi_solparm_ref(ipmi_solparm_t *solparm);
00072 void ipmi_solparm_deref(ipmi_solparm_t *solparm);
00073
00074 void ipmi_solparm_iterate_solparms(ipmi_domain_t *domain,
00075 ipmi_solparm_ptr_cb handler,
00076 void *cb_data);
00077
00078 ipmi_mcid_t ipmi_solparm_get_mc_id(ipmi_solparm_t *solparm);
00079 unsigned int ipmi_solparm_get_channel(ipmi_solparm_t *solparm);
00080
00081 #define IPMI_SOLPARM_NAME_LEN 64
00082 int ipmi_solparm_get_name(ipmi_solparm_t *solparm, char *name, int length);
00083
00084
00085
00086
00087
00088
00089
00090
00091 typedef void (*ipmi_solparm_get_cb)(ipmi_solparm_t *solparm,
00092 int err,
00093 unsigned char *data,
00094 unsigned int data_len,
00095 void *cb_data);
00096 int ipmi_solparm_get_parm(ipmi_solparm_t *solparm,
00097 unsigned int parm,
00098 unsigned int set,
00099 unsigned int block,
00100 ipmi_solparm_get_cb done,
00101 void *cb_data);
00102
00103
00104 int ipmi_solparm_set_parm(ipmi_solparm_t *solparm,
00105 unsigned int parm,
00106 unsigned char *data,
00107 unsigned int data_len,
00108 ipmi_solparm_done_cb done,
00109 void *cb_data);
00110
00111
00112 #define IPMI_SOLPARM_SET_IN_PROGRESS 0
00113 #define IPMI_SOLPARM_ENABLE 1
00114 #define IPMI_SOLPARM_AUTHENTICATION 2
00115 #define IPMI_SOLPARM_CHAR_SETTINGS 3
00116 #define IPMI_SOLPARM_RETRY 4
00117 #define IPMI_SOLPARM_NONVOLATILE_BITRATE 5
00118 #define IPMI_SOLPARM_VOLATILE_BITRATE 6
00119 #define IPMI_SOLPARM_PAYLOAD_CHANNEL 7
00120 #define IPMI_SOLPARM_PAYLOAD_PORT_NUMBER 8
00121
00122
00123
00124
00125 typedef struct ipmi_sol_config_s ipmi_sol_config_t;
00126
00127
00128
00129
00130
00131
00132 typedef void (*ipmi_sol_get_config_cb)(ipmi_solparm_t *solparm,
00133 int err,
00134 ipmi_sol_config_t *config,
00135 void *cb_data);
00136 int ipmi_sol_get_config(ipmi_solparm_t *solparm,
00137 ipmi_sol_get_config_cb done,
00138 void *cb_data);
00139
00140
00141
00142
00143
00144
00145 int ipmi_sol_set_config(ipmi_solparm_t *solparm,
00146 ipmi_sol_config_t *config,
00147 ipmi_solparm_done_cb done,
00148 void *cb_data);
00149
00150
00151
00152 int ipmi_sol_clear_lock(ipmi_solparm_t *solparm,
00153 ipmi_sol_config_t *solc,
00154 ipmi_solparm_done_cb done,
00155 void *cb_data);
00156
00157
00158 void ipmi_sol_free_config(ipmi_sol_config_t *config);
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169 enum ipmi_solconf_val_type_e { IPMI_SOLCONFIG_INT, IPMI_SOLCONFIG_BOOL,
00170 IPMI_SOLCONFIG_DATA,
00171 IPMI_SOLCONFIG_IP, IPMI_SOLCONFIG_MAC };
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190 int ipmi_solconfig_get_val(ipmi_sol_config_t *solc,
00191 unsigned int parm,
00192 const char **name,
00193 int *index,
00194 enum ipmi_solconf_val_type_e *valtype,
00195 unsigned int *ival,
00196 unsigned char **dval,
00197 unsigned int *dval_len);
00198
00199
00200 int ipmi_solconfig_set_val(ipmi_sol_config_t *solc,
00201 unsigned int parm,
00202 int index,
00203 unsigned int ival,
00204 unsigned char *dval,
00205 unsigned int dval_len);
00206
00207
00208
00209
00210
00211
00212
00213
00214
00215 int ipmi_solconfig_enum_val(unsigned int parm, int val, int *nval,
00216 const char **sval);
00217
00218
00219
00220 int ipmi_solconfig_enum_idx(unsigned int parm, int idx, const char **sval);
00221
00222 void ipmi_solconfig_data_free(void *data);
00223
00224
00225 unsigned int ipmi_solconfig_str_to_parm(char *name);
00226
00227 const char *ipmi_solconfig_parm_to_str(unsigned int parm);
00228
00229 int ipmi_solconfig_parm_to_type(unsigned int parm,
00230 enum ipmi_solconf_val_type_e *valtype);
00231
00232
00233
00234
00235 unsigned int
00236 ipmi_solconfig_get_enable(ipmi_sol_config_t *solc);
00237 int
00238 ipmi_solconfig_set_enable(ipmi_sol_config_t *solc,
00239 unsigned int val);
00240
00241 unsigned int
00242 ipmi_solconfig_get_force_payload_encryption(ipmi_sol_config_t *solc);
00243 int
00244 ipmi_solconfig_set_force_payload_encryption(ipmi_sol_config_t *solc,
00245 unsigned int val);
00246
00247 unsigned int
00248 ipmi_solconfig_get_force_payload_authentication(ipmi_sol_config_t *solc);
00249 int
00250 ipmi_solconfig_set_force_payload_authentication(ipmi_sol_config_t *solc,
00251 unsigned int val);
00252
00253 unsigned int
00254 ipmi_solconfig_get_privilege_level(ipmi_sol_config_t *solc);
00255 int
00256 ipmi_solconfig_set_privilege_level(ipmi_sol_config_t *solc,
00257 unsigned int val);
00258
00259 unsigned int
00260 ipmi_solconfig_get_char_accumulation_interval(ipmi_sol_config_t *solc);
00261 int
00262 ipmi_solconfig_set_char_accumulation_interval(ipmi_sol_config_t *solc,
00263 unsigned int val);
00264
00265 unsigned int
00266 ipmi_solconfig_get_char_send_threshold(ipmi_sol_config_t *solc);
00267 int
00268 ipmi_solconfig_set_char_send_threshold(ipmi_sol_config_t *solc,
00269 unsigned int val);
00270
00271 unsigned int
00272 ipmi_solconfig_get_retry_count(ipmi_sol_config_t *solc);
00273 int
00274 ipmi_solconfig_set_retry_count(ipmi_sol_config_t *solc,
00275 unsigned int val);
00276
00277 unsigned int
00278 ipmi_solconfig_get_retry_interval(ipmi_sol_config_t *solc);
00279 int
00280 ipmi_solconfig_set_retry_interval(ipmi_sol_config_t *solc,
00281 unsigned int val);
00282
00283 unsigned int
00284 ipmi_solconfig_get_non_volatile_bitrate(ipmi_sol_config_t *solc);
00285 int
00286 ipmi_solconfig_set_non_volatile_bitrate(ipmi_sol_config_t *solc,
00287 unsigned int val);
00288
00289 unsigned int
00290 ipmi_solconfig_get_volatile_bitrate(ipmi_sol_config_t *solc);
00291 int
00292 ipmi_solconfig_set_volatile_bitrate(ipmi_sol_config_t *solc,
00293 unsigned int val);
00294
00295 int
00296 ipmi_solconfig_get_port_number(ipmi_sol_config_t *solc,
00297 unsigned int *data);
00298 int
00299 ipmi_solconfig_set_port_number(ipmi_sol_config_t *solc,
00300 unsigned int val);
00301
00302 int
00303 ipmi_solconfig_get_payload_channel(ipmi_sol_config_t *solc,
00304 unsigned int *data);
00305
00306 #ifdef __cplusplus
00307 }
00308 #endif
00309
00310 #endif