1 /* SPDX-License-Identifier: LGPL-2.1+ */
3 Copyright 2013 Lennart Poettering
12 bool bus_type_is_valid(char c) {
13 static const char valid[] = {
24 SD_BUS_TYPE_OBJECT_PATH,
25 SD_BUS_TYPE_SIGNATURE,
29 SD_BUS_TYPE_DICT_ENTRY,
33 return !!memchr(valid, c, sizeof(valid));
36 #if 0 /// UNNEEDED by elogind
37 bool bus_type_is_valid_in_signature(char c) {
38 static const char valid[] = {
49 SD_BUS_TYPE_OBJECT_PATH,
50 SD_BUS_TYPE_SIGNATURE,
53 SD_BUS_TYPE_STRUCT_BEGIN,
54 SD_BUS_TYPE_STRUCT_END,
55 SD_BUS_TYPE_DICT_ENTRY_BEGIN,
56 SD_BUS_TYPE_DICT_ENTRY_END,
60 return !!memchr(valid, c, sizeof(valid));
64 bool bus_type_is_basic(char c) {
65 static const char valid[] = {
76 SD_BUS_TYPE_OBJECT_PATH,
77 SD_BUS_TYPE_SIGNATURE,
81 return !!memchr(valid, c, sizeof(valid));
84 bool bus_type_is_trivial(char c) {
85 static const char valid[] = {
97 return !!memchr(valid, c, sizeof(valid));
100 bool bus_type_is_container(char c) {
101 static const char valid[] = {
105 SD_BUS_TYPE_DICT_ENTRY
108 return !!memchr(valid, c, sizeof(valid));
111 int bus_type_get_alignment(char c) {
114 case SD_BUS_TYPE_BYTE:
115 case SD_BUS_TYPE_SIGNATURE:
116 case SD_BUS_TYPE_VARIANT:
119 case SD_BUS_TYPE_INT16:
120 case SD_BUS_TYPE_UINT16:
123 case SD_BUS_TYPE_BOOLEAN:
124 case SD_BUS_TYPE_INT32:
125 case SD_BUS_TYPE_UINT32:
126 case SD_BUS_TYPE_STRING:
127 case SD_BUS_TYPE_OBJECT_PATH:
128 case SD_BUS_TYPE_ARRAY:
129 case SD_BUS_TYPE_UNIX_FD:
132 case SD_BUS_TYPE_INT64:
133 case SD_BUS_TYPE_UINT64:
134 case SD_BUS_TYPE_DOUBLE:
135 case SD_BUS_TYPE_STRUCT:
136 case SD_BUS_TYPE_STRUCT_BEGIN:
137 case SD_BUS_TYPE_DICT_ENTRY:
138 case SD_BUS_TYPE_DICT_ENTRY_BEGIN:
145 int bus_type_get_size(char c) {
148 case SD_BUS_TYPE_BYTE:
151 case SD_BUS_TYPE_INT16:
152 case SD_BUS_TYPE_UINT16:
155 case SD_BUS_TYPE_BOOLEAN:
156 case SD_BUS_TYPE_INT32:
157 case SD_BUS_TYPE_UINT32:
158 case SD_BUS_TYPE_UNIX_FD:
161 case SD_BUS_TYPE_INT64:
162 case SD_BUS_TYPE_UINT64:
163 case SD_BUS_TYPE_DOUBLE: