Commit cc7bed1b authored by Janosch Frank's avatar Janosch Frank
Browse files

s390x: Add custom pgm cleanup function

Sometimes we need to do cleanup which we don't necessarily want to add
to interrupt.c, so let's add a way to register a cleanup function.

Signed-off-by: default avatarJanosch Frank <>
Reviewed-by: default avatarClaudio Imbrenda <>
Reviewed-by: default avatarThomas Huth <>
Reviewed-by: default avatarCornelia Huck <>
Message-Id: <>
Signed-off-by: default avatarJanosch Frank <>
parent 1b53866b
......@@ -15,6 +15,7 @@
#define EXT_IRQ_EXTERNAL_CALL 0x1202
#define EXT_IRQ_SERVICE_SIG 0x2401
void register_pgm_cleanup_func(void (*f)(void));
void handle_pgm_int(void);
void handle_ext_int(void);
void handle_mcck_int(void);
......@@ -16,6 +16,7 @@
static bool pgm_int_expected;
static bool ext_int_expected;
static void (*pgm_cleanup_func)(void);
static struct lowcore *lc;
void expect_pgm_int(void)
......@@ -51,6 +52,11 @@ void check_pgm_int_code(uint16_t code)
void register_pgm_cleanup_func(void (*f)(void))
pgm_cleanup_func = f;
static void fixup_pgm_int(void)
switch (lc->pgm_int_code) {
......@@ -115,7 +121,11 @@ void handle_pgm_int(void)
pgm_int_expected = false;
if (pgm_cleanup_func)
void handle_ext_int(void)
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment