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_ */
|