Commit 1ffed98f authored by Claudio Imbrenda's avatar Claudio Imbrenda Committed by Cornelia Huck
Browse files

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: default avatarClaudio Imbrenda <imbrenda@linux.vnet.ibm.com>
Message-Id: <1519407778-23095-3-git-send-email-imbrenda@linux.vnet.ibm.com>
Reviewed-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: default avatarCornelia Huck <cohuck@redhat.com>
parent bc61c8c6
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -102,12 +102,12 @@ static bool can_handle_event(uint8_t type)
    return type == SCLP_EVENT_MESSAGE || type == SCLP_EVENT_PMSGCMD;
}

static unsigned int send_mask(void)
static sccb_mask_t send_mask(void)
{
    return SCLP_EVENT_MASK_OP_CMD | SCLP_EVENT_MASK_PMSGCMD;
}

static unsigned int receive_mask(void)
static sccb_mask_t receive_mask(void)
{
    return SCLP_EVENT_MASK_MSG | SCLP_EVENT_MASK_PMSGCMD;
}
+2 −2
Original line number Diff line number Diff line
@@ -83,12 +83,12 @@ static bool can_handle_event(uint8_t type)
    return type == SCLP_EVENT_ASCII_CONSOLE_DATA;
}

static unsigned int send_mask(void)
static sccb_mask_t send_mask(void)
{
    return SCLP_EVENT_MASK_MSG_ASCII;
}

static unsigned int receive_mask(void)
static sccb_mask_t receive_mask(void)
{
    return SCLP_EVENT_MASK_MSG_ASCII;
}
+10 −10
Original line number Diff line number Diff line
@@ -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)) {
+2 −2
Original line number Diff line number Diff line
@@ -37,12 +37,12 @@ void raise_irq_cpu_hotplug(void)
    sclp_service_interrupt(0);
}

static unsigned int send_mask(void)
static sccb_mask_t send_mask(void)
{
    return SCLP_EVENT_MASK_CONFIG_MGT_DATA;
}

static unsigned int receive_mask(void)
static sccb_mask_t receive_mask(void)
{
    return 0;
}
+2 −2
Original line number Diff line number Diff line
@@ -28,12 +28,12 @@ static bool can_handle_event(uint8_t type)
    return type == SCLP_EVENT_SIGNAL_QUIESCE;
}

static unsigned int send_mask(void)
static sccb_mask_t send_mask(void)
{
    return SCLP_EVENT_MASK_SIGNAL_QUIESCE;
}

static unsigned int receive_mask(void)
static sccb_mask_t receive_mask(void)
{
    return 0;
}
Loading