aboutsummaryrefslogtreecommitdiffstats
path: root/src/s6/s6-internal.h
blob: e2693807fba8f39c467b893bcdbbdee769101f30 (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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/* ISC license. */

#ifndef S6_INTERNAL_H
#define S6_INTERNAL_H

#include <stddef.h>
#include <stdint.h>
#include <stdlib.h>

#include <skalibs/functypes.h>
#include <s6-frontend/config.h>


 /* util */

extern int keycmp (void const *, void const *) ;
#define BSEARCH(type, key, array) bsearch(key, (array), sizeof(array)/sizeof(type), sizeof(type), &keycmp)


 /* help */

extern int process_help (char const *const *) ;
extern int service_help (char const *const *) ;

extern int help (char const *const *) ;


 /* process */

extern void process_check_services (char const *const *, size_t) ;
extern int process_send_svc (char const *, char const *const *, size_t) ;

extern int process_kill (char const *const *) ;
extern int process_restart (char const *const *) ;
extern int process_start (char const *const *) ;
extern int process_status (char const *const *) ;
extern int process_stop (char const *const *) ;

extern int process (char const *const *) ;


 /* service */

extern int service_start (char const *const *) ;
extern int service_status (char const *const *) ;
extern int service_stop (char const *const *) ;

extern int service (char const *const *) ;


 /* main */

struct global_s
{
  unsigned int verbosity ;
  char const *scandir ;
  uint8_t color : 1 ;
} ;
#define GLOBAL_ZERO \
{ \
  .verbosity = 1, \
  .scandir = "/run/service", \
  .color = 0 \
}

struct command_s
{
  char const *s ;
  main_func_ref f ;
} ;
#define COMMAND_ZERO { .s = 0, .f = 0 }

extern struct global_s *g ;

extern int version (char const *const *) ;

#endif