diff options
Diffstat (limited to 'arch/um/os-Linux/util/mk_user_constants.c')
-rw-r--r-- | arch/um/os-Linux/util/mk_user_constants.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/arch/um/os-Linux/util/mk_user_constants.c b/arch/um/os-Linux/util/mk_user_constants.c new file mode 100644 index 00000000000..0933518aa8b --- /dev/null +++ b/arch/um/os-Linux/util/mk_user_constants.c @@ -0,0 +1,29 @@ +#include <stdio.h> +#include <asm/types.h> +/* For some reason, x86_64 nowhere defines u64 and u32, even though they're + * used throughout the headers. + */ +typedef __u64 u64; +typedef __u32 u32; +#include <asm/user.h> + +int main(int argc, char **argv) +{ + printf("/*\n"); + printf(" * Generated by mk_user_constants\n"); + printf(" */\n"); + printf("\n"); + printf("#ifndef __UM_USER_CONSTANTS_H\n"); + printf("#define __UM_USER_CONSTANTS_H\n"); + printf("\n"); + /* I'd like to use FRAME_SIZE from ptrace.h here, but that's wrong on + * x86_64 (216 vs 168 bytes). user_regs_struct is the correct size on + * both x86_64 and i386. + */ + printf("#define UM_FRAME_SIZE %d\n", (int) sizeof(struct user_regs_struct)); + + printf("\n"); + printf("#endif\n"); + + return(0); +} |