mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-07 09:43:56 -06:00
s390x/sclp: clean up sclp masks
Introduce an sccb_mask_t to be used for SCLP event masks instead of just unsigned int or uint32_t. This will allow later to extend the mask with more ease. Signed-off-by: Claudio Imbrenda <imbrenda@linux.vnet.ibm.com> Message-Id: <1519407778-23095-3-git-send-email-imbrenda@linux.vnet.ibm.com> Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Cornelia Huck <cohuck@redhat.com>
This commit is contained in:
parent
bc61c8c626
commit
1ffed98f24
6 changed files with 31 additions and 27 deletions
|
@ -29,8 +29,8 @@ typedef struct SCLPEventsBus {
|
|||
struct SCLPEventFacility {
|
||||
SysBusDevice parent_obj;
|
||||
SCLPEventsBus sbus;
|
||||
/* guest' receive mask */
|
||||
unsigned int receive_mask;
|
||||
/* guest's receive mask */
|
||||
sccb_mask_t receive_mask;
|
||||
/*
|
||||
* when false, we keep the same broken, backwards compatible behaviour as
|
||||
* before, allowing only masks of size exactly 4; when true, we implement
|
||||
|
@ -61,9 +61,9 @@ static bool event_pending(SCLPEventFacility *ef)
|
|||
return false;
|
||||
}
|
||||
|
||||
static unsigned int get_host_send_mask(SCLPEventFacility *ef)
|
||||
static sccb_mask_t get_host_send_mask(SCLPEventFacility *ef)
|
||||
{
|
||||
unsigned int mask;
|
||||
sccb_mask_t mask;
|
||||
BusChild *kid;
|
||||
SCLPEventClass *child;
|
||||
|
||||
|
@ -77,9 +77,9 @@ static unsigned int get_host_send_mask(SCLPEventFacility *ef)
|
|||
return mask;
|
||||
}
|
||||
|
||||
static unsigned int get_host_receive_mask(SCLPEventFacility *ef)
|
||||
static sccb_mask_t get_host_receive_mask(SCLPEventFacility *ef)
|
||||
{
|
||||
unsigned int mask;
|
||||
sccb_mask_t mask;
|
||||
BusChild *kid;
|
||||
SCLPEventClass *child;
|
||||
|
||||
|
@ -189,7 +189,7 @@ out:
|
|||
}
|
||||
|
||||
static uint16_t handle_sccb_read_events(SCLPEventFacility *ef, SCCB *sccb,
|
||||
unsigned int mask)
|
||||
sccb_mask_t mask)
|
||||
{
|
||||
uint16_t rc;
|
||||
int slen;
|
||||
|
@ -242,8 +242,8 @@ static void copy_mask(uint8_t *dst, uint8_t *src, uint16_t dst_len,
|
|||
|
||||
static void read_event_data(SCLPEventFacility *ef, SCCB *sccb)
|
||||
{
|
||||
unsigned int sclp_active_selection_mask;
|
||||
unsigned int sclp_cp_receive_mask;
|
||||
sccb_mask_t sclp_active_selection_mask;
|
||||
sccb_mask_t sclp_cp_receive_mask;
|
||||
|
||||
ReadEventData *red = (ReadEventData *) sccb;
|
||||
|
||||
|
@ -285,7 +285,7 @@ static void write_event_mask(SCLPEventFacility *ef, SCCB *sccb)
|
|||
{
|
||||
WriteEventMask *we_mask = (WriteEventMask *) sccb;
|
||||
uint16_t mask_length = be16_to_cpu(we_mask->mask_length);
|
||||
uint32_t tmp_mask;
|
||||
sccb_mask_t tmp_mask;
|
||||
|
||||
if (!mask_length || (mask_length > SCLP_EVENT_MASK_LEN_MAX) ||
|
||||
((mask_length != 4) && !ef->allow_all_mask_sizes)) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue