| #ifndef _LIBTRM_H_ | 
 | #define _LIBTRM_H_ | 
 |  | 
 | #include <stdio.h> | 
 | #include <string.h> | 
 | #include <sys/ioctl.h> | 
 | #include <sys/time.h> | 
 | #include <fcntl.h> | 
 | #include <unistd.h> | 
 | #include <time.h> | 
 | #include <errno.h> | 
 |  | 
 | #define CCCI_IOC_MAGIC 'C' | 
 | #define CCCI_IOC_MD_RESET _IO(CCCI_IOC_MAGIC, 0) | 
 | #define CCCI_IOC_FORCE_MD_ASSERT _IO(CCCI_IOC_MAGIC,  4) | 
 | #define CCCI_IOC_ENTER_DEEP_FLIGHT_ENHANCED _IO(CCCI_IOC_MAGIC,  123) | 
 | #define CCCI_IOC_LEAVE_DEEP_FLIGHT_ENHANCED _IO(CCCI_IOC_MAGIC,  124) | 
 |  | 
 | enum md_bc_event { | 
 |     MD_STA_EV_INVALID = 0, | 
 |     MD_STA_EV_RESET_REQUEST, | 
 |     MD_STA_EV_F_ASSERT_REQUEST, | 
 |     MD_STA_EV_STOP_REQUEST, | 
 |     MD_STA_EV_START_REQUEST, | 
 |     MD_STA_EV_ENTER_FLIGHT_REQUEST, | 
 |     MD_STA_EV_LEAVE_FLIGHT_REQUEST, | 
 |     MD_STA_EV_ENTER_FLIGHT_E_REQUEST, | 
 |     MD_STA_EV_LEAVE_FLIGHT_E_REQUEST, | 
 |     MD_STA_EV_HS1, | 
 |     MD_STA_EV_READY, | 
 |     MD_STA_EV_EXCEPTION, | 
 |     MD_STA_EV_STOP, | 
 | }; | 
 |  | 
 | struct md_status_event { | 
 |     struct timeval time_stamp; | 
 |     int md_id; | 
 |     int event_type; | 
 |     char reason[32]; | 
 | }; | 
 |  | 
 | typedef void (*LIBTRM_MD_EVENT_CB)(void *priv_ptr, struct md_status_event*); | 
 |  | 
 | void libtrm_init(); | 
 | void libtrm_deinit(); | 
 |  | 
 | int libtrm_reset(int ccci_fd); | 
 | int libtrm_md_assert(int ccci_fd); | 
 | void libtrm_md_event_register(LIBTRM_MD_EVENT_CB cb, void *cb_priv_ptr); | 
 |  | 
 | #endif |