#ifndef _RCM_MODULE_H
#define _RCM_MODULE_H
#ifdef __cplusplus
extern "C" {
#endif
#include <librcm.h>
#define RCM_MOD_OPS_V1 1
#define RCM_MOD_OPS_V2 2
#define RCM_MOD_OPS_VERSION RCM_MOD_OPS_V2
struct rcm_mod_ops {
int version;
int (*rcmop_register)(rcm_handle_t *);
int (*rcmop_unregister)(rcm_handle_t *);
int (*rcmop_get_info)(rcm_handle_t *, char *, id_t, uint_t,
char **, char **, nvlist_t *, rcm_info_t **);
int (*rcmop_request_suspend)(rcm_handle_t *, char *, id_t,
timespec_t *, uint_t, char **, rcm_info_t **);
int (*rcmop_notify_resume)(rcm_handle_t *, char *, id_t, uint_t,
char **, rcm_info_t **);
int (*rcmop_request_offline)(rcm_handle_t *, char *, id_t, uint_t,
char **, rcm_info_t **);
int (*rcmop_notify_online)(rcm_handle_t *, char *, id_t, uint_t,
char **, rcm_info_t **);
int (*rcmop_notify_remove)(rcm_handle_t *, char *, id_t, uint_t,
char **, rcm_info_t **);
int (*rcmop_request_capacity_change)(rcm_handle_t *, char *, id_t,
uint_t, nvlist_t *, char **, rcm_info_t **);
int (*rcmop_notify_capacity_change)(rcm_handle_t *, char *, id_t,
uint_t, nvlist_t *, char **, rcm_info_t **);
int (*rcmop_notify_event)(rcm_handle_t *, char *, id_t, uint_t,
char **, nvlist_t *, rcm_info_t **);
};
struct rcm_mod_ops_v1 {
int version;
int (*rcmop_register)(rcm_handle_t *);
int (*rcmop_unregister)(rcm_handle_t *);
int (*rcmop_get_info)(rcm_handle_t *, char *, id_t, uint_t, char **,
rcm_info_t **);
int (*rcmop_request_suspend)(rcm_handle_t *, char *, id_t,
timespec_t *, uint_t, char **, rcm_info_t **);
int (*rcmop_notify_resume)(rcm_handle_t *, char *, id_t, uint_t,
char **, rcm_info_t **);
int (*rcmop_request_offline)(rcm_handle_t *, char *, id_t, uint_t,
char **, rcm_info_t **);
int (*rcmop_notify_online)(rcm_handle_t *, char *, id_t, uint_t,
char **, rcm_info_t **);
int (*rcmop_notify_remove)(rcm_handle_t *, char *, id_t, uint_t,
char **, rcm_info_t **);
};
#define RCM_ERROR 0
#define RCM_WARNING 1
#define RCM_NOTICE 2
#define RCM_INFO 3
#define RCM_DEBUG 5
#define RCM_TRACE1 6
#define RCM_TRACE2 7
#define RCM_TRACE3 8
#define RCM_TRACE4 9
extern void rcm_log_message(int, char *, ...);
#ifdef __cplusplus
}
#endif
#endif