#ifndef _ISHTP_HBM_H_
#define _ISHTP_HBM_H_
#include <linux/uuid.h>
struct ishtp_device;
struct ishtp_msg_hdr;
struct ishtp_cl;
#define ISHTP_INTEROP_TIMEOUT …
#define ISHTP_CL_CONNECT_TIMEOUT …
#define HBM_MINOR_VERSION …
#define HBM_MAJOR_VERSION …
#define ISHTP_HBM_CMD_OP_MSK …
#define ISHTP_HBM_CMD_RES_MSK …
#define HOST_START_REQ_CMD …
#define HOST_START_RES_CMD …
#define HOST_STOP_REQ_CMD …
#define HOST_STOP_RES_CMD …
#define FW_STOP_REQ_CMD …
#define HOST_ENUM_REQ_CMD …
#define HOST_ENUM_RES_CMD …
#define HOST_CLIENT_PROPERTIES_REQ_CMD …
#define HOST_CLIENT_PROPERTIES_RES_CMD …
#define CLIENT_CONNECT_REQ_CMD …
#define CLIENT_CONNECT_RES_CMD …
#define CLIENT_DISCONNECT_REQ_CMD …
#define CLIENT_DISCONNECT_RES_CMD …
#define ISHTP_FLOW_CONTROL_CMD …
#define DMA_BUFFER_ALLOC_NOTIFY …
#define DMA_BUFFER_ALLOC_RESPONSE …
#define DMA_XFER …
#define DMA_XFER_ACK …
#define DRIVER_STOP_REQUEST …
struct ishtp_msg_hdr { … } __packed;
struct ishtp_bus_message { … } __packed;
struct ishtp_hbm_cl_cmd { … };
struct hbm_version { … } __packed;
struct hbm_host_version_request { … } __packed;
struct hbm_host_version_response { … } __packed;
struct hbm_host_stop_request { … } __packed;
struct hbm_host_stop_response { … } __packed;
struct hbm_host_enum_request { … } __packed;
struct hbm_host_enum_response { … } __packed;
struct ishtp_client_properties { … } __packed;
struct hbm_props_request { … } __packed;
struct hbm_props_response { … } __packed;
struct hbm_client_connect_request { … } __packed;
struct hbm_client_connect_response { … } __packed;
#define ISHTP_FC_MESSAGE_RESERVED_LENGTH …
struct hbm_flow_control { … } __packed;
struct dma_alloc_notify { … } __packed;
struct dma_xfer_hbm { … } __packed;
#define ISHTP_SYSTEM_STATE_CLIENT_ADDR …
#define SYSTEM_STATE_SUBSCRIBE …
#define SYSTEM_STATE_STATUS …
#define SYSTEM_STATE_QUERY_SUBSCRIBERS …
#define SYSTEM_STATE_STATE_CHANGE_REQ …
#define CONNECTED_STANDBY_STATE_BIT …
#define SUSPEND_STATE_BIT …
struct ish_system_states_header { … } __packed;
struct ish_system_states_subscribe { … } __packed;
struct ish_system_states_status { … } __packed;
struct ish_system_states_query_subscribers { … } __packed;
struct ish_system_states_state_change_req { … } __packed;
enum ishtp_hbm_state { … };
static inline void ishtp_hbm_hdr(struct ishtp_msg_hdr *hdr, size_t length)
{ … }
int ishtp_hbm_start_req(struct ishtp_device *dev);
int ishtp_hbm_start_wait(struct ishtp_device *dev);
int ishtp_hbm_cl_flow_control_req(struct ishtp_device *dev,
struct ishtp_cl *cl);
int ishtp_hbm_cl_disconnect_req(struct ishtp_device *dev, struct ishtp_cl *cl);
int ishtp_hbm_cl_connect_req(struct ishtp_device *dev, struct ishtp_cl *cl);
void ishtp_hbm_enum_clients_req(struct ishtp_device *dev);
void bh_hbm_work_fn(struct work_struct *work);
void recv_hbm(struct ishtp_device *dev, struct ishtp_msg_hdr *ishtp_hdr);
void recv_fixed_cl_msg(struct ishtp_device *dev,
struct ishtp_msg_hdr *ishtp_hdr);
void ishtp_hbm_dispatch(struct ishtp_device *dev,
struct ishtp_bus_message *hdr);
void ishtp_query_subscribers(struct ishtp_device *dev);
void ishtp_send_suspend(struct ishtp_device *dev);
void ishtp_send_resume(struct ishtp_device *dev);
#endif