family.h

00001 /*
00002  * netlink/genl/family.h        Generic Netlink Family
00003  *
00004  *      This library is free software; you can redistribute it and/or
00005  *      modify it under the terms of the GNU Lesser General Public
00006  *      License as published by the Free Software Foundation version 2.1
00007  *      of the License.
00008  *
00009  * Copyright (c) 2003-2006 Thomas Graf <tgraf@suug.ch>
00010  */
00011 
00012 #ifndef NETLINK_GENL_FAMILY_H_
00013 #define NETLINK_GENL_FAMILY_H_
00014 
00015 #include <netlink/netlink.h>
00016 #include <netlink/cache.h>
00017 
00018 #ifdef __cplusplus
00019 extern "C" {
00020 #endif
00021 
00022 struct genl_family;
00023 
00024 extern struct genl_family *     genl_family_alloc(void);
00025 extern void                     genl_family_put(struct genl_family *);
00026 
00027 extern unsigned int             genl_family_get_id(struct genl_family *);
00028 extern void                     genl_family_set_id(struct genl_family *,
00029                                                    unsigned int);
00030 extern char *                   genl_family_get_name(struct genl_family *);
00031 extern void                     genl_family_set_name(struct genl_family *,
00032                                                      const char *name);
00033 extern uint8_t                  genl_family_get_version(struct genl_family *);
00034 extern void                     genl_family_set_version(struct genl_family *,
00035                                                         uint8_t);
00036 extern uint32_t                 genl_family_get_hdrsize(struct genl_family *);
00037 extern void                     genl_family_set_hdrsize(struct genl_family *,
00038                                                         uint32_t);
00039 extern uint32_t                 genl_family_get_maxattr(struct genl_family *);
00040 extern void                     genl_family_set_maxattr(struct genl_family *,
00041                                                         uint32_t);
00042 
00043 extern int                      genl_family_add_op(struct genl_family *,
00044                                                    int, int);
00045 extern int                      genl_family_add_grp(struct genl_family *,
00046                                         uint32_t , const char *);
00047 
00048 
00049 #ifdef __cplusplus
00050 }
00051 #endif
00052 
00053 #endif