mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 00:03:54 -06:00
hw/cxl/mbox: Pull the payload out of struct cxl_cmd and make instances constant
Putting the pointer in the structure for command handling puts a single variable element inside an otherwise constant structure. Move it out as a directly passed variable and take the cxl_cmd structures constant. Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Reviewed-by: Fan Ni <fan.ni@samsung.com> Message-Id: <20231023160806.13206-2-Jonathan.Cameron@huawei.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
45234c2dd2
commit
a7bb53b1ee
2 changed files with 78 additions and 56 deletions
|
@ -111,6 +111,18 @@ typedef enum {
|
|||
CXL_MBOX_MAX = 0x17
|
||||
} CXLRetCode;
|
||||
|
||||
typedef struct cxl_device_state CXLDeviceState;
|
||||
struct cxl_cmd;
|
||||
typedef CXLRetCode (*opcode_handler)(const struct cxl_cmd *cmd,
|
||||
uint8_t *payload,
|
||||
CXLDeviceState *cxl_dstate, uint16_t *len);
|
||||
struct cxl_cmd {
|
||||
const char *name;
|
||||
opcode_handler handler;
|
||||
ssize_t in;
|
||||
uint16_t effect; /* Reported in CEL */
|
||||
};
|
||||
|
||||
typedef struct CXLEvent {
|
||||
CXLEventRecordRaw data;
|
||||
QSIMPLEQ_ENTRY(CXLEvent) node;
|
||||
|
@ -178,6 +190,7 @@ typedef struct cxl_device_state {
|
|||
uint64_t pmem_size;
|
||||
uint64_t vmem_size;
|
||||
|
||||
const struct cxl_cmd (*cxl_cmd_set)[256];
|
||||
CXLEventLog event_logs[CXL_EVENT_TYPE_MAX];
|
||||
} CXLDeviceState;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue