summaryrefslogtreecommitdiff
path: root/src/util.h
blob: 7296636407856a5312d5e39564767165f019b775 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#pragma once

#include "base.h"
#include "jprint.h"

int   Create_eiface(u32 *ID, fd Control);
int   Create_bridge(u32 *ID, fd Control);
int   ng_connect(fd Control, char const *NodeA, char const *NodeB, char const *HookA, char const *HookB);
int   Create_pipe(u32        *ID,
                  fd          Control,
                  char const *NodeA,
                  char const *NodeB,
                  char const *HookA,
                  char const *HookB);
int   DestroyNetgraphNode(u32 ID, fd Control);
char *getifname(u32 ID, fd Control);
void  close_all(void);
int   command_a(char const *Program, char **Arg);
int   command_v(char const *Program, va_list Arg);
int   command(char const *Program, ...);

struct
{
	size_t Count;
	char **_;
} typedef string_array;

void  Free_string_array(string_array *);
char *Parse_string_array(string_array *, ucl_object_t const *root, char const *Position);
void  Save_string_array(jprint_state *, string_array const *);
int   exec_string_array(string_array *, bool Wait, jid_t JID);

int mount_unionfs(char const *Target, char const *Source, bool Below);
int mount_devfs(char const *Target);
int mount_nullfs(char const *Target, char const *Source);