consinfo
struct consinfo *consinfo;
STAILQ_FOREACH(consinfo, &consinfos, link) {
if (consinfo->pid != -1 && consinfo->pid != 0)
kill(consinfo->pid, sig);
struct consinfo *consinfo;
STAILQ_FOREACH(consinfo, &consinfos, link) {
if (consinfo->pid != -1) {
struct consinfo *consinfo, *child_consinfo;
STAILQ_FOREACH(consinfo, &consinfos, link) {
if (consinfo->pid == pid)
child_consinfo = consinfo;
else if (consinfo->pid != -1 && consinfo->pid != 0)
struct consinfo *consinfo;
consinfo = malloc(sizeof(struct consinfo));
if (consinfo == NULL)
controlling_consinfo = consinfo;
consinfo->name = name;
consinfo->pid = -1;
consinfo->fd = fd;
consinfo->exitstatus = -1;
STAILQ_INSERT_TAIL(&consinfos, consinfo, link);
strcmp(consinfo->name, primary_console) == 0)
primary_consinfo = consinfo;
start_console(struct consinfo *consinfo, const char **argv,
if (consinfo == primary_consinfo)
consinfo->name);
child_leader_run(consinfo->name, consinfo->fd,
consinfo != controlling_consinfo, argv, oset,
consinfo->pid = pid;
struct consinfo *consinfo;
STAILQ_FOREACH(consinfo, &consinfos, link)
start_console(consinfo, newargv, primary_secondary,
STAILQ_ENTRY(consinfo) link;
STAILQ_HEAD(consinfo_list, consinfo);
static struct consinfo *primary_consinfo;
static struct consinfo *controlling_consinfo;
static struct consinfo * volatile first_sigchld_consinfo;