#include <linux/security.h>
#include <linux/syscalls.h>
#include <linux/audit.h>
+#include <linux/ptrace.h>
+
#include <asm/uaccess.h>
#include "util.h"
return err;
}
+asmlinkage long sys_shmat(int shmid, char __user *shmaddr, int shmflg)
+{
+ unsigned long ret;
+ long err;
+
+ err = do_shmat(shmid, shmaddr, shmflg, &ret);
+ if (err)
+ return err;
+ force_successful_syscall_return();
+ return (long)ret;
+}
+
/*
* detach and kill segment if marked destroyed.
* The work is done in shm_close.