iosched: break out io scheduling functions from xutils
[netsniff-ng.git] / xutils.h
blobca1a8c538eba043a888d60906f2a1655323e7b1e
1 /*
2 * netsniff-ng - the packet sniffing beast
3 * Copyright 2009, 2010 Daniel Borkmann.
4 * Copyright 2009, 2010 Emmanuel Roullit.
5 * Subject to the GPL, version 2.
6 */
8 #ifndef XSYS_H
9 #define XSYS_H
11 #define _GNU_SOURCE
12 #include <errno.h>
13 #include <stdint.h>
14 #include <sys/socket.h>
15 #include <unistd.h>
16 #include <linux/ethtool.h>
17 #include <linux/if.h>
18 #include <linux/wireless.h>
19 #include <poll.h>
20 #include <sys/poll.h>
21 #include <sched.h>
22 #include <stdbool.h>
23 #include <sys/resource.h>
24 #include <sys/time.h>
26 #include "built_in.h"
28 extern int af_socket(int af);
29 extern int pf_socket(void);
30 extern int wireless_sigqual(const char *ifname, struct iw_statistics *stats);
31 extern int wireless_rangemax_sigqual(const char *ifname);
32 extern u32 wireless_bitrate(const char *ifname);
33 extern u32 ethtool_bitrate(const char *ifname);
34 extern u32 device_bitrate(const char *ifname);
35 extern int ethtool_drvinf(const char *ifname, struct ethtool_drvinfo *drvinf);
36 extern int ethtool_link(const char *ifname);
37 extern int device_mtu(const char *ifname);
38 extern int device_address(const char *ifname, int af, struct sockaddr_storage *ss);
39 extern int device_ifindex(const char *ifname);
40 extern short device_get_flags(const char *ifname);
41 extern void device_set_flags(const char *ifname, const short flags);
42 extern void drop_privileges(bool enforce, uid_t uid, gid_t gid);
43 extern void xlockme(void);
44 extern void xunlockme(void);
45 extern void set_nonblocking(int fd);
46 extern int set_nonblocking_sloppy(int fd);
47 extern int set_reuseaddr(int fd);
48 extern void set_sock_prio(int fd, int prio);
49 extern void set_tcp_cork(int fd);
50 extern void set_tcp_uncork(int fd);
51 extern void set_udp_cork(int fd);
52 extern void set_udp_uncork(int fd);
53 extern void set_sock_cork(int fd, int udp);
54 extern void set_sock_uncork(int fd, int udp);
55 extern void set_tcp_nodelay(int fd);
56 extern void set_socket_keepalive(int fd);
57 extern int set_ipv6_only(int fd);
58 extern void set_mtu_disc_dont(int fd);
59 extern int get_system_socket_mem(int which);
60 extern void set_system_socket_mem(int which, int val);
61 extern void register_signal(int signal, void (*handler)(int));
62 extern void register_signal_f(int signal, void (*handler)(int), int flags);
63 extern short enter_promiscuous_mode(char *ifname);
64 extern void leave_promiscuous_mode(char *ifname, short oldflags);
65 extern int device_up_and_running(char *ifname);
66 extern void set_epoll_descriptor(int fd_epoll, int action, int fd_toadd, int events);
67 extern int set_epoll_descriptor2(int fd_epoll, int action, int fd_toadd, int events);
68 extern void cpu_affinity(int cpu);
69 extern int set_cpu_affinity(char *str, int inverted);
70 extern int set_proc_prio(int prio);
71 extern int set_sched_status(int policy, int priority);
72 extern size_t strlcpy(char *dest, const char *src, size_t size);
73 extern int slprintf(char *dst, size_t size, const char *fmt, ...) __check_format_printf(3, 4);
74 extern int slprintf_nocheck(char *dst, size_t size, const char *fmt, ...);
75 extern noinline void *xmemset(void *s, int c, size_t n);
76 extern char *strtrim_right(char *p, char c);
77 extern int get_default_sched_policy(void);
78 extern int get_default_sched_prio(void);
79 extern int get_number_cpus(void);
80 extern int get_number_cpus_online(void);
81 extern int get_default_proc_prio(void);
82 extern void set_system_socket_memory(int *vals, size_t len);
83 extern void reset_system_socket_memory(int *vals, size_t len);
84 extern void set_itimer_interval_value(struct itimerval *itimer, unsigned long sec,
85 unsigned long usec);
87 #endif /* XSYS_H */