spdm: define SPDM transport enum types
SPDM maybe used over different transports. This patch specifies the trasnport types as an enum with a qdev property definition such that a user input transport type (string) can be mapped directly into the respective SPDM transportenum for internal use. Signed-off-by: Wilfred Mallawa <wilfred.mallawa@wdc.com> Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
This commit is contained in:
parent
e5534abeb4
commit
3d8412c2fb
2 changed files with 38 additions and 4 deletions
|
|
@ -13,6 +13,9 @@
|
|||
#include "qemu/osdep.h"
|
||||
#include "system/spdm-socket.h"
|
||||
#include "qapi/error.h"
|
||||
#include "hw/qdev-properties.h"
|
||||
#include "hw/qdev-properties-system.h"
|
||||
#include "hw/core/qdev-prop-internal.h"
|
||||
|
||||
static bool read_bytes(const int socket, uint8_t *buffer,
|
||||
size_t number_of_bytes)
|
||||
|
|
@ -246,3 +249,23 @@ void spdm_socket_close(const int socket, uint32_t transport_type)
|
|||
send_platform_data(socket, transport_type,
|
||||
SPDM_SOCKET_COMMAND_SHUTDOWN, NULL, 0);
|
||||
}
|
||||
|
||||
const QEnumLookup SpdmTransport_lookup = {
|
||||
.array = (const char *const[]) {
|
||||
[SPDM_SOCKET_TRANSPORT_TYPE_UNSPEC] = "unspecified",
|
||||
[SPDM_SOCKET_TRANSPORT_TYPE_MCTP] = "mctp",
|
||||
[SPDM_SOCKET_TRANSPORT_TYPE_PCI_DOE] = "doe",
|
||||
[SPDM_SOCKET_TRANSPORT_TYPE_SCSI] = "scsi",
|
||||
[SPDM_SOCKET_TRANSPORT_TYPE_NVME] = "nvme",
|
||||
},
|
||||
.size = SPDM_SOCKET_TRANSPORT_TYPE_MAX
|
||||
};
|
||||
|
||||
const PropertyInfo qdev_prop_spdm_trans = {
|
||||
.type = "SpdmTransportType",
|
||||
.description = "Spdm Transport, doe/nvme/mctp/scsi/unspecified",
|
||||
.enum_table = &SpdmTransport_lookup,
|
||||
.get = qdev_propinfo_get_enum,
|
||||
.set = qdev_propinfo_set_enum,
|
||||
.set_default_value = qdev_propinfo_set_default_value_enum,
|
||||
};
|
||||
|
|
|
|||
|
|
@ -112,11 +112,22 @@ typedef struct {
|
|||
#define SPDM_SOCKET_COMMAND_UNKOWN 0xFFFF
|
||||
#define SPDM_SOCKET_COMMAND_TEST 0xDEAD
|
||||
|
||||
#define SPDM_SOCKET_TRANSPORT_TYPE_MCTP 0x01
|
||||
#define SPDM_SOCKET_TRANSPORT_TYPE_PCI_DOE 0x02
|
||||
#define SPDM_SOCKET_TRANSPORT_TYPE_NVME 0x04
|
||||
|
||||
#define SPDM_SOCKET_MAX_MESSAGE_BUFFER_SIZE 0x1200
|
||||
#define SPDM_SOCKET_MAX_MSG_STATUS_LEN 0x02
|
||||
|
||||
typedef enum SpdmTransportType {
|
||||
SPDM_SOCKET_TRANSPORT_TYPE_UNSPEC = 0,
|
||||
SPDM_SOCKET_TRANSPORT_TYPE_MCTP,
|
||||
SPDM_SOCKET_TRANSPORT_TYPE_PCI_DOE,
|
||||
SPDM_SOCKET_TRANSPORT_TYPE_SCSI,
|
||||
SPDM_SOCKET_TRANSPORT_TYPE_NVME,
|
||||
SPDM_SOCKET_TRANSPORT_TYPE_MAX
|
||||
} SpdmTransportType;
|
||||
|
||||
extern const PropertyInfo qdev_prop_spdm_trans;
|
||||
|
||||
#define DEFINE_PROP_SPDM_TRANS(_name, _state, _field, _default) \
|
||||
DEFINE_PROP_UNSIGNED(_name, _state, _field, _default, \
|
||||
qdev_prop_spdm_trans, SpdmTransportType)
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue