History

software node: unify PROPERTY_ENTRY_XXX macros

We can unify string properties initializer macros with integer initializers.

Dmitry Torokhov committed 7 years ago

Commit daeba9b1 parent 5236f5f1 file · +27 −37Browse files

Showing the changes to include/linux (1 of 1 file). Show all

Unified · Split

include/linux/property.h+27−37
@@ -250,37 +250,33 @@ struct property_entry { · 249 unmodified lines
250250 };
251251
252252 /*
253− * Note: the below four initializers for the anonymous union are carefully
253+ * Note: the below initializers for the anonymous union are carefully
254254 * crafted to avoid gcc-4.4.4's problems with initialization of anon unions
255255 * and structs.
256256 */
257257
258−#define __PROPERTY_ENTRY_ARRAY_LEN(_name_, _type_, _Type_, _val_, _len_)\
258+#define __PROPERTY_ENTRY_ELEMENT_SIZE(_elem_) \
259+ sizeof(((struct property_entry *)NULL)->value._elem_)
260+
261+#define __PROPERTY_ENTRY_ARRAY_LEN(_name_, _elem_, _Type_, _val_, _len_)\
259262 (struct property_entry) { \
260263 .name = _name_, \
261− .length = (_len_) * sizeof(_type_), \
264+ .length = (_len_) * __PROPERTY_ENTRY_ELEMENT_SIZE(_elem_), \
262265 .is_array = true, \
263266 .type = DEV_PROP_##_Type_, \
264267 { .pointer = _val_ }, \
265268 }
266269
267270 #define PROPERTY_ENTRY_U8_ARRAY_LEN(_name_, _val_, _len_) \
268− __PROPERTY_ENTRY_ARRAY_LEN(_name_, u8, U8, _val_, _len_)
271+ __PROPERTY_ENTRY_ARRAY_LEN(_name_, u8_data, U8, _val_, _len_)
269272 #define PROPERTY_ENTRY_U16_ARRAY_LEN(_name_, _val_, _len_) \
270− __PROPERTY_ENTRY_ARRAY_LEN(_name_, u16, U16, _val_, _len_)
273+ __PROPERTY_ENTRY_ARRAY_LEN(_name_, u16_data, U16, _val_, _len_)
271274 #define PROPERTY_ENTRY_U32_ARRAY_LEN(_name_, _val_, _len_) \
272− __PROPERTY_ENTRY_ARRAY_LEN(_name_, u32, U32, _val_, _len_)
275+ __PROPERTY_ENTRY_ARRAY_LEN(_name_, u32_data, U32, _val_, _len_)
273276 #define PROPERTY_ENTRY_U64_ARRAY_LEN(_name_, _val_, _len_) \
274− __PROPERTY_ENTRY_ARRAY_LEN(_name_, u64, U64, _val_, _len_)
275−
277+ __PROPERTY_ENTRY_ARRAY_LEN(_name_, u64_data, U64, _val_, _len_)
276278 #define PROPERTY_ENTRY_STRING_ARRAY_LEN(_name_, _val_, _len_) \
277−(struct property_entry) { \
278− .name = _name_, \
279− .length = (_len_) * sizeof(const char *), \
280− .is_array = true, \
281− .type = DEV_PROP_STRING, \
282− { .pointer = _val_ }, \
283−}
279+ __PROPERTY_ENTRY_ARRAY_LEN(_name_, str, STRING, _val_, _len_)
284280
285281 #define PROPERTY_ENTRY_U8_ARRAY(_name_, _val_) \
286282 PROPERTY_ENTRY_U8_ARRAY_LEN(_name_, _val_, ARRAY_SIZE(_val_))
@@ -293,30 +289,24 @@ struct property_entry { · 6 unmodified lines
293289 #define PROPERTY_ENTRY_STRING_ARRAY(_name_, _val_) \
294290 PROPERTY_ENTRY_STRING_ARRAY_LEN(_name_, _val_, ARRAY_SIZE(_val_))
295291
296−#define __PROPERTY_ENTRY_INTEGER(_name_, _type_, _Type_, _val_) \
297−(struct property_entry) { \
298− .name = _name_, \
299− .length = sizeof(_type_), \
300− .type = DEV_PROP_##_Type_, \
301− { .value = { ._type_##_data = _val_ } }, \
292+#define __PROPERTY_ENTRY_ELEMENT(_name_, _elem_, _Type_, _val_) \
293+(struct property_entry) { \
294+ .name = _name_, \
295+ .length = __PROPERTY_ENTRY_ELEMENT_SIZE(_elem_), \
296+ .type = DEV_PROP_##_Type_, \
297+ { .value = { ._elem_ = _val_ } }, \
302298 }
303299
304−#define PROPERTY_ENTRY_U8(_name_, _val_) \
305− __PROPERTY_ENTRY_INTEGER(_name_, u8, U8, _val_)
306−#define PROPERTY_ENTRY_U16(_name_, _val_) \
307− __PROPERTY_ENTRY_INTEGER(_name_, u16, U16, _val_)
308−#define PROPERTY_ENTRY_U32(_name_, _val_) \
309− __PROPERTY_ENTRY_INTEGER(_name_, u32, U32, _val_)
310−#define PROPERTY_ENTRY_U64(_name_, _val_) \
311− __PROPERTY_ENTRY_INTEGER(_name_, u64, U64, _val_)
312−
313−#define PROPERTY_ENTRY_STRING(_name_, _val_) \
314−(struct property_entry) { \
315− .name = _name_, \
316− .length = sizeof(const char *), \
317− .type = DEV_PROP_STRING, \
318− { .value = { .str = _val_ } }, \
319−}
300+#define PROPERTY_ENTRY_U8(_name_, _val_) \
301+ __PROPERTY_ENTRY_ELEMENT(_name_, u8_data, U8, _val_)
302+#define PROPERTY_ENTRY_U16(_name_, _val_) \
303+ __PROPERTY_ENTRY_ELEMENT(_name_, u16_data, U16, _val_)
304+#define PROPERTY_ENTRY_U32(_name_, _val_) \
305+ __PROPERTY_ENTRY_ELEMENT(_name_, u32_data, U32, _val_)
306+#define PROPERTY_ENTRY_U64(_name_, _val_) \
307+ __PROPERTY_ENTRY_ELEMENT(_name_, u64_data, U64, _val_)
308+#define PROPERTY_ENTRY_STRING(_name_, _val_) \
309+ __PROPERTY_ENTRY_ELEMENT(_name_, str, STRING, _val_)
320310
321311 #define PROPERTY_ENTRY_BOOL(_name_) \
322312 (struct property_entry) { \

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t