mirror of https://github.com/xemu-project/xemu.git
pc-bios/s390-ccw: get LOADPARM stored in SCP Read Info
Obtain the loadparm value stored in SCP Read Info by performing a SCLP Read Info request. Rename sclp-ascii.c to sclp.c to reflect the changed scope of the file. Signed-off-by: Farhan Ali <alifm@linux.vnet.ibm.com> Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
This commit is contained in:
parent
cfe2124a7f
commit
9a22473c70
|
@ -9,7 +9,7 @@ $(call set-vpath, $(SRC_PATH)/pc-bios/s390-ccw)
|
||||||
|
|
||||||
.PHONY : all clean build-all
|
.PHONY : all clean build-all
|
||||||
|
|
||||||
OBJECTS = start.o main.o bootmap.o sclp-ascii.o virtio.o virtio-scsi.o
|
OBJECTS = start.o main.o bootmap.o sclp.o virtio.o virtio-scsi.o
|
||||||
QEMU_CFLAGS := $(filter -W%, $(QEMU_CFLAGS))
|
QEMU_CFLAGS := $(filter -W%, $(QEMU_CFLAGS))
|
||||||
QEMU_CFLAGS += -ffreestanding -fno-delete-null-pointer-checks -msoft-float
|
QEMU_CFLAGS += -ffreestanding -fno-delete-null-pointer-checks -msoft-float
|
||||||
QEMU_CFLAGS += -march=z900 -fPIE -fno-strict-aliasing
|
QEMU_CFLAGS += -march=z900 -fPIE -fno-strict-aliasing
|
||||||
|
|
|
@ -63,9 +63,10 @@ void panic(const char *string);
|
||||||
void write_subsystem_identification(void);
|
void write_subsystem_identification(void);
|
||||||
extern char stack[PAGE_SIZE * 8] __attribute__((__aligned__(PAGE_SIZE)));
|
extern char stack[PAGE_SIZE * 8] __attribute__((__aligned__(PAGE_SIZE)));
|
||||||
|
|
||||||
/* sclp-ascii.c */
|
/* sclp.c */
|
||||||
void sclp_print(const char *string);
|
void sclp_print(const char *string);
|
||||||
void sclp_setup(void);
|
void sclp_setup(void);
|
||||||
|
void sclp_get_loadparm_ascii(char *loadparm);
|
||||||
|
|
||||||
/* virtio.c */
|
/* virtio.c */
|
||||||
unsigned long virtio_load_direct(ulong rec_list1, ulong rec_list2,
|
unsigned long virtio_load_direct(ulong rec_list1, ulong rec_list2,
|
||||||
|
|
|
@ -80,3 +80,15 @@ void sclp_print(const char *str)
|
||||||
|
|
||||||
sclp_service_call(SCLP_CMD_WRITE_EVENT_DATA, sccb);
|
sclp_service_call(SCLP_CMD_WRITE_EVENT_DATA, sccb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void sclp_get_loadparm_ascii(char *loadparm)
|
||||||
|
{
|
||||||
|
|
||||||
|
ReadInfo *sccb = (void *)_sccb;
|
||||||
|
|
||||||
|
memset((char *)_sccb, 0, sizeof(ReadInfo));
|
||||||
|
sccb->h.length = sizeof(ReadInfo);
|
||||||
|
if (!sclp_service_call(SCLP_CMDW_READ_SCP_INFO, sccb)) {
|
||||||
|
ebcdic_to_ascii((char *) sccb->loadparm, loadparm, 8);
|
||||||
|
}
|
||||||
|
}
|
|
@ -55,6 +55,8 @@ typedef struct ReadInfo {
|
||||||
SCCBHeader h;
|
SCCBHeader h;
|
||||||
uint16_t rnmax;
|
uint16_t rnmax;
|
||||||
uint8_t rnsize;
|
uint8_t rnsize;
|
||||||
|
uint8_t reserved[13];
|
||||||
|
uint8_t loadparm[8];
|
||||||
} __attribute__((packed)) ReadInfo;
|
} __attribute__((packed)) ReadInfo;
|
||||||
|
|
||||||
typedef struct SCCB {
|
typedef struct SCCB {
|
||||||
|
|
Loading…
Reference in New Issue