libnl 1.1.4
class-modules.h
1/*
2 * netlink/route/class-modules.h Class Module API
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-2006 Thomas Graf <tgraf@suug.ch>
10 */
11
12#ifndef NETLINK_CLASS_MODULES_H_
13#define NETLINK_CLASS_MODULES_H_
14
15#include <netlink/netlink.h>
16
17#ifdef __cplusplus
18extern "C" {
19#endif
20
21/**
22 * Class operations
23 * @ingroup class_api
24 */
26{
27 /**
28 * Kind/Name of class
29 */
30 char co_kind[32];
31
32 /**
33 * Dump callbacks
34 */
35 int (*co_dump[NL_DUMP_MAX+1])(struct rtnl_class *,
36 struct nl_dump_params *, int);
37
38 /**
39 * Must return the contents supposed to be in TCA_OPTIONS
40 */
41 struct nl_msg *(*co_get_opts)(struct rtnl_class *);
42
43 /**
44 * TCA_OPTIONS message parser
45 */
46 int (*co_msg_parser)(struct rtnl_class *);
47
48 /**
49 * Called before a class object gets destroyed
50 */
51 void (*co_free_data)(struct rtnl_class *);
52
53 /**
54 * Called whenever a class object needs to be cloned
55 */
56 int (*co_clone)(struct rtnl_class *, struct rtnl_class *);
57
58 /**
59 * INTERNAL (Do not use)
60 */
62};
63
64extern int rtnl_class_register(struct rtnl_class_ops *);
65extern int rtnl_class_unregister(struct rtnl_class_ops *);
66extern struct rtnl_class_ops * rtnl_class_lookup_ops(struct rtnl_class *);
67extern struct rtnl_class_ops * __rtnl_class_lookup_ops(const char *);
68
69#ifdef __cplusplus
70}
71#endif
72
73#endif
int rtnl_class_unregister(struct rtnl_class_ops *)
Unregister a class module.
Definition: class_api.c:58
int rtnl_class_register(struct rtnl_class_ops *)
Register a class module.
Definition: class_api.c:37
struct rtnl_class_ops * rtnl_class_lookup_ops(struct rtnl_class *)
Lookup class operations for a class object.
Definition: class_api.c:91
Dumping parameters.
Definition: types.h:37
Class operations.
Definition: class-modules.h:26
void(* co_free_data)(struct rtnl_class *)
Called before a class object gets destroyed.
Definition: class-modules.h:51
int(* co_msg_parser)(struct rtnl_class *)
TCA_OPTIONS message parser.
Definition: class-modules.h:46
char co_kind[32]
Kind/Name of class.
Definition: class-modules.h:30
int(* co_dump[NL_DUMP_MAX+1])(struct rtnl_class *, struct nl_dump_params *, int)
Dump callbacks.
Definition: class-modules.h:35
int(* co_clone)(struct rtnl_class *, struct rtnl_class *)
Called whenever a class object needs to be cloned.
Definition: class-modules.h:56
struct rtnl_class_ops * co_next
INTERNAL (Do not use)
Definition: class-modules.h:61