Lines Matching defs:fmsg

5250 	struct devlink_fmsg *fmsg;
5252 fmsg = kzalloc(sizeof(*fmsg), GFP_KERNEL);
5253 if (!fmsg)
5256 INIT_LIST_HEAD(&fmsg->item_list);
5258 return fmsg;
5261 static void devlink_fmsg_free(struct devlink_fmsg *fmsg)
5265 list_for_each_entry_safe(item, tmp, &fmsg->item_list, list) {
5269 kfree(fmsg);
5272 static int devlink_fmsg_nest_common(struct devlink_fmsg *fmsg,
5282 list_add_tail(&item->list, &fmsg->item_list);
5287 int devlink_fmsg_obj_nest_start(struct devlink_fmsg *fmsg)
5289 if (fmsg->putting_binary)
5292 return devlink_fmsg_nest_common(fmsg, DEVLINK_ATTR_FMSG_OBJ_NEST_START);
5296 static int devlink_fmsg_nest_end(struct devlink_fmsg *fmsg)
5298 if (fmsg->putting_binary)
5301 return devlink_fmsg_nest_common(fmsg, DEVLINK_ATTR_FMSG_NEST_END);
5304 int devlink_fmsg_obj_nest_end(struct devlink_fmsg *fmsg)
5306 if (fmsg->putting_binary)
5309 return devlink_fmsg_nest_end(fmsg);
5315 static int devlink_fmsg_put_name(struct devlink_fmsg *fmsg, const char *name)
5319 if (fmsg->putting_binary)
5333 list_add_tail(&item->list, &fmsg->item_list);
5338 int devlink_fmsg_pair_nest_start(struct devlink_fmsg *fmsg, const char *name)
5342 if (fmsg->putting_binary)
5345 err = devlink_fmsg_nest_common(fmsg, DEVLINK_ATTR_FMSG_PAIR_NEST_START);
5349 err = devlink_fmsg_put_name(fmsg, name);
5357 int devlink_fmsg_pair_nest_end(struct devlink_fmsg *fmsg)
5359 if (fmsg->putting_binary)
5362 return devlink_fmsg_nest_end(fmsg);
5366 int devlink_fmsg_arr_pair_nest_start(struct devlink_fmsg *fmsg,
5371 if (fmsg->putting_binary)
5374 err = devlink_fmsg_pair_nest_start(fmsg, name);
5378 err = devlink_fmsg_nest_common(fmsg, DEVLINK_ATTR_FMSG_ARR_NEST_START);
5386 int devlink_fmsg_arr_pair_nest_end(struct devlink_fmsg *fmsg)
5390 if (fmsg->putting_binary)
5393 err = devlink_fmsg_nest_end(fmsg);
5397 err = devlink_fmsg_nest_end(fmsg);
5405 int devlink_fmsg_binary_pair_nest_start(struct devlink_fmsg *fmsg,
5410 err = devlink_fmsg_arr_pair_nest_start(fmsg, name);
5414 fmsg->putting_binary = true;
5419 int devlink_fmsg_binary_pair_nest_end(struct devlink_fmsg *fmsg)
5421 if (!fmsg->putting_binary)
5424 fmsg->putting_binary = false;
5425 return devlink_fmsg_arr_pair_nest_end(fmsg);
5429 static int devlink_fmsg_put_value(struct devlink_fmsg *fmsg,
5446 list_add_tail(&item->list, &fmsg->item_list);
5451 int devlink_fmsg_bool_put(struct devlink_fmsg *fmsg, bool value)
5453 if (fmsg->putting_binary)
5456 return devlink_fmsg_put_value(fmsg, &value, sizeof(value), NLA_FLAG);
5460 int devlink_fmsg_u8_put(struct devlink_fmsg *fmsg, u8 value)
5462 if (fmsg->putting_binary)
5465 return devlink_fmsg_put_value(fmsg, &value, sizeof(value), NLA_U8);
5469 int devlink_fmsg_u32_put(struct devlink_fmsg *fmsg, u32 value)
5471 if (fmsg->putting_binary)
5474 return devlink_fmsg_put_value(fmsg, &value, sizeof(value), NLA_U32);
5478 int devlink_fmsg_u64_put(struct devlink_fmsg *fmsg, u64 value)
5480 if (fmsg->putting_binary)
5483 return devlink_fmsg_put_value(fmsg, &value, sizeof(value), NLA_U64);
5487 int devlink_fmsg_string_put(struct devlink_fmsg *fmsg, const char *value)
5489 if (fmsg->putting_binary)
5492 return devlink_fmsg_put_value(fmsg, value, strlen(value) + 1,
5497 int devlink_fmsg_binary_put(struct devlink_fmsg *fmsg, const void *value,
5500 if (!fmsg->putting_binary)
5503 return devlink_fmsg_put_value(fmsg, value, value_len, NLA_BINARY);
5507 int devlink_fmsg_bool_pair_put(struct devlink_fmsg *fmsg, const char *name,
5512 err = devlink_fmsg_pair_nest_start(fmsg, name);
5516 err = devlink_fmsg_bool_put(fmsg, value);
5520 err = devlink_fmsg_pair_nest_end(fmsg);
5528 int devlink_fmsg_u8_pair_put(struct devlink_fmsg *fmsg, const char *name,
5533 err = devlink_fmsg_pair_nest_start(fmsg, name);
5537 err = devlink_fmsg_u8_put(fmsg, value);
5541 err = devlink_fmsg_pair_nest_end(fmsg);
5549 int devlink_fmsg_u32_pair_put(struct devlink_fmsg *fmsg, const char *name,
5554 err = devlink_fmsg_pair_nest_start(fmsg, name);
5558 err = devlink_fmsg_u32_put(fmsg, value);
5562 err = devlink_fmsg_pair_nest_end(fmsg);
5570 int devlink_fmsg_u64_pair_put(struct devlink_fmsg *fmsg, const char *name,
5575 err = devlink_fmsg_pair_nest_start(fmsg, name);
5579 err = devlink_fmsg_u64_put(fmsg, value);
5583 err = devlink_fmsg_pair_nest_end(fmsg);
5591 int devlink_fmsg_string_pair_put(struct devlink_fmsg *fmsg, const char *name,
5596 err = devlink_fmsg_pair_nest_start(fmsg, name);
5600 err = devlink_fmsg_string_put(fmsg, value);
5604 err = devlink_fmsg_pair_nest_end(fmsg);
5612 int devlink_fmsg_binary_pair_put(struct devlink_fmsg *fmsg, const char *name,
5620 err = devlink_fmsg_binary_pair_nest_start(fmsg, name);
5628 err = devlink_fmsg_binary_put(fmsg, value + offset, data_size);
5637 end_err = devlink_fmsg_binary_pair_nest_end(fmsg);
5691 devlink_fmsg_prepare_skb(struct devlink_fmsg *fmsg, struct sk_buff *skb,
5703 list_for_each_entry(item, &fmsg->item_list, list) {
5740 static int devlink_fmsg_snd(struct devlink_fmsg *fmsg,
5765 err = devlink_fmsg_prepare_skb(fmsg, skb, &index);
5794 static int devlink_fmsg_dumpit(struct devlink_fmsg *fmsg, struct sk_buff *skb,
5810 err = devlink_fmsg_prepare_skb(fmsg, skb, &index);
6499 struct devlink_fmsg *fmsg;
6511 fmsg = devlink_fmsg_alloc();
6512 if (!fmsg) {
6517 err = devlink_fmsg_obj_nest_start(fmsg);
6521 err = reporter->ops->diagnose(reporter, fmsg, info->extack);
6525 err = devlink_fmsg_obj_nest_end(fmsg);
6529 err = devlink_fmsg_snd(fmsg, info,
6533 devlink_fmsg_free(fmsg);