⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ipmiif.h

📁 支持IPMI协议的开源API包。可以开发服务器硬件状态监控程序。
💻 H
📖 第 1 页 / 共 5 页
字号:
/* When you are done with an event, you should delete it.  This   removes the event from the local event queue and removes it from   the external system event log. */int ipmi_event_delete(ipmi_event_t   *event,		      ipmi_domain_cb done_handler,		      void           *cb_data);/* This is the old domain event deleter.  Since events now carry with   them more useful information, there is no need for this any more,   but it still works. */int ipmi_domain_del_event(ipmi_domain_t  *domain,			  ipmi_event_t   *event,			  ipmi_domain_cb done_handler,			  void           *cb_data);/* You can also scan the current set of events stored in the system.   They return an NULL if the SEL is empty, or if you try to go past   the last or before the first event.  The first and last function   return the event, the next and prev function take the current event   in "event" and return the next or previous event in "event".  Note   that you must free any events returned with this using   ipmi_event_free(). */ipmi_event_t *ipmi_domain_first_event(ipmi_domain_t *domain);ipmi_event_t *ipmi_domain_last_event(ipmi_domain_t *domain);ipmi_event_t *ipmi_domain_next_event(ipmi_domain_t *domain, ipmi_event_t *p);ipmi_event_t *ipmi_domain_prev_event(ipmi_domain_t *domain, ipmi_event_t *n);/* Return the number of non-deleted entries in the local copy of the   SEL. */int ipmi_domain_sel_count(ipmi_domain_t *domain,			  unsigned int  *count);/* Return the number of entries estimated to be used in the real SEL.   If there are deleted event in the local copy of the SEL, they are   not necessarily deleted from the real SEL, so this takes that into   account. */int ipmi_domain_sel_entries_used(ipmi_domain_t *domain,				 unsigned int  *count);/* Force rereading all the SELs in the domain.  The handler will be   called after they are all reread. */int ipmi_domain_reread_sels(ipmi_domain_t  *domain,			    ipmi_domain_cb handler,			    void           *cb_data);/* Used in various operations to tell what has happened to a sensor,   control, entity, or whatever. */enum ipmi_update_e { IPMI_ADDED, IPMI_DELETED, IPMI_CHANGED };/* A callback that will be called when entities are added to and   removed from the domain, and when their presence changes. */typedef void (*ipmi_domain_entity_cb)(enum ipmi_update_e op,				      ipmi_domain_t      *domain,				      ipmi_entity_t      *entity,				      void               *cb_data);/* Set the handler to be called when an entity is added or   deleted.  NOTE THAT THIS CALL IS DEPRECATED. */int ipmi_domain_set_entity_update_handler(ipmi_domain_t         *domain,					  ipmi_domain_entity_cb handler,					  void                  *cb_data);/* Add and remove and entity update handler.  This interface allows   multiple handlers to be registered. */int ipmi_domain_add_entity_update_handler(ipmi_domain_t         *domain,					  ipmi_domain_entity_cb handler,					  void                  *cb_data);int ipmi_domain_remove_entity_update_handler(ipmi_domain_t         *domain,					     ipmi_domain_entity_cb handler,					     void                  *cb_data);/* Iterate over all the entities in the domain, calling the given   function with each entity.  The entities will not change while this   is happening. */typedef void (*ipmi_entities_iterate_entity_cb)(ipmi_entity_t *entity,						void          *cb_data);int ipmi_domain_iterate_entities(ipmi_domain_t                   *domain,				 ipmi_entities_iterate_entity_cb handler,				 void                            *cb_data);/* Store all the information I have locally into the SDR repository.   This is a moderately dangerous operation, as it can wipe out your   SDR repository if you are not careful. */int ipmi_domain_store_entities(ipmi_domain_t  *domain,			       ipmi_domain_cb done,			       void           *cb_data);/* Set a handler that will be called when the main SDR repository is   read.  This is primarily here for OpenHPI to meet their   requirements, generally you should do this dynamically.  There is   only one handler, and it will only be called when the main SDR   repository is first read. */int ipmi_domain_set_main_SDRs_read_handler(ipmi_domain_t  *domain,					   ipmi_domain_cb handler,					   void           *cb_data);/* The following structures get boadloads of information from the FRU.   These all will return ENOSYS if the information is not available.   All these function return error, not lengths.   The string return functions allow you to fetch the type and length.   The length returns for ASCII strings does *not* include the nil   character, but for ASCII strings it will be put on to the end.   Also, when fetching the string, you must set the max_len variable   to the maximum length of the returned data.  The actual length   copied into the output string is returned in max_len. */int ipmi_entity_get_internal_use_version(ipmi_entity_t *entity,					 unsigned char *version);int ipmi_entity_get_internal_use_length(ipmi_entity_t *entity,					unsigned int  *length);int  ipmi_entity_get_internal_use_data(ipmi_entity_t *entity,				       unsigned char *data,				       unsigned int  *max_len);int ipmi_entity_get_chassis_info_version(ipmi_entity_t *entity,					 unsigned char *version);int  ipmi_entity_get_chassis_info_type(ipmi_entity_t *entity,				       unsigned char *type);int ipmi_entity_get_chassis_info_part_number_len(ipmi_entity_t *entity,						 unsigned int  *length);int ipmi_entity_get_chassis_info_part_number_type(ipmi_entity_t        *entity,						  enum ipmi_str_type_e *type);int ipmi_entity_get_chassis_info_part_number(ipmi_entity_t *entity,					     char          *str,					     unsigned int  *strlen);int ipmi_entity_get_chassis_info_serial_number_len(ipmi_entity_t *entity,						   unsigned int  *length);int ipmi_entity_get_chassis_info_serial_number_type  (ipmi_entity_t        *entity,   enum ipmi_str_type_e *type);int ipmi_entity_get_chassis_info_serial_number(ipmi_entity_t *entity,					       char          *str,					       unsigned int  *strlen);int ipmi_entity_get_chassis_info_custom_len(ipmi_entity_t *entity,					    unsigned int  num,					    unsigned int  *length);int ipmi_entity_get_chassis_info_custom_type(ipmi_entity_t        *entity,					     unsigned int         num,					     enum ipmi_str_type_e *type);int ipmi_entity_get_chassis_info_custom(ipmi_entity_t *entity,					unsigned int  num,					char          *str,					unsigned int  *strlen);int ipmi_entity_get_board_info_version(ipmi_entity_t *entity,				       unsigned char *version);int ipmi_entity_get_board_info_lang_code(ipmi_entity_t *entity,					 unsigned char *type);int ipmi_entity_get_board_info_mfg_time(ipmi_entity_t *fru,					time_t        *time);int ipmi_entity_get_board_info_board_manufacturer_len(ipmi_entity_t *entity,						      unsigned int  *length);int ipmi_entity_get_board_info_board_manufacturer_type  (ipmi_entity_t        *entity,   enum ipmi_str_type_e *type);int ipmi_entity_get_board_info_board_manufacturer(ipmi_entity_t *entity,						  char          *str,						  unsigned int  *strlen);int ipmi_entity_get_board_info_board_product_name_len(ipmi_entity_t *entity,						      unsigned int  *length);int ipmi_entity_get_board_info_board_product_name_type  (ipmi_entity_t        *entity,   enum ipmi_str_type_e *type);int ipmi_entity_get_board_info_board_product_name(ipmi_entity_t *entity,						  char          *str,						  unsigned int  *strlen);int ipmi_entity_get_board_info_board_serial_number_len(ipmi_entity_t *entity,						       unsigned int  *length);int ipmi_entity_get_board_info_board_serial_number_type  (ipmi_entity_t        *entity,   enum ipmi_str_type_e *type);int ipmi_entity_get_board_info_board_serial_number(ipmi_entity_t *entity,						   char          *str,						   unsigned int  *strlen);int ipmi_entity_get_board_info_board_part_number_len(ipmi_entity_t   *entity,						  unsigned int *length);int ipmi_entity_get_board_info_board_part_number_type  (ipmi_entity_t        *entity,   enum ipmi_str_type_e *type);int ipmi_entity_get_board_info_board_part_number(ipmi_entity_t *entity,						 char          *str,						 unsigned int  *strlen);int ipmi_entity_get_board_info_fru_file_id_len(ipmi_entity_t *entity,					       unsigned int  *length);int ipmi_entity_get_board_info_fru_file_id_type(ipmi_entity_t        *entity,						enum ipmi_str_type_e *type);int ipmi_entity_get_board_info_fru_file_id(ipmi_entity_t *entity,					   char          *str,					   unsigned int  *strlen);int ipmi_entity_get_board_info_custom_len(ipmi_entity_t *entity,					  unsigned int  num,					  unsigned int  *length);int ipmi_entity_get_board_info_custom_type(ipmi_entity_t        *entity,					   unsigned int         num,					   enum ipmi_str_type_e *type);int ipmi_entity_get_board_info_custom(ipmi_entity_t *entity,				      unsigned int  num,				      char          *str,				      unsigned int  *strlen);int ipmi_entity_get_product_info_version(ipmi_entity_t *entity,					 unsigned char *version);int ipmi_entity_get_product_info_lang_code(ipmi_entity_t *entity,					   unsigned char *type);int ipmi_entity_get_product_info_manufacturer_name_len(ipmi_entity_t *entity,						       unsigned int  *length);int ipmi_entity_get_product_info_manufacturer_name_type  (ipmi_entity_t        *entity,   enum ipmi_str_type_e *type);int ipmi_entity_get_product_info_manufacturer_name(ipmi_entity_t *entity,						   char          *str,						   unsigned int  *strlen);int ipmi_entity_get_product_info_product_name_len(ipmi_entity_t *entity,						  unsigned int  *length);int ipmi_entity_get_product_info_product_name_type  (ipmi_entity_t        *entity,   enum ipmi_str_type_e *type);int ipmi_entity_get_product_info_product_name(ipmi_entity_t *entity,					      char          *str,					      unsigned int  *strlen);int ipmi_entity_get_product_info_product_part_model_number_len  (ipmi_entity_t *entity,   unsigned int  *length);int ipmi_entity_get_product_info_product_part_model_number_type  (ipmi_entity_t        *entity,   enum ipmi_str_type_e *type);int ipmi_entity_get_product_info_product_part_model_number  (ipmi_entity_t *entity,   char          *str,   unsigned int  *strlen);int ipmi_entity_get_product_info_product_version_len(ipmi_entity_t *entity,						     unsigned int  *length);int ipmi_entity_get_product_info_product_version_type  (ipmi_entity_t        *entity,   enum ipmi_str_type_e *type);int ipmi_entity_get_product_info_product_version(ipmi_entity_t *entity,						 char          *str,						 unsigned int  *strlen);int ipmi_entity_get_product_info_product_serial_number_len  (ipmi_entity_t *entity,   unsigned int  *length);int ipmi_entity_get_product_info_product_serial_number_type  (ipmi_entity_t        *entity,   enum ipmi_str_type_e *type);int ipmi_entity_get_product_info_product_serial_number(ipmi_entity_t *entity,						       char          *str,						       unsigned int  *strlen);int ipmi_entity_get_product_info_asset_tag_len(ipmi_entity_t *entity,					       unsigned int  *length);int ipmi_entity_get_product_info_asset_tag_type(ipmi_entity_t        *entity,						enum ipmi_str_type_e *type);int ipmi_entity_get_product_info_asset_tag(ipmi_entity_t *entity,					   char          *str,					   unsigned int  *strlen);int ipmi_entity_get_product_info_fru_file_id_len(ipmi_entity_t *entity,						 unsigned int  *length);int ipmi_entity_get_product_info_fru_file_id_type(ipmi_entity_t        *entity,						  enum ipmi_str_type_e *type);int ipmi_entity_get_product_info_fru_file_id(ipmi_entity_t *entity,					     char          *str,					     unsigned int  *strlen);int ipmi_entity_get_product_info_custom_len(ipmi_entity_t *entity,					    unsigned int  num,					    unsigned int  *length);int ipmi_entity_get_product_info_custom_type(ipmi_entity_t        *entity,					     unsigned int         num,					     enum ipmi_str_type_e *type);int ipmi_entity_get_product_info_custom(ipmi_entity_t *entity,					unsigned int  num,					char          *str,					unsigned int  *strlen);unsigned int ipmi_entity_get_num_multi_records(ipmi_entity_t *entity);int ipmi_entity_get_multi_record_type(ipmi_entity_t *entity,				      unsigned int  num,				      unsigned char *type);int ipmi_entity_get_multi_record_format_version(ipmi_entity_t *entity,						unsigned int  num,						unsigned char *ver);int ipmi_entity_get_multi_record_data_len(ipmi_entity_t *entity,					  unsigned int  num,					  unsigned int  *len);/* Note that length is a in/out parameter, you must set the length to

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -