user-offsets.c (cbecf716ca618fd44feda6bd9a64a8179d031fc5) user-offsets.c (c7500c1b53bfc083e8968cdce13a5a9d1ca9bf83)
1// SPDX-License-Identifier: GPL-2.0
2#include <stdio.h>
3#include <stddef.h>
4#include <signal.h>
5#include <poll.h>
6#include <sys/mman.h>
7#include <sys/user.h>
8#define __FRAME_OFFSETS
9#include <linux/ptrace.h>
10#include <asm/types.h>
1// SPDX-License-Identifier: GPL-2.0
2#include <stdio.h>
3#include <stddef.h>
4#include <signal.h>
5#include <poll.h>
6#include <sys/mman.h>
7#include <sys/user.h>
8#define __FRAME_OFFSETS
9#include <linux/ptrace.h>
10#include <asm/types.h>
11#include <linux/kbuild.h>
11
12
12#define DEFINE(sym, val) \
13 asm volatile("\n->" #sym " %0 " #val : : "i" (val))
13#define DEFINE_LONGS(sym, val) \
14 COMMENT(#val " / sizeof(unsigned long)"); \
15 DEFINE(sym, val / sizeof(unsigned long))
14
16
15#define DEFINE_LONGS(sym, val) \
16 asm volatile("\n->" #sym " %0 " #val : : "i" (val/sizeof(unsigned long)))
17
18void foo(void)
19{
20#ifdef __i386__
21 DEFINE_LONGS(HOST_FP_SIZE, sizeof(struct user_fpregs_struct));
22 DEFINE_LONGS(HOST_FPX_SIZE, sizeof(struct user_fpxregs_struct));
23
24 DEFINE(HOST_IP, EIP);
25 DEFINE(HOST_SP, UESP);

--- 60 unchanged lines hidden ---
17void foo(void)
18{
19#ifdef __i386__
20 DEFINE_LONGS(HOST_FP_SIZE, sizeof(struct user_fpregs_struct));
21 DEFINE_LONGS(HOST_FPX_SIZE, sizeof(struct user_fpxregs_struct));
22
23 DEFINE(HOST_IP, EIP);
24 DEFINE(HOST_SP, UESP);

--- 60 unchanged lines hidden ---