This patchset contains some minor cleanup, some preparatory work and then the SCLP unit test itself. The unit test checks the following: * Correctly ignoring instruction bits that should be ignored * Privileged instruction check * Check for addressing exceptions * Specification exceptions: - SCCB size less than 8 - SCCB unaligned - SCCB overlaps prefix or lowcore - SCCB address higher than 2GB * Return codes for - Invalid command - SCCB too short (but at least 8) - SCCB page boundary violation v6 -> v7 * renamed spx() and stpx() wrappers to set_prefix and get_prefix * set_prefix now takes a value and get_prefix now returns a value * put back some inline assembly for spx and stpx as a consequence * used LC_SIZE instead of 2 * PAGE_SIZE everywhere in the unit test v5 -> v6 * fixed a bug in test_addressing * improved comments in test_sccb_prefix * replaced all inline assembly usages of spx and stpx with the wrappers * added one more wrapper for test_one_sccb for read-only tests v4 -> v5 * updated usage of report() * added SPX and STPX wrappers to the library * improved readability * addressed some more comments v3 -> v4 * export sclp_setup_int instead of copying it * add more comments * rename some more variables to improve readability * improve the prefix test * improved the invalid address test * addressed further comments received during review v2 -> v3 * generally improved the naming of variables * added and fixed comments * renamed test_one_run to test_one_simple * added some const where needed * addresed many more small comments received during review v1 -> v2 * fix many small issues that came up during the first round of reviews * add comments to each function * use a static buffer for the SCCP template when used Claudio Imbrenda (4): s390x: export sclp_setup_int s390x: sclp: add service call instruction wrapper s390x: lib: add SPX and STPX instruction wrapper s390x: SCLP unit test s390x/Makefile | 1 + lib/s390x/asm/arch_def.h | 26 +++ lib/s390x/sclp.h | 1 + lib/s390x/sclp.c | 9 +- s390x/intercept.c | 23 +- s390x/sclp.c | 472 +++++++++++++++++++++++++++++++++++++++ s390x/unittests.cfg | 8 + 7 files changed, 518 insertions(+), 22 deletions(-) create mode 100644 s390x/sclp.c -- 2.24.1