libnl
1.1
Main Page
Modules
Data Structures
Files
File List
include
netlink
route
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
18
extern
"C"
{
19
#endif
20
21
/**
22
* Class operations
23
* @ingroup class_api
24
*/
25
struct
rtnl_class_ops
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
*/
61
struct
rtnl_class_ops
*
co_next
;
62
};
63
64
extern
int
rtnl_class_register
(
struct
rtnl_class_ops
*);
65
extern
int
rtnl_class_unregister
(
struct
rtnl_class_ops
*);
66
extern
struct
rtnl_class_ops
*
rtnl_class_lookup_ops
(
struct
rtnl_class *);
67
extern
struct
rtnl_class_ops
* __rtnl_class_lookup_ops(
const
char
*);
68
69
#ifdef __cplusplus
70
}
71
#endif
72
73
#endif
Generated by
1.8.1.1