@ -23,7 +23,7 @@
* FOO = 0x7f ,
* # define BAR 0
* 2. Implement the handler
* static ret_c ode cmd_foo_bar ( struct cxl_cmd * cmd ,
* static CXLRetC ode cmd_foo_bar ( struct cxl_cmd * cmd ,
* CXLDeviceState * cxl_dstate , uint16_t * len )
* 3. Add the command to the cxl_cmd_set [ ] [ ]
* [ FOO ] [ BAR ] = { " FOO_BAR " , cmd_foo_bar , x , y } ,
@ -90,10 +90,10 @@ typedef enum {
CXL_MBOX_UNSUPPORTED_MAILBOX = 0x15 ,
CXL_MBOX_INVALID_PAYLOAD_LENGTH = 0x16 ,
CXL_MBOX_MAX = 0x17
} ret_c ode;
} CXLRetC ode;
struct cxl_cmd ;
typedef ret_c ode ( * opcode_handler ) ( struct cxl_cmd * cmd ,
typedef CXLRetC ode ( * opcode_handler ) ( struct cxl_cmd * cmd ,
CXLDeviceState * cxl_dstate , uint16_t * len ) ;
struct cxl_cmd {
const char * name ;
@ -105,16 +105,16 @@ struct cxl_cmd {
# define DEFINE_MAILBOX_HANDLER_ZEROED(name, size) \
uint16_t __zero # # name = size ; \
static ret_c ode cmd_ # # name ( struct cxl_cmd * cmd , \
CXLDeviceState * cxl_dstate , uint16_t * len ) \
static CXLRetC ode cmd_ # # name ( struct cxl_cmd * cmd , \
CXLDeviceState * cxl_dstate , uint16_t * len ) \
{ \
* len = __zero # # name ; \
memset ( cmd - > payload , 0 , * len ) ; \
return CXL_MBOX_SUCCESS ; \
}
# define DEFINE_MAILBOX_HANDLER_NOP(name) \
static ret_c ode cmd_ # # name ( struct cxl_cmd * cmd , \
CXLDeviceState * cxl_dstate , uint16_t * len ) \
static CXLRetC ode cmd_ # # name ( struct cxl_cmd * cmd , \
CXLDeviceState * cxl_dstate , uint16_t * len ) \
{ \
return CXL_MBOX_SUCCESS ; \
}
@ -125,9 +125,9 @@ DEFINE_MAILBOX_HANDLER_ZEROED(events_get_interrupt_policy, 4);
DEFINE_MAILBOX_HANDLER_NOP ( events_set_interrupt_policy ) ;
/* 8.2.9.2.1 */
static ret_c ode cmd_firmware_update_get_info ( struct cxl_cmd * cmd ,
CXLDeviceState * cxl_dstate ,
uint16_t * len )
static CXLRetC ode cmd_firmware_update_get_info ( struct cxl_cmd * cmd ,
CXLDeviceState * cxl_dstate ,
uint16_t * len )
{
struct {
uint8_t slots_supported ;
@ -159,9 +159,9 @@ static ret_code cmd_firmware_update_get_info(struct cxl_cmd *cmd,
}
/* 8.2.9.3.1 */
static ret_c ode cmd_timestamp_get ( struct cxl_cmd * cmd ,
CXLDeviceState * cxl_dstate ,
uint16_t * len )
static CXLRetC ode cmd_timestamp_get ( struct cxl_cmd * cmd ,
CXLDeviceState * cxl_dstate ,
uint16_t * len )
{
uint64_t time , delta ;
uint64_t final_time = 0 ;
@ -181,7 +181,7 @@ static ret_code cmd_timestamp_get(struct cxl_cmd *cmd,
}
/* 8.2.9.3.2 */
static ret_c ode cmd_timestamp_set ( struct cxl_cmd * cmd ,
static CXLRetC ode cmd_timestamp_set ( struct cxl_cmd * cmd ,
CXLDeviceState * cxl_dstate ,
uint16_t * len )
{
@ -201,9 +201,9 @@ static const QemuUUID cel_uuid = {
} ;
/* 8.2.9.4.1 */
static ret_c ode cmd_logs_get_supported ( struct cxl_cmd * cmd ,
CXLDeviceState * cxl_dstate ,
uint16_t * len )
static CXLRetC ode cmd_logs_get_supported ( struct cxl_cmd * cmd ,
CXLDeviceState * cxl_dstate ,
uint16_t * len )
{
struct {
uint16_t entries ;
@ -224,9 +224,9 @@ static ret_code cmd_logs_get_supported(struct cxl_cmd *cmd,
}
/* 8.2.9.4.2 */
static ret_c ode cmd_logs_get_log ( struct cxl_cmd * cmd ,
CXLDeviceState * cxl_dstate ,
uint16_t * len )
static CXLRetC ode cmd_logs_get_log ( struct cxl_cmd * cmd ,
CXLDeviceState * cxl_dstate ,
uint16_t * len )
{
struct {
QemuUUID uuid ;
@ -265,9 +265,9 @@ static ret_code cmd_logs_get_log(struct cxl_cmd *cmd,
}
/* 8.2.9.5.1.1 */
static ret_c ode cmd_identify_memory_device ( struct cxl_cmd * cmd ,
CXLDeviceState * cxl_dstate ,
uint16_t * len )
static CXLRetC ode cmd_identify_memory_device ( struct cxl_cmd * cmd ,
CXLDeviceState * cxl_dstate ,
uint16_t * len )
{
struct {
char fw_revision [ 0x10 ] ;
@ -309,9 +309,9 @@ static ret_code cmd_identify_memory_device(struct cxl_cmd *cmd,
return CXL_MBOX_SUCCESS ;
}
static ret_c ode cmd_ccls_get_partition_info ( struct cxl_cmd * cmd ,
CXLDeviceState * cxl_dstate ,
uint16_t * len )
static CXLRetC ode cmd_ccls_get_partition_info ( struct cxl_cmd * cmd ,
CXLDeviceState * cxl_dstate ,
uint16_t * len )
{
struct {
uint64_t active_vmem ;
@ -339,9 +339,9 @@ static ret_code cmd_ccls_get_partition_info(struct cxl_cmd *cmd,
return CXL_MBOX_SUCCESS ;
}
static ret_c ode cmd_ccls_get_lsa ( struct cxl_cmd * cmd ,
CXLDeviceState * cxl_dstate ,
uint16_t * len )
static CXLRetC ode cmd_ccls_get_lsa ( struct cxl_cmd * cmd ,
CXLDeviceState * cxl_dstate ,
uint16_t * len )
{
struct {
uint32_t offset ;
@ -364,9 +364,9 @@ static ret_code cmd_ccls_get_lsa(struct cxl_cmd *cmd,
return CXL_MBOX_SUCCESS ;
}
static ret_c ode cmd_ccls_set_lsa ( struct cxl_cmd * cmd ,
CXLDeviceState * cxl_dstate ,
uint16_t * len )
static CXLRetC ode cmd_ccls_set_lsa ( struct cxl_cmd * cmd ,
CXLDeviceState * cxl_dstate ,
uint16_t * len )
{
struct set_lsa_pl {
uint32_t offset ;