#include <sys/socket.h>
#include <sys/un.h> /* needed by create_pf_socket */
#include <string.h>
+#include <assert.h>
#include "gcc-compat.h"
/** used in various contexts */
/** sent by para_client, followed by the decrypted challenge number */
#define CHALLENGE_RESPONSE_MSG "challenge_response:"
-/* gui_common */
-int para_open_audiod_pipe(char *);
-int read_audiod_pipe(int, void (*)(char *));
-
/* exec */
int para_exec_cmdline_pid(pid_t *pid, const char *cmdline, int *fds);
int stat_line_valid(const char *);
void stat_client_write(const char *msg, int itemnum);
int stat_client_add(int fd, long unsigned mask);
-size_t for_each_line(char *buf, size_t n, void (*line_handler)(char *));
#define FOR_EACH_STAT_ITEM(i) for (i = 0; i < NUM_STAT_ITEMS; i++)
__printf_2_3 void para_log(int, const char*, ...);
p = para_realloc(p, size); \
} \
}
+
+static inline int para_random(unsigned max)
+{
+ return ((max + 0.0) * (rand() / (RAND_MAX + 1.0)));
+}
+
+/** Round up x to a multiple of y */
+#define ROUND_UP(x, y) (((x) + (y - 1) / (y)) * (y))
+
+/** Get the size of an array */
+#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))