mirror of
https://github.com/ipxe/ipxe
synced 2025-12-22 13:00:39 +03:00
Use a linker-table based system to automatically mark and start up
permanent processes, rather than requiring each one to have its own initialisation function.
This commit is contained in:
@@ -30,6 +30,12 @@
|
||||
/** Process run queue */
|
||||
static LIST_HEAD ( run_queue );
|
||||
|
||||
/** Registered permanent processes */
|
||||
static struct process processes[0]
|
||||
__table_start ( struct process, processes );
|
||||
static struct process processes_end[0]
|
||||
__table_end ( struct process, processes );
|
||||
|
||||
/**
|
||||
* Add process to process list
|
||||
*
|
||||
@@ -72,3 +78,15 @@ void step ( void ) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialise processes
|
||||
*
|
||||
*/
|
||||
void init_processes ( void ) {
|
||||
struct process *process;
|
||||
|
||||
for ( process = processes ; process < processes_end ; process++ ) {
|
||||
process_add ( process );
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user