The controller generates events on the IPMB.
The controller can receive events on the IPMB. The controller supports FRU inventory commands.
The controller supports a SEL device for storing events. The controller supports a main SDR repository.
The controller has sensors, it supports the sensor commands. The number of additional consecutive slave addresses used by the device. For instance, if the address is C0h and this value is zero, then it is only at C0h. If this value was one, then it would be at C0h and C2h.
In addition, a string value for the entity id may be fetched. This is not quite the same as the entity id, because OEM code may set this string to a different value than the default, especially for OEM entity ids. The function is:
char *ipmi_entity_get_entity_id_string(ipmi_entity_t *ent);
The id (the string name in the SDR) can also be fetched using the following calls:
IPMB event generator IPMB event receiver FRU device inventory SEL device SDR repository device sensor device get address span
CHAPTER 7. ENTITIES
int ipmi_entity_get_id_length(ipmi_entity_t *ent); enum ipmi_str_type_e ipmi_entity_get_id_type(ipmi_entity_t *ent); int ipmi_entity_get_id(ipmi_entity_t *ent, char *id, int length);
See section A.1 for details on this.
Sensor and Controls in an Entity
In OpenIPMI, entities contain sensors and controls. If a sensor or control is associated with an entity, that sensor or control will be contained inside the entity in OpenIPMI. To find the sensors in an entity, you can iterate them using the function:
t y p e d e f v o i d ( * i p m i _ e n t i t y _ i t e r a t e _ s e n s o r _ c b ) ( i p m i _ e n t i t y _ t * e n t , i p m i _ s e n s o r _ t * s e n s o r ,
*cb_data); *ent, void v o i d i p m i _ e n t i t y _ i t e r a t e _ s e n s o r s ( i p m i _ e n t i t y _ t i p m i _ e n t i t y _ i t e r a t e _ s e n s o r _ c b h a n d l e r ,
* c b _ d a t a ) ;
The “handler” function will be called with each sensor in the entity. Controls have a similar function:
t y p e d e f v o i d ( * i p m i _ e n t i t y _ i t e r a t e _ c o n t r o l _ c b ) ( i p m i _ e n t i t y _ t * e n t , i p m i _ c o n t r o l _ t * c o n t r o l ,
* c b _ d a t a ) ;