aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/program_flow16
1 files changed, 14 insertions, 2 deletions
diff --git a/doc/program_flow b/doc/program_flow
index b0680a0..8991681 100644
--- a/doc/program_flow
+++ b/doc/program_flow
@@ -37,7 +37,7 @@ libpseudo execution flow:
fork()
clone()
- pseudo_populate_wrappers():
+ pseudo_check_wrappers():
pseudo_reinit_libpseudo if necessary
call wrap_exec*()
if !PSEUDO_RELOADED
@@ -49,7 +49,19 @@ libpseudo execution flow:
pseudo_dropenv()
real_*()
- ... normal function wrappers ...
+ ... normal function wrappers ... (templates/wrapfuncs.c):
+ pseudo_check_wrappers() || !real_*
+ return enosys
+ variadic setup (if necessary)
+ if pseudo_disabled return real_*()
+ pseudo_sigblock
+ pseudo_getlock
+ if antimagic rc = real_*()
+ else rc = wrap_*()
+ variadic end (if necessary)
+ pseudo_droplock
+ unmask signals
+ return rc
pseudo execution flow:
pseudo.c: main()