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