cpuworker.h (1423B)
1 /* Copyright (c) 2001 Matej Pfajfar. 2 * Copyright (c) 2001-2004, Roger Dingledine. 3 * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. 4 * Copyright (c) 2007-2024, The Tor Project, Inc. */ 5 /* See LICENSE for licensing information */ 6 7 /** 8 * \file cpuworker.h 9 * \brief Header file for cpuworker.c. 10 **/ 11 12 #ifndef TOR_CPUWORKER_H 13 #define TOR_CPUWORKER_H 14 15 int cpuworker_init(void); 16 void cpuworker_free_all(void); 17 void cpuworkers_rotate_keyinfo(void); 18 19 void cpuworker_consensus_has_changed(const networkstatus_t *ns); 20 21 struct workqueue_entry_t; 22 enum workqueue_reply_t; 23 enum workqueue_priority_t; 24 MOCK_DECL(struct workqueue_entry_t *, cpuworker_queue_work, ( 25 enum workqueue_priority_t priority, 26 enum workqueue_reply_t (*fn)(void *, void *), 27 void (*reply_fn)(void *), 28 void *arg)); 29 30 struct create_cell_t; 31 int assign_onionskin_to_cpuworker(or_circuit_t *circ, 32 struct create_cell_t *onionskin); 33 34 uint64_t estimated_usec_for_onionskins(uint32_t n_requests, 35 uint16_t onionskin_type); 36 void cpuworker_log_onionskin_overhead(int severity, int onionskin_type, 37 const char *onionskin_type_name); 38 void cpuworker_cancel_circ_handshake(or_circuit_t *circ); 39 40 unsigned int cpuworker_get_n_threads(void); 41 42 #endif /* !defined(TOR_CPUWORKER_H) */