xref: /kvm-unit-tests/lib/s390x/asm-offsets.c (revision c9cda994b48d8e9bc0d001e0d3c5ed2c029a8687)
16c9f99dfSJanosch Frank /* SPDX-License-Identifier: GPL-2.0-only */
2cfb204f9SDavid Hildenbrand /*
3cfb204f9SDavid Hildenbrand  * Copyright (c) 2017 Red Hat Inc
4cfb204f9SDavid Hildenbrand  *
5cfb204f9SDavid Hildenbrand  * Authors:
6cfb204f9SDavid Hildenbrand  *  David Hildenbrand <david@redhat.com>
7cfb204f9SDavid Hildenbrand  */
8cfb204f9SDavid Hildenbrand #include <libcflat.h>
9cfb204f9SDavid Hildenbrand #include <kbuild.h>
10cfb204f9SDavid Hildenbrand #include <asm/arch_def.h>
113ae7f80fSJanosch Frank #include <sie.h>
12cfb204f9SDavid Hildenbrand 
main(void)13cfb204f9SDavid Hildenbrand int main(void)
14cfb204f9SDavid Hildenbrand {
15cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_EXT_INT_PARAM, lowcore, ext_int_param);
16cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_CPU_ADDR, lowcore, cpu_addr);
17cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_EXT_INT_CODE, lowcore, ext_int_code);
18cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_SVC_INT_ID, lowcore, svc_int_id);
19cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_SVC_INT_CODE, lowcore, svc_int_code);
20cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_PGM_INT_ID, lowcore, pgm_int_id);
21cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_PGM_INT_CODE, lowcore, pgm_int_code);
22cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_DXC_VXC, lowcore, dxc_vxc);
23cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_MON_CLASS_NB, lowcore, mon_class_nb);
24cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_PER_CODE, lowcore, per_code);
25cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_PER_ATMID, lowcore, per_atmid);
26cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_PER_ADDR, lowcore, per_addr);
27cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_EXC_ACC_ID, lowcore, exc_acc_id);
28cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_PER_ACC_ID, lowcore, per_acc_id);
29cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_OP_ACC_ID, lowcore, op_acc_id);
30cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_ARCH_MODE_ID, lowcore, arch_mode_id);
31cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_TRANS_EXC_ID, lowcore, trans_exc_id);
32cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_MON_CODE, lowcore, mon_code);
33cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_SUBSYS_ID_WORD, lowcore, subsys_id_word);
34cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_IO_INT_PARAM, lowcore, io_int_param);
35cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_IO_INT_WORD, lowcore, io_int_word);
36cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_STFL, lowcore, stfl);
37cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_MCCK_INT_CODE, lowcore, mcck_int_code);
38cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_EXT_DAMAGE_CODE, lowcore, ext_damage_code);
39cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_FAILING_STORAGE_ADDR, lowcore, failing_storage_addr);
40cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_EMON_CA_ORIGIN, lowcore, emon_ca_origin);
41cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_EMON_CA_SIZE, lowcore, emon_ca_size);
42cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_EMON_EXC_COUNT, lowcore, emon_exc_count);
43cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_BREAKING_EVENT_ADDR, lowcore, breaking_event_addr);
44cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_RESTART_OLD_PSW, lowcore, restart_old_psw);
45cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_EXT_OLD_PSW, lowcore, ext_old_psw);
46cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_SVC_OLD_PSW, lowcore, svc_old_psw);
47cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_PGM_OLD_PSW, lowcore, pgm_old_psw);
48cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_MCCK_OLD_PSW, lowcore, mcck_old_psw);
49cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_IO_OLD_PSW, lowcore, io_old_psw);
50cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_RESTART_NEW_PSW, lowcore, restart_new_psw);
51cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_EXT_NEW_PSW, lowcore, ext_new_psw);
52cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_SVC_NEW_PSW, lowcore, svc_new_psw);
53cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_PGM_NEW_PSW, lowcore, pgm_new_psw);
54cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_MCCK_NEW_PSW, lowcore, mcck_new_psw);
55cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_IO_NEW_PSW, lowcore, io_new_psw);
564da93626SDavid Hildenbrand 	OFFSET(GEN_LC_SW_INT_GRS, lowcore, sw_int_grs);
57736b9295SJanosch Frank 	OFFSET(GEN_LC_SW_INT_CRS, lowcore, sw_int_crs);
58da6ce270SJanosch Frank 	OFFSET(GEN_LC_SW_INT_PSW, lowcore, sw_int_psw);
59cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_MCCK_EXT_SA_ADDR, lowcore, mcck_ext_sa_addr);
60cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_FPRS_SA, lowcore, fprs_sa);
61cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_GRS_SA, lowcore, grs_sa);
62cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_PSW_SA, lowcore, psw_sa);
63cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_PREFIX_SA, lowcore, prefix_sa);
64cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_FPC_SA, lowcore, fpc_sa);
65cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_TOD_PR_SA, lowcore, tod_pr_sa);
66cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_CPUTM_SA, lowcore, cputm_sa);
67cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_CC_SA, lowcore, cc_sa);
68cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_ARS_SA, lowcore, ars_sa);
69cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_CRS_SA, lowcore, crs_sa);
70cfb204f9SDavid Hildenbrand 	OFFSET(GEN_LC_PGM_INT_TDB, lowcore, pgm_int_tdb);
7136cfc0b7SJanosch Frank 	OFFSET(__SF_SIE_CONTROL, stack_frame, argument_area[0]);
7236cfc0b7SJanosch Frank 	OFFSET(__SF_SIE_SAVEAREA, stack_frame, argument_area[1]);
7336cfc0b7SJanosch Frank 	OFFSET(__SF_SIE_REASON, stack_frame, argument_area[2]);
7436cfc0b7SJanosch Frank 	OFFSET(__SF_SIE_FLAGS, stack_frame, argument_area[3]);
753ae7f80fSJanosch Frank 	OFFSET(SIE_SAVEAREA_HOST_GRS, vm_save_area, host.grs[0]);
763ae7f80fSJanosch Frank 	OFFSET(SIE_SAVEAREA_HOST_FPRS, vm_save_area, host.fprs[0]);
773ae7f80fSJanosch Frank 	OFFSET(SIE_SAVEAREA_HOST_FPC, vm_save_area, host.fpc);
789e3cff66SJanosch Frank 	OFFSET(SIE_SAVEAREA_HOST_ASCE, vm_save_area, host.asce);
793ae7f80fSJanosch Frank 	OFFSET(SIE_SAVEAREA_GUEST_GRS, vm_save_area, guest.grs[0]);
803ae7f80fSJanosch Frank 	OFFSET(SIE_SAVEAREA_GUEST_FPRS, vm_save_area, guest.fprs[0]);
813ae7f80fSJanosch Frank 	OFFSET(SIE_SAVEAREA_GUEST_FPC, vm_save_area, guest.fpc);
829e3cff66SJanosch Frank 	OFFSET(SIE_SAVEAREA_GUEST_ASCE, vm_save_area, guest.asce);
8336cfc0b7SJanosch Frank 	OFFSET(STACK_FRAME_INT_BACKCHAIN, stack_frame_int, back_chain);
8436cfc0b7SJanosch Frank 	OFFSET(STACK_FRAME_INT_FPC, stack_frame_int, fpc);
8536cfc0b7SJanosch Frank 	OFFSET(STACK_FRAME_INT_FPRS, stack_frame_int, fprs);
8636cfc0b7SJanosch Frank 	OFFSET(STACK_FRAME_INT_CRS, stack_frame_int, crs);
8736cfc0b7SJanosch Frank 	OFFSET(STACK_FRAME_INT_GRS0, stack_frame_int, grs0);
8836cfc0b7SJanosch Frank 	OFFSET(STACK_FRAME_INT_GRS1, stack_frame_int, grs1);
8936cfc0b7SJanosch Frank 	DEFINE(STACK_FRAME_INT_SIZE, sizeof(struct stack_frame_int));
90*8e9fbb64SMarc Hartmayer 	DEFINE(STACK_FRAME_SIZE, sizeof(struct stack_frame));
91cfb204f9SDavid Hildenbrand 
92cfb204f9SDavid Hildenbrand 	return 0;
93cfb204f9SDavid Hildenbrand }
94