| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- /* SPDX-License-Identifier: GPL-2.0 */
- /*
- * Copyright (C) 2015 Thomas Meyer (thomas@m3y3r.de)
- * Copyright (C) 2005 Jeff Dike (jdike@karaya.com)
- */
- #ifndef __STUB_DATA_H
- #define __STUB_DATA_H
- #include <linux/compiler_types.h>
- #include <as-layout.h>
- #include <sysdep/tls.h>
- #define STUB_NEXT_SYSCALL(s) \
- ((struct stub_syscall *) (((unsigned long) s) + (s)->cmd_len))
- enum stub_syscall_type {
- STUB_SYSCALL_UNSET = 0,
- STUB_SYSCALL_MMAP,
- STUB_SYSCALL_MUNMAP,
- STUB_SYSCALL_MPROTECT,
- };
- struct stub_syscall {
- struct {
- unsigned long addr;
- unsigned long length;
- unsigned long offset;
- int fd;
- int prot;
- } mem;
- enum stub_syscall_type syscall;
- };
- struct stub_data {
- unsigned long offset;
- long err, child_err;
- int syscall_data_len;
- /* 128 leaves enough room for additional fields in the struct */
- struct stub_syscall syscall_data[(UM_KERN_PAGE_SIZE - 128) / sizeof(struct stub_syscall)] __aligned(16);
- /* Stack for our signal handlers and for calling into . */
- unsigned char sigstack[UM_KERN_PAGE_SIZE] __aligned(UM_KERN_PAGE_SIZE);
- };
- #endif
|