Path: blob/master/arch/um/include/shared/skas/stub-data.h
26495 views
/* SPDX-License-Identifier: GPL-2.0 */1/*23* Copyright (C) 2015 Thomas Meyer ([email protected])4* Copyright (C) 2005 Jeff Dike ([email protected])5*/67#ifndef __STUB_DATA_H8#define __STUB_DATA_H910#include <linux/compiler_types.h>11#include <as-layout.h>12#include <sysdep/tls.h>13#include <sysdep/stub-data.h>14#include <mm_id.h>1516#define FUTEX_IN_CHILD 017#define FUTEX_IN_KERN 11819struct stub_init_data {20int seccomp;2122unsigned long stub_start;2324int stub_code_fd;25unsigned long stub_code_offset;26int stub_data_fd;27unsigned long stub_data_offset;2829unsigned long signal_handler;30unsigned long signal_restorer;31};3233#define STUB_NEXT_SYSCALL(s) \34((struct stub_syscall *) (((unsigned long) s) + (s)->cmd_len))3536enum stub_syscall_type {37STUB_SYSCALL_UNSET = 0,38STUB_SYSCALL_MMAP,39STUB_SYSCALL_MUNMAP,40};4142struct stub_syscall {43struct {44unsigned long addr;45unsigned long length;46unsigned long offset;47int fd;48int prot;49} mem;5051enum stub_syscall_type syscall;52};5354struct stub_data {55unsigned long offset;56long err, child_err;5758int syscall_data_len;59/* 128 leaves enough room for additional fields in the struct */60struct stub_syscall syscall_data[(UM_KERN_PAGE_SIZE - 128) / sizeof(struct stub_syscall)] __aligned(16);6162/* data shared with signal handler (only used in seccomp mode) */63short restart_wait;64unsigned int futex;65int signal;66unsigned short si_offset;67unsigned short mctx_offset;6869/* seccomp architecture specific state restore */70struct stub_data_arch arch_data;7172/* Stack for our signal handlers and for calling into . */73unsigned char sigstack[UM_KERN_PAGE_SIZE] __aligned(UM_KERN_PAGE_SIZE);74};7576#endif777879