libcortex
Event loop library following a "batteries included" approach
Loading...
Searching...
No Matches
netlink_raw.h
1#ifndef _CRTX_NETLINK_RAW
2#define _CRTX_NETLINK_RAW
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
8/*
9 * Mario Kicherer (dev@kicherer.org) 2016
10 *
11 */
12
13#include <sys/socket.h>
14#include <linux/netlink.h>
15
16#include "core.h"
17
19 struct crtx_listener_base base;
20
21 int socket_protocol;
22
23 sa_family_t nl_family;
24 uint32_t nl_groups;
25
26 int (*read_cb)(struct crtx_netlink_raw_listener *nl_listener, int fd, void *userdata);
27 void *read_cb_userdata;
28
29 int (*message_callback)(struct nlmsghdr *nlmsghdr, size_t nlmsgsize, void *message_callback_data);
30 void *message_callback_data;
31 uint16_t *message_types; // filter nlmsg types
32
33 int fd;
34 char stop;
35};
36
37struct crtx_listener_base *crtx_setup_netlink_raw_listener(void *options);
38CRTX_DECLARE_ALLOC_FUNCTION(netlink_raw)
39
40void crtx_netlink_raw_init();
41void crtx_netlink_raw_finish();
42
43#ifdef __cplusplus
44}
45#endif
46
47#endif
The core definitions of libcortex.
base structure of a listener
Definition core.h:186