lowcore.h

来自「linux 内核源代码」· C头文件 代码 · 共 428 行 · 第 1/2 页

H
428
字号
/* *  include/asm-s390/lowcore.h * *  S390 version *    Copyright (C) 1999,2000 IBM Deutschland Entwicklung GmbH, IBM Corporation *    Author(s): Hartmut Penner (hp@de.ibm.com), *               Martin Schwidefsky (schwidefsky@de.ibm.com), *               Denis Joseph Barrow (djbarrow@de.ibm.com,barrow_dj@yahoo.com) */#ifndef _ASM_S390_LOWCORE_H#define _ASM_S390_LOWCORE_H#ifndef __s390x__#define __LC_EXT_OLD_PSW                0x018#define __LC_SVC_OLD_PSW                0x020#define __LC_PGM_OLD_PSW                0x028#define __LC_MCK_OLD_PSW                0x030#define __LC_IO_OLD_PSW                 0x038#define __LC_EXT_NEW_PSW                0x058#define __LC_SVC_NEW_PSW                0x060#define __LC_PGM_NEW_PSW                0x068#define __LC_MCK_NEW_PSW                0x070#define __LC_IO_NEW_PSW                 0x078#else /* !__s390x__ */#define __LC_EXT_OLD_PSW                0x0130#define __LC_SVC_OLD_PSW                0x0140#define __LC_PGM_OLD_PSW                0x0150#define __LC_MCK_OLD_PSW                0x0160#define __LC_IO_OLD_PSW                 0x0170#define __LC_EXT_NEW_PSW                0x01b0#define __LC_SVC_NEW_PSW                0x01c0#define __LC_PGM_NEW_PSW                0x01d0#define __LC_MCK_NEW_PSW                0x01e0#define __LC_IO_NEW_PSW                 0x01f0#endif /* !__s390x__ */#define __LC_IPL_PARMBLOCK_PTR		0x014#define __LC_EXT_PARAMS                 0x080#define __LC_CPU_ADDRESS                0x084#define __LC_EXT_INT_CODE               0x086#define __LC_SVC_ILC                    0x088#define __LC_SVC_INT_CODE               0x08A#define __LC_PGM_ILC                    0x08C#define __LC_PGM_INT_CODE               0x08E#define __LC_PER_ATMID			0x096#define __LC_PER_ADDRESS		0x098#define __LC_PER_ACCESS_ID		0x0A1#define __LC_AR_MODE_ID			0x0A3#define __LC_SUBCHANNEL_ID              0x0B8#define __LC_SUBCHANNEL_NR              0x0BA#define __LC_IO_INT_PARM                0x0BC#define __LC_IO_INT_WORD                0x0C0#define __LC_MCCK_CODE                  0x0E8#define __LC_RETURN_PSW                 0x200#define __LC_SAVE_AREA                  0xC00#ifndef __s390x__#define __LC_IRB			0x208#define __LC_SYNC_ENTER_TIMER		0x248#define __LC_ASYNC_ENTER_TIMER		0x250#define __LC_EXIT_TIMER			0x258#define __LC_LAST_UPDATE_TIMER		0x260#define __LC_USER_TIMER			0x268#define __LC_SYSTEM_TIMER		0x270#define __LC_LAST_UPDATE_CLOCK		0x278#define __LC_STEAL_CLOCK		0x280#define __LC_RETURN_MCCK_PSW            0x288#define __LC_KERNEL_STACK               0xC40#define __LC_THREAD_INFO		0xC44#define __LC_ASYNC_STACK                0xC48#define __LC_KERNEL_ASCE		0xC4C#define __LC_USER_ASCE			0xC50#define __LC_PANIC_STACK                0xC54#define __LC_CPUID                      0xC60#define __LC_CPUADDR                    0xC68#define __LC_IPLDEV                     0xC7C#define __LC_JIFFY_TIMER		0xC80#define __LC_CURRENT			0xC90#define __LC_INT_CLOCK			0xC98#else /* __s390x__ */#define __LC_IRB			0x210#define __LC_SYNC_ENTER_TIMER		0x250#define __LC_ASYNC_ENTER_TIMER		0x258#define __LC_EXIT_TIMER			0x260#define __LC_LAST_UPDATE_TIMER		0x268#define __LC_USER_TIMER			0x270#define __LC_SYSTEM_TIMER		0x278#define __LC_LAST_UPDATE_CLOCK		0x280#define __LC_STEAL_CLOCK		0x288#define __LC_RETURN_MCCK_PSW            0x290#define __LC_KERNEL_STACK               0xD40#define __LC_THREAD_INFO		0xD48#define __LC_ASYNC_STACK                0xD50#define __LC_KERNEL_ASCE		0xD58#define __LC_USER_ASCE			0xD60#define __LC_PANIC_STACK                0xD68#define __LC_CPUID			0xD80#define __LC_CPUADDR			0xD88#define __LC_IPLDEV                     0xDB8#define __LC_JIFFY_TIMER		0xDC0#define __LC_CURRENT			0xDD8#define __LC_INT_CLOCK			0xDE8#endif /* __s390x__ */#define __LC_PANIC_MAGIC		0xE00#ifndef __s390x__#define __LC_PFAULT_INTPARM             0x080#define __LC_CPU_TIMER_SAVE_AREA        0x0D8#define __LC_CLOCK_COMP_SAVE_AREA	0x0E0#define __LC_PSW_SAVE_AREA		0x100#define __LC_PREFIX_SAVE_AREA		0x108#define __LC_AREGS_SAVE_AREA            0x120#define __LC_FPREGS_SAVE_AREA		0x160#define __LC_GPREGS_SAVE_AREA           0x180#define __LC_CREGS_SAVE_AREA            0x1C0#else /* __s390x__ */#define __LC_PFAULT_INTPARM             0x11B8#define __LC_FPREGS_SAVE_AREA		0x1200#define __LC_GPREGS_SAVE_AREA           0x1280#define __LC_PSW_SAVE_AREA		0x1300#define __LC_PREFIX_SAVE_AREA		0x1318#define __LC_FP_CREG_SAVE_AREA		0x131C#define __LC_TODREG_SAVE_AREA		0x1324#define __LC_CPU_TIMER_SAVE_AREA        0x1328#define __LC_CLOCK_COMP_SAVE_AREA	0x1331#define __LC_AREGS_SAVE_AREA            0x1340#define __LC_CREGS_SAVE_AREA            0x1380#endif /* __s390x__ */#ifndef __ASSEMBLY__#include <asm/processor.h>#include <linux/types.h>#include <asm/sigp.h>void restart_int_handler(void);void ext_int_handler(void);void system_call(void);void pgm_check_handler(void);void mcck_int_handler(void);void io_int_handler(void);struct save_area_s390 {	u32	ext_save;	u64	timer;	u64	clk_cmp;	u8	pad1[24];	u8	psw[8];	u32	pref_reg;	u8	pad2[20];	u32	acc_regs[16];	u64	fp_regs[4];	u32	gp_regs[16];	u32	ctrl_regs[16];}  __attribute__((packed));struct save_area_s390x {	u64	fp_regs[16];	u64	gp_regs[16];	u8	psw[16];	u8	pad1[8];	u32	pref_reg;	u32	fp_ctrl_reg;	u8	pad2[4];	u32	tod_reg;	u64	timer;	u64	clk_cmp;	u8	pad3[8];	u32	acc_regs[16];	u64	ctrl_regs[16];}  __attribute__((packed));union save_area {	struct save_area_s390	s390;	struct save_area_s390x	s390x;};#define SAVE_AREA_BASE_S390	0xd4#define SAVE_AREA_BASE_S390X	0x1200#ifndef __s390x__#define SAVE_AREA_SIZE sizeof(struct save_area_s390)#define SAVE_AREA_BASE SAVE_AREA_BASE_S390#else#define SAVE_AREA_SIZE sizeof(struct save_area_s390x)#define SAVE_AREA_BASE SAVE_AREA_BASE_S390X#endifstruct _lowcore{#ifndef __s390x__        /* prefix area: defined by architecture */	psw_t        restart_psw;              /* 0x000 */	__u32        ccw2[4];                  /* 0x008 */	psw_t        external_old_psw;         /* 0x018 */	psw_t        svc_old_psw;              /* 0x020 */	psw_t        program_old_psw;          /* 0x028 */	psw_t        mcck_old_psw;             /* 0x030 */	psw_t        io_old_psw;               /* 0x038 */	__u8         pad1[0x58-0x40];          /* 0x040 */	psw_t        external_new_psw;         /* 0x058 */	psw_t        svc_new_psw;              /* 0x060 */	psw_t        program_new_psw;          /* 0x068 */	psw_t        mcck_new_psw;             /* 0x070 */	psw_t        io_new_psw;               /* 0x078 */	__u32        ext_params;               /* 0x080 */	__u16        cpu_addr;                 /* 0x084 */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?