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_basic(char c
) {
34 static const char valid
[] = {
45 SD_BUS_TYPE_OBJECT_PATH
,
46 SD_BUS_TYPE_SIGNATURE
,
50 return !!memchr(valid
, c
, sizeof(valid
));
53 bool bus_type_is_trivial(char c
) {
54 static const char valid
[] = {
66 return !!memchr(valid
, c
, sizeof(valid
));
69 bool bus_type_is_container(char c
) {
70 static const char valid
[] = {
74 SD_BUS_TYPE_DICT_ENTRY
77 return !!memchr(valid
, c
, sizeof(valid
));
80 int bus_type_get_alignment(char c
) {
83 case SD_BUS_TYPE_BYTE
:
84 case SD_BUS_TYPE_SIGNATURE
:
85 case SD_BUS_TYPE_VARIANT
:
88 case SD_BUS_TYPE_INT16
:
89 case SD_BUS_TYPE_UINT16
:
92 case SD_BUS_TYPE_BOOLEAN
:
93 case SD_BUS_TYPE_INT32
:
94 case SD_BUS_TYPE_UINT32
:
95 case SD_BUS_TYPE_STRING
:
96 case SD_BUS_TYPE_OBJECT_PATH
:
97 case SD_BUS_TYPE_ARRAY
:
98 case SD_BUS_TYPE_UNIX_FD
:
101 case SD_BUS_TYPE_INT64
:
102 case SD_BUS_TYPE_UINT64
:
103 case SD_BUS_TYPE_DOUBLE
:
104 case SD_BUS_TYPE_STRUCT
:
105 case SD_BUS_TYPE_STRUCT_BEGIN
:
106 case SD_BUS_TYPE_DICT_ENTRY
:
107 case SD_BUS_TYPE_DICT_ENTRY_BEGIN
:
114 int bus_type_get_size(char c
) {
117 case SD_BUS_TYPE_BYTE
:
120 case SD_BUS_TYPE_INT16
:
121 case SD_BUS_TYPE_UINT16
:
124 case SD_BUS_TYPE_BOOLEAN
:
125 case SD_BUS_TYPE_INT32
:
126 case SD_BUS_TYPE_UINT32
:
127 case SD_BUS_TYPE_UNIX_FD
:
130 case SD_BUS_TYPE_INT64
:
131 case SD_BUS_TYPE_UINT64
:
132 case SD_BUS_TYPE_DOUBLE
: