Commit abf6e752 authored by Peter Maydell's avatar Peter Maydell
Browse files

Merge remote-tracking branch 'remotes/borntraeger/tags/s390x-20171030' into staging



s390x: fixups for 2.11

- missing \r in the BIOS console output
- CPU type name is now "s390x-cpu"
- fixup for the host-model on z14 and older machine versions

# gpg: Signature made Mon 30 Oct 2017 08:34:15 GMT
# gpg:                using RSA key 0x117BBC80B5A61C7C
# gpg: Good signature from "Christian Borntraeger (IBM) <borntraeger@de.ibm.com>"
# Primary key fingerprint: F922 9381 A334 08F9 DBAB  FBCA 117B BC80 B5A6 1C7C

* remotes/borntraeger/tags/s390x-20171030:
  s390-*.img: update s390 bios with latest fixes
  s390-ccw: print carriage return with new lines
  s390x/kvm: use cpu model for gscb on compat machines
  target/s390x: change CPU type name to "s390x-cpu"

Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
parents 21dab18b 7a4ec18d
Loading
Loading
Loading
Loading
+0 −8
Original line number Diff line number Diff line
@@ -432,7 +432,6 @@ static void ccw_machine_class_init(ObjectClass *oc, void *data)
    s390mc->ri_allowed = true;
    s390mc->cpu_model_allowed = true;
    s390mc->css_migration_enabled = true;
    s390mc->gs_allowed = true;
    mc->init = ccw_init;
    mc->reset = s390_machine_reset;
    mc->hot_add_cpu = s390_hot_add_cpu;
@@ -513,12 +512,6 @@ bool cpu_model_allowed(void)
    return get_machine_class()->cpu_model_allowed;
}

bool gs_allowed(void)
{
    /* for "none" machine this results in true */
    return get_machine_class()->gs_allowed;
}

static char *machine_get_loadparm(Object *obj, Error **errp)
{
    S390CcwMachineState *ms = S390_CCW_MACHINE(obj);
@@ -758,7 +751,6 @@ static void ccw_machine_2_9_class_options(MachineClass *mc)
{
    S390CcwMachineClass *s390mc = S390_MACHINE_CLASS(mc);

    s390mc->gs_allowed = false;
    ccw_machine_2_10_class_options(mc);
    SET_MACHINE_COMPAT(mc, CCW_COMPAT_2_9);
    s390mc->css_migration_enabled = false;
+0 −3
Original line number Diff line number Diff line
@@ -40,15 +40,12 @@ typedef struct S390CcwMachineClass {
    bool ri_allowed;
    bool cpu_model_allowed;
    bool css_migration_enabled;
    bool gs_allowed;
} S390CcwMachineClass;

/* runtime-instrumentation allowed by the machine */
bool ri_allowed(void);
/* cpu model allowed by the machine */
bool cpu_model_allowed(void);
/* guarded-storage allowed by the machine */
bool gs_allowed(void);

/**
 * Returns true if (vmstate based) migration of the channel subsystem
+4.01 KiB (29.8 KiB)

File changed.

No diff preview for this file type.

+21 −3
Original line number Diff line number Diff line
@@ -76,17 +76,35 @@ static int _strlen(const char *str)
long write(int fd, const void *str, size_t len)
{
    WriteEventData *sccb = (void *)_sccb;
    const char *p = str;
    size_t data_len = 0;
    size_t i;

    if (fd != 1 && fd != 2) {
        return -EIO;
    }

    sccb->h.length = sizeof(WriteEventData) + len;
    for (i = 0; i < len; i++) {
        if ((data_len + 1) >= SCCB_DATA_LEN) {
            /* We would overflow the sccb buffer, abort early */
            len = i;
            break;
        }

        if (*p == '\n') {
            /* Terminal emulators might need \r\n, so generate it */
            sccb->data[data_len++] = '\r';
        }

        sccb->data[data_len++] = *p;
        p++;
    }

    sccb->h.length = sizeof(WriteEventData) + data_len;
    sccb->h.function_code = SCLP_FC_NORMAL_WRITE;
    sccb->ebh.length = sizeof(EventBufferHeader) + len;
    sccb->ebh.length = sizeof(EventBufferHeader) + data_len;
    sccb->ebh.type = SCLP_EVENT_ASCII_CONSOLE_DATA;
    sccb->ebh.flags = 0;
    memcpy(sccb->data, str, len);

    sclp_service_call(SCLP_CMD_WRITE_EVENT_DATA, sccb);

(81.9 KiB)

File changed.

No diff preview for this file type.

Loading