1 /*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
3 #ifndef fooconditionhfoo
4 #define fooconditionhfoo
7 This file is part of systemd.
9 Copyright 2010 Lennart Poettering
11 systemd is free software; you can redistribute it and/or modify it
12 under the terms of the GNU General Public License as published by
13 the Free Software Foundation; either version 2 of the License, or
14 (at your option) any later version.
16 systemd is distributed in the hope that it will be useful, but
17 WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 General Public License for more details.
21 You should have received a copy of the GNU General Public License
22 along with systemd; If not, see <http://www.gnu.org/licenses/>.
29 typedef enum ConditionType
{
30 CONDITION_PATH_EXISTS
,
31 CONDITION_PATH_EXISTS_GLOB
,
32 CONDITION_PATH_IS_DIRECTORY
,
33 CONDITION_PATH_IS_SYMBOLIC_LINK
,
34 CONDITION_PATH_IS_MOUNT_POINT
,
35 CONDITION_DIRECTORY_NOT_EMPTY
,
36 CONDITION_FILE_IS_EXECUTABLE
,
37 CONDITION_KERNEL_COMMAND_LINE
,
38 CONDITION_VIRTUALIZATION
,
43 _CONDITION_TYPE_INVALID
= -1
46 typedef struct Condition
{
53 LIST_FIELDS(struct Condition
, conditions
);
56 Condition
* condition_new(ConditionType type
, const char *parameter
, bool trigger
, bool negate
);
57 void condition_free(Condition
*c
);
58 void condition_free_list(Condition
*c
);
60 bool condition_test(Condition
*c
);
61 bool condition_test_list(Condition
*c
);
63 void condition_dump(Condition
*c
, FILE *f
, const char *prefix
);
64 void condition_dump_list(Condition
*c
, FILE *f
, const char *prefix
);
66 const char* condition_type_to_string(ConditionType t
);
67 int condition_type_from_string(const char *s
);