version 1.10, 2011/05/28 16:07:43 |
version 1.10.14.3, 2017/12/03 11:39:16 |
Line 34 __KERNEL_RCSID(0, "$NetBSD$"); |
|
Line 34 __KERNEL_RCSID(0, "$NetBSD$"); |
|
#include <sys/proc.h> |
#include <sys/proc.h> |
#include <sys/signal.h> |
#include <sys/signal.h> |
|
|
|
#include <rump-sys/kern.h> |
|
|
#include <rump/rump.h> |
#include <rump/rump.h> |
#include <rump/rumpuser.h> |
#include <rump/rumpuser.h> |
|
|
#include "rump_private.h" |
|
#include "rumpkern_if_priv.h" |
|
|
|
const struct filterops sig_filtops = { |
const struct filterops sig_filtops = { |
.f_attach = (void *)eopnotsupp, |
.f_attach = (void *)eopnotsupp, |
}; |
}; |
Line 84 rumpsig_ignore(struct proc *p, int signo |
|
Line 83 rumpsig_ignore(struct proc *p, int signo |
|
return; |
return; |
} |
} |
|
|
/* RUMP_SIGMODEL_HOST */ |
|
|
|
static void |
|
rumpsig_host(struct proc *p, int signo) |
|
{ |
|
int error; |
|
|
|
rumpuser_kill(p->p_pid, signo, &error); |
|
} |
|
|
|
/* RUMP_SIGMODEL_RAISE */ |
/* RUMP_SIGMODEL_RAISE */ |
|
|
static void |
static void |
rumpsig_raise(struct proc *p, int signo) |
rumpsig_raise(struct proc *p, int signo) |
{ |
{ |
int error = 0; |
|
|
|
if (RUMP_LOCALPROC_P(p)) { |
if (RUMP_LOCALPROC_P(p)) { |
rumpuser_kill(RUMPUSER_PID_SELF, signo, &error); |
rumpuser_kill(p->p_pid, signo); |
} else { |
} else { |
rumpuser_sp_raise(p->p_vmspace->vm_map.pmap, signo); |
rump_sysproxy_raise(RUMP_SPVM2CTL(p->p_vmspace), signo); |
} |
} |
} |
} |
|
|
Line 141 rump_boot_setsigmodel(enum rump_sigmodel |
|
Line 129 rump_boot_setsigmodel(enum rump_sigmodel |
|
case RUMP_SIGMODEL_IGNORE: |
case RUMP_SIGMODEL_IGNORE: |
rumpsig = rumpsig_ignore; |
rumpsig = rumpsig_ignore; |
break; |
break; |
case RUMP_SIGMODEL_HOST: |
|
rumpsig = rumpsig_host; |
|
break; |
|
case RUMP_SIGMODEL_RAISE: |
case RUMP_SIGMODEL_RAISE: |
rumpsig = rumpsig_raise; |
rumpsig = rumpsig_raise; |
break; |
break; |
case RUMP_SIGMODEL_RECORD: |
case RUMP_SIGMODEL_RECORD: |
rumpsig = rumpsig_record; |
rumpsig = rumpsig_record; |
break; |
break; |
|
|
|
/* for compat, though I doubt anyone is using it */ |
|
case RUMP_SIGMODEL__HOST_NOTANYMORE: |
|
rumpsig = rumpsig_raise; |
|
break; |
} |
} |
} |
} |
|
|
|
|
ksiginfo_queue_drain0(ksiginfoq_t *kq) |
ksiginfo_queue_drain0(ksiginfoq_t *kq) |
{ |
{ |
|
|
if (!(CIRCLEQ_EMPTY(kq))) |
if (!(TAILQ_EMPTY(kq))) |
panic("how did that get there?"); |
panic("how did that get there?"); |
} |
} |
|
|