Linux altar53.supremepanel53.com 4.18.0-553.8.1.lve.el8.x86_64 #1 SMP Thu Jul 4 16:24:39 UTC 2024 x86_64
/ usr/ include/ libnl3/ netlink/ |
|
/* SPDX-License-Identifier: LGPL-2.1-only */ /* * Copyright (c) 2003-2012 Thomas Graf <tgraf@suug.ch> */ #ifndef NETLINK_OBJECT_H_ #define NETLINK_OBJECT_H_ #include <netlink/netlink.h> #include <netlink/utils.h> #ifdef __cplusplus extern "C" { #endif struct nl_cache; struct nl_object; struct nl_object_ops; #define OBJ_CAST(ptr) ((struct nl_object *) (ptr)) /* General */ extern struct nl_object * nl_object_alloc(struct nl_object_ops *); extern int nl_object_alloc_name(const char *, struct nl_object **); extern void nl_object_free(struct nl_object *); extern struct nl_object * nl_object_clone(struct nl_object *obj); extern int nl_object_update(struct nl_object *dst, struct nl_object *src); extern void nl_object_get(struct nl_object *); extern void nl_object_put(struct nl_object *); extern int nl_object_shared(struct nl_object *); extern void nl_object_dump(struct nl_object *, struct nl_dump_params *); extern void nl_object_dump_buf(struct nl_object *, char *, size_t); extern int nl_object_identical(struct nl_object *, struct nl_object *); extern uint32_t nl_object_diff(struct nl_object *, struct nl_object *); extern uint64_t nl_object_diff64(struct nl_object *, struct nl_object *); extern int nl_object_match_filter(struct nl_object *, struct nl_object *); extern char * nl_object_attrs2str(struct nl_object *, uint32_t attrs, char *buf, size_t); extern char * nl_object_attr_list(struct nl_object *, char *, size_t); extern void nl_object_keygen(struct nl_object *, uint32_t *, uint32_t); /* Marks */ extern void nl_object_mark(struct nl_object *); extern void nl_object_unmark(struct nl_object *); extern int nl_object_is_marked(struct nl_object *); /* Access Functions */ extern int nl_object_get_refcnt(struct nl_object *); extern struct nl_cache * nl_object_get_cache(struct nl_object *); extern const char * nl_object_get_type(const struct nl_object *); extern int nl_object_get_msgtype(const struct nl_object *); struct nl_object_ops * nl_object_get_ops(const struct nl_object *); uint32_t nl_object_get_id_attrs(struct nl_object *obj); static inline void * nl_object_priv(struct nl_object *obj) { return obj; } #ifdef __cplusplus } #endif #endif