signal (part 1)

This commit is contained in:
Tomoki Shirasawa
2014-01-07 11:57:57 +09:00
parent 9e00275120
commit a8c249ddaf
11 changed files with 224 additions and 72 deletions

View File

@@ -108,14 +108,16 @@ struct process {
unsigned long tlsblock_base, tlsblock_limit;
} thread;
int signal;
sigset_t sigpend;
int tid;
sigset_t sigmask;
int signal;
// sigset_t sigpend;
struct sig_handler *sighandler;
ihk_mc_kernel_context_t sigctx;
char sigstack[512];
// TODO: backup FR and MMX regs
// ihk_mc_kernel_context_t sigctx;
char sigstack[512]; // TODO: 1. move to user stack
// TODO: 2. backup FR and MMX regs
unsigned long sigrc; // return code of rt_sigreturn (x86_64: rax reg.)
struct rlimit rlimit_stack;
pgio_func_t *pgio_fp;
void *pgio_arg;

View File

@@ -203,9 +203,9 @@ struct syscall_params {
SYSCALL_ARG_##a2(2); SYSCALL_ARG_##a3(3); \
SYSCALL_ARG_##a4(4); SYSCALL_ARG_##a5(5);
#define SYSCALL_FOOTER return do_syscall(&request, ctx)
#define SYSCALL_FOOTER return do_syscall(&request, ctx, ihk_mc_get_processor_id())
extern int do_syscall(struct syscall_request *req, ihk_mc_user_context_t *ctx);
extern int do_syscall(struct syscall_request *req, ihk_mc_user_context_t *ctx, int cpu);
extern int obtain_clone_cpuid();
extern long syscall_generic_forwarding(int n, ihk_mc_user_context_t *ctx);