iPXE
|
Processes. More...
Go to the source code of this file.
Functions | |
FILE_LICENCE (GPL2_OR_LATER_OR_UBDL) | |
static | LIST_HEAD (run_queue) |
Process run queue. More... | |
void * | process_object (struct process *process) |
Get pointer to object containing process. More... | |
void | process_add (struct process *process) |
Add process to process list. More... | |
void | process_del (struct process *process) |
Remove process from process list. More... | |
void | step (void) |
Single-step a single process. More... | |
static void | init_processes (void) |
Initialise processes. More... | |
struct init_fn process_init_fn | __init_fn (INIT_NORMAL) |
Process initialiser. More... | |
Processes.
We implement a trivial form of cooperative multitasking, in which all processes share a single stack and address space.
Definition in file process.c.
FILE_LICENCE | ( | GPL2_OR_LATER_OR_UBDL | ) |
|
static |
Process run queue.
void* process_object | ( | struct process * | process | ) |
Get pointer to object containing process.
process | Process |
object | Containing object |
Definition at line 47 of file process.c.
References process::desc, and process_descriptor::offset.
Referenced by step().
void process_add | ( | struct process * | process | ) |
Add process to process list.
process | Process |
It is safe to call process_add() multiple times; further calls will have no effect.
Definition at line 59 of file process.c.
References DBGC, process::list, list_add_tail, PROC_COL, PROC_DBG, PROC_FMT, process_running(), ref_get, and process::refcnt.
Referenced by efi_local_open(), efi_pxe_udp_schedule_close(), fc_els_request(), fcpcmd_start_send(), gve_restart(), gve_startup(), http_reopen(), hub_complete(), hub_open(), ib_cmrc_close(), imux_probe(), init_processes(), iscsi_tx_resume(), net80211_autoassociate(), peerblk_dequeue(), peerblk_enqueue(), peerblk_retrieval_close(), peerblk_step(), peermux_block_close(), peermux_info_close(), process_init(), sanpath_open(), scsidev_ready(), tcp_close(), tcp_rx(), tls_tx_resume(), usbblk_in_complete(), usbblk_out_complete(), usbblk_start(), validator_xfer_close(), and xcm_reopen().
void process_del | ( | struct process * | process | ) |
Remove process from process list.
process | Process |
It is safe to call process_del() multiple times; further calls will have no effect.
Definition at line 79 of file process.c.
References DBGC, INIT_LIST_HEAD, process::list, list_del, PROC_COL, PROC_DBG, PROC_FMT, process_running(), ref_put, and process::refcnt.
Referenced by efi_local_close(), efi_pxe_udp_close(), efi_pxe_udp_open(), fc_els_close(), fc_ns_query_close(), fcpcmd_stop_send(), gve_close(), http_close(), hub_close(), hub_refill(), hw_finished(), ib_cmrc_shutdown(), imux_shutdown(), iscsi_close(), iscsi_tx_pause(), net80211_netdev_close(), net80211_step_associate(), peerblk_reset(), peermux_close(), peermux_step(), sanpath_close(), scsidev_close(), step(), tcp_close(), tls_close(), usbblk_stop(), validator_finished(), xcm_close(), xcm_destroy(), and xcm_reopen().
void step | ( | void | ) |
Single-step a single process.
This executes a single step of the first process in the run queue, and moves the process to the end of the run queue.
Definition at line 98 of file process.c.
References DBGC2, desc, process::desc, process::list, list_add_tail, list_del, list_first_entry, PROC_COL, PROC_DBG, PROC_FMT, process_del(), process_object(), ref_get, ref_put, and process::refcnt.
Referenced by ath5k_hw_rf_check_gainf_readback(), ath5k_hw_rf_gainf_corr(), comboot_resolv(), efi_download_poll(), efi_ifr_numeric_op(), efi_pxe_dhcp(), efi_pxe_mtftp(), efi_pxe_udp_read(), gdbmach_set_single_step(), getchar(), getchar_timeout(), int22(), iwlist(), md4_digest(), md5_digest(), monojob_wait(), open(), pxenv_tftp_get_fsize(), pxenv_tftp_open(), pxenv_tftp_read(), pxenv_tftp_read_file(), pxenv_udp_read(), read_user(), sandev_command(), sandev_describe(), sandev_reopen(), select(), sha1_digest(), sleep_interruptible(), spi_bit_transfer(), tcp_shutdown(), x25519_ladder(), and x25519_step().
|
static |
Initialise processes.
Definition at line 127 of file process.c.
References for_each_table_entry, PERMANENT_PROCESSES, and process_add().
struct init_fn process_init_fn __init_fn | ( | INIT_NORMAL | ) |
Process initialiser.