filed
struct filedesc filed;
if (!kvm_read_all(kd, (unsigned long)kp->ki_fd, &filed,
sizeof(filed))) {
if (!kvm_read_all(kd, (unsigned long)filed.fd_files, &nfiles,
warnx("can't read fd_files at %p", (void *)filed.fd_files);
if (!kvm_read_all(kd, (unsigned long)filed.fd_files, fdt, fdt_size)) {
warnx("cannot read file structures at %p", (void *)filed.fd_files);
struct filed *f;
struct filed *f;
fprintlog_write(struct filed *f, struct iovlist *il, int flags)
struct filed *f_in_list;
fprintlog_rfc5424(struct filed *f, const char *hostname, const char *app_name,
fprintlog_rfc3164(struct filed *f, const char *hostname, const char *app_name,
static STAILQ_HEAD(, filed) fhead =
static struct filed consfile; /* Console */
fprintlog_first(struct filed *f, const char *hostname, const char *app_name,
fprintlog_successive(struct filed *f, int flags)
wallmsg(const struct filed *f, struct iovec *iov, const int iovlen)
struct filed *f;
struct filed *f;
struct filed *f;
struct filed *f;
parse_selector(const char *p, struct filed *f)
make_forw_socket_array(const nvlist_t *nvl, struct filed *f,
parse_action(const nvlist_t *nvl, const char *p, struct filed *f)
struct filed f = { };
struct filed *f;
static void fprintlog_first(struct filed *, const char *, const char *,
static void fprintlog_write(struct filed *, struct iovlist *, int);
static void fprintlog_successive(struct filed *, int);
static void log_deadchild(int, int, const struct filed *);
close_filed(struct filed *f)
log_deadchild(int pd, int status, const struct filed *f)
struct filed *f = ev.udata;
STAILQ_ENTRY(filed) next; /* next in linked list */
void wallmsg(const struct filed *, struct iovec *, const int);
void cap_wallmsg(cap_channel_t *, const struct filed *, struct iovec *,
nvlist_t *filed_to_nvlist(const struct filed *);
struct filed *nvlist_to_filed(const nvlist_t *);
filed_to_nvlist(const struct filed *filed)
enum f_type f_type = filed->f_type;
nvlist_add_string(nvl_filed, "f_host", filed->f_host);
nvlist_add_string(nvl_filed, "f_program", filed->f_program);
if (filed->f_prop_filter != NULL) {
prop_filter_to_nvlist(filed->f_prop_filter));
sz = nitems(filed->f_pmask);
filed->f_pmask[i]);
sz = nitems(filed->f_pcmp);
filed->f_pcmp[i]);
if (filed->f_file >= 0)
nvlist_add_descriptor(nvl_filed, "f_file", filed->f_file);
nvlist_add_number(nvl_filed, "f_flags", filed->f_flags);
sz = nitems(filed->f_uname);
filed->f_uname[i]);
nvlist_add_string(nvl_filed, "f_fname", filed->f_fname);
nvlist_add_string(nvl_filed, "f_hname", filed->f_hname);
filed->f_addr_fds, filed->f_num_addr_fds);
nvlist_add_binary(nvl_filed, "f_addrs", filed->f_addrs,
filed->f_num_addr_fds * sizeof(*filed->f_addrs));
} else if (filed->f_type == F_PIPE) {
nvlist_add_string(nvl_filed, "f_pname", filed->f_pname);
if (filed->f_procdesc >= 0) {
filed->f_procdesc);
struct filed *
struct filed *filed;
filed = calloc(1, sizeof(*filed));
if (filed == NULL)
f_type = filed->f_type = nvlist_get_number(nvl_filed, "f_type");
(void)strlcpy(filed->f_host, nvlist_get_string(nvl_filed, "f_host"),
sizeof(filed->f_host));
(void)strlcpy(filed->f_program, nvlist_get_string(nvl_filed,
"f_program"), sizeof(filed->f_program));
filed->f_prop_filter = nvlist_to_prop_filter(
assert(sz == nitems(filed->f_pmask));
filed->f_pmask[i] = narr[i];
assert(sz == nitems(filed->f_pcmp));
filed->f_pcmp[i] = narr[i];
filed->f_file = dup(nvlist_get_descriptor(nvl_filed, "f_file"));
filed->f_file = -1;
filed->f_flags = nvlist_get_number(nvl_filed, "f_flags");
assert(sz == nitems(filed->f_uname));
(void)strlcpy(filed->f_uname[i], f_uname[i],
sizeof(filed->f_uname[i]));
(void)strlcpy(filed->f_fname, nvlist_get_string(nvl_filed,
"f_fname"), sizeof(filed->f_fname));
(void)strlcpy(filed->f_hname, nvlist_get_string(nvl_filed,
"f_hname"), sizeof(filed->f_hname));
"f_addr_fds", &filed->f_num_addr_fds);
filed->f_addr_fds = calloc(filed->f_num_addr_fds,
if (filed->f_addr_fds == NULL)
for (i = 0; i < filed->f_num_addr_fds; ++i) {
filed->f_addr_fds[i] = dup(f_addr_fds[i]);
if (filed->f_addr_fds[i] < 0)
} else if (filed->f_type == F_PIPE) {
(void)strlcpy(filed->f_pname, nvlist_get_string(nvl_filed,
"f_pname"), sizeof(filed->f_pname));
filed->f_procdesc = dup(nvlist_get_descriptor(nvl_filed,
filed->f_procdesc = -1;
return (filed);
cap_wallmsg(cap_channel_t *chan, const struct filed *f, struct iovec *iov,
const struct filed *f;