1 /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
2 /* Do not edit directly, auto-generated from: */
3 /* Documentation/netlink/specs/devlink.yaml */
4 /* YNL-GEN user header */
5
6 #ifndef _LINUX_DEVLINK_GEN_H
7 #define _LINUX_DEVLINK_GEN_H
8
9 #include <stdlib.h>
10 #include <string.h>
11 #include <linux/types.h>
12 #include <linux/devlink.h>
13
14 struct ynl_sock;
15
16 extern const struct ynl_family ynl_devlink_family;
17
18 /* Enums */
19 const char *devlink_op_str(int op);
20 const char *devlink_sb_pool_type_str(enum devlink_sb_pool_type value);
21
22 /* Common nested types */
23 struct devlink_dl_info_version {
24 struct {
25 __u32 info_version_name_len;
26 __u32 info_version_value_len;
27 } _present;
28
29 char *info_version_name;
30 char *info_version_value;
31 };
32
33 struct devlink_dl_reload_stats_entry {
34 struct {
35 __u32 reload_stats_limit:1;
36 __u32 reload_stats_value:1;
37 } _present;
38
39 __u8 reload_stats_limit;
40 __u32 reload_stats_value;
41 };
42
43 struct devlink_dl_reload_act_stats {
44 unsigned int n_reload_stats_entry;
45 struct devlink_dl_reload_stats_entry *reload_stats_entry;
46 };
47
48 struct devlink_dl_reload_act_info {
49 struct {
50 __u32 reload_action:1;
51 } _present;
52
53 __u8 reload_action;
54 unsigned int n_reload_action_stats;
55 struct devlink_dl_reload_act_stats *reload_action_stats;
56 };
57
58 struct devlink_dl_reload_stats {
59 unsigned int n_reload_action_info;
60 struct devlink_dl_reload_act_info *reload_action_info;
61 };
62
63 struct devlink_dl_dev_stats {
64 struct {
65 __u32 reload_stats:1;
66 __u32 remote_reload_stats:1;
67 } _present;
68
69 struct devlink_dl_reload_stats reload_stats;
70 struct devlink_dl_reload_stats remote_reload_stats;
71 };
72
73 /* ============== DEVLINK_CMD_GET ============== */
74 /* DEVLINK_CMD_GET - do */
75 struct devlink_get_req {
76 struct {
77 __u32 bus_name_len;
78 __u32 dev_name_len;
79 } _present;
80
81 char *bus_name;
82 char *dev_name;
83 };
84
devlink_get_req_alloc(void)85 static inline struct devlink_get_req *devlink_get_req_alloc(void)
86 {
87 return calloc(1, sizeof(struct devlink_get_req));
88 }
89 void devlink_get_req_free(struct devlink_get_req *req);
90
91 static inline void
devlink_get_req_set_bus_name(struct devlink_get_req * req,const char * bus_name)92 devlink_get_req_set_bus_name(struct devlink_get_req *req, const char *bus_name)
93 {
94 free(req->bus_name);
95 req->_present.bus_name_len = strlen(bus_name);
96 req->bus_name = malloc(req->_present.bus_name_len + 1);
97 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
98 req->bus_name[req->_present.bus_name_len] = 0;
99 }
100 static inline void
devlink_get_req_set_dev_name(struct devlink_get_req * req,const char * dev_name)101 devlink_get_req_set_dev_name(struct devlink_get_req *req, const char *dev_name)
102 {
103 free(req->dev_name);
104 req->_present.dev_name_len = strlen(dev_name);
105 req->dev_name = malloc(req->_present.dev_name_len + 1);
106 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
107 req->dev_name[req->_present.dev_name_len] = 0;
108 }
109
110 struct devlink_get_rsp {
111 struct {
112 __u32 bus_name_len;
113 __u32 dev_name_len;
114 __u32 reload_failed:1;
115 __u32 reload_action:1;
116 __u32 dev_stats:1;
117 } _present;
118
119 char *bus_name;
120 char *dev_name;
121 __u8 reload_failed;
122 __u8 reload_action;
123 struct devlink_dl_dev_stats dev_stats;
124 };
125
126 void devlink_get_rsp_free(struct devlink_get_rsp *rsp);
127
128 /*
129 * Get devlink instances.
130 */
131 struct devlink_get_rsp *
132 devlink_get(struct ynl_sock *ys, struct devlink_get_req *req);
133
134 /* DEVLINK_CMD_GET - dump */
135 struct devlink_get_list {
136 struct devlink_get_list *next;
137 struct devlink_get_rsp obj __attribute__ ((aligned (8)));
138 };
139
140 void devlink_get_list_free(struct devlink_get_list *rsp);
141
142 struct devlink_get_list *devlink_get_dump(struct ynl_sock *ys);
143
144 /* ============== DEVLINK_CMD_PORT_GET ============== */
145 /* DEVLINK_CMD_PORT_GET - do */
146 struct devlink_port_get_req {
147 struct {
148 __u32 bus_name_len;
149 __u32 dev_name_len;
150 __u32 port_index:1;
151 } _present;
152
153 char *bus_name;
154 char *dev_name;
155 __u32 port_index;
156 };
157
devlink_port_get_req_alloc(void)158 static inline struct devlink_port_get_req *devlink_port_get_req_alloc(void)
159 {
160 return calloc(1, sizeof(struct devlink_port_get_req));
161 }
162 void devlink_port_get_req_free(struct devlink_port_get_req *req);
163
164 static inline void
devlink_port_get_req_set_bus_name(struct devlink_port_get_req * req,const char * bus_name)165 devlink_port_get_req_set_bus_name(struct devlink_port_get_req *req,
166 const char *bus_name)
167 {
168 free(req->bus_name);
169 req->_present.bus_name_len = strlen(bus_name);
170 req->bus_name = malloc(req->_present.bus_name_len + 1);
171 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
172 req->bus_name[req->_present.bus_name_len] = 0;
173 }
174 static inline void
devlink_port_get_req_set_dev_name(struct devlink_port_get_req * req,const char * dev_name)175 devlink_port_get_req_set_dev_name(struct devlink_port_get_req *req,
176 const char *dev_name)
177 {
178 free(req->dev_name);
179 req->_present.dev_name_len = strlen(dev_name);
180 req->dev_name = malloc(req->_present.dev_name_len + 1);
181 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
182 req->dev_name[req->_present.dev_name_len] = 0;
183 }
184 static inline void
devlink_port_get_req_set_port_index(struct devlink_port_get_req * req,__u32 port_index)185 devlink_port_get_req_set_port_index(struct devlink_port_get_req *req,
186 __u32 port_index)
187 {
188 req->_present.port_index = 1;
189 req->port_index = port_index;
190 }
191
192 struct devlink_port_get_rsp {
193 struct {
194 __u32 bus_name_len;
195 __u32 dev_name_len;
196 __u32 port_index:1;
197 } _present;
198
199 char *bus_name;
200 char *dev_name;
201 __u32 port_index;
202 };
203
204 void devlink_port_get_rsp_free(struct devlink_port_get_rsp *rsp);
205
206 /*
207 * Get devlink port instances.
208 */
209 struct devlink_port_get_rsp *
210 devlink_port_get(struct ynl_sock *ys, struct devlink_port_get_req *req);
211
212 /* DEVLINK_CMD_PORT_GET - dump */
213 struct devlink_port_get_req_dump {
214 struct {
215 __u32 bus_name_len;
216 __u32 dev_name_len;
217 } _present;
218
219 char *bus_name;
220 char *dev_name;
221 };
222
223 static inline struct devlink_port_get_req_dump *
devlink_port_get_req_dump_alloc(void)224 devlink_port_get_req_dump_alloc(void)
225 {
226 return calloc(1, sizeof(struct devlink_port_get_req_dump));
227 }
228 void devlink_port_get_req_dump_free(struct devlink_port_get_req_dump *req);
229
230 static inline void
devlink_port_get_req_dump_set_bus_name(struct devlink_port_get_req_dump * req,const char * bus_name)231 devlink_port_get_req_dump_set_bus_name(struct devlink_port_get_req_dump *req,
232 const char *bus_name)
233 {
234 free(req->bus_name);
235 req->_present.bus_name_len = strlen(bus_name);
236 req->bus_name = malloc(req->_present.bus_name_len + 1);
237 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
238 req->bus_name[req->_present.bus_name_len] = 0;
239 }
240 static inline void
devlink_port_get_req_dump_set_dev_name(struct devlink_port_get_req_dump * req,const char * dev_name)241 devlink_port_get_req_dump_set_dev_name(struct devlink_port_get_req_dump *req,
242 const char *dev_name)
243 {
244 free(req->dev_name);
245 req->_present.dev_name_len = strlen(dev_name);
246 req->dev_name = malloc(req->_present.dev_name_len + 1);
247 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
248 req->dev_name[req->_present.dev_name_len] = 0;
249 }
250
251 struct devlink_port_get_rsp_dump {
252 struct {
253 __u32 bus_name_len;
254 __u32 dev_name_len;
255 __u32 port_index:1;
256 } _present;
257
258 char *bus_name;
259 char *dev_name;
260 __u32 port_index;
261 };
262
263 struct devlink_port_get_rsp_list {
264 struct devlink_port_get_rsp_list *next;
265 struct devlink_port_get_rsp_dump obj __attribute__ ((aligned (8)));
266 };
267
268 void devlink_port_get_rsp_list_free(struct devlink_port_get_rsp_list *rsp);
269
270 struct devlink_port_get_rsp_list *
271 devlink_port_get_dump(struct ynl_sock *ys,
272 struct devlink_port_get_req_dump *req);
273
274 /* ============== DEVLINK_CMD_SB_GET ============== */
275 /* DEVLINK_CMD_SB_GET - do */
276 struct devlink_sb_get_req {
277 struct {
278 __u32 bus_name_len;
279 __u32 dev_name_len;
280 __u32 sb_index:1;
281 } _present;
282
283 char *bus_name;
284 char *dev_name;
285 __u32 sb_index;
286 };
287
devlink_sb_get_req_alloc(void)288 static inline struct devlink_sb_get_req *devlink_sb_get_req_alloc(void)
289 {
290 return calloc(1, sizeof(struct devlink_sb_get_req));
291 }
292 void devlink_sb_get_req_free(struct devlink_sb_get_req *req);
293
294 static inline void
devlink_sb_get_req_set_bus_name(struct devlink_sb_get_req * req,const char * bus_name)295 devlink_sb_get_req_set_bus_name(struct devlink_sb_get_req *req,
296 const char *bus_name)
297 {
298 free(req->bus_name);
299 req->_present.bus_name_len = strlen(bus_name);
300 req->bus_name = malloc(req->_present.bus_name_len + 1);
301 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
302 req->bus_name[req->_present.bus_name_len] = 0;
303 }
304 static inline void
devlink_sb_get_req_set_dev_name(struct devlink_sb_get_req * req,const char * dev_name)305 devlink_sb_get_req_set_dev_name(struct devlink_sb_get_req *req,
306 const char *dev_name)
307 {
308 free(req->dev_name);
309 req->_present.dev_name_len = strlen(dev_name);
310 req->dev_name = malloc(req->_present.dev_name_len + 1);
311 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
312 req->dev_name[req->_present.dev_name_len] = 0;
313 }
314 static inline void
devlink_sb_get_req_set_sb_index(struct devlink_sb_get_req * req,__u32 sb_index)315 devlink_sb_get_req_set_sb_index(struct devlink_sb_get_req *req, __u32 sb_index)
316 {
317 req->_present.sb_index = 1;
318 req->sb_index = sb_index;
319 }
320
321 struct devlink_sb_get_rsp {
322 struct {
323 __u32 bus_name_len;
324 __u32 dev_name_len;
325 __u32 sb_index:1;
326 } _present;
327
328 char *bus_name;
329 char *dev_name;
330 __u32 sb_index;
331 };
332
333 void devlink_sb_get_rsp_free(struct devlink_sb_get_rsp *rsp);
334
335 /*
336 * Get shared buffer instances.
337 */
338 struct devlink_sb_get_rsp *
339 devlink_sb_get(struct ynl_sock *ys, struct devlink_sb_get_req *req);
340
341 /* DEVLINK_CMD_SB_GET - dump */
342 struct devlink_sb_get_req_dump {
343 struct {
344 __u32 bus_name_len;
345 __u32 dev_name_len;
346 } _present;
347
348 char *bus_name;
349 char *dev_name;
350 };
351
352 static inline struct devlink_sb_get_req_dump *
devlink_sb_get_req_dump_alloc(void)353 devlink_sb_get_req_dump_alloc(void)
354 {
355 return calloc(1, sizeof(struct devlink_sb_get_req_dump));
356 }
357 void devlink_sb_get_req_dump_free(struct devlink_sb_get_req_dump *req);
358
359 static inline void
devlink_sb_get_req_dump_set_bus_name(struct devlink_sb_get_req_dump * req,const char * bus_name)360 devlink_sb_get_req_dump_set_bus_name(struct devlink_sb_get_req_dump *req,
361 const char *bus_name)
362 {
363 free(req->bus_name);
364 req->_present.bus_name_len = strlen(bus_name);
365 req->bus_name = malloc(req->_present.bus_name_len + 1);
366 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
367 req->bus_name[req->_present.bus_name_len] = 0;
368 }
369 static inline void
devlink_sb_get_req_dump_set_dev_name(struct devlink_sb_get_req_dump * req,const char * dev_name)370 devlink_sb_get_req_dump_set_dev_name(struct devlink_sb_get_req_dump *req,
371 const char *dev_name)
372 {
373 free(req->dev_name);
374 req->_present.dev_name_len = strlen(dev_name);
375 req->dev_name = malloc(req->_present.dev_name_len + 1);
376 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
377 req->dev_name[req->_present.dev_name_len] = 0;
378 }
379
380 struct devlink_sb_get_list {
381 struct devlink_sb_get_list *next;
382 struct devlink_sb_get_rsp obj __attribute__ ((aligned (8)));
383 };
384
385 void devlink_sb_get_list_free(struct devlink_sb_get_list *rsp);
386
387 struct devlink_sb_get_list *
388 devlink_sb_get_dump(struct ynl_sock *ys, struct devlink_sb_get_req_dump *req);
389
390 /* ============== DEVLINK_CMD_SB_POOL_GET ============== */
391 /* DEVLINK_CMD_SB_POOL_GET - do */
392 struct devlink_sb_pool_get_req {
393 struct {
394 __u32 bus_name_len;
395 __u32 dev_name_len;
396 __u32 sb_index:1;
397 __u32 sb_pool_index:1;
398 } _present;
399
400 char *bus_name;
401 char *dev_name;
402 __u32 sb_index;
403 __u16 sb_pool_index;
404 };
405
406 static inline struct devlink_sb_pool_get_req *
devlink_sb_pool_get_req_alloc(void)407 devlink_sb_pool_get_req_alloc(void)
408 {
409 return calloc(1, sizeof(struct devlink_sb_pool_get_req));
410 }
411 void devlink_sb_pool_get_req_free(struct devlink_sb_pool_get_req *req);
412
413 static inline void
devlink_sb_pool_get_req_set_bus_name(struct devlink_sb_pool_get_req * req,const char * bus_name)414 devlink_sb_pool_get_req_set_bus_name(struct devlink_sb_pool_get_req *req,
415 const char *bus_name)
416 {
417 free(req->bus_name);
418 req->_present.bus_name_len = strlen(bus_name);
419 req->bus_name = malloc(req->_present.bus_name_len + 1);
420 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
421 req->bus_name[req->_present.bus_name_len] = 0;
422 }
423 static inline void
devlink_sb_pool_get_req_set_dev_name(struct devlink_sb_pool_get_req * req,const char * dev_name)424 devlink_sb_pool_get_req_set_dev_name(struct devlink_sb_pool_get_req *req,
425 const char *dev_name)
426 {
427 free(req->dev_name);
428 req->_present.dev_name_len = strlen(dev_name);
429 req->dev_name = malloc(req->_present.dev_name_len + 1);
430 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
431 req->dev_name[req->_present.dev_name_len] = 0;
432 }
433 static inline void
devlink_sb_pool_get_req_set_sb_index(struct devlink_sb_pool_get_req * req,__u32 sb_index)434 devlink_sb_pool_get_req_set_sb_index(struct devlink_sb_pool_get_req *req,
435 __u32 sb_index)
436 {
437 req->_present.sb_index = 1;
438 req->sb_index = sb_index;
439 }
440 static inline void
devlink_sb_pool_get_req_set_sb_pool_index(struct devlink_sb_pool_get_req * req,__u16 sb_pool_index)441 devlink_sb_pool_get_req_set_sb_pool_index(struct devlink_sb_pool_get_req *req,
442 __u16 sb_pool_index)
443 {
444 req->_present.sb_pool_index = 1;
445 req->sb_pool_index = sb_pool_index;
446 }
447
448 struct devlink_sb_pool_get_rsp {
449 struct {
450 __u32 bus_name_len;
451 __u32 dev_name_len;
452 __u32 sb_index:1;
453 __u32 sb_pool_index:1;
454 } _present;
455
456 char *bus_name;
457 char *dev_name;
458 __u32 sb_index;
459 __u16 sb_pool_index;
460 };
461
462 void devlink_sb_pool_get_rsp_free(struct devlink_sb_pool_get_rsp *rsp);
463
464 /*
465 * Get shared buffer pool instances.
466 */
467 struct devlink_sb_pool_get_rsp *
468 devlink_sb_pool_get(struct ynl_sock *ys, struct devlink_sb_pool_get_req *req);
469
470 /* DEVLINK_CMD_SB_POOL_GET - dump */
471 struct devlink_sb_pool_get_req_dump {
472 struct {
473 __u32 bus_name_len;
474 __u32 dev_name_len;
475 } _present;
476
477 char *bus_name;
478 char *dev_name;
479 };
480
481 static inline struct devlink_sb_pool_get_req_dump *
devlink_sb_pool_get_req_dump_alloc(void)482 devlink_sb_pool_get_req_dump_alloc(void)
483 {
484 return calloc(1, sizeof(struct devlink_sb_pool_get_req_dump));
485 }
486 void
487 devlink_sb_pool_get_req_dump_free(struct devlink_sb_pool_get_req_dump *req);
488
489 static inline void
devlink_sb_pool_get_req_dump_set_bus_name(struct devlink_sb_pool_get_req_dump * req,const char * bus_name)490 devlink_sb_pool_get_req_dump_set_bus_name(struct devlink_sb_pool_get_req_dump *req,
491 const char *bus_name)
492 {
493 free(req->bus_name);
494 req->_present.bus_name_len = strlen(bus_name);
495 req->bus_name = malloc(req->_present.bus_name_len + 1);
496 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
497 req->bus_name[req->_present.bus_name_len] = 0;
498 }
499 static inline void
devlink_sb_pool_get_req_dump_set_dev_name(struct devlink_sb_pool_get_req_dump * req,const char * dev_name)500 devlink_sb_pool_get_req_dump_set_dev_name(struct devlink_sb_pool_get_req_dump *req,
501 const char *dev_name)
502 {
503 free(req->dev_name);
504 req->_present.dev_name_len = strlen(dev_name);
505 req->dev_name = malloc(req->_present.dev_name_len + 1);
506 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
507 req->dev_name[req->_present.dev_name_len] = 0;
508 }
509
510 struct devlink_sb_pool_get_list {
511 struct devlink_sb_pool_get_list *next;
512 struct devlink_sb_pool_get_rsp obj __attribute__ ((aligned (8)));
513 };
514
515 void devlink_sb_pool_get_list_free(struct devlink_sb_pool_get_list *rsp);
516
517 struct devlink_sb_pool_get_list *
518 devlink_sb_pool_get_dump(struct ynl_sock *ys,
519 struct devlink_sb_pool_get_req_dump *req);
520
521 /* ============== DEVLINK_CMD_SB_PORT_POOL_GET ============== */
522 /* DEVLINK_CMD_SB_PORT_POOL_GET - do */
523 struct devlink_sb_port_pool_get_req {
524 struct {
525 __u32 bus_name_len;
526 __u32 dev_name_len;
527 __u32 port_index:1;
528 __u32 sb_index:1;
529 __u32 sb_pool_index:1;
530 } _present;
531
532 char *bus_name;
533 char *dev_name;
534 __u32 port_index;
535 __u32 sb_index;
536 __u16 sb_pool_index;
537 };
538
539 static inline struct devlink_sb_port_pool_get_req *
devlink_sb_port_pool_get_req_alloc(void)540 devlink_sb_port_pool_get_req_alloc(void)
541 {
542 return calloc(1, sizeof(struct devlink_sb_port_pool_get_req));
543 }
544 void
545 devlink_sb_port_pool_get_req_free(struct devlink_sb_port_pool_get_req *req);
546
547 static inline void
devlink_sb_port_pool_get_req_set_bus_name(struct devlink_sb_port_pool_get_req * req,const char * bus_name)548 devlink_sb_port_pool_get_req_set_bus_name(struct devlink_sb_port_pool_get_req *req,
549 const char *bus_name)
550 {
551 free(req->bus_name);
552 req->_present.bus_name_len = strlen(bus_name);
553 req->bus_name = malloc(req->_present.bus_name_len + 1);
554 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
555 req->bus_name[req->_present.bus_name_len] = 0;
556 }
557 static inline void
devlink_sb_port_pool_get_req_set_dev_name(struct devlink_sb_port_pool_get_req * req,const char * dev_name)558 devlink_sb_port_pool_get_req_set_dev_name(struct devlink_sb_port_pool_get_req *req,
559 const char *dev_name)
560 {
561 free(req->dev_name);
562 req->_present.dev_name_len = strlen(dev_name);
563 req->dev_name = malloc(req->_present.dev_name_len + 1);
564 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
565 req->dev_name[req->_present.dev_name_len] = 0;
566 }
567 static inline void
devlink_sb_port_pool_get_req_set_port_index(struct devlink_sb_port_pool_get_req * req,__u32 port_index)568 devlink_sb_port_pool_get_req_set_port_index(struct devlink_sb_port_pool_get_req *req,
569 __u32 port_index)
570 {
571 req->_present.port_index = 1;
572 req->port_index = port_index;
573 }
574 static inline void
devlink_sb_port_pool_get_req_set_sb_index(struct devlink_sb_port_pool_get_req * req,__u32 sb_index)575 devlink_sb_port_pool_get_req_set_sb_index(struct devlink_sb_port_pool_get_req *req,
576 __u32 sb_index)
577 {
578 req->_present.sb_index = 1;
579 req->sb_index = sb_index;
580 }
581 static inline void
devlink_sb_port_pool_get_req_set_sb_pool_index(struct devlink_sb_port_pool_get_req * req,__u16 sb_pool_index)582 devlink_sb_port_pool_get_req_set_sb_pool_index(struct devlink_sb_port_pool_get_req *req,
583 __u16 sb_pool_index)
584 {
585 req->_present.sb_pool_index = 1;
586 req->sb_pool_index = sb_pool_index;
587 }
588
589 struct devlink_sb_port_pool_get_rsp {
590 struct {
591 __u32 bus_name_len;
592 __u32 dev_name_len;
593 __u32 port_index:1;
594 __u32 sb_index:1;
595 __u32 sb_pool_index:1;
596 } _present;
597
598 char *bus_name;
599 char *dev_name;
600 __u32 port_index;
601 __u32 sb_index;
602 __u16 sb_pool_index;
603 };
604
605 void
606 devlink_sb_port_pool_get_rsp_free(struct devlink_sb_port_pool_get_rsp *rsp);
607
608 /*
609 * Get shared buffer port-pool combinations and threshold.
610 */
611 struct devlink_sb_port_pool_get_rsp *
612 devlink_sb_port_pool_get(struct ynl_sock *ys,
613 struct devlink_sb_port_pool_get_req *req);
614
615 /* DEVLINK_CMD_SB_PORT_POOL_GET - dump */
616 struct devlink_sb_port_pool_get_req_dump {
617 struct {
618 __u32 bus_name_len;
619 __u32 dev_name_len;
620 } _present;
621
622 char *bus_name;
623 char *dev_name;
624 };
625
626 static inline struct devlink_sb_port_pool_get_req_dump *
devlink_sb_port_pool_get_req_dump_alloc(void)627 devlink_sb_port_pool_get_req_dump_alloc(void)
628 {
629 return calloc(1, sizeof(struct devlink_sb_port_pool_get_req_dump));
630 }
631 void
632 devlink_sb_port_pool_get_req_dump_free(struct devlink_sb_port_pool_get_req_dump *req);
633
634 static inline void
devlink_sb_port_pool_get_req_dump_set_bus_name(struct devlink_sb_port_pool_get_req_dump * req,const char * bus_name)635 devlink_sb_port_pool_get_req_dump_set_bus_name(struct devlink_sb_port_pool_get_req_dump *req,
636 const char *bus_name)
637 {
638 free(req->bus_name);
639 req->_present.bus_name_len = strlen(bus_name);
640 req->bus_name = malloc(req->_present.bus_name_len + 1);
641 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
642 req->bus_name[req->_present.bus_name_len] = 0;
643 }
644 static inline void
devlink_sb_port_pool_get_req_dump_set_dev_name(struct devlink_sb_port_pool_get_req_dump * req,const char * dev_name)645 devlink_sb_port_pool_get_req_dump_set_dev_name(struct devlink_sb_port_pool_get_req_dump *req,
646 const char *dev_name)
647 {
648 free(req->dev_name);
649 req->_present.dev_name_len = strlen(dev_name);
650 req->dev_name = malloc(req->_present.dev_name_len + 1);
651 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
652 req->dev_name[req->_present.dev_name_len] = 0;
653 }
654
655 struct devlink_sb_port_pool_get_list {
656 struct devlink_sb_port_pool_get_list *next;
657 struct devlink_sb_port_pool_get_rsp obj __attribute__ ((aligned (8)));
658 };
659
660 void
661 devlink_sb_port_pool_get_list_free(struct devlink_sb_port_pool_get_list *rsp);
662
663 struct devlink_sb_port_pool_get_list *
664 devlink_sb_port_pool_get_dump(struct ynl_sock *ys,
665 struct devlink_sb_port_pool_get_req_dump *req);
666
667 /* ============== DEVLINK_CMD_SB_TC_POOL_BIND_GET ============== */
668 /* DEVLINK_CMD_SB_TC_POOL_BIND_GET - do */
669 struct devlink_sb_tc_pool_bind_get_req {
670 struct {
671 __u32 bus_name_len;
672 __u32 dev_name_len;
673 __u32 port_index:1;
674 __u32 sb_index:1;
675 __u32 sb_pool_type:1;
676 __u32 sb_tc_index:1;
677 } _present;
678
679 char *bus_name;
680 char *dev_name;
681 __u32 port_index;
682 __u32 sb_index;
683 enum devlink_sb_pool_type sb_pool_type;
684 __u16 sb_tc_index;
685 };
686
687 static inline struct devlink_sb_tc_pool_bind_get_req *
devlink_sb_tc_pool_bind_get_req_alloc(void)688 devlink_sb_tc_pool_bind_get_req_alloc(void)
689 {
690 return calloc(1, sizeof(struct devlink_sb_tc_pool_bind_get_req));
691 }
692 void
693 devlink_sb_tc_pool_bind_get_req_free(struct devlink_sb_tc_pool_bind_get_req *req);
694
695 static inline void
devlink_sb_tc_pool_bind_get_req_set_bus_name(struct devlink_sb_tc_pool_bind_get_req * req,const char * bus_name)696 devlink_sb_tc_pool_bind_get_req_set_bus_name(struct devlink_sb_tc_pool_bind_get_req *req,
697 const char *bus_name)
698 {
699 free(req->bus_name);
700 req->_present.bus_name_len = strlen(bus_name);
701 req->bus_name = malloc(req->_present.bus_name_len + 1);
702 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
703 req->bus_name[req->_present.bus_name_len] = 0;
704 }
705 static inline void
devlink_sb_tc_pool_bind_get_req_set_dev_name(struct devlink_sb_tc_pool_bind_get_req * req,const char * dev_name)706 devlink_sb_tc_pool_bind_get_req_set_dev_name(struct devlink_sb_tc_pool_bind_get_req *req,
707 const char *dev_name)
708 {
709 free(req->dev_name);
710 req->_present.dev_name_len = strlen(dev_name);
711 req->dev_name = malloc(req->_present.dev_name_len + 1);
712 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
713 req->dev_name[req->_present.dev_name_len] = 0;
714 }
715 static inline void
devlink_sb_tc_pool_bind_get_req_set_port_index(struct devlink_sb_tc_pool_bind_get_req * req,__u32 port_index)716 devlink_sb_tc_pool_bind_get_req_set_port_index(struct devlink_sb_tc_pool_bind_get_req *req,
717 __u32 port_index)
718 {
719 req->_present.port_index = 1;
720 req->port_index = port_index;
721 }
722 static inline void
devlink_sb_tc_pool_bind_get_req_set_sb_index(struct devlink_sb_tc_pool_bind_get_req * req,__u32 sb_index)723 devlink_sb_tc_pool_bind_get_req_set_sb_index(struct devlink_sb_tc_pool_bind_get_req *req,
724 __u32 sb_index)
725 {
726 req->_present.sb_index = 1;
727 req->sb_index = sb_index;
728 }
729 static inline void
devlink_sb_tc_pool_bind_get_req_set_sb_pool_type(struct devlink_sb_tc_pool_bind_get_req * req,enum devlink_sb_pool_type sb_pool_type)730 devlink_sb_tc_pool_bind_get_req_set_sb_pool_type(struct devlink_sb_tc_pool_bind_get_req *req,
731 enum devlink_sb_pool_type sb_pool_type)
732 {
733 req->_present.sb_pool_type = 1;
734 req->sb_pool_type = sb_pool_type;
735 }
736 static inline void
devlink_sb_tc_pool_bind_get_req_set_sb_tc_index(struct devlink_sb_tc_pool_bind_get_req * req,__u16 sb_tc_index)737 devlink_sb_tc_pool_bind_get_req_set_sb_tc_index(struct devlink_sb_tc_pool_bind_get_req *req,
738 __u16 sb_tc_index)
739 {
740 req->_present.sb_tc_index = 1;
741 req->sb_tc_index = sb_tc_index;
742 }
743
744 struct devlink_sb_tc_pool_bind_get_rsp {
745 struct {
746 __u32 bus_name_len;
747 __u32 dev_name_len;
748 __u32 port_index:1;
749 __u32 sb_index:1;
750 __u32 sb_pool_type:1;
751 __u32 sb_tc_index:1;
752 } _present;
753
754 char *bus_name;
755 char *dev_name;
756 __u32 port_index;
757 __u32 sb_index;
758 enum devlink_sb_pool_type sb_pool_type;
759 __u16 sb_tc_index;
760 };
761
762 void
763 devlink_sb_tc_pool_bind_get_rsp_free(struct devlink_sb_tc_pool_bind_get_rsp *rsp);
764
765 /*
766 * Get shared buffer port-TC to pool bindings and threshold.
767 */
768 struct devlink_sb_tc_pool_bind_get_rsp *
769 devlink_sb_tc_pool_bind_get(struct ynl_sock *ys,
770 struct devlink_sb_tc_pool_bind_get_req *req);
771
772 /* DEVLINK_CMD_SB_TC_POOL_BIND_GET - dump */
773 struct devlink_sb_tc_pool_bind_get_req_dump {
774 struct {
775 __u32 bus_name_len;
776 __u32 dev_name_len;
777 } _present;
778
779 char *bus_name;
780 char *dev_name;
781 };
782
783 static inline struct devlink_sb_tc_pool_bind_get_req_dump *
devlink_sb_tc_pool_bind_get_req_dump_alloc(void)784 devlink_sb_tc_pool_bind_get_req_dump_alloc(void)
785 {
786 return calloc(1, sizeof(struct devlink_sb_tc_pool_bind_get_req_dump));
787 }
788 void
789 devlink_sb_tc_pool_bind_get_req_dump_free(struct devlink_sb_tc_pool_bind_get_req_dump *req);
790
791 static inline void
devlink_sb_tc_pool_bind_get_req_dump_set_bus_name(struct devlink_sb_tc_pool_bind_get_req_dump * req,const char * bus_name)792 devlink_sb_tc_pool_bind_get_req_dump_set_bus_name(struct devlink_sb_tc_pool_bind_get_req_dump *req,
793 const char *bus_name)
794 {
795 free(req->bus_name);
796 req->_present.bus_name_len = strlen(bus_name);
797 req->bus_name = malloc(req->_present.bus_name_len + 1);
798 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
799 req->bus_name[req->_present.bus_name_len] = 0;
800 }
801 static inline void
devlink_sb_tc_pool_bind_get_req_dump_set_dev_name(struct devlink_sb_tc_pool_bind_get_req_dump * req,const char * dev_name)802 devlink_sb_tc_pool_bind_get_req_dump_set_dev_name(struct devlink_sb_tc_pool_bind_get_req_dump *req,
803 const char *dev_name)
804 {
805 free(req->dev_name);
806 req->_present.dev_name_len = strlen(dev_name);
807 req->dev_name = malloc(req->_present.dev_name_len + 1);
808 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
809 req->dev_name[req->_present.dev_name_len] = 0;
810 }
811
812 struct devlink_sb_tc_pool_bind_get_list {
813 struct devlink_sb_tc_pool_bind_get_list *next;
814 struct devlink_sb_tc_pool_bind_get_rsp obj __attribute__ ((aligned (8)));
815 };
816
817 void
818 devlink_sb_tc_pool_bind_get_list_free(struct devlink_sb_tc_pool_bind_get_list *rsp);
819
820 struct devlink_sb_tc_pool_bind_get_list *
821 devlink_sb_tc_pool_bind_get_dump(struct ynl_sock *ys,
822 struct devlink_sb_tc_pool_bind_get_req_dump *req);
823
824 /* ============== DEVLINK_CMD_PARAM_GET ============== */
825 /* DEVLINK_CMD_PARAM_GET - do */
826 struct devlink_param_get_req {
827 struct {
828 __u32 bus_name_len;
829 __u32 dev_name_len;
830 __u32 param_name_len;
831 } _present;
832
833 char *bus_name;
834 char *dev_name;
835 char *param_name;
836 };
837
devlink_param_get_req_alloc(void)838 static inline struct devlink_param_get_req *devlink_param_get_req_alloc(void)
839 {
840 return calloc(1, sizeof(struct devlink_param_get_req));
841 }
842 void devlink_param_get_req_free(struct devlink_param_get_req *req);
843
844 static inline void
devlink_param_get_req_set_bus_name(struct devlink_param_get_req * req,const char * bus_name)845 devlink_param_get_req_set_bus_name(struct devlink_param_get_req *req,
846 const char *bus_name)
847 {
848 free(req->bus_name);
849 req->_present.bus_name_len = strlen(bus_name);
850 req->bus_name = malloc(req->_present.bus_name_len + 1);
851 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
852 req->bus_name[req->_present.bus_name_len] = 0;
853 }
854 static inline void
devlink_param_get_req_set_dev_name(struct devlink_param_get_req * req,const char * dev_name)855 devlink_param_get_req_set_dev_name(struct devlink_param_get_req *req,
856 const char *dev_name)
857 {
858 free(req->dev_name);
859 req->_present.dev_name_len = strlen(dev_name);
860 req->dev_name = malloc(req->_present.dev_name_len + 1);
861 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
862 req->dev_name[req->_present.dev_name_len] = 0;
863 }
864 static inline void
devlink_param_get_req_set_param_name(struct devlink_param_get_req * req,const char * param_name)865 devlink_param_get_req_set_param_name(struct devlink_param_get_req *req,
866 const char *param_name)
867 {
868 free(req->param_name);
869 req->_present.param_name_len = strlen(param_name);
870 req->param_name = malloc(req->_present.param_name_len + 1);
871 memcpy(req->param_name, param_name, req->_present.param_name_len);
872 req->param_name[req->_present.param_name_len] = 0;
873 }
874
875 struct devlink_param_get_rsp {
876 struct {
877 __u32 bus_name_len;
878 __u32 dev_name_len;
879 __u32 param_name_len;
880 } _present;
881
882 char *bus_name;
883 char *dev_name;
884 char *param_name;
885 };
886
887 void devlink_param_get_rsp_free(struct devlink_param_get_rsp *rsp);
888
889 /*
890 * Get param instances.
891 */
892 struct devlink_param_get_rsp *
893 devlink_param_get(struct ynl_sock *ys, struct devlink_param_get_req *req);
894
895 /* DEVLINK_CMD_PARAM_GET - dump */
896 struct devlink_param_get_req_dump {
897 struct {
898 __u32 bus_name_len;
899 __u32 dev_name_len;
900 } _present;
901
902 char *bus_name;
903 char *dev_name;
904 };
905
906 static inline struct devlink_param_get_req_dump *
devlink_param_get_req_dump_alloc(void)907 devlink_param_get_req_dump_alloc(void)
908 {
909 return calloc(1, sizeof(struct devlink_param_get_req_dump));
910 }
911 void devlink_param_get_req_dump_free(struct devlink_param_get_req_dump *req);
912
913 static inline void
devlink_param_get_req_dump_set_bus_name(struct devlink_param_get_req_dump * req,const char * bus_name)914 devlink_param_get_req_dump_set_bus_name(struct devlink_param_get_req_dump *req,
915 const char *bus_name)
916 {
917 free(req->bus_name);
918 req->_present.bus_name_len = strlen(bus_name);
919 req->bus_name = malloc(req->_present.bus_name_len + 1);
920 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
921 req->bus_name[req->_present.bus_name_len] = 0;
922 }
923 static inline void
devlink_param_get_req_dump_set_dev_name(struct devlink_param_get_req_dump * req,const char * dev_name)924 devlink_param_get_req_dump_set_dev_name(struct devlink_param_get_req_dump *req,
925 const char *dev_name)
926 {
927 free(req->dev_name);
928 req->_present.dev_name_len = strlen(dev_name);
929 req->dev_name = malloc(req->_present.dev_name_len + 1);
930 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
931 req->dev_name[req->_present.dev_name_len] = 0;
932 }
933
934 struct devlink_param_get_list {
935 struct devlink_param_get_list *next;
936 struct devlink_param_get_rsp obj __attribute__ ((aligned (8)));
937 };
938
939 void devlink_param_get_list_free(struct devlink_param_get_list *rsp);
940
941 struct devlink_param_get_list *
942 devlink_param_get_dump(struct ynl_sock *ys,
943 struct devlink_param_get_req_dump *req);
944
945 /* ============== DEVLINK_CMD_REGION_GET ============== */
946 /* DEVLINK_CMD_REGION_GET - do */
947 struct devlink_region_get_req {
948 struct {
949 __u32 bus_name_len;
950 __u32 dev_name_len;
951 __u32 port_index:1;
952 __u32 region_name_len;
953 } _present;
954
955 char *bus_name;
956 char *dev_name;
957 __u32 port_index;
958 char *region_name;
959 };
960
devlink_region_get_req_alloc(void)961 static inline struct devlink_region_get_req *devlink_region_get_req_alloc(void)
962 {
963 return calloc(1, sizeof(struct devlink_region_get_req));
964 }
965 void devlink_region_get_req_free(struct devlink_region_get_req *req);
966
967 static inline void
devlink_region_get_req_set_bus_name(struct devlink_region_get_req * req,const char * bus_name)968 devlink_region_get_req_set_bus_name(struct devlink_region_get_req *req,
969 const char *bus_name)
970 {
971 free(req->bus_name);
972 req->_present.bus_name_len = strlen(bus_name);
973 req->bus_name = malloc(req->_present.bus_name_len + 1);
974 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
975 req->bus_name[req->_present.bus_name_len] = 0;
976 }
977 static inline void
devlink_region_get_req_set_dev_name(struct devlink_region_get_req * req,const char * dev_name)978 devlink_region_get_req_set_dev_name(struct devlink_region_get_req *req,
979 const char *dev_name)
980 {
981 free(req->dev_name);
982 req->_present.dev_name_len = strlen(dev_name);
983 req->dev_name = malloc(req->_present.dev_name_len + 1);
984 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
985 req->dev_name[req->_present.dev_name_len] = 0;
986 }
987 static inline void
devlink_region_get_req_set_port_index(struct devlink_region_get_req * req,__u32 port_index)988 devlink_region_get_req_set_port_index(struct devlink_region_get_req *req,
989 __u32 port_index)
990 {
991 req->_present.port_index = 1;
992 req->port_index = port_index;
993 }
994 static inline void
devlink_region_get_req_set_region_name(struct devlink_region_get_req * req,const char * region_name)995 devlink_region_get_req_set_region_name(struct devlink_region_get_req *req,
996 const char *region_name)
997 {
998 free(req->region_name);
999 req->_present.region_name_len = strlen(region_name);
1000 req->region_name = malloc(req->_present.region_name_len + 1);
1001 memcpy(req->region_name, region_name, req->_present.region_name_len);
1002 req->region_name[req->_present.region_name_len] = 0;
1003 }
1004
1005 struct devlink_region_get_rsp {
1006 struct {
1007 __u32 bus_name_len;
1008 __u32 dev_name_len;
1009 __u32 port_index:1;
1010 __u32 region_name_len;
1011 } _present;
1012
1013 char *bus_name;
1014 char *dev_name;
1015 __u32 port_index;
1016 char *region_name;
1017 };
1018
1019 void devlink_region_get_rsp_free(struct devlink_region_get_rsp *rsp);
1020
1021 /*
1022 * Get region instances.
1023 */
1024 struct devlink_region_get_rsp *
1025 devlink_region_get(struct ynl_sock *ys, struct devlink_region_get_req *req);
1026
1027 /* DEVLINK_CMD_REGION_GET - dump */
1028 struct devlink_region_get_req_dump {
1029 struct {
1030 __u32 bus_name_len;
1031 __u32 dev_name_len;
1032 } _present;
1033
1034 char *bus_name;
1035 char *dev_name;
1036 };
1037
1038 static inline struct devlink_region_get_req_dump *
devlink_region_get_req_dump_alloc(void)1039 devlink_region_get_req_dump_alloc(void)
1040 {
1041 return calloc(1, sizeof(struct devlink_region_get_req_dump));
1042 }
1043 void devlink_region_get_req_dump_free(struct devlink_region_get_req_dump *req);
1044
1045 static inline void
devlink_region_get_req_dump_set_bus_name(struct devlink_region_get_req_dump * req,const char * bus_name)1046 devlink_region_get_req_dump_set_bus_name(struct devlink_region_get_req_dump *req,
1047 const char *bus_name)
1048 {
1049 free(req->bus_name);
1050 req->_present.bus_name_len = strlen(bus_name);
1051 req->bus_name = malloc(req->_present.bus_name_len + 1);
1052 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
1053 req->bus_name[req->_present.bus_name_len] = 0;
1054 }
1055 static inline void
devlink_region_get_req_dump_set_dev_name(struct devlink_region_get_req_dump * req,const char * dev_name)1056 devlink_region_get_req_dump_set_dev_name(struct devlink_region_get_req_dump *req,
1057 const char *dev_name)
1058 {
1059 free(req->dev_name);
1060 req->_present.dev_name_len = strlen(dev_name);
1061 req->dev_name = malloc(req->_present.dev_name_len + 1);
1062 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
1063 req->dev_name[req->_present.dev_name_len] = 0;
1064 }
1065
1066 struct devlink_region_get_list {
1067 struct devlink_region_get_list *next;
1068 struct devlink_region_get_rsp obj __attribute__ ((aligned (8)));
1069 };
1070
1071 void devlink_region_get_list_free(struct devlink_region_get_list *rsp);
1072
1073 struct devlink_region_get_list *
1074 devlink_region_get_dump(struct ynl_sock *ys,
1075 struct devlink_region_get_req_dump *req);
1076
1077 /* ============== DEVLINK_CMD_INFO_GET ============== */
1078 /* DEVLINK_CMD_INFO_GET - do */
1079 struct devlink_info_get_req {
1080 struct {
1081 __u32 bus_name_len;
1082 __u32 dev_name_len;
1083 } _present;
1084
1085 char *bus_name;
1086 char *dev_name;
1087 };
1088
devlink_info_get_req_alloc(void)1089 static inline struct devlink_info_get_req *devlink_info_get_req_alloc(void)
1090 {
1091 return calloc(1, sizeof(struct devlink_info_get_req));
1092 }
1093 void devlink_info_get_req_free(struct devlink_info_get_req *req);
1094
1095 static inline void
devlink_info_get_req_set_bus_name(struct devlink_info_get_req * req,const char * bus_name)1096 devlink_info_get_req_set_bus_name(struct devlink_info_get_req *req,
1097 const char *bus_name)
1098 {
1099 free(req->bus_name);
1100 req->_present.bus_name_len = strlen(bus_name);
1101 req->bus_name = malloc(req->_present.bus_name_len + 1);
1102 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
1103 req->bus_name[req->_present.bus_name_len] = 0;
1104 }
1105 static inline void
devlink_info_get_req_set_dev_name(struct devlink_info_get_req * req,const char * dev_name)1106 devlink_info_get_req_set_dev_name(struct devlink_info_get_req *req,
1107 const char *dev_name)
1108 {
1109 free(req->dev_name);
1110 req->_present.dev_name_len = strlen(dev_name);
1111 req->dev_name = malloc(req->_present.dev_name_len + 1);
1112 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
1113 req->dev_name[req->_present.dev_name_len] = 0;
1114 }
1115
1116 struct devlink_info_get_rsp {
1117 struct {
1118 __u32 bus_name_len;
1119 __u32 dev_name_len;
1120 __u32 info_driver_name_len;
1121 __u32 info_serial_number_len;
1122 } _present;
1123
1124 char *bus_name;
1125 char *dev_name;
1126 char *info_driver_name;
1127 char *info_serial_number;
1128 unsigned int n_info_version_fixed;
1129 struct devlink_dl_info_version *info_version_fixed;
1130 unsigned int n_info_version_running;
1131 struct devlink_dl_info_version *info_version_running;
1132 unsigned int n_info_version_stored;
1133 struct devlink_dl_info_version *info_version_stored;
1134 };
1135
1136 void devlink_info_get_rsp_free(struct devlink_info_get_rsp *rsp);
1137
1138 /*
1139 * Get device information, like driver name, hardware and firmware versions etc.
1140 */
1141 struct devlink_info_get_rsp *
1142 devlink_info_get(struct ynl_sock *ys, struct devlink_info_get_req *req);
1143
1144 /* DEVLINK_CMD_INFO_GET - dump */
1145 struct devlink_info_get_list {
1146 struct devlink_info_get_list *next;
1147 struct devlink_info_get_rsp obj __attribute__ ((aligned (8)));
1148 };
1149
1150 void devlink_info_get_list_free(struct devlink_info_get_list *rsp);
1151
1152 struct devlink_info_get_list *devlink_info_get_dump(struct ynl_sock *ys);
1153
1154 /* ============== DEVLINK_CMD_HEALTH_REPORTER_GET ============== */
1155 /* DEVLINK_CMD_HEALTH_REPORTER_GET - do */
1156 struct devlink_health_reporter_get_req {
1157 struct {
1158 __u32 bus_name_len;
1159 __u32 dev_name_len;
1160 __u32 port_index:1;
1161 __u32 health_reporter_name_len;
1162 } _present;
1163
1164 char *bus_name;
1165 char *dev_name;
1166 __u32 port_index;
1167 char *health_reporter_name;
1168 };
1169
1170 static inline struct devlink_health_reporter_get_req *
devlink_health_reporter_get_req_alloc(void)1171 devlink_health_reporter_get_req_alloc(void)
1172 {
1173 return calloc(1, sizeof(struct devlink_health_reporter_get_req));
1174 }
1175 void
1176 devlink_health_reporter_get_req_free(struct devlink_health_reporter_get_req *req);
1177
1178 static inline void
devlink_health_reporter_get_req_set_bus_name(struct devlink_health_reporter_get_req * req,const char * bus_name)1179 devlink_health_reporter_get_req_set_bus_name(struct devlink_health_reporter_get_req *req,
1180 const char *bus_name)
1181 {
1182 free(req->bus_name);
1183 req->_present.bus_name_len = strlen(bus_name);
1184 req->bus_name = malloc(req->_present.bus_name_len + 1);
1185 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
1186 req->bus_name[req->_present.bus_name_len] = 0;
1187 }
1188 static inline void
devlink_health_reporter_get_req_set_dev_name(struct devlink_health_reporter_get_req * req,const char * dev_name)1189 devlink_health_reporter_get_req_set_dev_name(struct devlink_health_reporter_get_req *req,
1190 const char *dev_name)
1191 {
1192 free(req->dev_name);
1193 req->_present.dev_name_len = strlen(dev_name);
1194 req->dev_name = malloc(req->_present.dev_name_len + 1);
1195 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
1196 req->dev_name[req->_present.dev_name_len] = 0;
1197 }
1198 static inline void
devlink_health_reporter_get_req_set_port_index(struct devlink_health_reporter_get_req * req,__u32 port_index)1199 devlink_health_reporter_get_req_set_port_index(struct devlink_health_reporter_get_req *req,
1200 __u32 port_index)
1201 {
1202 req->_present.port_index = 1;
1203 req->port_index = port_index;
1204 }
1205 static inline void
devlink_health_reporter_get_req_set_health_reporter_name(struct devlink_health_reporter_get_req * req,const char * health_reporter_name)1206 devlink_health_reporter_get_req_set_health_reporter_name(struct devlink_health_reporter_get_req *req,
1207 const char *health_reporter_name)
1208 {
1209 free(req->health_reporter_name);
1210 req->_present.health_reporter_name_len = strlen(health_reporter_name);
1211 req->health_reporter_name = malloc(req->_present.health_reporter_name_len + 1);
1212 memcpy(req->health_reporter_name, health_reporter_name, req->_present.health_reporter_name_len);
1213 req->health_reporter_name[req->_present.health_reporter_name_len] = 0;
1214 }
1215
1216 struct devlink_health_reporter_get_rsp {
1217 struct {
1218 __u32 bus_name_len;
1219 __u32 dev_name_len;
1220 __u32 port_index:1;
1221 __u32 health_reporter_name_len;
1222 } _present;
1223
1224 char *bus_name;
1225 char *dev_name;
1226 __u32 port_index;
1227 char *health_reporter_name;
1228 };
1229
1230 void
1231 devlink_health_reporter_get_rsp_free(struct devlink_health_reporter_get_rsp *rsp);
1232
1233 /*
1234 * Get health reporter instances.
1235 */
1236 struct devlink_health_reporter_get_rsp *
1237 devlink_health_reporter_get(struct ynl_sock *ys,
1238 struct devlink_health_reporter_get_req *req);
1239
1240 /* DEVLINK_CMD_HEALTH_REPORTER_GET - dump */
1241 struct devlink_health_reporter_get_req_dump {
1242 struct {
1243 __u32 bus_name_len;
1244 __u32 dev_name_len;
1245 __u32 port_index:1;
1246 } _present;
1247
1248 char *bus_name;
1249 char *dev_name;
1250 __u32 port_index;
1251 };
1252
1253 static inline struct devlink_health_reporter_get_req_dump *
devlink_health_reporter_get_req_dump_alloc(void)1254 devlink_health_reporter_get_req_dump_alloc(void)
1255 {
1256 return calloc(1, sizeof(struct devlink_health_reporter_get_req_dump));
1257 }
1258 void
1259 devlink_health_reporter_get_req_dump_free(struct devlink_health_reporter_get_req_dump *req);
1260
1261 static inline void
devlink_health_reporter_get_req_dump_set_bus_name(struct devlink_health_reporter_get_req_dump * req,const char * bus_name)1262 devlink_health_reporter_get_req_dump_set_bus_name(struct devlink_health_reporter_get_req_dump *req,
1263 const char *bus_name)
1264 {
1265 free(req->bus_name);
1266 req->_present.bus_name_len = strlen(bus_name);
1267 req->bus_name = malloc(req->_present.bus_name_len + 1);
1268 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
1269 req->bus_name[req->_present.bus_name_len] = 0;
1270 }
1271 static inline void
devlink_health_reporter_get_req_dump_set_dev_name(struct devlink_health_reporter_get_req_dump * req,const char * dev_name)1272 devlink_health_reporter_get_req_dump_set_dev_name(struct devlink_health_reporter_get_req_dump *req,
1273 const char *dev_name)
1274 {
1275 free(req->dev_name);
1276 req->_present.dev_name_len = strlen(dev_name);
1277 req->dev_name = malloc(req->_present.dev_name_len + 1);
1278 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
1279 req->dev_name[req->_present.dev_name_len] = 0;
1280 }
1281 static inline void
devlink_health_reporter_get_req_dump_set_port_index(struct devlink_health_reporter_get_req_dump * req,__u32 port_index)1282 devlink_health_reporter_get_req_dump_set_port_index(struct devlink_health_reporter_get_req_dump *req,
1283 __u32 port_index)
1284 {
1285 req->_present.port_index = 1;
1286 req->port_index = port_index;
1287 }
1288
1289 struct devlink_health_reporter_get_list {
1290 struct devlink_health_reporter_get_list *next;
1291 struct devlink_health_reporter_get_rsp obj __attribute__ ((aligned (8)));
1292 };
1293
1294 void
1295 devlink_health_reporter_get_list_free(struct devlink_health_reporter_get_list *rsp);
1296
1297 struct devlink_health_reporter_get_list *
1298 devlink_health_reporter_get_dump(struct ynl_sock *ys,
1299 struct devlink_health_reporter_get_req_dump *req);
1300
1301 /* ============== DEVLINK_CMD_TRAP_GET ============== */
1302 /* DEVLINK_CMD_TRAP_GET - do */
1303 struct devlink_trap_get_req {
1304 struct {
1305 __u32 bus_name_len;
1306 __u32 dev_name_len;
1307 __u32 trap_name_len;
1308 } _present;
1309
1310 char *bus_name;
1311 char *dev_name;
1312 char *trap_name;
1313 };
1314
devlink_trap_get_req_alloc(void)1315 static inline struct devlink_trap_get_req *devlink_trap_get_req_alloc(void)
1316 {
1317 return calloc(1, sizeof(struct devlink_trap_get_req));
1318 }
1319 void devlink_trap_get_req_free(struct devlink_trap_get_req *req);
1320
1321 static inline void
devlink_trap_get_req_set_bus_name(struct devlink_trap_get_req * req,const char * bus_name)1322 devlink_trap_get_req_set_bus_name(struct devlink_trap_get_req *req,
1323 const char *bus_name)
1324 {
1325 free(req->bus_name);
1326 req->_present.bus_name_len = strlen(bus_name);
1327 req->bus_name = malloc(req->_present.bus_name_len + 1);
1328 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
1329 req->bus_name[req->_present.bus_name_len] = 0;
1330 }
1331 static inline void
devlink_trap_get_req_set_dev_name(struct devlink_trap_get_req * req,const char * dev_name)1332 devlink_trap_get_req_set_dev_name(struct devlink_trap_get_req *req,
1333 const char *dev_name)
1334 {
1335 free(req->dev_name);
1336 req->_present.dev_name_len = strlen(dev_name);
1337 req->dev_name = malloc(req->_present.dev_name_len + 1);
1338 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
1339 req->dev_name[req->_present.dev_name_len] = 0;
1340 }
1341 static inline void
devlink_trap_get_req_set_trap_name(struct devlink_trap_get_req * req,const char * trap_name)1342 devlink_trap_get_req_set_trap_name(struct devlink_trap_get_req *req,
1343 const char *trap_name)
1344 {
1345 free(req->trap_name);
1346 req->_present.trap_name_len = strlen(trap_name);
1347 req->trap_name = malloc(req->_present.trap_name_len + 1);
1348 memcpy(req->trap_name, trap_name, req->_present.trap_name_len);
1349 req->trap_name[req->_present.trap_name_len] = 0;
1350 }
1351
1352 struct devlink_trap_get_rsp {
1353 struct {
1354 __u32 bus_name_len;
1355 __u32 dev_name_len;
1356 __u32 trap_name_len;
1357 } _present;
1358
1359 char *bus_name;
1360 char *dev_name;
1361 char *trap_name;
1362 };
1363
1364 void devlink_trap_get_rsp_free(struct devlink_trap_get_rsp *rsp);
1365
1366 /*
1367 * Get trap instances.
1368 */
1369 struct devlink_trap_get_rsp *
1370 devlink_trap_get(struct ynl_sock *ys, struct devlink_trap_get_req *req);
1371
1372 /* DEVLINK_CMD_TRAP_GET - dump */
1373 struct devlink_trap_get_req_dump {
1374 struct {
1375 __u32 bus_name_len;
1376 __u32 dev_name_len;
1377 } _present;
1378
1379 char *bus_name;
1380 char *dev_name;
1381 };
1382
1383 static inline struct devlink_trap_get_req_dump *
devlink_trap_get_req_dump_alloc(void)1384 devlink_trap_get_req_dump_alloc(void)
1385 {
1386 return calloc(1, sizeof(struct devlink_trap_get_req_dump));
1387 }
1388 void devlink_trap_get_req_dump_free(struct devlink_trap_get_req_dump *req);
1389
1390 static inline void
devlink_trap_get_req_dump_set_bus_name(struct devlink_trap_get_req_dump * req,const char * bus_name)1391 devlink_trap_get_req_dump_set_bus_name(struct devlink_trap_get_req_dump *req,
1392 const char *bus_name)
1393 {
1394 free(req->bus_name);
1395 req->_present.bus_name_len = strlen(bus_name);
1396 req->bus_name = malloc(req->_present.bus_name_len + 1);
1397 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
1398 req->bus_name[req->_present.bus_name_len] = 0;
1399 }
1400 static inline void
devlink_trap_get_req_dump_set_dev_name(struct devlink_trap_get_req_dump * req,const char * dev_name)1401 devlink_trap_get_req_dump_set_dev_name(struct devlink_trap_get_req_dump *req,
1402 const char *dev_name)
1403 {
1404 free(req->dev_name);
1405 req->_present.dev_name_len = strlen(dev_name);
1406 req->dev_name = malloc(req->_present.dev_name_len + 1);
1407 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
1408 req->dev_name[req->_present.dev_name_len] = 0;
1409 }
1410
1411 struct devlink_trap_get_list {
1412 struct devlink_trap_get_list *next;
1413 struct devlink_trap_get_rsp obj __attribute__ ((aligned (8)));
1414 };
1415
1416 void devlink_trap_get_list_free(struct devlink_trap_get_list *rsp);
1417
1418 struct devlink_trap_get_list *
1419 devlink_trap_get_dump(struct ynl_sock *ys,
1420 struct devlink_trap_get_req_dump *req);
1421
1422 /* ============== DEVLINK_CMD_TRAP_GROUP_GET ============== */
1423 /* DEVLINK_CMD_TRAP_GROUP_GET - do */
1424 struct devlink_trap_group_get_req {
1425 struct {
1426 __u32 bus_name_len;
1427 __u32 dev_name_len;
1428 __u32 trap_group_name_len;
1429 } _present;
1430
1431 char *bus_name;
1432 char *dev_name;
1433 char *trap_group_name;
1434 };
1435
1436 static inline struct devlink_trap_group_get_req *
devlink_trap_group_get_req_alloc(void)1437 devlink_trap_group_get_req_alloc(void)
1438 {
1439 return calloc(1, sizeof(struct devlink_trap_group_get_req));
1440 }
1441 void devlink_trap_group_get_req_free(struct devlink_trap_group_get_req *req);
1442
1443 static inline void
devlink_trap_group_get_req_set_bus_name(struct devlink_trap_group_get_req * req,const char * bus_name)1444 devlink_trap_group_get_req_set_bus_name(struct devlink_trap_group_get_req *req,
1445 const char *bus_name)
1446 {
1447 free(req->bus_name);
1448 req->_present.bus_name_len = strlen(bus_name);
1449 req->bus_name = malloc(req->_present.bus_name_len + 1);
1450 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
1451 req->bus_name[req->_present.bus_name_len] = 0;
1452 }
1453 static inline void
devlink_trap_group_get_req_set_dev_name(struct devlink_trap_group_get_req * req,const char * dev_name)1454 devlink_trap_group_get_req_set_dev_name(struct devlink_trap_group_get_req *req,
1455 const char *dev_name)
1456 {
1457 free(req->dev_name);
1458 req->_present.dev_name_len = strlen(dev_name);
1459 req->dev_name = malloc(req->_present.dev_name_len + 1);
1460 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
1461 req->dev_name[req->_present.dev_name_len] = 0;
1462 }
1463 static inline void
devlink_trap_group_get_req_set_trap_group_name(struct devlink_trap_group_get_req * req,const char * trap_group_name)1464 devlink_trap_group_get_req_set_trap_group_name(struct devlink_trap_group_get_req *req,
1465 const char *trap_group_name)
1466 {
1467 free(req->trap_group_name);
1468 req->_present.trap_group_name_len = strlen(trap_group_name);
1469 req->trap_group_name = malloc(req->_present.trap_group_name_len + 1);
1470 memcpy(req->trap_group_name, trap_group_name, req->_present.trap_group_name_len);
1471 req->trap_group_name[req->_present.trap_group_name_len] = 0;
1472 }
1473
1474 struct devlink_trap_group_get_rsp {
1475 struct {
1476 __u32 bus_name_len;
1477 __u32 dev_name_len;
1478 __u32 trap_group_name_len;
1479 } _present;
1480
1481 char *bus_name;
1482 char *dev_name;
1483 char *trap_group_name;
1484 };
1485
1486 void devlink_trap_group_get_rsp_free(struct devlink_trap_group_get_rsp *rsp);
1487
1488 /*
1489 * Get trap group instances.
1490 */
1491 struct devlink_trap_group_get_rsp *
1492 devlink_trap_group_get(struct ynl_sock *ys,
1493 struct devlink_trap_group_get_req *req);
1494
1495 /* DEVLINK_CMD_TRAP_GROUP_GET - dump */
1496 struct devlink_trap_group_get_req_dump {
1497 struct {
1498 __u32 bus_name_len;
1499 __u32 dev_name_len;
1500 } _present;
1501
1502 char *bus_name;
1503 char *dev_name;
1504 };
1505
1506 static inline struct devlink_trap_group_get_req_dump *
devlink_trap_group_get_req_dump_alloc(void)1507 devlink_trap_group_get_req_dump_alloc(void)
1508 {
1509 return calloc(1, sizeof(struct devlink_trap_group_get_req_dump));
1510 }
1511 void
1512 devlink_trap_group_get_req_dump_free(struct devlink_trap_group_get_req_dump *req);
1513
1514 static inline void
devlink_trap_group_get_req_dump_set_bus_name(struct devlink_trap_group_get_req_dump * req,const char * bus_name)1515 devlink_trap_group_get_req_dump_set_bus_name(struct devlink_trap_group_get_req_dump *req,
1516 const char *bus_name)
1517 {
1518 free(req->bus_name);
1519 req->_present.bus_name_len = strlen(bus_name);
1520 req->bus_name = malloc(req->_present.bus_name_len + 1);
1521 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
1522 req->bus_name[req->_present.bus_name_len] = 0;
1523 }
1524 static inline void
devlink_trap_group_get_req_dump_set_dev_name(struct devlink_trap_group_get_req_dump * req,const char * dev_name)1525 devlink_trap_group_get_req_dump_set_dev_name(struct devlink_trap_group_get_req_dump *req,
1526 const char *dev_name)
1527 {
1528 free(req->dev_name);
1529 req->_present.dev_name_len = strlen(dev_name);
1530 req->dev_name = malloc(req->_present.dev_name_len + 1);
1531 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
1532 req->dev_name[req->_present.dev_name_len] = 0;
1533 }
1534
1535 struct devlink_trap_group_get_list {
1536 struct devlink_trap_group_get_list *next;
1537 struct devlink_trap_group_get_rsp obj __attribute__ ((aligned (8)));
1538 };
1539
1540 void devlink_trap_group_get_list_free(struct devlink_trap_group_get_list *rsp);
1541
1542 struct devlink_trap_group_get_list *
1543 devlink_trap_group_get_dump(struct ynl_sock *ys,
1544 struct devlink_trap_group_get_req_dump *req);
1545
1546 /* ============== DEVLINK_CMD_TRAP_POLICER_GET ============== */
1547 /* DEVLINK_CMD_TRAP_POLICER_GET - do */
1548 struct devlink_trap_policer_get_req {
1549 struct {
1550 __u32 bus_name_len;
1551 __u32 dev_name_len;
1552 __u32 trap_policer_id:1;
1553 } _present;
1554
1555 char *bus_name;
1556 char *dev_name;
1557 __u32 trap_policer_id;
1558 };
1559
1560 static inline struct devlink_trap_policer_get_req *
devlink_trap_policer_get_req_alloc(void)1561 devlink_trap_policer_get_req_alloc(void)
1562 {
1563 return calloc(1, sizeof(struct devlink_trap_policer_get_req));
1564 }
1565 void
1566 devlink_trap_policer_get_req_free(struct devlink_trap_policer_get_req *req);
1567
1568 static inline void
devlink_trap_policer_get_req_set_bus_name(struct devlink_trap_policer_get_req * req,const char * bus_name)1569 devlink_trap_policer_get_req_set_bus_name(struct devlink_trap_policer_get_req *req,
1570 const char *bus_name)
1571 {
1572 free(req->bus_name);
1573 req->_present.bus_name_len = strlen(bus_name);
1574 req->bus_name = malloc(req->_present.bus_name_len + 1);
1575 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
1576 req->bus_name[req->_present.bus_name_len] = 0;
1577 }
1578 static inline void
devlink_trap_policer_get_req_set_dev_name(struct devlink_trap_policer_get_req * req,const char * dev_name)1579 devlink_trap_policer_get_req_set_dev_name(struct devlink_trap_policer_get_req *req,
1580 const char *dev_name)
1581 {
1582 free(req->dev_name);
1583 req->_present.dev_name_len = strlen(dev_name);
1584 req->dev_name = malloc(req->_present.dev_name_len + 1);
1585 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
1586 req->dev_name[req->_present.dev_name_len] = 0;
1587 }
1588 static inline void
devlink_trap_policer_get_req_set_trap_policer_id(struct devlink_trap_policer_get_req * req,__u32 trap_policer_id)1589 devlink_trap_policer_get_req_set_trap_policer_id(struct devlink_trap_policer_get_req *req,
1590 __u32 trap_policer_id)
1591 {
1592 req->_present.trap_policer_id = 1;
1593 req->trap_policer_id = trap_policer_id;
1594 }
1595
1596 struct devlink_trap_policer_get_rsp {
1597 struct {
1598 __u32 bus_name_len;
1599 __u32 dev_name_len;
1600 __u32 trap_policer_id:1;
1601 } _present;
1602
1603 char *bus_name;
1604 char *dev_name;
1605 __u32 trap_policer_id;
1606 };
1607
1608 void
1609 devlink_trap_policer_get_rsp_free(struct devlink_trap_policer_get_rsp *rsp);
1610
1611 /*
1612 * Get trap policer instances.
1613 */
1614 struct devlink_trap_policer_get_rsp *
1615 devlink_trap_policer_get(struct ynl_sock *ys,
1616 struct devlink_trap_policer_get_req *req);
1617
1618 /* DEVLINK_CMD_TRAP_POLICER_GET - dump */
1619 struct devlink_trap_policer_get_req_dump {
1620 struct {
1621 __u32 bus_name_len;
1622 __u32 dev_name_len;
1623 } _present;
1624
1625 char *bus_name;
1626 char *dev_name;
1627 };
1628
1629 static inline struct devlink_trap_policer_get_req_dump *
devlink_trap_policer_get_req_dump_alloc(void)1630 devlink_trap_policer_get_req_dump_alloc(void)
1631 {
1632 return calloc(1, sizeof(struct devlink_trap_policer_get_req_dump));
1633 }
1634 void
1635 devlink_trap_policer_get_req_dump_free(struct devlink_trap_policer_get_req_dump *req);
1636
1637 static inline void
devlink_trap_policer_get_req_dump_set_bus_name(struct devlink_trap_policer_get_req_dump * req,const char * bus_name)1638 devlink_trap_policer_get_req_dump_set_bus_name(struct devlink_trap_policer_get_req_dump *req,
1639 const char *bus_name)
1640 {
1641 free(req->bus_name);
1642 req->_present.bus_name_len = strlen(bus_name);
1643 req->bus_name = malloc(req->_present.bus_name_len + 1);
1644 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
1645 req->bus_name[req->_present.bus_name_len] = 0;
1646 }
1647 static inline void
devlink_trap_policer_get_req_dump_set_dev_name(struct devlink_trap_policer_get_req_dump * req,const char * dev_name)1648 devlink_trap_policer_get_req_dump_set_dev_name(struct devlink_trap_policer_get_req_dump *req,
1649 const char *dev_name)
1650 {
1651 free(req->dev_name);
1652 req->_present.dev_name_len = strlen(dev_name);
1653 req->dev_name = malloc(req->_present.dev_name_len + 1);
1654 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
1655 req->dev_name[req->_present.dev_name_len] = 0;
1656 }
1657
1658 struct devlink_trap_policer_get_list {
1659 struct devlink_trap_policer_get_list *next;
1660 struct devlink_trap_policer_get_rsp obj __attribute__ ((aligned (8)));
1661 };
1662
1663 void
1664 devlink_trap_policer_get_list_free(struct devlink_trap_policer_get_list *rsp);
1665
1666 struct devlink_trap_policer_get_list *
1667 devlink_trap_policer_get_dump(struct ynl_sock *ys,
1668 struct devlink_trap_policer_get_req_dump *req);
1669
1670 /* ============== DEVLINK_CMD_RATE_GET ============== */
1671 /* DEVLINK_CMD_RATE_GET - do */
1672 struct devlink_rate_get_req {
1673 struct {
1674 __u32 bus_name_len;
1675 __u32 dev_name_len;
1676 __u32 port_index:1;
1677 __u32 rate_node_name_len;
1678 } _present;
1679
1680 char *bus_name;
1681 char *dev_name;
1682 __u32 port_index;
1683 char *rate_node_name;
1684 };
1685
devlink_rate_get_req_alloc(void)1686 static inline struct devlink_rate_get_req *devlink_rate_get_req_alloc(void)
1687 {
1688 return calloc(1, sizeof(struct devlink_rate_get_req));
1689 }
1690 void devlink_rate_get_req_free(struct devlink_rate_get_req *req);
1691
1692 static inline void
devlink_rate_get_req_set_bus_name(struct devlink_rate_get_req * req,const char * bus_name)1693 devlink_rate_get_req_set_bus_name(struct devlink_rate_get_req *req,
1694 const char *bus_name)
1695 {
1696 free(req->bus_name);
1697 req->_present.bus_name_len = strlen(bus_name);
1698 req->bus_name = malloc(req->_present.bus_name_len + 1);
1699 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
1700 req->bus_name[req->_present.bus_name_len] = 0;
1701 }
1702 static inline void
devlink_rate_get_req_set_dev_name(struct devlink_rate_get_req * req,const char * dev_name)1703 devlink_rate_get_req_set_dev_name(struct devlink_rate_get_req *req,
1704 const char *dev_name)
1705 {
1706 free(req->dev_name);
1707 req->_present.dev_name_len = strlen(dev_name);
1708 req->dev_name = malloc(req->_present.dev_name_len + 1);
1709 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
1710 req->dev_name[req->_present.dev_name_len] = 0;
1711 }
1712 static inline void
devlink_rate_get_req_set_port_index(struct devlink_rate_get_req * req,__u32 port_index)1713 devlink_rate_get_req_set_port_index(struct devlink_rate_get_req *req,
1714 __u32 port_index)
1715 {
1716 req->_present.port_index = 1;
1717 req->port_index = port_index;
1718 }
1719 static inline void
devlink_rate_get_req_set_rate_node_name(struct devlink_rate_get_req * req,const char * rate_node_name)1720 devlink_rate_get_req_set_rate_node_name(struct devlink_rate_get_req *req,
1721 const char *rate_node_name)
1722 {
1723 free(req->rate_node_name);
1724 req->_present.rate_node_name_len = strlen(rate_node_name);
1725 req->rate_node_name = malloc(req->_present.rate_node_name_len + 1);
1726 memcpy(req->rate_node_name, rate_node_name, req->_present.rate_node_name_len);
1727 req->rate_node_name[req->_present.rate_node_name_len] = 0;
1728 }
1729
1730 struct devlink_rate_get_rsp {
1731 struct {
1732 __u32 bus_name_len;
1733 __u32 dev_name_len;
1734 __u32 port_index:1;
1735 __u32 rate_node_name_len;
1736 } _present;
1737
1738 char *bus_name;
1739 char *dev_name;
1740 __u32 port_index;
1741 char *rate_node_name;
1742 };
1743
1744 void devlink_rate_get_rsp_free(struct devlink_rate_get_rsp *rsp);
1745
1746 /*
1747 * Get rate instances.
1748 */
1749 struct devlink_rate_get_rsp *
1750 devlink_rate_get(struct ynl_sock *ys, struct devlink_rate_get_req *req);
1751
1752 /* DEVLINK_CMD_RATE_GET - dump */
1753 struct devlink_rate_get_req_dump {
1754 struct {
1755 __u32 bus_name_len;
1756 __u32 dev_name_len;
1757 } _present;
1758
1759 char *bus_name;
1760 char *dev_name;
1761 };
1762
1763 static inline struct devlink_rate_get_req_dump *
devlink_rate_get_req_dump_alloc(void)1764 devlink_rate_get_req_dump_alloc(void)
1765 {
1766 return calloc(1, sizeof(struct devlink_rate_get_req_dump));
1767 }
1768 void devlink_rate_get_req_dump_free(struct devlink_rate_get_req_dump *req);
1769
1770 static inline void
devlink_rate_get_req_dump_set_bus_name(struct devlink_rate_get_req_dump * req,const char * bus_name)1771 devlink_rate_get_req_dump_set_bus_name(struct devlink_rate_get_req_dump *req,
1772 const char *bus_name)
1773 {
1774 free(req->bus_name);
1775 req->_present.bus_name_len = strlen(bus_name);
1776 req->bus_name = malloc(req->_present.bus_name_len + 1);
1777 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
1778 req->bus_name[req->_present.bus_name_len] = 0;
1779 }
1780 static inline void
devlink_rate_get_req_dump_set_dev_name(struct devlink_rate_get_req_dump * req,const char * dev_name)1781 devlink_rate_get_req_dump_set_dev_name(struct devlink_rate_get_req_dump *req,
1782 const char *dev_name)
1783 {
1784 free(req->dev_name);
1785 req->_present.dev_name_len = strlen(dev_name);
1786 req->dev_name = malloc(req->_present.dev_name_len + 1);
1787 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
1788 req->dev_name[req->_present.dev_name_len] = 0;
1789 }
1790
1791 struct devlink_rate_get_list {
1792 struct devlink_rate_get_list *next;
1793 struct devlink_rate_get_rsp obj __attribute__ ((aligned (8)));
1794 };
1795
1796 void devlink_rate_get_list_free(struct devlink_rate_get_list *rsp);
1797
1798 struct devlink_rate_get_list *
1799 devlink_rate_get_dump(struct ynl_sock *ys,
1800 struct devlink_rate_get_req_dump *req);
1801
1802 /* ============== DEVLINK_CMD_LINECARD_GET ============== */
1803 /* DEVLINK_CMD_LINECARD_GET - do */
1804 struct devlink_linecard_get_req {
1805 struct {
1806 __u32 bus_name_len;
1807 __u32 dev_name_len;
1808 __u32 linecard_index:1;
1809 } _present;
1810
1811 char *bus_name;
1812 char *dev_name;
1813 __u32 linecard_index;
1814 };
1815
1816 static inline struct devlink_linecard_get_req *
devlink_linecard_get_req_alloc(void)1817 devlink_linecard_get_req_alloc(void)
1818 {
1819 return calloc(1, sizeof(struct devlink_linecard_get_req));
1820 }
1821 void devlink_linecard_get_req_free(struct devlink_linecard_get_req *req);
1822
1823 static inline void
devlink_linecard_get_req_set_bus_name(struct devlink_linecard_get_req * req,const char * bus_name)1824 devlink_linecard_get_req_set_bus_name(struct devlink_linecard_get_req *req,
1825 const char *bus_name)
1826 {
1827 free(req->bus_name);
1828 req->_present.bus_name_len = strlen(bus_name);
1829 req->bus_name = malloc(req->_present.bus_name_len + 1);
1830 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
1831 req->bus_name[req->_present.bus_name_len] = 0;
1832 }
1833 static inline void
devlink_linecard_get_req_set_dev_name(struct devlink_linecard_get_req * req,const char * dev_name)1834 devlink_linecard_get_req_set_dev_name(struct devlink_linecard_get_req *req,
1835 const char *dev_name)
1836 {
1837 free(req->dev_name);
1838 req->_present.dev_name_len = strlen(dev_name);
1839 req->dev_name = malloc(req->_present.dev_name_len + 1);
1840 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
1841 req->dev_name[req->_present.dev_name_len] = 0;
1842 }
1843 static inline void
devlink_linecard_get_req_set_linecard_index(struct devlink_linecard_get_req * req,__u32 linecard_index)1844 devlink_linecard_get_req_set_linecard_index(struct devlink_linecard_get_req *req,
1845 __u32 linecard_index)
1846 {
1847 req->_present.linecard_index = 1;
1848 req->linecard_index = linecard_index;
1849 }
1850
1851 struct devlink_linecard_get_rsp {
1852 struct {
1853 __u32 bus_name_len;
1854 __u32 dev_name_len;
1855 __u32 linecard_index:1;
1856 } _present;
1857
1858 char *bus_name;
1859 char *dev_name;
1860 __u32 linecard_index;
1861 };
1862
1863 void devlink_linecard_get_rsp_free(struct devlink_linecard_get_rsp *rsp);
1864
1865 /*
1866 * Get line card instances.
1867 */
1868 struct devlink_linecard_get_rsp *
1869 devlink_linecard_get(struct ynl_sock *ys, struct devlink_linecard_get_req *req);
1870
1871 /* DEVLINK_CMD_LINECARD_GET - dump */
1872 struct devlink_linecard_get_req_dump {
1873 struct {
1874 __u32 bus_name_len;
1875 __u32 dev_name_len;
1876 } _present;
1877
1878 char *bus_name;
1879 char *dev_name;
1880 };
1881
1882 static inline struct devlink_linecard_get_req_dump *
devlink_linecard_get_req_dump_alloc(void)1883 devlink_linecard_get_req_dump_alloc(void)
1884 {
1885 return calloc(1, sizeof(struct devlink_linecard_get_req_dump));
1886 }
1887 void
1888 devlink_linecard_get_req_dump_free(struct devlink_linecard_get_req_dump *req);
1889
1890 static inline void
devlink_linecard_get_req_dump_set_bus_name(struct devlink_linecard_get_req_dump * req,const char * bus_name)1891 devlink_linecard_get_req_dump_set_bus_name(struct devlink_linecard_get_req_dump *req,
1892 const char *bus_name)
1893 {
1894 free(req->bus_name);
1895 req->_present.bus_name_len = strlen(bus_name);
1896 req->bus_name = malloc(req->_present.bus_name_len + 1);
1897 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
1898 req->bus_name[req->_present.bus_name_len] = 0;
1899 }
1900 static inline void
devlink_linecard_get_req_dump_set_dev_name(struct devlink_linecard_get_req_dump * req,const char * dev_name)1901 devlink_linecard_get_req_dump_set_dev_name(struct devlink_linecard_get_req_dump *req,
1902 const char *dev_name)
1903 {
1904 free(req->dev_name);
1905 req->_present.dev_name_len = strlen(dev_name);
1906 req->dev_name = malloc(req->_present.dev_name_len + 1);
1907 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
1908 req->dev_name[req->_present.dev_name_len] = 0;
1909 }
1910
1911 struct devlink_linecard_get_list {
1912 struct devlink_linecard_get_list *next;
1913 struct devlink_linecard_get_rsp obj __attribute__ ((aligned (8)));
1914 };
1915
1916 void devlink_linecard_get_list_free(struct devlink_linecard_get_list *rsp);
1917
1918 struct devlink_linecard_get_list *
1919 devlink_linecard_get_dump(struct ynl_sock *ys,
1920 struct devlink_linecard_get_req_dump *req);
1921
1922 /* ============== DEVLINK_CMD_SELFTESTS_GET ============== */
1923 /* DEVLINK_CMD_SELFTESTS_GET - do */
1924 struct devlink_selftests_get_req {
1925 struct {
1926 __u32 bus_name_len;
1927 __u32 dev_name_len;
1928 } _present;
1929
1930 char *bus_name;
1931 char *dev_name;
1932 };
1933
1934 static inline struct devlink_selftests_get_req *
devlink_selftests_get_req_alloc(void)1935 devlink_selftests_get_req_alloc(void)
1936 {
1937 return calloc(1, sizeof(struct devlink_selftests_get_req));
1938 }
1939 void devlink_selftests_get_req_free(struct devlink_selftests_get_req *req);
1940
1941 static inline void
devlink_selftests_get_req_set_bus_name(struct devlink_selftests_get_req * req,const char * bus_name)1942 devlink_selftests_get_req_set_bus_name(struct devlink_selftests_get_req *req,
1943 const char *bus_name)
1944 {
1945 free(req->bus_name);
1946 req->_present.bus_name_len = strlen(bus_name);
1947 req->bus_name = malloc(req->_present.bus_name_len + 1);
1948 memcpy(req->bus_name, bus_name, req->_present.bus_name_len);
1949 req->bus_name[req->_present.bus_name_len] = 0;
1950 }
1951 static inline void
devlink_selftests_get_req_set_dev_name(struct devlink_selftests_get_req * req,const char * dev_name)1952 devlink_selftests_get_req_set_dev_name(struct devlink_selftests_get_req *req,
1953 const char *dev_name)
1954 {
1955 free(req->dev_name);
1956 req->_present.dev_name_len = strlen(dev_name);
1957 req->dev_name = malloc(req->_present.dev_name_len + 1);
1958 memcpy(req->dev_name, dev_name, req->_present.dev_name_len);
1959 req->dev_name[req->_present.dev_name_len] = 0;
1960 }
1961
1962 struct devlink_selftests_get_rsp {
1963 struct {
1964 __u32 bus_name_len;
1965 __u32 dev_name_len;
1966 } _present;
1967
1968 char *bus_name;
1969 char *dev_name;
1970 };
1971
1972 void devlink_selftests_get_rsp_free(struct devlink_selftests_get_rsp *rsp);
1973
1974 /*
1975 * Get device selftest instances.
1976 */
1977 struct devlink_selftests_get_rsp *
1978 devlink_selftests_get(struct ynl_sock *ys,
1979 struct devlink_selftests_get_req *req);
1980
1981 /* DEVLINK_CMD_SELFTESTS_GET - dump */
1982 struct devlink_selftests_get_list {
1983 struct devlink_selftests_get_list *next;
1984 struct devlink_selftests_get_rsp obj __attribute__ ((aligned (8)));
1985 };
1986
1987 void devlink_selftests_get_list_free(struct devlink_selftests_get_list *rsp);
1988
1989 struct devlink_selftests_get_list *
1990 devlink_selftests_get_dump(struct ynl_sock *ys);
1991
1992 #endif /* _LINUX_DEVLINK_GEN_H */
1993