139ac3f84SAndrew Jones /* 239ac3f84SAndrew Jones * Adapted from arch/arm64/kernel/asm-offsets.c 339ac3f84SAndrew Jones * 449f758b8SAndrew Jones * Copyright (C) 2017, Red Hat Inc, Andrew Jones <drjones@redhat.com> 539ac3f84SAndrew Jones * 649f758b8SAndrew Jones * This work is licensed under the terms of the GNU GPL, version 2. 739ac3f84SAndrew Jones */ 839ac3f84SAndrew Jones #include <libcflat.h> 939ac3f84SAndrew Jones #include <kbuild.h> 107ee966e9SAndrew Jones #include <asm/ptrace.h> 1139ac3f84SAndrew Jones 1239ac3f84SAndrew Jones int main(void) 1339ac3f84SAndrew Jones { 147ee966e9SAndrew Jones OFFSET(S_X0, pt_regs, regs[0]); 157ee966e9SAndrew Jones OFFSET(S_X1, pt_regs, regs[1]); 167ee966e9SAndrew Jones OFFSET(S_X2, pt_regs, regs[2]); 177ee966e9SAndrew Jones OFFSET(S_X3, pt_regs, regs[3]); 187ee966e9SAndrew Jones OFFSET(S_X4, pt_regs, regs[4]); 197ee966e9SAndrew Jones OFFSET(S_X5, pt_regs, regs[5]); 207ee966e9SAndrew Jones OFFSET(S_X6, pt_regs, regs[6]); 217ee966e9SAndrew Jones OFFSET(S_X7, pt_regs, regs[7]); 227ee966e9SAndrew Jones OFFSET(S_LR, pt_regs, regs[30]); 237ee966e9SAndrew Jones OFFSET(S_SP, pt_regs, sp); 247ee966e9SAndrew Jones OFFSET(S_PC, pt_regs, pc); 257ee966e9SAndrew Jones OFFSET(S_PSTATE, pt_regs, pstate); 267ee966e9SAndrew Jones OFFSET(S_ORIG_X0, pt_regs, orig_x0); 277ee966e9SAndrew Jones OFFSET(S_SYSCALLNO, pt_regs, syscallno); 28*ecb5e711SNadav Amit 29*ecb5e711SNadav Amit /* FP and LR (16 bytes) go on the frame above pt_regs */ 30*ecb5e711SNadav Amit DEFINE(S_FP, sizeof(struct pt_regs)); 31*ecb5e711SNadav Amit DEFINE(S_FRAME_SIZE, (sizeof(struct pt_regs) + 16)); 32*ecb5e711SNadav Amit 3339ac3f84SAndrew Jones return 0; 3439ac3f84SAndrew Jones } 35