xref: /kvm-unit-tests/lib/ppc64/asm-offsets.c (revision c76b0d0a3842ba312a2d8512f7a3728f4598bf94)
11e95c7ccSAndrew Jones /*
21e95c7ccSAndrew Jones  * Copyright (C) 2016, Red Hat Inc, Andrew Jones <drjones@redhat.com>
31e95c7ccSAndrew Jones  *
41e95c7ccSAndrew Jones  * This work is licensed under the terms of the GNU LGPL, version 2.
51e95c7ccSAndrew Jones  */
61e95c7ccSAndrew Jones #include <libcflat.h>
71e95c7ccSAndrew Jones #include <kbuild.h>
86842bc34SLaurent Vivier #include <asm/ptrace.h>
9*c76b0d0aSNicholas Piggin #include <asm/setup.h>
10*c76b0d0aSNicholas Piggin #include <asm/smp.h>
111e95c7ccSAndrew Jones 
main(void)121e95c7ccSAndrew Jones int main(void)
131e95c7ccSAndrew Jones {
146842bc34SLaurent Vivier 	DEFINE(INT_FRAME_SIZE, STACK_INT_FRAME_SIZE);
156842bc34SLaurent Vivier 
166842bc34SLaurent Vivier 	DEFINE(GPR0, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[0]));
176842bc34SLaurent Vivier 	DEFINE(GPR1, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[1]));
186842bc34SLaurent Vivier 	DEFINE(GPR2, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[2]));
196842bc34SLaurent Vivier 	DEFINE(GPR3, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[3]));
206842bc34SLaurent Vivier 	DEFINE(GPR4, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[4]));
216842bc34SLaurent Vivier 	DEFINE(GPR5, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[5]));
226842bc34SLaurent Vivier 	DEFINE(GPR6, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[6]));
236842bc34SLaurent Vivier 	DEFINE(GPR7, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[7]));
246842bc34SLaurent Vivier 	DEFINE(GPR8, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[8]));
256842bc34SLaurent Vivier 	DEFINE(GPR9, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[9]));
266842bc34SLaurent Vivier 	DEFINE(GPR10, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[10]));
276842bc34SLaurent Vivier 	DEFINE(GPR11, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[11]));
286842bc34SLaurent Vivier 	DEFINE(GPR12, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[12]));
296842bc34SLaurent Vivier 	DEFINE(GPR13, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[13]));
306842bc34SLaurent Vivier 	DEFINE(GPR14, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[14]));
316842bc34SLaurent Vivier 	DEFINE(GPR15, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[15]));
326842bc34SLaurent Vivier 	DEFINE(GPR16, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[16]));
336842bc34SLaurent Vivier 	DEFINE(GPR17, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[17]));
346842bc34SLaurent Vivier 	DEFINE(GPR18, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[18]));
356842bc34SLaurent Vivier 	DEFINE(GPR19, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[19]));
366842bc34SLaurent Vivier 	DEFINE(GPR20, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[20]));
376842bc34SLaurent Vivier 	DEFINE(GPR21, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[21]));
386842bc34SLaurent Vivier 	DEFINE(GPR22, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[22]));
396842bc34SLaurent Vivier 	DEFINE(GPR23, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[23]));
406842bc34SLaurent Vivier 	DEFINE(GPR24, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[24]));
416842bc34SLaurent Vivier 	DEFINE(GPR25, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[25]));
426842bc34SLaurent Vivier 	DEFINE(GPR26, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[26]));
436842bc34SLaurent Vivier 	DEFINE(GPR27, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[27]));
446842bc34SLaurent Vivier 	DEFINE(GPR28, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[28]));
456842bc34SLaurent Vivier 	DEFINE(GPR29, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[29]));
466842bc34SLaurent Vivier 	DEFINE(GPR30, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[30]));
476842bc34SLaurent Vivier 	DEFINE(GPR31, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, gpr[31]));
486842bc34SLaurent Vivier 	DEFINE(_NIP, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, nip));
496842bc34SLaurent Vivier 	DEFINE(_MSR, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, msr));
506842bc34SLaurent Vivier 	DEFINE(_CTR, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, ctr));
516842bc34SLaurent Vivier 	DEFINE(_LINK, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, link));
526842bc34SLaurent Vivier 	DEFINE(_XER, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, xer));
536842bc34SLaurent Vivier 	DEFINE(_CCR, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, ccr));
546842bc34SLaurent Vivier 	DEFINE(_TRAP, STACK_FRAME_OVERHEAD+offsetof(struct pt_regs, trap));
55*c76b0d0aSNicholas Piggin 
56*c76b0d0aSNicholas Piggin 	DEFINE(SIZEOF_STRUCT_CPU, sizeof(struct cpu));
57*c76b0d0aSNicholas Piggin 	DEFINE(CPU_SERVER_NO, offsetof(struct cpu, server_no));
58*c76b0d0aSNicholas Piggin 	DEFINE(CPU_STACK, offsetof(struct cpu, stack));
59*c76b0d0aSNicholas Piggin 	DEFINE(CPU_EXCEPTION_STACK, offsetof(struct cpu, exception_stack));
60*c76b0d0aSNicholas Piggin 	DEFINE(MAX_CPUS, NR_CPUS);
61*c76b0d0aSNicholas Piggin 
621e95c7ccSAndrew Jones 	return 0;
631e95c7ccSAndrew Jones }
64