#include "M3Runtime.h" #define t18 ADDRESS #define t104 void typedef unsigned char t19; #line 173 ".ROOT/.boots/corelib/Interfaces/Rd.i3" typedef struct { char* elts; int size[1]; } t92; #line 274 "UFileRdWr.m3" #define t20 t92 PRIVATE void t18_PrintProc (); #line 274 PRIVATE typecell t18_TC; PRIVATE typecell t18_TC_init = {0, 0, 0, 0, 0, (PROC)NIL, -2, 0, NIL, 1, 1, (PROC)NIL, (PROC)NIL, t18_PrintProc, #line 274 "", 991118862, 833218118}; PRIVATE TYPE TC18 = &t18_TC; #define t40 ADDRESS typedef int t2; #define TC40 TC_ADDRESS IMPORT TYPE TC_ADDRESS; IMPORT char VS_ADDRESS__30f7308738738b44; #line 48 ".ROOT/.boots/corelib/Interfaces/M3toC.i3" #define t41 ADDRESS typedef unsigned char t42; #line 48 #define t39 t92 typedef struct { t40 elts[256]; } t43; #line 48 #define TC41 TC_M3toC__Argv IMPORT TYPE TC_M3toC__Argv; #line 48 IMPORT char VS_M3toC__Argv__01eb9fa23b3b0c10; #line 17 ".ROOT/.boots/corelib/Interfaces/Ctypes.i3" #define t44 ADDRESS typedef double t73; #line 17 #define TC44 TC_Ctypes__DoubleStar IMPORT TYPE TC_Ctypes__DoubleStar; #line 17 IMPORT char VS_Ctypes__DoubleStar__09a97cc036088f62; #line 33 #define t46 ADDRESS typedef float t48; #line 33 #define TC46 TC_Ctypes__FloatStar IMPORT TYPE TC_Ctypes__FloatStar; #line 33 IMPORT char VS_Ctypes__FloatStar__6c7e0b722780a93f; #line 134 ".ROOT/.boots/corelib/Interfaces/CoreOS.i3" #define t55 ADDRESS typedef struct { #line 125 t2 _sc_onstack; t2 _sc_mask; t2 _sc_sp; t2 _sc_pc; t2 _sc_ps; } t56; PRIVATE void t55_PrintProc (); PRIVATE typecell t55_TC; PRIVATE typecell t55_TC_init = {0, 0, 0, 0, 0, (PROC)NIL, 20, 0, NIL, 0, 0, (PROC)NIL, (PROC)NIL, t55_PrintProc, #line 134 "", 467594205, 652907876}; PRIVATE TYPE TC55 = &t55_TC; #line 63 ".ROOT/.boots/corelib/Interfaces/Ctypes.i3" #define t62 ADDRESS typedef short t79; #line 63 typedef struct { t19 elts[4096]; } t80; #define TC62 TC_Ctypes__String4096 IMPORT TYPE TC_Ctypes__String4096; #line 63 IMPORT char VS_Ctypes__String4096__8d2ce04b3a64ff9f; #line 62 #define t63 ADDRESS typedef short t81; #line 62 typedef struct { t19 elts[1024]; } t82; #define TC63 TC_Ctypes__String1024 IMPORT TYPE TC_Ctypes__String1024; #line 62 IMPORT char VS_Ctypes__String1024__85fe08042cc88853; #line 61 #define t64 ADDRESS typedef struct { t19 elts[256]; } t83; #line 61 #define TC64 TC_Ctypes__String256 IMPORT TYPE TC_Ctypes__String256; #line 61 IMPORT char VS_Ctypes__String256__e84eeb8129c76f43; #line 60 #define t65 ADDRESS typedef signed_char t84; #line 60 typedef struct { t19 elts[64]; } t85; #define TC65 TC_Ctypes__String64 IMPORT TYPE TC_Ctypes__String64; #line 60 IMPORT char VS_Ctypes__String64__e232939e2f4ff601; #line 59 #define t66 ADDRESS typedef signed_char t86; #line 59 typedef struct { t19 elts[16]; } t87; #define TC66 TC_Ctypes__String16 IMPORT TYPE TC_Ctypes__String16; #line 59 IMPORT char VS_Ctypes__String16__46fccbf225a113eb; #line 58 #define t67 ADDRESS typedef signed_char t88; #line 58 typedef struct { t19 elts[4]; } t89; #define TC67 TC_Ctypes__String4 IMPORT TYPE TC_Ctypes__String4; #line 58 IMPORT char VS_Ctypes__String4__1ecbc452350ba764; #line 52 #define t68 ADDRESS typedef unsigned short t60; #line 52 #define TC68 TC_Ctypes__UnsignedShortStar IMPORT TYPE TC_Ctypes__UnsignedShortStar; #line 52 IMPORT char VS_Ctypes__UnsignedShortStar__ba7321c22f5477f7; #line 50 #define t69 ADDRESS #define t70 ADDRESS typedef short t61; #line 49 #define TC70 TC_Ctypes__ShortStar IMPORT TYPE TC_Ctypes__ShortStar; #line 49 IMPORT char VS_Ctypes__ShortStar__ceeffab3338d5be6; #define TC69 TC_Ctypes__ShortStarStar IMPORT TYPE TC_Ctypes__ShortStarStar; #line 50 IMPORT char VS_Ctypes__ShortStarStar__1827fd6f22a4a56a; #line 46 #define t71 ADDRESS #define TC71 TC_Ctypes__IntStar IMPORT TYPE TC_Ctypes__IntStar; #line 46 IMPORT char VS_Ctypes__IntStar__e39a77b6392d7c83; #line 44 #define t72 ADDRESS #define TC72 TC_Ctypes__IntStarStar IMPORT TYPE TC_Ctypes__IntStarStar; #line 44 IMPORT char VS_Ctypes__IntStarStar__a46afe5b32b9d475; #line 26 #define t74 ADDRESS #define TC74 TC_Ctypes__UnsignedCharStar IMPORT TYPE TC_Ctypes__UnsignedCharStar; #line 26 IMPORT char VS_Ctypes__UnsignedCharStar__5ba21f95225c580b; #define t75 ADDRESS #define TC75 TC_Ctypes__UnsignedCharStarStar IMPORT TYPE TC_Ctypes__UnsignedCharStarStar; #line 27 IMPORT char VS_Ctypes__UnsignedCharStarStar__64970e213b9e555a; #line 24 #define t76 ADDRESS #define t77 ADDRESS #define TC77 TC_Ctypes__CharStarStar IMPORT TYPE TC_Ctypes__CharStarStar; #line 23 IMPORT char VS_Ctypes__CharStarStar__5cd33554337263a0; #define TC76 TC_Ctypes__CharStarStarStar IMPORT TYPE TC_Ctypes__CharStarStarStar; #line 24 IMPORT char VS_Ctypes__CharStarStarStar__a792f1ad3925ee76; #define t91 ADDRESS #define TC91 TC_REFANY IMPORT TYPE TC_REFANY; IMPORT char VS_REFANY__4b8748e831fc107a; #define t106 ADDRESS #define TC106 TC_NULL IMPORT TYPE TC_NULL; IMPORT char VS_NULL__fb50c7d53bec30dc; #line 423 "UFileRdWr.m3" typedef t104 (*t1)(); #define t36 ADDRESS typedef struct { TYPE self; int private; } t36_methods; #define t36_msize (sizeof (t36_methods)) typedef struct { ADDRESS methods; } t36_fields; #define t36_size (sizeof (t36_fields)) #define TC36 TC_ROOT IMPORT TYPE TC_ROOT; IMPORT char VS_ROOT__349f58f628be0ac6; #define t36_MapProc TC_ROOT->mapProc #define t3 ADDRESS #define TC3 TC_Rd__T IMPORT TYPE TC_Rd__T; #line 83 ".ROOT/.boots/corelib/Interfaces/Rd.i3" IMPORT char VS_Rd__T__2555b70b3f7780b1; #define t3_MapProc TC_Rd__T->mapProc #define t4 ADDRESS #define TC4 TC_TEXT IMPORT TYPE TC_TEXT; IMPORT char VS_TEXT__b7a92447326386f5; #define t4_MapProc TC_TEXT->mapProc typedef t3 (*t5)(); #line 90 ".ROOT/.boots/corelib/Interfaces/Wr.i3" #define t6 ADDRESS #define TC6 TC_Wr__T IMPORT TYPE TC_Wr__T; #line 90 IMPORT char VS_Wr__T__2555b70b3f7780b1; #define t6_MapProc TC_Wr__T->mapProc typedef t6 (*t7)(); #line 14 "UFileRdWr.m3" #define t8 ADDRESS #line 14 typedef struct { int filler; } t8_methods; #define t8_msize (sizeof (t8_methods)) typedef struct { #line 14 t2 _targetFD; } t8_fields; #define t8_size (sizeof (t8_fields)) PRIVATE void t8_InitProc (); #line 14 PRIVATE void t8_SetupProc (); PRIVATE void t8_PrintProc (); PRIVATE void t8_MapProc (); PRIVATE typecell t8_TC; PRIVATE typecell t8_TC_init = {0, 0, 0, 0, 0, t8_MapProc, #line 14 t8_size, t8_msize, NIL, 0, 0, t8_InitProc, t8_SetupProc, t8_PrintProc, "UFileRdWr.FileReader", -1249746213, 540582810}; PRIVATE TYPE TC8 = &t8_TC; #line 14 #line 33 ".ROOT/.boots/corelib/Interfaces/CoreOS.i3" typedef struct { t2 _st_dev; t2 _st_ino; t2 _st_mode; t60 _st_nlink; t60 _st_uid; t2 _st_gid; t2 _st_rdev; t2 _st_size; t2 _st_atime; #line 33 t2 _st_spare1; t2 _st_mtime; t2 _st_spare2; t2 _st_ctime; t2 _st_spare3; t2 _st_blksize; t2 _st_blocks; t2 _st_gen; t2 _st_type; #line 33 t2 _st_vfs; t2 _st_flag; t2 _st_cmtcnt; t2 _st_fstore; t2 _st_version; t61 _st_css; t61 _st_ss; t61 _st_rdevsite; t61 _st_spare4; #line 33 t2 _st_nid; t2 _st_uid_raw; t2 _st_gid_raw; t2 _st_uid_rev_tag; t2 _st_gid_rev_tag; } t9; #line 17 "UFileRdWr.m3" #define t10 ADDRESS #line 17 typedef struct { int filler; } t10_methods; #define t10_msize (sizeof (t10_methods)) typedef struct { #line 17 t2 _targetFD; } t10_fields; #define t10_size (sizeof (t10_fields)) PRIVATE void t10_InitProc (); #line 17 PRIVATE void t10_SetupProc (); PRIVATE void t10_PrintProc (); PRIVATE void t10_MapProc (); PRIVATE typecell t10_TC; PRIVATE typecell t10_TC_init = {0, 0, 0, 0, 0, t10_MapProc, #line 17 t10_size, t10_msize, NIL, 0, 0, t10_InitProc, t10_SetupProc, t10_PrintProc, "UFileRdWr.FileWriter", 2075496797, 606696088}; PRIVATE TYPE TC10 = &t10_TC; #line 17 #line 23 ".ROOT/.boots/corelib/Interfaces/RdClass.i3" typedef unsigned char t11; typedef unsigned char t12; #line 297 "UFileRdWr.m3" #define t13 ADDRESS #line 32 ".ROOT/.boots/corelib/Interfaces/RdClass.i3" typedef t11 (*t14)(); #line 297 "UFileRdWr.m3" typedef struct { int filler; } t13_methods; #define t13_msize (sizeof (t13_methods)) typedef struct { #line 297 int filler; } t13_fields; #define t13_size (sizeof (t13_fields)) PRIVATE void t13_InitProc (); #line 297 PRIVATE void t13_SetupProc (); PRIVATE void t13_PrintProc (); PRIVATE void t13_MapProc (); PRIVATE typecell t13_TC; PRIVATE typecell t13_TC_init = {0, 0, 0, &t8_TC, 0, t13_MapProc, #line 297 t13_size, t13_msize, NIL, 0, 0, t13_InitProc, t13_SetupProc, t13_PrintProc, "UFileRdWr.NullReader", -363063235, 684372279}; PRIVATE TYPE TC13 = &t13_TC; #line 297 typedef t8 (*t15)(); #line 261 #define t16 ADDRESS #line 261 typedef struct { int filler; } t16_methods; #define t16_msize (sizeof (t16_methods)) typedef struct { #line 261 int filler; } t16_fields; #define t16_size (sizeof (t16_fields)) PRIVATE void t16_InitProc (); #line 261 PRIVATE void t16_SetupProc (); PRIVATE void t16_PrintProc (); PRIVATE void t16_MapProc (); PRIVATE typecell t16_TC; PRIVATE typecell t16_TC_init = {0, 0, 0, &t10_TC, 0, t16_MapProc, #line 261 t16_size, t16_msize, NIL, 0, 0, t16_InitProc, t16_SetupProc, t16_PrintProc, "UFileRdWr.NullWriter", -1962880446, 596539334}; PRIVATE TYPE TC16 = &t16_TC; #line 261 typedef int t17; typedef t10 (*t21)(); #line 203 #define t22 ADDRESS #line 203 typedef struct { int filler; } t22_methods; #define t22_msize (sizeof (t22_methods)) typedef struct { #line 203 int filler; } t22_fields; #define t22_size (sizeof (t22_fields)) PRIVATE void t22_InitProc (); #line 203 PRIVATE void t22_SetupProc (); PRIVATE void t22_PrintProc (); PRIVATE void t22_MapProc (); PRIVATE typecell t22_TC; PRIVATE typecell t22_TC_init = {0, 0, 0, &t8_TC, 0, t22_MapProc, #line 203 t22_size, t22_msize, NIL, 0, 0, t22_InitProc, t22_SetupProc, t22_PrintProc, "UFileRdWr.TerminalReader", -341121878, 677007952}; PRIVATE TYPE TC22 = &t22_TC; #line 203 #line 144 #define t23 ADDRESS #line 144 typedef struct { int filler; } t23_methods; #define t23_msize (sizeof (t23_methods)) typedef struct { #line 144 int filler; } t23_fields; #define t23_size (sizeof (t23_fields)) PRIVATE void t23_InitProc (); #line 144 PRIVATE void t23_SetupProc (); PRIVATE void t23_PrintProc (); PRIVATE void t23_MapProc (); PRIVATE typecell t23_TC; PRIVATE typecell t23_TC_init = {0, 0, 0, &t10_TC, 0, t23_MapProc, #line 144 t23_size, t23_msize, NIL, 0, 0, t23_InitProc, t23_SetupProc, t23_PrintProc, "UFileRdWr.TerminalWriter", -480190473, 949855597}; PRIVATE TYPE TC23 = &t23_TC; #line 144 #line 90 #define t24 ADDRESS #line 33 ".ROOT/.boots/corelib/Interfaces/RdClass.i3" typedef t17 (*t25)(); #line 90 "UFileRdWr.m3" typedef struct { int filler; } t24_methods; #define t24_msize (sizeof (t24_methods)) typedef struct { #line 90 t2 _targetSize; } t24_fields; #define t24_size (sizeof (t24_fields)) PRIVATE void t24_InitProc (); #line 90 PRIVATE void t24_SetupProc (); PRIVATE void t24_PrintProc (); PRIVATE void t24_MapProc (); PRIVATE typecell t24_TC; PRIVATE typecell t24_TC_init = {0, 0, 0, &t8_TC, 0, t24_MapProc, #line 90 t24_size, t24_msize, NIL, 0, 0, t24_InitProc, t24_SetupProc, t24_PrintProc, "UFileRdWr.DiskReader", -140304822, 859888006}; PRIVATE TYPE TC24 = &t24_TC; #line 90 #line 27 #define t26 ADDRESS #line 27 typedef struct { int filler; } t26_methods; #define t26_msize (sizeof (t26_methods)) typedef struct { #line 27 t2 _targetSize; } t26_fields; #define t26_size (sizeof (t26_fields)) PRIVATE void t26_InitProc (); #line 27 PRIVATE void t26_SetupProc (); PRIVATE void t26_PrintProc (); PRIVATE void t26_MapProc (); PRIVATE typecell t26_TC; PRIVATE typecell t26_TC_init = {0, 0, 0, &t10_TC, 0, t26_MapProc, #line 27 t26_size, t26_msize, NIL, 0, 0, t26_InitProc, t26_SetupProc, t26_PrintProc, "UFileRdWr.DiskWriter", 53502168, 685611555}; PRIVATE TYPE TC26 = &t26_TC; #line 27 #line 109 ".ROOT/.boots/corelib/Interfaces/Time.i3" typedef struct { t2 _minutesWest; t2 _dstAlgorithm; } t27; #line 55 typedef struct { t2 _seconds; t2 _microseconds; } t28; #line 119 typedef void (*t29)(); #line 100 typedef signed_char t30; typedef t30 (*t31)(); #line 97 typedef void (*t32)(); #line 87 typedef t2 (*t33)(); #line 26 ".ROOT/.boots/corelib/Interfaces/RdClass.i3" #define t34 ADDRESS #line 22 #define t35 ADDRESS #define TC35 TC_RdClass__Private IMPORT TYPE TC_RdClass__Private; #line 22 IMPORT char VS_RdClass__Private__5594af883f1b8361; #define t35_MapProc TC_RdClass__Private->mapProc typedef struct { t14 _seek; t25 _length; t1 _close; } t34_methods; #define t34_msize (sizeof (t34_methods)) typedef struct { #line 26 t18 _buff; t17 _st; t17 _lo; t17 _hi; t17 _cur; t12 _closed; t12 _seekable; t12 _intermittent; } t34_fields; #define t34_size (sizeof (t34_fields)) #define TC34 TC_Rd__T #define t34_MapProc TC_Rd__T->mapProc #define t37 ADDRESS #line 76 ".ROOT/.boots/corelib/Interfaces/WrClass.i3" #define t38 ADDRESS #define TC38 TC_WrClass__Private IMPORT TYPE TC_WrClass__Private; #line 76 IMPORT char VS_WrClass__Private__5594af883f1b8361; #define t38_MapProc TC_WrClass__Private->mapProc typedef struct { t1 _seek; t25 _length; t1 _flush; t1 _close; } t37_methods; #define t37_msize (sizeof (t37_methods)) typedef struct { #line 79 t18 _buff; t17 _st; t17 _lo; t17 _hi; t17 _cur; t12 _closed; t12 _seekable; t12 _buffered; } t37_fields; #define t37_size (sizeof (t37_fields)) #define TC37 TC_Wr__T #define t37_MapProc TC_Wr__T->mapProc typedef t44 (*t45)(); #line 40 ".ROOT/.boots/corelib/Interfaces/M3toC.i3" typedef t46 (*t47)(); #line 37 typedef t48 (*t49)(); #line 31 typedef t40 (*t50)(); #line 22 typedef t4 (*t51)(); #line 55 ".ROOT/.boots/corelib/Interfaces/Text.i3" typedef t12 (*t52)(); #line 23 typedef t19 (*t53)(); #line 136 ".ROOT/.boots/corelib/Interfaces/CoreOS.i3" typedef struct { t1 _sv_handler; t2 _sv_mask; t2 _sv_flags; } t54; #line 96 typedef struct { t2 _tv_sec; t2 _tv_usec; } t59; typedef struct { t59 _it_interval; t59 _it_value; } t57; #line 100 typedef struct { t2 _tz_minuteswest; t2 _tz_dsttime; } t58; #line 19 ".ROOT/.boots/corelib/Interfaces/Ctypes.i3" typedef signed_char t78; #line 91 ".ROOT/.boots/corelib/Interfaces/Wr.i3" typedef unsigned char t90; #line 84 ".ROOT/.boots/corelib/Interfaces/Rd.i3" typedef unsigned char t93; #line 15 ".ROOT/.boots/corelib/Interfaces/Thread.i3" #define t94 ADDRESS #define TC94 TC_Thread__T IMPORT TYPE TC_Thread__T; #line 15 IMPORT char VS_Thread__T__2555b70b3f7780b1; #define t94_MapProc TC_Thread__T->mapProc typedef t91 (*t95)(); #define t96 ADDRESS #define TC96 TC_Thread__Condition IMPORT TYPE TC_Thread__Condition; #line 21 IMPORT char VS_Thread__Condition__26d5968239e08f4e; #define t96_MapProc TC_Thread__Condition->mapProc #define t97 ADDRESS #define TC97 TC_MUTEX IMPORT TYPE TC_MUTEX; IMPORT char VS_MUTEX__1f9d4e89391ab815; #define t97_MapProc TC_MUTEX->mapProc typedef t94 (*t98)(); #line 23 #define t99 ADDRESS #line 23 typedef struct { t95 _apply; } t99_methods; #define t99_msize (sizeof (t99_methods)) typedef struct { #line 23 int filler; } t99_fields; #define t99_size (sizeof (t99_fields)) #define TC99 TC_Thread__Closure IMPORT TYPE TC_Thread__Closure; #line 23 IMPORT char VS_Thread__Closure__7fb5c6232c5a658a; #define t99_MapProc TC_Thread__Closure->mapProc typedef t96 (*t100)(); typedef t97 (*t101)(); #line 28 #define t102 ADDRESS #line 28 typedef struct { int filler; } t102_methods; #define t102_msize (sizeof (t102_methods)) typedef struct { #line 28 t17 _stackSize; } t102_fields; #define t102_size (sizeof (t102_fields)) #define TC102 TC_Thread__SizedClosure IMPORT TYPE TC_Thread__SizedClosure; #line 28 IMPORT char VS_Thread__SizedClosure__8a46717d2eae7b07; #define t102_MapProc TC_Thread__SizedClosure->mapProc typedef CLOSURE t103; #define t105 ADDRESS typedef struct { TYPE self; int private; } t105_methods; #define t105_msize (sizeof (t105_methods)) typedef struct { ADDRESS methods; } t105_fields; #define t105_size (sizeof (t105_fields)) #define TC105 TC_UNTRACED_ROOT IMPORT TYPE TC_UNTRACED_ROOT; IMPORT char VS_UNTRACED_ROOT__3e0964513fd6da20; #line 7 "UFileRdWr.m3" IMPORT INITLINK* Word__init; IMPORT INITLINK* Time__init; IMPORT INITLINK* Text__init; IMPORT INITLINK* RdClass__init; IMPORT INITLINK* Rd__init; #line 7 IMPORT INITLINK* WrClass__init; IMPORT INITLINK* Wr__init; IMPORT INITLINK* M3toC__init; IMPORT INITLINK* CoreOS__init; IMPORT INITLINK* Stdio__init; #line 7 IMPORT INITLINK* FileStream__init; IMPORT INITLINK* UFileRdWr__init; IMPORT t2 _Word__Or (); IMPORT char VS_Word__Or__6e0e049826e116f7; #line 7 IMPORT EXCEPTION_NAME _Thread__Alerted; IMPORT char VS_Thread__Alerted__fc88feb43485af46; IMPORT t104 _Time__Pause (); IMPORT char VS_Time__Pause__2b3acd4827f1853b; #line 7 IMPORT EXCEPTION_NAME _Time__NoPrivileges; IMPORT char VS_Time__NoPrivileges__6cb57575330ad093; IMPORT TYPE TC_Text__T; #line 7 IMPORT char VS_Text__T__fc4b369f3ab271fd; IMPORT EXCEPTION_NAME _Rd__Error; IMPORT char VS_Rd__Error__5ca07bfe2ba90cfc; #line 7 IMPORT EXCEPTION_NAME _Rd__Failure; IMPORT char VS_Rd__Failure__e4a829e331222b6d; IMPORT t17 _RdClass__LengthDefault (); IMPORT char VS_RdClass__LengthDefault__76d0ecc72f6b16a1; #line 7 IMPORT t104 _RdClass__CloseDefault (); IMPORT char VS_RdClass__CloseDefault__f0ed7e3d26d0db8a; IMPORT EXCEPTION_NAME _Rd__EndOfFile; #line 7 IMPORT char VS_Rd__EndOfFile__f4a9d2f63b7e105d; IMPORT t104 _Rd__Close (); IMPORT char VS_Rd__Close__adf5eb9535b06daa; IMPORT EXCEPTION_NAME _Wr__Error; #line 7 IMPORT char VS_Wr__Error__c367253d3ed4fd15; IMPORT EXCEPTION_NAME _Wr__Failure; IMPORT char VS_Wr__Failure__5f82cfb43dabf527; #line 7 IMPORT t17 _WrClass__LengthDefault (); IMPORT char VS_WrClass__LengthDefault__f78fa4a22d1f7f55; IMPORT t104 _WrClass__CloseDefault (); #line 7 IMPORT char VS_WrClass__CloseDefault__d8c30bfe280fb390; IMPORT t104 _WrClass__FlushDefault (); IMPORT char VS_WrClass__FlushDefault__0f59e35131773891; #line 7 IMPORT t104 _Wr__Close (); IMPORT char VS_Wr__Close__6e568877234e064a; IMPORT t40 _M3toC__TtoS (); IMPORT char VS_M3toC__TtoS__f9cd287822393639; #line 7 IMPORT TYPE TC_Ctypes__char_star; IMPORT char VS_Ctypes__char_star__90cf39683847e5e8; IMPORT char VS_CoreOS__L_SET__aabc195c27ca31f1; #line 7 IMPORT t2 lseek (); IMPORT char VSlseek__1b11761e2aa1179d; IMPORT t2 errno; IMPORT char VSerrno__0bae78e627d87a9f; IMPORT char VS_CoreOS__F_GETFL__74e443c226cf8161; #line 7 IMPORT char VS_CoreOS__F_SETFL__1726678e31428a07; IMPORT t2 fcntl (); IMPORT char VSfcntl__52d962052a663db7; IMPORT char VS_CoreOS__O_NDELAY__7c9a0113274ba131; #line 7 IMPORT char VS_CoreOS__EWOULDBLOCK__54edf8e529c7cc84; IMPORT char VS_CoreOS__EAGAIN__a80ff75234d2e94a; IMPORT char VS_CoreOS__SIFMT__b7c299d638f36369; #line 7 IMPORT char VS_CoreOS__SIFPIPE__f6413ea93a778dda; IMPORT char VS_CoreOS__SIFPORT__9a3d1433351dbbc0; IMPORT char VS_CoreOS__SIFCHR__7fea3ae33875bc45; #line 7 IMPORT char VS_CoreOS__SIFREG__0430f2a63b8ee112; IMPORT t2 fstat (); IMPORT char VSfstat__288279f43a7474d0; IMPORT char VS_CoreOS__Mrwrr__f4b8ab2a3b7dd061; #line 7 IMPORT char VS_CoreOS__O_RDONLY__0f5915432d0ac47b; IMPORT char VS_CoreOS__O_WRONLY__7edda6902a4a3f30; IMPORT char VS_CoreOS__O_CREAT__de24e30f3fa3e7d8; #line 7 IMPORT char VS_CoreOS__O_TRUNC__e6af583f2008f240; IMPORT char VS_CoreOS__O_APPEND__adf3acf0387167fe; IMPORT t2 open (); IMPORT char VSopen__c90173983e21a618; #line 7 IMPORT t2 read (); IMPORT char VSread__8a0dc0b13319b227; IMPORT t2 write (); IMPORT char VSwrite__fc2da7682d945026; IMPORT t2 close (); #line 7 IMPORT char VSclose__6f18eee8245e110c; IMPORT t3 _Stdio__stdin; IMPORT char VS_Stdio__stdin__e330ea7f240b0c63; IMPORT t6 _Stdio__stdout; #line 7 IMPORT char VS_Stdio__stdout__90ec4d7626198023; IMPORT t6 _Stdio__stderr; IMPORT char VS_Stdio__stderr__adb65da037aadcf0; #line 7 IMPORT t6 _Stdio__bufferedStdout; IMPORT char VS_Stdio__bufferedStdout__99b37c3a361d29dc; IMPORT t6 _Stdio__bufferedStderr; #line 7 IMPORT char VS_Stdio__bufferedStderr__c33581643dee447e; EXPORT t104 _Stdio__Close (); EXPORT char VS_Stdio__Close__1013450120cd6748 = '\0'; #line 7 EXPORT t3 _FileStream__OpenRead (); EXPORT char VS_FileStream__OpenRead__ba61beaf3cb581b3 = '\0'; EXPORT t6 _FileStream__OpenWrite (); #line 7 EXPORT char VS_FileStream__OpenWrite__449333bc31e524a0 = '\0'; EXPORT t6 _FileStream__OpenAppend (); EXPORT char VS_FileStream__OpenAppend__7146c7b52332118d = '\0'; #line 7 EXPORT t3 _UFileRdWr__CreateFileReader (); EXPORT char VS_UFileRdWr__CreateFileReader__9d9e31502e4b743c = '\0'; EXPORT t6 _UFileRdWr__CreateFileWriter (); #line 7 EXPORT char VS_UFileRdWr__CreateFileWriter__7378894a2ff5d07b = '\0'; PRIVATE TYPE TC_UFileRdWr__FileReader; PRIVATE TYPE TC_UFileRdWr__FileWriter; #line 7 PRIVATE TYPE TC_UFileRdWr__DiskWriter; PRIVATE t10 _UFileRdWr__NewDiskWriter (); PRIVATE t104 _UFileRdWr__DiskWriterSeek (); #line 7 PRIVATE t104 _UFileRdWr__DiskWriterFlush (); PRIVATE TYPE TC_UFileRdWr__DiskReader; PRIVATE t8 _UFileRdWr__NewDiskReader (); #line 7 PRIVATE t11 _UFileRdWr__DiskReaderSeek (); PRIVATE t17 _UFileRdWr__DiskReaderLength (); PRIVATE TYPE TC_UFileRdWr__TerminalWriter; #line 7 PRIVATE t10 _UFileRdWr__NewTerminalWriter (); PRIVATE t104 _UFileRdWr__TerminalWriterSeek (); PRIVATE t104 _UFileRdWr__TerminalWriterFlush (); #line 7 PRIVATE TYPE TC_UFileRdWr__TerminalReader; PRIVATE t8 _UFileRdWr__NewTerminalReader (); PRIVATE t11 _UFileRdWr__TerminalReaderSeek (); #line 7 PRIVATE TYPE TC_UFileRdWr__NullWriter; PRIVATE t10 _UFileRdWr__NewNullWriter (); PRIVATE t104 _UFileRdWr__NullWriterSeek (); #line 7 PRIVATE t104 _UFileRdWr__NullWriterFlush (); PRIVATE TYPE TC_UFileRdWr__NullReader; PRIVATE t8 _UFileRdWr__NewNullReader (); #line 7 PRIVATE t11 _UFileRdWr__NullReaderSeek (); PRIVATE t104 _UFileRdWr__FileWriterClose (); PRIVATE t104 _UFileRdWr__FileReaderClose (); #line 7 PRIVATE t6 _UFileRdWr__OpenWriteOrAppend (); IMPORT char VS_Wr__T__7c10558031149878; IMPORT char VS_Rd__T__b8a4a5d534f35558; #line 7 #line 36 PRIVATE EXCEPTION_NAME *raises_28 [] = { & _Wr__Failure, & _Wr__Error, (EXCEPTION_NAME *) NULL}; #line 68 PRIVATE EXCEPTION_NAME *raises_29 [] = { & _Wr__Failure, (EXCEPTION_NAME *) NULL}; #line 99 PRIVATE EXCEPTION_NAME *raises_31 [] = { & _Rd__Error, & _Thread__Alerted, & _Rd__Failure, (EXCEPTION_NAME *) NULL}; #line 129 PRIVATE EXCEPTION_NAME *raises_32 [] = { & _Rd__Error, & _Thread__Alerted, & _Rd__Failure, (EXCEPTION_NAME *) NULL}; #line 158 PRIVATE EXCEPTION_NAME *raises_34 [] = { & _Wr__Failure, & _Wr__Error, (EXCEPTION_NAME *) NULL}; #line 181 PRIVATE EXCEPTION_NAME *raises_35 [] = { & _Wr__Failure, (EXCEPTION_NAME *) NULL}; #line 224 PRIVATE EXCEPTION_NAME *raises_36 [] = { & _Rd__Error, & _Thread__Alerted, & _Rd__Failure, (EXCEPTION_NAME *) NULL}; #line 269 PRIVATE EXCEPTION_NAME *raises_37 [] = { & _Wr__Error, (EXCEPTION_NAME *) NULL}; #line 304 PRIVATE EXCEPTION_NAME *raises_38 [] = { & _Rd__Error, & _Thread__Alerted, & _Rd__Failure, (EXCEPTION_NAME *) NULL}; #line 345 PRIVATE EXCEPTION_NAME *raises_30 [] = { & _Wr__Failure, (EXCEPTION_NAME *) NULL}; #line 377 PRIVATE EXCEPTION_NAME *raises_33 [] = { & _Rd__Failure, (EXCEPTION_NAME *) NULL}; #line 34 "UFileRdWr.m3" PRIVATE t10 _UFileRdWr__NewDiskWriter (_fd, _size) t2 _fd; t2 _size; { t26 z0; t18 z1; #line 34 "UFileRdWr.m3" { auto t10 __result; { ZERO1 (& __result); CHECKSTACKOVERFLOW; { register char** ptr = (char**) TNEWOBJ (TC26); ((t37_fields*)((char*)ptr + (TC38->datasize + 0)))->_st = 0 ; ((t37_fields*)((char*)ptr + (TC38->datasize + 0)))->_lo = 0 ; #line 36 ((t37_fields*)((char*)ptr + (TC38->datasize + 0)))->_cur = 0 ; ((t37_fields*)((char*)ptr + (TC38->datasize + 0)))->_hi = 4096 ; #line 36 { register t92* ptr; int sz[1]; sz[0] = 4096 ; ptr = (t92*) TNEWA(TC18, 8 + sz[0] * 1); ptr->elts = (char*)(& ptr->size[1]); #line 36 ptr->size[0] = sz[0]; z1 = (t18) ptr; }; ((t37_fields*)((char*)ptr + (TC38->datasize + 0)))->_buff = z1; ((t37_fields*)((char*)ptr + (TC38->datasize + 0)))->_closed = 0 ; #line 36 ((t37_fields*)((char*)ptr + (TC38->datasize + 0)))->_seekable = 1 ; ((t37_fields*)((char*)ptr + (TC38->datasize + 0)))->_buffered = 1 ; #line 36 ((t10_fields*)((char*)ptr + (TC38->datasize + 0+t37_size)))->_targetFD = _fd; ((t26_fields*)((char*)ptr + (TC38->datasize + 0+t10_size+t37_size)))->_targetSize = _size; #line 36 z0 = (t26) ptr; }; __result = z0; return __result; } } }; #line 49 "UFileRdWr.m3" PRIVATE t104 _UFileRdWr__DiskWriterSeek (_wr, _n) t26 _wr; t17 _n; { t26 z1; t26 z0; t90 z2; t2 z3; t12 z4; t26 z5; t18 z6; t2 z7; t2 z8; t40 z9; t106 z10; t17 z11; #line 49 "UFileRdWr.m3" { HANDLER hproc_0; PUSH_RAISES (hproc_0, raises_28, proc_0); { auto t2 _buffered; auto t2 _status; { CHECKSTACKOVERFLOW; NILCHECKA (z1 = _wr); z0 = (char*)z1 + TC38->datasize; if ((((t37_fields*)(z0+(0)))->_closed)) { z2 = 0 ; RAISE (& _Wr__Error, & z2, 1); }; NILCHECKA (z1 = _wr); z0 = (char*)z1 + TC38->datasize; z3 = (((t37_fields*)(z0+(0)))->_cur) - (((t37_fields*)(z0+(0)))->_lo); #line 55 _buffered = z3; z4 = (_buffered != 0 ); if (z4) { NILCHECKA (z5 = _wr); z1 = (char*)z5 + TC38->datasize; NILCHECKB (z6 = (((t37_fields*)(z1+(0)))->_buff)); { register t92* array = & (*((t20*) z6)); #line 57 z8 = 0 ; if (z8 >= (array->size[0])) RANGEFAULT; z7 = (int)(array->elts + (z8 * 1)); }; z9 = (char*)(& (*(t19*)z7)); #line 57 z7 = write ((((t10_fields*)(z1+(0+t37_size)))->_targetFD), z9, _buffered); _status = z7; z4 = (_status != _buffered); if (z4) { z10 = 0; RAISE (& _Wr__Failure, & z10, 4); }; NILCHECKA (z1 = _wr); z0 = (char*)z1 + TC38->datasize; z3 = (((t26_fields*)(z0+(0+t10_size+t37_size)))->_targetSize); #line 60 z11 = (((t37_fields*)(z0+(0)))->_cur); if (z3 < z11) z3 = z11; NILCHECKA (z1 = _wr); z0 = (char*)z1 + TC38->datasize; #line 60 (((t26_fields*)(z0+(0+t10_size+t37_size)))->_targetSize) = z3; goto if_2_end; }; if_2_end: /**/; NILCHECKA (z5 = _wr); z1 = (char*)z5 + TC38->datasize; z11 = _n; z3 = (((t26_fields*)(z1+(0+t10_size+t37_size)))->_targetSize); #line 61 if (z11 > z3) z11 = z3; z3 = z11; if (z3 < 0) RANGEFAULT; _n = z3; NILCHECKA (z5 = _wr); z1 = (char*)z5 + TC38->datasize; z4 = (_n != (((t37_fields*)(z1+(0)))->_cur)); if (z4) { NILCHECKA (z5 = _wr); z1 = (char*)z5 + TC38->datasize; z7 = lseek ((((t10_fields*)(z1+(0+t37_size)))->_targetFD), _n, 0 ); #line 63 _status = z7; z4 = (_status != _n); if (z4) { z10 = 0; RAISE (& _Wr__Failure, & z10, 4); }; goto if_4_end; }; if_4_end: /**/; NILCHECKA (z5 = _wr); z1 = (char*)z5 + TC38->datasize; (((t37_fields*)(z1+(0)))->_lo) = _n; NILCHECKA (z5 = _wr); z1 = (char*)z5 + TC38->datasize; (((t37_fields*)(z1+(0)))->_cur) = _n; NILCHECKA (z1 = _wr); z0 = (char*)z1 + TC38->datasize; NILCHECKB (z6 = (((t37_fields*)(z0+(0)))->_buff)); z11 = (*((t20*) z6)).size[0]; #line 68 z3 = (((t37_fields*)(z0+(0)))->_lo) + z11; z7 = z3; if (z7 < 0) RANGEFAULT; NILCHECKA (z1 = _wr); z0 = (char*)z1 + TC38->datasize; #line 68 (((t37_fields*)(z0+(0)))->_hi) = z7; } } proc_0: CUT_TO_NEXT_HANDLER (hproc_0); if (hproc_0.exception != 0) RAISE_FOR_SURE (hproc_0.exception); #line 68 }; }; #line 71 "UFileRdWr.m3" PRIVATE t104 _UFileRdWr__DiskWriterFlush (_wr) t26 _wr; { t26 z1; t26 z0; t2 z3; t12 z2; t26 z4; t18 z5; t2 z6; t2 z7; t40 z8; t106 z9; t17 z10; #line 71 "UFileRdWr.m3" { HANDLER hproc_0; PUSH_RAISES (hproc_0, raises_29, proc_0); { auto t2 _status; auto t2 _buffered; { CHECKSTACKOVERFLOW; NILCHECKA (z1 = _wr); z0 = (char*)z1 + TC38->datasize; z3 = (((t37_fields*)(z0+(0)))->_cur) - (((t37_fields*)(z0+(0)))->_lo); #line 74 _buffered = z3; z2 = (_buffered != 0 ); if (z2) { NILCHECKA (z4 = _wr); z1 = (char*)z4 + TC38->datasize; NILCHECKB (z5 = (((t37_fields*)(z1+(0)))->_buff)); { register t92* array = & (*((t20*) z5)); #line 76 z7 = 0 ; if (z7 >= (array->size[0])) RANGEFAULT; z6 = (int)(array->elts + (z7 * 1)); }; z8 = (char*)(& (*(t19*)z6)); #line 76 z6 = write ((((t10_fields*)(z1+(0+t37_size)))->_targetFD), z8, _buffered); _status = z6; z2 = (_status != _buffered); if (z2) { z9 = 0; RAISE (& _Wr__Failure, & z9, 4); }; NILCHECKA (z1 = _wr); z0 = (char*)z1 + TC38->datasize; z3 = (((t26_fields*)(z0+(0+t10_size+t37_size)))->_targetSize); #line 79 z10 = (((t37_fields*)(z0+(0)))->_cur); if (z3 < z10) z3 = z10; NILCHECKA (z1 = _wr); z0 = (char*)z1 + TC38->datasize; #line 79 (((t26_fields*)(z0+(0+t10_size+t37_size)))->_targetSize) = z3; NILCHECKA (z1 = _wr); z0 = (char*)z1 + TC38->datasize; (((t37_fields*)(z0+(0)))->_lo) = (((t37_fields*)(z0+(0)))->_cur); NILCHECKA (z1 = _wr); z0 = (char*)z1 + TC38->datasize; NILCHECKB (z5 = (((t37_fields*)(z0+(0)))->_buff)); z10 = (*((t20*) z5)).size[0]; #line 81 z3 = (((t37_fields*)(z0+(0)))->_cur) + z10; z6 = z3; if (z6 < 0) RANGEFAULT; NILCHECKA (z1 = _wr); z0 = (char*)z1 + TC38->datasize; #line 81 (((t37_fields*)(z0+(0)))->_hi) = z6; goto if_6_end; }; if_6_end: /**/; } } proc_0: CUT_TO_NEXT_HANDLER (hproc_0); #line 81 if (hproc_0.exception != 0) RAISE_FOR_SURE (hproc_0.exception); }; }; #line 97 "UFileRdWr.m3" PRIVATE t8 _UFileRdWr__NewDiskReader (_fd, _size) t2 _fd; t2 _size; { t24 z0; t18 z1; #line 97 "UFileRdWr.m3" { auto t8 __result; { ZERO1 (& __result); CHECKSTACKOVERFLOW; { register char** ptr = (char**) TNEWOBJ (TC24); ((t34_fields*)((char*)ptr + (TC35->datasize + 0)))->_st = 0 ; ((t34_fields*)((char*)ptr + (TC35->datasize + 0)))->_lo = 0 ; #line 99 ((t34_fields*)((char*)ptr + (TC35->datasize + 0)))->_cur = 0 ; ((t34_fields*)((char*)ptr + (TC35->datasize + 0)))->_hi = 4096 ; #line 99 { register t92* ptr; int sz[1]; sz[0] = 4096 ; ptr = (t92*) TNEWA(TC18, 8 + sz[0] * 1); ptr->elts = (char*)(& ptr->size[1]); #line 99 ptr->size[0] = sz[0]; z1 = (t18) ptr; }; ((t34_fields*)((char*)ptr + (TC35->datasize + 0)))->_buff = z1; ((t34_fields*)((char*)ptr + (TC35->datasize + 0)))->_closed = 0 ; #line 99 ((t34_fields*)((char*)ptr + (TC35->datasize + 0)))->_seekable = 1 ; ((t34_fields*)((char*)ptr + (TC35->datasize + 0)))->_intermittent = 0 ; #line 99 ((t8_fields*)((char*)ptr + (TC35->datasize + 0+t34_size)))->_targetFD = _fd; ((t24_fields*)((char*)ptr + (TC35->datasize + 0+t8_size+t34_size)))->_targetSize = _size; #line 99 z0 = (t24) ptr; }; __result = z0; return __result; } } }; #line 112 "UFileRdWr.m3" PRIVATE t11 _UFileRdWr__DiskReaderSeek (_rd, _dontBlock) t24 _rd; t12 _dontBlock; { t24 z2; t24 z1; t2 z5; t12 z3; t106 z4; t18 z6; t2 z7; t2 z8; t40 z9; t17 z10; t24 z0; #line 112 "UFileRdWr.m3" { HANDLER hproc_0; PUSH_RAISES (hproc_0, raises_31, proc_0); { auto t2 _status; auto t11 __result; { ZERO1B (& __result); #line 112 CHECKSTACKOVERFLOW; NILCHECKA (z2 = _rd); z1 = (char*)z2 + TC35->datasize; z5 = lseek ((((t8_fields*)(z1+(0+t34_size)))->_targetFD), (((t34_fields*)(z1+(0)))->_cur), 0 ); #line 116 _status = z5; NILCHECKA (z2 = _rd); z1 = (char*)z2 + TC35->datasize; z3 = (_status != (((t34_fields*)(z1+(0)))->_cur)); if (z3) { z4 = 0; RAISE (& _Rd__Failure, & z4, 4); }; NILCHECKA (z2 = _rd); z1 = (char*)z2 + TC35->datasize; NILCHECKB (z6 = (((t34_fields*)(z1+(0)))->_buff)); z5 = 0 ; #line 119 if (z5 < 0) RANGEFAULT; { register t92* array = & (*((t20*) z6)); z8 = z5; if (z8 >= (array->size[0])) RANGEFAULT; #line 119 z7 = (int)(array->elts + (z8 * 1)); }; z9 = (char*)(& (*(t19*)z7)); NILCHECKB (z6 = (((t34_fields*)(z1+(0)))->_buff)); #line 119 z10 = (*((t20*) z6)).size[0]; z5 = read ((((t8_fields*)(z1+(0+t34_size)))->_targetFD), z9, z10); _status = z5; z5 = - 1 ; z3 = (_status == z5); if (z3) { z4 = 0; RAISE (& _Rd__Failure, & z4, 4); }; z3 = (_status == 0 ); if (z3) { NILCHECKA (z1 = _rd); z0 = (char*)z1 + TC35->datasize; z5 = (((t24_fields*)(z0+(0+t8_size+t34_size)))->_targetSize); #line 124 if (z5 < 0) RANGEFAULT; NILCHECKA (z1 = _rd); z0 = (char*)z1 + TC35->datasize; (((t34_fields*)(z0+(0)))->_cur) = z5; __result = 2 ; CUT_TO_NEXT_HANDLER (hproc_0); return __result; }; NILCHECKA (z1 = _rd); z0 = (char*)z1 + TC35->datasize; (((t34_fields*)(z0+(0)))->_lo) = (((t34_fields*)(z0+(0)))->_cur); NILCHECKA (z1 = _rd); z0 = (char*)z1 + TC35->datasize; z5 = (((t34_fields*)(z0+(0)))->_cur) + _status; z7 = z5; #line 128 if (z7 < 0) RANGEFAULT; NILCHECKA (z1 = _rd); z0 = (char*)z1 + TC35->datasize; (((t34_fields*)(z0+(0)))->_hi) = z7; __result = 0 ; CUT_TO_NEXT_HANDLER (hproc_0); return __result; } } proc_0: CUT_TO_NEXT_HANDLER (hproc_0); if (hproc_0.exception != 0) RAISE_FOR_SURE (hproc_0.exception); #line 129 }; }; #line 132 "UFileRdWr.m3" PRIVATE t17 _UFileRdWr__DiskReaderLength (_rd) t24 _rd; { t24 z1; t24 z0; t2 z2; #line 132 "UFileRdWr.m3" { HANDLER hproc_0; PUSH_RAISES (hproc_0, raises_32, proc_0); { auto t17 __result; { ZERO1 (& __result); CHECKSTACKOVERFLOW; NILCHECKA (z1 = _rd); z0 = (char*)z1 + TC35->datasize; z2 = (((t24_fields*)(z0+(0+t8_size+t34_size)))->_targetSize); #line 135 if (z2 < 0) RANGEFAULT; __result = z2; CUT_TO_NEXT_HANDLER (hproc_0); return __result; } } proc_0: CUT_TO_NEXT_HANDLER (hproc_0); #line 135 if (hproc_0.exception != 0) RAISE_FOR_SURE (hproc_0.exception); }; }; #line 150 "UFileRdWr.m3" PRIVATE t10 _UFileRdWr__NewTerminalWriter (_fd, _buffered) t2 _fd; t12 _buffered; { t23 z0; t2 z2; t18 z1; #line 150 "UFileRdWr.m3" { auto t2 _bufSize; auto t10 __result; { ZERO1 (& __result); CHECKSTACKOVERFLOW; if (_buffered) { _bufSize = 4096 ; goto if_10_end; }; _bufSize = 1 ; if_10_end: /**/; { register char** ptr = (char**) TNEWOBJ (TC23); ((t37_fields*)((char*)ptr + (TC38->datasize + 0)))->_st = 0 ; ((t37_fields*)((char*)ptr + (TC38->datasize + 0)))->_lo = 0 ; #line 158 ((t37_fields*)((char*)ptr + (TC38->datasize + 0)))->_cur = 0 ; z2 = _bufSize; if (z2 < 0) RANGEFAULT; ((t37_fields*)((char*)ptr + (TC38->datasize + 0)))->_hi = z2; #line 158 { register t92* ptr; int sz[1]; sz[0] = _bufSize; ptr = (t92*) TNEWA(TC18, 8 + sz[0] * 1); ptr->elts = (char*)(& ptr->size[1]); #line 158 ptr->size[0] = sz[0]; z1 = (t18) ptr; }; ((t37_fields*)((char*)ptr + (TC38->datasize + 0)))->_buff = z1; ((t37_fields*)((char*)ptr + (TC38->datasize + 0)))->_closed = 0 ; #line 158 ((t37_fields*)((char*)ptr + (TC38->datasize + 0)))->_seekable = 0 ; ((t37_fields*)((char*)ptr + (TC38->datasize + 0)))->_buffered = _buffered; #line 158 ((t10_fields*)((char*)ptr + (TC38->datasize + 0+t37_size)))->_targetFD = _fd; z0 = (t23) ptr; }; __result = z0; return __result; #line 158 } } }; #line 170 "UFileRdWr.m3" PRIVATE t104 _UFileRdWr__TerminalWriterSeek (_wr, _n) t23 _wr; t17 _n; { t23 z2; t23 z1; t12 z3; t12 z0; t12 z4; t90 z5; t2 z6; t18 z7; t2 z8; t40 z9; t106 z10; t17 z11; #line 170 "UFileRdWr.m3" { HANDLER hproc_0; PUSH_RAISES (hproc_0, raises_34, proc_0); { auto t2 _status; auto t2 _buffered; { CHECKSTACKOVERFLOW; NILCHECKA (z2 = _wr); z1 = (char*)z2 + TC38->datasize; z3 = (_n != (((t37_fields*)(z1+(0)))->_cur)); z0 = 1; if (! z3) { #line 174 NILCHECKA (z2 = _wr); z1 = (char*)z2 + TC38->datasize; z4 = ((((t37_fields*)(z1+(0)))->_cur) != (((t37_fields*)(z1+(0)))->_hi)); #line 174 z0 = z4; }; if (z0) { z5 = 1 ; RAISE (& _Wr__Error, & z5, 1); }; NILCHECKA (z1 = _wr); z2 = (char*)z1 + TC38->datasize; z6 = (((t37_fields*)(z2+(0)))->_cur) - (((t37_fields*)(z2+(0)))->_lo); #line 176 _buffered = z6; NILCHECKA (z2 = _wr); z1 = (char*)z2 + TC38->datasize; NILCHECKB (z7 = (((t37_fields*)(z1+(0)))->_buff)); { register t92* array = & (*((t20*) z7)); #line 177 z8 = 0 ; if (z8 >= (array->size[0])) RANGEFAULT; z6 = (int)(array->elts + (z8 * 1)); }; z9 = (char*)(& (*(t19*)z6)); #line 177 z6 = write ((((t10_fields*)(z1+(0+t37_size)))->_targetFD), z9, _buffered); _status = z6; z3 = (_status != _buffered); if (z3) { z10 = 0; RAISE (& _Wr__Failure, & z10, 4); }; NILCHECKA (z1 = _wr); z2 = (char*)z1 + TC38->datasize; (((t37_fields*)(z2+(0)))->_lo) = (((t37_fields*)(z2+(0)))->_cur); NILCHECKA (z1 = _wr); z2 = (char*)z1 + TC38->datasize; NILCHECKB (z7 = (((t37_fields*)(z2+(0)))->_buff)); z11 = (*((t20*) z7)).size[0]; #line 181 z6 = (((t37_fields*)(z2+(0)))->_cur) + z11; z8 = z6; if (z8 < 0) RANGEFAULT; NILCHECKA (z1 = _wr); z2 = (char*)z1 + TC38->datasize; #line 181 (((t37_fields*)(z2+(0)))->_hi) = z8; } } proc_0: CUT_TO_NEXT_HANDLER (hproc_0); if (hproc_0.exception != 0) RAISE_FOR_SURE (hproc_0.exception); #line 181 }; }; #line 184 "UFileRdWr.m3" PRIVATE t104 _UFileRdWr__TerminalWriterFlush (_wr) t23 _wr; { t23 z1; t23 z0; t12 z3; t2 z4; t23 z2; t18 z5; t2 z6; t2 z7; t40 z8; t106 z9; t17 z10; #line 184 "UFileRdWr.m3" { HANDLER hproc_0; PUSH_RAISES (hproc_0, raises_35, proc_0); { auto t2 _status; auto t2 _buffered; { CHECKSTACKOVERFLOW; NILCHECKA (z1 = _wr); z0 = (char*)z1 + TC38->datasize; z3 = ((((t37_fields*)(z0+(0)))->_lo) < (((t37_fields*)(z0+(0)))->_cur)); #line 187 if (z3) { NILCHECKA (z1 = _wr); z0 = (char*)z1 + TC38->datasize; z4 = (((t37_fields*)(z0+(0)))->_cur) - (((t37_fields*)(z0+(0)))->_lo); #line 188 _buffered = z4; NILCHECKA (z2 = _wr); z1 = (char*)z2 + TC38->datasize; NILCHECKB (z5 = (((t37_fields*)(z1+(0)))->_buff)); { register t92* array = & (*((t20*) z5)); #line 189 z7 = 0 ; if (z7 >= (array->size[0])) RANGEFAULT; z6 = (int)(array->elts + (z7 * 1)); }; z8 = (char*)(& (*(t19*)z6)); #line 189 z4 = write ((((t10_fields*)(z1+(0+t37_size)))->_targetFD), z8, _buffered); _status = z4; z3 = (_status != _buffered); if (z3) { z9 = 0; RAISE (& _Wr__Failure, & z9, 4); }; NILCHECKA (z1 = _wr); z0 = (char*)z1 + TC38->datasize; (((t37_fields*)(z0+(0)))->_lo) = (((t37_fields*)(z0+(0)))->_cur); NILCHECKA (z1 = _wr); z0 = (char*)z1 + TC38->datasize; NILCHECKB (z5 = (((t37_fields*)(z0+(0)))->_buff)); z10 = (*((t20*) z5)).size[0]; #line 193 z4 = (((t37_fields*)(z0+(0)))->_cur) + z10; z6 = z4; if (z6 < 0) RANGEFAULT; NILCHECKA (z1 = _wr); z0 = (char*)z1 + TC38->datasize; #line 193 (((t37_fields*)(z0+(0)))->_hi) = z6; goto if_13_end; }; if_13_end: /**/; } } proc_0: CUT_TO_NEXT_HANDLER (hproc_0); #line 193 if (hproc_0.exception != 0) RAISE_FOR_SURE (hproc_0.exception); }; }; #line 208 "UFileRdWr.m3" PRIVATE t8 _UFileRdWr__NewTerminalReader (_fd) t2 _fd; { t22 z0; t18 z1; #line 208 "UFileRdWr.m3" { auto t8 __result; { ZERO1 (& __result); CHECKSTACKOVERFLOW; { register char** ptr = (char**) TNEWOBJ (TC22); ((t34_fields*)((char*)ptr + (TC35->datasize + 0)))->_st = 0 ; ((t34_fields*)((char*)ptr + (TC35->datasize + 0)))->_lo = 0 ; #line 210 ((t34_fields*)((char*)ptr + (TC35->datasize + 0)))->_cur = 0 ; ((t34_fields*)((char*)ptr + (TC35->datasize + 0)))->_hi = 4096 ; #line 210 { register t92* ptr; int sz[1]; sz[0] = 4096 ; ptr = (t92*) TNEWA(TC18, 8 + sz[0] * 1); ptr->elts = (char*)(& ptr->size[1]); #line 210 ptr->size[0] = sz[0]; z1 = (t18) ptr; }; ((t34_fields*)((char*)ptr + (TC35->datasize + 0)))->_buff = z1; ((t34_fields*)((char*)ptr + (TC35->datasize + 0)))->_closed = 0 ; #line 210 ((t34_fields*)((char*)ptr + (TC35->datasize + 0)))->_seekable = 0 ; ((t34_fields*)((char*)ptr + (TC35->datasize + 0)))->_intermittent = 1 ; #line 210 ((t8_fields*)((char*)ptr + (TC35->datasize + 0+t34_size)))->_targetFD = _fd; z0 = (t22) ptr; }; __result = z0; return __result; #line 210 } } }; #line 228 "UFileRdWr.m3" PRIVATE t11 _UFileRdWr__TerminalReaderSeek (_rd, _dontBlock) t22 _rd; t12 _dontBlock; { t22 z2; t22 z1; t18 z4; t2 z6; t2 z5; t2 z7; t40 z8; t17 z3; t18 z9; t12 z10; t12 z0; t12 z11; t106 z12; #line 228 "UFileRdWr.m3" { HANDLER hproc_0; PUSH_RAISES (hproc_0, raises_36, proc_0); { auto t2 _status; auto t11 __result; { ZERO1B (& __result); #line 228 CHECKSTACKOVERFLOW; loop_0:; NILCHECKA (z2 = _rd); z1 = (char*)z2 + TC35->datasize; NILCHECKB (z4 = (((t34_fields*)(z1+(0)))->_buff)); z6 = 0 ; if (z6 < 0) RANGEFAULT; #line 236 { register t92* array = & (*((t20*) z4)); z7 = z6; if (z7 >= (array->size[0])) RANGEFAULT; z5 = (int)(array->elts + (z7 * 1)); #line 236 }; z8 = (char*)(& (*(t19*)z5)); NILCHECKB (z9 = (((t34_fields*)(z1+(0)))->_buff)); z3 = (*((t20*) z9)).size[0]; z5 = read ((((t8_fields*)(z1+(0+t34_size)))->_targetFD), z8, z3); #line 236 _status = z5; z5 = - 1 ; z10 = (_status == z5); z0 = 0; if (z10) { z10 = (errno != 11 ); z0 = z10; }; z10 = 0; if (z0) { z11 = (errno != 11 ); #line 238 z10 = z11; }; if (z10) { z12 = 0; RAISE (& _Rd__Failure, & z12, 4); }; z10 = (_status == 0 ); if (z10) { __result = 2 ; CUT_TO_NEXT_HANDLER (hproc_0); return __result; }; z10 = (_status > 0 ); if (z10) { NILCHECKA (z1 = _rd); z2 = (char*)z1 + TC35->datasize; (((t34_fields*)(z2+(0)))->_lo) = (((t34_fields*)(z2+(0)))->_cur); NILCHECKA (z1 = _rd); z2 = (char*)z1 + TC35->datasize; z5 = (((t34_fields*)(z2+(0)))->_cur) + _status; z6 = z5; #line 246 if (z6 < 0) RANGEFAULT; NILCHECKA (z1 = _rd); z2 = (char*)z1 + TC35->datasize; (((t34_fields*)(z2+(0)))->_hi) = z6; __result = 0 ; CUT_TO_NEXT_HANDLER (hproc_0); return __result; }; if (_dontBlock) { __result = 1 ; CUT_TO_NEXT_HANDLER (hproc_0); return __result; }; _Time__Pause ( 10000 ); goto loop_0; } } proc_0: CUT_TO_NEXT_HANDLER (hproc_0); if (hproc_0.exception != 0) RAISE_FOR_SURE (hproc_0.exception); #line 251 }; }; #line 267 "UFileRdWr.m3" PRIVATE t10 _UFileRdWr__NewNullWriter (_fd) t2 _fd; { t16 z0; t18 z1; #line 267 "UFileRdWr.m3" { auto t10 __result; { ZERO1 (& __result); CHECKSTACKOVERFLOW; { register char** ptr = (char**) TNEWOBJ (TC16); ((t37_fields*)((char*)ptr + (TC38->datasize + 0)))->_st = 0 ; ((t37_fields*)((char*)ptr + (TC38->datasize + 0)))->_lo = 0 ; #line 269 ((t37_fields*)((char*)ptr + (TC38->datasize + 0)))->_cur = 0 ; ((t37_fields*)((char*)ptr + (TC38->datasize + 0)))->_hi = 1024 ; #line 269 { register t92* ptr; int sz[1]; sz[0] = 1024 ; ptr = (t92*) TNEWA(TC18, 8 + sz[0] * 1); ptr->elts = (char*)(& ptr->size[1]); #line 269 ptr->size[0] = sz[0]; z1 = (t18) ptr; }; ((t37_fields*)((char*)ptr + (TC38->datasize + 0)))->_buff = z1; ((t37_fields*)((char*)ptr + (TC38->datasize + 0)))->_closed = 0 ; #line 269 ((t37_fields*)((char*)ptr + (TC38->datasize + 0)))->_seekable = 0 ; ((t37_fields*)((char*)ptr + (TC38->datasize + 0)))->_buffered = 1 ; #line 269 ((t10_fields*)((char*)ptr + (TC38->datasize + 0+t37_size)))->_targetFD = _fd; z0 = (t16) ptr; }; __result = z0; return __result; #line 269 } } }; #line 281 "UFileRdWr.m3" PRIVATE t104 _UFileRdWr__NullWriterSeek (_wr, _n) t16 _wr; t17 _n; { t16 z2; t16 z1; t12 z3; t12 z0; t12 z4; t90 z5; t2 z6; t2 z7; #line 281 "UFileRdWr.m3" { HANDLER hproc_0; PUSH_RAISES (hproc_0, raises_37, proc_0); { { CHECKSTACKOVERFLOW; NILCHECKA (z2 = _wr); z1 = (char*)z2 + TC38->datasize; z3 = (_n != (((t37_fields*)(z1+(0)))->_cur)); z0 = 1; if (! z3) { #line 283 NILCHECKA (z2 = _wr); z1 = (char*)z2 + TC38->datasize; z4 = ((((t37_fields*)(z1+(0)))->_cur) != (((t37_fields*)(z1+(0)))->_hi)); #line 283 z0 = z4; }; if (z0) { z5 = 1 ; RAISE (& _Wr__Error, & z5, 1); }; NILCHECKA (z1 = _wr); z2 = (char*)z1 + TC38->datasize; (((t37_fields*)(z2+(0)))->_lo) = (((t37_fields*)(z2+(0)))->_cur); NILCHECKA (z1 = _wr); z2 = (char*)z1 + TC38->datasize; z6 = (((t37_fields*)(z2+(0)))->_cur) + 1 ; z7 = z6; if (z7 < 0) RANGEFAULT; #line 286 NILCHECKA (z1 = _wr); z2 = (char*)z1 + TC38->datasize; (((t37_fields*)(z2+(0)))->_hi) = z7; } } proc_0: CUT_TO_NEXT_HANDLER (hproc_0); #line 286 if (hproc_0.exception != 0) RAISE_FOR_SURE (hproc_0.exception); }; }; #line 289 "UFileRdWr.m3" PRIVATE t104 _UFileRdWr__NullWriterFlush (_wr) t16 _wr; { #line 289 "UFileRdWr.m3" { HANDLER hproc_0; PUSH_RAISES (hproc_0, raises_1, proc_0); { { CHECKSTACKOVERFLOW; } } proc_0: CUT_TO_NEXT_HANDLER (hproc_0); #line 289 if (hproc_0.exception != 0) RAISE_FOR_SURE (hproc_0.exception); }; }; #line 302 "UFileRdWr.m3" PRIVATE t8 _UFileRdWr__NewNullReader (_fd) t2 _fd; { t13 z0; #line 302 "UFileRdWr.m3" { auto t8 __result; { ZERO1 (& __result); CHECKSTACKOVERFLOW; { register char** ptr = (char**) TNEWOBJ (TC13); ((t34_fields*)((char*)ptr + (TC35->datasize + 0)))->_st = 0 ; ((t34_fields*)((char*)ptr + (TC35->datasize + 0)))->_lo = 0 ; #line 304 ((t34_fields*)((char*)ptr + (TC35->datasize + 0)))->_cur = 0 ; ((t34_fields*)((char*)ptr + (TC35->datasize + 0)))->_hi = 0 ; #line 304 ((t34_fields*)((char*)ptr + (TC35->datasize + 0)))->_buff = 0; ((t34_fields*)((char*)ptr + (TC35->datasize + 0)))->_closed = 0 ; #line 304 ((t34_fields*)((char*)ptr + (TC35->datasize + 0)))->_seekable = 0 ; ((t34_fields*)((char*)ptr + (TC35->datasize + 0)))->_intermittent = 0 ; #line 304 ((t8_fields*)((char*)ptr + (TC35->datasize + 0+t34_size)))->_targetFD = _fd; z0 = (t13) ptr; }; __result = z0; return __result; #line 304 } } }; #line 316 "UFileRdWr.m3" PRIVATE t11 _UFileRdWr__NullReaderSeek (_rd, _dontBlock) t13 _rd; t12 _dontBlock; { #line 316 "UFileRdWr.m3" { HANDLER hproc_0; PUSH_RAISES (hproc_0, raises_38, proc_0); { auto t11 __result; { ZERO1B (& __result); CHECKSTACKOVERFLOW; __result = 2 ; CUT_TO_NEXT_HANDLER (hproc_0); return __result; } } proc_0: CUT_TO_NEXT_HANDLER (hproc_0); if (hproc_0.exception != 0) RAISE_FOR_SURE (hproc_0.exception); #line 321 }; }; #line 326 "UFileRdWr.m3" EXPORT t6 _UFileRdWr__CreateFileWriter (_fd, _buffered) t2 _fd; t12 _buffered; { t2 z3; t2 z1; t12 z0; t106 z2; t12 z4; t10 z5; #line 326 "UFileRdWr.m3" { auto t10 _wr; auto t9 _statbuf; auto t6 __result; { ZERO1 (& _wr); ZERO (116, & _statbuf); #line 326 ZERO1 (& __result); CHECKSTACKOVERFLOW; z3 = fstat (_fd, &_statbuf); z1 = - 1 ; z0 = (z3 == z1); if (z0) { z2 = 0; RAISE (& _Wr__Failure, & z2, 4); }; z3 = IDIV ((_statbuf._st_mode), 4096 ); switch (z3) { case 2: z4 = ((_statbuf._st_rdev) == 770 ); if (z4) { z5 = _UFileRdWr__NewNullWriter (_fd); _wr = z5; goto if_18_end; }; z5 = _UFileRdWr__NewTerminalWriter (_fd, _buffered); _wr = z5; if_18_end: /**/; break; case 0: case 1: z5 = _UFileRdWr__NewDiskWriter (_fd, 0 ); _wr = z5; break; case 8: z5 = _UFileRdWr__NewDiskWriter (_fd, (_statbuf._st_size)); _wr = z5; break; default: /**/; z2 = 0; RAISE (& _Wr__Failure, & z2, 4); }; __result = _wr; return __result; } } }; #line 348 "UFileRdWr.m3" PRIVATE t104 _UFileRdWr__FileWriterClose (_wr) t10 _wr; { t10 z2; t10 z1; t10 z0; t12 z3; t2 z4; t2 z5; t106 z6; #line 348 "UFileRdWr.m3" { HANDLER hproc_0; PUSH_RAISES (hproc_0, raises_30, proc_0); { { CHECKSTACKOVERFLOW; NILCHECKA (z2 = _wr); z1 = (char*)z2 + TC38->datasize; (((t37_fields*)(z1+(0)))->_buff) = (t18) 0; NILCHECKA (z2 = _wr); z1 = (char*)z2 + TC38->datasize; (((t37_fields*)(z1+(0)))->_closed) = 1 ; NILCHECKA (z1 = _wr); z0 = (char*)z1 + TC38->datasize; z3 = ((((t10_fields*)(z0+(0+t37_size)))->_targetFD) >= 3 ); #line 352 if (z3) { NILCHECKA (z2 = _wr); z1 = (char*)z2 + TC38->datasize; z4 = close ((((t10_fields*)(z1+(0+t37_size)))->_targetFD)); #line 353 z5 = - 1 ; z3 = (z4 == z5); if (z3) { z6 = 0; RAISE (& _Wr__Failure, & z6, 4); }; goto if_19_end; }; if_19_end: /**/; #line 353 } } proc_0: CUT_TO_NEXT_HANDLER (hproc_0); if (hproc_0.exception != 0) RAISE_FOR_SURE (hproc_0.exception); }; }; #line 358 "UFileRdWr.m3" EXPORT t3 _UFileRdWr__CreateFileReader (_fd) t2 _fd; { t2 z3; t2 z1; t12 z0; t106 z2; t12 z4; t8 z5; #line 358 "UFileRdWr.m3" { auto t8 _rd; auto t9 _statbuf; auto t3 __result; { ZERO1 (& _rd); ZERO (116, & _statbuf); #line 358 ZERO1 (& __result); CHECKSTACKOVERFLOW; z3 = fstat (_fd, &_statbuf); z1 = - 1 ; z0 = (z3 == z1); if (z0) { z2 = 0; RAISE (& _Rd__Failure, & z2, 4); }; z3 = IDIV ((_statbuf._st_mode), 4096 ); switch (z3) { case 2: z4 = ((_statbuf._st_rdev) == 770 ); if (z4) { z5 = _UFileRdWr__NewNullReader (_fd); _rd = z5; goto if_22_end; }; z5 = _UFileRdWr__NewTerminalReader (_fd); _rd = z5; if_22_end: /**/; break; case 0: case 1: z5 = _UFileRdWr__NewTerminalReader (_fd); _rd = z5; break; case 8: z5 = _UFileRdWr__NewDiskReader (_fd, (_statbuf._st_size)); _rd = z5; break; default: /**/; z2 = 0; RAISE (& _Rd__Failure, & z2, 4); }; __result = _rd; return __result; } } }; #line 380 "UFileRdWr.m3" PRIVATE t104 _UFileRdWr__FileReaderClose (_rd) t8 _rd; { t8 z2; t8 z1; t8 z0; t12 z3; t12 z4; t2 z5; t2 z6; t106 z7; #line 380 "UFileRdWr.m3" { HANDLER hproc_0; PUSH_RAISES (hproc_0, raises_33, proc_0); { { CHECKSTACKOVERFLOW; NILCHECKA (z2 = _rd); z1 = (char*)z2 + TC35->datasize; (((t34_fields*)(z1+(0)))->_buff) = (t18) 0; NILCHECKA (z2 = _rd); z1 = (char*)z2 + TC35->datasize; (((t34_fields*)(z1+(0)))->_closed) = 1 ; NILCHECKA (z1 = _rd); z0 = (char*)z1 + TC35->datasize; z3 = ((((t8_fields*)(z0+(0+t34_size)))->_targetFD) >= 3 ); #line 384 z4 = 0; if (z3) { NILCHECKA (z2 = _rd); z1 = (char*)z2 + TC35->datasize; z5 = close ((((t8_fields*)(z1+(0+t34_size)))->_targetFD)); #line 384 z6 = - 1 ; z3 = (z5 == z6); z4 = z3; }; if (z4) { z7 = 0; RAISE (& _Wr__Failure, & z7, 4); }; } } proc_0: CUT_TO_NEXT_HANDLER (hproc_0); if (hproc_0.exception != 0) RAISE_FOR_SURE (hproc_0.exception); #line 385 }; }; #line 390 "UFileRdWr.m3" PRIVATE t6 _UFileRdWr__OpenWriteOrAppend (_nm, _flags) t4 _nm; t2 _flags; { t40 z3; t2 z4; t12 z2; t106 z5; t6 z6; #line 390 "UFileRdWr.m3" { auto t2 _fd; auto t6 __result; { ZERO1 (& __result); CHECKSTACKOVERFLOW; z3 = _M3toC__TtoS (_nm); z4 = open (z3, _flags, 420 ); _fd = z4; z2 = (_fd < 0 ); if (z2) { z5 = 0; RAISE (& _Wr__Failure, & z5, 4); }; z6 = _UFileRdWr__CreateFileWriter (_fd, 0 ); __result = z6; return __result; } } }; #line 399 "UFileRdWr.m3" EXPORT t6 _FileStream__OpenWrite (_nm) t4 _nm; { t2 z4; t2 z3; t6 z2; #line 399 "UFileRdWr.m3" { auto t6 __result; { ZERO1 (& __result); CHECKSTACKOVERFLOW; z4 = 1 + 256 ; z3 = z4 + 512 ; z2 = _UFileRdWr__OpenWriteOrAppend (_nm, z3); __result = z2; return __result; } } #line 401 }; #line 405 "UFileRdWr.m3" EXPORT t6 _FileStream__OpenAppend (_nm) t4 _nm; { t2 z4; t2 z3; t6 z2; #line 405 "UFileRdWr.m3" { auto t6 __result; { ZERO1 (& __result); CHECKSTACKOVERFLOW; z4 = 1 + 256 ; z3 = z4 + 8 ; z2 = _UFileRdWr__OpenWriteOrAppend (_nm, z3); __result = z2; return __result; } } }; #line 411 "UFileRdWr.m3" EXPORT t3 _FileStream__OpenRead (_nm) t4 _nm; { t40 z3; t2 z4; t12 z2; t106 z5; t3 z6; #line 411 "UFileRdWr.m3" { auto t2 _fd; auto t3 __result; { ZERO1 (& __result); CHECKSTACKOVERFLOW; z3 = _M3toC__TtoS (_nm); z4 = open (z3, 0 , 420 ); _fd = z4; z2 = (_fd < 0 ); if (z2) { z5 = 0; RAISE (& _Rd__Failure, & z5, 4); }; z6 = _UFileRdWr__CreateFileReader (_fd); __result = z6; return __result; } } }; #line 423 "UFileRdWr.m3" EXPORT t104 _Stdio__Close () { #line 423 "UFileRdWr.m3" { { CHECKSTACKOVERFLOW; _Rd__Close (_Stdio__stdin); _Wr__Close (_Stdio__stdout); _Wr__Close (_Stdio__stderr); } } }; PRIVATE int init_done = -1; #line 435 "UFileRdWr.m3" PRIVATE void UFileRdWr__initProc (g) int g; { t3 z2; t6 z3; #line 435 "UFileRdWr.m3" if (init_done >= g) return; init_done = g; INITIALIZE (& Stdio__init); INITIALIZE (& FileStream__init); INITIALIZE (& UFileRdWr__init); #line 435 INITIALIZE (& Word__init); INITIALIZE (& Time__init); INITIALIZE (& Text__init); INITIALIZE (& RdClass__init); INITIALIZE (& Rd__init); #line 435 INITIALIZE (& WrClass__init); INITIALIZE (& Wr__init); INITIALIZE (& M3toC__init); INITIALIZE (& CoreOS__init); #line 431 z2 = _UFileRdWr__CreateFileReader ( 0 ); _Stdio__stdin = z2; z3 = _UFileRdWr__CreateFileWriter ( 1 , 0 ); _Stdio__stdout = z3; z3 = _UFileRdWr__CreateFileWriter ( 2 , 0 ); _Stdio__stderr = z3; z3 = _UFileRdWr__CreateFileWriter ( 1 , 1 ); _Stdio__bufferedStdout = z3; z3 = _UFileRdWr__CreateFileWriter ( 2 , 1 ); _Stdio__bufferedStderr = z3; return; }; #line 435 "UFileRdWr.m3" PRIVATE void t8_InitProc (obj) char* obj; { register t8_fields* p; #line 435 "UFileRdWr.m3" CHECKSTACKOVERFLOW; p = (t8_fields*) (obj + TC3->datasize); }; #line 435 "UFileRdWr.m3" PRIVATE void t8_SetupProc () { register int* p; #line 435 "UFileRdWr.m3" t8_TC.datasize += TC3->datasize; t8_TC.methodsize += TC3->methodsize; p = (int*) UALLOC (t8_TC.methodsize); COPY (TC3->defaultMethods, p, (TC3->methodsize)); #line 435 p[0] = (int)(& t8_TC); p[1] = 0; t8_TC.defaultMethods = (char*) p; }; #line 435 "UFileRdWr.m3" PRIVATE void t8_PrintProc (obj) char *obj; { t8_fields* o; #line 435 "UFileRdWr.m3" CHECKSTACKOVERFLOW; if (TC3->printProc != 0) {TC3->printProc (obj); } fprintf (stderr, "{%s} ", TC8->brand); o = (t8_fields*) (obj + TC3->datasize); #line 435 fprintf (stderr, "targetFD = %d", o->_targetFD); }; #line 435 "UFileRdWr.m3" PRIVATE void t10_InitProc (obj) char* obj; { register t10_fields* p; #line 435 "UFileRdWr.m3" CHECKSTACKOVERFLOW; p = (t10_fields*) (obj + TC6->datasize); }; #line 435 "UFileRdWr.m3" PRIVATE void t10_SetupProc () { register int* p; #line 435 "UFileRdWr.m3" t10_TC.datasize += TC6->datasize; t10_TC.methodsize += TC6->methodsize; p = (int*) UALLOC (t10_TC.methodsize); COPY (TC6->defaultMethods, p, (TC6->methodsize)); #line 435 p[0] = (int)(& t10_TC); p[1] = 0; t10_TC.defaultMethods = (char*) p; }; #line 435 "UFileRdWr.m3" PRIVATE void t10_PrintProc (obj) char *obj; { t10_fields* o; #line 435 "UFileRdWr.m3" CHECKSTACKOVERFLOW; if (TC6->printProc != 0) {TC6->printProc (obj); } fprintf (stderr, "{%s} ", TC10->brand); o = (t10_fields*) (obj + TC6->datasize); #line 435 fprintf (stderr, "targetFD = %d", o->_targetFD); }; #line 435 "UFileRdWr.m3" PRIVATE void t13_InitProc (obj) char* obj; { register t13_fields* p; #line 435 "UFileRdWr.m3" CHECKSTACKOVERFLOW; p = (t13_fields*) (obj + TC8->datasize); }; #line 435 "UFileRdWr.m3" PRIVATE void t13_SetupProc () { register int* p; #line 435 "UFileRdWr.m3" t13_TC.datasize += TC8->datasize; t13_TC.methodsize += TC8->methodsize; p = (int*) UALLOC (t13_TC.methodsize); COPY (TC8->defaultMethods, p, (TC8->methodsize)); #line 435 p[0] = (int)(& t13_TC); p[1] = 0; ((t34_methods*) (((char*)p) + TC35->methodsize))->_seek = _UFileRdWr__NullReaderSeek; ((t34_methods*) (((char*)p) + TC35->methodsize))->_close = _UFileRdWr__FileReaderClose; #line 435 t13_TC.defaultMethods = (char*) p; }; #line 435 "UFileRdWr.m3" PRIVATE void t13_PrintProc (obj) char *obj; { t13_fields* o; #line 435 "UFileRdWr.m3" CHECKSTACKOVERFLOW; if (TC8->printProc != 0) {TC8->printProc (obj); } fprintf (stderr, "{%s} ", TC13->brand); o = (t13_fields*) (obj + TC8->datasize); #line 435 }; #line 435 "UFileRdWr.m3" PRIVATE void t16_InitProc (obj) char* obj; { register t16_fields* p; #line 435 "UFileRdWr.m3" CHECKSTACKOVERFLOW; p = (t16_fields*) (obj + TC10->datasize); }; #line 435 "UFileRdWr.m3" PRIVATE void t16_SetupProc () { register int* p; #line 435 "UFileRdWr.m3" t16_TC.datasize += TC10->datasize; t16_TC.methodsize += TC10->methodsize; p = (int*) UALLOC (t16_TC.methodsize); COPY (TC10->defaultMethods, p, (TC10->methodsize)); #line 435 p[0] = (int)(& t16_TC); p[1] = 0; ((t37_methods*) (((char*)p) + TC38->methodsize))->_seek = _UFileRdWr__NullWriterSeek; ((t37_methods*) (((char*)p) + TC38->methodsize))->_flush = _UFileRdWr__NullWriterFlush; #line 435 ((t37_methods*) (((char*)p) + TC38->methodsize))->_close = _UFileRdWr__FileWriterClose; t16_TC.defaultMethods = (char*) p; #line 435 }; #line 435 "UFileRdWr.m3" PRIVATE void t16_PrintProc (obj) char *obj; { t16_fields* o; #line 435 "UFileRdWr.m3" CHECKSTACKOVERFLOW; if (TC10->printProc != 0) {TC10->printProc (obj); } fprintf (stderr, "{%s} ", TC16->brand); o = (t16_fields*) (obj + TC10->datasize); #line 435 }; #line 435 "UFileRdWr.m3" PRIVATE void t18_PrintProc (ref) t20* ref; { CHECKSTACKOVERFLOW; fprintf (stderr, "%s {", TC18->brand); fprintf (stderr, "^ = array"); #line 435 fprintf (stderr, "}\n"); }; #line 435 "UFileRdWr.m3" PRIVATE void t22_InitProc (obj) char* obj; { register t22_fields* p; #line 435 "UFileRdWr.m3" CHECKSTACKOVERFLOW; p = (t22_fields*) (obj + TC8->datasize); }; #line 435 "UFileRdWr.m3" PRIVATE void t22_SetupProc () { register int* p; #line 435 "UFileRdWr.m3" t22_TC.datasize += TC8->datasize; t22_TC.methodsize += TC8->methodsize; p = (int*) UALLOC (t22_TC.methodsize); COPY (TC8->defaultMethods, p, (TC8->methodsize)); #line 435 p[0] = (int)(& t22_TC); p[1] = 0; ((t34_methods*) (((char*)p) + TC35->methodsize))->_seek = _UFileRdWr__TerminalReaderSeek; #line 435 ((t34_methods*) (((char*)p) + TC35->methodsize))->_close = _UFileRdWr__FileReaderClose; t22_TC.defaultMethods = (char*) p; #line 435 }; #line 435 "UFileRdWr.m3" PRIVATE void t22_PrintProc (obj) char *obj; { t22_fields* o; #line 435 "UFileRdWr.m3" CHECKSTACKOVERFLOW; if (TC8->printProc != 0) {TC8->printProc (obj); } fprintf (stderr, "{%s} ", TC22->brand); o = (t22_fields*) (obj + TC8->datasize); #line 435 }; #line 435 "UFileRdWr.m3" PRIVATE void t23_InitProc (obj) char* obj; { register t23_fields* p; #line 435 "UFileRdWr.m3" CHECKSTACKOVERFLOW; p = (t23_fields*) (obj + TC10->datasize); }; #line 435 "UFileRdWr.m3" PRIVATE void t23_SetupProc () { register int* p; #line 435 "UFileRdWr.m3" t23_TC.datasize += TC10->datasize; t23_TC.methodsize += TC10->methodsize; p = (int*) UALLOC (t23_TC.methodsize); COPY (TC10->defaultMethods, p, (TC10->methodsize)); #line 435 p[0] = (int)(& t23_TC); p[1] = 0; ((t37_methods*) (((char*)p) + TC38->methodsize))->_seek = _UFileRdWr__TerminalWriterSeek; #line 435 ((t37_methods*) (((char*)p) + TC38->methodsize))->_flush = _UFileRdWr__TerminalWriterFlush; ((t37_methods*) (((char*)p) + TC38->methodsize))->_close = _UFileRdWr__FileWriterClose; #line 435 t23_TC.defaultMethods = (char*) p; }; #line 435 "UFileRdWr.m3" PRIVATE void t23_PrintProc (obj) char *obj; { t23_fields* o; #line 435 "UFileRdWr.m3" CHECKSTACKOVERFLOW; if (TC10->printProc != 0) {TC10->printProc (obj); } fprintf (stderr, "{%s} ", TC23->brand); o = (t23_fields*) (obj + TC10->datasize); #line 435 }; #line 435 "UFileRdWr.m3" PRIVATE void t24_InitProc (obj) char* obj; { register t24_fields* p; #line 435 "UFileRdWr.m3" CHECKSTACKOVERFLOW; p = (t24_fields*) (obj + TC8->datasize); }; #line 435 "UFileRdWr.m3" PRIVATE void t24_SetupProc () { register int* p; #line 435 "UFileRdWr.m3" t24_TC.datasize += TC8->datasize; t24_TC.methodsize += TC8->methodsize; p = (int*) UALLOC (t24_TC.methodsize); COPY (TC8->defaultMethods, p, (TC8->methodsize)); #line 435 p[0] = (int)(& t24_TC); p[1] = 0; ((t34_methods*) (((char*)p) + TC35->methodsize))->_seek = _UFileRdWr__DiskReaderSeek; ((t34_methods*) (((char*)p) + TC35->methodsize))->_length = _UFileRdWr__DiskReaderLength; #line 435 ((t34_methods*) (((char*)p) + TC35->methodsize))->_close = _UFileRdWr__FileReaderClose; t24_TC.defaultMethods = (char*) p; #line 435 }; #line 435 "UFileRdWr.m3" PRIVATE void t24_PrintProc (obj) char *obj; { t24_fields* o; #line 435 "UFileRdWr.m3" CHECKSTACKOVERFLOW; if (TC8->printProc != 0) {TC8->printProc (obj); } fprintf (stderr, "{%s} ", TC24->brand); o = (t24_fields*) (obj + TC8->datasize); #line 435 fprintf (stderr, "targetSize = %d", o->_targetSize); fprintf (stderr, ", "); }; #line 435 "UFileRdWr.m3" PRIVATE void t26_InitProc (obj) char* obj; { register t26_fields* p; #line 435 "UFileRdWr.m3" CHECKSTACKOVERFLOW; p = (t26_fields*) (obj + TC10->datasize); }; #line 435 "UFileRdWr.m3" PRIVATE void t26_SetupProc () { register int* p; #line 435 "UFileRdWr.m3" t26_TC.datasize += TC10->datasize; t26_TC.methodsize += TC10->methodsize; p = (int*) UALLOC (t26_TC.methodsize); COPY (TC10->defaultMethods, p, (TC10->methodsize)); #line 435 p[0] = (int)(& t26_TC); p[1] = 0; ((t37_methods*) (((char*)p) + TC38->methodsize))->_seek = _UFileRdWr__DiskWriterSeek; ((t37_methods*) (((char*)p) + TC38->methodsize))->_flush = _UFileRdWr__DiskWriterFlush; #line 435 ((t37_methods*) (((char*)p) + TC38->methodsize))->_close = _UFileRdWr__FileWriterClose; t26_TC.defaultMethods = (char*) p; #line 435 }; #line 435 "UFileRdWr.m3" PRIVATE void t26_PrintProc (obj) char *obj; { t26_fields* o; #line 435 "UFileRdWr.m3" CHECKSTACKOVERFLOW; if (TC10->printProc != 0) {TC10->printProc (obj); } fprintf (stderr, "{%s} ", TC26->brand); o = (t26_fields*) (obj + TC10->datasize); #line 435 fprintf (stderr, "targetSize = %d", o->_targetSize); fprintf (stderr, ", "); }; #line 435 "UFileRdWr.m3" PRIVATE void t55_PrintProc (ref) t56* ref; { CHECKSTACKOVERFLOW; fprintf (stderr, "%s {", TC55->brand); fprintf (stderr, "^ = { "); #line 435 fprintf (stderr, "sc_onstack = %d", (*ref)._sc_onstack); fprintf (stderr, "sc_mask = %d", (*ref)._sc_mask); fprintf (stderr, "sc_sp = %d", (*ref)._sc_sp); #line 435 fprintf (stderr, "sc_pc = %d", (*ref)._sc_pc); fprintf (stderr, "sc_ps = %d", (*ref)._sc_ps); fprintf (stderr, "}"); fprintf (stderr, "}\n"); #line 435 }; PRIVATE void t8_MapProc (p, r, c) void (*p) (); char* r; ADDRESS c; { register t8_fields* o; CHECKSTACKOVERFLOW; t3_MapProc (p, r, c); #line 435 o = (t8_fields*) (r + TC3->datasize); }; PRIVATE void t10_MapProc (p, r, c) void (*p) (); char* r; ADDRESS c; { register t10_fields* o; #line 435 CHECKSTACKOVERFLOW; t6_MapProc (p, r, c); o = (t10_fields*) (r + TC6->datasize); }; PRIVATE void t13_MapProc (p, r, c) #line 435 void (*p) (); char* r; ADDRESS c; { register t13_fields* o; CHECKSTACKOVERFLOW; t8_MapProc (p, r, c); o = (t13_fields*) (r + TC8->datasize); #line 435 }; PRIVATE void t16_MapProc (p, r, c) void (*p) (); char* r; ADDRESS c; { register t16_fields* o; CHECKSTACKOVERFLOW; #line 435 t10_MapProc (p, r, c); o = (t16_fields*) (r + TC10->datasize); }; PRIVATE void t22_MapProc (p, r, c) void (*p) (); char* r; #line 435 ADDRESS c; { register t22_fields* o; CHECKSTACKOVERFLOW; t8_MapProc (p, r, c); o = (t22_fields*) (r + TC8->datasize); }; #line 435 PRIVATE void t23_MapProc (p, r, c) void (*p) (); char* r; ADDRESS c; { register t23_fields* o; CHECKSTACKOVERFLOW; t10_MapProc (p, r, c); #line 435 o = (t23_fields*) (r + TC10->datasize); }; PRIVATE void t24_MapProc (p, r, c) void (*p) (); char* r; ADDRESS c; { register t24_fields* o; #line 435 CHECKSTACKOVERFLOW; t8_MapProc (p, r, c); o = (t24_fields*) (r + TC8->datasize); }; PRIVATE void t26_MapProc (p, r, c) #line 435 void (*p) (); char* r; ADDRESS c; { register t26_fields* o; CHECKSTACKOVERFLOW; t10_MapProc (p, r, c); o = (t26_fields*) (r + TC10->datasize); #line 435 }; PRIVATE INITLINK me_0 ={(INITLINK*)NIL, 0, UFileRdWr__initProc}; PRIVATE INITLINK me_1 ={(INITLINK*)NIL, 0, UFileRdWr__initProc}; #line 435 PRIVATE INITLINK me_2 ={(INITLINK*)NIL, 0, UFileRdWr__initProc}; static char* VSimports[] = { &VS_Word__Or__6e0e049826e116f7, &VS_Thread__Alerted__fc88feb43485af46, &VS_Time__Pause__2b3acd4827f1853b, &VS_Time__NoPrivileges__6cb57575330ad093, &VS_Text__T__fc4b369f3ab271fd, &VS_Rd__Error__5ca07bfe2ba90cfc, &VS_Rd__Failure__e4a829e331222b6d, &VS_Thread__Alerted__fc88feb43485af46, &VS_RdClass__Private__5594af883f1b8361, &VS_RdClass__LengthDefault__76d0ecc72f6b16a1, &VS_RdClass__CloseDefault__f0ed7e3d26d0db8a, &VS_Thread__Alerted__fc88feb43485af46, &VS_Rd__T__2555b70b3f7780b1, &VS_Rd__EndOfFile__f4a9d2f63b7e105d, &VS_Rd__Failure__e4a829e331222b6d, &VS_Rd__Error__5ca07bfe2ba90cfc, &VS_Rd__Close__adf5eb9535b06daa, &VS_Wr__Error__c367253d3ed4fd15, &VS_Wr__Failure__5f82cfb43dabf527, &VS_Thread__Alerted__fc88feb43485af46, &VS_WrClass__Private__5594af883f1b8361, &VS_WrClass__LengthDefault__f78fa4a22d1f7f55, &VS_WrClass__CloseDefault__d8c30bfe280fb390, &VS_WrClass__FlushDefault__0f59e35131773891, &VS_Thread__Alerted__fc88feb43485af46, &VS_Wr__T__2555b70b3f7780b1, &VS_Wr__Failure__5f82cfb43dabf527, &VS_Wr__Error__c367253d3ed4fd15, &VS_Wr__Close__6e568877234e064a, &VS_M3toC__TtoS__f9cd287822393639, &VS_M3toC__Argv__01eb9fa23b3b0c10, &VS_Ctypes__char_star__90cf39683847e5e8, &VS_CoreOS__L_SET__aabc195c27ca31f1, &VS_CoreOS__F_GETFL__74e443c226cf8161, &VS_CoreOS__F_SETFL__1726678e31428a07, &VS_CoreOS__O_NDELAY__7c9a0113274ba131, &VS_CoreOS__EWOULDBLOCK__54edf8e529c7cc84, &VS_CoreOS__EAGAIN__a80ff75234d2e94a, &VS_CoreOS__SIFMT__b7c299d638f36369, &VS_CoreOS__SIFPIPE__f6413ea93a778dda, &VS_CoreOS__SIFPORT__9a3d1433351dbbc0, &VS_CoreOS__SIFCHR__7fea3ae33875bc45, &VS_CoreOS__SIFREG__0430f2a63b8ee112, &VS_CoreOS__Mrwrr__f4b8ab2a3b7dd061, &VS_CoreOS__O_RDONLY__0f5915432d0ac47b, &VS_CoreOS__O_WRONLY__7edda6902a4a3f30, &VS_CoreOS__O_CREAT__de24e30f3fa3e7d8, &VS_CoreOS__O_TRUNC__e6af583f2008f240, &VS_CoreOS__O_APPEND__adf3acf0387167fe, &VS_Stdio__stdin__e330ea7f240b0c63, &VS_Stdio__stdout__90ec4d7626198023, &VS_Stdio__stderr__adb65da037aadcf0, &VS_Stdio__bufferedStdout__99b37c3a361d29dc, &VS_Stdio__bufferedStderr__c33581643dee447e, NIL }; void UFileRdWr__MLink (phase) int phase; { switch (phase) { case 0: { me_0.link = Stdio__init; Stdio__init = & me_0; me_1.link = FileStream__init; FileStream__init = & me_1; me_2.link = UFileRdWr__init; UFileRdWr__init = & me_2; t8_TC = t8_TC_init; REGISTERTYPE (TC8); t10_TC = t10_TC_init; REGISTERTYPE (TC10); t13_TC = t13_TC_init; REGISTERTYPE (TC13); t16_TC = t16_TC_init; REGISTERTYPE (TC16); t18_TC = t18_TC_init; REGISTERTYPE (TC18); t22_TC = t22_TC_init; REGISTERTYPE (TC22); t23_TC = t23_TC_init; REGISTERTYPE (TC23); t24_TC = t24_TC_init; REGISTERTYPE (TC24); t26_TC = t26_TC_init; REGISTERTYPE (TC26); t55_TC = t55_TC_init; REGISTERTYPE (TC55); break; }; case 1: { t8_TC.parent = TC_Rd__T; t10_TC.parent = TC_Wr__T; break; }; case 2: { break; }; }; };