4 Copyright (C) Amitay Isaacs 2015
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, see <http://www.gnu.org/licenses/>.
20 #ifndef __CTDB_SYSTEM_H__
21 #define __CTDB_SYSTEM_H__
25 /* From system_common.c */
27 uint32_t uint16_checksum(uint16_t *data
, size_t n
);
28 bool ctdb_sys_have_ip(ctdb_sock_addr
*_addr
);
29 char *ctdb_sys_find_ifname(ctdb_sock_addr
*addr
);
31 /* From system_<os>.c */
33 int ctdb_sys_send_arp(const ctdb_sock_addr
*addr
, const char *iface
);
34 int ctdb_sys_send_tcp(const ctdb_sock_addr
*dest
,
35 const ctdb_sock_addr
*src
,
36 uint32_t seq
, uint32_t ack
, int rst
);
37 int ctdb_sys_open_capture_socket(const char *iface
, void **private_data
);
38 int ctdb_sys_close_capture_socket(void *private_data
);
39 int ctdb_sys_read_tcp_packet(int s
, void *private_data
,
40 ctdb_sock_addr
*src
, ctdb_sock_addr
*dst
,
41 uint32_t *ack_seq
, uint32_t *seq
,
42 int *rst
, uint16_t *window
);
43 bool ctdb_sys_check_iface_exists(const char *iface
);
44 int ctdb_get_peer_pid(const int fd
, pid_t
*peer_pid
);
46 /* From system_util.c */
48 bool set_scheduler(void);
49 void reset_scheduler(void);
51 bool parse_ipv4(const char *s
, unsigned port
, struct sockaddr_in
*sin
);
52 bool parse_ip(const char *addr
, const char *ifaces
, unsigned port
,
53 ctdb_sock_addr
*saddr
);
54 bool parse_ip_mask(const char *str
, const char *ifaces
, ctdb_sock_addr
*addr
,
57 void lockdown_memory(bool valgrinding
);
59 int mkdir_p(const char *dir
, int mode
);
60 void mkdir_p_or_die(const char *dir
, int mode
);
62 void ctdb_wait_for_process_to_exit(pid_t pid
);
64 #endif /* __CTDB_SYSTEM_H__ */