~ubuntu-branches/ubuntu/trusty/libnl3/trusty

« back to all changes in this revision

Viewing changes to include/netlink/object.h

  • Committer: Bazaar Package Importer
  • Author(s): Heiko Stuebner
  • Date: 2011-05-21 19:25:13 UTC
  • Revision ID: james.westby@ubuntu.com-20110521192513-1ieyu9w9kym4bt16
Tags: upstream-3.0
ImportĀ upstreamĀ versionĀ 3.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * netlink/object.c     Generic Cacheable Object
 
3
 *
 
4
 *      This library is free software; you can redistribute it and/or
 
5
 *      modify it under the terms of the GNU Lesser General Public
 
6
 *      License as published by the Free Software Foundation version 2.1
 
7
 *      of the License.
 
8
 *
 
9
 * Copyright (c) 2003-2008 Thomas Graf <tgraf@suug.ch>
 
10
 */
 
11
 
 
12
#ifndef NETLINK_OBJECT_H_
 
13
#define NETLINK_OBJECT_H_
 
14
 
 
15
#include <netlink/netlink.h>
 
16
#include <netlink/utils.h>
 
17
 
 
18
#ifdef __cplusplus
 
19
extern "C" {
 
20
#endif
 
21
 
 
22
struct nl_cache;
 
23
struct nl_object;
 
24
struct nl_object_ops;
 
25
 
 
26
#define OBJ_CAST(ptr)           ((struct nl_object *) (ptr))
 
27
 
 
28
/* General */
 
29
extern struct nl_object *       nl_object_alloc(struct nl_object_ops *);
 
30
extern int                      nl_object_alloc_name(const char *,
 
31
                                                     struct nl_object **);
 
32
extern void                     nl_object_free(struct nl_object *);
 
33
extern struct nl_object *       nl_object_clone(struct nl_object *obj);
 
34
extern void                     nl_object_get(struct nl_object *);
 
35
extern void                     nl_object_put(struct nl_object *);
 
36
extern int                      nl_object_shared(struct nl_object *);
 
37
extern void                     nl_object_dump(struct nl_object *,
 
38
                                               struct nl_dump_params *);
 
39
extern int                      nl_object_identical(struct nl_object *,
 
40
                                                    struct nl_object *);
 
41
extern uint32_t                 nl_object_diff(struct nl_object *,
 
42
                                               struct nl_object *);
 
43
extern int                      nl_object_match_filter(struct nl_object *,
 
44
                                                       struct nl_object *);
 
45
extern char *                   nl_object_attrs2str(struct nl_object *,
 
46
                                                    uint32_t attrs, char *buf,
 
47
                                                    size_t);
 
48
extern char *                   nl_object_attr_list(struct nl_object *,
 
49
                                                    char *, size_t);
 
50
 
 
51
/* Marks */
 
52
extern void                     nl_object_mark(struct nl_object *);
 
53
extern void                     nl_object_unmark(struct nl_object *);
 
54
extern int                      nl_object_is_marked(struct nl_object *);
 
55
 
 
56
/* Access Functions */
 
57
extern int                      nl_object_get_refcnt(struct nl_object *);
 
58
extern struct nl_cache *        nl_object_get_cache(struct nl_object *);
 
59
static inline void *            nl_object_priv(struct nl_object *obj)
 
60
{
 
61
        return obj;
 
62
}
 
63
 
 
64
 
 
65
#ifdef __cplusplus
 
66
}
 
67
#endif
 
68
 
 
69
#endif