summaryrefslogtreecommitdiff
path: root/m.c
diff options
context:
space:
mode:
authorngn <ngn@noreply.codeberg.org>2024-06-04 18:39:57 +0000
committerngn <ngn@noreply.codeberg.org>2024-06-04 18:39:57 +0000
commitc0c0d9ef6bc7df5538ed22bb2a0f32728bb92bf7 (patch)
treebe5ada1b276b8b2096218d74c92bbf0a7a9de33c /m.c
parentff3397dcc900659e323127612beb716a86fd6513 (diff)
parentca341028fa3abccb636c94fba5608a609b44c21d (diff)
Merge pull request 'tighter control on symbol visibility in libk.so' (#84) from growler/k:ffi into master
Reviewed-on: https://codeberg.org/ngn/k/pulls/84
Diffstat (limited to 'm.c')
-rw-r--r--m.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/m.c b/m.c
index 1c72aba5..bf10f8bd 100644
--- a/m.c
+++ b/m.c
@@ -10,6 +10,10 @@
#else
#define AP(p) ((A)(U)(p)) //A from pointer
#endif
+#ifdef shared
+__attribute((weak, visibility("default"))) V kinit();
+#endif
+
Z ST{V*p;W n;B f;}reg[128];Z U nreg;Z UC pnd[128];Z U npnd;
Z V mc(){P(!npnd)F(npnd,U j=pnd[i];munmap(reg[j].p,reg[j].n);reg[j].p=0)npnd=0;U j=0;F(nreg,I(reg[i].p,MC(reg+j,reg+i,SZ*reg);j++))nreg=j;}
Z A mu(V*p)_(F(nreg,P(reg[i].p==p,pnd[npnd++]=i;0))die("UNMAP"))