Lines Matching refs:fmsg
4115 struct devlink_fmsg *fmsg; in devlink_fmsg_alloc() local
4117 fmsg = kzalloc(sizeof(*fmsg), GFP_KERNEL); in devlink_fmsg_alloc()
4118 if (!fmsg) in devlink_fmsg_alloc()
4121 INIT_LIST_HEAD(&fmsg->item_list); in devlink_fmsg_alloc()
4123 return fmsg; in devlink_fmsg_alloc()
4126 static void devlink_fmsg_free(struct devlink_fmsg *fmsg) in devlink_fmsg_free() argument
4130 list_for_each_entry_safe(item, tmp, &fmsg->item_list, list) { in devlink_fmsg_free()
4134 kfree(fmsg); in devlink_fmsg_free()
4137 static int devlink_fmsg_nest_common(struct devlink_fmsg *fmsg, in devlink_fmsg_nest_common() argument
4147 list_add_tail(&item->list, &fmsg->item_list); in devlink_fmsg_nest_common()
4152 int devlink_fmsg_obj_nest_start(struct devlink_fmsg *fmsg) in devlink_fmsg_obj_nest_start() argument
4154 return devlink_fmsg_nest_common(fmsg, DEVLINK_ATTR_FMSG_OBJ_NEST_START); in devlink_fmsg_obj_nest_start()
4158 static int devlink_fmsg_nest_end(struct devlink_fmsg *fmsg) in devlink_fmsg_nest_end() argument
4160 return devlink_fmsg_nest_common(fmsg, DEVLINK_ATTR_FMSG_NEST_END); in devlink_fmsg_nest_end()
4163 int devlink_fmsg_obj_nest_end(struct devlink_fmsg *fmsg) in devlink_fmsg_obj_nest_end() argument
4165 return devlink_fmsg_nest_end(fmsg); in devlink_fmsg_obj_nest_end()
4171 static int devlink_fmsg_put_name(struct devlink_fmsg *fmsg, const char *name) in devlink_fmsg_put_name() argument
4186 list_add_tail(&item->list, &fmsg->item_list); in devlink_fmsg_put_name()
4191 int devlink_fmsg_pair_nest_start(struct devlink_fmsg *fmsg, const char *name) in devlink_fmsg_pair_nest_start() argument
4195 err = devlink_fmsg_nest_common(fmsg, DEVLINK_ATTR_FMSG_PAIR_NEST_START); in devlink_fmsg_pair_nest_start()
4199 err = devlink_fmsg_put_name(fmsg, name); in devlink_fmsg_pair_nest_start()
4207 int devlink_fmsg_pair_nest_end(struct devlink_fmsg *fmsg) in devlink_fmsg_pair_nest_end() argument
4209 return devlink_fmsg_nest_end(fmsg); in devlink_fmsg_pair_nest_end()
4213 int devlink_fmsg_arr_pair_nest_start(struct devlink_fmsg *fmsg, in devlink_fmsg_arr_pair_nest_start() argument
4218 err = devlink_fmsg_pair_nest_start(fmsg, name); in devlink_fmsg_arr_pair_nest_start()
4222 err = devlink_fmsg_nest_common(fmsg, DEVLINK_ATTR_FMSG_ARR_NEST_START); in devlink_fmsg_arr_pair_nest_start()
4230 int devlink_fmsg_arr_pair_nest_end(struct devlink_fmsg *fmsg) in devlink_fmsg_arr_pair_nest_end() argument
4234 err = devlink_fmsg_nest_end(fmsg); in devlink_fmsg_arr_pair_nest_end()
4238 err = devlink_fmsg_nest_end(fmsg); in devlink_fmsg_arr_pair_nest_end()
4246 static int devlink_fmsg_put_value(struct devlink_fmsg *fmsg, in devlink_fmsg_put_value() argument
4263 list_add_tail(&item->list, &fmsg->item_list); in devlink_fmsg_put_value()
4268 int devlink_fmsg_bool_put(struct devlink_fmsg *fmsg, bool value) in devlink_fmsg_bool_put() argument
4270 return devlink_fmsg_put_value(fmsg, &value, sizeof(value), NLA_FLAG); in devlink_fmsg_bool_put()
4274 int devlink_fmsg_u8_put(struct devlink_fmsg *fmsg, u8 value) in devlink_fmsg_u8_put() argument
4276 return devlink_fmsg_put_value(fmsg, &value, sizeof(value), NLA_U8); in devlink_fmsg_u8_put()
4280 int devlink_fmsg_u32_put(struct devlink_fmsg *fmsg, u32 value) in devlink_fmsg_u32_put() argument
4282 return devlink_fmsg_put_value(fmsg, &value, sizeof(value), NLA_U32); in devlink_fmsg_u32_put()
4286 int devlink_fmsg_u64_put(struct devlink_fmsg *fmsg, u64 value) in devlink_fmsg_u64_put() argument
4288 return devlink_fmsg_put_value(fmsg, &value, sizeof(value), NLA_U64); in devlink_fmsg_u64_put()
4292 int devlink_fmsg_string_put(struct devlink_fmsg *fmsg, const char *value) in devlink_fmsg_string_put() argument
4294 return devlink_fmsg_put_value(fmsg, value, strlen(value) + 1, in devlink_fmsg_string_put()
4299 int devlink_fmsg_binary_put(struct devlink_fmsg *fmsg, const void *value, in devlink_fmsg_binary_put() argument
4302 return devlink_fmsg_put_value(fmsg, value, value_len, NLA_BINARY); in devlink_fmsg_binary_put()
4306 int devlink_fmsg_bool_pair_put(struct devlink_fmsg *fmsg, const char *name, in devlink_fmsg_bool_pair_put() argument
4311 err = devlink_fmsg_pair_nest_start(fmsg, name); in devlink_fmsg_bool_pair_put()
4315 err = devlink_fmsg_bool_put(fmsg, value); in devlink_fmsg_bool_pair_put()
4319 err = devlink_fmsg_pair_nest_end(fmsg); in devlink_fmsg_bool_pair_put()
4327 int devlink_fmsg_u8_pair_put(struct devlink_fmsg *fmsg, const char *name, in devlink_fmsg_u8_pair_put() argument
4332 err = devlink_fmsg_pair_nest_start(fmsg, name); in devlink_fmsg_u8_pair_put()
4336 err = devlink_fmsg_u8_put(fmsg, value); in devlink_fmsg_u8_pair_put()
4340 err = devlink_fmsg_pair_nest_end(fmsg); in devlink_fmsg_u8_pair_put()
4348 int devlink_fmsg_u32_pair_put(struct devlink_fmsg *fmsg, const char *name, in devlink_fmsg_u32_pair_put() argument
4353 err = devlink_fmsg_pair_nest_start(fmsg, name); in devlink_fmsg_u32_pair_put()
4357 err = devlink_fmsg_u32_put(fmsg, value); in devlink_fmsg_u32_pair_put()
4361 err = devlink_fmsg_pair_nest_end(fmsg); in devlink_fmsg_u32_pair_put()
4369 int devlink_fmsg_u64_pair_put(struct devlink_fmsg *fmsg, const char *name, in devlink_fmsg_u64_pair_put() argument
4374 err = devlink_fmsg_pair_nest_start(fmsg, name); in devlink_fmsg_u64_pair_put()
4378 err = devlink_fmsg_u64_put(fmsg, value); in devlink_fmsg_u64_pair_put()
4382 err = devlink_fmsg_pair_nest_end(fmsg); in devlink_fmsg_u64_pair_put()
4390 int devlink_fmsg_string_pair_put(struct devlink_fmsg *fmsg, const char *name, in devlink_fmsg_string_pair_put() argument
4395 err = devlink_fmsg_pair_nest_start(fmsg, name); in devlink_fmsg_string_pair_put()
4399 err = devlink_fmsg_string_put(fmsg, value); in devlink_fmsg_string_pair_put()
4403 err = devlink_fmsg_pair_nest_end(fmsg); in devlink_fmsg_string_pair_put()
4411 int devlink_fmsg_binary_pair_put(struct devlink_fmsg *fmsg, const char *name, in devlink_fmsg_binary_pair_put() argument
4416 err = devlink_fmsg_pair_nest_start(fmsg, name); in devlink_fmsg_binary_pair_put()
4420 err = devlink_fmsg_binary_put(fmsg, value, value_len); in devlink_fmsg_binary_pair_put()
4424 err = devlink_fmsg_pair_nest_end(fmsg); in devlink_fmsg_binary_pair_put()
4478 devlink_fmsg_prepare_skb(struct devlink_fmsg *fmsg, struct sk_buff *skb, in devlink_fmsg_prepare_skb() argument
4490 list_for_each_entry(item, &fmsg->item_list, list) { in devlink_fmsg_prepare_skb()
4527 static int devlink_fmsg_snd(struct devlink_fmsg *fmsg, in devlink_fmsg_snd() argument
4552 err = devlink_fmsg_prepare_skb(fmsg, skb, &index); in devlink_fmsg_snd()
4581 static int devlink_fmsg_dumpit(struct devlink_fmsg *fmsg, struct sk_buff *skb, in devlink_fmsg_dumpit() argument
4597 err = devlink_fmsg_prepare_skb(fmsg, skb, &index); in devlink_fmsg_dumpit()
5104 struct devlink_fmsg *fmsg; in devlink_nl_cmd_health_reporter_diagnose_doit() local
5116 fmsg = devlink_fmsg_alloc(); in devlink_nl_cmd_health_reporter_diagnose_doit()
5117 if (!fmsg) { in devlink_nl_cmd_health_reporter_diagnose_doit()
5122 err = devlink_fmsg_obj_nest_start(fmsg); in devlink_nl_cmd_health_reporter_diagnose_doit()
5126 err = reporter->ops->diagnose(reporter, fmsg); in devlink_nl_cmd_health_reporter_diagnose_doit()
5130 err = devlink_fmsg_obj_nest_end(fmsg); in devlink_nl_cmd_health_reporter_diagnose_doit()
5134 err = devlink_fmsg_snd(fmsg, info, in devlink_nl_cmd_health_reporter_diagnose_doit()
5138 devlink_fmsg_free(fmsg); in devlink_nl_cmd_health_reporter_diagnose_doit()