/* SPDX-License-Identifier: GPL-2.0-only */ /* * s390x io implementation * * Copyright (c) 2017 Red Hat Inc * * Authors: * Thomas Huth * David Hildenbrand */ #include #include #include #include #include #include "sclp.h" #include "smp.h" extern char ipl_args[]; uint64_t stfl_doublewords[NB_STFL_DOUBLEWORDS]; static struct spinlock lock; void setup(void); void puts(const char *s) { spin_lock(&lock); sclp_print(s); spin_unlock(&lock); } void setup(void) { setup_args_progname(ipl_args); setup_facilities(); sclp_read_info(); sclp_facilities_setup(); sclp_console_setup(); sclp_memory_setup(); smp_setup(); } void exit(int code) { smp_teardown(); printf("\nEXIT: STATUS=%d\n", ((code) << 1) | 1); while (1) { sigp(stap(), SIGP_STOP, 0, NULL); } }