1 /* SPDX-License-Identifier: LGPL-2.1+ */
11 bool bus_type_is_valid(char c) {
12 static const char valid[] = {
23 SD_BUS_TYPE_OBJECT_PATH,
24 SD_BUS_TYPE_SIGNATURE,
28 SD_BUS_TYPE_DICT_ENTRY,
32 return !!memchr(valid, c, sizeof(valid));
35 #if 0 /// UNNEEDED by elogind
36 bool bus_type_is_valid_in_signature(char c) {
37 static const char valid[] = {
48 SD_BUS_TYPE_OBJECT_PATH,
49 SD_BUS_TYPE_SIGNATURE,
52 SD_BUS_TYPE_STRUCT_BEGIN,
53 SD_BUS_TYPE_STRUCT_END,
54 SD_BUS_TYPE_DICT_ENTRY_BEGIN,
55 SD_BUS_TYPE_DICT_ENTRY_END,
59 return !!memchr(valid, c, sizeof(valid));
63 bool bus_type_is_basic(char c) {
64 static const char valid[] = {
75 SD_BUS_TYPE_OBJECT_PATH,
76 SD_BUS_TYPE_SIGNATURE,
80 return !!memchr(valid, c, sizeof(valid));
83 bool bus_type_is_trivial(char c) {
84 static const char valid[] = {
96 return !!memchr(valid, c, sizeof(valid));
99 bool bus_type_is_container(char c) {
100 static const char valid[] = {
104 SD_BUS_TYPE_DICT_ENTRY
107 return !!memchr(valid, c, sizeof(valid));
110 int bus_type_get_alignment(char c) {
113 case SD_BUS_TYPE_BYTE:
114 case SD_BUS_TYPE_SIGNATURE:
115 case SD_BUS_TYPE_VARIANT:
118 case SD_BUS_TYPE_INT16:
119 case SD_BUS_TYPE_UINT16:
122 case SD_BUS_TYPE_BOOLEAN:
123 case SD_BUS_TYPE_INT32:
124 case SD_BUS_TYPE_UINT32:
125 case SD_BUS_TYPE_STRING:
126 case SD_BUS_TYPE_OBJECT_PATH:
127 case SD_BUS_TYPE_ARRAY:
128 case SD_BUS_TYPE_UNIX_FD:
131 case SD_BUS_TYPE_INT64:
132 case SD_BUS_TYPE_UINT64:
133 case SD_BUS_TYPE_DOUBLE:
134 case SD_BUS_TYPE_STRUCT:
135 case SD_BUS_TYPE_STRUCT_BEGIN:
136 case SD_BUS_TYPE_DICT_ENTRY:
137 case SD_BUS_TYPE_DICT_ENTRY_BEGIN:
144 int bus_type_get_size(char c) {
147 case SD_BUS_TYPE_BYTE:
150 case SD_BUS_TYPE_INT16:
151 case SD_BUS_TYPE_UINT16:
154 case SD_BUS_TYPE_BOOLEAN:
155 case SD_BUS_TYPE_INT32:
156 case SD_BUS_TYPE_UINT32:
157 case SD_BUS_TYPE_UNIX_FD:
160 case SD_BUS_TYPE_INT64:
161 case SD_BUS_TYPE_UINT64:
162 case SD_BUS_TYPE_DOUBLE: