X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/e8d08775f6f9dc8496ee6eea3cf91f06c5991c98..8cb8af6601331ced6f002731e1c55026bb39f5fd:/package/libnl-tiny/src/include/netlink/object.h diff --git a/package/libnl-tiny/src/include/netlink/object.h b/package/libnl-tiny/src/include/netlink/object.h index 87385c48e..8aabe7bb1 100644 --- a/package/libnl-tiny/src/include/netlink/object.h +++ b/package/libnl-tiny/src/include/netlink/object.h @@ -35,23 +35,26 @@ struct nl_object /* 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 void nl_object_get(struct nl_object *); -extern void nl_object_put(struct nl_object *); + +#ifdef disabled + +extern int nl_object_alloc_name(const char *, + struct nl_object **); extern void nl_object_dump(struct nl_object *, struct nl_dump_params *); -extern int nl_object_identical(struct nl_object *, - struct nl_object *); + extern uint32_t nl_object_diff(struct nl_object *, struct nl_object *); extern int nl_object_match_filter(struct nl_object *, struct nl_object *); +extern int nl_object_identical(struct nl_object *, + struct nl_object *); extern char * nl_object_attrs2str(struct nl_object *, uint32_t attrs, char *buf, size_t); +#endif /** * Check whether this object is used by multiple users * @arg obj object to check @@ -63,6 +66,22 @@ static inline int nl_object_shared(struct nl_object *obj) } +static inline void nl_object_get(struct nl_object *obj) +{ + obj->ce_refcnt++; +} + +static inline void nl_object_put(struct nl_object *obj) +{ + if (!obj) + return; + + obj->ce_refcnt--; + + if (obj->ce_refcnt <= 0) + nl_object_free(obj); +} + /** * @name Marks @@ -99,6 +118,7 @@ static inline int nl_object_is_marked(struct nl_object *obj) /** @} */ +#ifdef disabled /** * Return list of attributes present in an object * @arg obj an object @@ -111,7 +131,7 @@ static inline char *nl_object_attr_list(struct nl_object *obj, char *buf, size_t { return nl_object_attrs2str(obj, obj->ce_mask, buf, len); } - +#endif /** * @name Attributes