162306a36Sopenharmony_ci/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */ 262306a36Sopenharmony_ci/* Do not edit directly, auto-generated from: */ 362306a36Sopenharmony_ci/* Documentation/netlink/specs/netdev.yaml */ 462306a36Sopenharmony_ci/* YNL-GEN user header */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#ifndef _LINUX_NETDEV_GEN_H 762306a36Sopenharmony_ci#define _LINUX_NETDEV_GEN_H 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#include <stdlib.h> 1062306a36Sopenharmony_ci#include <string.h> 1162306a36Sopenharmony_ci#include <linux/types.h> 1262306a36Sopenharmony_ci#include <linux/netdev.h> 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_cistruct ynl_sock; 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ciextern const struct ynl_family ynl_netdev_family; 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci/* Enums */ 1962306a36Sopenharmony_ciconst char *netdev_op_str(int op); 2062306a36Sopenharmony_ciconst char *netdev_xdp_act_str(enum netdev_xdp_act value); 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci/* Common nested types */ 2362306a36Sopenharmony_ci/* ============== NETDEV_CMD_DEV_GET ============== */ 2462306a36Sopenharmony_ci/* NETDEV_CMD_DEV_GET - do */ 2562306a36Sopenharmony_cistruct netdev_dev_get_req { 2662306a36Sopenharmony_ci struct { 2762306a36Sopenharmony_ci __u32 ifindex:1; 2862306a36Sopenharmony_ci } _present; 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ci __u32 ifindex; 3162306a36Sopenharmony_ci}; 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_cistatic inline struct netdev_dev_get_req *netdev_dev_get_req_alloc(void) 3462306a36Sopenharmony_ci{ 3562306a36Sopenharmony_ci return calloc(1, sizeof(struct netdev_dev_get_req)); 3662306a36Sopenharmony_ci} 3762306a36Sopenharmony_civoid netdev_dev_get_req_free(struct netdev_dev_get_req *req); 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_cistatic inline void 4062306a36Sopenharmony_cinetdev_dev_get_req_set_ifindex(struct netdev_dev_get_req *req, __u32 ifindex) 4162306a36Sopenharmony_ci{ 4262306a36Sopenharmony_ci req->_present.ifindex = 1; 4362306a36Sopenharmony_ci req->ifindex = ifindex; 4462306a36Sopenharmony_ci} 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_cistruct netdev_dev_get_rsp { 4762306a36Sopenharmony_ci struct { 4862306a36Sopenharmony_ci __u32 ifindex:1; 4962306a36Sopenharmony_ci __u32 xdp_features:1; 5062306a36Sopenharmony_ci __u32 xdp_zc_max_segs:1; 5162306a36Sopenharmony_ci } _present; 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ci __u32 ifindex; 5462306a36Sopenharmony_ci __u64 xdp_features; 5562306a36Sopenharmony_ci __u32 xdp_zc_max_segs; 5662306a36Sopenharmony_ci}; 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_civoid netdev_dev_get_rsp_free(struct netdev_dev_get_rsp *rsp); 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ci/* 6162306a36Sopenharmony_ci * Get / dump information about a netdev. 6262306a36Sopenharmony_ci */ 6362306a36Sopenharmony_cistruct netdev_dev_get_rsp * 6462306a36Sopenharmony_cinetdev_dev_get(struct ynl_sock *ys, struct netdev_dev_get_req *req); 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ci/* NETDEV_CMD_DEV_GET - dump */ 6762306a36Sopenharmony_cistruct netdev_dev_get_list { 6862306a36Sopenharmony_ci struct netdev_dev_get_list *next; 6962306a36Sopenharmony_ci struct netdev_dev_get_rsp obj __attribute__ ((aligned (8))); 7062306a36Sopenharmony_ci}; 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_civoid netdev_dev_get_list_free(struct netdev_dev_get_list *rsp); 7362306a36Sopenharmony_ci 7462306a36Sopenharmony_cistruct netdev_dev_get_list *netdev_dev_get_dump(struct ynl_sock *ys); 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ci/* NETDEV_CMD_DEV_GET - notify */ 7762306a36Sopenharmony_cistruct netdev_dev_get_ntf { 7862306a36Sopenharmony_ci __u16 family; 7962306a36Sopenharmony_ci __u8 cmd; 8062306a36Sopenharmony_ci struct ynl_ntf_base_type *next; 8162306a36Sopenharmony_ci void (*free)(struct netdev_dev_get_ntf *ntf); 8262306a36Sopenharmony_ci struct netdev_dev_get_rsp obj __attribute__ ((aligned (8))); 8362306a36Sopenharmony_ci}; 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_civoid netdev_dev_get_ntf_free(struct netdev_dev_get_ntf *rsp); 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci#endif /* _LINUX_NETDEV_GEN_H */ 88