chiark / gitweb /
fde6a1fdcdabfed09785441b660e1ee7dfa46ffc
[elogind.git] / src / basic / verbs.h
1 /* SPDX-License-Identifier: LGPL-2.1+ */
2 #pragma once
3
4 /***
5   This file is part of systemd.
6
7   Copyright 2014 Lennart Poettering
8 ***/
9
10 #define VERB_ANY ((unsigned) -1)
11
12 typedef enum VerbFlags {
13         VERB_DEFAULT      = 1 << 0,
14         VERB_ONLINE_ONLY  = 1 << 1,
15         VERB_MUST_BE_ROOT = 1 << 2,
16 } VerbFlags;
17
18 typedef struct {
19         const char *verb;
20         unsigned min_args, max_args;
21         VerbFlags flags;
22         int (* const dispatch)(int argc, char *argv[], void *userdata);
23 } Verb;
24
25 bool running_in_chroot_or_offline(void);
26
27 int dispatch_verb(int argc, char *argv[], const Verb verbs[], void *userdata);