#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/signal.h>
#include <linux/string.h>
#include <linux/ptrace.h>
#include <linux/binfmts.h>
#include <linux/personality.h>
#include <linux/coredump.h>
#include <linux/sched/task_stack.h>
#include <linux/uaccess.h>
#include <asm/cacheflush.h>
static int load_aout_binary(struct linux_binprm *);
static int load_aout_library(struct file*);
static struct linux_binfmt aout_format = {
.load_binary = load_aout_binary,
.load_shlib = load_aout_library,
#define BAD_ADDR(x) ((unsigned long)(x) >= TASK_SIZE)
static int set_brk(unsigned long start, unsigned long end)
start = PAGE_ALIGN(start);
return vm_brk(start, end - start);
static unsigned long __user *create_aout_tables(char __user *p, struct linux_binprm * bprm)
char __user * __user *argv;
char __user * __user *envp;
unsigned long __user *sp;