1 /* SPDX-License-Identifier: LGPL-2.1+ */
3 This file is part of systemd.
5 Copyright 2013 Lennart Poettering
14 bool bus_type_is_valid(char c) {
15 static const char valid[] = {
26 SD_BUS_TYPE_OBJECT_PATH,
27 SD_BUS_TYPE_SIGNATURE,
31 SD_BUS_TYPE_DICT_ENTRY,
35 return !!memchr(valid, c, sizeof(valid));
38 #if 0 /// UNNEEDED by elogind
39 bool bus_type_is_valid_in_signature(char c) {
40 static const char valid[] = {
51 SD_BUS_TYPE_OBJECT_PATH,
52 SD_BUS_TYPE_SIGNATURE,
55 SD_BUS_TYPE_STRUCT_BEGIN,
56 SD_BUS_TYPE_STRUCT_END,
57 SD_BUS_TYPE_DICT_ENTRY_BEGIN,
58 SD_BUS_TYPE_DICT_ENTRY_END,
62 return !!memchr(valid, c, sizeof(valid));
66 bool bus_type_is_basic(char c) {
67 static const char valid[] = {
78 SD_BUS_TYPE_OBJECT_PATH,
79 SD_BUS_TYPE_SIGNATURE,
83 return !!memchr(valid, c, sizeof(valid));
86 bool bus_type_is_trivial(char c) {
87 static const char valid[] = {
99 return !!memchr(valid, c, sizeof(valid));
102 bool bus_type_is_container(char c) {
103 static const char valid[] = {
107 SD_BUS_TYPE_DICT_ENTRY
110 return !!memchr(valid, c, sizeof(valid));
113 int bus_type_get_alignment(char c) {
116 case SD_BUS_TYPE_BYTE:
117 case SD_BUS_TYPE_SIGNATURE:
118 case SD_BUS_TYPE_VARIANT:
121 case SD_BUS_TYPE_INT16:
122 case SD_BUS_TYPE_UINT16:
125 case SD_BUS_TYPE_BOOLEAN:
126 case SD_BUS_TYPE_INT32:
127 case SD_BUS_TYPE_UINT32:
128 case SD_BUS_TYPE_STRING:
129 case SD_BUS_TYPE_OBJECT_PATH:
130 case SD_BUS_TYPE_ARRAY:
131 case SD_BUS_TYPE_UNIX_FD:
134 case SD_BUS_TYPE_INT64:
135 case SD_BUS_TYPE_UINT64:
136 case SD_BUS_TYPE_DOUBLE:
137 case SD_BUS_TYPE_STRUCT:
138 case SD_BUS_TYPE_STRUCT_BEGIN:
139 case SD_BUS_TYPE_DICT_ENTRY:
140 case SD_BUS_TYPE_DICT_ENTRY_BEGIN:
147 int bus_type_get_size(char c) {
150 case SD_BUS_TYPE_BYTE:
153 case SD_BUS_TYPE_INT16:
154 case SD_BUS_TYPE_UINT16:
157 case SD_BUS_TYPE_BOOLEAN:
158 case SD_BUS_TYPE_INT32:
159 case SD_BUS_TYPE_UINT32:
160 case SD_BUS_TYPE_UNIX_FD:
163 case SD_BUS_TYPE_INT64:
164 case SD_BUS_TYPE_UINT64:
165 case SD_BUS_TYPE_DOUBLE: