1 /* SPDX-License-Identifier: LGPL-2.1+ */
9 bool bus_type_is_valid(char c
) {
10 static const char valid
[] = {
21 SD_BUS_TYPE_OBJECT_PATH
,
22 SD_BUS_TYPE_SIGNATURE
,
26 SD_BUS_TYPE_DICT_ENTRY
,
30 return !!memchr(valid
, c
, sizeof(valid
));
33 bool bus_type_is_valid_in_signature(char c
) {
34 static const char valid
[] = {
45 SD_BUS_TYPE_OBJECT_PATH
,
46 SD_BUS_TYPE_SIGNATURE
,
49 SD_BUS_TYPE_STRUCT_BEGIN
,
50 SD_BUS_TYPE_STRUCT_END
,
51 SD_BUS_TYPE_DICT_ENTRY_BEGIN
,
52 SD_BUS_TYPE_DICT_ENTRY_END
,
56 return !!memchr(valid
, c
, sizeof(valid
));
59 bool bus_type_is_basic(char c
) {
60 static const char valid
[] = {
71 SD_BUS_TYPE_OBJECT_PATH
,
72 SD_BUS_TYPE_SIGNATURE
,
76 return !!memchr(valid
, c
, sizeof(valid
));
79 bool bus_type_is_trivial(char c
) {
80 static const char valid
[] = {
92 return !!memchr(valid
, c
, sizeof(valid
));
95 bool bus_type_is_container(char c
) {
96 static const char valid
[] = {
100 SD_BUS_TYPE_DICT_ENTRY
103 return !!memchr(valid
, c
, sizeof(valid
));
106 int bus_type_get_alignment(char c
) {
109 case SD_BUS_TYPE_BYTE
:
110 case SD_BUS_TYPE_SIGNATURE
:
111 case SD_BUS_TYPE_VARIANT
:
114 case SD_BUS_TYPE_INT16
:
115 case SD_BUS_TYPE_UINT16
:
118 case SD_BUS_TYPE_BOOLEAN
:
119 case SD_BUS_TYPE_INT32
:
120 case SD_BUS_TYPE_UINT32
:
121 case SD_BUS_TYPE_STRING
:
122 case SD_BUS_TYPE_OBJECT_PATH
:
123 case SD_BUS_TYPE_ARRAY
:
124 case SD_BUS_TYPE_UNIX_FD
:
127 case SD_BUS_TYPE_INT64
:
128 case SD_BUS_TYPE_UINT64
:
129 case SD_BUS_TYPE_DOUBLE
:
130 case SD_BUS_TYPE_STRUCT
:
131 case SD_BUS_TYPE_STRUCT_BEGIN
:
132 case SD_BUS_TYPE_DICT_ENTRY
:
133 case SD_BUS_TYPE_DICT_ENTRY_BEGIN
:
140 int bus_type_get_size(char c
) {
143 case SD_BUS_TYPE_BYTE
:
146 case SD_BUS_TYPE_INT16
:
147 case SD_BUS_TYPE_UINT16
:
150 case SD_BUS_TYPE_BOOLEAN
:
151 case SD_BUS_TYPE_INT32
:
152 case SD_BUS_TYPE_UINT32
:
153 case SD_BUS_TYPE_UNIX_FD
:
156 case SD_BUS_TYPE_INT64
:
157 case SD_BUS_TYPE_UINT64
:
158 case SD_BUS_TYPE_DOUBLE
: