SYSINIT(9) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

SYSINIT(9)

is a mechanism for scheduling the execution of initialization and
teardown  routines.   This  is  similar to init and fini routines
with the addition of explicit ordering metadata.  It allows  run‐
time  ordering  of subsystem initialization in the kernel as well
as kernel modules (KLDs).  The macro creates a and stores it in a
startup linker set.  The type as well as the subsystem identifier
constants and initialization ordering constants  are  defined  in
struct  sysinit {         enum sysinit_sub_id subsystem;  /* sub‐
system  identifier*/          enum  sysinit_elem_order order;  /*
init    order    within    subsystem*/            sysinit_cfunc_t
func;           /*    function                */            const
void      *udata;         /* multiplexer/argument */ }; The macro
takes  a  argument  to  identify the particular function dispatch
data, the type of startup interface,  the  subsystem  element  of
initialization  within  the  subsystem, the function to call, and
the data specified in argument to pass the function.   The  macro
behaves  similarly to the macro except that it adds the data to a
shutdown linker set.  The startup linker set for  the  kernel  is
scanned during boot to build a sorted list of initialization rou‐
tines.   The  initialization  routines  are  then executed in the
sorted order.  The is used as the primary key and  is  sorted  in
ascending  order.  The is used as the secondary key and is sorted
in ascending order.  The relative order of two routines that have
the same and is undefined.  The startup linker sets  for  modules
that  are  loaded together with the kernel by the boot loader are
scanned during the subsystem initialization.  These modules' ini‐
tialization routines are sorted and merged into the kernel's list
of startup routines and are executed during boot along  with  the
kernel's  initialization routines.  Note that this has the effect
that any initialization routines in  a  kernel  module  that  are
scheduled  earlier than are not executed until after during boot.
The startup linker set for a kernel module loaded at runtime  via
is  scanned, sorted, and executed when the module is loaded.  The
shutdown linker set for a kernel module is scanned,  sorted,  and
executed when a kernel module is unloaded.  The teardown routines
are  sorted  in the reverse order of the initialization routines.
The teardown routines of the kernel and any  loaded  modules  are
executed  during  shutdown.  This example shows the SYSINIT which
displays  the  copyright  notice   during   boot:   static   void
print_caddr_t(void *data) {         printf("%s", (char *)data); }
SYSINIT(announce,        SI_SUB_COPYRIGHT,        SI_ORDER_FIRST,
print_caddr_t,
    copyright); The framework first appeared in The framework was
written by This manual page was written by






















맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3