X-Git-Url: http://git.onelab.eu/?p=libnl.git;a=blobdiff_plain;f=include%2Fnetlink%2Froute%2Fclass-modules.h;fp=include%2Fnetlink%2Froute%2Fclass-modules.h;h=b524a6cbb7885bc382ea36ea725840dc428b4ac7;hp=0000000000000000000000000000000000000000;hb=4cee2ecb3b8afa0637e6f5fe4c57985a4bc740ff;hpb=2df2fbe518d5a221ce6e3ee88a3fb23fb1b94b27 diff --git a/include/netlink/route/class-modules.h b/include/netlink/route/class-modules.h new file mode 100644 index 0000000..b524a6c --- /dev/null +++ b/include/netlink/route/class-modules.h @@ -0,0 +1,58 @@ +/* + * netlink/route/class-modules.h Class Module API + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation version 2.1 + * of the License. + * + * Copyright (c) 2003-2006 Thomas Graf + */ + +#ifndef NETLINK_CLASS_MODULES_H_ +#define NETLINK_CLASS_MODULES_H_ + +#include + +/** + * Class operations + * @ingroup class + */ +struct rtnl_class_ops +{ + /** + * Kind/Name of class + */ + char co_kind[32]; + + /** + * Dump callbacks + */ + int (*co_dump[NL_DUMP_MAX+1])(struct rtnl_class *, + struct nl_dump_params *, int); + + /** + * Must return the contents supposed to be in TCA_OPTIONS + */ + struct nl_msg *(*co_get_opts)(struct rtnl_class *); + + /** + * TCA_OPTIONS message parser + */ + int (*co_msg_parser)(struct rtnl_class *); + + /** + * Called before a class object gets destroyed + */ + void (*co_free_data)(struct rtnl_class *); + + /** + * INTERNAL (Do not use) + */ + struct rtnl_class_ops *co_next; +}; + +extern int rtnl_class_register(struct rtnl_class_ops *); +extern int rtnl_class_unregister(struct rtnl_class_ops *); + +#endif