12#ifndef TOR_CPUWORKER_H
13#define TOR_CPUWORKER_H
26 void (*reply_fn)(
void *),
34 uint16_t onionskin_type);
36 const char *onionskin_type_name);
void cpuworker_cancel_circ_handshake(or_circuit_t *circ)
int assign_onionskin_to_cpuworker(or_circuit_t *circ, struct create_cell_t *onionskin)
void cpuworker_init(void)
unsigned int cpuworker_get_n_threads(void)
void cpuworker_consensus_has_changed(const networkstatus_t *ns)
void cpuworker_log_onionskin_overhead(int severity, int onionskin_type, const char *onionskin_type_name)
struct workqueue_entry_t * cpuworker_queue_work(enum workqueue_priority_t priority, enum workqueue_reply_t(*fn)(void *, void *), void(*reply_fn)(void *), void *arg)
void cpuworkers_rotate_keyinfo(void)
uint64_t estimated_usec_for_onionskins(uint32_t n_requests, uint16_t onionskin_type)
uint8_t onionskin[CELL_PAYLOAD_SIZE - 4]
#define MOCK_DECL(rv, funcname, arglist)