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
250};250};
251 251
252/*252/*
253 * Note: the below four initializers for the anonymous union are carefully253 * Note: the below initializers for the anonymous union are carefully
254 * crafted to avoid gcc-4.4.4's problems with initialization of anon unions254 * crafted to avoid gcc-4.4.4's problems with initialization of anon unions
255 * and structs.255 * and structs.
256 */256 */
257 257
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_)\
259(struct property_entry) { \262(struct property_entry) { \
260 .name = _name_, \263 .name = _name_, \
261 .length = (_len_) * sizeof(_type_), \264 .length = (_len_) * __PROPERTY_ENTRY_ELEMENT_SIZE(_elem_), \
262 .is_array = true, \265 .is_array = true, \
263 .type = DEV_PROP_##_Type_, \266 .type = DEV_PROP_##_Type_, \
264 { .pointer = _val_ }, \267 { .pointer = _val_ }, \
265}268}
266 269
267#define PROPERTY_ENTRY_U8_ARRAY_LEN(_name_, _val_, _len_) \270#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_)
269#define PROPERTY_ENTRY_U16_ARRAY_LEN(_name_, _val_, _len_) \272#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_)
271#define PROPERTY_ENTRY_U32_ARRAY_LEN(_name_, _val_, _len_) \274#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_)
273#define PROPERTY_ENTRY_U64_ARRAY_LEN(_name_, _val_, _len_) \276#define PROPERTY_ENTRY_U64_ARRAY_LEN(_name_, _val_, _len_) \
274 __PROPERTY_ENTRY_ARRAY_LEN(_name_, u64, U64, _val_, _len_)277 __PROPERTY_ENTRY_ARRAY_LEN(_name_, u64_data, U64, _val_, _len_)
275
276#define PROPERTY_ENTRY_STRING_ARRAY_LEN(_name_, _val_, _len_) \278#define PROPERTY_ENTRY_STRING_ARRAY_LEN(_name_, _val_, _len_) \
277(struct property_entry) { \279 __PROPERTY_ENTRY_ARRAY_LEN(_name_, str, STRING, _val_, _len_)
278 .name = _name_, \
279 .length = (_len_) * sizeof(const char *), \
280 .is_array = true, \
281 .type = DEV_PROP_STRING, \
282 { .pointer = _val_ }, \
283}
284 280
285#define PROPERTY_ENTRY_U8_ARRAY(_name_, _val_) \281#define PROPERTY_ENTRY_U8_ARRAY(_name_, _val_) \
286 PROPERTY_ENTRY_U8_ARRAY_LEN(_name_, _val_, ARRAY_SIZE(_val_))282 PROPERTY_ENTRY_U8_ARRAY_LEN(_name_, _val_, ARRAY_SIZE(_val_))
@@ -293,30 +289,24 @@ struct property_entry { · 6 unmodified lines
293#define PROPERTY_ENTRY_STRING_ARRAY(_name_, _val_) \289#define PROPERTY_ENTRY_STRING_ARRAY(_name_, _val_) \
294 PROPERTY_ENTRY_STRING_ARRAY_LEN(_name_, _val_, ARRAY_SIZE(_val_))290 PROPERTY_ENTRY_STRING_ARRAY_LEN(_name_, _val_, ARRAY_SIZE(_val_))
295 291
296#define __PROPERTY_ENTRY_INTEGER(_name_, _type_, _Type_, _val_) \292#define __PROPERTY_ENTRY_ELEMENT(_name_, _elem_, _Type_, _val_) \
297(struct property_entry) { \293(struct property_entry) { \
298 .name = _name_, \294 .name = _name_, \
299 .length = sizeof(_type_), \295 .length = __PROPERTY_ENTRY_ELEMENT_SIZE(_elem_), \
300 .type = DEV_PROP_##_Type_, \296 .type = DEV_PROP_##_Type_, \
301 { .value = { ._type_##_data = _val_ } }, \297 { .value = { ._elem_ = _val_ } }, \
302}298}
303 299
304#define PROPERTY_ENTRY_U8(_name_, _val_) \300#define PROPERTY_ENTRY_U8(_name_, _val_) \
305 __PROPERTY_ENTRY_INTEGER(_name_, u8, U8, _val_)301 __PROPERTY_ENTRY_ELEMENT(_name_, u8_data, U8, _val_)
306#define PROPERTY_ENTRY_U16(_name_, _val_) \302#define PROPERTY_ENTRY_U16(_name_, _val_) \
307 __PROPERTY_ENTRY_INTEGER(_name_, u16, U16, _val_)303 __PROPERTY_ENTRY_ELEMENT(_name_, u16_data, U16, _val_)
308#define PROPERTY_ENTRY_U32(_name_, _val_) \304#define PROPERTY_ENTRY_U32(_name_, _val_) \
309 __PROPERTY_ENTRY_INTEGER(_name_, u32, U32, _val_)305 __PROPERTY_ENTRY_ELEMENT(_name_, u32_data, U32, _val_)
310#define PROPERTY_ENTRY_U64(_name_, _val_) \306#define PROPERTY_ENTRY_U64(_name_, _val_) \
311 __PROPERTY_ENTRY_INTEGER(_name_, u64, U64, _val_)307 __PROPERTY_ENTRY_ELEMENT(_name_, u64_data, U64, _val_)
312 308#define PROPERTY_ENTRY_STRING(_name_, _val_) \
313#define PROPERTY_ENTRY_STRING(_name_, _val_) \309 __PROPERTY_ENTRY_ELEMENT(_name_, str, STRING, _val_)
314(struct property_entry) { \
315 .name = _name_, \
316 .length = sizeof(const char *), \
317 .type = DEV_PROP_STRING, \
318 { .value = { .str = _val_ } }, \
319}
320 310
321#define PROPERTY_ENTRY_BOOL(_name_) \311#define PROPERTY_ENTRY_BOOL(_name_) \
322(struct property_entry) { \312(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