From fa3a8f992ea0a865bba31edbfed4c1ddb2bb9e63 Mon Sep 17 00:00:00 2001 From: Alexander Shiryaev Date: Mon, 14 Nov 2016 06:40:35 +0300 Subject: [PATCH] synchronized with https://github.com/aixp/BlackBox --- .../Host/Mod/Console.odc | Bin 0 -> 5287 bytes .../Lin/Mod/gen-Ioctl/Ioctl.txt.templ | 13 +- .../{Rsrc => }/Mod/gen-Libc/Libc.txt.templ | 14 + .../Lin/Mod/gen-Net/Net.txt.templ | 138 +++++++ .../Lin/Mod/gen-Net/sizeofs.c | 71 ++++ .../Build-Tool.odc | Bin .../Gtk2/Docu/ObjectHierarchy.odc | Bin .../Gtk2/Mod/Keysyms.odc | Bin .../Gtk2/Mod/Util.odc | Bin .../Host/Mod/CFrames.odc | Bin .../Host/Mod/Clipboard.odc | Bin .../Host/Mod/Cmds.odc | Bin .../Host/Mod/Dialog.odc | Bin .../Host/Mod/Fonts.odc | Bin .../Host/Mod/Mechanisms.odc | Bin .../Host/Mod/Menus.odc | Bin .../Host/Mod/Ports.odc | Bin .../Host/Mod/Registry.odc | Bin .../Host/Mod/TabFrames.odc | Bin .../Host/Mod/Windows.odc | Bin .../build | 0 BlackBox/_FreeBSDLinux_/Host/Mod/Console.odc | Bin 5076 -> 0 bytes .../Lin/Mod/gen-Ioctl/Makefile | 8 +- .../Lin/Mod/gen-Ioctl/mkioctl.c | 0 .../Gtk2/Mod/GLib.odc | Bin .../Gtk2/Mod/GObject.odc | Bin .../Gtk2/Mod/Gdk.odc | Bin .../Gtk2/Mod/Gtk.odc | Bin .../Gtk2/Mod/Pango.odc | Bin BlackBox/_FreeBSD_/BlackBox1.run | Bin 0 -> 99580 bytes BlackBox/_FreeBSD_/Comm/Mod/TCP.odc | Bin 0 -> 20565 bytes BlackBox/_FreeBSD_/Host/Mod/Files.odc | Bin 51620 -> 51794 bytes BlackBox/_FreeBSD_/Lin/Mod/Ioctl.txt | 43 +++ BlackBox/_FreeBSD_/Lin/Mod/Libc.txt | 55 ++- BlackBox/_FreeBSD_/Lin/Mod/Net.txt | 241 ++++++++++++ .../_FreeBSD_/Lin/Mod/gen-Ioctl/dumpdefs.py | 1 + BlackBox/_FreeBSD_/Lin/Mod/gen-Ioctl/libver | 1 + BlackBox/_FreeBSD_/Lin/Mod/gen-Ioctl/machine | 1 + BlackBox/_FreeBSD_/Lin/Mod/gen-Ioctl/osname | 1 + .../_FreeBSD_/Lin/Mod/gen-Ioctl/untempl.py | 1 + BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/Makefile | 4 +- BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/custom | 4 + .../_FreeBSD_/Lin/Mod/gen-Libc/defs-clockid | 15 + .../Lin/Mod/gen-Libc/fields-timespec | 3 + BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/osname | 2 +- BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/sizeofs.c | 1 + BlackBox/_FreeBSD_/Lin/Mod/gen-Net/Makefile | 52 +++ .../Lin/Mod/gen-Net/defs-fd_set-const | 3 + .../Lin/Mod/gen-Net/defs-fd_set-type | 3 + .../_FreeBSD_/Lin/Mod/gen-Net/dumpdefs.py | 1 + .../_FreeBSD_/Lin/Mod/gen-Net/fields-addrinfo | 9 + .../_FreeBSD_/Lin/Mod/gen-Net/fields-sockaddr | 4 + .../Lin/Mod/gen-Net/fields-sockaddr_in | 6 + .../Lin/Mod/gen-Net/fields-sockaddr_storage | 6 + BlackBox/_FreeBSD_/Lin/Mod/gen-Net/libver | 1 + BlackBox/_FreeBSD_/Lin/Mod/gen-Net/machine | 1 + BlackBox/_FreeBSD_/Lin/Mod/gen-Net/osname | 1 + BlackBox/_FreeBSD_/Lin/Mod/gen-Net/untempl.py | 1 + BlackBox/_FreeBSD_/Lin/Rsrc/loader/loader | Bin 7685 -> 7446 bytes BlackBox/_FreeBSD_/System/Mod/Kernel.odc | Bin 72399 -> 72656 bytes BlackBox/_FreeBSD_/libBB.so | Bin 90480 -> 90500 bytes BlackBox/_FreeBSD_/libBB0.so | Bin 1450004 -> 1450422 bytes BlackBox/_Linux_/Comm/Mod/TCP.odc | Bin 19236 -> 20498 bytes BlackBox/_Linux_/Lin/Mod/Ioctl.txt | 23 +- BlackBox/_Linux_/Lin/Mod/Libc.odc | Bin 24668 -> 24819 bytes BlackBox/_Linux_/Lin/Mod/Libc.txt | 7 + BlackBox/_Linux_/Lin/Mod/Net.txt | 340 ++++++++++------- BlackBox/_Linux_/Lin/Mod/gen-Ioctl/Makefile | 8 +- BlackBox/_Linux_/Lin/Mod/gen-Ioctl/libver | 1 + BlackBox/_Linux_/Lin/Mod/gen-Ioctl/machine | 1 + BlackBox/_Linux_/Lin/Mod/gen-Ioctl/osname | 1 + BlackBox/_Linux_/Lin/Mod/gen-Net/Makefile | 33 +- .../_Linux_/Lin/Mod/gen-Net/Net.txt.templ | 139 ------- .../_Linux_/Lin/Mod/gen-Net/defs-fd_set-const | 2 + .../_Linux_/Lin/Mod/gen-Net/defs-fd_set-type | 3 + BlackBox/_Linux_/Lin/Mod/gen-Net/defs-msg | 18 + BlackBox/_Linux_/Lin/Mod/gen-Net/defs-netdb | 6 - .../Lin/Mod/gen-Net/{defs-in => defs-proto} | 0 BlackBox/_Linux_/Lin/Mod/gen-Net/defs-shut | 4 + BlackBox/_Linux_/Lin/Mod/gen-Net/defs-sock | 15 +- .../_Linux_/Lin/Mod/gen-Net/dumphstrerrno.c | 1 - .../_Linux_/Lin/Mod/gen-Net/fields-addrinfo | 9 + .../_Linux_/Lin/Mod/gen-Net/fields-sockaddr | 3 + .../Lin/Mod/gen-Net/fields-sockaddr_in | 5 + .../Lin/Mod/gen-Net/fields-sockaddr_storage | 4 + BlackBox/_Linux_/Lin/Mod/gen-Net/libver | 1 + BlackBox/_Linux_/Lin/Mod/gen-Net/machine | 1 + BlackBox/_Linux_/Lin/Mod/gen-Net/osname | 1 + BlackBox/_OpenBSD_/BlackBox1.run | Bin 0 -> 99460 bytes BlackBox/_OpenBSD_/Comm/Mod/TCP.odc | Bin 19328 -> 20731 bytes BlackBox/_OpenBSD_/Host/Mod/Console.odc | Bin 5203 -> 0 bytes BlackBox/_OpenBSD_/Lin/Mod/Dl.txt | 4 +- BlackBox/_OpenBSD_/Lin/Mod/Iconv.txt | 2 +- BlackBox/_OpenBSD_/Lin/Mod/Ioctl.txt | 29 +- BlackBox/_OpenBSD_/Lin/Mod/Libc.txt | 60 +-- BlackBox/_OpenBSD_/Lin/Mod/Net.txt | 347 ++++++++++-------- BlackBox/_OpenBSD_/Lin/Mod/Termios.txt | 6 +- BlackBox/_OpenBSD_/Lin/Mod/gen-Ioctl/libver | 1 + BlackBox/_OpenBSD_/Lin/Mod/gen-Ioctl/machine | 1 + BlackBox/_OpenBSD_/Lin/Mod/gen-Ioctl/osname | 1 + BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/custom | 4 +- .../_OpenBSD_/Lin/Mod/gen-Libc/fields-dirent | 2 +- .../Lin/Mod/gen-Libc/fields-sigaction | 2 +- .../_OpenBSD_/Lin/Mod/gen-Libc/fields-siginfo | 2 +- .../_OpenBSD_/Lin/Mod/gen-Libc/fields-stack | 2 +- .../_OpenBSD_/Lin/Mod/gen-Libc/fields-stat | 6 +- .../Lin/Mod/gen-Libc/fields-timespec | 2 +- BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-tm | 2 +- .../Lin/Mod/gen-Libc/fields-ucontext | 4 +- BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/libver | 2 +- .../Lin/Mod/gen-Libc/mkdumpstrerrno.py | 1 + BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/osname | 2 +- BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/sizeofs.c | 2 + BlackBox/_OpenBSD_/Lin/Mod/gen-Net/Makefile | 51 ++- .../_OpenBSD_/Lin/Mod/gen-Net/Net.txt.templ | 141 ------- .../Lin/Mod/gen-Net/defs-fd_set-const | 3 + .../Lin/Mod/gen-Net/defs-fd_set-type | 3 + .../_OpenBSD_/Lin/Mod/gen-Net/dumphstrerrno.c | 19 - .../_OpenBSD_/Lin/Mod/gen-Net/fields-addrinfo | 9 + .../_OpenBSD_/Lin/Mod/gen-Net/fields-sockaddr | 4 + .../Lin/Mod/gen-Net/fields-sockaddr_in | 6 + .../Lin/Mod/gen-Net/fields-sockaddr_storage | 6 + BlackBox/_OpenBSD_/Lin/Mod/gen-Net/libver | 1 + BlackBox/_OpenBSD_/Lin/Mod/gen-Net/machine | 1 + BlackBox/_OpenBSD_/Lin/Mod/gen-Net/osname | 1 + .../Lin/Mod/gen-Termios/Termios.txt.templ | 6 +- BlackBox/_OpenBSD_/Lin/Rsrc/loader/Makefile | 2 +- BlackBox/_OpenBSD_/Lin/Rsrc/loader/loader | Bin 9055 -> 12606 bytes BlackBox/_OpenBSD_/System/Mod/Kernel.odc | Bin 71726 -> 73662 bytes BlackBox/_OpenBSD_/libBB.so | Bin 89788 -> 90336 bytes BlackBox/_OpenBSD_/libBB0.so | Bin 1449641 -> 1450282 bytes 131 files changed, 1341 insertions(+), 727 deletions(-) create mode 100644 BlackBox/_FreeBSDLinuxOpenBSD_/Host/Mod/Console.odc rename BlackBox/{_OpenBSD_ => _FreeBSDLinuxOpenBSD_}/Lin/Mod/gen-Ioctl/Ioctl.txt.templ (55%) rename BlackBox/_FreeBSDLinuxOpenBSD_/Lin/{Rsrc => }/Mod/gen-Libc/Libc.txt.templ (94%) create mode 100644 BlackBox/_FreeBSDLinuxOpenBSD_/Lin/Mod/gen-Net/Net.txt.templ create mode 100644 BlackBox/_FreeBSDLinuxOpenBSD_/Lin/Mod/gen-Net/sizeofs.c rename BlackBox/{_LinuxOpenBSD_GUI => _FreeBSDLinuxOpenBSD_GUI}/Build-Tool.odc (100%) rename BlackBox/{_LinuxOpenBSD_GUI => _FreeBSDLinuxOpenBSD_GUI}/Gtk2/Docu/ObjectHierarchy.odc (100%) rename BlackBox/{_LinuxOpenBSD_GUI => _FreeBSDLinuxOpenBSD_GUI}/Gtk2/Mod/Keysyms.odc (100%) rename BlackBox/{_LinuxOpenBSD_GUI => _FreeBSDLinuxOpenBSD_GUI}/Gtk2/Mod/Util.odc (100%) rename BlackBox/{_LinuxOpenBSD_GUI => _FreeBSDLinuxOpenBSD_GUI}/Host/Mod/CFrames.odc (100%) rename BlackBox/{_LinuxOpenBSD_GUI => _FreeBSDLinuxOpenBSD_GUI}/Host/Mod/Clipboard.odc (100%) rename BlackBox/{_LinuxOpenBSD_GUI => _FreeBSDLinuxOpenBSD_GUI}/Host/Mod/Cmds.odc (100%) rename BlackBox/{_LinuxOpenBSD_GUI => _FreeBSDLinuxOpenBSD_GUI}/Host/Mod/Dialog.odc (100%) rename BlackBox/{_LinuxOpenBSD_GUI => _FreeBSDLinuxOpenBSD_GUI}/Host/Mod/Fonts.odc (100%) rename BlackBox/{_LinuxOpenBSD_GUI => _FreeBSDLinuxOpenBSD_GUI}/Host/Mod/Mechanisms.odc (100%) rename BlackBox/{_LinuxOpenBSD_GUI => _FreeBSDLinuxOpenBSD_GUI}/Host/Mod/Menus.odc (100%) rename BlackBox/{_LinuxOpenBSD_GUI => _FreeBSDLinuxOpenBSD_GUI}/Host/Mod/Ports.odc (100%) rename BlackBox/{_LinuxOpenBSD_GUI => _FreeBSDLinuxOpenBSD_GUI}/Host/Mod/Registry.odc (100%) rename BlackBox/{_LinuxOpenBSD_GUI => _FreeBSDLinuxOpenBSD_GUI}/Host/Mod/TabFrames.odc (100%) rename BlackBox/{_LinuxOpenBSD_GUI => _FreeBSDLinuxOpenBSD_GUI}/Host/Mod/Windows.odc (100%) rename BlackBox/{_LinuxOpenBSD_GUI => _FreeBSDLinuxOpenBSD_GUI}/build (100%) delete mode 100644 BlackBox/_FreeBSDLinux_/Host/Mod/Console.odc rename BlackBox/{_OpenBSD_ => _FreeBSDOpenBSD_}/Lin/Mod/gen-Ioctl/Makefile (65%) rename BlackBox/{_OpenBSD_ => _FreeBSDOpenBSD_}/Lin/Mod/gen-Ioctl/mkioctl.c (100%) rename BlackBox/{_OpenBSD_GUI => _FreeBSDOpenBSD_GUI}/Gtk2/Mod/GLib.odc (100%) rename BlackBox/{_OpenBSD_GUI => _FreeBSDOpenBSD_GUI}/Gtk2/Mod/GObject.odc (100%) rename BlackBox/{_OpenBSD_GUI => _FreeBSDOpenBSD_GUI}/Gtk2/Mod/Gdk.odc (100%) rename BlackBox/{_OpenBSD_GUI => _FreeBSDOpenBSD_GUI}/Gtk2/Mod/Gtk.odc (100%) rename BlackBox/{_OpenBSD_GUI => _FreeBSDOpenBSD_GUI}/Gtk2/Mod/Pango.odc (100%) create mode 100755 BlackBox/_FreeBSD_/BlackBox1.run create mode 100644 BlackBox/_FreeBSD_/Comm/Mod/TCP.odc create mode 100644 BlackBox/_FreeBSD_/Lin/Mod/Ioctl.txt create mode 100644 BlackBox/_FreeBSD_/Lin/Mod/Net.txt create mode 120000 BlackBox/_FreeBSD_/Lin/Mod/gen-Ioctl/dumpdefs.py create mode 100644 BlackBox/_FreeBSD_/Lin/Mod/gen-Ioctl/libver create mode 100644 BlackBox/_FreeBSD_/Lin/Mod/gen-Ioctl/machine create mode 100644 BlackBox/_FreeBSD_/Lin/Mod/gen-Ioctl/osname create mode 120000 BlackBox/_FreeBSD_/Lin/Mod/gen-Ioctl/untempl.py create mode 100644 BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/defs-clockid create mode 100644 BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/fields-timespec create mode 100644 BlackBox/_FreeBSD_/Lin/Mod/gen-Net/Makefile create mode 100644 BlackBox/_FreeBSD_/Lin/Mod/gen-Net/defs-fd_set-const create mode 100644 BlackBox/_FreeBSD_/Lin/Mod/gen-Net/defs-fd_set-type create mode 120000 BlackBox/_FreeBSD_/Lin/Mod/gen-Net/dumpdefs.py create mode 100644 BlackBox/_FreeBSD_/Lin/Mod/gen-Net/fields-addrinfo create mode 100644 BlackBox/_FreeBSD_/Lin/Mod/gen-Net/fields-sockaddr create mode 100644 BlackBox/_FreeBSD_/Lin/Mod/gen-Net/fields-sockaddr_in create mode 100644 BlackBox/_FreeBSD_/Lin/Mod/gen-Net/fields-sockaddr_storage create mode 100644 BlackBox/_FreeBSD_/Lin/Mod/gen-Net/libver create mode 100644 BlackBox/_FreeBSD_/Lin/Mod/gen-Net/machine create mode 100644 BlackBox/_FreeBSD_/Lin/Mod/gen-Net/osname create mode 120000 BlackBox/_FreeBSD_/Lin/Mod/gen-Net/untempl.py create mode 100644 BlackBox/_Linux_/Lin/Mod/gen-Ioctl/libver create mode 100644 BlackBox/_Linux_/Lin/Mod/gen-Ioctl/machine create mode 100644 BlackBox/_Linux_/Lin/Mod/gen-Ioctl/osname delete mode 100644 BlackBox/_Linux_/Lin/Mod/gen-Net/Net.txt.templ create mode 100644 BlackBox/_Linux_/Lin/Mod/gen-Net/defs-fd_set-const create mode 100644 BlackBox/_Linux_/Lin/Mod/gen-Net/defs-fd_set-type create mode 100644 BlackBox/_Linux_/Lin/Mod/gen-Net/defs-msg delete mode 100644 BlackBox/_Linux_/Lin/Mod/gen-Net/defs-netdb rename BlackBox/_Linux_/Lin/Mod/gen-Net/{defs-in => defs-proto} (100%) create mode 100644 BlackBox/_Linux_/Lin/Mod/gen-Net/defs-shut delete mode 120000 BlackBox/_Linux_/Lin/Mod/gen-Net/dumphstrerrno.c create mode 100644 BlackBox/_Linux_/Lin/Mod/gen-Net/fields-addrinfo create mode 100644 BlackBox/_Linux_/Lin/Mod/gen-Net/fields-sockaddr create mode 100644 BlackBox/_Linux_/Lin/Mod/gen-Net/fields-sockaddr_in create mode 100644 BlackBox/_Linux_/Lin/Mod/gen-Net/fields-sockaddr_storage create mode 100644 BlackBox/_Linux_/Lin/Mod/gen-Net/libver create mode 100644 BlackBox/_Linux_/Lin/Mod/gen-Net/machine create mode 100644 BlackBox/_Linux_/Lin/Mod/gen-Net/osname create mode 100755 BlackBox/_OpenBSD_/BlackBox1.run delete mode 100644 BlackBox/_OpenBSD_/Host/Mod/Console.odc create mode 100644 BlackBox/_OpenBSD_/Lin/Mod/gen-Ioctl/libver create mode 100644 BlackBox/_OpenBSD_/Lin/Mod/gen-Ioctl/machine create mode 100644 BlackBox/_OpenBSD_/Lin/Mod/gen-Ioctl/osname delete mode 100644 BlackBox/_OpenBSD_/Lin/Mod/gen-Net/Net.txt.templ create mode 100644 BlackBox/_OpenBSD_/Lin/Mod/gen-Net/defs-fd_set-const create mode 100644 BlackBox/_OpenBSD_/Lin/Mod/gen-Net/defs-fd_set-type delete mode 100644 BlackBox/_OpenBSD_/Lin/Mod/gen-Net/dumphstrerrno.c create mode 100644 BlackBox/_OpenBSD_/Lin/Mod/gen-Net/fields-addrinfo create mode 100644 BlackBox/_OpenBSD_/Lin/Mod/gen-Net/fields-sockaddr create mode 100644 BlackBox/_OpenBSD_/Lin/Mod/gen-Net/fields-sockaddr_in create mode 100644 BlackBox/_OpenBSD_/Lin/Mod/gen-Net/fields-sockaddr_storage create mode 100644 BlackBox/_OpenBSD_/Lin/Mod/gen-Net/libver create mode 100644 BlackBox/_OpenBSD_/Lin/Mod/gen-Net/machine create mode 100644 BlackBox/_OpenBSD_/Lin/Mod/gen-Net/osname diff --git a/BlackBox/_FreeBSDLinuxOpenBSD_/Host/Mod/Console.odc b/BlackBox/_FreeBSDLinuxOpenBSD_/Host/Mod/Console.odc new file mode 100644 index 0000000000000000000000000000000000000000..5509e607a1835fd0df985cb0c71aa1d2a177a1e4 GIT binary patch literal 5287 zcma(VTaVM&*~4YGX~}L^Wh>MNbP8y3hD`D}R8KOpGc&-5MIkw1+-B^N zeTD^8p$htlsy=q5O087&Y5&5iFZ~1k3H=E$FWrY-(eHA6Y$xGjDe>oXzWeQ5TJ2tJ z!Sn1@J02eH%Sfe-K#j7GwoHdsVX8ddiX$}$BblU)?NENn$Osj_Uj`~pBr=5;VW2pC zK7`+e(*!;*h}eina>A?%{0pN5rj5dg7U53hJ`o<0RI-=^gMgjmyZ;y z2xjJ5=fh^~=$IzL7b<(2xjZKxS_@!OPz1TmsCV>%=5zKF%la7LpTe7;(`ccU&et2z+gABxqh$N<5*=nUiNp&lW)PWpO- z=s{ilMkbM*pwg{gH|T>-BROvEiL2t`uP)+n|MsS=UZ>l4ebMg;-);5$wy?F} zhJM$C+ifG^cGCwske#lQa%=DvMhAy#l~inOs^mt;b8%SK#b}lFY=o%oJ%t=L{a(v$ zZ~3n9Wh%kJBRLfIa0;`wDz5i>p4;pqE08Lni`B*0lTlqL_|Ndu@QFmmmFw=!P8V%F&#fM5n zhm(m=GT9F!NTTS0NcZAI4fh6#fOH|pz<(tKZ$JcZx<0C2NmY`EBk1cvqf0LKl7or` z>yUD&9TAWH%pq#WxVpr=6dLsFOe`P@NxYv8Lr$O)LdAsyX=ue+EcCP$dj z1>#Tv7L+@mGyfbLXGW9-hCv0#e3QTSsDRDJquObTMiZ1LqfJ6<80wl>6hY^XYg1}q z+*cs16a`RnHev5UsX)2dBZv_A*TgC2I2lTG22x)GtH~E+SN4G^uBXr+pyBSab~*Y6 z9@h(8kJM)3K$xPrlH_dq6mlH&ka zgPd;Jp>91S84QE40uF|gf?-IOZ@rIltmGW~SpC@v8t2l-sxFuPW)enfEbLBqrqI{K zgnASg4n?L|_5qf03(7d%lnK7UqRZr}H05^StX!c^05ODmoyET-oKg!&O?fki_o(Z- zz%E)SZ7${VfRoj%X|yxNO{H9}?s9RDeNF|+S}q3&7N-Qb3G)G>kMUDG8dH}|N?sQjZW7F##|Pn-PxY&LtQV~f)Tx?8hv-uZQ?o#4|vHzEek8j zJsDA9!jkv4!UQ{>+E|&+J4>_FPntpC`hD9JZe2Lb%ck1(ESUk>k~b7YbEeV!ylKfA zVyqYp(+Fs@khLz}iZr&Hp3N3>JFn|K3Qus(fWPCKfXp;3+ir{0HUsD$blyC!m`C&3 zA{8>uZ8Ho}0-6qlrjz2z2v63Mwz~a}$Gsi;1~(*QEB6i4wX$R|8B|EH+M1y3LLBD8 zDa@WXIZSIqx;yrDXVZNu-Bml(+-SMA2_aLI`mI4A_Zt&fQU!aV+R4nuuQBWyPYyj#3gO1iG%nhV=zWOU7wA=Jh&r+q8+HH=*o$4+uzi>40QLsh zrxhF#=j_Qcaasam@iqgY3$>y&;PftGxK5b;sAjp`yfvlv^lH+H!s0%b_BJM1<53J} z298M3Z+E))aGTxj)y28w{yB=E?gLDBo@0!`!y?CS0S<%)#7Be1Bvfi5-DngJBD1TJ zD6ZJnNG2YG@L17+CI{lSTEWta=d#SoXfBCC$`2(-jY*nS+WX78{ywq*X^t#DvsAk7 z4kaVGNuOvM0iHeRaL03;P#lEfDWx@uQ#k*bLr8JS%+jX3K+&OL%9BInVoRu4GJMJ5 z0~Lj&u(y0O=?F;4*%>KlR4Q4Pz&m2LMQdKwTB2#yme<4m8BJBOf(nP+2497MS5y*D zCU~y|_bV-x==&hNUMWuI@XUSDys3=m)SS63;=3rm3&Eqfeim3O|1eXCAeM+4>4|*w z=(wi*8s2yx@(=#zi=&)RpdL^7N{nul%tSVNM0Y8g*AL)*N5dtB-gIN6ajgpo@Qnum zzrKH$CT@PUVEqkl{%|6joV~)BzB>8u3&!P(BVq)9r@rN%cjpW1#lQbqx=Wn)^^Y?m j{YJCsIfef(|MJlK`;)J%KYaH?`W^iBcb0hiC(HUj#*q!Q literal 0 HcmV?d00001 diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Ioctl/Ioctl.txt.templ b/BlackBox/_FreeBSDLinuxOpenBSD_/Lin/Mod/gen-Ioctl/Ioctl.txt.templ similarity index 55% rename from BlackBox/_OpenBSD_/Lin/Mod/gen-Ioctl/Ioctl.txt.templ rename to BlackBox/_FreeBSDLinuxOpenBSD_/Lin/Mod/gen-Ioctl/Ioctl.txt.templ index 23a9202..266d5c2 100644 --- a/BlackBox/_OpenBSD_/Lin/Mod/gen-Ioctl/Ioctl.txt.templ +++ b/BlackBox/_FreeBSDLinuxOpenBSD_/Lin/Mod/gen-Ioctl/Ioctl.txt.templ @@ -1,17 +1,14 @@ -MODULE LinIoctl ["libc.so.70.0"]; +MODULE LinIoctl ["libc.so%%libver%%"]; (* - A. V. Shiryaev, 2012.11, 2013.08 - - OpenBSD 5.4 - 32-bit + %%osname%% + %%machine%% *) CONST - (* /usr/include/sys/ttycom.h *) -%%defs-ttycom%% +%%defs-tiocm%% %%defs-ioctl%% PROCEDURE [ccall] ioctl0* ["ioctl"] (d: INTEGER; req: INTEGER): INTEGER; PROCEDURE [ccall] ioctl1* ["ioctl"] (d: INTEGER; req: INTEGER; VAR arg: INTEGER): INTEGER; -END LinIoctl. +END LinIoctl. \ No newline at end of file diff --git a/BlackBox/_FreeBSDLinuxOpenBSD_/Lin/Rsrc/Mod/gen-Libc/Libc.txt.templ b/BlackBox/_FreeBSDLinuxOpenBSD_/Lin/Mod/gen-Libc/Libc.txt.templ similarity index 94% rename from BlackBox/_FreeBSDLinuxOpenBSD_/Lin/Rsrc/Mod/gen-Libc/Libc.txt.templ rename to BlackBox/_FreeBSDLinuxOpenBSD_/Lin/Mod/gen-Libc/Libc.txt.templ index a0b6d6b..b367b0b 100644 --- a/BlackBox/_FreeBSDLinuxOpenBSD_/Lin/Rsrc/Mod/gen-Libc/Libc.txt.templ +++ b/BlackBox/_FreeBSDLinuxOpenBSD_/Lin/Mod/gen-Libc/Libc.txt.templ @@ -49,11 +49,17 @@ MODULE LinLibc ["libc.so%%libver%%"]; SEEK_CUR* = 1; SEEK_END* = 2; + STDIN_FILENO* = 0; + STDOUT_FILENO* = 1; + STDERR_FILENO* = 2; + P_tmpdir* = "/tmp"; (* O_RDWR, O_NONBLOCK (intFlags) *) %%defs-fcntlo%% +%%defs-clockid%% + TYPE StrArray* = POINTER TO ARRAY [untagged] OF PtrSTR; PtrSTR* = POINTER TO ARRAY [untagged] OF SHORTCHAR; @@ -115,6 +121,10 @@ MODULE LinLibc ["libc.so%%libver%%"]; %%fields-dirent%% END; + timespec_t* = RECORD [untagged] +%%fields-timespec%% + END; + (* VAR stdin*: INTEGER; @@ -132,6 +142,9 @@ MODULE LinLibc ["libc.so%%libver%%"]; (* ANSI C 89 *) PROCEDURE [ccall] clock* (): clock_t; + (* POSIX.1 *) + PROCEDURE [ccall] clock_gettime* (clock_id: clockid_t; VAR tp: timespec_t): int; + PROCEDURE [ccall] mmap* (adr: PtrVoid; len: size_t; prot: intFlags; flags: intFlags; fd: int; offset: off_t): PtrVoid; (* BSD *) PROCEDURE [ccall] munmap* (adr: PtrVoid; len: size_t): int; @@ -170,6 +183,7 @@ MODULE LinLibc ["libc.so%%libver%%"]; (* ANSI C 89 *) PROCEDURE [ccall] fopen* (path, mode: PtrSTR): PtrFILE; + PROCEDURE [ccall] fdopen* (fildes: int; mode: PtrSTR): PtrFILE; PROCEDURE [ccall] fclose* (stream: PtrFILE): int; PROCEDURE [ccall] fread* (ptr: PtrVoid; size: size_t; nmemb: size_t; stream: PtrFILE): size_t; PROCEDURE [ccall] fwrite* (ptr: PtrVoid; size: size_t; nmemb: size_t; stream: PtrFILE): size_t; diff --git a/BlackBox/_FreeBSDLinuxOpenBSD_/Lin/Mod/gen-Net/Net.txt.templ b/BlackBox/_FreeBSDLinuxOpenBSD_/Lin/Mod/gen-Net/Net.txt.templ new file mode 100644 index 0000000..eb80349 --- /dev/null +++ b/BlackBox/_FreeBSDLinuxOpenBSD_/Lin/Mod/gen-Net/Net.txt.templ @@ -0,0 +1,138 @@ +MODULE LinNet ["libc.so%%libver%%"]; + + (* + %%osname%% + %%machine%% + *) + + CONST + NULL* = 0H; + + SOCKET_ERROR* = -1; + INVALID_SOCKET* = -1; + + INADDR_NONE* = -1; + INADDR_ANY* = 0; + + (* socket domains *) +%%defs-af%% + (* socket types *) +%%defs-sock%% + (* socket protocols *) +%%defs-proto%% + (* socket options *) +%%defs-so%% +%%defs-shut%% +%%defs-sol%% +%%defs-msg%% +%%defs-somaxconn%% + (* addrinfo.ai_flags *) +%%defs-ai%% + (* getaddrinfo/getnameinfo/gai_strerror error codes *) +%%defs-eai%% +%%defs-fd_set-const%% + TYPE + u_int8_t = SHORTCHAR; + int8_t = SHORTCHAR; + uint16_t = SHORTINT; + (* PtrVoid, int, intFlags, short, socklen_t, size_t, ssize_t, in_addr_t, in_port_t, time_t, suseconds_t, nfds_t, sa_family_t *) +%%defs-basictypes%% + PtrSTR* = POINTER [untagged] TO ARRAY [untagged] OF SHORTCHAR; + + SOCKET* = int; + +(* + in_addr* = RECORD [untagged] + s_addr*: in_addr_t; + END; +*) + in_addr* = RECORD [untagged] + S_un*: RECORD [union] + S_un_b*: RECORD [untagged] + s_b1*: SHORTCHAR; + s_b2*: SHORTCHAR; + s_b3*: SHORTCHAR; + s_b4*: SHORTCHAR; + END; + S_un_w*: RECORD [untagged] + s_w1*: SHORTINT; + s_w2*: SHORTINT; + END; + S_addr*: in_addr_t; + END; + END; + + Ptrsockaddr* = POINTER [untagged] TO sockaddr; + sockaddr* = RECORD [untagged] +%%fields-sockaddr%% + END; + + Ptrsockaddr_storage = POINTER [untagged] TO sockaddr_storage; + sockaddr_storage* = RECORD [untagged] +%%fields-sockaddr_storage%% + END; + + Ptrsockaddr_in* = POINTER [untagged] TO sockaddr_in; + sockaddr_in* = RECORD [untagged] +%%fields-sockaddr_in%% + END; + + Ptraddrinfo* = POINTER [untagged] TO addrinfo; + addrinfo* = RECORD [untagged] +%%fields-addrinfo%% + END; + + timeval* = RECORD [untagged] + (* Linux, FreeBSD, OpenBSD *) + tv_sec*: time_t; (* seconds *) + tv_usec*: suseconds_t; (* and microseconds *) + END; + + pollfd* = RECORD [untagged] + (* Linux, FreeBSD, OpenBSD *) + fd*: int; + events*: short; + revents*: short; + END; + +%%defs-fd_set-type%% + (* POSIX.1 *) + PROCEDURE [ccall] socket* (domain: int; type: int; protocol: int): SOCKET; + PROCEDURE [ccall] accept* (s: SOCKET; VAR addr: sockaddr; VAR addrlen: socklen_t): SOCKET; + PROCEDURE [ccall] bind* (s: SOCKET; VAR name: sockaddr; namelen: socklen_t): int; + PROCEDURE [ccall] connect* (s: SOCKET; VAR name: sockaddr; namelen: socklen_t): int; + PROCEDURE [ccall] getsockname* (s: SOCKET; VAR name: sockaddr; VAR namelen: socklen_t): int; + PROCEDURE [ccall] listen* (s: SOCKET; backlog: int): int; + PROCEDURE [ccall] recv* (s: SOCKET; buf: PtrVoid; len: size_t; flags: intFlags): ssize_t; + PROCEDURE [ccall] send* (s: SOCKET; msg: PtrVoid; len: size_t; flags: intFlags): ssize_t; + PROCEDURE [ccall] shutdown* (s: SOCKET; how: int): int; + PROCEDURE [ccall] getsockopt* (s: SOCKET; level: int; optname: intFlags; optval: PtrVoid; VAR [nil] optlen: socklen_t): int; + PROCEDURE [ccall] setsockopt* (s: SOCKET; level: int; optname: intFlags; optval: PtrVoid; optlen: socklen_t): int; + + PROCEDURE [ccall] inet_addr* (cp: PtrSTR): in_addr_t; + PROCEDURE [ccall] htons* (host16: uint16_t): uint16_t; + + PROCEDURE [ccall] select* (nfds: INTEGER; VAR [nil] readfds: fd_set; VAR [nil] writefds: fd_set; VAR [nil] exceptfds: fd_set; VAR timeout: timeval): int; + + PROCEDURE [ccall] poll* (VAR fds: ARRAY [untagged] OF pollfd; nfds: nfds_t; timeout: int): int; + +(* + PROCEDURE FD_ZERO (VAR set: Net.fd_set); + VAR i: INTEGER; + BEGIN + i := LEN(set); REPEAT DEC(i); set[i] := {} UNTIL i = 0 + END FD_ZERO; + + PROCEDURE FD_SET (fd: Net.SOCKET; VAR set: Net.fd_set); + BEGIN + INCL(set[fd DIV 32], fd MOD 32) + END FD_SET; +*) + + (* POSIX.1g *) + PROCEDURE [ccall] getaddrinfo* (hostname: PtrSTR; servname: PtrSTR; VAR [nil] hints: addrinfo; VAR res: Ptraddrinfo): int; + PROCEDURE [ccall] freeaddrinfo* (ai: Ptraddrinfo); + + PROCEDURE [ccall] gai_strerror* (ecode: int): PtrSTR; + +END LinNet. \ No newline at end of file diff --git a/BlackBox/_FreeBSDLinuxOpenBSD_/Lin/Mod/gen-Net/sizeofs.c b/BlackBox/_FreeBSDLinuxOpenBSD_/Lin/Mod/gen-Net/sizeofs.c new file mode 100644 index 0000000..808e5e2 --- /dev/null +++ b/BlackBox/_FreeBSDLinuxOpenBSD_/Lin/Mod/gen-Net/sizeofs.c @@ -0,0 +1,71 @@ +#include +#include +#include +#include +#include +#include +#include + +#define TABS "\t\t" + +#define FALSE (0) +#define TRUE (1) + +static void D (const char *s, int sz, int set, int export) +{ + int res; + + res = printf("%s%s", TABS, s); + if (export) { + res = printf("*"); + } + res = printf(" = "); + if (sz == 1) { + res = printf("SHORTCHAR"); + } else if (sz == 2) { + res = printf("SHORTINT"); + } else if (sz == 4) { + if (set) { + res = printf("SET"); + } else { + res = printf("INTEGER"); + } + } else if (sz == 8) { + if (set) { + res = printf("ARRAY [untagged] 2 OF SET"); + } else { + res = printf("LONGINT"); + } + } else { + res = printf("ARRAY [untagged] "); + if (sz % 4 == 0) { + if (set) { + res = printf("%d OF SET", sz / 4); + } else { + res = printf("%d OF INTEGER", sz / 4); + } + } else { + res = printf("%d OF SHORTCHAR", sz); + } + } + res = printf(";\n"); +} + +int main () +{\ + D("PtrVoid", sizeof(void *), FALSE, TRUE); + D("short", sizeof(short), FALSE, TRUE); + D("int", sizeof(int), FALSE, TRUE); + D("intFlags", sizeof(int), TRUE, TRUE); + D("size_t", sizeof(size_t), FALSE, TRUE); + D("ssize_t", sizeof(ssize_t), FALSE, TRUE); + D("time_t", sizeof(time_t), FALSE, TRUE); + D("suseconds_t", sizeof(suseconds_t), FALSE, TRUE); + D("socklen_t", sizeof(socklen_t), FALSE, TRUE); + D("in_addr_t", sizeof(in_addr_t), FALSE, TRUE); + D("in_port_t", sizeof(in_port_t), FALSE, TRUE); + D("nfds_t", sizeof(nfds_t), FALSE, TRUE); + D("sa_family_t", sizeof(sa_family_t), FALSE, TRUE); + + return 0; +} diff --git a/BlackBox/_LinuxOpenBSD_GUI/Build-Tool.odc b/BlackBox/_FreeBSDLinuxOpenBSD_GUI/Build-Tool.odc similarity index 100% rename from BlackBox/_LinuxOpenBSD_GUI/Build-Tool.odc rename to BlackBox/_FreeBSDLinuxOpenBSD_GUI/Build-Tool.odc diff --git a/BlackBox/_LinuxOpenBSD_GUI/Gtk2/Docu/ObjectHierarchy.odc b/BlackBox/_FreeBSDLinuxOpenBSD_GUI/Gtk2/Docu/ObjectHierarchy.odc similarity index 100% rename from BlackBox/_LinuxOpenBSD_GUI/Gtk2/Docu/ObjectHierarchy.odc rename to BlackBox/_FreeBSDLinuxOpenBSD_GUI/Gtk2/Docu/ObjectHierarchy.odc diff --git a/BlackBox/_LinuxOpenBSD_GUI/Gtk2/Mod/Keysyms.odc b/BlackBox/_FreeBSDLinuxOpenBSD_GUI/Gtk2/Mod/Keysyms.odc similarity index 100% rename from BlackBox/_LinuxOpenBSD_GUI/Gtk2/Mod/Keysyms.odc rename to BlackBox/_FreeBSDLinuxOpenBSD_GUI/Gtk2/Mod/Keysyms.odc diff --git a/BlackBox/_LinuxOpenBSD_GUI/Gtk2/Mod/Util.odc b/BlackBox/_FreeBSDLinuxOpenBSD_GUI/Gtk2/Mod/Util.odc similarity index 100% rename from BlackBox/_LinuxOpenBSD_GUI/Gtk2/Mod/Util.odc rename to BlackBox/_FreeBSDLinuxOpenBSD_GUI/Gtk2/Mod/Util.odc diff --git a/BlackBox/_LinuxOpenBSD_GUI/Host/Mod/CFrames.odc b/BlackBox/_FreeBSDLinuxOpenBSD_GUI/Host/Mod/CFrames.odc similarity index 100% rename from BlackBox/_LinuxOpenBSD_GUI/Host/Mod/CFrames.odc rename to BlackBox/_FreeBSDLinuxOpenBSD_GUI/Host/Mod/CFrames.odc diff --git a/BlackBox/_LinuxOpenBSD_GUI/Host/Mod/Clipboard.odc b/BlackBox/_FreeBSDLinuxOpenBSD_GUI/Host/Mod/Clipboard.odc similarity index 100% rename from BlackBox/_LinuxOpenBSD_GUI/Host/Mod/Clipboard.odc rename to BlackBox/_FreeBSDLinuxOpenBSD_GUI/Host/Mod/Clipboard.odc diff --git a/BlackBox/_LinuxOpenBSD_GUI/Host/Mod/Cmds.odc b/BlackBox/_FreeBSDLinuxOpenBSD_GUI/Host/Mod/Cmds.odc similarity index 100% rename from BlackBox/_LinuxOpenBSD_GUI/Host/Mod/Cmds.odc rename to BlackBox/_FreeBSDLinuxOpenBSD_GUI/Host/Mod/Cmds.odc diff --git a/BlackBox/_LinuxOpenBSD_GUI/Host/Mod/Dialog.odc b/BlackBox/_FreeBSDLinuxOpenBSD_GUI/Host/Mod/Dialog.odc similarity index 100% rename from BlackBox/_LinuxOpenBSD_GUI/Host/Mod/Dialog.odc rename to BlackBox/_FreeBSDLinuxOpenBSD_GUI/Host/Mod/Dialog.odc diff --git a/BlackBox/_LinuxOpenBSD_GUI/Host/Mod/Fonts.odc b/BlackBox/_FreeBSDLinuxOpenBSD_GUI/Host/Mod/Fonts.odc similarity index 100% rename from BlackBox/_LinuxOpenBSD_GUI/Host/Mod/Fonts.odc rename to BlackBox/_FreeBSDLinuxOpenBSD_GUI/Host/Mod/Fonts.odc diff --git a/BlackBox/_LinuxOpenBSD_GUI/Host/Mod/Mechanisms.odc b/BlackBox/_FreeBSDLinuxOpenBSD_GUI/Host/Mod/Mechanisms.odc similarity index 100% rename from BlackBox/_LinuxOpenBSD_GUI/Host/Mod/Mechanisms.odc rename to BlackBox/_FreeBSDLinuxOpenBSD_GUI/Host/Mod/Mechanisms.odc diff --git a/BlackBox/_LinuxOpenBSD_GUI/Host/Mod/Menus.odc b/BlackBox/_FreeBSDLinuxOpenBSD_GUI/Host/Mod/Menus.odc similarity index 100% rename from BlackBox/_LinuxOpenBSD_GUI/Host/Mod/Menus.odc rename to BlackBox/_FreeBSDLinuxOpenBSD_GUI/Host/Mod/Menus.odc diff --git a/BlackBox/_LinuxOpenBSD_GUI/Host/Mod/Ports.odc b/BlackBox/_FreeBSDLinuxOpenBSD_GUI/Host/Mod/Ports.odc similarity index 100% rename from BlackBox/_LinuxOpenBSD_GUI/Host/Mod/Ports.odc rename to BlackBox/_FreeBSDLinuxOpenBSD_GUI/Host/Mod/Ports.odc diff --git a/BlackBox/_LinuxOpenBSD_GUI/Host/Mod/Registry.odc b/BlackBox/_FreeBSDLinuxOpenBSD_GUI/Host/Mod/Registry.odc similarity index 100% rename from BlackBox/_LinuxOpenBSD_GUI/Host/Mod/Registry.odc rename to BlackBox/_FreeBSDLinuxOpenBSD_GUI/Host/Mod/Registry.odc diff --git a/BlackBox/_LinuxOpenBSD_GUI/Host/Mod/TabFrames.odc b/BlackBox/_FreeBSDLinuxOpenBSD_GUI/Host/Mod/TabFrames.odc similarity index 100% rename from BlackBox/_LinuxOpenBSD_GUI/Host/Mod/TabFrames.odc rename to BlackBox/_FreeBSDLinuxOpenBSD_GUI/Host/Mod/TabFrames.odc diff --git a/BlackBox/_LinuxOpenBSD_GUI/Host/Mod/Windows.odc b/BlackBox/_FreeBSDLinuxOpenBSD_GUI/Host/Mod/Windows.odc similarity index 100% rename from BlackBox/_LinuxOpenBSD_GUI/Host/Mod/Windows.odc rename to BlackBox/_FreeBSDLinuxOpenBSD_GUI/Host/Mod/Windows.odc diff --git a/BlackBox/_LinuxOpenBSD_GUI/build b/BlackBox/_FreeBSDLinuxOpenBSD_GUI/build similarity index 100% rename from BlackBox/_LinuxOpenBSD_GUI/build rename to BlackBox/_FreeBSDLinuxOpenBSD_GUI/build diff --git a/BlackBox/_FreeBSDLinux_/Host/Mod/Console.odc b/BlackBox/_FreeBSDLinux_/Host/Mod/Console.odc deleted file mode 100644 index 7453f8f903507c3482fafb307cad33e7ff9066d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5076 zcma(VS#KLfc+-}{Py^yp#RD2>Mc1ig#Zi%}gaWR;ZLDtWuB zp$fG;BE%b1LMjsCiNAn&;Wxl5{Rt&cJRre$%#L?$r|n4g%+7rGHAlVCjx1<*|87LR zy&V~qRi#%sV*RGIL+S*WrUWz#0H%75bH|PaKXRCXJ9Jj}~Bb=zaLJ zaPCkIM|S|_$cRG~=b(*i|HW^_N^5@#L0*F25p>NnBXpd{_BMA~z*-!1hhtWM6X{{d zJ@XgBo`BzfEA7Ub>xktjQ4qyRG?YulV!@s*77DeBSg#0wJBV+0<&Cmfn6EBWs`Id1 z(4ZpN*@ak!WbCRS3dJCbg&Tx>w?sGWi}SIR=ln*oFk1qg=E`c@>j?jn-*HyTLQ^OM z{I#A~Jd1cZEQ@9@3UBBc8kb2rw;NtBi;FT2xeOsIrCqFug)16DJ zjusFmSKG~2$MHm`Ej*{*_8P+0j4Qe?38&RS#Pym7c)&YZB;l6eOO{1{kp-#*DArYl zpsQZH?ljgsM|d)kV7I>P3A;B2Sy~k5+HKdVwU88$7f@cxV&KZKEEN2w@JaBwM8bu0 z&V^D~gzNfh`j1jy+#Vop?-ggq;6 z25LLnQzG0O4uz8OP7p$ngx5u~9mT4*-Hipr1sMkZ3jtUITy??mQ1n8g;zbIL%BqU} zj-E8KjM$#4qG0|q#1=|N$OA7mh}tlw&JoYK2JJfG3-Cf5?WEIM2%)0PjLUMRUQ3cK z*J;^FQktt?A)jrcG@uE7U~E?g*QH7T0-~NFIs7Y$>Idwz=6PWw#&L9ONxTPNIkFHG znYm%nHAG*|8};(D@7CTXF>mIT^KAAzvV8>^`^&jBK10v9k;&8UwLE1g*&yq*wZZ zajuup9w6b?ytX^q2Abpgjz}hETTqe?T!tK>Rm5emfPAU7*;sBuwM3@`SHy?p4E7Ox zejv`Ea~f^n37=#*7%V|x*X=+T8sZF!F$HudIm4jLZ$6E1EaVjZSp3Nan&H9n3>flre?05)O_FZI<`sNvZ&6_n{3ysqy|LG zsGuNNbsWqa6)jmphy?>-3IQDr($d8TkIH(@wOM1X>1BN);RTKvuy<4v5SfN#!>Ny;DTgy<+@?2RvHW@ zf-(VCS`rjp2*Xr3gxT^YhG}m|wg#TAY`RV*TWW)f8|}F^0i=Rby)^)2exm|&Dqt;C z8>!m(HGm_9NY!UbpfQ6(mDJp{etH3753Ns|>Mm6;+;<5lyEGUK_mXX!z*=jr3lJy| z<|<%gHzz`vG1ZYPVZJ)%PDUGXpd=MKJnxzF5T5Q#;i40XK8%>df!>9BC?j*R;TTW_ zeX%MVvQJ{|!`T4qw1NxVl!IByPIEvgK5O9UL@CP+C_RZ8?i1!vs!7h*Hpj#s-%Xlf zkUh*ovEV~{Wf&+mlups?aI)`>j)nBD^QTi;@!2nKeymI@3M#cQ&9}i z=(>Q|7*J_eJUy>-Ps0mQG*1&VdJ`_5qcQ&8RG`maVAeK;esZw~ePI zS}I~ZXRec#BEK7e;wp}YLwtmR$B4R$_2UV?MPwI8Ta-d-vYjhG`!q!&iB`-e65FVN%T!B70nuPh@vzPdf+_al0KF$?MJK0Q2WTF*m& zS&wr99rV1SVd?J9FA+HN@wF?oaN+)p^#Gp9@Se|a2k>fRURekP{>I-K9)6vDXGo!r z{$pAAb1#2tef|5-xreuLTbp+xjf`qhJBt60zQ1Ap`1yV7%YR>>-|i2eS>nz&mi0dm Ci{Ekp diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Ioctl/Makefile b/BlackBox/_FreeBSDOpenBSD_/Lin/Mod/gen-Ioctl/Makefile similarity index 65% rename from BlackBox/_OpenBSD_/Lin/Mod/gen-Ioctl/Makefile rename to BlackBox/_FreeBSDOpenBSD_/Lin/Mod/gen-Ioctl/Makefile index 6696eb9..9894048 100644 --- a/BlackBox/_OpenBSD_/Lin/Mod/gen-Ioctl/Makefile +++ b/BlackBox/_FreeBSDOpenBSD_/Lin/Mod/gen-Ioctl/Makefile @@ -9,16 +9,16 @@ INCDIR ?= /usr/include all: mkioctl Ioctl.txt PY = python2.7 -DEFS = defs-ttycom defs-ioctl +DEFS = defs-tiocm defs-ioctl defs-ioctl: mkioctl ./mkioctl > ${.TARGET} -Ioctl.txt: Ioctl.txt.templ ${DEFS} +Ioctl.txt: Ioctl.txt.templ ${DEFS} libver osname machine ${PY} ./untempl.py Ioctl.txt.templ ${.TARGET} -defs-ttycom: - ./dumpdefs.py 3 1 s ${INCDIR}/sys/ttycom.h | grep TIOCM_ > ${.TARGET} +defs-tiocm: + ./dumpdefs.py 2 1 s ${INCDIR}/sys/ttycom.h | grep TIOCM_ > ${.TARGET} clean: rm -f mkioctl Ioctl.txt ${DEFS} diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Ioctl/mkioctl.c b/BlackBox/_FreeBSDOpenBSD_/Lin/Mod/gen-Ioctl/mkioctl.c similarity index 100% rename from BlackBox/_OpenBSD_/Lin/Mod/gen-Ioctl/mkioctl.c rename to BlackBox/_FreeBSDOpenBSD_/Lin/Mod/gen-Ioctl/mkioctl.c diff --git a/BlackBox/_OpenBSD_GUI/Gtk2/Mod/GLib.odc b/BlackBox/_FreeBSDOpenBSD_GUI/Gtk2/Mod/GLib.odc similarity index 100% rename from BlackBox/_OpenBSD_GUI/Gtk2/Mod/GLib.odc rename to BlackBox/_FreeBSDOpenBSD_GUI/Gtk2/Mod/GLib.odc diff --git a/BlackBox/_OpenBSD_GUI/Gtk2/Mod/GObject.odc b/BlackBox/_FreeBSDOpenBSD_GUI/Gtk2/Mod/GObject.odc similarity index 100% rename from BlackBox/_OpenBSD_GUI/Gtk2/Mod/GObject.odc rename to BlackBox/_FreeBSDOpenBSD_GUI/Gtk2/Mod/GObject.odc diff --git a/BlackBox/_OpenBSD_GUI/Gtk2/Mod/Gdk.odc b/BlackBox/_FreeBSDOpenBSD_GUI/Gtk2/Mod/Gdk.odc similarity index 100% rename from BlackBox/_OpenBSD_GUI/Gtk2/Mod/Gdk.odc rename to BlackBox/_FreeBSDOpenBSD_GUI/Gtk2/Mod/Gdk.odc diff --git a/BlackBox/_OpenBSD_GUI/Gtk2/Mod/Gtk.odc b/BlackBox/_FreeBSDOpenBSD_GUI/Gtk2/Mod/Gtk.odc similarity index 100% rename from BlackBox/_OpenBSD_GUI/Gtk2/Mod/Gtk.odc rename to BlackBox/_FreeBSDOpenBSD_GUI/Gtk2/Mod/Gtk.odc diff --git a/BlackBox/_OpenBSD_GUI/Gtk2/Mod/Pango.odc b/BlackBox/_FreeBSDOpenBSD_GUI/Gtk2/Mod/Pango.odc similarity index 100% rename from BlackBox/_OpenBSD_GUI/Gtk2/Mod/Pango.odc rename to BlackBox/_FreeBSDOpenBSD_GUI/Gtk2/Mod/Pango.odc diff --git a/BlackBox/_FreeBSD_/BlackBox1.run b/BlackBox/_FreeBSD_/BlackBox1.run new file mode 100755 index 0000000000000000000000000000000000000000..6344545e0f7b96abb2de61bcc376959cf42b400d GIT binary patch literal 99580 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 T4z3kxi0ZJp8p6BJ-n#w);|wS` delta 1010 zcmaiy%WG3X6vk)ny}9+~K4Nn7z#1%F)X=o)OTlUiLGj&~P#?I8+1Q5~l9H-aFr-MJ zA}WRxH=^hwbx{#2vrt!3&{}n2@IUBA1Q$ZxR0MG*$xONsym06K&UeoF&delVDsmO% zdqvz?o;&Bvtsx@o)Fvj?T^w(!C5}loOh(#%O85s1IN#yR zP}O_&8|!9cgJ=SBdH{mD1vNdQv)$|UR0;m*(PEJ9q!D*hQdHLTThz=`a@4E0FfBkA z6r`^jW(4$Y^v()O2|6mA-%w4Cup@^h?iXcse#Gvg%CJ7fhB@Pq{!+vetQe2=9U{)a zgc;ft_rhH>U>L2lrs0M85E~?6DYzpe`sh@oD0D$nLX#oodjG!~(!cc>)(1q>C|q+- zViVTfdkw2K_9N`{^ilbYXVy4Phc!-PAo%RrjxG4^DHzv%SP9c^^g+8K4RJjwd9 zL9CJIL(?v`Z#ud+)9yh!Sr*dr%-Wn k-dLQM$cHB-J`$D-UWhFv$*YB7anOy$9?mRJVoP@WUrD0c`~Uy| diff --git a/BlackBox/_FreeBSD_/Lin/Mod/Ioctl.txt b/BlackBox/_FreeBSD_/Lin/Mod/Ioctl.txt new file mode 100644 index 0000000..8db05a9 --- /dev/null +++ b/BlackBox/_FreeBSD_/Lin/Mod/Ioctl.txt @@ -0,0 +1,43 @@ +MODULE LinIoctl ["libc.so.7"]; + + (* + FreeBSD 11.0 + i386 + *) + + CONST + TIOCM_LE* = {0}; (* line enable *) + TIOCM_DTR* = {1}; (* data terminal ready *) + TIOCM_RTS* = {2}; (* request to send *) + TIOCM_ST* = {3}; (* secondary transmit *) + TIOCM_SR* = {4}; (* secondary receive *) + TIOCM_CTS* = {5}; (* clear to send *) + TIOCM_DCD* = {6}; (* data carrier detect *) + TIOCM_RI* = {7}; (* ring indicate *) + TIOCM_DSR* = {8}; (* data set ready *) + + FIOCLEX* = 536897025; + FIONCLEX* = 536897026; + FIONREAD* = 1074030207; + FIONBIO* = -2147195266; + FIOASYNC* = -2147195267; + FIOSETOWN* = -2147195268; + FIOGETOWN* = 1074030203; + TIOCMGET* = 1074033770; + TIOCMSET* = -2147191699; + TIOCEXCL* = 536900621; + TIOCNXCL* = 536900622; + TIOCFLUSH* = -2147191792; + TIOCDRAIN* = 536900702; + TIOCOUTQ* = 1074033779; + TIOCSBRK* = 536900731; + TIOCCBRK* = 536900730; + TIOCSDTR* = 536900729; + TIOCCDTR* = 536900728; + TIOCMBIS* = -2147191700; + TIOCMBIC* = -2147191701; + + PROCEDURE [ccall] ioctl0* ["ioctl"] (d: INTEGER; req: INTEGER): INTEGER; + PROCEDURE [ccall] ioctl1* ["ioctl"] (d: INTEGER; req: INTEGER; VAR arg: INTEGER): INTEGER; + +END LinIoctl. \ No newline at end of file diff --git a/BlackBox/_FreeBSD_/Lin/Mod/Libc.txt b/BlackBox/_FreeBSD_/Lin/Mod/Libc.txt index 0aeaa91..431e603 100644 --- a/BlackBox/_FreeBSD_/Lin/Mod/Libc.txt +++ b/BlackBox/_FreeBSD_/Lin/Mod/Libc.txt @@ -1,7 +1,7 @@ MODULE LinLibc ["libc.so.7"]; (* - FreeBSD 9.0 + FreeBSD 11.0 i386 *) @@ -18,9 +18,8 @@ MODULE LinLibc ["libc.so.7"]; MAP_SHARED* = {0}; (* share changes *) MAP_PRIVATE* = {1}; (* changes are private *) MAP_FIXED* = {4}; (* map addr must be exactly as requested *) - MAP_COPY* = MAP_PRIVATE; (* Obsolete *) - MAP_RENAME* = {5}; (* Sun: rename private pages to file *) - MAP_NORESERVE* = {6}; (* Sun: don't reserve needed swap area *) + MAP_RESERVED0020* = {5}; (* previously unimplemented MAP_RENAME *) + MAP_RESERVED0040* = {6}; (* previously unimplemented MAP_NORESERVE *) MAP_RESERVED0080* = {7}; (* previously misimplemented MAP_INHERIT *) MAP_RESERVED0100* = {8}; (* previously unimplemented MAP_NOEXTEND *) MAP_HASSEMAPHORE* = {9}; (* region may contain semaphores *) @@ -28,8 +27,10 @@ MODULE LinLibc ["libc.so.7"]; MAP_NOSYNC* = {11}; (* page to but do not sync underlying file *) MAP_FILE* = {}; (* map from file (default) *) MAP_ANON* = {12}; (* allocated from memory, swap space *) + MAP_EXCL* = {14}; (* for MAP_FIXED, fail if address is used *) MAP_NOCORE* = {17}; (* dont include these pages in a coredump *) MAP_PREFAULT_READ* = {18}; (* prefault mapping for reading *) + MAP_ALIGNMENT_SHIFT* = {3,4}; (* PROT_READ, PROT_WRITE, PROT_EXEC (intFlags) *) @@ -103,6 +104,7 @@ MODULE LinLibc ["libc.so.7"]; SIGUSR2* = 31; (* user defined signal 2 *) SIGTHR* = 32; (* reserved by thread library. *) SIGLWP* = SIGTHR; + SIGLIBRT* = 33; (* reserved by real-time library. *) SIGEV_NONE* = 0; (* No async notification. *) SIGEV_SIGNAL* = 1; (* Generate a queued signal. *) SIGEV_THREAD* = 2; (* Call back from another pthread. *) @@ -304,11 +306,9 @@ MODULE LinLibc ["libc.so.7"]; EDOOFUS* = 88; (* Programming error *) ENOTCAPABLE* = 93; (* Capabilities insufficient *) ECAPMODE* = 94; (* Not permitted in capability mode *) - ELAST* = 94; (* Must be equal largest errno *) - ERESTART* = -1; (* restart syscall *) - EJUSTRETURN* = -2; (* don't modify regs, just return *) - ENOIOCTL* = -3; (* ioctl not handled by this layer *) - EDIRIOCTL* = -4; (* do direct ioctl in GEOM *) + ENOTRECOVERABLE* = 95; (* State not recoverable *) + EOWNERDEAD* = 96; (* Previous owner died *) + ELAST* = 96; (* Must be equal largest errno *) NAME_MAX* = 255; @@ -317,6 +317,10 @@ MODULE LinLibc ["libc.so.7"]; SEEK_CUR* = 1; SEEK_END* = 2; + STDIN_FILENO* = 0; + STDOUT_FILENO* = 1; + STDERR_FILENO* = 2; + P_tmpdir* = "/tmp"; (* O_RDWR, O_NONBLOCK (intFlags) *) @@ -330,6 +334,7 @@ MODULE LinLibc ["libc.so.7"]; O_EXEC* = {18}; (* Open for execute only *) O_TTY_INIT* = {19}; (* Restore default termios attributes *) O_CLOEXEC* = {20}; + O_VERIFY* = {21}; (* open only after verification *) O_RDONLY* = {}; (* open for reading only *) O_WRONLY* = {0}; (* open for writing only *) O_RDWR* = {1}; (* open for reading and writing *) @@ -343,6 +348,22 @@ MODULE LinLibc ["libc.so.7"]; O_NOCTTY* = {15}; (* don't assign controlling terminal *) + (* FreeBSD 11.0 /usr/include/time.h *) + CLOCK_REALTIME* = 0; + CLOCK_VIRTUAL* = 1; + CLOCK_PROF* = 2; + CLOCK_MONOTONIC* = 4; + CLOCK_UPTIME* = 5; (* FreeBSD-specific *) + CLOCK_UPTIME_PRECISE* = 7; (* FreeBSD-specific *) + CLOCK_UPTIME_FAST* = 8; (* FreeBSD-specific *) + CLOCK_REALTIME_PRECISE* = 9; (* FreeBSD-specific *) + CLOCK_REALTIME_FAST* = 10; (* FreeBSD-specific *) + CLOCK_MONOTONIC_PRECISE* = 11; (* FreeBSD-specific *) + CLOCK_MONOTONIC_FAST* = 12; (* FreeBSD-specific *) + CLOCK_SECOND* = 13; (* FreeBSD-specific *) + CLOCK_THREAD_CPUTIME_ID* = 14; + CLOCK_PROCESS_CPUTIME_ID* = 15; + TYPE StrArray* = POINTER TO ARRAY [untagged] OF PtrSTR; PtrSTR* = POINTER TO ARRAY [untagged] OF SHORTCHAR; @@ -357,6 +378,7 @@ MODULE LinLibc ["libc.so.7"]; ssize_t* = INTEGER; off_t* = LONGINT; clock_t* = INTEGER; + clockid_t* = INTEGER; time_t* = INTEGER; mode_t* = SHORTINT; pid_t* = INTEGER; @@ -555,6 +577,12 @@ MODULE LinLibc ["libc.so.7"]; d_name*: ARRAY [untagged] 255 + 1 (* 256 *) OF SHORTCHAR; END; + timespec_t* = RECORD [untagged] + (* FreeBSD 11.0 /usr/include/sys/_timespec.h *) + tv_sec*: time_t; (* seconds *) + tv_nsec*: long; (* and nanoseconds *) + END; + (* VAR stdin*: INTEGER; @@ -567,9 +595,13 @@ MODULE LinLibc ["libc.so.7"]; (* POSIX.1 *) PROCEDURE [ccall] stat* (path: PtrSTR; VAR sp: stat_t): int; *) +(* VAR errno*: INTEGER; stdin* ["__stdinp"]: PtrFILE; +*) + + PROCEDURE [ccall] __errno_location* ["__error"] (): PtrVoid; (* POSIX.1 *) PROCEDURE [ccall] stat* (path: PtrSTR; VAR sp: stat_t): int; @@ -578,6 +610,9 @@ MODULE LinLibc ["libc.so.7"]; (* ANSI C 89 *) PROCEDURE [ccall] clock* (): clock_t; + (* POSIX.1 *) + PROCEDURE [ccall] clock_gettime* (clock_id: clockid_t; VAR tp: timespec_t): int; + PROCEDURE [ccall] mmap* (adr: PtrVoid; len: size_t; prot: intFlags; flags: intFlags; fd: int; offset: off_t): PtrVoid; (* BSD *) PROCEDURE [ccall] munmap* (adr: PtrVoid; len: size_t): int; @@ -616,6 +651,7 @@ MODULE LinLibc ["libc.so.7"]; (* ANSI C 89 *) PROCEDURE [ccall] fopen* (path, mode: PtrSTR): PtrFILE; + PROCEDURE [ccall] fdopen* (fildes: int; mode: PtrSTR): PtrFILE; PROCEDURE [ccall] fclose* (stream: PtrFILE): int; PROCEDURE [ccall] fread* (ptr: PtrVoid; size: size_t; nmemb: size_t; stream: PtrFILE): size_t; PROCEDURE [ccall] fwrite* (ptr: PtrVoid; size: size_t; nmemb: size_t; stream: PtrFILE): size_t; @@ -650,6 +686,7 @@ MODULE LinLibc ["libc.so.7"]; PROCEDURE [ccall] write* (d: int; buf: PtrVoid; nbytes: size_t): ssize_t; PROCEDURE [ccall] read* (d: int; buf: PtrVoid; nbytes: size_t): ssize_t; PROCEDURE [ccall] close* (d: int): int; + PROCEDURE [ccall] lseek* (d: int; offset: off_t; whence: int): off_t; (* POSIX.1 *) PROCEDURE [ccall] sysconf* (name: int): long; diff --git a/BlackBox/_FreeBSD_/Lin/Mod/Net.txt b/BlackBox/_FreeBSD_/Lin/Mod/Net.txt new file mode 100644 index 0000000..f0ddb5d --- /dev/null +++ b/BlackBox/_FreeBSD_/Lin/Mod/Net.txt @@ -0,0 +1,241 @@ +MODULE LinNet ["libc.so.7"]; + + (* + FreeBSD 11.0 + i386 + *) + + CONST + NULL* = 0H; + + SOCKET_ERROR* = -1; + INVALID_SOCKET* = -1; + + INADDR_NONE* = -1; + INADDR_ANY* = 0; + + (* socket domains *) + AF_UNSPEC* = 0; (* unspecified *) + AF_UNIX* = 1; (* standardized name for AF_LOCAL *) + AF_INET* = 2; (* internetwork: UDP, TCP, etc. *) + AF_INET6* = 28; (* IPv6 *) + + (* socket types *) + SOCK_STREAM* = 1; (* stream socket *) + SOCK_DGRAM* = 2; (* datagram socket *) + SOCK_RAW* = 3; (* raw-protocol interface *) + SOCK_SEQPACKET* = 5; (* sequenced packet stream *) + + (* socket protocols *) + IPPROTO_IP* = 0; (* dummy for IP *) + IPPROTO_ICMP* = 1; (* control message protocol *) + IPPROTO_TCP* = 6; (* tcp *) + IPPROTO_UDP* = 17; (* user datagram protocol *) + + (* socket options *) + SO_DEBUG* = {0}; (* turn on debugging info recording *) + SO_ACCEPTCONN* = {1}; (* socket has had listen() *) + SO_REUSEADDR* = {2}; (* allow local address reuse *) + SO_KEEPALIVE* = {3}; (* keep connections alive *) + SO_DONTROUTE* = {4}; (* just use interface addresses *) + SO_BROADCAST* = {5}; (* permit sending of broadcast msgs *) + SO_LINGER* = {7}; (* linger on close if data present *) + SO_OOBINLINE* = {8}; (* leave received OOB data in line *) + SO_NO_OFFLOAD* = {14}; (* socket cannot be offloaded *) + SO_NO_DDP* = {15}; (* disable direct data placement *) + SO_SNDBUF* = {0,12}; (* send buffer size *) + SO_RCVBUF* = {1,12}; (* receive buffer size *) + SO_SNDLOWAT* = {0,1,12}; (* send low-water mark *) + SO_RCVLOWAT* = {2,12}; (* receive low-water mark *) + SO_SNDTIMEO* = {0,2,12}; (* send timeout *) + SO_RCVTIMEO* = {1,2,12}; (* receive timeout *) + SO_ERROR* = {0..2,12}; (* get error status and clear *) + SO_TYPE* = {3,12}; (* get socket type *) + + SHUT_RD* = 0; (* shut down the reading side *) + SHUT_WR* = 1; (* shut down the writing side *) + SHUT_RDWR* = 2; (* shut down both sides *) + + SOL_SOCKET* = 0FFFFH; (* {0..15} *) (* options for socket level *) + + MSG_OOB* = {0}; (* process out-of-band data *) + MSG_PEEK* = {1}; (* peek at incoming message *) + MSG_DONTROUTE* = {2}; (* send without using routing tables *) + MSG_EOR* = {3}; (* data completes record *) + MSG_TRUNC* = {4}; (* data discarded before delivery *) + MSG_CTRUNC* = {5}; (* control data lost before delivery *) + MSG_WAITALL* = {6}; (* wait for full request or error *) + + SOMAXCONN* = 128; + + (* addrinfo.ai_flags *) + AI_PASSIVE* = {0}; (* get address to use bind() *) + AI_CANONNAME* = {1}; (* fill ai_canonname *) + AI_NUMERICHOST* = {2}; (* prevent host name resolution *) + AI_NUMERICSERV* = {3}; (* prevent service name resolution *) + AI_ALL* = {8}; (* IPv6 and IPv4-mapped (with AI_V4MAPPED) *) + AI_V4MAPPED_CFG* = {9}; (* accept IPv4-mapped if kernel supports *) + AI_ADDRCONFIG* = {10}; (* only if any address is assigned *) + AI_V4MAPPED* = {11}; (* accept IPv4-mapped IPv6 address *) + + (* getaddrinfo/getnameinfo/gai_strerror error codes *) + EAI_AGAIN* = 2; (* temporary failure in name resolution *) + EAI_BADFLAGS* = 3; (* invalid value for ai_flags *) + EAI_FAIL* = 4; (* non-recoverable failure in name resolution *) + EAI_FAMILY* = 5; (* ai_family not supported *) + EAI_MEMORY* = 6; (* memory allocation failure *) + EAI_NONAME* = 8; (* hostname nor servname provided, or not known *) + EAI_SERVICE* = 9; (* servname not supported for ai_socktype *) + EAI_SOCKTYPE* = 10; (* ai_socktype not supported *) + EAI_SYSTEM* = 11; (* system error returned in errno *) + EAI_BADHINTS* = 12; (* invalid value for hints *) + EAI_PROTOCOL* = 13; (* resolved protocol is unknown *) + EAI_OVERFLOW* = 14; (* argument buffer overflow *) + EAI_MAX* = 15; + + (* FreeBSD 11.0 /usr/include/sys/select.h *) + FD_SETSIZE = 1024; + _NFDBITS = 8 * 4; + + TYPE + u_int8_t = SHORTCHAR; + int8_t = SHORTCHAR; + uint16_t = SHORTINT; + (* PtrVoid, int, intFlags, short, socklen_t, size_t, ssize_t, in_addr_t, in_port_t, time_t, suseconds_t, nfds_t, sa_family_t *) + PtrVoid* = INTEGER; + short* = SHORTINT; + int* = INTEGER; + intFlags* = SET; + size_t* = INTEGER; + ssize_t* = INTEGER; + time_t* = INTEGER; + suseconds_t* = INTEGER; + socklen_t* = INTEGER; + in_addr_t* = INTEGER; + in_port_t* = SHORTINT; + nfds_t* = INTEGER; + sa_family_t* = SHORTCHAR; + + PtrSTR* = POINTER [untagged] TO ARRAY [untagged] OF SHORTCHAR; + + SOCKET* = int; + +(* + in_addr* = RECORD [untagged] + s_addr*: in_addr_t; + END; +*) + in_addr* = RECORD [untagged] + S_un*: RECORD [union] + S_un_b*: RECORD [untagged] + s_b1*: SHORTCHAR; + s_b2*: SHORTCHAR; + s_b3*: SHORTCHAR; + s_b4*: SHORTCHAR; + END; + S_un_w*: RECORD [untagged] + s_w1*: SHORTINT; + s_w2*: SHORTINT; + END; + S_addr*: in_addr_t; + END; + END; + + Ptrsockaddr* = POINTER [untagged] TO sockaddr; + sockaddr* = RECORD [untagged] + (* FreeBSD 11.0 /usr/include/sys/socket.h *) + sa_len*: SHORTCHAR; (* total length *) + sa_family*: sa_family_t; (* address family *) + sa_data*: ARRAY [untagged] 14 OF SHORTCHAR; (* actually longer; address value *) + END; + + Ptrsockaddr_storage = POINTER [untagged] TO sockaddr_storage; + sockaddr_storage* = RECORD [untagged] + (* FreeBSD 11.0 /usr/include/sys/_sockaddr_storage.h *) + ss_len*: SHORTCHAR; (* address length *) + ss_family*: sa_family_t; (* address family *) + __ss_pad1: ARRAY [untagged] 8 - 2 OF SHORTCHAR; + __ss_align: LONGINT; (* force desired struct alignment *) + __ss_pad2: ARRAY [untagged] 128 - 1 - 1 - (8 - 2) - 8 OF SHORTCHAR; + END; + + Ptrsockaddr_in* = POINTER [untagged] TO sockaddr_in; + sockaddr_in* = RECORD [untagged] + (* FreeBSD 11.0 /usr/include/netinet/in.h *) + sin_len*: SHORTCHAR; + sin_family*: sa_family_t; + sin_port*: in_port_t; + sin_addr*: in_addr; + sin_zero*: ARRAY [untagged] 8 OF SHORTCHAR; + END; + + Ptraddrinfo* = POINTER [untagged] TO addrinfo; + addrinfo* = RECORD [untagged] + (* FreeBSD 11.0 /usr/include/netdb.h *) + ai_flags*: intFlags; + ai_family*: int; + ai_socktype*: int; + ai_protocol*: int; + ai_addrlen*: socklen_t; + ai_canonname*: PtrSTR; + ai_addr*: Ptrsockaddr; + ai_next*: Ptraddrinfo; + END; + + timeval* = RECORD [untagged] + (* Linux, FreeBSD, OpenBSD *) + tv_sec*: time_t; (* seconds *) + tv_usec*: suseconds_t; (* and microseconds *) + END; + + pollfd* = RECORD [untagged] + (* Linux, FreeBSD, OpenBSD *) + fd*: int; + events*: short; + revents*: short; + END; + + (* FreeBSD 11.0 /usr/include/sys/select.h *) + __fd_mask = SET; + fd_set* = ARRAY [untagged] (FD_SETSIZE + (_NFDBITS - 1)) DIV _NFDBITS OF __fd_mask; + + (* POSIX.1 *) + PROCEDURE [ccall] socket* (domain: int; type: int; protocol: int): SOCKET; + PROCEDURE [ccall] accept* (s: SOCKET; VAR addr: sockaddr; VAR addrlen: socklen_t): SOCKET; + PROCEDURE [ccall] bind* (s: SOCKET; VAR name: sockaddr; namelen: socklen_t): int; + PROCEDURE [ccall] connect* (s: SOCKET; VAR name: sockaddr; namelen: socklen_t): int; + PROCEDURE [ccall] getsockname* (s: SOCKET; VAR name: sockaddr; VAR namelen: socklen_t): int; + PROCEDURE [ccall] listen* (s: SOCKET; backlog: int): int; + PROCEDURE [ccall] recv* (s: SOCKET; buf: PtrVoid; len: size_t; flags: intFlags): ssize_t; + PROCEDURE [ccall] send* (s: SOCKET; msg: PtrVoid; len: size_t; flags: intFlags): ssize_t; + PROCEDURE [ccall] shutdown* (s: SOCKET; how: int): int; + PROCEDURE [ccall] getsockopt* (s: SOCKET; level: int; optname: intFlags; optval: PtrVoid; VAR [nil] optlen: socklen_t): int; + PROCEDURE [ccall] setsockopt* (s: SOCKET; level: int; optname: intFlags; optval: PtrVoid; optlen: socklen_t): int; + + PROCEDURE [ccall] inet_addr* (cp: PtrSTR): in_addr_t; + PROCEDURE [ccall] htons* (host16: uint16_t): uint16_t; + + PROCEDURE [ccall] select* (nfds: INTEGER; VAR [nil] readfds: fd_set; VAR [nil] writefds: fd_set; VAR [nil] exceptfds: fd_set; VAR timeout: timeval): int; + + PROCEDURE [ccall] poll* (VAR fds: ARRAY [untagged] OF pollfd; nfds: nfds_t; timeout: int): int; + +(* + PROCEDURE FD_ZERO (VAR set: Net.fd_set); + VAR i: INTEGER; + BEGIN + i := LEN(set); REPEAT DEC(i); set[i] := {} UNTIL i = 0 + END FD_ZERO; + + PROCEDURE FD_SET (fd: Net.SOCKET; VAR set: Net.fd_set); + BEGIN + INCL(set[fd DIV 32], fd MOD 32) + END FD_SET; +*) + + (* POSIX.1g *) + PROCEDURE [ccall] getaddrinfo* (hostname: PtrSTR; servname: PtrSTR; VAR [nil] hints: addrinfo; VAR res: Ptraddrinfo): int; + PROCEDURE [ccall] freeaddrinfo* (ai: Ptraddrinfo); + + PROCEDURE [ccall] gai_strerror* (ecode: int): PtrSTR; + +END LinNet. \ No newline at end of file diff --git a/BlackBox/_FreeBSD_/Lin/Mod/gen-Ioctl/dumpdefs.py b/BlackBox/_FreeBSD_/Lin/Mod/gen-Ioctl/dumpdefs.py new file mode 120000 index 0000000..1730591 --- /dev/null +++ b/BlackBox/_FreeBSD_/Lin/Mod/gen-Ioctl/dumpdefs.py @@ -0,0 +1 @@ +../gen-Libc/dumpdefs.py \ No newline at end of file diff --git a/BlackBox/_FreeBSD_/Lin/Mod/gen-Ioctl/libver b/BlackBox/_FreeBSD_/Lin/Mod/gen-Ioctl/libver new file mode 100644 index 0000000..127fc98 --- /dev/null +++ b/BlackBox/_FreeBSD_/Lin/Mod/gen-Ioctl/libver @@ -0,0 +1 @@ +.7 \ No newline at end of file diff --git a/BlackBox/_FreeBSD_/Lin/Mod/gen-Ioctl/machine b/BlackBox/_FreeBSD_/Lin/Mod/gen-Ioctl/machine new file mode 100644 index 0000000..fd32fa4 --- /dev/null +++ b/BlackBox/_FreeBSD_/Lin/Mod/gen-Ioctl/machine @@ -0,0 +1 @@ +i386 \ No newline at end of file diff --git a/BlackBox/_FreeBSD_/Lin/Mod/gen-Ioctl/osname b/BlackBox/_FreeBSD_/Lin/Mod/gen-Ioctl/osname new file mode 100644 index 0000000..64f5283 --- /dev/null +++ b/BlackBox/_FreeBSD_/Lin/Mod/gen-Ioctl/osname @@ -0,0 +1 @@ +FreeBSD 11.0 \ No newline at end of file diff --git a/BlackBox/_FreeBSD_/Lin/Mod/gen-Ioctl/untempl.py b/BlackBox/_FreeBSD_/Lin/Mod/gen-Ioctl/untempl.py new file mode 120000 index 0000000..5800713 --- /dev/null +++ b/BlackBox/_FreeBSD_/Lin/Mod/gen-Ioctl/untempl.py @@ -0,0 +1 @@ +../gen-Libc/untempl.py \ No newline at end of file diff --git a/BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/Makefile b/BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/Makefile index 07b85b3..fc56da2 100644 --- a/BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/Makefile +++ b/BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/Makefile @@ -20,7 +20,7 @@ clockspersec: defs-map: ./dumpdefs.py 2 1 s ${INCDIR}/sys/mman.h | grep " MAP_" > ${.TARGET} - ./dumpdefs.py 2 2 s ${INCDIR}/sys/mman.h | grep " MAP_" >> ${.TARGET} + ./dumpdefs.py 2 2 s ${INCDIR}/sys/mman.h | grep " MAP_" | grep -v " = MAP_" >> ${.TARGET} defs-prot: ./dumpdefs.py 2 1 s ${INCDIR}/sys/mman.h | grep " PROT_" > ${.TARGET} @@ -41,7 +41,7 @@ defs-sa: defs-errno: ./dumpdefs.py 2 0 i ${INCDIR}/sys/errno.h > ${.TARGET} ./dumpdefs.py 2 1 i ${INCDIR}/sys/errno.h >> ${.TARGET} - ./dumpdefs.py 2 2 i ${INCDIR}/sys/errno.h >> ${.TARGET} + ./dumpdefs.py 2 2 i ${INCDIR}/sys/errno.h | grep -v "= -" >> ${.TARGET} namemax: grep " NAME_MAX " ${INCDIR}/sys/syslimits.h | head -1 | awk '{print $$3}' | tr -d '\n' > ${.TARGET} diff --git a/BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/custom b/BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/custom index 164cf8d..14bdda7 100644 --- a/BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/custom +++ b/BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/custom @@ -1,6 +1,10 @@ +(* VAR errno*: INTEGER; stdin* ["__stdinp"]: PtrFILE; +*) + + PROCEDURE [ccall] __errno_location* ["__error"] (): PtrVoid; (* POSIX.1 *) PROCEDURE [ccall] stat* (path: PtrSTR; VAR sp: stat_t): int; diff --git a/BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/defs-clockid b/BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/defs-clockid new file mode 100644 index 0000000..468e15d --- /dev/null +++ b/BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/defs-clockid @@ -0,0 +1,15 @@ + (* FreeBSD 11.0 /usr/include/time.h *) + CLOCK_REALTIME* = 0; + CLOCK_VIRTUAL* = 1; + CLOCK_PROF* = 2; + CLOCK_MONOTONIC* = 4; + CLOCK_UPTIME* = 5; (* FreeBSD-specific *) + CLOCK_UPTIME_PRECISE* = 7; (* FreeBSD-specific *) + CLOCK_UPTIME_FAST* = 8; (* FreeBSD-specific *) + CLOCK_REALTIME_PRECISE* = 9; (* FreeBSD-specific *) + CLOCK_REALTIME_FAST* = 10; (* FreeBSD-specific *) + CLOCK_MONOTONIC_PRECISE* = 11; (* FreeBSD-specific *) + CLOCK_MONOTONIC_FAST* = 12; (* FreeBSD-specific *) + CLOCK_SECOND* = 13; (* FreeBSD-specific *) + CLOCK_THREAD_CPUTIME_ID* = 14; + CLOCK_PROCESS_CPUTIME_ID* = 15; \ No newline at end of file diff --git a/BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/fields-timespec b/BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/fields-timespec new file mode 100644 index 0000000..c4a5b7c --- /dev/null +++ b/BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/fields-timespec @@ -0,0 +1,3 @@ + (* FreeBSD 11.0 /usr/include/sys/_timespec.h *) + tv_sec*: time_t; (* seconds *) + tv_nsec*: long; (* and nanoseconds *) \ No newline at end of file diff --git a/BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/osname b/BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/osname index 8190701..64f5283 100644 --- a/BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/osname +++ b/BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/osname @@ -1 +1 @@ -FreeBSD 9.0 \ No newline at end of file +FreeBSD 11.0 \ No newline at end of file diff --git a/BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/sizeofs.c b/BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/sizeofs.c index 42fb910..99f380a 100644 --- a/BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/sizeofs.c +++ b/BlackBox/_FreeBSD_/Lin/Mod/gen-Libc/sizeofs.c @@ -59,6 +59,7 @@ int main () D("ssize_t", sizeof(ssize_t), FALSE, TRUE); D("off_t", sizeof(off_t), FALSE, TRUE); D("clock_t", sizeof(clock_t), FALSE, TRUE); + D("clockid_t", sizeof(clockid_t), FALSE, TRUE); D("time_t", sizeof(time_t), FALSE, TRUE); D("mode_t", sizeof(mode_t), TRUE, TRUE); D("pid_t", sizeof(pid_t), FALSE, TRUE); diff --git a/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/Makefile b/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/Makefile new file mode 100644 index 0000000..dadffc4 --- /dev/null +++ b/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/Makefile @@ -0,0 +1,52 @@ +# This is BSD Makefile +# BSD GNU +# ${.TARGET} $@ +# ${.ALLSRC} $^ +# ${.IMPSRC} $< + +INCDIR ?= /usr/include + +PY = python2.7 + +DEFS = defs-basictypes defs-af defs-sock defs-proto defs-shut defs-so defs-sol defs-msg defs-ai defs-eai defs-somaxconn + +all: Net.txt ${DEFS} + +Net.txt: Net.txt.templ ${DEFS} libver osname machine fields-sockaddr fields-sockaddr_in fields-sockaddr_storage fields-addrinfo defs-fd_set-const defs-fd_set-type + ${PY} ./untempl.py Net.txt.templ ${.TARGET} + +defs-basictypes: sizeofs + ./sizeofs > ${.TARGET} + +defs-af: + ./dumpdefs.py 3 1 i ${INCDIR}/sys/socket.h | grep " AF_" > ${.TARGET} + +defs-sock: + ./dumpdefs.py 3 1 i ${INCDIR}/sys/socket.h | grep " SOCK_" > ${.TARGET} + +defs-proto: + ./dumpdefs.py 3 1 i ${INCDIR}/netinet/in.h | grep " IPPROTO_" > ${.TARGET} + +defs-sol: + ./dumpdefs.py 2 1 i ${INCDIR}/sys/socket.h | grep " SOL_" > ${.TARGET} + +defs-msg: + ./dumpdefs.py 2 1 s ${INCDIR}/sys/socket.h | grep " MSG_" > ${.TARGET} + +defs-somaxconn: + ./dumpdefs.py 2 1 i ${INCDIR}/sys/socket.h | grep " SOMAXCONN" > ${.TARGET} + +defs-so: + ./dumpdefs.py 3 1 s ${INCDIR}/sys/socket.h | grep " SO_" > ${.TARGET} + +defs-shut: + ./dumpdefs.py 2 1 i ${INCDIR}/sys/socket.h | grep " SHUT_" > ${.TARGET} + +defs-ai: + ./dumpdefs.py 3 1 s ${INCDIR}/netdb.h | grep " AI_" > ${.TARGET} + +defs-eai: + ./dumpdefs.py 3 1 i ${INCDIR}/netdb.h | grep " EAI_" > ${.TARGET} + +clean: + rm -f ${DEFS} Net.txt sizeofs diff --git a/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/defs-fd_set-const b/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/defs-fd_set-const new file mode 100644 index 0000000..99eac81 --- /dev/null +++ b/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/defs-fd_set-const @@ -0,0 +1,3 @@ + (* FreeBSD 11.0 /usr/include/sys/select.h *) + FD_SETSIZE = 1024; + _NFDBITS = 8 * 4; diff --git a/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/defs-fd_set-type b/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/defs-fd_set-type new file mode 100644 index 0000000..604bf5f --- /dev/null +++ b/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/defs-fd_set-type @@ -0,0 +1,3 @@ + (* FreeBSD 11.0 /usr/include/sys/select.h *) + __fd_mask = SET; + fd_set* = ARRAY [untagged] (FD_SETSIZE + (_NFDBITS - 1)) DIV _NFDBITS OF __fd_mask; diff --git a/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/dumpdefs.py b/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/dumpdefs.py new file mode 120000 index 0000000..1730591 --- /dev/null +++ b/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/dumpdefs.py @@ -0,0 +1 @@ +../gen-Libc/dumpdefs.py \ No newline at end of file diff --git a/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/fields-addrinfo b/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/fields-addrinfo new file mode 100644 index 0000000..0140000 --- /dev/null +++ b/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/fields-addrinfo @@ -0,0 +1,9 @@ + (* FreeBSD 11.0 /usr/include/netdb.h *) + ai_flags*: intFlags; + ai_family*: int; + ai_socktype*: int; + ai_protocol*: int; + ai_addrlen*: socklen_t; + ai_canonname*: PtrSTR; + ai_addr*: Ptrsockaddr; + ai_next*: Ptraddrinfo; \ No newline at end of file diff --git a/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/fields-sockaddr b/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/fields-sockaddr new file mode 100644 index 0000000..239887f --- /dev/null +++ b/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/fields-sockaddr @@ -0,0 +1,4 @@ + (* FreeBSD 11.0 /usr/include/sys/socket.h *) + sa_len*: SHORTCHAR; (* total length *) + sa_family*: sa_family_t; (* address family *) + sa_data*: ARRAY [untagged] 14 OF SHORTCHAR; (* actually longer; address value *) \ No newline at end of file diff --git a/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/fields-sockaddr_in b/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/fields-sockaddr_in new file mode 100644 index 0000000..9f5a721 --- /dev/null +++ b/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/fields-sockaddr_in @@ -0,0 +1,6 @@ + (* FreeBSD 11.0 /usr/include/netinet/in.h *) + sin_len*: SHORTCHAR; + sin_family*: sa_family_t; + sin_port*: in_port_t; + sin_addr*: in_addr; + sin_zero*: ARRAY [untagged] 8 OF SHORTCHAR; \ No newline at end of file diff --git a/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/fields-sockaddr_storage b/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/fields-sockaddr_storage new file mode 100644 index 0000000..1772596 --- /dev/null +++ b/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/fields-sockaddr_storage @@ -0,0 +1,6 @@ + (* FreeBSD 11.0 /usr/include/sys/_sockaddr_storage.h *) + ss_len*: SHORTCHAR; (* address length *) + ss_family*: sa_family_t; (* address family *) + __ss_pad1: ARRAY [untagged] 8 - 2 OF SHORTCHAR; + __ss_align: LONGINT; (* force desired struct alignment *) + __ss_pad2: ARRAY [untagged] 128 - 1 - 1 - (8 - 2) - 8 OF SHORTCHAR; \ No newline at end of file diff --git a/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/libver b/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/libver new file mode 100644 index 0000000..127fc98 --- /dev/null +++ b/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/libver @@ -0,0 +1 @@ +.7 \ No newline at end of file diff --git a/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/machine b/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/machine new file mode 100644 index 0000000..fd32fa4 --- /dev/null +++ b/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/machine @@ -0,0 +1 @@ +i386 \ No newline at end of file diff --git a/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/osname b/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/osname new file mode 100644 index 0000000..64f5283 --- /dev/null +++ b/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/osname @@ -0,0 +1 @@ +FreeBSD 11.0 \ No newline at end of file diff --git a/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/untempl.py b/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/untempl.py new file mode 120000 index 0000000..5800713 --- /dev/null +++ b/BlackBox/_FreeBSD_/Lin/Mod/gen-Net/untempl.py @@ -0,0 +1 @@ +../gen-Libc/untempl.py \ No newline at end of file diff --git a/BlackBox/_FreeBSD_/Lin/Rsrc/loader/loader b/BlackBox/_FreeBSD_/Lin/Rsrc/loader/loader index 425a7b30c4885fec3c112ca8b1758abaebaf6c1b..058053a81bd7f6750f9f925f41178165b69fb722 100755 GIT binary patch literal 7446 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 Ub4nHPCV$u|$&+tDvR}l107XcYcK`qY literal 7685 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 Vsl~<9)r1-6;g;ThO_=c~8vqPInZy79 delta 447 zcmcbxo#p&imI?JtK2j4KW4UHYGBR*7FfdG#ocO|p$wqRr9;2P`ZgEBiexTrHAPoU) zH`g<=GO=c8u`pCj?qpuW`r#iVkY&Z94He5`$%Kn3@$mt5fwe+3aImIflbkS%iJ@Zi zVpcgORxopN0EgVE;fJgWQ^e%nS_N>L3AOpv(9L zKrA*O!3`8=VD|^HSU{{bn~PN5F>cOOTPw4<+4+g>+g zKywJIPi9iG-sUCE>-whK3ouGdUoFHaz^dTt=VCqmj1c1qSq&|PV9zL5jodg*1uabl zLjwZ^ZHS0pV(#>L!iTAc5SQKlMTGGV8vu%p BbVL9E diff --git a/BlackBox/_FreeBSD_/libBB.so b/BlackBox/_FreeBSD_/libBB.so index 6ef9ef509c9982b761a9337ad21d47b09fb61bbe..9b520c9ae816f1dcff7368bc08b14e2989dbd300 100644 GIT binary patch delta 37010 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�jqhn5k4y~vR=w!gCz%r7v{@4p@omSI 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 W5l{!G3!E4PSHPM+#^2^htN#z7Im$`^ delta 37490 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 X7TLPv$E0}z7fMmP;oD@- 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 diff --git a/BlackBox/_Linux_/Comm/Mod/TCP.odc b/BlackBox/_Linux_/Comm/Mod/TCP.odc index 99984081d80b19f31bc4aa0b56ca72f2e4e60257..b213fe6ac68c03c565129e3d4ea99feee3e00d21 100644 GIT binary patch delta 2221 zcma)7O>7%g5Z?7~*7>PW3nZkWOGukU-MC3efhK^ojn~D(UR$=6Vj*g__H(jiy&HDd z3E@Wzl@J0U(e_E)sE~kLIr+eeBSIWGlpBasRf!u1!~r2@-tIcF6Co_wp8ej;_h!DC zvA_C^zx@S&(~Epsy!HO8sb5r%6F82$r`~#yiFhha^DmtIC(m&w0Q?ia{ntv@!RKK-IfWME`?`B|_yW%l(Qik7;D@^2=!bkl5|7m!9AAIadpca;JPelvU&MR zL_mTn%mte?tX*Pj*9~C!ziAy6&PPBrNWj>KBwkvD~M;k4R#hv@K9bGYqSt zp(0^c10|`&j9iru>!KFv$*Cv2ut!JyRk@(_`y(P9G!+``5PP@R;2qoA)tjU#iEx7D zY@62JV26quN;#V^UJaQ&9HS5fJ?za+o0zV6z0+zDTSTo}hP5}4T}3HxZah-Iy54hlOzk5Io2eh_4 z>9JeTtEUDyA{ok8uT;y5T&N*AAYYipCUHZR=A13~RVu0QGbJGh3^+<5L6cDJd3K|< zjghto3}Je?tO#iJMMcHd2yz7musY`liBBSvA1Z)j05f_0ZTH0}W$QUrsm?P7K{$8V zv8V7MfjwX0WBq$VAJO?(cPu|h^PmWUp-`zmwdoBxKZi|&VZ(GZ4}$8t8ES*|U_?-; zpqpVley1JXWXG&JC0|icFd)y$VEdq&Ve$%iNy{b#<8Y({!2;qyTWfokmBOfCR}|c( zx#`2boS$a7b;-G@Xfg|gmn)g>d-LB%CbV!3SRq)4KM^9CZr!)k)#T-*_y3!w1tP0%BVpGtl2P+S0Tw|4a&QwvqD~u{mwsw2uywl*~I#Rv?1;vaCoRmBv^Mb@>ghV<94H!EH1FdWX>WZP2t|~e# zsHUQ;xe`=#UDE?TmSvmkWT(c)xNNqyOpS~{Rcn&f{8M69k_Azc$HgfjSr@jl5xArl zRqdJz^O|8cnM#>yIdL+<3w2$Ch}fx6&0SVtNz;l;SKwl3W4G>YuHl=w$f+W)|gSLP|7A(N^DH2QfuzPaJLTc?we29GrLdkj53&)R$xSt52GG zjftbz2lk^=!DV)kJSLaUa%dyii@pcXmg^ewCFHLzDkf3QEfa@+Bd_V^q<~>4PNZ6q zX^ zhfpA5cb1p&+o+lq3iq{HV)PZ=O-%Iau!c5Yw5u0X6drnqUL19!?%~5UzD^APWb8~! IIkd6sFOB*d#Q*>R diff --git a/BlackBox/_Linux_/Lin/Mod/Ioctl.txt b/BlackBox/_Linux_/Lin/Mod/Ioctl.txt index 0431f39..8a848ef 100644 --- a/BlackBox/_Linux_/Lin/Mod/Ioctl.txt +++ b/BlackBox/_Linux_/Lin/Mod/Ioctl.txt @@ -1,23 +1,20 @@ MODULE LinIoctl ["libc.so.6"]; (* - A. V. Shiryaev, 2012.11 - GNU/Linux i386 *) CONST - (* /usr/include/i386-linux-gnu/bits/ioctl-types.h *) - TIOCM_LE* = {0}; - TIOCM_DTR* = {1}; - TIOCM_RTS* = {2}; - TIOCM_ST* = {3}; - TIOCM_SR* = {4}; - TIOCM_CTS* = {5}; - TIOCM_CAR* = {6}; - TIOCM_RNG* = {7}; - TIOCM_DSR* = {8}; + TIOCM_LE* = {0}; + TIOCM_DTR* = {1}; + TIOCM_RTS* = {2}; + TIOCM_ST* = {3}; + TIOCM_SR* = {4}; + TIOCM_CTS* = {5}; + TIOCM_CAR* = {6}; + TIOCM_RNG* = {7}; + TIOCM_DSR* = {8}; FIOCLEX* = 21585; FIONCLEX* = 21584; @@ -37,4 +34,4 @@ MODULE LinIoctl ["libc.so.6"]; PROCEDURE [ccall] ioctl0* ["ioctl"] (d: INTEGER; req: INTEGER): INTEGER; PROCEDURE [ccall] ioctl1* ["ioctl"] (d: INTEGER; req: INTEGER; VAR arg: INTEGER): INTEGER; -END LinIoctl. +END LinIoctl. \ No newline at end of file diff --git a/BlackBox/_Linux_/Lin/Mod/Libc.odc b/BlackBox/_Linux_/Lin/Mod/Libc.odc index 4940bdab271c42da04735c2097d9718806e25b93..776f6d161328e6fc2beaf7f7dc0fc0796aa29c2b 100644 GIT binary patch delta 311 zcmca}fbsJ|#tHRI1ql-yV>$Q5Gca&6FfeSJ_}rB#A%3zRqn+^MSOx}upxA974FRV% z*E6y*vDQ9jX3(G9$-ItL`8FevWy7Kk70Y4ChKk*Ri}A3gA&IfgWdiD0&bo{h!V+cI zo?Oeu3FUROwL(~%McKDAGUjYP%i+r*r~|Tn9wP$-t22mI$h28eaHp0nXK;v%r(e9A zr;n?jzm|fnf`K(JCrHpgGz3Z15Gv{#6oe$Y`Kqr)3vqRK4YJ<6D_{{n05Z2yIRF3v delta 207 zcmex-knzp|#tHRIH{&NZ#&W91Gca&6FfhnZeD2D0GH$XSqn)r%ECT~SP|O8LL%@N} z^^B}ctgH4hGbB&$WM0SWewz`qU_rl8MQW_ $@ -Ioctl.txt: Ioctl.txt.templ ${DEFS} +Ioctl.txt: Ioctl.txt.templ ${DEFS} libver osname machine ${PY} ./untempl.py Ioctl.txt.templ $@ -defs-ioctl1: - ./dumpdefs.py 3 0 s ${INCDIR}/i386-linux-gnu/bits/ioctl-types.h | grep TIOCM_ > $@ +defs-tiocm: + ./dumpdefs.py 2 0 s ${INCDIR}/i386-linux-gnu/bits/ioctl-types.h | grep TIOCM_ > $@ clean: rm -f mkioctl Ioctl.txt ${DEFS} diff --git a/BlackBox/_Linux_/Lin/Mod/gen-Ioctl/libver b/BlackBox/_Linux_/Lin/Mod/gen-Ioctl/libver new file mode 100644 index 0000000..ed44321 --- /dev/null +++ b/BlackBox/_Linux_/Lin/Mod/gen-Ioctl/libver @@ -0,0 +1 @@ +.6 \ No newline at end of file diff --git a/BlackBox/_Linux_/Lin/Mod/gen-Ioctl/machine b/BlackBox/_Linux_/Lin/Mod/gen-Ioctl/machine new file mode 100644 index 0000000..fd32fa4 --- /dev/null +++ b/BlackBox/_Linux_/Lin/Mod/gen-Ioctl/machine @@ -0,0 +1 @@ +i386 \ No newline at end of file diff --git a/BlackBox/_Linux_/Lin/Mod/gen-Ioctl/osname b/BlackBox/_Linux_/Lin/Mod/gen-Ioctl/osname new file mode 100644 index 0000000..48fc79c --- /dev/null +++ b/BlackBox/_Linux_/Lin/Mod/gen-Ioctl/osname @@ -0,0 +1 @@ +GNU/Linux \ No newline at end of file diff --git a/BlackBox/_Linux_/Lin/Mod/gen-Net/Makefile b/BlackBox/_Linux_/Lin/Mod/gen-Net/Makefile index 4f00e45..42ef267 100644 --- a/BlackBox/_Linux_/Lin/Mod/gen-Net/Makefile +++ b/BlackBox/_Linux_/Lin/Mod/gen-Net/Makefile @@ -1,25 +1,40 @@ -# This is GNU Makefile +# This is BSD Makefile # BSD GNU -# ${.TARGET} $@ +# $@ $@ # ${.ALLSRC} $^ # ${.IMPSRC} $< INCDIR ?= /usr/include -all: Net.txt dumphstrerrno - PY = python2.7 -DEFS = defs-socket defs-so -Net.txt: Net.txt.templ ${DEFS} defs-netdb defs-in defs-sock +DEFS = defs-basictypes defs-af defs-so defs-sol defs-ai defs-eai defs-somaxconn + +all: Net.txt ${DEFS} + +Net.txt: Net.txt.templ ${DEFS} libver osname machine fields-sockaddr fields-sockaddr_in fields-sockaddr_storage fields-addrinfo defs-fd_set-const defs-fd_set-type ${PY} ./untempl.py Net.txt.templ $@ -defs-socket: +defs-basictypes: sizeofs + ./sizeofs > $@ + +defs-af: ./dumpdefs.py 3 1 i ${INCDIR}/i386-linux-gnu/bits/socket.h | grep " PF_" > $@ - ./dumpdefs.py 3 1 i ${INCDIR}/i386-linux-gnu/bits/socket.h | grep " SOMAXCONN" >> $@ + +defs-sol: + ./dumpdefs.py 2 1 i ${INCDIR}/asm-generic/socket.h | grep " SOL_" > $@ + +defs-somaxconn: + ./dumpdefs.py 2 1 i ${INCDIR}/i386-linux-gnu/bits/socket.h | grep " SOMAXCONN" > $@ defs-so: ./dumpdefs.py 3 1 s ${INCDIR}/asm-generic/socket.h | grep " SO_" > $@ +defs-ai: + ./dumpdefs.py 3 2 s ${INCDIR}/netdb.h | grep " AI_" > $@ + +defs-eai: + ./dumpdefs.py 3 2 i ${INCDIR}/netdb.h | grep " EAI_" > $@ + clean: - rm -f Net.txt ${DEFS} dumphstrerrno + rm -f ${DEFS} Net.txt sizeofs diff --git a/BlackBox/_Linux_/Lin/Mod/gen-Net/Net.txt.templ b/BlackBox/_Linux_/Lin/Mod/gen-Net/Net.txt.templ deleted file mode 100644 index 756fa5e..0000000 --- a/BlackBox/_Linux_/Lin/Mod/gen-Net/Net.txt.templ +++ /dev/null @@ -1,139 +0,0 @@ -MODULE LinNet ["libc.so.6"]; - - (* - A. V. Shiryaev, 2012.11 - - GNU/Linux - 32-bit - *) - - IMPORT Libc := LinLibc; - - CONST - INVALID_SOCKET* = -1; - SOCKET_ERROR* = -1; - - (* /usr/include/i386-linux-gnu/bits/socket.h *) - SHUT_RD* = 0; - SHUT_WR* = 1; - SHUT_RDWR* = 2; -%%defs-sock%% -%%defs-socket%% - (* /usr/include/asm-generic/socket.h *) -%%defs-so%% - (* /usr/include/netinet/in.h *) - INADDR_NONE* = -1; -%%defs-in%% - (* /usr/include/asm-generic/param.h *) - MAXHOSTNAMELEN* = 64; (* max length of hostname *) - - (* /usr/include/netdb.h *) -%%defs-netdb%% - (* /usr/include/i386-linux-gnu/bits/typesizes.h *) - __FD_SETSIZE = 1024; - - TYPE - SOCKET* = INTEGER; - - (* /usr/include/i386-linux-gnu/bits/types.h *) - socklen_t* = INTEGER; - (* /usr/include/i386-linux-gnu/bits/sockaddr.h *) - sa_family_t* = SHORTINT; (* unsigned short int *) - (* /usr/include/netinet/in.h *) - in_addr_t* = INTEGER; - in_port_t* = SHORTINT; - - (* /usr/include/i386-linux-gnu/bits/socket.h *) - sockaddr* = RECORD [untagged] - sa_family: sa_family_t; - sa_data: ARRAY [untagged] 14 OF SHORTCHAR; - END; - - (* /usr/include/linux/in.h *) -(* - in_addr* = INTEGER; -*) - in_addr* = RECORD [untagged] - S_un*: RECORD [union] - S_un_b*: RECORD [untagged] - s_b1*: SHORTCHAR; - s_b2*: SHORTCHAR; - s_b3*: SHORTCHAR; - s_b4*: SHORTCHAR; - END; - S_un_w*: RECORD [untagged] - s_w1*: SHORTINT; - s_w2*: SHORTINT; - END; - S_addr*: in_addr_t; - END; - END; - - (* /usr/include/linux/in.h *) - sockaddr_in* = RECORD [untagged] - sin_family*: sa_family_t; (* address family *) - sin_port*: SHORTINT; (* port number *) - sin_addr*: in_addr; (* internet address *) - __pad: ARRAY [untagged] 8 OF SHORTCHAR; - END; - - (* /usr/include/netdb.h *) - Ptrhostent* = POINTER TO hostent; - hostent* = RECORD [untagged] - h_name*: Libc.PtrSTR; (* official name of host *) - h_aliases*: POINTER TO ARRAY [untagged] OF Libc.PtrSTR; (* alias list *) - h_addrtype*: INTEGER; (* host address type *) - h_length*: INTEGER; (* length of address *) - h_addr_list*: POINTER TO ARRAY [untagged] OF POINTER TO ARRAY [untagged] OF in_addr; (* list of addresses from name server *) - END; - - (* /usr/include/linux/time.h *) - (* /usr/include/asm-generic/posix_types.h *) - timeval* = RECORD [untagged] - tv_sec*: INTEGER; (* seconds *) - tv_usec*: INTEGER; (* microseconds *) - END; - - (* /usr/include/i386-linux-gnu/sys/select.h *) - __fd_mask = SET; - fd_set* = ARRAY [untagged] __FD_SETSIZE DIV (SIZE(__fd_mask) * 8) OF __fd_mask; - - VAR - h_errno*: INTEGER; - - PROCEDURE [ccall] socket* (domain: INTEGER; type: INTEGER; protocol: INTEGER): SOCKET; - PROCEDURE [ccall] accept* (sockfd: SOCKET; VAR addr: sockaddr; VAR addrlen: socklen_t): SOCKET; - PROCEDURE [ccall] bind* (sockfd: SOCKET; VAR addr: sockaddr; addrlen: socklen_t): INTEGER; - PROCEDURE [ccall] connect* (sockfd: SOCKET; VAR addr: sockaddr; addrlen: socklen_t): INTEGER; - PROCEDURE [ccall] listen* (sockfd: SOCKET; backlog: INTEGER): INTEGER; - PROCEDURE [ccall] recv* (soskfd: SOCKET; buf: Libc.PtrVoid; len: Libc.size_t; flags: SET): Libc.ssize_t; - PROCEDURE [ccall] send* (sockfd: SOCKET; buf: Libc.PtrVoid; len: Libc.size_t; flags: SET): Libc.ssize_t; - PROCEDURE [ccall] shutdown* (sockfd: SOCKET; how: INTEGER): INTEGER; - PROCEDURE [ccall] getsockopt* (sockfd: SOCKET; level: INTEGER; optname: SET; optval: Libc.PtrVoid; VAR optlen: socklen_t): INTEGER; - PROCEDURE [ccall] setsockopt* (sockfd: SOCKET; level: INTEGER; optname: SET; optval: Libc.PtrVoid; optlen: socklen_t): INTEGER; - - PROCEDURE [ccall] htons* (hostshort: SHORTINT): SHORTINT; - - PROCEDURE [ccall] gethostbyname* (name: Libc.PtrSTR): Ptrhostent; - PROCEDURE [ccall] inet_addr* (cp: Libc.PtrSTR): in_addr_t; - - PROCEDURE [ccall] getsockname* (sockfd: SOCKET; VAR addr: sockaddr; VAR addrlen: socklen_t): INTEGER; - - PROCEDURE [ccall] hstrerror* (err: INTEGER): Libc.PtrSTR; - -(* - PROCEDURE FD_ZERO (VAR set: Net.fd_set); - VAR i: INTEGER; - BEGIN - i := LEN(set); REPEAT DEC(i); set[i] := {} UNTIL i = 0 - END FD_ZERO; - - PROCEDURE FD_SET (fd: Net.SOCKET; VAR set: Net.fd_set); - BEGIN - INCL(set[fd DIV 32], fd MOD 32) - END FD_SET; -*) - - PROCEDURE [ccall] select* (nfds: INTEGER; VAR [nil] readfds: fd_set; VAR [nil] writefds: fd_set; VAR [nil] exceptfds: fd_set; VAR timeout: timeval): INTEGER; - -END LinNet. diff --git a/BlackBox/_Linux_/Lin/Mod/gen-Net/defs-fd_set-const b/BlackBox/_Linux_/Lin/Mod/gen-Net/defs-fd_set-const new file mode 100644 index 0000000..4e6a62d --- /dev/null +++ b/BlackBox/_Linux_/Lin/Mod/gen-Net/defs-fd_set-const @@ -0,0 +1,2 @@ + (* /usr/include/i386-linux-gnu/bits/typesizes.h *) + __FD_SETSIZE = 1024; diff --git a/BlackBox/_Linux_/Lin/Mod/gen-Net/defs-fd_set-type b/BlackBox/_Linux_/Lin/Mod/gen-Net/defs-fd_set-type new file mode 100644 index 0000000..23da835 --- /dev/null +++ b/BlackBox/_Linux_/Lin/Mod/gen-Net/defs-fd_set-type @@ -0,0 +1,3 @@ + (* /usr/include/i386-linux-gnu/sys/select.h *) + __fd_mask = SET; + fd_set* = ARRAY [untagged] __FD_SETSIZE DIV (SIZE(__fd_mask) * 8) OF __fd_mask; diff --git a/BlackBox/_Linux_/Lin/Mod/gen-Net/defs-msg b/BlackBox/_Linux_/Lin/Mod/gen-Net/defs-msg new file mode 100644 index 0000000..938b43d --- /dev/null +++ b/BlackBox/_Linux_/Lin/Mod/gen-Net/defs-msg @@ -0,0 +1,18 @@ + (* /usr/include/i386-linux-gnu/bits/socket.h *) + MSG_OOB* = {0}; + MSG_PEEK* = {1}; + MSG_DONTROUTE* = {2}; + MSG_CTRUNC* = {3}; + MSG_PROXY* = {4}; + MSG_TRUNC* = {5}; + MSG_DONTWAIT* = {6}; + MSG_EOR* = {7}; + MSG_WAITALL* = {8}; + MSG_FIN* = {9}; + MSG_SYN* = {10}; + MSG_CONFIRM* = {11}; + MSG_RST* = {12}; + MSG_ERRQUEUE* = {13}; + MSG_NOSIGNAL* = {14}; + MSG_MORE* = {15}; + MSG_WAITFORONE* = {16}; diff --git a/BlackBox/_Linux_/Lin/Mod/gen-Net/defs-netdb b/BlackBox/_Linux_/Lin/Mod/gen-Net/defs-netdb deleted file mode 100644 index 4b218bb..0000000 --- a/BlackBox/_Linux_/Lin/Mod/gen-Net/defs-netdb +++ /dev/null @@ -1,6 +0,0 @@ - NETDB_INTERNAL* = -1; (* See errno. *) - NETDB_SUCCESS* = 0; (* No problem. *) - HOST_NOT_FOUND* = 1; (* Authoritative Answer Host not found. *) - TRY_AGAIN* = 2; (* Non-Authoritative Host not found, or SERVERFAIL. *) - NO_RECOVERY* = 3; (* Non recoverable errors, FORMERR, REFUSED, NOTIMP. *) - NO_DATA* = 4; (* Valid name, no data record of requested type. *) diff --git a/BlackBox/_Linux_/Lin/Mod/gen-Net/defs-in b/BlackBox/_Linux_/Lin/Mod/gen-Net/defs-proto similarity index 100% rename from BlackBox/_Linux_/Lin/Mod/gen-Net/defs-in rename to BlackBox/_Linux_/Lin/Mod/gen-Net/defs-proto diff --git a/BlackBox/_Linux_/Lin/Mod/gen-Net/defs-shut b/BlackBox/_Linux_/Lin/Mod/gen-Net/defs-shut new file mode 100644 index 0000000..52bab53 --- /dev/null +++ b/BlackBox/_Linux_/Lin/Mod/gen-Net/defs-shut @@ -0,0 +1,4 @@ + (* /usr/include/i386-linux-gnu/sys/socket.h *) + SHUT_RD* = 0; + SHUT_WR* = 1; + SHUT_RDWR* = 2; diff --git a/BlackBox/_Linux_/Lin/Mod/gen-Net/defs-sock b/BlackBox/_Linux_/Lin/Mod/gen-Net/defs-sock index 158217a..dbfa8da 100644 --- a/BlackBox/_Linux_/Lin/Mod/gen-Net/defs-sock +++ b/BlackBox/_Linux_/Lin/Mod/gen-Net/defs-sock @@ -1,7 +1,8 @@ - SOCK_STREAM* = 1; - SOCK_DGRAM* = 2; - SOCK_RAW* = 3; - SOCK_RDM* = 4; - SOCK_SEQPACKET* = 5; - SOCK_DCCP* = 6; - SOCK_PACKET* = 10; + (* /usr/include/i386-linux-gnu/bits/socket_type.h *) + SOCK_STREAM* = 1; + SOCK_DGRAM* = 2; + SOCK_RAW* = 3; + SOCK_RDM* = 4; + SOCK_SEQPACKET* = 5; + SOCK_DCCP* = 6; + SOCK_PACKET* = 10; diff --git a/BlackBox/_Linux_/Lin/Mod/gen-Net/dumphstrerrno.c b/BlackBox/_Linux_/Lin/Mod/gen-Net/dumphstrerrno.c deleted file mode 120000 index d87b25c..0000000 --- a/BlackBox/_Linux_/Lin/Mod/gen-Net/dumphstrerrno.c +++ /dev/null @@ -1 +0,0 @@ -../../../../_OpenBSD_/Lin/Mod/gen-Net/dumphstrerrno.c \ No newline at end of file diff --git a/BlackBox/_Linux_/Lin/Mod/gen-Net/fields-addrinfo b/BlackBox/_Linux_/Lin/Mod/gen-Net/fields-addrinfo new file mode 100644 index 0000000..be67885 --- /dev/null +++ b/BlackBox/_Linux_/Lin/Mod/gen-Net/fields-addrinfo @@ -0,0 +1,9 @@ + (* /usr/include/netdb.h *) + ai_flags*: intFlags; (* input flags *) + ai_family*: int; (* protocol family for socket *) + ai_socktype*: int; (* socket type *) + ai_protocol*: int; (* protocol for socket *) + ai_addrlen*: socklen_t; (* length of socket-address *) + ai_addr*: Ptrsockaddr; (* socket-address for socket *) + ai_canonname*: PtrSTR; (* canonical name for service location (iff req) *) + ai_next*: Ptraddrinfo; (* pointer to next in list *) \ No newline at end of file diff --git a/BlackBox/_Linux_/Lin/Mod/gen-Net/fields-sockaddr b/BlackBox/_Linux_/Lin/Mod/gen-Net/fields-sockaddr new file mode 100644 index 0000000..1e0d5f0 --- /dev/null +++ b/BlackBox/_Linux_/Lin/Mod/gen-Net/fields-sockaddr @@ -0,0 +1,3 @@ + (* /usr/include/i386-linux-gnu/bits/socket.h *) + sa_family: sa_family_t; + sa_data: ARRAY [untagged] 14 OF SHORTCHAR; \ No newline at end of file diff --git a/BlackBox/_Linux_/Lin/Mod/gen-Net/fields-sockaddr_in b/BlackBox/_Linux_/Lin/Mod/gen-Net/fields-sockaddr_in new file mode 100644 index 0000000..bbeb0ae --- /dev/null +++ b/BlackBox/_Linux_/Lin/Mod/gen-Net/fields-sockaddr_in @@ -0,0 +1,5 @@ + (* /usr/include/linux/in.h *) + sin_family*: sa_family_t; (* address family *) + sin_port*: SHORTINT; (* port number *) + sin_addr*: in_addr; (* internet address *) + __pad: ARRAY [untagged] 8 OF SHORTCHAR; \ No newline at end of file diff --git a/BlackBox/_Linux_/Lin/Mod/gen-Net/fields-sockaddr_storage b/BlackBox/_Linux_/Lin/Mod/gen-Net/fields-sockaddr_storage new file mode 100644 index 0000000..fbf8dd2 --- /dev/null +++ b/BlackBox/_Linux_/Lin/Mod/gen-Net/fields-sockaddr_storage @@ -0,0 +1,4 @@ + (* /usr/include/i386-linux-gnu/bits/socket.h *) + sa_family: sa_family_t; + __ss_align: INTEGER; + __ss_padding: ARRAY [untagged] 128 - 2 * 4 OF SHORTCHAR; \ No newline at end of file diff --git a/BlackBox/_Linux_/Lin/Mod/gen-Net/libver b/BlackBox/_Linux_/Lin/Mod/gen-Net/libver new file mode 100644 index 0000000..ed44321 --- /dev/null +++ b/BlackBox/_Linux_/Lin/Mod/gen-Net/libver @@ -0,0 +1 @@ +.6 \ No newline at end of file diff --git a/BlackBox/_Linux_/Lin/Mod/gen-Net/machine b/BlackBox/_Linux_/Lin/Mod/gen-Net/machine new file mode 100644 index 0000000..fd32fa4 --- /dev/null +++ b/BlackBox/_Linux_/Lin/Mod/gen-Net/machine @@ -0,0 +1 @@ +i386 \ No newline at end of file diff --git a/BlackBox/_Linux_/Lin/Mod/gen-Net/osname b/BlackBox/_Linux_/Lin/Mod/gen-Net/osname new file mode 100644 index 0000000..48fc79c --- /dev/null +++ b/BlackBox/_Linux_/Lin/Mod/gen-Net/osname @@ -0,0 +1 @@ +GNU/Linux \ No newline at end of file diff --git a/BlackBox/_OpenBSD_/BlackBox1.run b/BlackBox/_OpenBSD_/BlackBox1.run new file mode 100755 index 0000000000000000000000000000000000000000..fb36a87fed2be2ac9c5df0d628e1b5f0dfdda212 GIT binary patch literal 99460 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 literal 0 HcmV?d00001 diff --git a/BlackBox/_OpenBSD_/Comm/Mod/TCP.odc b/BlackBox/_OpenBSD_/Comm/Mod/TCP.odc index 03c1f86eda8388dd08b2f1f144b1a3e8226d0328..e5c7a31e8bacbb663d11fc6e50a6e94cb14440bd 100644 GIT binary patch delta 2370 zcmaJ?Pi)&{6t~m-Y0{<>tcVR(_!hdZ)zYXf9n(67q ztuSPmgb=q*-+>DtAq1yM2<5^BZXhI1JB%YBBw!K}2M!1c4!mc_Zk(1`O7i@Bf4=vA z@4YW?zQ_La5xZ}PZj^4n^-|&+iDBXl!+a&(zMl(iOEkkicl@^^!yE(fNBDK0R^MhL zp~&|;VP=}XJ9Z~>>SPF{weYzC_G(!5vDDNQc(Lf|I*dnJLrT+A{(WK$VtgF=GU7_} zv2%1k8XvrU7=7Ev@35`@z1XD?yH6iVtjG2sLiqg%eI;@JvAbcAU&gaez-Ro{pGlPA zsnJg-&s>P0xCEc@vnYWv6UHxQ)t4@!^lOM=Vou8OF<^xL6g^36<4O8&BEg=ev5B)! z{tjlb7<@5JloBX)QF5?b^y0+KBNcp~K+QBtPP|Y0n-f`<9jD(-{=$y;KTp2HM$=?v zY5AG{`D0H{j$P#hsy_ZgXnBR&$1m8TVr6(vsB^hoInNb^LT!zhWbHCZ1<^E-n@vM8 zP12G(YI~2gbc1Z`rlrXpg=o4(%wD&v8u%5Akt;Jc?d3Ce1{)t0x+!(rA1 zu?k`AgIXbu10EG;Th*-5AbCzG4CjIGX<$NIG?a$Es~GaNHe~VO((D7C4zuqfz&upp zlKvo`i+oWk2fF7XY0^JrR=uoJ$GT55*21n+g_tbcoZd( zEAl~mMA8S70aIcs#;!jlT|?hhn@TfHK!fG%X!`ZhHcK0PIbV=Ay~sAsq6Y#W##XPR zXcoEFYqb=EAla?9etjgnQdz1>St-yY4@(ng#&(q^fs8D@p|^=@lAd-{Iu)BQZwT2y zp%oWO2dndUz?(i(Z|qomU1cP-ij;l6S}O%34lt+Ro}ar}(*LYhrBP2(G@|t0>})+A2R_!EorO`qgc}S%uWh+l z$ue;LRjs8vI%gkTRRG5q-vetvpss54ui2YZcp(TPUNm)1tWopKYc{S`##>UnbzXnt zAikq;=N>fZ&E@NY$XA0VK2-xFExvMC)Rtm-9L}5DaD$daxKh)21ndzq@G86^$Z?` zlIwpkH!~K?L%=JQT>p!OuR}Du{BX>)bVJ@!C{6$1%jV)5{UaBpFRmtOV};P47r&*K TS09bT!rG!tDFzd+&SSyqVuy==p0@ zS!0i;H`nJq*QXhVXBZ|vy;)7L-&14+UG|le4AVo&B^qnrgtdk^mMaW7nI~k!vCSR+ zK@>%u!*%Yyv)JT<-Q84$Kv@%XaLX-8qmit|r28rD;6x5`$20C4=O`W}Up;}*FO+t>=#TLO@&f7rWFLih(A|q4UBJ@s zJtFCjJ};yycD|oXc?ZKeirpS4_(>OnK^SP{J^`qgE))QCWbJt42=U~=6(Aox0rIQ! z8{)0~u2;xXd&W9Zl5Cy4Np^e}*PdZfF-Jr}N?egsq9kO+SUQRg9KD2t?Q8_=ilLPs zDLO8yrlPC)GFEh5(}P_+&$sr;&Bo(GF4x|sPDZe*waDuJ$xKd?#f&6h&CH64hOnKD z;1#u`YL8W1&8I7 znMtxSc!nGct@2}VkwQ8rkb{t)SfPb@Lj%tN?{rTwL3MW(x`&K{rkgV&h2cq%Y9**^ z8sXDeOr^=pkpEUu%`YwKZP}5644hmp8s@_7v3Xbxe~5fifX595+dadv%4mPm!Rn3K7r0n0n%YaXqht>j23W^Yy1@+D^Fqvij>pPb9ZHzz1TONl* zh)$ZUm8NlU?=1C`vL%-_#Sit{TA{(3_3C3DSij}h_W@h^_`Ir->iWHmi13AIhp@;? zt2yOc1j8egU(3gWI5zAna9XhmV-=(4avt+43zvD7e*nVgbE2PXQJKm`qFm({3G1Ku ztx#O77vaX0AJOQDlwsJf@%2K^cSy5%GQRWv`zr^V4SE%5FYt(1%4id#)t}(cBG_t+ zMvp*pA(zl37@m0vzx*3?!XwVULc?$2cY!kDVopwQdR~(k%%DLl4o0)NAiqL0l;Ib@ zB$P||eZ4#A?DrhC6D28%CW&VLcC}iu*Q%9DtDz1W$~y_-4@dsPy4u`mZZ?`5n67A4 z6`Vdm>7e#UX%K~K8pUexzz?r`ooZ#R2F&j6-oPCy@3uE|cI!&h)m1OJH&$EM@D6EM zSKVH|X|< zj;n?P)lJ7G)hkIFZ*gig_R`oJYM{|27ki~i zig`Q8Ez*vOr*7tu^w7Av#Jm(5^6Nq@5QR88&A?g-l|}_fPxQ*7mLx|#r*9`oZM}Jy zV|I(QfhF`ox!suF_tOLz$a=x7>w0LkIYa$%BAf)HL}mv?U{n|QrJ z0k5ea2j;4hC2>rkVzqtbBQ@rz=BijZ4sYi)69gE#4xB3%r)t4PYT%L8?q`% zkfITf@?5o9XpJ(Vrq-0#z2n%NIb_o&?BO6m$;Es=MkS$|>M8}NGk{Edvg0t=M#{JCK(`>448w#2g_DC}NH%Ugi*lmm68l8`#R-N> zXP}}lcZIz;2-B&uyZwbeu&rj?!lbS^GR3aoQI)q*<;k8O(;NNaO?Fk1NVjNiUgbuC z7^0jP@vo?6sY4{D`h~+Ylzm-MlPy%fRC*cE%u3qy;f31gN-r0Gx%Q{7qylFx$Cpf% zlz^Kk9}s?$9=cTUX7E z4O8uUmd!x6pA9j1v+tD|qAsJhx zZQxTAH>`PayZm`@EJu;O<2$GSd{NrqkJ3aw1D^ zf4|oQ2I)h!3Tk?-s}K;=9iM~z6C`%PuO%kp`$Cn?2`s ziST48i9yN_5=2c2l~u*F%eww7vVgQimYg#xedmx9hgH_6kcLOc2tIVloCIGSRy=UD zXHkN4nK@4sm$xj$<;8^e|8vcJOk8Xq)y0OdH{}q-bzRs8KACg^Qg*hGindy}s@8*) zueN&w+AZ-^mGZf8ylhnE+5(2BaWtFJ9T4t9+G(usZs;ncIGK+Z?sk?#n=TIiB;Rt$lk@S?4`*_H#kW6ZB7>gu zrGw`64ZQE@aY>;k-R@{yKFiC&pCCWGcb6w_ezs!$0k?E??w7j+TpF269!A06{Jq0h zp9-$rJ7icd{l~KC*Sqts_31zUT)Ow0_qDmE(!^vIKQGb$n*028iP5wRj M{d<;r^c&0iAF*caKL7v# diff --git a/BlackBox/_OpenBSD_/Lin/Mod/Dl.txt b/BlackBox/_OpenBSD_/Lin/Mod/Dl.txt index ed81f4d..7cc6abd 100644 --- a/BlackBox/_OpenBSD_/Lin/Mod/Dl.txt +++ b/BlackBox/_OpenBSD_/Lin/Mod/Dl.txt @@ -1,9 +1,9 @@ -MODULE LinDl ["ld.so"]; +MODULE LinDl ["libc.so.89.2"]; (* A. V. Shiryaev, 2012.09, 2013.08 - OpenBSD 5.4 + OpenBSD 5.6 32-bit *) diff --git a/BlackBox/_OpenBSD_/Lin/Mod/Iconv.txt b/BlackBox/_OpenBSD_/Lin/Mod/Iconv.txt index e1a1f38..b03ca44 100644 --- a/BlackBox/_OpenBSD_/Lin/Mod/Iconv.txt +++ b/BlackBox/_OpenBSD_/Lin/Mod/Iconv.txt @@ -1,4 +1,4 @@ -MODULE LinIconv ["libiconv.so.6"]; +MODULE LinIconv ["libiconv.so.6.0"]; IMPORT Libc := LinLibc; diff --git a/BlackBox/_OpenBSD_/Lin/Mod/Ioctl.txt b/BlackBox/_OpenBSD_/Lin/Mod/Ioctl.txt index 51947f4..286fa75 100644 --- a/BlackBox/_OpenBSD_/Lin/Mod/Ioctl.txt +++ b/BlackBox/_OpenBSD_/Lin/Mod/Ioctl.txt @@ -1,23 +1,20 @@ -MODULE LinIoctl ["libc.so.70.0"]; +MODULE LinIoctl ["libc.so.89.2"]; (* - A. V. Shiryaev, 2012.11, 2013.08 - - OpenBSD 5.4 - 32-bit + OpenBSD 6.0 + i386 *) CONST - (* /usr/include/sys/ttycom.h *) - TIOCM_LE* = {0}; (* line enable *) - TIOCM_DTR* = {1}; (* data terminal ready *) - TIOCM_RTS* = {2}; (* request to send *) - TIOCM_ST* = {3}; (* secondary transmit *) - TIOCM_SR* = {4}; (* secondary receive *) - TIOCM_CTS* = {5}; (* clear to send *) - TIOCM_CAR* = {6}; (* carrier detect *) - TIOCM_RNG* = {7}; (* ring *) - TIOCM_DSR* = {8}; (* data set ready *) + TIOCM_LE* = {0}; (* line enable *) + TIOCM_DTR* = {1}; (* data terminal ready *) + TIOCM_RTS* = {2}; (* request to send *) + TIOCM_ST* = {3}; (* secondary transmit *) + TIOCM_SR* = {4}; (* secondary receive *) + TIOCM_CTS* = {5}; (* clear to send *) + TIOCM_CAR* = {6}; (* carrier detect *) + TIOCM_RNG* = {7}; (* ring *) + TIOCM_DSR* = {8}; (* data set ready *) FIOCLEX* = 536897025; FIONCLEX* = 536897026; @@ -43,4 +40,4 @@ MODULE LinIoctl ["libc.so.70.0"]; PROCEDURE [ccall] ioctl0* ["ioctl"] (d: INTEGER; req: INTEGER): INTEGER; PROCEDURE [ccall] ioctl1* ["ioctl"] (d: INTEGER; req: INTEGER; VAR arg: INTEGER): INTEGER; -END LinIoctl. +END LinIoctl. \ No newline at end of file diff --git a/BlackBox/_OpenBSD_/Lin/Mod/Libc.txt b/BlackBox/_OpenBSD_/Lin/Mod/Libc.txt index 7df4f73..b2d0251 100644 --- a/BlackBox/_OpenBSD_/Lin/Mod/Libc.txt +++ b/BlackBox/_OpenBSD_/Lin/Mod/Libc.txt @@ -1,7 +1,7 @@ -MODULE LinLibc ["libc.so.70.0"]; +MODULE LinLibc ["libc.so.89.2"]; (* - OpenBSD 5.4 + OpenBSD 6.0 i386 *) @@ -17,20 +17,14 @@ MODULE LinLibc ["libc.so.70.0"]; (* MAP_PRIVATE, MAP_ANON (intFlags) *) MAP_SHARED* = {0}; (* share changes *) MAP_PRIVATE* = {1}; (* changes are private *) - MAP_COPY* = {2}; (* "copy" region at mmap time *) MAP_FIXED* = {4}; (* map addr must be exactly as requested *) - MAP_RENAME* = {5}; (* Sun: rename private pages to file *) - MAP_NORESERVE* = {6}; (* Sun: don't reserve needed swap area *) - MAP_INHERIT* = {7}; (* region is retained after exec *) - MAP_NOEXTEND* = {8}; (* for MAP_FILE, don't change file size *) - MAP_HASSEMAPHORE* = {9}; (* region may contain semaphores *) - MAP_TRYFIXED* = {10}; (* attempt hint address, even within heap *) - MAP_FILE* = {}; (* map from file (default) *) MAP_ANON* = {12}; (* allocated from memory, swap space *) - MAP_FLAGMASK* = {0..2,4..12}; + MAP_ANONYMOUS* = MAP_ANON; (* alternate POSIX spelling *) + MAP_FLAGMASK* = {0..2,4..13}; MAP_INHERIT_SHARE* = {}; (* share with child *) MAP_INHERIT_COPY* = {0}; (* copy into child *) MAP_INHERIT_NONE* = {1}; (* absent from child *) + MAP_INHERIT_ZERO* = {0,1}; (* zero in child *) (* PROT_READ, PROT_WRITE, PROT_EXEC (intFlags) *) @@ -297,12 +291,15 @@ MODULE LinLibc ["libc.so.70.0"]; ECONNREFUSED* = 61; (* Connection refused *) ELOOP* = 62; (* Too many levels of symbolic links *) ENAMETOOLONG* = 63; (* File name too long *) + EHOSTUNREACH* = 65; (* No route to host *) ENOTEMPTY* = 66; (* Directory not empty *) EDQUOT* = 69; (* Disk quota exceeded *) ESTALE* = 70; (* Stale NFS file handle *) ENOLCK* = 77; (* No locks available *) ENOSYS* = 78; (* Function not implemented *) EILSEQ* = 84; (* Illegal byte sequence *) + EOVERFLOW* = 87; (* Value too large to be stored in data type *) + ECANCELED* = 88; (* Operation canceled *) EIDRM* = 89; (* Identifier removed *) ENOMSG* = 90; (* No message of desired type *) ENOTSUP* = 91; (* Not supported *) @@ -312,13 +309,12 @@ MODULE LinLibc ["libc.so.70.0"]; ESHUTDOWN* = 58; (* Can't send after socket shutdown *) ETOOMANYREFS* = 59; (* Too many references: can't splice *) EHOSTDOWN* = 64; (* Host is down *) - EHOSTUNREACH* = 65; (* No route to host *) EPROCLIM* = 67; (* Too many processes *) EUSERS* = 68; (* Too many users *) EREMOTE* = 71; (* Too many levels of remote in path *) EBADRPC* = 72; (* RPC struct is bad *) ERPCMISMATCH* = 73; (* RPC version wrong *) - EPROGUNAVAIL* = 74; (* RPC prog. not avail *) + EPROGUNAVAIL* = 74; (* RPC program not available *) EPROGMISMATCH* = 75; (* Program version wrong *) EPROCUNAVAIL* = 76; (* Bad procedure for program *) EFTYPE* = 79; (* Inappropriate file type or format *) @@ -327,9 +323,7 @@ MODULE LinLibc ["libc.so.70.0"]; EIPSEC* = 82; (* IPsec processing failure *) ENOATTR* = 83; (* Attribute not found *) ENOMEDIUM* = 85; (* No medium found *) - EMEDIUMTYPE* = 86; (* Wrong Medium Type *) - EOVERFLOW* = 87; (* Conversion overflow *) - ECANCELED* = 88; (* Operation canceled *) + EMEDIUMTYPE* = 86; (* Wrong medium type *) ELAST* = 91; (* Must be equal largest errno *) ERESTART* = -1; (* restart syscall *) EJUSTRETURN* = -2; (* don't modify regs, just return *) @@ -341,6 +335,10 @@ MODULE LinLibc ["libc.so.70.0"]; SEEK_CUR* = 1; SEEK_END* = 2; + STDIN_FILENO* = 0; + STDOUT_FILENO* = 1; + STDERR_FILENO* = 2; + P_tmpdir* = "/tmp"; (* O_RDWR, O_NONBLOCK (intFlags) *) @@ -366,7 +364,6 @@ MODULE LinLibc ["libc.so.70.0"]; CLOCK_REALTIME* = 0; - CLOCK_VIRTUAL* = 1; CLOCK_PROCESS_CPUTIME_ID* = 2; CLOCK_MONOTONIC* = 3; CLOCK_THREAD_CPUTIME_ID* = 4; @@ -396,6 +393,8 @@ MODULE LinLibc ["libc.so.70.0"]; dev_t* = INTEGER; ino_t* = LONGINT; nlink_t* = INTEGER; + blkcnt_t = LONGINT; + blksize_t = INTEGER; int8_t* = SHORTCHAR; u_int8_t* = SHORTCHAR; int16_t* = SHORTINT; @@ -415,7 +414,7 @@ MODULE LinLibc ["libc.so.70.0"]; tmDesc* = RECORD [untagged] (* NOTE: check record size *) (* tm_year, tm_mon, tm_mday, tm_hour, tm_min, tm_sec, tm_wday [ , tm_gmtoff ] *) - (* OpenBSD 5.4 /usr/include/time.h *) + (* OpenBSD 6.0 /usr/include/time.h *) tm_sec*: int; (* seconds after the minute [0-60] *) tm_min*: int; (* minutes after the hour [0-59] *) tm_hour*: int; (* hours since midnight [0-23] *) @@ -432,7 +431,7 @@ MODULE LinLibc ["libc.so.70.0"]; Ptrsiginfo_t* = POINTER TO siginfo_t; siginfo_t = RECORD [untagged] (* si_code, fault address *) - (* OpenBSD 5.4 /usr/include/sys/siginfo.h *) + (* OpenBSD 5.9 /usr/include/sys/siginfo.h *) si_signo*: int; (* signal from signal.h *) si_code*: int; (* code from above *) si_errno*: int; (* error from errno.h *) @@ -465,7 +464,7 @@ MODULE LinLibc ["libc.so.70.0"]; Ptrucontext_t* = POINTER TO ucontext_t; ucontext_t = RECORD [untagged] (* IP, SP, FP *) - (* OpenBSD 5.4 /usr/include/i386/signal.h struct sigcontext *) + (* OpenBSD 5.9 /usr/include/i386/signal.h struct sigcontext *) sc_gs*: int; sc_fs*: int; sc_es*: int; @@ -491,7 +490,7 @@ MODULE LinLibc ["libc.so.70.0"]; sc_err*: int; sc_fpstate*: RECORD [union] - (* OpenBSD 5.4 /usr/include/i386/npx.h union savefpu *) + (* OpenBSD 5.9 /usr/include/i386/npx.h union savefpu *) (* sv_87*: RECORD [untagged] ... @@ -508,7 +507,7 @@ MODULE LinLibc ["libc.so.70.0"]; sa_sigaction*: PROCEDURE [ccall] (sig: INTEGER; siginfo: Ptrsiginfo_t; context: Ptrucontext_t), sa_flags*: intFlags, sa_mask*: sigset_t *) - (* OpenBSD 5.4 /usr/include/sys/signal.h *) + (* OpenBSD 5.9 /usr/include/sys/signal.h *) sa_sigaction*: PROCEDURE [ccall] (sig: int; siginfo: Ptrsiginfo_t; ctx: Ptrucontext_t); sa_mask*: sigset_t; sa_flags*: intFlags; @@ -518,7 +517,7 @@ MODULE LinLibc ["libc.so.70.0"]; (* ss_sp*: PtrVoid, ss_size*: size_t, ss_flags*: intFlags *) - (* OpenBSD 5.4 /usr/include/sys/signal.h *) + (* OpenBSD 5.9 /usr/include/sys/signal.h *) ss_sp*: PtrVoid; (* signal stack base *) ss_size*: size_t; (* signal stack length *) ss_flags*: intFlags; (* SS_DISABLE and/or SS_ONSTACK *) @@ -529,7 +528,7 @@ MODULE LinLibc ["libc.so.70.0"]; NOTE: check record size st_mode*: mode_t, st_size*: off_t, st_mtime*: time_t *) - (* OpenBSD 5.4 /usr/include/sys/stat.h *) + (* OpenBSD 5.9 /usr/include/sys/stat.h *) st_mode*: mode_t; st_dev*: dev_t; st_ino*: ino_t; @@ -546,8 +545,8 @@ MODULE LinLibc ["libc.so.70.0"]; st_ctimensec*: long; st_size*: off_t; - st_blocks*: int64_t; - st_blksize*: u_int32_t; + st_blocks*: blkcnt_t; + st_blksize*: blksize_t; st_flags*: u_int32_t; st_gen*: u_int32_t; @@ -563,7 +562,7 @@ MODULE LinLibc ["libc.so.70.0"]; (* d_name*: ARRAY [untagged] NAME_MAX + 1 OF SHORTCHAR *) - (* OpenBSD 5.4 /usr/include/sys/dirent.h *) + (* OpenBSD 5.9 /usr/include/sys/dirent.h *) d_fileno*: ino_t; (* file number of entry *) d_off*: off_t; (* offset after this entry *) d_reclen*: u_int16_t; (* length of this record *) @@ -574,7 +573,7 @@ MODULE LinLibc ["libc.so.70.0"]; END; timespec_t* = RECORD [untagged] - (* OpenBSD 5.4 /usr/include/time.h *) + (* OpenBSD 5.9 /usr/include/time.h *) tv_sec*: time_t; (* seconds *) tv_nsec*: long; (* and nanoseconds *) END; @@ -591,14 +590,16 @@ MODULE LinLibc ["libc.so.70.0"]; (* POSIX.1 *) PROCEDURE [ccall] stat* (path: PtrSTR; VAR sp: stat_t): int; *) +(* VAR (* OpenBSD: stdin, stdout, stderr *) - __sF*: ARRAY [untagged] 3 OF FILE; (* OpenBSD 5.2 /usr/include/stdio.h *) + __sF*: ARRAY [untagged] 3 OF FILE; (* OpenBSD 5.8 /usr/include/stdio.h *) (* stdin = SYSTEM.ADR(__sF[0]) stdout = SYSTEM.ADR(__sF[1]) stderr = SYSTEM.ADR(__sF[2]) *) +*) PROCEDURE [ccall] __errno_location* ["__errno"] (): PtrVoid; @@ -650,6 +651,7 @@ MODULE LinLibc ["libc.so.70.0"]; (* ANSI C 89 *) PROCEDURE [ccall] fopen* (path, mode: PtrSTR): PtrFILE; + PROCEDURE [ccall] fdopen* (fildes: int; mode: PtrSTR): PtrFILE; PROCEDURE [ccall] fclose* (stream: PtrFILE): int; PROCEDURE [ccall] fread* (ptr: PtrVoid; size: size_t; nmemb: size_t; stream: PtrFILE): size_t; PROCEDURE [ccall] fwrite* (ptr: PtrVoid; size: size_t; nmemb: size_t; stream: PtrFILE): size_t; diff --git a/BlackBox/_OpenBSD_/Lin/Mod/Net.txt b/BlackBox/_OpenBSD_/Lin/Mod/Net.txt index 4b74462..bee2677 100644 --- a/BlackBox/_OpenBSD_/Lin/Mod/Net.txt +++ b/BlackBox/_OpenBSD_/Lin/Mod/Net.txt @@ -1,24 +1,20 @@ -MODULE LinNet ["libc.so.70.0"]; +MODULE LinNet ["libc.so.89.2"]; (* - A. V. Shiryaev, 2012.11, 2013.08 - - OpenBSD 5.4 - 32-bit + OpenBSD 6.0 + i386 *) - IMPORT Libc := LinLibc; - CONST - INVALID_SOCKET* = -1; + NULL* = 0H; + SOCKET_ERROR* = -1; + INVALID_SOCKET* = -1; - (* /usr/include/sys/socket.h *) - SOCK_STREAM* = 1; (* stream socket *) - SOCK_DGRAM* = 2; (* datagram socket *) - SOCK_RAW* = 3; (* raw-protocol interface *) - SOCK_RDM* = 4; (* reliably-delivered message *) - SOCK_SEQPACKET* = 5; (* sequenced packet stream *) + INADDR_NONE* = -1; + INADDR_ANY* = 0; + + (* socket domains *) AF_UNSPEC* = 0; (* unspecified *) AF_LOCAL* = 1; (* local to host (pipes, portals) *) AF_UNIX* = AF_LOCAL; (* backward compatibility *) @@ -52,49 +48,15 @@ MODULE LinNet ["libc.so.70.0"]; AF_BLUETOOTH* = 32; (* Bluetooth *) AF_MPLS* = 33; (* MPLS *) AF_MAX* = 36; - SHUT_RD* = 0; - SHUT_WR* = 1; - SHUT_RDWR* = 2; - SOMAXCONN* = 128; - SO_DEBUG* = {0}; (* turn on debugging info recording *) - SO_ACCEPTCONN* = {1}; (* socket has had listen() *) - SO_REUSEADDR* = {2}; (* allow local address reuse *) - SO_KEEPALIVE* = {3}; (* keep connections alive *) - SO_DONTROUTE* = {4}; (* just use interface addresses *) - SO_BROADCAST* = {5}; (* permit sending of broadcast msgs *) - SO_USELOOPBACK* = {6}; (* bypass hardware when possible *) - SO_LINGER* = {7}; (* linger on close if data present *) - SO_OOBINLINE* = {8}; (* leave received OOB data in line *) - SO_REUSEPORT* = {9}; (* allow local address & port reuse *) - SO_TIMESTAMP* = {11}; (* timestamp received dgram traffic *) - SO_BINDANY* = {12}; (* allow bind to any address *) - SO_SNDBUF* = {0,12}; (* send buffer size *) - SO_RCVBUF* = {1,12}; (* receive buffer size *) - SO_SNDLOWAT* = {0,1,12}; (* send low-water mark *) - SO_RCVLOWAT* = {2,12}; (* receive low-water mark *) - SO_SNDTIMEO* = {0,2,12}; (* send timeout *) - SO_RCVTIMEO* = {1,2,12}; (* receive timeout *) - SO_ERROR* = {0..2,12}; (* get error status and clear *) - SO_TYPE* = {3,12}; (* get socket type *) - SO_NETPROC* = {5,12}; (* multiplex; network processing *) - SO_RTABLE* = {0,5,12}; (* routing table to be used *) - SO_PEERCRED* = {1,5,12}; (* get connect-time credentials *) - SO_SPLICE* = {0,1,5,12}; (* splice data to other socket *) - SOL_SOCKET* = 0FFFFH; (* {0..15} *) (* options for socket level *) - MSG_OOB* = {0}; (* process out-of-band data *) - MSG_PEEK* = {1}; (* peek at incoming message *) - MSG_DONTROUTE* = {2}; (* send without using routing tables *) - MSG_EOR* = {3}; (* data completes record *) - MSG_TRUNC* = {4}; (* data discarded before delivery *) - MSG_CTRUNC* = {5}; (* control data lost before delivery *) - MSG_WAITALL* = {6}; (* wait for full request or error *) - MSG_DONTWAIT* = {7}; (* this message should be nonblocking *) - MSG_BCAST* = {8}; (* this message rec'd as broadcast *) - MSG_MCAST* = {9}; (* this message rec'd as multicast *) - MSG_NOSIGNAL* = {10}; (* do not send SIGPIPE *) - - (* /usr/include/netinet/in.h *) - INADDR_NONE* = -1; + + (* socket types *) + SOCK_STREAM* = 1; (* stream socket *) + SOCK_DGRAM* = 2; (* datagram socket *) + SOCK_RAW* = 3; (* raw-protocol interface *) + SOCK_RDM* = 4; (* reliably-delivered message *) + SOCK_SEQPACKET* = 5; (* sequenced packet stream *) + + (* socket protocols *) IPPROTO_IP* = 0; (* dummy for IP *) IPPROTO_HOPOPTS* = IPPROTO_IP; (* Hop-by-hop option header *) IPPROTO_ICMP* = 1; (* control message protocol *) @@ -134,126 +96,203 @@ MODULE LinNet ["libc.so.70.0"]; IPPROTO_DIVERT_RESP* = 01H; (* {0} *) (* divert response packets *) IPPROTO_DIVERT_INIT* = 02H; (* {1} *) (* divert packets initial direction *) - (* /usr/include/sys/param.h *) - MAXHOSTNAMELEN* = 256; (* max hostname size *) - - (* /usr/include/netdb.h *) - NETDB_INTERNAL* = -1; (* see errno *) - NETDB_SUCCESS* = 0; (* no problem *) - HOST_NOT_FOUND* = 1; (* Authoritative Answer Host not found *) - TRY_AGAIN* = 2; (* Non-Authoritative Host not found, or SERVERFAIL *) - NO_RECOVERY* = 3; (* Non recoverable errors, FORMERR, REFUSED, NOTIMP *) - NO_DATA* = 4; (* Valid name, no data record of requested type *) - NO_ADDRESS* = NO_DATA; (* no address *) - NI_MAXHOST* = MAXHOSTNAMELEN; (* max host name returned by getnameinfo *) - NI_MAXSERV* = 32; (* max serv. name length returned by getnameinfo *) - RRSET_VALIDATED* = 1; - ERRSET_SUCCESS* = 0; - ERRSET_NOMEMORY* = 1; - ERRSET_FAIL* = 2; - ERRSET_INVAL* = 3; - ERRSET_NONAME* = 4; - ERRSET_NODATA* = 5; - - (* /usr/include/sys/select.h *) + (* socket options *) + SO_DEBUG* = {0}; (* turn on debugging info recording *) + SO_ACCEPTCONN* = {1}; (* socket has had listen() *) + SO_REUSEADDR* = {2}; (* allow local address reuse *) + SO_KEEPALIVE* = {3}; (* keep connections alive *) + SO_DONTROUTE* = {4}; (* just use interface addresses *) + SO_BROADCAST* = {5}; (* permit sending of broadcast msgs *) + SO_USELOOPBACK* = {6}; (* bypass hardware when possible *) + SO_LINGER* = {7}; (* linger on close if data present *) + SO_OOBINLINE* = {8}; (* leave received OOB data in line *) + SO_REUSEPORT* = {9}; (* allow local address & port reuse *) + SO_TIMESTAMP* = {11}; (* timestamp received dgram traffic *) + SO_BINDANY* = {12}; (* allow bind to any address *) + SO_SNDBUF* = {0,12}; (* send buffer size *) + SO_RCVBUF* = {1,12}; (* receive buffer size *) + SO_SNDLOWAT* = {0,1,12}; (* send low-water mark *) + SO_RCVLOWAT* = {2,12}; (* receive low-water mark *) + SO_SNDTIMEO* = {0,2,12}; (* send timeout *) + SO_RCVTIMEO* = {1,2,12}; (* receive timeout *) + SO_ERROR* = {0..2,12}; (* get error status and clear *) + SO_TYPE* = {3,12}; (* get socket type *) + SO_NETPROC* = {5,12}; (* multiplex; network processing *) + SO_RTABLE* = {0,5,12}; (* routing table to be used *) + SO_PEERCRED* = {1,5,12}; (* get connect-time credentials *) + SO_SPLICE* = {0,1,5,12}; (* splice data to other socket *) + + SHUT_RD* = 0; + SHUT_WR* = 1; + SHUT_RDWR* = 2; + + SOL_SOCKET* = 0FFFFH; (* {0..15} *) (* options for socket level *) + + MSG_OOB* = {0}; (* process out-of-band data *) + MSG_PEEK* = {1}; (* peek at incoming message *) + MSG_DONTROUTE* = {2}; (* send without using routing tables *) + MSG_EOR* = {3}; (* data completes record *) + MSG_TRUNC* = {4}; (* data discarded before delivery *) + MSG_CTRUNC* = {5}; (* control data lost before delivery *) + MSG_WAITALL* = {6}; (* wait for full request or error *) + MSG_DONTWAIT* = {7}; (* this message should be nonblocking *) + MSG_BCAST* = {8}; (* this message rec'd as broadcast *) + MSG_MCAST* = {9}; (* this message rec'd as multicast *) + MSG_NOSIGNAL* = {10}; (* do not send SIGPIPE *) + MSG_CMSG_CLOEXEC* = {11}; (* set FD_CLOEXEC on received fds *) + + SOMAXCONN* = 128; + + (* addrinfo.ai_flags *) + AI_PASSIVE* = {0}; (* socket address is intended for bind() *) + AI_CANONNAME* = {1}; (* request for canonical name *) + AI_NUMERICHOST* = {2}; (* don't ever try hostname lookup *) + AI_EXT* = {3}; (* enable non-portable extensions *) + AI_NUMERICSERV* = {4}; (* don't ever try servname lookup *) + AI_FQDN* = {5}; (* return the FQDN that was resolved *) + AI_ADDRCONFIG* = {6}; (* return configured address families only *) + + (* getaddrinfo/getnameinfo/gai_strerror error codes *) + EAI_BADFLAGS* = -1; (* invalid value for ai_flags *) + EAI_NONAME* = -2; (* name or service is not known *) + EAI_AGAIN* = -3; (* temporary failure in name resolution *) + EAI_FAIL* = -4; (* non-recoverable failure in name resolution *) + EAI_NODATA* = -5; (* no address associated with name *) + EAI_FAMILY* = -6; (* ai_family not supported *) + EAI_SOCKTYPE* = -7; (* ai_socktype not supported *) + EAI_SERVICE* = -8; (* service not supported for ai_socktype *) + EAI_ADDRFAMILY* = -9; (* address family for name not supported *) + EAI_MEMORY* = -10; (* memory allocation failure *) + EAI_SYSTEM* = -11; (* system error (code indicated in errno) *) + EAI_BADHINTS* = -12; (* invalid value for hints *) + EAI_PROTOCOL* = -13; (* resolved protocol is unknown *) + EAI_OVERFLOW* = -14; (* argument buffer overflow *) + + (* OpenBSD 6.0 /usr/include/sys/select.h *) FD_SETSIZE = 1024; __NBBY = 8; TYPE - SOCKET* = INTEGER; + u_int8_t = SHORTCHAR; + int8_t = SHORTCHAR; + uint16_t = SHORTINT; + (* PtrVoid, int, intFlags, short, socklen_t, size_t, ssize_t, in_addr_t, in_port_t, time_t, suseconds_t, nfds_t, sa_family_t *) + PtrVoid* = INTEGER; + short* = SHORTINT; + int* = INTEGER; + intFlags* = SET; + size_t* = INTEGER; + ssize_t* = INTEGER; + time_t* = LONGINT; + suseconds_t* = INTEGER; + socklen_t* = INTEGER; + in_addr_t* = INTEGER; + in_port_t* = SHORTINT; + nfds_t* = INTEGER; + sa_family_t* = SHORTCHAR; + + PtrSTR* = POINTER [untagged] TO ARRAY [untagged] OF SHORTCHAR; + + SOCKET* = int; - (* /usr/include/sys/_types.h *) - socklen_t* = INTEGER; - sa_family_t* = SHORTCHAR; - in_addr_t* = INTEGER; - in_port_t* = SHORTINT; +(* + in_addr* = RECORD [untagged] + s_addr*: in_addr_t; + END; +*) + in_addr* = RECORD [untagged] + S_un*: RECORD [union] + S_un_b*: RECORD [untagged] + s_b1*: SHORTCHAR; + s_b2*: SHORTCHAR; + s_b3*: SHORTCHAR; + s_b4*: SHORTCHAR; + END; + S_un_w*: RECORD [untagged] + s_w1*: SHORTINT; + s_w2*: SHORTINT; + END; + S_addr*: in_addr_t; + END; + END; - (* /usr/include/sys/socket.h *) - sockaddr* = RECORD [untagged] + Ptrsockaddr* = POINTER [untagged] TO sockaddr; + sockaddr* = RECORD [untagged] + (* OpenBSD /usr/include/sys/socket.h *) sa_len*: SHORTCHAR; (* total length *) sa_family*: sa_family_t; (* address family *) sa_data*: ARRAY [untagged] 14 OF SHORTCHAR; (* actually longer; address value *) - END; - sockaddr_storage* = RECORD [untagged] + END; + + Ptrsockaddr_storage = POINTER [untagged] TO sockaddr_storage; + sockaddr_storage* = RECORD [untagged] + (* OpenBSD 6.0 /usr/include/sys/socket.h *) ss_len*: SHORTCHAR; (* total length *) ss_family*: sa_family_t; (* address family *) __ss_pad1: ARRAY [untagged] 6 OF SHORTCHAR; (* align to quad *) __ss_pad2: LONGINT; (* force alignment for stupid compilers *) __ss_pad3: ARRAY [untagged] 240 OF SHORTCHAR; (* pad to a total of 256 bytes *) - END; - - (* /usr/include/netinet/in.h *) -(* - in_addr* = RECORD [untagged] - s_addr*: in_addr_t; - END; -*) - in_addr* = RECORD [untagged] - S_un*: RECORD [union] - S_un_b*: RECORD [untagged] - s_b1*: SHORTCHAR; - s_b2*: SHORTCHAR; - s_b3*: SHORTCHAR; - s_b4*: SHORTCHAR; - END; - S_un_w*: RECORD [untagged] - s_w1*: SHORTINT; - s_w2*: SHORTINT; - END; - S_addr*: in_addr_t; - END; - END; + END; - sockaddr_in* = RECORD [untagged] - sin_len*: SHORTCHAR; + Ptrsockaddr_in* = POINTER [untagged] TO sockaddr_in; + sockaddr_in* = RECORD [untagged] + (* OpenBSD /usr/include/netinet/in.h *) + sin_len*: u_int8_t; sin_family*: sa_family_t; sin_port*: in_port_t; sin_addr*: in_addr; - sin_zero*: ARRAY [untagged] 8 OF SHORTCHAR; - END; + sin_zero*: ARRAY [untagged] 8 OF int8_t; + END; - (* /usr/include/netdb.h *) - Ptrhostent* = POINTER TO hostent; - hostent* = RECORD [untagged] - h_name*: Libc.PtrSTR; (* official name of host *) - h_aliases*: POINTER TO ARRAY [untagged] OF Libc.PtrSTR; (* alias list *) - h_addrtype*: INTEGER; (* host address type *) - h_length*: INTEGER; (* length of address *) - h_addr_list*: POINTER TO ARRAY [untagged] OF POINTER TO ARRAY [untagged] OF in_addr; (* list of addresses from name server *) - END; + Ptraddrinfo* = POINTER [untagged] TO addrinfo; + addrinfo* = RECORD [untagged] + (* OpenBSD 6.0 /usr/include/netdb.h *) + ai_flags*: intFlags; (* input flags *) + ai_family*: int; (* protocol family for socket *) + ai_socktype*: int; (* socket type *) + ai_protocol*: int; (* protocol for socket *) + ai_addrlen*: socklen_t; (* length of socket-address *) + ai_addr*: Ptrsockaddr; (* socket-address for socket *) + ai_canonname*: PtrSTR; (* canonical name for service location (iff req) *) + ai_next*: Ptraddrinfo; (* pointer to next in list *) + END; - (* /usr/include/sys/time.h *) - timeval* = RECORD [untagged] - tv_sec*: INTEGER; (* seconds *) - tv_usec*: INTEGER; (* and microseconds *) - END; + timeval* = RECORD [untagged] + (* Linux, FreeBSD, OpenBSD *) + tv_sec*: time_t; (* seconds *) + tv_usec*: suseconds_t; (* and microseconds *) + END; + + pollfd* = RECORD [untagged] + (* Linux, FreeBSD, OpenBSD *) + fd*: int; + events*: short; + revents*: short; + END; - (* /usr/include/sys/select.h *) + (* OpenBSD 6.0 /usr/include/sys/select.h *) __fd_mask = SET; fd_set* = ARRAY [untagged] (FD_SETSIZE + (SIZE(__fd_mask) * __NBBY - 1)) DIV (SIZE(__fd_mask) * __NBBY) OF __fd_mask; - VAR - h_errno*: INTEGER; + (* POSIX.1 *) + PROCEDURE [ccall] socket* (domain: int; type: int; protocol: int): SOCKET; + PROCEDURE [ccall] accept* (s: SOCKET; VAR addr: sockaddr; VAR addrlen: socklen_t): SOCKET; + PROCEDURE [ccall] bind* (s: SOCKET; VAR name: sockaddr; namelen: socklen_t): int; + PROCEDURE [ccall] connect* (s: SOCKET; VAR name: sockaddr; namelen: socklen_t): int; + PROCEDURE [ccall] getsockname* (s: SOCKET; VAR name: sockaddr; VAR namelen: socklen_t): int; + PROCEDURE [ccall] listen* (s: SOCKET; backlog: int): int; + PROCEDURE [ccall] recv* (s: SOCKET; buf: PtrVoid; len: size_t; flags: intFlags): ssize_t; + PROCEDURE [ccall] send* (s: SOCKET; msg: PtrVoid; len: size_t; flags: intFlags): ssize_t; + PROCEDURE [ccall] shutdown* (s: SOCKET; how: int): int; + PROCEDURE [ccall] getsockopt* (s: SOCKET; level: int; optname: intFlags; optval: PtrVoid; VAR [nil] optlen: socklen_t): int; + PROCEDURE [ccall] setsockopt* (s: SOCKET; level: int; optname: intFlags; optval: PtrVoid; optlen: socklen_t): int; - PROCEDURE [ccall] socket* (domain: INTEGER; type: INTEGER; protocol: INTEGER): SOCKET; - PROCEDURE [ccall] accept* (s: SOCKET; VAR addr: sockaddr; VAR addrlen: socklen_t): SOCKET; - PROCEDURE [ccall] bind* (s: SOCKET; VAR name: sockaddr; namelen: socklen_t): INTEGER; - PROCEDURE [ccall] connect* (s: SOCKET; VAR name: sockaddr; namelen: socklen_t): INTEGER; - PROCEDURE [ccall] listen* (s: SOCKET; backlog: INTEGER): INTEGER; - PROCEDURE [ccall] recv* (s: SOCKET; buf: Libc.PtrVoid; len: Libc.size_t; flags: SET): Libc.ssize_t; - PROCEDURE [ccall] send* (s: SOCKET; msg: Libc.PtrVoid; len: Libc.size_t; flags: SET): Libc.ssize_t; - PROCEDURE [ccall] shutdown* (s: SOCKET; how: INTEGER): INTEGER; - PROCEDURE [ccall] getsockopt* (s: SOCKET; level: INTEGER; optname: SET; optval: Libc.PtrVoid; VAR optlen: socklen_t): INTEGER; - PROCEDURE [ccall] setsockopt* (s: SOCKET; level: INTEGER; optname: SET; optval: Libc.PtrVoid; optlen: socklen_t): INTEGER; + PROCEDURE [ccall] inet_addr* (cp: PtrSTR): in_addr_t; + PROCEDURE [ccall] htons* (host16: uint16_t): uint16_t; - PROCEDURE [ccall] htons* (host16: SHORTINT): SHORTINT; + PROCEDURE [ccall] select* (nfds: INTEGER; VAR [nil] readfds: fd_set; VAR [nil] writefds: fd_set; VAR [nil] exceptfds: fd_set; VAR timeout: timeval): int; - PROCEDURE [ccall] gethostbyname* (name: Libc.PtrSTR): Ptrhostent; - PROCEDURE [ccall] inet_addr* (cp: Libc.PtrSTR): in_addr_t; - - PROCEDURE [ccall] getsockname* (s: SOCKET; VAR name: sockaddr; VAR namelen: socklen_t): INTEGER; - - PROCEDURE [ccall] hstrerror* (err: INTEGER): Libc.PtrSTR; + PROCEDURE [ccall] poll* (VAR fds: ARRAY [untagged] OF pollfd; nfds: nfds_t; timeout: int): int; (* PROCEDURE FD_ZERO (VAR set: Net.fd_set); @@ -268,6 +307,10 @@ MODULE LinNet ["libc.so.70.0"]; END FD_SET; *) - PROCEDURE [ccall] select* (nfds: INTEGER; VAR [nil] readfds: fd_set; VAR [nil] writefds: fd_set; VAR [nil] exceptfds: fd_set; VAR timeout: timeval): INTEGER; + (* POSIX.1g *) + PROCEDURE [ccall] getaddrinfo* (hostname: PtrSTR; servname: PtrSTR; VAR [nil] hints: addrinfo; VAR res: Ptraddrinfo): int; + PROCEDURE [ccall] freeaddrinfo* (ai: Ptraddrinfo); + + PROCEDURE [ccall] gai_strerror* (ecode: int): PtrSTR; -END LinNet. +END LinNet. \ No newline at end of file diff --git a/BlackBox/_OpenBSD_/Lin/Mod/Termios.txt b/BlackBox/_OpenBSD_/Lin/Mod/Termios.txt index a3162c7..96c9ca2 100644 --- a/BlackBox/_OpenBSD_/Lin/Mod/Termios.txt +++ b/BlackBox/_OpenBSD_/Lin/Mod/Termios.txt @@ -1,9 +1,9 @@ -MODULE LinTermios ["libc.so.70.0"]; +MODULE LinTermios ["libc.so.89.2"]; (* - A. V. Shiryaev, 2012.11, 2013.08 + A. V. Shiryaev, 2012.11, 2013.08, 2015.09 - OpenBSD 5.4 + OpenBSD 5.8 32-bit *) diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Ioctl/libver b/BlackBox/_OpenBSD_/Lin/Mod/gen-Ioctl/libver new file mode 100644 index 0000000..01f9f66 --- /dev/null +++ b/BlackBox/_OpenBSD_/Lin/Mod/gen-Ioctl/libver @@ -0,0 +1 @@ +.89.2 \ No newline at end of file diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Ioctl/machine b/BlackBox/_OpenBSD_/Lin/Mod/gen-Ioctl/machine new file mode 100644 index 0000000..fd32fa4 --- /dev/null +++ b/BlackBox/_OpenBSD_/Lin/Mod/gen-Ioctl/machine @@ -0,0 +1 @@ +i386 \ No newline at end of file diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Ioctl/osname b/BlackBox/_OpenBSD_/Lin/Mod/gen-Ioctl/osname new file mode 100644 index 0000000..6fcf4b6 --- /dev/null +++ b/BlackBox/_OpenBSD_/Lin/Mod/gen-Ioctl/osname @@ -0,0 +1 @@ +OpenBSD 6.0 \ No newline at end of file diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/custom b/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/custom index e522bff..586533b 100644 --- a/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/custom +++ b/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/custom @@ -1,11 +1,13 @@ +(* VAR (* OpenBSD: stdin, stdout, stderr *) - __sF*: ARRAY [untagged] 3 OF FILE; (* OpenBSD 5.2 /usr/include/stdio.h *) + __sF*: ARRAY [untagged] 3 OF FILE; (* OpenBSD 5.8 /usr/include/stdio.h *) (* stdin = SYSTEM.ADR(__sF[0]) stdout = SYSTEM.ADR(__sF[1]) stderr = SYSTEM.ADR(__sF[2]) *) +*) PROCEDURE [ccall] __errno_location* ["__errno"] (): PtrVoid; diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-dirent b/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-dirent index 1fdc134..dcf09aa 100644 --- a/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-dirent +++ b/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-dirent @@ -1,4 +1,4 @@ - (* OpenBSD 5.4 /usr/include/sys/dirent.h *) + (* OpenBSD 5.9 /usr/include/sys/dirent.h *) d_fileno*: ino_t; (* file number of entry *) d_off*: off_t; (* offset after this entry *) d_reclen*: u_int16_t; (* length of this record *) diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-sigaction b/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-sigaction index e28a208..d7931fc 100644 --- a/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-sigaction +++ b/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-sigaction @@ -1,4 +1,4 @@ - (* OpenBSD 5.4 /usr/include/sys/signal.h *) + (* OpenBSD 5.9 /usr/include/sys/signal.h *) sa_sigaction*: PROCEDURE [ccall] (sig: int; siginfo: Ptrsiginfo_t; ctx: Ptrucontext_t); sa_mask*: sigset_t; sa_flags*: intFlags; \ No newline at end of file diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-siginfo b/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-siginfo index 18b1899..e140d85 100644 --- a/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-siginfo +++ b/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-siginfo @@ -1,4 +1,4 @@ - (* OpenBSD 5.4 /usr/include/sys/siginfo.h *) + (* OpenBSD 5.9 /usr/include/sys/siginfo.h *) si_signo*: int; (* signal from signal.h *) si_code*: int; (* code from above *) si_errno*: int; (* error from errno.h *) diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-stack b/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-stack index 3136138..fa8962d 100644 --- a/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-stack +++ b/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-stack @@ -1,4 +1,4 @@ - (* OpenBSD 5.4 /usr/include/sys/signal.h *) + (* OpenBSD 5.9 /usr/include/sys/signal.h *) ss_sp*: PtrVoid; (* signal stack base *) ss_size*: size_t; (* signal stack length *) ss_flags*: intFlags; (* SS_DISABLE and/or SS_ONSTACK *) \ No newline at end of file diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-stat b/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-stat index 20f9c0a..0300013 100644 --- a/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-stat +++ b/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-stat @@ -1,4 +1,4 @@ - (* OpenBSD 5.4 /usr/include/sys/stat.h *) + (* OpenBSD 5.9 /usr/include/sys/stat.h *) st_mode*: mode_t; st_dev*: dev_t; st_ino*: ino_t; @@ -15,8 +15,8 @@ st_ctimensec*: long; st_size*: off_t; - st_blocks*: int64_t; - st_blksize*: u_int32_t; + st_blocks*: blkcnt_t; + st_blksize*: blksize_t; st_flags*: u_int32_t; st_gen*: u_int32_t; diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-timespec b/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-timespec index ed5eb09..47cd29e 100644 --- a/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-timespec +++ b/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-timespec @@ -1,3 +1,3 @@ - (* OpenBSD 5.4 /usr/include/time.h *) + (* OpenBSD 5.9 /usr/include/time.h *) tv_sec*: time_t; (* seconds *) tv_nsec*: long; (* and nanoseconds *) \ No newline at end of file diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-tm b/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-tm index 4c70ef6..4030e26 100644 --- a/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-tm +++ b/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-tm @@ -1,4 +1,4 @@ - (* OpenBSD 5.4 /usr/include/time.h *) + (* OpenBSD 6.0 /usr/include/time.h *) tm_sec*: int; (* seconds after the minute [0-60] *) tm_min*: int; (* minutes after the hour [0-59] *) tm_hour*: int; (* hours since midnight [0-23] *) diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-ucontext b/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-ucontext index 43b443d..397ded8 100644 --- a/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-ucontext +++ b/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/fields-ucontext @@ -1,4 +1,4 @@ - (* OpenBSD 5.4 /usr/include/i386/signal.h struct sigcontext *) + (* OpenBSD 5.9 /usr/include/i386/signal.h struct sigcontext *) sc_gs*: int; sc_fs*: int; sc_es*: int; @@ -24,7 +24,7 @@ sc_err*: int; sc_fpstate*: RECORD [union] - (* OpenBSD 5.4 /usr/include/i386/npx.h union savefpu *) + (* OpenBSD 5.9 /usr/include/i386/npx.h union savefpu *) (* sv_87*: RECORD [untagged] ... diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/libver b/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/libver index 3d9c28b..8681f06 100644 --- a/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/libver +++ b/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/libver @@ -1 +1 @@ -.70.0 \ No newline at end of file +.86.0 \ No newline at end of file diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/mkdumpstrerrno.py b/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/mkdumpstrerrno.py index fdefe88..3a22993 100755 --- a/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/mkdumpstrerrno.py +++ b/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/mkdumpstrerrno.py @@ -15,6 +15,7 @@ def main (): #include #include +#include static void D (const char *s, int e) { diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/osname b/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/osname index 6811404..3cc5971 100644 --- a/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/osname +++ b/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/osname @@ -1 +1 @@ -OpenBSD 5.4 \ No newline at end of file +OpenBSD 5.9 \ No newline at end of file diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/sizeofs.c b/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/sizeofs.c index b2ad10d..efd53bd 100644 --- a/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/sizeofs.c +++ b/BlackBox/_OpenBSD_/Lin/Mod/gen-Libc/sizeofs.c @@ -69,6 +69,8 @@ int main () D("dev_t", sizeof(dev_t), FALSE, TRUE); D("ino_t", sizeof(ino_t), FALSE, TRUE); D("nlink_t", sizeof(nlink_t), FALSE, TRUE); + D("blkcnt_t", sizeof(blkcnt_t), FALSE, FALSE); + D("blksize_t", sizeof(blksize_t), FALSE, FALSE); D("int8_t", sizeof(int8_t), FALSE, TRUE); D("u_int8_t", sizeof(u_int8_t), FALSE, TRUE); D("int16_t", sizeof(int16_t), FALSE, TRUE); diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/Makefile b/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/Makefile index 9fe82db..dadffc4 100644 --- a/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/Makefile +++ b/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/Makefile @@ -6,28 +6,47 @@ INCDIR ?= /usr/include -all: Net.txt dumphstrerrno - PY = python2.7 -DEFS = defs-socket defs-in defs-netdb -Net.txt: Net.txt.templ ${DEFS} +DEFS = defs-basictypes defs-af defs-sock defs-proto defs-shut defs-so defs-sol defs-msg defs-ai defs-eai defs-somaxconn + +all: Net.txt ${DEFS} + +Net.txt: Net.txt.templ ${DEFS} libver osname machine fields-sockaddr fields-sockaddr_in fields-sockaddr_storage fields-addrinfo defs-fd_set-const defs-fd_set-type ${PY} ./untempl.py Net.txt.templ ${.TARGET} -defs-socket: +defs-basictypes: sizeofs + ./sizeofs > ${.TARGET} + +defs-af: + ./dumpdefs.py 3 1 i ${INCDIR}/sys/socket.h | grep " AF_" > ${.TARGET} + +defs-sock: ./dumpdefs.py 3 1 i ${INCDIR}/sys/socket.h | grep " SOCK_" > ${.TARGET} - ./dumpdefs.py 3 1 i ${INCDIR}/sys/socket.h | grep " AF_" >> ${.TARGET} - ./dumpdefs.py 3 1 i ${INCDIR}/sys/socket.h | grep " SHUT_" >> ${.TARGET} - ./dumpdefs.py 3 1 i ${INCDIR}/sys/socket.h | grep " SOMAXCONN" >> ${.TARGET} - ./dumpdefs.py 3 1 s ${INCDIR}/sys/socket.h | grep " SO_" >> ${.TARGET} - ./dumpdefs.py 3 1 i ${INCDIR}/sys/socket.h | grep " SOL_" >> ${.TARGET} - ./dumpdefs.py 3 1 s ${INCDIR}/sys/socket.h | grep " MSG_" >> ${.TARGET} - -defs-in: + +defs-proto: ./dumpdefs.py 3 1 i ${INCDIR}/netinet/in.h | grep " IPPROTO_" > ${.TARGET} -defs-netdb: - ./dumpdefs.py 3 2 i ${INCDIR}/netdb.h > ${.TARGET} +defs-sol: + ./dumpdefs.py 2 1 i ${INCDIR}/sys/socket.h | grep " SOL_" > ${.TARGET} + +defs-msg: + ./dumpdefs.py 2 1 s ${INCDIR}/sys/socket.h | grep " MSG_" > ${.TARGET} + +defs-somaxconn: + ./dumpdefs.py 2 1 i ${INCDIR}/sys/socket.h | grep " SOMAXCONN" > ${.TARGET} + +defs-so: + ./dumpdefs.py 3 1 s ${INCDIR}/sys/socket.h | grep " SO_" > ${.TARGET} + +defs-shut: + ./dumpdefs.py 2 1 i ${INCDIR}/sys/socket.h | grep " SHUT_" > ${.TARGET} + +defs-ai: + ./dumpdefs.py 3 1 s ${INCDIR}/netdb.h | grep " AI_" > ${.TARGET} + +defs-eai: + ./dumpdefs.py 3 1 i ${INCDIR}/netdb.h | grep " EAI_" > ${.TARGET} clean: - rm -f Net.txt ${DEFS} dumphstrerrno + rm -f ${DEFS} Net.txt sizeofs diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/Net.txt.templ b/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/Net.txt.templ deleted file mode 100644 index 29b9011..0000000 --- a/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/Net.txt.templ +++ /dev/null @@ -1,141 +0,0 @@ -MODULE LinNet ["libc.so.70.0"]; - - (* - A. V. Shiryaev, 2012.11, 2013.08 - - OpenBSD 5.4 - 32-bit - *) - - IMPORT Libc := LinLibc; - - CONST - INVALID_SOCKET* = -1; - SOCKET_ERROR* = -1; - - (* /usr/include/sys/socket.h *) -%%defs-socket%% - (* /usr/include/netinet/in.h *) - INADDR_NONE* = -1; -%%defs-in%% - (* /usr/include/sys/param.h *) - MAXHOSTNAMELEN* = 256; (* max hostname size *) - - (* /usr/include/netdb.h *) -%%defs-netdb%% - (* /usr/include/sys/select.h *) - FD_SETSIZE = 1024; - __NBBY = 8; - - TYPE - SOCKET* = INTEGER; - - (* /usr/include/sys/_types.h *) - socklen_t* = INTEGER; - sa_family_t* = SHORTCHAR; - in_addr_t* = INTEGER; - in_port_t* = SHORTINT; - - (* /usr/include/sys/socket.h *) - sockaddr* = RECORD [untagged] - sa_len*: SHORTCHAR; (* total length *) - sa_family*: sa_family_t; (* address family *) - sa_data*: ARRAY [untagged] 14 OF SHORTCHAR; (* actually longer; address value *) - END; - sockaddr_storage* = RECORD [untagged] - ss_len*: SHORTCHAR; (* total length *) - ss_family*: sa_family_t; (* address family *) - __ss_pad1: ARRAY [untagged] 6 OF SHORTCHAR; (* align to quad *) - __ss_pad2: LONGINT; (* force alignment for stupid compilers *) - __ss_pad3: ARRAY [untagged] 240 OF SHORTCHAR; (* pad to a total of 256 bytes *) - END; - - (* /usr/include/netinet/in.h *) -(* - in_addr* = RECORD [untagged] - s_addr*: in_addr_t; - END; -*) - in_addr* = RECORD [untagged] - S_un*: RECORD [union] - S_un_b*: RECORD [untagged] - s_b1*: SHORTCHAR; - s_b2*: SHORTCHAR; - s_b3*: SHORTCHAR; - s_b4*: SHORTCHAR; - END; - S_un_w*: RECORD [untagged] - s_w1*: SHORTINT; - s_w2*: SHORTINT; - END; - S_addr*: in_addr_t; - END; - END; - - sockaddr_in* = RECORD [untagged] - sin_len*: SHORTCHAR; - sin_family*: sa_family_t; - sin_port*: in_port_t; - sin_addr*: in_addr; - sin_zero*: ARRAY [untagged] 8 OF SHORTCHAR; - END; - - (* /usr/include/netdb.h *) - Ptrhostent* = POINTER TO hostent; - hostent* = RECORD [untagged] - h_name*: Libc.PtrSTR; (* official name of host *) - h_aliases*: POINTER TO ARRAY [untagged] OF Libc.PtrSTR; (* alias list *) - h_addrtype*: INTEGER; (* host address type *) - h_length*: INTEGER; (* length of address *) - h_addr_list*: POINTER TO ARRAY [untagged] OF POINTER TO ARRAY [untagged] OF in_addr; (* list of addresses from name server *) - END; - - (* /usr/include/sys/time.h *) - timeval* = RECORD [untagged] - tv_sec*: INTEGER; (* seconds *) - tv_usec*: INTEGER; (* and microseconds *) - END; - - (* /usr/include/sys/select.h *) - __fd_mask = SET; - fd_set* = ARRAY [untagged] (FD_SETSIZE + (SIZE(__fd_mask) * __NBBY - 1)) DIV (SIZE(__fd_mask) * __NBBY) OF __fd_mask; - - VAR - h_errno*: INTEGER; - - PROCEDURE [ccall] socket* (domain: INTEGER; type: INTEGER; protocol: INTEGER): SOCKET; - PROCEDURE [ccall] accept* (s: SOCKET; VAR addr: sockaddr; VAR addrlen: socklen_t): SOCKET; - PROCEDURE [ccall] bind* (s: SOCKET; VAR name: sockaddr; namelen: socklen_t): INTEGER; - PROCEDURE [ccall] connect* (s: SOCKET; VAR name: sockaddr; namelen: socklen_t): INTEGER; - PROCEDURE [ccall] listen* (s: SOCKET; backlog: INTEGER): INTEGER; - PROCEDURE [ccall] recv* (s: SOCKET; buf: Libc.PtrVoid; len: Libc.size_t; flags: SET): Libc.ssize_t; - PROCEDURE [ccall] send* (s: SOCKET; msg: Libc.PtrVoid; len: Libc.size_t; flags: SET): Libc.ssize_t; - PROCEDURE [ccall] shutdown* (s: SOCKET; how: INTEGER): INTEGER; - PROCEDURE [ccall] getsockopt* (s: SOCKET; level: INTEGER; optname: SET; optval: Libc.PtrVoid; VAR optlen: socklen_t): INTEGER; - PROCEDURE [ccall] setsockopt* (s: SOCKET; level: INTEGER; optname: SET; optval: Libc.PtrVoid; optlen: socklen_t): INTEGER; - - PROCEDURE [ccall] htons* (host16: SHORTINT): SHORTINT; - - PROCEDURE [ccall] gethostbyname* (name: Libc.PtrSTR): Ptrhostent; - PROCEDURE [ccall] inet_addr* (cp: Libc.PtrSTR): in_addr_t; - - PROCEDURE [ccall] getsockname* (s: SOCKET; VAR name: sockaddr; VAR namelen: socklen_t): INTEGER; - - PROCEDURE [ccall] hstrerror* (err: INTEGER): Libc.PtrSTR; - -(* - PROCEDURE FD_ZERO (VAR set: Net.fd_set); - VAR i: INTEGER; - BEGIN - i := LEN(set); REPEAT DEC(i); set[i] := {} UNTIL i = 0 - END FD_ZERO; - - PROCEDURE FD_SET (fd: Net.SOCKET; VAR set: Net.fd_set); - BEGIN - INCL(set[fd DIV 32], fd MOD 32) - END FD_SET; -*) - - PROCEDURE [ccall] select* (nfds: INTEGER; VAR [nil] readfds: fd_set; VAR [nil] writefds: fd_set; VAR [nil] exceptfds: fd_set; VAR timeout: timeval): INTEGER; - -END LinNet. diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/defs-fd_set-const b/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/defs-fd_set-const new file mode 100644 index 0000000..e9939f3 --- /dev/null +++ b/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/defs-fd_set-const @@ -0,0 +1,3 @@ + (* OpenBSD 6.0 /usr/include/sys/select.h *) + FD_SETSIZE = 1024; + __NBBY = 8; diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/defs-fd_set-type b/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/defs-fd_set-type new file mode 100644 index 0000000..7c936d5 --- /dev/null +++ b/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/defs-fd_set-type @@ -0,0 +1,3 @@ + (* OpenBSD 6.0 /usr/include/sys/select.h *) + __fd_mask = SET; + fd_set* = ARRAY [untagged] (FD_SETSIZE + (SIZE(__fd_mask) * __NBBY - 1)) DIV (SIZE(__fd_mask) * __NBBY) OF __fd_mask; diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/dumphstrerrno.c b/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/dumphstrerrno.c deleted file mode 100644 index e839256..0000000 --- a/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/dumphstrerrno.c +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include - -static void D (const char *s, int e) -{ - printf("%s, %s\n", s, hstrerror(e)); -} - -int main (int argc, char *argv[]) -{ - D("NETDB_INTERNAL", NETDB_INTERNAL); - D("NETDB_SUCCESS", NETDB_SUCCESS); - D("HOST_NOT_FOUND", HOST_NOT_FOUND); - D("TRY_AGAIN", TRY_AGAIN); - D("NO_RECOVERY", NO_RECOVERY); - D("NO_DATA", NO_DATA); - - return 0; -} diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/fields-addrinfo b/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/fields-addrinfo new file mode 100644 index 0000000..1c9c112 --- /dev/null +++ b/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/fields-addrinfo @@ -0,0 +1,9 @@ + (* OpenBSD 6.0 /usr/include/netdb.h *) + ai_flags*: intFlags; (* input flags *) + ai_family*: int; (* protocol family for socket *) + ai_socktype*: int; (* socket type *) + ai_protocol*: int; (* protocol for socket *) + ai_addrlen*: socklen_t; (* length of socket-address *) + ai_addr*: Ptrsockaddr; (* socket-address for socket *) + ai_canonname*: PtrSTR; (* canonical name for service location (iff req) *) + ai_next*: Ptraddrinfo; (* pointer to next in list *) \ No newline at end of file diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/fields-sockaddr b/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/fields-sockaddr new file mode 100644 index 0000000..8024438 --- /dev/null +++ b/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/fields-sockaddr @@ -0,0 +1,4 @@ + (* OpenBSD /usr/include/sys/socket.h *) + sa_len*: SHORTCHAR; (* total length *) + sa_family*: sa_family_t; (* address family *) + sa_data*: ARRAY [untagged] 14 OF SHORTCHAR; (* actually longer; address value *) \ No newline at end of file diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/fields-sockaddr_in b/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/fields-sockaddr_in new file mode 100644 index 0000000..b4893d3 --- /dev/null +++ b/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/fields-sockaddr_in @@ -0,0 +1,6 @@ + (* OpenBSD /usr/include/netinet/in.h *) + sin_len*: u_int8_t; + sin_family*: sa_family_t; + sin_port*: in_port_t; + sin_addr*: in_addr; + sin_zero*: ARRAY [untagged] 8 OF int8_t; \ No newline at end of file diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/fields-sockaddr_storage b/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/fields-sockaddr_storage new file mode 100644 index 0000000..27ace91 --- /dev/null +++ b/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/fields-sockaddr_storage @@ -0,0 +1,6 @@ + (* OpenBSD 6.0 /usr/include/sys/socket.h *) + ss_len*: SHORTCHAR; (* total length *) + ss_family*: sa_family_t; (* address family *) + __ss_pad1: ARRAY [untagged] 6 OF SHORTCHAR; (* align to quad *) + __ss_pad2: LONGINT; (* force alignment for stupid compilers *) + __ss_pad3: ARRAY [untagged] 240 OF SHORTCHAR; (* pad to a total of 256 bytes *) \ No newline at end of file diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/libver b/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/libver new file mode 100644 index 0000000..01f9f66 --- /dev/null +++ b/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/libver @@ -0,0 +1 @@ +.89.2 \ No newline at end of file diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/machine b/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/machine new file mode 100644 index 0000000..fd32fa4 --- /dev/null +++ b/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/machine @@ -0,0 +1 @@ +i386 \ No newline at end of file diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/osname b/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/osname new file mode 100644 index 0000000..6fcf4b6 --- /dev/null +++ b/BlackBox/_OpenBSD_/Lin/Mod/gen-Net/osname @@ -0,0 +1 @@ +OpenBSD 6.0 \ No newline at end of file diff --git a/BlackBox/_OpenBSD_/Lin/Mod/gen-Termios/Termios.txt.templ b/BlackBox/_OpenBSD_/Lin/Mod/gen-Termios/Termios.txt.templ index 055af28..5ef897d 100644 --- a/BlackBox/_OpenBSD_/Lin/Mod/gen-Termios/Termios.txt.templ +++ b/BlackBox/_OpenBSD_/Lin/Mod/gen-Termios/Termios.txt.templ @@ -1,9 +1,9 @@ -MODULE LinTermios ["libc.so.70.0"]; +MODULE LinTermios ["libc.so.86.0"]; (* - A. V. Shiryaev, 2012.11, 2013.08 + A. V. Shiryaev, 2012.11, 2013.08, 2015.09 - OpenBSD 5.4 + OpenBSD 5.8 32-bit *) diff --git a/BlackBox/_OpenBSD_/Lin/Rsrc/loader/Makefile b/BlackBox/_OpenBSD_/Lin/Rsrc/loader/Makefile index f4104dd..855cd8a 100644 --- a/BlackBox/_OpenBSD_/Lin/Rsrc/loader/Makefile +++ b/BlackBox/_OpenBSD_/Lin/Rsrc/loader/Makefile @@ -11,7 +11,7 @@ all: loader # -pthread required to dlopen libraries that depends on pthread loader: loader.c - ${CC} ${CFLAGS} -o ${.TARGET} ${.ALLSRC} -pthread + ${CC} ${CFLAGS} -o ${.TARGET} ${.ALLSRC} -pthread -Wl,-z,'wxneeded' clean: rm -f loader diff --git a/BlackBox/_OpenBSD_/Lin/Rsrc/loader/loader b/BlackBox/_OpenBSD_/Lin/Rsrc/loader/loader index bea6f87850f4f51f6508d878c08e93426b66624e..67d406562ed1464cdfe53f0d06e6d4a245b2ace6 100755 GIT binary patch literal 12606 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 literal 9055 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 diff --git a/BlackBox/_OpenBSD_/System/Mod/Kernel.odc b/BlackBox/_OpenBSD_/System/Mod/Kernel.odc index fc065a2d539d4a00231ff6eb9df46e048c3e729d..d754e3daa6fc10688f542f9396e1323e298b5878 100644 GIT binary patch delta 1669 zcmbVL!Ef7S6t~kPjkkDNHafPkg||>mcAA=m1KZ*i$;93g&2>`83xTptC2^^>WSQbj zv|Pd>aexz>50$788sY*-6Uc{hn1(oWL|hOTq)nT~AHabN@3Wn>T_-^J@cDi3{oe0; z-|xNe?ziFlKZHLSgv1wb-MqBtqZCas6h+-k-FhsCW>StozjpBJV>FdO=NI_*zkBY0 zj)bB=&xWZFXPu8HzKLp7h?rtHGxA;yuWWfwB=%vZmmVZB5%Zbhw;vHA_shufP}H}b zh1hZD!Q`RnU7N7s>5q4(|a54HP*Eni~ z_a8#kWQY_WCl>8~pW2A?e*WE_)}4RVNnusY!QiopFq5V=qgbJT7tC{c0MI z%)%?V{HsDf@18yRS7yL6RlQPF88rb?HsW=b&=Vce2du%K5T}sTLIG;4~r8m8v2cAS*@A@>rQQ5?h7&K}E*o zl8CnFkjr&%k4a4V9IU}v!flik4UZ*|VoB%LU%%yW_o(Dy(DLaC*Bqcyd9zv5z z6^y-T&Ezi;mgWlXFKR~llnNHiL5{@j#he#RPp9!}i)Xw|u0cZc_Pd{PNu&S2QlOUE=v}OSSBNwb$*N%|4+f0(T04 zfg5d8WYM$LkN^hU7~s_Yd^z2@?x%A#L6UW@bD7UVt^Ah4`6PUnbv_u13DmD=+T?bg zfKGMzLQH6OTV@tI&U-^G=KER3Sr{Ho3azF75=MlUZM|=1(K{H<9VAWIPJ-nT^Z}t~ zF53j%3(y{X{j)gz{NRGwyJoh9omYjRW@KBoVR^}Fo2@h|>V2Me#PWJc#7_S+390od zk`ae8AoK7aIEWHEIRc7*D`I=`ehRKIZYe$~?*%}IOj^fpxCn2Q%Bq6Cmq074AXi2S zT!$9}sBq0(?Sn^27ztT4W$SfetjcOADIi< zw7Zr9jHWcu_(U4-S&~$P%ja_VYVl2yI+C5yND57Vl*sI^e;%i&tp7)z_sPj<`5o|N h#qC(wUDa;hOVXc)IK1Xln&UlT7uw#`pQC@9_!|Z`z$O3y delta 322 zcmdnDpJm+!mI?JttHmca#&Z1>V`SiDU|{$tHt~fE(`>QHdW?3$Qlg9u{6Ik=APoUs zo9h`_nb>SJSs0FJP3~e|%~tV`5yZ4+(SnI)vt%Gd75VvqI>FkZnmAcgu}bfl$pkcL z^Ac8BCN>Crav+E7c1+^%hO&SXPgx%V&1IR)$SE;dMv!mvY)-Dt*_``0 zm~Jy|))vy>U_7}wL@I3mq91HhWKbE+?Yk>gU4C2_zJJ@)J{Ba&oMBIXAm+ejUGEMUrtE)Anc5j5nA8 DmfTcj diff --git a/BlackBox/_OpenBSD_/libBB.so b/BlackBox/_OpenBSD_/libBB.so index 62b54f7b1c9854587eef94bc8f87185c44e89843..2f57f6b65afb88d3cfec9b54c9a57557b9ab4c5a 100644 GIT binary patch delta 35929 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 z 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 delta 35070 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 Ms%~-41bOQJ2VJzbbpQYW diff --git a/BlackBox/_OpenBSD_/libBB0.so b/BlackBox/_OpenBSD_/libBB0.so index aac734ed6e0e17bc54928f51841850227ca489a8..8c5cfb051fe7461ce1cb9ecbb5a06f1f195123b1 100644 GIT binary patch delta 47379 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 -- 2.29.2