We can unify string properties initializer macros with integer initializers.
Showing the changes to include/linux (1 of 1 file). Show all
Unified · Split
| @@ -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 carefully | |
| 253 | + * Note: the below initializers for the anonymous union are carefully | |
| 254 | 254 | * crafted to avoid gcc-4.4.4's problems with initialization of anon unions |
| 255 | 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 | 262 | (struct property_entry) { \ |
| 260 | 263 | .name = _name_, \ |
| 261 | − .length = (_len_) * sizeof(_type_), \ | |
| 264 | + .length = (_len_) * __PROPERTY_ENTRY_ELEMENT_SIZE(_elem_), \ | |
| 262 | 265 | .is_array = true, \ |
| 263 | 266 | .type = DEV_PROP_##_Type_, \ |
| 264 | 267 | { .pointer = _val_ }, \ |
| 265 | 268 | } |
| 266 | 269 | |
| 267 | 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 | 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 | 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 | 276 | #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_) | |
| 276 | 278 | #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_) | |
| 284 | 280 | |
| 285 | 281 | #define PROPERTY_ENTRY_U8_ARRAY(_name_, _val_) \ |
| 286 | 282 | PROPERTY_ENTRY_U8_ARRAY_LEN(_name_, _val_, ARRAY_SIZE(_val_)) |
| @@ -293,30 +289,24 @@ struct property_entry { · 6 unmodified lines | ||
| 293 | 289 | #define PROPERTY_ENTRY_STRING_ARRAY(_name_, _val_) \ |
| 294 | 290 | PROPERTY_ENTRY_STRING_ARRAY_LEN(_name_, _val_, ARRAY_SIZE(_val_)) |
| 295 | 291 | |
| 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_ } }, \ | |
| 302 | 298 | } |
| 303 | 299 | |
| 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_) | |
| 320 | 310 | |
| 321 | 311 | #define PROPERTY_ENTRY_BOOL(_name_) \ |
| 322 | 312 | (struct property_entry) { \ |