File: tsnetwork_internal.h

package info (click to toggle)
tarsnap 1.0.41-3
  • links: PTS, VCS
  • area: non-free
  • in suites: forky, sid
  • size: 3,712 kB
  • sloc: ansic: 50,148; sh: 1,025; makefile: 684; python: 661; awk: 345
file content (62 lines) | stat: -rw-r--r-- 1,451 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#ifndef NETWORK_INTERNAL_H_
#define NETWORK_INTERNAL_H_

/* Macros for handling struct timeval values. */
#define tv_lt(a, b)				\
	(((a)->tv_sec < (b)->tv_sec) ||		\
	    (((a)->tv_sec == (b)->tv_sec) &&	\
		((a)->tv_usec < (b)->tv_usec)))
#define tv_add(a, b)	do {			\
	(a)->tv_sec += (b)->tv_sec;		\
	(a)->tv_usec += (b)->tv_usec;		\
	if ((a)->tv_usec >= 1000000) {		\
		(a)->tv_usec -= 1000000;	\
		(a)->tv_sec += 1;		\
	}					\
} while (0)
#define tv_sub(a, b)	do {			\
	(a)->tv_sec -= (b)->tv_sec;		\
	(a)->tv_usec -= (b)->tv_usec;		\
	if ((a)->tv_usec < 0) {			\
		(a)->tv_usec += 1000000;	\
		(a)->tv_sec -= 1;		\
	}					\
} while (0)

/**
 * network_register_suspend(op):
 * Suspend ${op} operations, on all file descriptors.
 */
int network_register_suspend(int);

/**
 * network_register_resume(op):
 * Resume pending ${op} operations, on all file descriptors.
 */
int network_register_resume(int);

/**
 * network_register_fini(void):
 * Free resources allocated.
 */
void network_register_fini(void);

/**
 * network_sleep_fini(void):
 * Free resources allocated.
 */
void network_sleep_fini(void);

/**
 * network_bwlimit_get(op, len):
 * Get the amount of instantaneously allowed bandwidth for ${op} operations.
 */
int network_bwlimit_get(int, size_t *);

/**
 * network_bwlimit_eat(op, len):
 * Consume ${len} bytes of bandwidth quota for ${op} operations.
 */
int network_bwlimit_eat(int, size_t);

#endif /* !NETWORK_INTERNAL_H_ */