support tgkill
This commit is contained in:
@ -535,7 +535,7 @@ static int syscall_packet_handler(struct ihk_ikc_channel_desc *c,
|
||||
//cpu_local_var(next) = (struct process *)packet->arg;
|
||||
return 0;
|
||||
case SCD_MSG_SEND_SIGNAL:
|
||||
rc = do_kill((int)packet->arg, -1, (int)(packet->arg >> 32));
|
||||
rc = do_kill((int)packet->pid, (int)(packet->arg >> 32), packet->arg & 0x00000000ffffffffL);
|
||||
kprintf("SCD_MSG_SEND_SIGNAL: %lx, rc=%d\n", packet->arg, rc);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -94,6 +94,7 @@ static char *syscall_name[] MCKERNEL_UNUSED = {
|
||||
|
||||
void check_signal(unsigned long rc, void *regs);
|
||||
void do_signal(long rc, void *regs, struct process *proc, struct sig_pending *pending);
|
||||
extern unsigned long do_kill(int pid, int tid, int sig);
|
||||
int copy_from_user(struct process *, void *, const void *, size_t);
|
||||
int copy_to_user(struct process *, void *, const void *, size_t);
|
||||
|
||||
@ -415,7 +416,10 @@ terminate(int rc, int sig, ihk_mc_user_context_t *ctx)
|
||||
/* Signal parent if still attached */
|
||||
ihk_mc_spinlock_lock_noirq(&ftn->parent->lock);
|
||||
if (ftn->parent->owner) {
|
||||
do_kill(ftn->parent->owner->pid, -1, SIGCHLD);
|
||||
/*
|
||||
sigchld_parent(ftn->parent->owner, 0);
|
||||
*/
|
||||
}
|
||||
ihk_mc_spinlock_unlock_noirq(&ftn->parent->lock);
|
||||
|
||||
@ -1335,8 +1339,6 @@ SYSCALL_DECLARE(set_tid_address)
|
||||
return cpu_local_var(current)->pid;
|
||||
}
|
||||
|
||||
extern unsigned long do_kill(int pid, int tid, int sig);
|
||||
|
||||
SYSCALL_DECLARE(kill)
|
||||
{
|
||||
int pid = ihk_mc_syscall_arg0(ctx);
|
||||
|
||||
Reference in New Issue
Block a user