cpuworker.h File Reference

Go to the source code of this file.


void cpu_init (void)
void cpuworkers_rotate_keyinfo (void)
 MOCK_DECL (struct workqueue_entry_s *, cpuworker_queue_work,(enum workqueue_priority_t priority, enum workqueue_reply_t(*fn)(void *, void *), void(*reply_fn)(void *), void *arg))
int assign_onionskin_to_cpuworker (or_circuit_t *circ, struct create_cell_t *onionskin)
uint64_t estimated_usec_for_onionskins (uint32_t n_requests, uint16_t onionskin_type)
void cpuworker_log_onionskin_overhead (int severity, int onionskin_type, const char *onionskin_type_name)
void cpuworker_cancel_circ_handshake (or_circuit_t *circ)

Detailed Description

Header file for cpuworker.c.

Definition in file cpuworker.h.

Function Documentation

◆ assign_onionskin_to_cpuworker()

int assign_onionskin_to_cpuworker ( or_circuit_t circ,
create_cell_t onionskin 

Try to tell a cpuworker to perform the public key operations necessary to respond to onionskin for the circuit circ.

Return 0 if we successfully assign the task, or -1 on failure.

Definition at line 516 of file cpuworker.c.

References tor_assert().

◆ cpu_init()

void cpu_init ( void  )

Initialize the cpuworker subsystem. It is OK to call this more than once during Tor's lifetime.

Definition at line 86 of file cpuworker.c.

◆ cpuworker_cancel_circ_handshake()

void cpuworker_cancel_circ_handshake ( or_circuit_t circ)

If circ has a pending handshake that hasn't been processed yet, remove it from the worker queue.

Definition at line 584 of file cpuworker.c.

References memwipe(), tor_assert(), tor_free, or_circuit_t::workqueue_entry, and workqueue_entry_cancel().

Referenced by onion_pending_remove().

◆ cpuworker_log_onionskin_overhead()

void cpuworker_log_onionskin_overhead ( int  severity,
int  onionskin_type,
const char *  onionskin_type_name 

If we've measured overhead for onionskins of type onionskin_type, log it.

Definition at line 295 of file cpuworker.c.

References get_overhead_for_onionskins(), LD_OR, and log_fn.

◆ cpuworkers_rotate_keyinfo()

void cpuworkers_rotate_keyinfo ( void  )

Called when the onion key has changed so update all CPU worker(s) with new function pointers with which a new state will be generated.

Definition at line 192 of file cpuworker.c.

◆ estimated_usec_for_onionskins()

uint64_t estimated_usec_for_onionskins ( uint32_t  n_requests,
uint16_t  onionskin_type 

Return an estimate of how many microseconds we will need for a single cpuworker to process n_requests onionskins of type onionskin_type.

Definition at line 247 of file cpuworker.c.