2 This file is part of systemd.
4 Copyright 2013 Lennart Poettering
6 systemd is free software; you can redistribute it and/or modify it
7 under the terms of the GNU Lesser General Public License as published by
8 the Free Software Foundation; either version 2.1 of the License, or
9 (at your option) any later version.
11 systemd is distributed in the hope that it will be useful, but
12 WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.
16 You should have received a copy of the GNU Lesser General Public License
17 along with systemd; If not, see <http://www.gnu.org/licenses/>.
22 bool bus_type_is_valid(char c) {
23 static const char valid[] = {
34 SD_BUS_TYPE_OBJECT_PATH,
35 SD_BUS_TYPE_SIGNATURE,
39 SD_BUS_TYPE_DICT_ENTRY,
43 return !!memchr(valid, c, sizeof(valid));
46 #if 0 /// UNNEEDED by elogind
47 bool bus_type_is_valid_in_signature(char c) {
48 static const char valid[] = {
59 SD_BUS_TYPE_OBJECT_PATH,
60 SD_BUS_TYPE_SIGNATURE,
63 SD_BUS_TYPE_STRUCT_BEGIN,
64 SD_BUS_TYPE_STRUCT_END,
65 SD_BUS_TYPE_DICT_ENTRY_BEGIN,
66 SD_BUS_TYPE_DICT_ENTRY_END,
70 return !!memchr(valid, c, sizeof(valid));
74 bool bus_type_is_basic(char c) {
75 static const char valid[] = {
86 SD_BUS_TYPE_OBJECT_PATH,
87 SD_BUS_TYPE_SIGNATURE,
91 return !!memchr(valid, c, sizeof(valid));
94 bool bus_type_is_trivial(char c) {
95 static const char valid[] = {
107 return !!memchr(valid, c, sizeof(valid));
110 bool bus_type_is_container(char c) {
111 static const char valid[] = {
115 SD_BUS_TYPE_DICT_ENTRY
118 return !!memchr(valid, c, sizeof(valid));
121 int bus_type_get_alignment(char c) {
124 case SD_BUS_TYPE_BYTE:
125 case SD_BUS_TYPE_SIGNATURE:
126 case SD_BUS_TYPE_VARIANT:
129 case SD_BUS_TYPE_INT16:
130 case SD_BUS_TYPE_UINT16:
133 case SD_BUS_TYPE_BOOLEAN:
134 case SD_BUS_TYPE_INT32:
135 case SD_BUS_TYPE_UINT32:
136 case SD_BUS_TYPE_STRING:
137 case SD_BUS_TYPE_OBJECT_PATH:
138 case SD_BUS_TYPE_ARRAY:
139 case SD_BUS_TYPE_UNIX_FD:
142 case SD_BUS_TYPE_INT64:
143 case SD_BUS_TYPE_UINT64:
144 case SD_BUS_TYPE_DOUBLE:
145 case SD_BUS_TYPE_STRUCT:
146 case SD_BUS_TYPE_STRUCT_BEGIN:
147 case SD_BUS_TYPE_DICT_ENTRY:
148 case SD_BUS_TYPE_DICT_ENTRY_BEGIN:
155 int bus_type_get_size(char c) {
158 case SD_BUS_TYPE_BYTE:
161 case SD_BUS_TYPE_INT16:
162 case SD_BUS_TYPE_UINT16:
165 case SD_BUS_TYPE_BOOLEAN:
166 case SD_BUS_TYPE_INT32:
167 case SD_BUS_TYPE_UINT32:
168 case SD_BUS_TYPE_UNIX_FD:
171 case SD_BUS_TYPE_INT64:
172 case SD_BUS_TYPE_UINT64:
173 case SD_BUS_TYPE_DOUBLE: