#define MAX_N 5
int N; /* the number of fds this factory makes */
int EX_N; /* fds made optionally */
- bool fork; /* whether this factory make a child process or not */
void (*make)(const struct factory *, struct fdesc[], pid_t *, int, char **);
const struct parameter * params;
};
.priv = false,
.N = 1,
.EX_N = 0,
- .fork = false,
.make = open_ro_regular_file,
.params = (struct parameter []) {
{
.priv = false,
.N = 2,
.EX_N = 2,
- .fork = false,
.make = make_pipe,
.params = (struct parameter []) {
{
.priv = false,
.N = 1,
.EX_N = 0,
- .fork = false,
.make = open_directory,
.params = (struct parameter []) {
{
.priv = false,
.N = 1,
.EX_N = 0,
- .fork = false,
.make = open_rw_chrdev,
.params = (struct parameter []) {
{
.priv = false,
.N = 2,
.EX_N = 0,
- .fork = false,
.make = make_socketpair,
.params = (struct parameter []) {
{
.priv = false,
.N = 1,
.EX_N = 0,
- .fork = false,
.make = open_with_opath,
.params = (struct parameter []) {
{
.priv = true,
.N = 1,
.EX_N = 0,
- .fork = false,
.make = open_ro_blkdev,
.params = (struct parameter []) {
{
.priv = true,
.N = 1,
.EX_N = 0,
- .fork = false,
.make = make_mmapped_packet_socket,
.params = (struct parameter []) {
{
.priv = false,
.N = 1,
.EX_N = 0,
- .fork = false,
.make = make_pidfd,
.params = (struct parameter []) {
{
.priv = false,
.N = 1,
.EX_N = 0,
- .fork = false,
.make = make_inotify_fd,
.params = (struct parameter []) {
PARAM_END
static void print_factory(const struct factory *factory)
{
- printf("%-20s %4s %5d %4s %6d %s\n",
+ printf("%-20s %4s %5d %6d %s\n",
factory->name,
factory->priv? "yes": "no",
factory->N,
- factory->fork? "yes": "no",
count_parameters(factory),
factory->desc);
}
static void list_factories(void)
{
- printf("%-20s PRIV COUNT FORK NPARAM DESCRIPTION\n", "FACTORY");
+ printf("%-20s PRIV COUNT NPARAM DESCRIPTION\n", "FACTORY");
for (size_t i = 0; i < ARRAY_SIZE(factories); i++)
print_factory(factories + i);
}