diff options
Diffstat (limited to 'ot_mutex.h')
-rw-r--r-- | ot_mutex.h | 113 |
1 files changed, 59 insertions, 54 deletions
@@ -7,69 +7,74 @@ | |||
7 | #define OT_MUTEX_H__ | 7 | #define OT_MUTEX_H__ |
8 | 8 | ||
9 | #include <sys/uio.h> | 9 | #include <sys/uio.h> |
10 | #include "trackerlogic.h" | ||
10 | 11 | ||
11 | void mutex_init( ); | 12 | void mutex_init(void); |
12 | void mutex_deinit( ); | 13 | void mutex_deinit(void); |
13 | 14 | ||
14 | ot_vector *mutex_bucket_lock( int bucket ); | 15 | ot_vector *mutex_bucket_lock(int bucket); |
15 | ot_vector *mutex_bucket_lock_by_hash( ot_hash hash ); | 16 | ot_vector *mutex_bucket_lock_by_hash(ot_hash const hash); |
16 | 17 | ||
17 | void mutex_bucket_unlock( int bucket, int delta_torrentcount ); | 18 | void mutex_bucket_unlock(int bucket, int delta_torrentcount); |
18 | void mutex_bucket_unlock_by_hash( ot_hash hash, int delta_torrentcount ); | 19 | void mutex_bucket_unlock_by_hash(ot_hash const hash, int delta_torrentcount); |
19 | 20 | ||
20 | size_t mutex_get_torrent_count(); | 21 | size_t mutex_get_torrent_count(void); |
21 | 22 | ||
22 | typedef enum { | 23 | typedef enum { |
23 | TASK_STATS_CONNS = 0x0001, | 24 | TASK_STATS_CONNS = 0x0001, |
24 | TASK_STATS_TCP = 0x0002, | 25 | TASK_STATS_TCP = 0x0002, |
25 | TASK_STATS_UDP = 0x0003, | 26 | TASK_STATS_UDP = 0x0003, |
26 | TASK_STATS_SCRAPE = 0x0004, | 27 | TASK_STATS_SCRAPE = 0x0004, |
27 | TASK_STATS_FULLSCRAPE = 0x0005, | 28 | TASK_STATS_FULLSCRAPE = 0x0005, |
28 | TASK_STATS_TPB = 0x0006, | 29 | TASK_STATS_TPB = 0x0006, |
29 | TASK_STATS_HTTPERRORS = 0x0007, | 30 | TASK_STATS_HTTPERRORS = 0x0007, |
30 | TASK_STATS_VERSION = 0x0008, | 31 | TASK_STATS_VERSION = 0x0008, |
31 | TASK_STATS_BUSY_NETWORKS = 0x0009, | 32 | TASK_STATS_BUSY_NETWORKS = 0x0009, |
32 | TASK_STATS_RENEW = 0x000a, | 33 | TASK_STATS_RENEW = 0x000a, |
33 | TASK_STATS_SYNCS = 0x000b, | 34 | TASK_STATS_SYNCS = 0x000b, |
34 | TASK_STATS_COMPLETED = 0x000c, | 35 | TASK_STATS_COMPLETED = 0x000c, |
35 | TASK_STATS_NUMWANTS = 0x000d, | 36 | TASK_STATS_NUMWANTS = 0x000d, |
36 | 37 | ||
37 | TASK_STATS = 0x0100, /* Mask */ | 38 | TASK_STATS = 0x0100, /* Mask */ |
38 | TASK_STATS_TORRENTS = 0x0101, | 39 | TASK_STATS_TORRENTS = 0x0101, |
39 | TASK_STATS_PEERS = 0x0102, | 40 | TASK_STATS_PEERS = 0x0102, |
40 | TASK_STATS_SLASH24S = 0x0103, | 41 | TASK_STATS_SLASH24S = 0x0103, |
41 | TASK_STATS_TOP10 = 0x0104, | 42 | TASK_STATS_TOP10 = 0x0104, |
42 | TASK_STATS_TOP100 = 0x0105, | 43 | TASK_STATS_TOP100 = 0x0105, |
43 | TASK_STATS_EVERYTHING = 0x0106, | 44 | TASK_STATS_EVERYTHING = 0x0106, |
44 | TASK_STATS_FULLLOG = 0x0107, | 45 | TASK_STATS_FULLLOG = 0x0107, |
45 | TASK_STATS_WOODPECKERS = 0x0108, | 46 | TASK_STATS_WOODPECKERS = 0x0108, |
46 | 47 | ||
47 | TASK_FULLSCRAPE = 0x0200, /* Default mode */ | 48 | TASK_FULLSCRAPE = 0x0200, /* Default mode */ |
48 | TASK_FULLSCRAPE_TPB_BINARY = 0x0201, | 49 | TASK_FULLSCRAPE_TPB_BINARY = 0x0201, |
49 | TASK_FULLSCRAPE_TPB_ASCII = 0x0202, | 50 | TASK_FULLSCRAPE_TPB_ASCII = 0x0202, |
50 | TASK_FULLSCRAPE_TPB_ASCII_PLUS = 0x0203, | 51 | TASK_FULLSCRAPE_TPB_ASCII_PLUS = 0x0203, |
51 | TASK_FULLSCRAPE_TPB_URLENCODED = 0x0204, | 52 | TASK_FULLSCRAPE_TPB_URLENCODED = 0x0204, |
52 | TASK_FULLSCRAPE_TRACKERSTATE = 0x0205, | 53 | TASK_FULLSCRAPE_TRACKERSTATE = 0x0205, |
53 | 54 | ||
54 | TASK_DMEM = 0x0300, | 55 | TASK_DMEM = 0x0300, |
55 | 56 | ||
56 | TASK_DONE = 0x0f00, | 57 | TASK_DONE = 0x0f00, |
57 | 58 | TASK_DONE_PARTIAL = 0x0f01, | |
58 | TASK_FLAG_GZIP = 0x1000, | 59 | |
59 | TASK_FLAG_BZIP2 = 0x2000, | 60 | TASK_FLAG_GZIP = 0x1000, |
60 | 61 | TASK_FLAG_BZIP2 = 0x2000, | |
61 | TASK_TASK_MASK = 0x0fff, | 62 | TASK_FLAG_ZSTD = 0x4000, |
62 | TASK_CLASS_MASK = 0x0f00, | 63 | TASK_FLAG_CHUNKED = 0x8000, |
63 | TASK_FLAGS_MASK = 0xf000 | 64 | |
65 | TASK_TASK_MASK = 0x0fff, | ||
66 | TASK_CLASS_MASK = 0x0f00, | ||
67 | TASK_FLAGS_MASK = 0xf000 | ||
64 | } ot_tasktype; | 68 | } ot_tasktype; |
65 | 69 | ||
66 | typedef unsigned long ot_taskid; | 70 | typedef unsigned long ot_taskid; |
67 | 71 | ||
68 | int mutex_workqueue_pushtask( int64 sock, ot_tasktype tasktype ); | 72 | int mutex_workqueue_pushtask(int64 sock, ot_tasktype tasktype); |
69 | void mutex_workqueue_canceltask( int64 sock ); | 73 | void mutex_workqueue_canceltask(int64 sock); |
70 | void mutex_workqueue_pushsuccess( ot_taskid taskid ); | 74 | void mutex_workqueue_pushsuccess(ot_taskid taskid); |
71 | ot_taskid mutex_workqueue_poptask( ot_tasktype *tasktype ); | 75 | ot_taskid mutex_workqueue_poptask(ot_tasktype *tasktype); |
72 | int mutex_workqueue_pushresult( ot_taskid taskid, int iovec_entries, struct iovec *iovector ); | 76 | int mutex_workqueue_pushresult(ot_taskid taskid, int iovec_entries, struct iovec *iovector); |
73 | int64 mutex_workqueue_popresult( int *iovec_entries, struct iovec ** iovector ); | 77 | int mutex_workqueue_pushchunked(ot_taskid taskid, struct iovec *iovec); |
78 | int64 mutex_workqueue_popresult(int *iovec_entries, struct iovec **iovector, int *is_partial); | ||
74 | 79 | ||
75 | #endif | 80 | #endif |