From 8e3ae96546010c5d4f3fce6df9c32aece1093458 Mon Sep 17 00:00:00 2001 From: Nikhil Potade Date: Tue, 19 Feb 2019 14:16:20 +0800 Subject: [PATCH 1/1] Smbus changes for libmctp Signed-off-by: James Feist --- core.c | 2 ++ libmctp.h | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/core.c b/core.c index 6e59993..3b11672 100644 --- a/core.c +++ b/core.c @@ -19,6 +19,7 @@ /* Internal data structures */ +/* clang-format off */ struct mctp_bus { mctp_eid_t eid; struct mctp_binding *binding; @@ -58,6 +59,7 @@ struct mctp { ROUTE_BRIDGE, } route_policy; }; +/* clang-format on */ #ifndef BUILD_ASSERT #define BUILD_ASSERT(x) \ diff --git a/libmctp.h b/libmctp.h index 40e5371..766473b 100644 --- a/libmctp.h +++ b/libmctp.h @@ -19,6 +19,7 @@ typedef uint8_t mctp_eid_t; #define MCTP_EID_BROADCAST 0xff /* MCTP packet definitions */ +/* clang-format off */ struct mctp_hdr { uint8_t ver; uint8_t dest; @@ -34,20 +35,57 @@ struct mctp_hdr { #define MCTP_HDR_SEQ_MASK (0x3) #define MCTP_HDR_TAG_SHIFT (0) #define MCTP_HDR_TAG_MASK (0x7) +/* clang-format on */ /* Baseline Transmission Unit and packet size */ #define MCTP_BTU 64 #define MCTP_PACKET_SIZE(unit) ((unit) + sizeof(struct mctp_hdr)) #define MCTP_BODY_SIZE(unit) ((unit) - sizeof(struct mctp_hdr)) +#define MCTP_CONTROL_MESSAGE_TYPE 0x00 + +enum MCTP_COMMAND_CODE { + MCTP_COMMAND_CODE_SET_EID = 0x01, + MCTP_COMMAND_CODE_GET_EID = 0x02, + MCTP_COMMAND_CODE_GET_ENDPOINT_UUID = 0x03, + MCTP_COMMAND_CODE_GET_MCTP_VERSION_SUPPORT = 0x04, + MCTP_COMMAND_CODE_GET_MESSAGE_TYPE_SUPPORT = 0x05, + MCTP_COMMAND_CODE_GET_VENDOR_DEFINED_MSG_SUPPORT= 0x06, + MCTP_COMMAND_CODE_RESOLVE_ENDPOINT_ID = 0x07, + MCTP_COMMAND_CODE_ALLOCATE_ENDPOINT_IDS = 0x08, + MCTP_COMMAND_CODE_ROUTING_INFORMATION_UPDATE = 0x09, + MCTP_COMMAND_CODE_GET_ROUTING_TABLE_ENTRIES = 0x0A, + MCTP_COMMAND_CODE_PREPARE_FOR_ENDPOINT_DISCOVERY= 0x0B, + MCTP_COMMAND_CODE_ENDPOINT_DISCOVERY = 0x0C, + MCTP_COMMAND_CODE_DISCOVERY_NOTIFY = 0x0D, + MCTP_COMMAND_CODE_GET_NETWORK_ID = 0x0E, + MCTP_COMMAND_CODE_QUERY_HOP = 0x0F, + MCTP_COMMAND_CODE_RESOLVE_UUID = 0x10, + MCTP_COMMAND_CODE_QUERY_RATE_LIMIT = 0x11, + MCTP_COMMAND_CODE_REQUEST_TX_RATE_LIMIT = 0x12, + MCTP_COMMAND_CODE_UPDATE_RATE_LIMIT = 0x13, + MCTP_COMMAND_CODE_QUERY_SUPPORTED_INTERFACES = 0x14 +}; + +enum MCTP_CONTROL_MSG_COMPLETION_CODE { + MCTP_CONTROL_MSG_STATUS_SUCCESS = 0x00, + MCTP_CONTROL_MSG_STATUS_ERROR = 0x01, + MCTP_CONTROL_MSG_STATUS_ERROR_INVALID_DATA = 0x02, + MCTP_CONTROL_MSG_STATUS_ERROR_INVALID_LENGTH = 0x03, + MCTP_CONTROL_MSG_STATUS_ERROR_NOT_READY = 0x04, + MCTP_CONTROL_MSG_STATUS_ERROR_UNSUPPORTED_CMD = 0x05 +}; + /* packet buffers */ +/* clang-format off */ struct mctp_pktbuf { size_t start, end, size; size_t mctp_hdr_off; struct mctp_pktbuf *next; unsigned char data[]; }; +/* clang-format on */ struct mctp_binding; @@ -96,6 +134,7 @@ int mctp_message_tx(struct mctp *mctp, mctp_eid_t eid, void *msg, size_t msg_len); /* hardware bindings */ +/* clang-format off */ struct mctp_binding { const char *name; uint8_t version; @@ -108,6 +147,7 @@ struct mctp_binding { mctp_rx_fn control_rx; void *control_rx_data; }; +/* clang-format on */ void mctp_binding_set_tx_enabled(struct mctp_binding *binding, bool enable); -- 2.17.1