From c0548c4d18d96352abce33c2be9f0d70ffc2ad76 Mon Sep 17 00:00:00 2001 From: Greg Gauthier Date: Tue, 21 Jan 2025 20:22:54 +0000 Subject: [PATCH] remove the crent stuff --- src/crent370/asm/@@aclose.asm | 73 - src/crent370/asm/@@aclose.o | 0 src/crent370/asm/@@aline.asm | 67 - src/crent370/asm/@@aline.o | 0 src/crent370/asm/@@anote.asm | 64 - src/crent370/asm/@@anote.o | 0 src/crent370/asm/@@aopen.asm | 766 --- src/crent370/asm/@@aopen.o | 0 src/crent370/asm/@@apoint.asm | 81 - src/crent370/asm/@@apoint.o | 0 src/crent370/asm/@@aread.asm | 331 -- src/crent370/asm/@@aread.o | 0 src/crent370/asm/@@atrout.asm | 119 - src/crent370/asm/@@atrout.o | 0 src/crent370/asm/@@awrite.asm | 189 - src/crent370/asm/@@awrite.o | 0 src/crent370/asm/@@crt0.asm | 268 - src/crent370/asm/@@crt0.o | 0 src/crent370/asm/@@crt1.asm | 271 - src/crent370/asm/@@crt1.o | 0 src/crent370/asm/@@crtm.asm | 168 - src/crent370/asm/@@crtm.o | 0 src/crent370/asm/@@crtsvc.asm | 121 - src/crent370/asm/@@crtsvc.o | 0 src/crent370/asm/@@dynal.asm | 206 - src/crent370/asm/@@dynal.o | 0 src/crent370/asm/@@exita.asm | 58 - src/crent370/asm/@@exita.o | 0 src/crent370/asm/@@freem.asm | 25 - src/crent370/asm/@@freem.o | 0 src/crent370/asm/@@getclk.asm | 35 - src/crent370/asm/@@getclk.o | 0 src/crent370/asm/@@getm.asm | 43 - src/crent370/asm/@@getm.o | 0 src/crent370/asm/@@getpfx.asm | 64 - src/crent370/asm/@@getpfx.o | 0 src/crent370/asm/@@gettz.asm | 27 - src/crent370/asm/@@gettz.o | 0 src/crent370/asm/@@idcams.asm | 125 - src/crent370/asm/@@idcams.o | 0 src/crent370/asm/@@longj.asm | 17 - src/crent370/asm/@@longj.o | 0 src/crent370/asm/@@ppaget.asm | 78 - src/crent370/asm/@@ppaget.o | 0 src/crent370/asm/@@setj.asm | 17 - src/crent370/asm/@@setj.o | 0 src/crent370/asm/@@ssctbn.asm | 24 - src/crent370/asm/@@ssctbn.o | 0 src/crent370/asm/@@svc99.asm | 89 - src/crent370/asm/@@svc99.o | 0 src/crent370/asm/@@system.asm | 221 - src/crent370/asm/@@system.o | 0 src/crent370/asm/dummy.asm | 3 - src/crent370/asm/dummy.o | 0 src/crent370/asm/files.txt | 26 - src/crent370/asm/gettzoff.asm | 75 - src/crent370/asm/gettzoff.o | 0 src/crent370/asm/makefile | 62 - src/crent370/asm/ssireq01.asm | 404 -- src/crent370/asm/ssireq01.o | 0 src/crent370/clib/'mdr.httpd.h' | 20 - src/crent370/clib/@@64add.c | 20 - src/crent370/clib/@@64add.o | 0 src/crent370/clib/@@64add.s | 83 - src/crent370/clib/@@64ai32.c | 21 - src/crent370/clib/@@64ai32.o | 0 src/crent370/clib/@@64ai32.s | 81 - src/crent370/clib/@@64and.c | 20 - src/crent370/clib/@@64and.o | 0 src/crent370/clib/@@64and.s | 64 - src/crent370/clib/@@64au32.c | 15 - src/crent370/clib/@@64au32.o | 0 src/crent370/clib/@@64au32.s | 68 - src/crent370/clib/@@64au64.c | 15 - src/crent370/clib/@@64au64.o | 0 src/crent370/clib/@@64au64.s | 71 - src/crent370/clib/@@64ci32.c | 14 - src/crent370/clib/@@64ci32.o | 0 src/crent370/clib/@@64ci32.s | 60 - src/crent370/clib/@@64cmp.c | 52 - src/crent370/clib/@@64cmp.o | 0 src/crent370/clib/@@64cmp.s | 81 - src/crent370/clib/@@64copy.c | 20 - src/crent370/clib/@@64copy.o | 0 src/crent370/clib/@@64copy.s | 56 - src/crent370/clib/@@64cu32.c | 14 - src/crent370/clib/@@64cu32.o | 0 src/crent370/clib/@@64cu32.s | 60 - src/crent370/clib/@@64cu64.c | 14 - src/crent370/clib/@@64cu64.o | 0 src/crent370/clib/@@64cu64.s | 60 - src/crent370/clib/@@64dec.c | 30 - src/crent370/clib/@@64dec.o | 0 src/crent370/clib/@@64dec.s | 66 - src/crent370/clib/@@64di32.c | 20 - src/crent370/clib/@@64di32.o | 0 src/crent370/clib/@@64di32.s | 81 - src/crent370/clib/@@64div.c | 87 - src/crent370/clib/@@64div.o | 0 src/crent370/clib/@@64div.s | 170 - src/crent370/clib/@@64dmod.c | 34 - src/crent370/clib/@@64dmod.o | 0 src/crent370/clib/@@64dmod.s | 89 - src/crent370/clib/@@64dmou.c | 15 - src/crent370/clib/@@64dmou.o | 0 src/crent370/clib/@@64du32.c | 15 - src/crent370/clib/@@64du32.o | 0 src/crent370/clib/@@64du32.s | 68 - src/crent370/clib/@@64du64.c | 15 - src/crent370/clib/@@64du64.o | 0 src/crent370/clib/@@64du64.s | 71 - src/crent370/clib/@@64fi32.c | 18 - src/crent370/clib/@@64fi32.o | 0 src/crent370/clib/@@64fi32.s | 67 - src/crent370/clib/@@64fstr.c | 49 - src/crent370/clib/@@64fstr.o | 0 src/crent370/clib/@@64fstr.s | 157 - src/crent370/clib/@@64fu32.c | 12 - src/crent370/clib/@@64fu32.o | 0 src/crent370/clib/@@64fu32.s | 54 - src/crent370/clib/@@64fu64.c | 13 - src/crent370/clib/@@64fu64.o | 0 src/crent370/clib/@@64fu64.s | 56 - src/crent370/clib/@@64inc.c | 25 - src/crent370/clib/@@64inc.o | 0 src/crent370/clib/@@64inc.s | 69 - src/crent370/clib/@@64init.c | 21 - src/crent370/clib/@@64init.o | 0 src/crent370/clib/@@64init.s | 51 - src/crent370/clib/@@64is0.c | 24 - src/crent370/clib/@@64is0.o | 0 src/crent370/clib/@@64is0.s | 59 - src/crent370/clib/@@64isqr.c | 35 - src/crent370/clib/@@64isqr.o | 0 src/crent370/clib/@@64isqr.s | 157 - src/crent370/clib/@@64lsft.c | 42 - src/crent370/clib/@@64lsft.o | 0 src/crent370/clib/@@64lsft.s | 103 - src/crent370/clib/@@64lsh1.c | 22 - src/crent370/clib/@@64lsh1.o | 0 src/crent370/clib/@@64lsh1.s | 61 - src/crent370/clib/@@64lshw.c | 30 - src/crent370/clib/@@64lshw.o | 0 src/crent370/clib/@@64lshw.s | 102 - src/crent370/clib/@@64mi32.c | 21 - src/crent370/clib/@@64mi32.o | 0 src/crent370/clib/@@64mi32.s | 81 - src/crent370/clib/@@64mod.c | 15 - src/crent370/clib/@@64mod.o | 0 src/crent370/clib/@@64mod.s | 66 - src/crent370/clib/@@64mu32.c | 15 - src/crent370/clib/@@64mu32.o | 0 src/crent370/clib/@@64mu32.s | 68 - src/crent370/clib/@@64mu64.c | 15 - src/crent370/clib/@@64mu64.o | 0 src/crent370/clib/@@64mu64.s | 71 - src/crent370/clib/@@64mul.c | 82 - src/crent370/clib/@@64mul.o | 0 src/crent370/clib/@@64mul.s | 196 - src/crent370/clib/@@64ni32.c | 20 - src/crent370/clib/@@64ni32.o | 0 src/crent370/clib/@@64ni32.s | 67 - src/crent370/clib/@@64nu32.c | 20 - src/crent370/clib/@@64nu32.o | 0 src/crent370/clib/@@64nu32.s | 67 - src/crent370/clib/@@64nu64.c | 20 - src/crent370/clib/@@64nu64.o | 0 src/crent370/clib/@@64nu64.s | 70 - src/crent370/clib/@@64oi32.c | 20 - src/crent370/clib/@@64oi32.o | 0 src/crent370/clib/@@64oi32.s | 67 - src/crent370/clib/@@64or.c | 20 - src/crent370/clib/@@64or.o | 0 src/crent370/clib/@@64or.s | 64 - src/crent370/clib/@@64ou32.c | 20 - src/crent370/clib/@@64ou32.o | 0 src/crent370/clib/@@64ou32.s | 67 - src/crent370/clib/@@64ou64.c | 20 - src/crent370/clib/@@64ou64.o | 0 src/crent370/clib/@@64ou64.s | 70 - src/crent370/clib/@@64pow.c | 42 - src/crent370/clib/@@64pow.o | 0 src/crent370/clib/@@64pow.s | 126 - src/crent370/clib/@@64qi32.c | 15 - src/crent370/clib/@@64qi32.o | 0 src/crent370/clib/@@64qi32.s | 68 - src/crent370/clib/@@64qu32.c | 15 - src/crent370/clib/@@64qu32.o | 0 src/crent370/clib/@@64qu32.s | 68 - src/crent370/clib/@@64qu64.c | 15 - src/crent370/clib/@@64qu64.o | 0 src/crent370/clib/@@64qu64.s | 71 - src/crent370/clib/@@64rsft.c | 31 - src/crent370/clib/@@64rsft.o | 0 src/crent370/clib/@@64rsft.s | 104 - src/crent370/clib/@@64rsh1.c | 53 - src/crent370/clib/@@64rsh1.o | 0 src/crent370/clib/@@64rsh1.s | 75 - src/crent370/clib/@@64rshw.c | 26 - src/crent370/clib/@@64rshw.o | 0 src/crent370/clib/@@64rshw.s | 99 - src/crent370/clib/@@64si32.c | 21 - src/crent370/clib/@@64si32.o | 0 src/crent370/clib/@@64si32.s | 81 - src/crent370/clib/@@64su32.c | 15 - src/crent370/clib/@@64su32.o | 0 src/crent370/clib/@@64su32.s | 68 - src/crent370/clib/@@64su64.c | 15 - src/crent370/clib/@@64su64.o | 0 src/crent370/clib/@@64su64.s | 71 - src/crent370/clib/@@64sub.c | 25 - src/crent370/clib/@@64sub.o | 0 src/crent370/clib/@@64sub.s | 82 - src/crent370/clib/@@64subu.c | 15 - src/crent370/clib/@@64subu.o | 0 src/crent370/clib/@@64test.c | 233 - src/crent370/clib/@@64test.o | 0 src/crent370/clib/@@64test.s | 254 - src/crent370/clib/@@64ti32.c | 16 - src/crent370/clib/@@64ti32.o | 0 src/crent370/clib/@@64ti32.s | 55 - src/crent370/clib/@@64tstr.c | 38 - src/crent370/clib/@@64tstr.o | 0 src/crent370/clib/@@64tstr.s | 145 - src/crent370/clib/@@64tu32.c | 16 - src/crent370/clib/@@64tu32.o | 0 src/crent370/clib/@@64tu32.s | 54 - src/crent370/clib/@@64tu64.c | 16 - src/crent370/clib/@@64tu64.o | 0 src/crent370/clib/@@64tu64.s | 59 - src/crent370/clib/@@64vi32.c | 15 - src/crent370/clib/@@64vi32.o | 0 src/crent370/clib/@@64vi32.s | 72 - src/crent370/clib/@@64vu32.c | 15 - src/crent370/clib/@@64vu32.o | 0 src/crent370/clib/@@64vu32.s | 72 - src/crent370/clib/@@64vu64.c | 15 - src/crent370/clib/@@64vu64.o | 0 src/crent370/clib/@@64vu64.s | 75 - src/crent370/clib/@@64xi32.c | 20 - src/crent370/clib/@@64xi32.o | 0 src/crent370/clib/@@64xi32.s | 67 - src/crent370/clib/@@64xor.c | 20 - src/crent370/clib/@@64xor.o | 0 src/crent370/clib/@@64xor.s | 64 - src/crent370/clib/@@64xu32.c | 20 - src/crent370/clib/@@64xu32.o | 0 src/crent370/clib/@@64xu32.s | 67 - src/crent370/clib/@@64xu64.c | 20 - src/crent370/clib/@@64xu64.o | 0 src/crent370/clib/@@64xu64.s | 70 - src/crent370/clib/@@@try.c | 132 - src/crent370/clib/@@@try.o | 0 src/crent370/clib/@@@try.s | 201 - src/crent370/clib/@@abrpt.c | 384 -- src/crent370/clib/@@abrpt.o | 0 src/crent370/clib/@@abrpt.s | 1040 ---- src/crent370/clib/@@apfset.c | 64 - src/crent370/clib/@@apfset.o | 0 src/crent370/clib/@@apfset.s | 158 - src/crent370/clib/@@aradd.c | 69 - src/crent370/clib/@@aradd.o | 0 src/crent370/clib/@@aradd.s | 143 - src/crent370/clib/@@aradf.c | 33 - src/crent370/clib/@@aradf.o | 0 src/crent370/clib/@@aradf.s | 83 - src/crent370/clib/@@arcou.c | 25 - src/crent370/clib/@@arcou.o | 0 src/crent370/clib/@@arcou.s | 70 - src/crent370/clib/@@ardel.c | 34 - src/crent370/clib/@@ardel.o | 0 src/crent370/clib/@@ardel.s | 100 - src/crent370/clib/@@areach.c | 22 - src/crent370/clib/@@areach.o | 0 src/crent370/clib/@@areach.s | 79 - src/crent370/clib/@@arfre.c | 36 - src/crent370/clib/@@arfre.o | 0 src/crent370/clib/@@arfre.s | 79 - src/crent370/clib/@@arget.c | 27 - src/crent370/clib/@@arget.o | 0 src/crent370/clib/@@arget.s | 79 - src/crent370/clib/@@arnew.c | 26 - src/crent370/clib/@@arnew.o | 0 src/crent370/clib/@@arnew.s | 77 - src/crent370/clib/@@arsiz.c | 25 - src/crent370/clib/@@arsiz.o | 0 src/crent370/clib/@@arsiz.s | 70 - src/crent370/clib/@@ascb.c | 59 - src/crent370/clib/@@ascb.o | 0 src/crent370/clib/@@ascb.s | 77 - src/crent370/clib/@@assert.c | 23 - src/crent370/clib/@@assert.o | 0 src/crent370/clib/@@assert.s | 65 - src/crent370/clib/@@austep.c | 70 - src/crent370/clib/@@austep.o | 0 src/crent370/clib/@@austep.s | 97 - src/crent370/clib/@@autask.c | 53 - src/crent370/clib/@@autask.o | 0 src/crent370/clib/@@autask.s | 110 - src/crent370/clib/@@autcde.c | 16 - src/crent370/clib/@@autcde.o | 0 src/crent370/clib/@@autcde.s | 57 - src/crent370/clib/@@autnam.c | 21 - src/crent370/clib/@@autnam.o | 0 src/crent370/clib/@@autnam.s | 62 - src/crent370/clib/@@b64dec.c | 81 - src/crent370/clib/@@b64dec.o | 0 src/crent370/clib/@@b64dec.s | 182 - src/crent370/clib/@@b64enc.c | 83 - src/crent370/clib/@@b64enc.o | 0 src/crent370/clib/@@b64enc.s | 193 - src/crent370/clib/@@b64tbl.c | 4 - src/crent370/clib/@@b64tbl.o | 0 src/crent370/clib/@@b64tbl.s | 28 - src/crent370/clib/@@bldl.c | 14 - src/crent370/clib/@@bldl.o | 0 src/crent370/clib/@@bldl.s | 61 - src/crent370/clib/@@call.c | 19 - src/crent370/clib/@@call.o | 0 src/crent370/clib/@@call.s | 55 - src/crent370/clib/@@caller.c | 34 - src/crent370/clib/@@caller.o | 0 src/crent370/clib/@@caller.s | 84 - src/crent370/clib/@@cibdel.c | 17 - src/crent370/clib/@@cibdel.o | 0 src/crent370/clib/@@cibdel.s | 59 - src/crent370/clib/@@cibget.c | 11 - src/crent370/clib/@@cibget.o | 0 src/crent370/clib/@@cibget.s | 55 - src/crent370/clib/@@cibset.c | 17 - src/crent370/clib/@@cibset.o | 0 src/crent370/clib/@@cibset.s | 59 - src/crent370/clib/@@cpclos.c | 66 - src/crent370/clib/@@cpclos.o | 0 src/crent370/clib/@@cpclos.s | 155 - src/crent370/clib/@@cpopen.c | 181 - src/crent370/clib/@@cpopen.o | 0 src/crent370/clib/@@cpopen.s | 385 -- src/crent370/clib/@@cppoin.c | 24 - src/crent370/clib/@@cppoin.o | 0 src/crent370/clib/@@cppoin.s | 59 - src/crent370/clib/@@cpread.c | 27 - src/crent370/clib/@@cpread.o | 0 src/crent370/clib/@@cpread.s | 66 - src/crent370/clib/@@crtget.c | 47 - src/crent370/clib/@@crtget.o | 0 src/crent370/clib/@@crtget.s | 129 - src/crent370/clib/@@crtres.c | 44 - src/crent370/clib/@@crtres.o | 0 src/crent370/clib/@@crtres.s | 111 - src/crent370/clib/@@crtset.c | 67 - src/crent370/clib/@@crtset.o | 0 src/crent370/clib/@@crtset.s | 146 - src/crent370/clib/@@cs.c | 22 - src/crent370/clib/@@cs.o | 0 src/crent370/clib/@@cs.s | 60 - src/crent370/clib/@@ctcrte.c | 12 - src/crent370/clib/@@ctcrte.o | 0 src/crent370/clib/@@ctcrte.s | 55 - src/crent370/clib/@@ctcrtx.c | 186 - src/crent370/clib/@@ctcrtx.o | 0 src/crent370/clib/@@ctcrtx.s | 503 -- src/crent370/clib/@@ctdel.c | 39 - src/crent370/clib/@@ctdel.o | 0 src/crent370/clib/@@ctdel.s | 128 - src/crent370/clib/@@ctdet.c | 50 - src/crent370/clib/@@ctdet.o | 0 src/crent370/clib/@@ctdet.s | 102 - src/crent370/clib/@@ctfind.c | 34 - src/crent370/clib/@@ctfind.o | 0 src/crent370/clib/@@ctfind.s | 99 - src/crent370/clib/@@ctgtcb.c | 23 - src/crent370/clib/@@ctgtcb.o | 0 src/crent370/clib/@@ctgtcb.s | 57 - src/crent370/clib/@@ctlock.c | 57 - src/crent370/clib/@@ctlock.o | 0 src/crent370/clib/@@ctlock.s | 131 - src/crent370/clib/@@ctpop.c | 51 - src/crent370/clib/@@ctpop.o | 0 src/crent370/clib/@@ctpop.s | 139 - src/crent370/clib/@@ctpost.c | 18 - src/crent370/clib/@@ctpost.o | 0 src/crent370/clib/@@ctpost.s | 60 - src/crent370/clib/@@ctpush.c | 24 - src/crent370/clib/@@ctpush.o | 0 src/crent370/clib/@@ctpush.s | 88 - src/crent370/clib/@@ctself.c | 17 - src/crent370/clib/@@ctself.o | 0 src/crent370/clib/@@ctself.s | 54 - src/crent370/clib/@@cttwat.c | 23 - src/crent370/clib/@@cttwat.o | 0 src/crent370/clib/@@cttwat.s | 64 - src/crent370/clib/@@ctwait.c | 44 - src/crent370/clib/@@ctwait.o | 0 src/crent370/clib/@@ctwait.s | 63 - src/crent370/clib/@@ctx.c | 39 - src/crent370/clib/@@ctyiel.c | 12 - src/crent370/clib/@@ctyiel.o | 0 src/crent370/clib/@@ctyiel.s | 57 - src/crent370/clib/@@dblcvt.c | 310 -- src/crent370/clib/@@dblcvt.o | 0 src/crent370/clib/@@dblcvt.s | 656 --- src/crent370/clib/@@dec.c | 29 - src/crent370/clib/@@dec.o | 0 src/crent370/clib/@@dec.s | 66 - src/crent370/clib/@@delete.c | 30 - src/crent370/clib/@@delete.o | 0 src/crent370/clib/@@delete.s | 86 - src/crent370/clib/@@doperm.c | 3 - src/crent370/clib/@@doperm.o | 0 src/crent370/clib/@@doperm.s | 27 - src/crent370/clib/@@dscbav.c | 45 - src/crent370/clib/@@dscbav.o | 0 src/crent370/clib/@@dscbav.s | 73 - src/crent370/clib/@@dscbdv.c | 56 - src/crent370/clib/@@dscbdv.o | 0 src/crent370/clib/@@dscbdv.s | 82 - src/crent370/clib/@@dscbv.c | 46 - src/crent370/clib/@@dscbv.o | 0 src/crent370/clib/@@dscbv.s | 110 - src/crent370/clib/@@ecbpst.c | 27 - src/crent370/clib/@@ecbpst.o | 0 src/crent370/clib/@@ecbpst.s | 52 - src/crent370/clib/@@ecbtw.c | 12 - src/crent370/clib/@@ecbtw.o | 0 src/crent370/clib/@@ecbtw.s | 60 - src/crent370/clib/@@ecbtwa.c | 34 - src/crent370/clib/@@ecbtwa.o | 0 src/crent370/clib/@@ecbtwa.s | 97 - src/crent370/clib/@@ecbtwl.c | 146 - src/crent370/clib/@@ecbtwl.o | 0 src/crent370/clib/@@ecbtwl.s | 147 - src/crent370/clib/@@ecbwa.c | 37 - src/crent370/clib/@@ecbwa.o | 0 src/crent370/clib/@@ecbwa.s | 94 - src/crent370/clib/@@ecbwl.c | 13 - src/crent370/clib/@@ecbwl.o | 0 src/crent370/clib/@@ecbwl.s | 51 - src/crent370/clib/@@ecbwt.c | 12 - src/crent370/clib/@@ecbwt.o | 0 src/crent370/clib/@@ecbwt.s | 51 - src/crent370/clib/@@enqdeq.c | 57 - src/crent370/clib/@@enqdeq.o | 0 src/crent370/clib/@@enqdeq.s | 163 - src/crent370/clib/@@envvar.c | 5 - src/crent370/clib/@@envvar.o | 0 src/crent370/clib/@@envvar.s | 32 - src/crent370/clib/@@errno.c | 20 - src/crent370/clib/@@errno.o | 0 src/crent370/clib/@@errno.s | 60 - src/crent370/clib/@@estae.c | 197 - src/crent370/clib/@@estae.o | 0 src/crent370/clib/@@estae.s | 231 - src/crent370/clib/@@examin.c | 364 -- src/crent370/clib/@@examin.o | 0 src/crent370/clib/@@examin.s | 865 --- src/crent370/clib/@@exit.c | 110 - src/crent370/clib/@@exit.o | 0 src/crent370/clib/@@exit.s | 296 -- src/crent370/clib/@@fdclr.c | 49 - src/crent370/clib/@@fdclr.o | 0 src/crent370/clib/@@fdclr.s | 78 - src/crent370/clib/@@fflush.c | 165 - src/crent370/clib/@@fflush.o | 0 src/crent370/clib/@@fflush.s | 278 - src/crent370/clib/@@fgetc.c | 161 - src/crent370/clib/@@fgetc.o | 0 src/crent370/clib/@@fgetc.s | 305 -- src/crent370/clib/@@fgets.c | 33 - src/crent370/clib/@@fgets.o | 0 src/crent370/clib/@@fgets.s | 86 - src/crent370/clib/@@fildef.c | 132 - src/crent370/clib/@@fildef.o | 0 src/crent370/clib/@@fildef.s | 185 - src/crent370/clib/@@finden.c | 45 - src/crent370/clib/@@finden.o | 0 src/crent370/clib/@@finden.s | 118 - src/crent370/clib/@@fmtisp.c | 84 - src/crent370/clib/@@fmtisp.o | 0 src/crent370/clib/@@fmtisp.s | 332 -- src/crent370/clib/@@fmtloa.c | 141 - src/crent370/clib/@@fmtloa.o | 0 src/crent370/clib/@@fmtloa.s | 365 -- src/crent370/clib/@@fndcde.c | 27 - src/crent370/clib/@@fndcde.o | 0 src/crent370/clib/@@fndcde.s | 96 - src/crent370/clib/@@fpfree.c | 52 - src/crent370/clib/@@fpfree.o | 0 src/crent370/clib/@@fpfree.s | 108 - src/crent370/clib/@@fpmode.c | 64 - src/crent370/clib/@@fpmode.o | 0 src/crent370/clib/@@fpmode.s | 205 - src/crent370/clib/@@fpnew.c | 167 - src/crent370/clib/@@fpnew.o | 0 src/crent370/clib/@@fpnew.s | 493 -- src/crent370/clib/@@fpold.c | 55 - src/crent370/clib/@@fpold.o | 0 src/crent370/clib/@@fpold.s | 132 - src/crent370/clib/@@fpopen.c | 118 - src/crent370/clib/@@fpopen.o | 0 src/crent370/clib/@@fpopen.s | 285 - src/crent370/clib/@@fpshr.c | 55 - src/crent370/clib/@@fpshr.o | 0 src/crent370/clib/@@fpshr.s | 132 - src/crent370/clib/@@fpstar.c | 147 - src/crent370/clib/@@fpstar.o | 0 src/crent370/clib/@@fpstar.s | 458 -- src/crent370/clib/@@fptmp.c | 148 - src/crent370/clib/@@fptmp.o | 0 src/crent370/clib/@@fptmp.s | 527 -- src/crent370/clib/@@fputc.c | 37 - src/crent370/clib/@@fputc.o | 0 src/crent370/clib/@@fputc.s | 100 - src/crent370/clib/@@fputs.c | 24 - src/crent370/clib/@@fputs.o | 0 src/crent370/clib/@@fputs.s | 79 - src/crent370/clib/@@fread.c | 50 - src/crent370/clib/@@fread.o | 0 src/crent370/clib/@@fread.s | 121 - src/crent370/clib/@@freeds.c | 29 - src/crent370/clib/@@freeds.o | 0 src/crent370/clib/@@freeds.s | 86 - src/crent370/clib/@@freepd.c | 29 - src/crent370/clib/@@freepd.o | 0 src/crent370/clib/@@freepd.s | 86 - src/crent370/clib/@@freevl.c | 31 - src/crent370/clib/@@freevl.o | 0 src/crent370/clib/@@freevl.s | 97 - src/crent370/clib/@@frtx99.c | 14 - src/crent370/clib/@@frtx99.o | 0 src/crent370/clib/@@frtx99.s | 58 - src/crent370/clib/@@frtx9a.c | 21 - src/crent370/clib/@@frtx9a.o | 0 src/crent370/clib/@@frtx9a.s | 79 - src/crent370/clib/@@fseek.c | 102 - src/crent370/clib/@@fseek.o | 0 src/crent370/clib/@@fseek.s | 211 - src/crent370/clib/@@fwrite.c | 41 - src/crent370/clib/@@fwrite.o | 0 src/crent370/clib/@@fwrite.s | 110 - src/crent370/clib/@@get@er.c | 19 - src/crent370/clib/@@get@er.o | 0 src/crent370/clib/@@get@er.s | 53 - src/crent370/clib/@@getpso.c | 31 - src/crent370/clib/@@getpso.o | 0 src/crent370/clib/@@getpso.s | 70 - src/crent370/clib/@@grtget.c | 12 - src/crent370/clib/@@grtget.o | 0 src/crent370/clib/@@grtget.s | 55 - src/crent370/clib/@@grtres.c | 30 - src/crent370/clib/@@grtres.o | 0 src/crent370/clib/@@grtres.s | 97 - src/crent370/clib/@@grtset.c | 31 - src/crent370/clib/@@grtset.o | 0 src/crent370/clib/@@grtset.s | 82 - src/crent370/clib/@@gtcom.c | 18 - src/crent370/clib/@@gtcom.o | 0 src/crent370/clib/@@gtcom.s | 64 - src/crent370/clib/@@gterr.c | 11 - src/crent370/clib/@@gterr.o | 0 src/crent370/clib/@@gterr.s | 50 - src/crent370/clib/@@gtin.c | 10 - src/crent370/clib/@@gtin.o | 0 src/crent370/clib/@@gtin.s | 50 - src/crent370/clib/@@gtout.c | 11 - src/crent370/clib/@@gtout.o | 0 src/crent370/clib/@@gtout.s | 50 - src/crent370/clib/@@idecth.c | 19 - src/crent370/clib/@@idecth.o | 0 src/crent370/clib/@@idecth.s | 59 - src/crent370/clib/@@inaton.c | 53 - src/crent370/clib/@@inaton.o | 0 src/crent370/clib/@@inaton.s | 135 - src/crent370/clib/@@inc.c | 29 - src/crent370/clib/@@inc.o | 0 src/crent370/clib/@@inc.s | 66 - src/crent370/clib/@@isauth.c | 19 - src/crent370/clib/@@isauth.o | 0 src/crent370/clib/@@isauth.s | 54 - src/crent370/clib/@@isbuf.c | 265 - src/crent370/clib/@@isbuf.o | 0 src/crent370/clib/@@isbuf.s | 286 - src/crent370/clib/@@isleap.c | 32 - src/crent370/clib/@@isleap.o | 0 src/crent370/clib/@@isleap.s | 71 - src/crent370/clib/@@ispexe.c | 25 - src/crent370/clib/@@ispexe.o | 0 src/crent370/clib/@@ispexe.s | 62 - src/crent370/clib/@@isplnk.c | 44 - src/crent370/clib/@@isplnk.o | 0 src/crent370/clib/@@isplnk.s | 94 - src/crent370/clib/@@ispsel.c | 26 - src/crent370/clib/@@ispsel.o | 0 src/crent370/clib/@@ispsel.s | 66 - src/crent370/clib/@@issup.c | 17 - src/crent370/clib/@@issup.o | 0 src/crent370/clib/@@issup.s | 56 - src/crent370/clib/@@jobid.c | 23 - src/crent370/clib/@@jobid.o | 0 src/crent370/clib/@@jobid.s | 60 - src/crent370/clib/@@jobnam.c | 19 - src/crent370/clib/@@jobnam.o | 0 src/crent370/clib/@@jobnam.s | 54 - src/crent370/clib/@@jpaget.c | 23 - src/crent370/clib/@@jpaget.o | 0 src/crent370/clib/@@jpaget.s | 75 - src/crent370/clib/@@jsclos.c | 66 - src/crent370/clib/@@jsclos.o | 0 src/crent370/clib/@@jsclos.s | 147 - src/crent370/clib/@@jsopen.c | 141 - src/crent370/clib/@@jsopen.o | 0 src/crent370/clib/@@jsopen.s | 307 -- src/crent370/clib/@@jsrd4.c | 78 - src/crent370/clib/@@jsrd4.o | 0 src/crent370/clib/@@jsrd4.s | 108 - src/crent370/clib/@@link.c | 53 - src/crent370/clib/@@link.o | 0 src/crent370/clib/@@link.s | 109 - src/crent370/clib/@@linkds.c | 39 - src/crent370/clib/@@linkds.o | 0 src/crent370/clib/@@linkds.s | 100 - src/crent370/clib/@@linkt.c | 15 - src/crent370/clib/@@linkt.o | 0 src/crent370/clib/@@linkt.s | 54 - src/crent370/clib/@@listc.c | 107 - src/crent370/clib/@@listc.o | 0 src/crent370/clib/@@listc.s | 230 - src/crent370/clib/@@listds.c | 205 - src/crent370/clib/@@listds.o | 0 src/crent370/clib/@@listds.s | 587 -- src/crent370/clib/@@listpd.c | 64 - src/crent370/clib/@@listpd.o | 0 src/crent370/clib/@@listpd.s | 180 - src/crent370/clib/@@listvl.c | 285 - src/crent370/clib/@@listvl.o | 0 src/crent370/clib/@@listvl.s | 657 --- src/crent370/clib/@@lk.c | 20 - src/crent370/clib/@@lk.o | 0 src/crent370/clib/@@lk.s | 73 - src/crent370/clib/@@lkrn.c | 13 - src/crent370/clib/@@lkrn.o | 0 src/crent370/clib/@@lkrn.s | 61 - src/crent370/clib/@@lkrnf.c | 17 - src/crent370/clib/@@lkrnf.o | 0 src/crent370/clib/@@lkrnf.s | 59 - src/crent370/clib/@@lkrnte.c | 13 - src/crent370/clib/@@lkrnte.o | 0 src/crent370/clib/@@lkrnte.s | 62 - src/crent370/clib/@@lkrntf.c | 16 - src/crent370/clib/@@lkrntf.o | 0 src/crent370/clib/@@lkrntf.s | 59 - src/crent370/clib/@@lkrntr.c | 12 - src/crent370/clib/@@lkrntr.o | 0 src/crent370/clib/@@lkrntr.s | 62 - src/crent370/clib/@@lkrnuf.c | 16 - src/crent370/clib/@@lkrnuf.o | 0 src/crent370/clib/@@lkrnuf.s | 59 - src/crent370/clib/@@lkrnun.c | 10 - src/crent370/clib/@@lkrnun.o | 0 src/crent370/clib/@@lkrnun.s | 56 - src/crent370/clib/@@lkrtef.c | 16 - src/crent370/clib/@@lkrtef.o | 0 src/crent370/clib/@@lkrtef.s | 59 - src/crent370/clib/@@lktest.c | 17 - src/crent370/clib/@@lktest.o | 0 src/crent370/clib/@@lktest.s | 74 - src/crent370/clib/@@lktry.c | 17 - src/crent370/clib/@@lktry.o | 0 src/crent370/clib/@@lktry.s | 74 - src/crent370/clib/@@lkunlk.c | 14 - src/crent370/clib/@@lkunlk.o | 0 src/crent370/clib/@@lkunlk.s | 68 - src/crent370/clib/@@lkuntf.c | 17 - src/crent370/clib/@@lkuntf.o | 0 src/crent370/clib/@@lkuntf.s | 59 - src/crent370/clib/@@lkuntr.c | 13 - src/crent370/clib/@@lkuntr.o | 0 src/crent370/clib/@@lkuntr.s | 62 - src/crent370/clib/@@load.c | 97 - src/crent370/clib/@@load.o | 0 src/crent370/clib/@@load.s | 117 - src/crent370/clib/@@loadhi.c | 265 - src/crent370/clib/@@loadhi.o | 0 src/crent370/clib/@@loadhi.s | 447 -- src/crent370/clib/@@locate.c | 54 - src/crent370/clib/@@locate.o | 0 src/crent370/clib/@@locate.s | 64 - src/crent370/clib/@@longj.c | 4 - src/crent370/clib/@@longj.o | 0 src/crent370/clib/@@longj.s | 21 - src/crent370/clib/@@mtd.c | 32 - src/crent370/clib/@@mtd.o | 0 src/crent370/clib/@@mtd.s | 56 - src/crent370/clib/@@nwtx99.c | 23 - src/crent370/clib/@@nwtx99.o | 0 src/crent370/clib/@@nwtx99.s | 79 - src/crent370/clib/@@nwtx9a.c | 48 - src/crent370/clib/@@nwtx9a.o | 0 src/crent370/clib/@@nwtx9a.s | 120 - src/crent370/clib/@@nwtx9s.c | 51 - src/crent370/clib/@@nwtx9s.o | 0 src/crent370/clib/@@nwtx9s.s | 126 - src/crent370/clib/@@patmat.c | 46 - src/crent370/clib/@@patmat.o | 0 src/crent370/clib/@@patmat.s | 128 - src/crent370/clib/@@perm.c | 3 - src/crent370/clib/@@perm.o | 0 src/crent370/clib/@@perm.s | 32 - src/crent370/clib/@@prob.c | 41 - src/crent370/clib/@@prob.o | 0 src/crent370/clib/@@prob.s | 91 - src/crent370/clib/@@prtfx.c | 712 --- src/crent370/clib/@@prtfx.o | 0 src/crent370/clib/@@prtfx.s | 1930 ------- src/crent370/clib/@@pswkey.c | 26 - src/crent370/clib/@@pswkey.o | 0 src/crent370/clib/@@pswkey.s | 78 - src/crent370/clib/@@rdjfcb.c | 32 - src/crent370/clib/@@rdjfcb.o | 0 src/crent370/clib/@@rdjfcb.s | 70 - src/crent370/clib/@@reopen.c | 91 - src/crent370/clib/@@reopen.o | 0 src/crent370/clib/@@reopen.s | 222 - src/crent370/clib/@@sigdfl.c | 27 - src/crent370/clib/@@sigdfl.o | 0 src/crent370/clib/@@sigdfl.s | 60 - src/crent370/clib/@@sigerr.c | 23 - src/crent370/clib/@@sigerr.o | 0 src/crent370/clib/@@sigerr.s | 46 - src/crent370/clib/@@sighdl.c | 32 - src/crent370/clib/@@sighdl.o | 0 src/crent370/clib/@@sighdl.s | 61 - src/crent370/clib/@@sigign.c | 23 - src/crent370/clib/@@sigign.o | 0 src/crent370/clib/@@sigign.s | 46 - src/crent370/clib/@@sl.c | 20 - src/crent370/clib/@@sl.o | 0 src/crent370/clib/@@sl.s | 74 - src/crent370/clib/@@sltest.c | 17 - src/crent370/clib/@@sltest.o | 0 src/crent370/clib/@@sltest.s | 74 - src/crent370/clib/@@sltry.c | 17 - src/crent370/clib/@@sltry.o | 0 src/crent370/clib/@@sltry.s | 74 - src/crent370/clib/@@slunlk.c | 14 - src/crent370/clib/@@slunlk.o | 0 src/crent370/clib/@@slunlk.s | 69 - src/crent370/clib/@@smca.c | 16 - src/crent370/clib/@@smca.o | 0 src/crent370/clib/@@smca.s | 49 - src/crent370/clib/@@smfid.c | 21 - src/crent370/clib/@@smfid.o | 0 src/crent370/clib/@@smfid.s | 56 - src/crent370/clib/@@soadd.c | 32 - src/crent370/clib/@@soadd.o | 0 src/crent370/clib/@@soadd.s | 110 - src/crent370/clib/@@sodel.c | 33 - src/crent370/clib/@@sodel.o | 0 src/crent370/clib/@@sodel.s | 104 - src/crent370/clib/@@sofind.c | 33 - src/crent370/clib/@@sofind.o | 0 src/crent370/clib/@@sofind.s | 98 - src/crent370/clib/@@soupd.c | 28 - src/crent370/clib/@@soupd.o | 0 src/crent370/clib/@@soupd.s | 91 - src/crent370/clib/@@ssfind.c | 46 - src/crent370/clib/@@ssfind.o | 0 src/crent370/clib/@@ssfind.s | 87 - src/crent370/clib/@@ssfree.c | 33 - src/crent370/clib/@@ssfree.o | 0 src/crent370/clib/@@ssfree.s | 69 - src/crent370/clib/@@ssib.c | 22 - src/crent370/clib/@@ssib.o | 0 src/crent370/clib/@@ssib.s | 59 - src/crent370/clib/@@ssinst.c | 38 - src/crent370/clib/@@ssinst.o | 0 src/crent370/clib/@@ssinst.s | 83 - src/crent370/clib/@@ssnew.c | 44 - src/crent370/clib/@@ssnew.o | 0 src/crent370/clib/@@ssnew.s | 96 - src/crent370/clib/@@ssrem.c | 42 - src/crent370/clib/@@ssrem.o | 0 src/crent370/clib/@@ssrem.s | 82 - src/crent370/clib/@@ssremn.c | 15 - src/crent370/clib/@@ssremn.o | 0 src/crent370/clib/@@ssremn.s | 62 - src/crent370/clib/@@start.c | 173 - src/crent370/clib/@@start.o | 0 src/crent370/clib/@@start.s | 398 -- src/crent370/clib/@@stderr.c | 5 - src/crent370/clib/@@stderr.o | 0 src/crent370/clib/@@stderr.s | 28 - src/crent370/clib/@@stdin.c | 5 - src/crent370/clib/@@stdin.o | 0 src/crent370/clib/@@stdin.s | 27 - src/crent370/clib/@@stdout.c | 5 - src/crent370/clib/@@stdout.o | 0 src/crent370/clib/@@stdout.s | 28 - src/crent370/clib/@@steplb.c | 28 - src/crent370/clib/@@steplb.o | 0 src/crent370/clib/@@steplb.s | 61 - src/crent370/clib/@@stymd.c | 50 - src/crent370/clib/@@stymd.o | 0 src/crent370/clib/@@stymd.s | 130 - src/crent370/clib/@@sudo.c | 35 - src/crent370/clib/@@sudo.o | 0 src/crent370/clib/@@sudo.s | 70 - src/crent370/clib/@@sukydo.c | 57 - src/crent370/clib/@@sukydo.o | 0 src/crent370/clib/@@sukydo.s | 89 - src/crent370/clib/@@super.c | 36 - src/crent370/clib/@@super.o | 0 src/crent370/clib/@@super.s | 89 - src/crent370/clib/@@svfmap.c | 44 - src/crent370/clib/@@svfmap.o | 0 src/crent370/clib/@@svfmap.s | 82 - src/crent370/clib/@@svfree.c | 33 - src/crent370/clib/@@svfree.o | 0 src/crent370/clib/@@svfree.s | 69 - src/crent370/clib/@@svnew.c | 47 - src/crent370/clib/@@svnew.o | 0 src/crent370/clib/@@svnew.s | 79 - src/crent370/clib/@@svset.c | 41 - src/crent370/clib/@@svset.o | 0 src/crent370/clib/@@svset.s | 80 - src/crent370/clib/@@tiot.c | 17 - src/crent370/clib/@@tiot.o | 0 src/crent370/clib/@@tiot.s | 54 - src/crent370/clib/@@tminit.c | 20 - src/crent370/clib/@@tminit.o | 0 src/crent370/clib/@@tminit.s | 87 - src/crent370/clib/@@tmrecb.c | 24 - src/crent370/clib/@@tmrecb.o | 0 src/crent370/clib/@@tmrecb.s | 96 - src/crent370/clib/@@tmrece.c | 26 - src/crent370/clib/@@tmrece.o | 0 src/crent370/clib/@@tmrece.s | 96 - src/crent370/clib/@@tmreck.c | 25 - src/crent370/clib/@@tmreck.o | 0 src/crent370/clib/@@tmreck.s | 96 - src/crent370/clib/@@tmrfue.c | 26 - src/crent370/clib/@@tmrfue.o | 0 src/crent370/clib/@@tmrfue.s | 96 - src/crent370/clib/@@tmrfuk.c | 25 - src/crent370/clib/@@tmrfuk.o | 0 src/crent370/clib/@@tmrfuk.s | 96 - src/crent370/clib/@@tmrfun.c | 24 - src/crent370/clib/@@tmrfun.o | 0 src/crent370/clib/@@tmrfun.s | 96 - src/crent370/clib/@@tmrget.c | 11 - src/crent370/clib/@@tmrget.o | 0 src/crent370/clib/@@tmrget.s | 59 - src/crent370/clib/@@tmrid.c | 64 - src/crent370/clib/@@tmrid.o | 0 src/crent370/clib/@@tmrid.s | 211 - src/crent370/clib/@@tmsecs.c | 34 - src/crent370/clib/@@tmsecs.o | 0 src/crent370/clib/@@tmsecs.s | 94 - src/crent370/clib/@@tmstop.c | 51 - src/crent370/clib/@@tmstop.o | 0 src/crent370/clib/@@tmstop.s | 207 - src/crent370/clib/@@tmstrt.c | 60 - src/crent370/clib/@@tmstrt.o | 0 src/crent370/clib/@@tmstrt.s | 193 - src/crent370/clib/@@tmthrd.c | 304 -- src/crent370/clib/@@tmthrd.o | 0 src/crent370/clib/@@tmthrd.s | 418 -- src/crent370/clib/@@tolow.c | 265 - src/crent370/clib/@@tolow.o | 0 src/crent370/clib/@@tolow.s | 286 - src/crent370/clib/@@toup.c | 265 - src/crent370/clib/@@toup.o | 0 src/crent370/clib/@@toup.s | 286 - src/crent370/clib/@@tqedis.c | 32 - src/crent370/clib/@@tqedis.o | 0 src/crent370/clib/@@tqedis.s | 99 - src/crent370/clib/@@tqeena.c | 40 - src/crent370/clib/@@tqeena.o | 0 src/crent370/clib/@@tqeena.s | 128 - src/crent370/clib/@@tqeget.c | 28 - src/crent370/clib/@@tqeget.o | 0 src/crent370/clib/@@tqeget.s | 98 - src/crent370/clib/@@tqeprg.c | 35 - src/crent370/clib/@@tqeprg.o | 0 src/crent370/clib/@@tqeprg.s | 111 - src/crent370/clib/@@tqerst.c | 43 - src/crent370/clib/@@tqerst.o | 0 src/crent370/clib/@@tqerst.s | 131 - src/crent370/clib/@@tqnew.c | 28 - src/crent370/clib/@@tqnew.o | 0 src/crent370/clib/@@tqnew.s | 101 - src/crent370/clib/@@try.c | 104 - src/crent370/clib/@@try.o | 0 src/crent370/clib/@@try.s | 193 - src/crent370/clib/@@tx | 0 src/crent370/clib/@@txbfal.c | 32 - src/crent370/clib/@@txbfal.o | 0 src/crent370/clib/@@txbfal.s | 106 - src/crent370/clib/@@txbfte.c | 39 - src/crent370/clib/@@txbfte.o | 0 src/crent370/clib/@@txbfte.s | 136 - src/crent370/clib/@@txbksz.c | 25 - src/crent370/clib/@@txbksz.o | 0 src/crent370/clib/@@txbksz.s | 85 - src/crent370/clib/@@txblk.c | 24 - src/crent370/clib/@@txblk.o | 0 src/crent370/clib/@@txblk.s | 79 - src/crent370/clib/@@txbufl.c | 25 - src/crent370/clib/@@txbufl.o | 0 src/crent370/clib/@@txbufl.s | 85 - src/crent370/clib/@@txbufn.c | 25 - src/crent370/clib/@@txbufn.o | 0 src/crent370/clib/@@txbufn.s | 85 - src/crent370/clib/@@txbufo.c | 33 - src/crent370/clib/@@txbufo.o | 0 src/crent370/clib/@@txbufo.s | 101 - src/crent370/clib/@@txcat.c | 18 - src/crent370/clib/@@txcat.o | 0 src/crent370/clib/@@txcat.s | 67 - src/crent370/clib/@@txcopy.c | 24 - src/crent370/clib/@@txcopy.o | 0 src/crent370/clib/@@txcopy.s | 82 - src/crent370/clib/@@txcyl.c | 18 - src/crent370/clib/@@txcyl.o | 0 src/crent370/clib/@@txcyl.s | 64 - src/crent370/clib/@@txddn.c | 23 - src/crent370/clib/@@txddn.o | 0 src/crent370/clib/@@txddn.s | 71 - src/crent370/clib/@@txdel.c | 18 - src/crent370/clib/@@txdel.o | 0 src/crent370/clib/@@txdel.s | 67 - src/crent370/clib/@@txden.c | 38 - src/crent370/clib/@@txden.o | 0 src/crent370/clib/@@txden.s | 123 - src/crent370/clib/@@txdest.c | 55 - src/crent370/clib/@@txdest.o | 0 src/crent370/clib/@@txdest.s | 139 - src/crent370/clib/@@txdir.c | 24 - src/crent370/clib/@@txdir.o | 0 src/crent370/clib/@@txdir.s | 79 - src/crent370/clib/@@txdmy.c | 17 - src/crent370/clib/@@txdmy.o | 0 src/crent370/clib/@@txdmy.s | 64 - src/crent370/clib/@@txdsn.c | 36 - src/crent370/clib/@@txdsn.o | 0 src/crent370/clib/@@txdsn.s | 129 - src/crent370/clib/@@txerop.c | 39 - src/crent370/clib/@@txerop.o | 0 src/crent370/clib/@@txerop.s | 123 - src/crent370/clib/@@txexpd.c | 21 - src/crent370/clib/@@txexpd.o | 0 src/crent370/clib/@@txexpd.s | 78 - src/crent370/clib/@@txfcb.c | 31 - src/crent370/clib/@@txfcb.o | 0 src/crent370/clib/@@txfcb.s | 117 - src/crent370/clib/@@txform.c | 21 - src/crent370/clib/@@txform.o | 0 src/crent370/clib/@@txform.s | 80 - src/crent370/clib/@@txhold.c | 18 - src/crent370/clib/@@txhold.o | 0 src/crent370/clib/@@txhold.s | 64 - src/crent370/clib/@@txinpu.c | 18 - src/crent370/clib/@@txinpu.o | 0 src/crent370/clib/@@txinpu.s | 67 - src/crent370/clib/@@txkeep.c | 18 - src/crent370/clib/@@txkeep.o | 0 src/crent370/clib/@@txkeep.s | 67 - src/crent370/clib/@@txkeyl.c | 23 - src/crent370/clib/@@txkeyl.o | 0 src/crent370/clib/@@txkeyl.s | 80 - src/crent370/clib/@@txlabe.c | 42 - src/crent370/clib/@@txlabe.o | 0 src/crent370/clib/@@txlabe.s | 143 - src/crent370/clib/@@txlmct.c | 25 - src/crent370/clib/@@txlmct.o | 0 src/crent370/clib/@@txlmct.s | 85 - src/crent370/clib/@@txlrec.c | 36 - src/crent370/clib/@@txlrec.o | 0 src/crent370/clib/@@txlrec.s | 109 - src/crent370/clib/@@txmod.c | 20 - src/crent370/clib/@@txmod.o | 0 src/crent370/clib/@@txmod.s | 69 - src/crent370/clib/@@txncp.c | 24 - src/crent370/clib/@@txncp.o | 0 src/crent370/clib/@@txncp.s | 82 - src/crent370/clib/@@txnew.c | 20 - src/crent370/clib/@@txnew.o | 0 src/crent370/clib/@@txnew.s | 69 - src/crent370/clib/@@txold.c | 20 - src/crent370/clib/@@txold.o | 0 src/crent370/clib/@@txold.s | 69 - src/crent370/clib/@@txorg.c | 48 - src/crent370/clib/@@txorg.o | 0 src/crent370/clib/@@txorg.s | 161 - src/crent370/clib/@@txoutp.c | 18 - src/crent370/clib/@@txoutp.o | 0 src/crent370/clib/@@txoutp.s | 67 - src/crent370/clib/@@txpara.c | 18 - src/crent370/clib/@@txpara.o | 0 src/crent370/clib/@@txpara.s | 64 - src/crent370/clib/@@txperm.c | 17 - src/crent370/clib/@@txperm.o | 0 src/crent370/clib/@@txperm.s | 64 - src/crent370/clib/@@txpgm.c | 21 - src/crent370/clib/@@txpgm.o | 0 src/crent370/clib/@@txpgm.s | 80 - src/crent370/clib/@@txpriv.c | 18 - src/crent370/clib/@@txpriv.o | 0 src/crent370/clib/@@txpriv.s | 64 - src/crent370/clib/@@txprot.c | 18 - src/crent370/clib/@@txprot.o | 0 src/crent370/clib/@@txprot.s | 64 - src/crent370/clib/@@txrddn.c | 19 - src/crent370/clib/@@txrddn.o | 0 src/crent370/clib/@@txrddn.s | 64 - src/crent370/clib/@@txrecf.c | 56 - src/crent370/clib/@@txrecf.o | 0 src/crent370/clib/@@txrecf.s | 134 - src/crent370/clib/@@txretp.c | 24 - src/crent370/clib/@@txretp.o | 0 src/crent370/clib/@@txretp.s | 82 - src/crent370/clib/@@txrlse.c | 18 - src/crent370/clib/@@txrlse.o | 0 src/crent370/clib/@@txrlse.s | 64 - src/crent370/clib/@@txrnd.c | 18 - src/crent370/clib/@@txrnd.o | 0 src/crent370/clib/@@txrnd.s | 64 - src/crent370/clib/@@txseq.c | 24 - src/crent370/clib/@@txseq.o | 0 src/crent370/clib/@@txseq.s | 82 - src/crent370/clib/@@txshr.c | 20 - src/crent370/clib/@@txshr.o | 0 src/crent370/clib/@@txshr.s | 69 - src/crent370/clib/@@txspac.c | 42 - src/crent370/clib/@@txspac.o | 0 src/crent370/clib/@@txspac.s | 162 - src/crent370/clib/@@txsyso.c | 25 - src/crent370/clib/@@txsyso.o | 0 src/crent370/clib/@@txsyso.s | 76 - src/crent370/clib/@@txterm.c | 17 - src/crent370/clib/@@txterm.o | 0 src/crent370/clib/@@txterm.s | 64 - src/crent370/clib/@@txtrk.c | 18 - src/crent370/clib/@@txtrk.o | 0 src/crent370/clib/@@txtrk.s | 64 - src/crent370/clib/@@txtrtc.c | 43 - src/crent370/clib/@@txtrtc.o | 0 src/crent370/clib/@@txtrtc.s | 135 - src/crent370/clib/@@txucat.c | 18 - src/crent370/clib/@@txucat.o | 0 src/crent370/clib/@@txucat.s | 67 - src/crent370/clib/@@txucs.c | 29 - src/crent370/clib/@@txucs.o | 0 src/crent370/clib/@@txucs.s | 112 - src/crent370/clib/@@txunal.c | 17 - src/crent370/clib/@@txunal.o | 0 src/crent370/clib/@@txunal.s | 64 - src/crent370/clib/@@txunct.c | 24 - src/crent370/clib/@@txunct.o | 0 src/crent370/clib/@@txunct.s | 79 - src/crent370/clib/@@txunit.c | 21 - src/crent370/clib/@@txunit.o | 0 src/crent370/clib/@@txunit.s | 77 - src/crent370/clib/@@txvlct.c | 24 - src/crent370/clib/@@txvlct.o | 0 src/crent370/clib/@@txvlct.s | 82 - src/crent370/clib/@@txvols.c | 37 - src/crent370/clib/@@txvols.o | 0 src/crent370/clib/@@txvols.s | 143 - src/crent370/clib/@@txvseq.c | 24 - src/crent370/clib/@@txvseq.o | 0 src/crent370/clib/@@txvseq.s | 82 - src/crent370/clib/@@tzget.c | 17 - src/crent370/clib/@@tzget.o | 0 src/crent370/clib/@@tzget.s | 55 - src/crent370/clib/@@tzset.c | 28 - src/crent370/clib/@@tzset.o | 0 src/crent370/clib/@@tzset.s | 56 - src/crent370/clib/@@uastep.c | 60 - src/crent370/clib/@@uastep.o | 0 src/crent370/clib/@@uastep.s | 92 - src/crent370/clib/@@uatask.c | 43 - src/crent370/clib/@@uatask.o | 0 src/crent370/clib/@@uatask.s | 102 - src/crent370/clib/@@udec.c | 29 - src/crent370/clib/@@udec.o | 0 src/crent370/clib/@@udec.s | 66 - src/crent370/clib/@@uinc.c | 29 - src/crent370/clib/@@uinc.o | 0 src/crent370/clib/@@uinc.s | 66 - src/crent370/clib/@@userex.c | 9 - src/crent370/clib/@@userex.o | 0 src/crent370/clib/@@userex.s | 28 - src/crent370/clib/@@vscinv.c | 20 - src/crent370/clib/@@vscinv.o | 0 src/crent370/clib/@@vscinv.s | 59 - src/crent370/clib/@@vsclos.c | 25 - src/crent370/clib/@@vsclos.o | 0 src/crent370/clib/@@vsclos.s | 69 - src/crent370/clib/@@vsclr.c | 17 - src/crent370/clib/@@vsclr.o | 0 src/crent370/clib/@@vsclr.s | 52 - src/crent370/clib/@@vsdel.c | 26 - src/crent370/clib/@@vsdel.o | 0 src/crent370/clib/@@vsdel.s | 64 - src/crent370/clib/@@vseof.c | 16 - src/crent370/clib/@@vseof.o | 0 src/crent370/clib/@@vseof.s | 50 - src/crent370/clib/@@vserr.c | 16 - src/crent370/clib/@@vserr.o | 0 src/crent370/clib/@@vserr.s | 52 - src/crent370/clib/@@vslrec.c | 20 - src/crent370/clib/@@vslrec.o | 0 src/crent370/clib/@@vslrec.s | 59 - src/crent370/clib/@@vsmdfy.c | 35 - src/crent370/clib/@@vsmdfy.o | 0 src/crent370/clib/@@vsmdfy.s | 78 - src/crent370/clib/@@vsopen.c | 286 - src/crent370/clib/@@vsopen.o | 0 src/crent370/clib/@@vsopen.s | 395 -- src/crent370/clib/@@vsread.c | 50 - src/crent370/clib/@@vsread.o | 0 src/crent370/clib/@@vsread.s | 111 - src/crent370/clib/@@vsshwc.c | 28 - src/crent370/clib/@@vsshwc.o | 0 src/crent370/clib/@@vsshwc.s | 70 - src/crent370/clib/@@vssteq.c | 34 - src/crent370/clib/@@vssteq.o | 0 src/crent370/clib/@@vssteq.s | 71 - src/crent370/clib/@@vsstge.c | 33 - src/crent370/clib/@@vsstge.o | 0 src/crent370/clib/@@vsstge.s | 72 - src/crent370/clib/@@vstell.c | 20 - src/crent370/clib/@@vstell.o | 0 src/crent370/clib/@@vstell.s | 59 - src/crent370/clib/@@vsupdt.c | 26 - src/crent370/clib/@@vsupdt.o | 0 src/crent370/clib/@@vsupdt.s | 64 - src/crent370/clib/@@vswrit.c | 56 - src/crent370/clib/@@vswrit.o | 0 src/crent370/clib/@@vswrit.s | 123 - src/crent370/clib/@@vsxeof.c | 17 - src/crent370/clib/@@vsxeof.o | 0 src/crent370/clib/@@vsxeof.s | 50 - src/crent370/clib/@@vsxerr.c | 35 - src/crent370/clib/@@vsxerr.o | 0 src/crent370/clib/@@vsxerr.s | 75 - src/crent370/clib/@@wsaget.c | 50 - src/crent370/clib/@@wsaget.o | 0 src/crent370/clib/@@wsaget.s | 169 - src/crent370/clib/@@wtotb.c | 62 - src/crent370/clib/@@wtotb.o | 0 src/crent370/clib/@@wtotb.s | 239 - src/crent370/clib/@@xmpost.c | 39 - src/crent370/clib/@@xmpost.o | 0 src/crent370/clib/@@xmpost.s | 95 - src/crent370/clib/@@ymdts.c | 39 - src/crent370/clib/@@ymdts.o | 0 src/crent370/clib/@@ymdts.s | 75 - src/crent370/clib/@@ytd.c | 32 - src/crent370/clib/@@ytd.o | 0 src/crent370/clib/@@ytd.s | 66 - src/crent370/clib/@dbleps.c | 4 - src/crent370/clib/@dbleps.o | 0 src/crent370/clib/@dbleps.s | 30 - src/crent370/clib/@dblmax.c | 4 - src/crent370/clib/@dblmax.o | 0 src/crent370/clib/@dblmax.s | 30 - src/crent370/clib/@dblmin.c | 4 - src/crent370/clib/@dblmin.o | 0 src/crent370/clib/@dblmin.s | 30 - src/crent370/clib/@flteps.c | 4 - src/crent370/clib/@flteps.o | 0 src/crent370/clib/@flteps.s | 30 - src/crent370/clib/@fltmax.c | 4 - src/crent370/clib/@fltmax.o | 0 src/crent370/clib/@fltmax.s | 30 - src/crent370/clib/@fltmin.c | 4 - src/crent370/clib/@fltmin.o | 0 src/crent370/clib/@fltmin.s | 30 - src/crent370/clib/abort.c | 11 - src/crent370/clib/abort.o | 0 src/crent370/clib/abort.s | 54 - src/crent370/clib/abs.c | 15 - src/crent370/clib/abs.o | 0 src/crent370/clib/abs.s | 48 - src/crent370/clib/acos.c | 53 - src/crent370/clib/acos.o | 0 src/crent370/clib/acos.s | 90 - src/crent370/clib/asctime.c | 50 - src/crent370/clib/asctime.o | 0 src/crent370/clib/asctime.s | 107 - src/crent370/clib/asin.c | 96 - src/crent370/clib/asin.o | 0 src/crent370/clib/asin.s | 129 - src/crent370/clib/atan.c | 103 - src/crent370/clib/atan.o | 0 src/crent370/clib/atan.s | 140 - src/crent370/clib/atan2.c | 38 - src/crent370/clib/atan2.o | 0 src/crent370/clib/atan2.s | 107 - src/crent370/clib/atexit.c | 20 - src/crent370/clib/atexit.o | 0 src/crent370/clib/atexit.s | 78 - src/crent370/clib/atof.c | 10 - src/crent370/clib/atof.o | 0 src/crent370/clib/atof.s | 51 - src/crent370/clib/atoi.c | 8 - src/crent370/clib/atoi.o | 0 src/crent370/clib/atoi.s | 52 - src/crent370/clib/atol.c | 8 - src/crent370/clib/atol.o | 0 src/crent370/clib/atol.s | 52 - src/crent370/clib/bcopy.c | 18 - src/crent370/clib/bcopy.o | 0 src/crent370/clib/bcopy.s | 86 - src/crent370/clib/bsearch.c | 33 - src/crent370/clib/bsearch.o | 0 src/crent370/clib/bsearch.s | 84 - src/crent370/clib/calloc.c | 28 - src/crent370/clib/calloc.o | 0 src/crent370/clib/calloc.s | 69 - src/crent370/clib/ceil.c | 31 - src/crent370/clib/ceil.o | 0 src/crent370/clib/ceil.s | 65 - src/crent370/clib/cib | 45 - src/crent370/clib/clearerr.c | 9 - src/crent370/clib/clearerr.o | 0 src/crent370/clib/clearerr.s | 48 - src/crent370/clib/clib.c | 35 - src/crent370/clib/clibary.c | 21 - src/crent370/clib/clibary.o | 0 src/crent370/clib/clibary.s | 27 - src/crent370/clib/cliblock.c | 20 - src/crent370/clib/clock.c | 31 - src/crent370/clib/clock.o | 0 src/crent370/clib/clock.s | 47 - src/crent370/clib/cos.c | 71 - src/crent370/clib/cos.o | 0 src/crent370/clib/cos.s | 89 - src/crent370/clib/cosh.c | 44 - src/crent370/clib/cosh.o | 0 src/crent370/clib/cosh.s | 54 - src/crent370/clib/ctime.c | 31 - src/crent370/clib/ctime.o | 0 src/crent370/clib/ctime.s | 54 - src/crent370/clib/difftime.c | 31 - src/crent370/clib/difftime.o | 0 src/crent370/clib/difftime.s | 57 - src/crent370/clib/div.c | 13 - src/crent370/clib/div.o | 0 src/crent370/clib/div.s | 65 - src/crent370/clib/exit.c | 12 - src/crent370/clib/exit.o | 0 src/crent370/clib/exit.s | 50 - src/crent370/clib/exp.c | 53 - src/crent370/clib/exp.o | 0 src/crent370/clib/exp.s | 68 - src/crent370/clib/fabs.c | 31 - src/crent370/clib/fabs.o | 0 src/crent370/clib/fabs.s | 48 - src/crent370/clib/fclose.c | 63 - src/crent370/clib/fclose.o | 0 src/crent370/clib/fclose.s | 146 - src/crent370/clib/fctprtf@.c | 19 - src/crent370/clib/fctprtf@.o | 0 src/crent370/clib/fctprtf@.s | 63 - src/crent370/clib/feof.c | 15 - src/crent370/clib/feof.o | 0 src/crent370/clib/feof.s | 50 - src/crent370/clib/ferror.c | 15 - src/crent370/clib/ferror.o | 0 src/crent370/clib/ferror.s | 51 - src/crent370/clib/fflush.c | 17 - src/crent370/clib/fflush.o | 0 src/crent370/clib/fflush.s | 63 - src/crent370/clib/fgetc.c | 17 - src/crent370/clib/fgetc.o | 0 src/crent370/clib/fgetc.s | 63 - src/crent370/clib/fgetpos.c | 9 - src/crent370/clib/fgetpos.o | 0 src/crent370/clib/fgetpos.s | 53 - src/crent370/clib/fgets.c | 15 - src/crent370/clib/fgets.o | 0 src/crent370/clib/fgets.s | 66 - src/crent370/clib/floor.c | 38 - src/crent370/clib/floor.o | 0 src/crent370/clib/floor.s | 73 - src/crent370/clib/fmod.c | 27 - src/crent370/clib/fmod.o | 0 src/crent370/clib/fmod.s | 66 - src/crent370/clib/fopen.c | 161 - src/crent370/clib/fopen.o | 0 src/crent370/clib/fopen.s | 412 -- src/crent370/clib/fprintf.c | 24 - src/crent370/clib/fprintf.o | 0 src/crent370/clib/fprintf.s | 68 - src/crent370/clib/fputc.c | 17 - src/crent370/clib/fputc.o | 0 src/crent370/clib/fputc.s | 64 - src/crent370/clib/fputs.c | 17 - src/crent370/clib/fputs.o | 0 src/crent370/clib/fputs.s | 64 - src/crent370/clib/fread.c | 17 - src/crent370/clib/fread.o | 0 src/crent370/clib/fread.s | 66 - src/crent370/clib/free.c | 58 - src/crent370/clib/free.o | 0 src/crent370/clib/free.s | 54 - src/crent370/clib/freopen.c | 17 - src/crent370/clib/freopen.o | 0 src/crent370/clib/freopen.s | 65 - src/crent370/clib/frexp.c | 59 - src/crent370/clib/frexp.o | 0 src/crent370/clib/frexp.s | 103 - src/crent370/clib/fscanf.c | 15 - src/crent370/clib/fscanf.o | 0 src/crent370/clib/fscanf.s | 54 - src/crent370/clib/fseek.c | 17 - src/crent370/clib/fseek.o | 0 src/crent370/clib/fseek.s | 65 - src/crent370/clib/fsetpos.c | 8 - src/crent370/clib/fsetpos.o | 0 src/crent370/clib/fsetpos.s | 53 - src/crent370/clib/ftell.c | 8 - src/crent370/clib/ftell.o | 0 src/crent370/clib/ftell.s | 48 - src/crent370/clib/fwrite.c | 17 - src/crent370/clib/fwrite.o | 0 src/crent370/clib/fwrite.s | 66 - src/crent370/clib/getc.c | 15 - src/crent370/clib/getc.o | 0 src/crent370/clib/getc.s | 50 - src/crent370/clib/getchar.c | 15 - src/crent370/clib/getchar.o | 0 src/crent370/clib/getchar.s | 53 - src/crent370/clib/getenv.c | 21 - src/crent370/clib/getenv.o | 0 src/crent370/clib/getenv.s | 70 - src/crent370/clib/getenvi.c | 21 - src/crent370/clib/getenvi.o | 0 src/crent370/clib/getenvi.s | 70 - src/crent370/clib/getmain.c | 154 - src/crent370/clib/getmain.o | 0 src/crent370/clib/getmain.s | 205 - src/crent370/clib/gets.c | 17 - src/crent370/clib/gets.o | 0 src/crent370/clib/gets.s | 69 - src/crent370/clib/gmtime.c | 56 - src/crent370/clib/gmtime.o | 0 src/crent370/clib/gmtime.s | 55 - src/crent370/clib/gmtime64.c | 74 - src/crent370/clib/gmtimer.c | 78 - src/crent370/clib/gmtimer.o | 0 src/crent370/clib/gmtimer.s | 268 - src/crent370/clib/hello.c | 45 - src/crent370/clib/hello.o | 0 src/crent370/clib/hello.s | 176 - src/crent370/clib/idcams.c | 208 - src/crent370/clib/idcams.o | 0 src/crent370/clib/idcams.s | 256 - src/crent370/clib/iefssreq.c | 21 - src/crent370/clib/iefssreq.o | 0 src/crent370/clib/iefssreq.s | 60 - src/crent370/clib/ikjct441.c | 53 - src/crent370/clib/ikjct441.o | 0 src/crent370/clib/ikjct441.s | 101 - src/crent370/clib/initssob.c | 15 - src/crent370/clib/initssob.o | 0 src/crent370/clib/initssob.s | 69 - src/crent370/clib/isalnum.c | 11 - src/crent370/clib/isalnum.o | 0 src/crent370/clib/isalnum.s | 53 - src/crent370/clib/isalpha.c | 11 - src/crent370/clib/isalpha.o | 0 src/crent370/clib/isalpha.s | 53 - src/crent370/clib/iscntrl.c | 11 - src/crent370/clib/iscntrl.o | 0 src/crent370/clib/iscntrl.s | 53 - src/crent370/clib/isdigit.c | 11 - src/crent370/clib/isdigit.o | 0 src/crent370/clib/isdigit.s | 53 - src/crent370/clib/isgraph.c | 11 - src/crent370/clib/isgraph.o | 0 src/crent370/clib/isgraph.s | 53 - src/crent370/clib/islower.c | 11 - src/crent370/clib/islower.o | 0 src/crent370/clib/islower.s | 53 - src/crent370/clib/isprint.c | 11 - src/crent370/clib/isprint.o | 0 src/crent370/clib/isprint.s | 53 - src/crent370/clib/ispunct.c | 11 - src/crent370/clib/ispunct.o | 0 src/crent370/clib/ispunct.s | 53 - src/crent370/clib/isspace.c | 11 - src/crent370/clib/isspace.o | 0 src/crent370/clib/isspace.s | 53 - src/crent370/clib/isupper.c | 11 - src/crent370/clib/isupper.o | 0 src/crent370/clib/isupper.s | 53 - src/crent370/clib/isxdigit.c | 11 - src/crent370/clib/isxdigit.o | 0 src/crent370/clib/isxdigit.s | 53 - src/crent370/clib/labs.c | 15 - src/crent370/clib/labs.o | 0 src/crent370/clib/labs.s | 48 - src/crent370/clib/ldexp.c | 60 - src/crent370/clib/ldexp.o | 0 src/crent370/clib/ldexp.s | 104 - src/crent370/clib/ldiv.c | 13 - src/crent370/clib/ldiv.o | 0 src/crent370/clib/ldiv.s | 65 - src/crent370/clib/loadenv.c | 67 - src/crent370/clib/loadenv.o | 0 src/crent370/clib/loadenv.s | 204 - src/crent370/clib/localtim.c | 34 - src/crent370/clib/localtim.o | 0 src/crent370/clib/localtim.s | 57 - src/crent370/clib/localtmr.c | 34 - src/crent370/clib/localtmr.o | 0 src/crent370/clib/localtmr.s | 58 - src/crent370/clib/log.c | 80 - src/crent370/clib/log.o | 0 src/crent370/clib/log.s | 100 - src/crent370/clib/log10.c | 31 - src/crent370/clib/log10.o | 0 src/crent370/clib/log10.s | 51 - src/crent370/clib/longjmp.c | 35 - src/crent370/clib/longjmp.o | 0 src/crent370/clib/longjmp.s | 57 - src/crent370/clib/makefile | 648 --- src/crent370/clib/malloc.c | 92 - src/crent370/clib/malloc.o | 0 src/crent370/clib/malloc.s | 73 - src/crent370/clib/mblen.c | 17 - src/crent370/clib/mblen.o | 0 src/crent370/clib/mblen.s | 57 - src/crent370/clib/mbstowcs.c | 14 - src/crent370/clib/mbstowcs.o | 0 src/crent370/clib/mbstowcs.s | 69 - src/crent370/clib/mbtowc.c | 20 - src/crent370/clib/mbtowc.o | 0 src/crent370/clib/mbtowc.s | 62 - src/crent370/clib/memchr.c | 22 - src/crent370/clib/memchr.o | 0 src/crent370/clib/memchr.s | 62 - src/crent370/clib/memcmp.c | 24 - src/crent370/clib/memcmp.o | 0 src/crent370/clib/memcmp.s | 75 - src/crent370/clib/memcpy.c | 80 - src/crent370/clib/memcpy.o | 0 src/crent370/clib/memcpy.s | 53 - src/crent370/clib/memcpyp.c | 22 - src/crent370/clib/memcpyp.o | 0 src/crent370/clib/memcpyp.s | 78 - src/crent370/clib/memmove.c | 32 - src/crent370/clib/memmove.o | 0 src/crent370/clib/memmove.s | 80 - src/crent370/clib/memset.c | 41 - src/crent370/clib/mktime.c | 51 - src/crent370/clib/mktime.o | 0 src/crent370/clib/mktime.s | 91 - src/crent370/clib/mktime64.c | 48 - src/crent370/clib/mktime64.o | 0 src/crent370/clib/modf.c | 47 - src/crent370/clib/modf.o | 0 src/crent370/clib/modf.s | 76 - src/crent370/clib/mtxavail.c | 10 - src/crent370/clib/mtxavail.o | 0 src/crent370/clib/mtxavail.s | 56 - src/crent370/clib/mtxclup.c | 21 - src/crent370/clib/mtxclup.o | 0 src/crent370/clib/mtxclup.s | 100 - src/crent370/clib/mtxfree.c | 27 - src/crent370/clib/mtxfree.o | 0 src/crent370/clib/mtxfree.s | 71 - src/crent370/clib/mtxheld.c | 13 - src/crent370/clib/mtxheld.o | 0 src/crent370/clib/mtxheld.s | 58 - src/crent370/clib/mtxinit.c | 12 - src/crent370/clib/mtxinit.o | 0 src/crent370/clib/mtxinit.s | 49 - src/crent370/clib/mtxlock.c | 25 - src/crent370/clib/mtxlock.o | 0 src/crent370/clib/mtxlock.s | 74 - src/crent370/clib/mtxnew.c | 15 - src/crent370/clib/mtxnew.o | 0 src/crent370/clib/mtxnew.s | 60 - src/crent370/clib/mtxnheld.c | 13 - src/crent370/clib/mtxnheld.o | 0 src/crent370/clib/mtxnheld.s | 59 - src/crent370/clib/mtxtry.c | 29 - src/crent370/clib/mtxtry.o | 0 src/crent370/clib/mtxtry.s | 82 - src/crent370/clib/mtxunlk.c | 31 - src/crent370/clib/mtxunlk.o | 0 src/crent370/clib/mtxunlk.s | 102 - src/crent370/clib/on@exit.c | 21 - src/crent370/clib/on@exit.o | 0 src/crent370/clib/on@exit.s | 78 - src/crent370/clib/perror.c | 24 - src/crent370/clib/perror.o | 0 src/crent370/clib/perror.s | 105 - src/crent370/clib/pow.c | 59 - src/crent370/clib/pow.o | 0 src/crent370/clib/pow.s | 119 - src/crent370/clib/printf.c | 14 - src/crent370/clib/printf.o | 0 src/crent370/clib/printf.s | 56 - src/crent370/clib/printf@.c | 16 - src/crent370/clib/printf@.o | 0 src/crent370/clib/printf@.s | 61 - src/crent370/clib/putc.c | 15 - src/crent370/clib/putc.o | 0 src/crent370/clib/putc.s | 51 - src/crent370/clib/putchar.c | 15 - src/crent370/clib/putchar.o | 0 src/crent370/clib/putchar.s | 54 - src/crent370/clib/putenv.c | 34 - src/crent370/clib/putenv.o | 0 src/crent370/clib/putenv.s | 73 - src/crent370/clib/puts.c | 15 - src/crent370/clib/puts.o | 0 src/crent370/clib/puts.s | 69 - src/crent370/clib/qsort.c | 74 - src/crent370/clib/qsort.o | 0 src/crent370/clib/qsort.s | 228 - src/crent370/clib/raise.c | 24 - src/crent370/clib/raise.o | 0 src/crent370/clib/raise.s | 64 - src/crent370/clib/rand.c | 18 - src/crent370/clib/rand.o | 0 src/crent370/clib/rand.s | 63 - src/crent370/clib/rclose.c | 27 - src/crent370/clib/rclose.o | 0 src/crent370/clib/rclose.s | 63 - src/crent370/clib/realloc.c | 41 - src/crent370/clib/realloc.o | 0 src/crent370/clib/realloc.s | 86 - src/crent370/clib/remove.c | 31 - src/crent370/clib/remove.o | 0 src/crent370/clib/remove.s | 90 - src/crent370/clib/rename.c | 31 - src/crent370/clib/rename.o | 0 src/crent370/clib/rename.s | 91 - src/crent370/clib/rewind.c | 9 - src/crent370/clib/rewind.o | 0 src/crent370/clib/rewind.s | 52 - src/crent370/clib/ropen.c | 138 - src/crent370/clib/ropen.o | 0 src/crent370/clib/ropen.s | 437 -- src/crent370/clib/rread.c | 27 - src/crent370/clib/rread.o | 0 src/crent370/clib/rread.s | 75 - src/crent370/clib/rwrite.c | 24 - src/crent370/clib/rwrite.o | 0 src/crent370/clib/rwrite.s | 73 - src/crent370/clib/scanf.c | 15 - src/crent370/clib/scanf.o | 0 src/crent370/clib/scanf.s | 57 - src/crent370/clib/setbuf.c | 16 - src/crent370/clib/setbuf.o | 0 src/crent370/clib/setbuf.s | 64 - src/crent370/clib/setenv.c | 83 - src/crent370/clib/setenv.o | 0 src/crent370/clib/setenv.s | 212 - src/crent370/clib/setenvi.c | 16 - src/crent370/clib/setenvi.o | 0 src/crent370/clib/setenvi.s | 62 - src/crent370/clib/setlocal.c | 60 - src/crent370/clib/setlocal.o | 0 src/crent370/clib/setlocal.s | 124 - src/crent370/clib/setvbuf.c | 9 - src/crent370/clib/setvbuf.o | 0 src/crent370/clib/setvbuf.s | 47 - src/crent370/clib/signal.c | 25 - src/crent370/clib/signal.o | 0 src/crent370/clib/signal.s | 61 - src/crent370/clib/sin.c | 73 - src/crent370/clib/sin.o | 0 src/crent370/clib/sin.s | 91 - src/crent370/clib/sinh.c | 44 - src/crent370/clib/sinh.o | 0 src/crent370/clib/sinh.s | 54 - src/crent370/clib/sleep.c | 31 - src/crent370/clib/sleep.o | 0 src/crent370/clib/sleep.s | 61 - src/crent370/clib/snprintf.c | 16 - src/crent370/clib/snprintf.o | 0 src/crent370/clib/snprintf.s | 54 - src/crent370/clib/snprtf@.c | 16 - src/crent370/clib/snprtf@.o | 0 src/crent370/clib/snprtf@.s | 60 - src/crent370/clib/sprintf.c | 14 - src/crent370/clib/sprintf.o | 0 src/crent370/clib/sprintf.s | 53 - src/crent370/clib/sprintf@.c | 15 - src/crent370/clib/sprintf@.o | 0 src/crent370/clib/sprintf@.s | 60 - src/crent370/clib/sqrt.c | 85 - src/crent370/clib/sqrt.o | 0 src/crent370/clib/sqrt.s | 136 - src/crent370/clib/srand.c | 15 - src/crent370/clib/srand.o | 0 src/crent370/clib/srand.s | 53 - src/crent370/clib/sscanf.c | 15 - src/crent370/clib/sscanf.o | 0 src/crent370/clib/sscanf.s | 54 - src/crent370/clib/stdio.c | 55 - src/crent370/clib/stdlib.c | 25 - src/crent370/clib/strcat.c | 21 - src/crent370/clib/strcat.o | 0 src/crent370/clib/strcat.s | 70 - src/crent370/clib/strchr.c | 18 - src/crent370/clib/strchr.o | 0 src/crent370/clib/strchr.s | 63 - src/crent370/clib/strcmp.c | 25 - src/crent370/clib/strcmp.o | 0 src/crent370/clib/strcmp.s | 75 - src/crent370/clib/strcoll.c | 12 - src/crent370/clib/strcoll.o | 0 src/crent370/clib/strcoll.s | 51 - src/crent370/clib/strcpy.c | 15 - src/crent370/clib/strcpy.o | 0 src/crent370/clib/strcpy.s | 56 - src/crent370/clib/strcpyp.c | 23 - src/crent370/clib/strcpyp.o | 0 src/crent370/clib/strcpyp.s | 89 - src/crent370/clib/strcspn.c | 25 - src/crent370/clib/strcspn.o | 0 src/crent370/clib/strcspn.s | 72 - src/crent370/clib/strdup.c | 17 - src/crent370/clib/strdup.o | 0 src/crent370/clib/strdup.s | 73 - src/crent370/clib/strerror.c | 156 - src/crent370/clib/strerror.o | 0 src/crent370/clib/strerror.s | 523 -- src/crent370/clib/strftime.c | 331 -- src/crent370/clib/strftime.o | 0 src/crent370/clib/strftime.s | 824 --- src/crent370/clib/stricmp.c | 30 - src/crent370/clib/stricmp.o | 0 src/crent370/clib/stricmp.s | 81 - src/crent370/clib/string.c | 33 - src/crent370/clib/strlen.c | 16 - src/crent370/clib/strlen.o | 0 src/crent370/clib/strlen.s | 58 - src/crent370/clib/strncat.c | 25 - src/crent370/clib/strncat.o | 0 src/crent370/clib/strncat.s | 78 - src/crent370/clib/strncmp.c | 25 - src/crent370/clib/strncmp.o | 0 src/crent370/clib/strncmp.s | 75 - src/crent370/clib/strncmpi.c | 30 - src/crent370/clib/strncmpi.o | 0 src/crent370/clib/strncmpi.s | 82 - src/crent370/clib/strncpy.c | 26 - src/crent370/clib/strncpy.o | 0 src/crent370/clib/strncpy.s | 73 - src/crent370/clib/strpbrk.c | 25 - src/crent370/clib/strpbrk.o | 0 src/crent370/clib/strpbrk.s | 72 - src/crent370/clib/strrchr.c | 20 - src/crent370/clib/strrchr.o | 0 src/crent370/clib/strrchr.s | 64 - src/crent370/clib/strspn.c | 27 - src/crent370/clib/strspn.o | 0 src/crent370/clib/strspn.s | 79 - src/crent370/clib/strstr.c | 33 - src/crent370/clib/strstr.o | 0 src/crent370/clib/strstr.s | 80 - src/crent370/clib/strtod.c | 86 - src/crent370/clib/strtod.o | 0 src/crent370/clib/strtod.s | 224 - src/crent370/clib/strtok.c | 42 - src/crent370/clib/strtok.o | 0 src/crent370/clib/strtok.s | 110 - src/crent370/clib/strtol.c | 33 - src/crent370/clib/strtol.o | 0 src/crent370/clib/strtol.s | 89 - src/crent370/clib/strtoul.c | 69 - src/crent370/clib/strtoul.o | 0 src/crent370/clib/strtoul.s | 164 - src/crent370/clib/strxfrm.c | 19 - src/crent370/clib/strxfrm.o | 0 src/crent370/clib/strxfrm.s | 65 - src/crent370/clib/svcmain.c | 70 - src/crent370/clib/svcmain.o | 0 src/crent370/clib/svcmain.s | 117 - src/crent370/clib/system.c | 49 - src/crent370/clib/system.o | 0 src/crent370/clib/system.s | 122 - src/crent370/clib/tan.c | 50 - src/crent370/clib/tan.o | 0 src/crent370/clib/tan.s | 72 - src/crent370/clib/tanh.c | 38 - src/crent370/clib/tanh.o | 0 src/crent370/clib/tanh.s | 57 - src/crent370/clib/testlstv.c | 50 - src/crent370/clib/testlstv.o | 0 src/crent370/clib/testlstv.s | 244 - src/crent370/clib/time.c | 40 - src/crent370/clib/time.o | 0 src/crent370/clib/time.s | 56 - src/crent370/clib/tmpfile.c | 12 - src/crent370/clib/tmpfile.o | 0 src/crent370/clib/tmpfile.s | 59 - src/crent370/clib/tmpnam.c | 28 - src/crent370/clib/tmpnam.o | 0 src/crent370/clib/tmpnam.s | 98 - src/crent370/clib/tolower.c | 11 - src/crent370/clib/tolower.o | 0 src/crent370/clib/tolower.s | 51 - src/crent370/clib/toupper.c | 11 - src/crent370/clib/toupper.o | 0 src/crent370/clib/toupper.s | 51 - src/crent370/clib/tsocmd.c | 79 - src/crent370/clib/tsocmd.o | 0 src/crent370/clib/tsocmd.s | 229 - src/crent370/clib/tsocmdf.c | 17 - src/crent370/clib/tsocmdf.o | 0 src/crent370/clib/tsocmdf.s | 60 - src/crent370/clib/tzset.c | 92 - src/crent370/clib/tzset.o | 0 src/crent370/clib/tzset.s | 207 - src/crent370/clib/ungetc.c | 20 - src/crent370/clib/ungetc.o | 0 src/crent370/clib/ungetc.s | 73 - src/crent370/clib/unsetenv.c | 40 - src/crent370/clib/unsetenv.o | 0 src/crent370/clib/unsetenv.s | 118 - src/crent370/clib/usleep.c | 15 - src/crent370/clib/usleep.o | 0 src/crent370/clib/usleep.s | 59 - src/crent370/clib/vfprintf.c | 12 - src/crent370/clib/vfprintf.o | 0 src/crent370/clib/vfprintf.s | 53 - src/crent370/clib/vscinv.c | 21 - src/crent370/clib/vscinv.o | 0 src/crent370/clib/vscinv.s | 63 - src/crent370/clib/vsclear.c | 21 - src/crent370/clib/vsclear.o | 0 src/crent370/clib/vsclear.s | 63 - src/crent370/clib/vsclose.c | 21 - src/crent370/clib/vsclose.o | 0 src/crent370/clib/vsclose.s | 63 - src/crent370/clib/vsdelete.c | 21 - src/crent370/clib/vsdelete.o | 0 src/crent370/clib/vsdelete.s | 65 - src/crent370/clib/vseof.c | 21 - src/crent370/clib/vseof.o | 0 src/crent370/clib/vseof.s | 63 - src/crent370/clib/vserror.c | 21 - src/crent370/clib/vserror.o | 0 src/crent370/clib/vserror.s | 63 - src/crent370/clib/vslrecl.c | 21 - src/crent370/clib/vslrecl.o | 0 src/crent370/clib/vslrecl.s | 63 - src/crent370/clib/vsnprint.c | 485 -- src/crent370/clib/vsnprint.o | 0 src/crent370/clib/vsnprint.s | 292 - src/crent370/clib/vsnprtf@.c | 9 - src/crent370/clib/vsnprtf@.o | 0 src/crent370/clib/vsnprtf@.s | 59 - src/crent370/clib/vsopen.c | 15 - src/crent370/clib/vsopen.o | 0 src/crent370/clib/vsopen.s | 54 - src/crent370/clib/vsprintf.c | 16 - src/crent370/clib/vsprintf.o | 0 src/crent370/clib/vsprintf.s | 59 - src/crent370/clib/vsprtf@.c | 10 - src/crent370/clib/vsprtf@.o | 0 src/crent370/clib/vsprtf@.s | 59 - src/crent370/clib/vsread.c | 21 - src/crent370/clib/vsread.o | 0 src/crent370/clib/vsread.s | 67 - src/crent370/clib/vssteq.c | 21 - src/crent370/clib/vssteq.o | 0 src/crent370/clib/vssteq.s | 67 - src/crent370/clib/vsstge.c | 21 - src/crent370/clib/vsstge.o | 0 src/crent370/clib/vsstge.s | 67 - src/crent370/clib/vstell.c | 22 - src/crent370/clib/vstell.o | 0 src/crent370/clib/vstell.s | 64 - src/crent370/clib/vsupdate.c | 22 - src/crent370/clib/vsupdate.o | 0 src/crent370/clib/vsupdate.s | 66 - src/crent370/clib/vswrite.c | 21 - src/crent370/clib/vswrite.o | 0 src/crent370/clib/vswrite.s | 67 - src/crent370/clib/vvprintf.c | 134 - src/crent370/clib/vvprintf.o | 0 src/crent370/clib/vvprintf.s | 321 -- src/crent370/clib/vvscanf.c | 449 -- src/crent370/clib/vvscanf.o | 0 src/crent370/clib/vvscanf.s | 1219 ----- src/crent370/clib/vwtof.c | 44 - src/crent370/clib/vwtof.o | 0 src/crent370/clib/vwtof.s | 109 - src/crent370/clib/vwtorf.c | 44 - src/crent370/clib/vwtorf.o | 0 src/crent370/clib/vwtorf.s | 111 - src/crent370/clib/wcstombs.c | 14 - src/crent370/clib/wcstombs.o | 0 src/crent370/clib/wcstombs.s | 69 - src/crent370/clib/wctomb.c | 14 - src/crent370/clib/wctomb.o | 0 src/crent370/clib/wctomb.s | 56 - src/crent370/clib/wto.c | 55 - src/crent370/clib/wto.o | 0 src/crent370/clib/wto.s | 135 - src/crent370/clib/wtodump.c | 49 - src/crent370/clib/wtodump.o | 0 src/crent370/clib/wtodump.s | 197 - src/crent370/clib/wtodumpf.c | 21 - src/crent370/clib/wtodumpf.o | 0 src/crent370/clib/wtodumpf.s | 61 - src/crent370/clib/wtof.c | 20 - src/crent370/clib/wtof.o | 0 src/crent370/clib/wtof.s | 52 - src/crent370/clib/wtoline.c | 23 - src/crent370/clib/wtoline.o | 0 src/crent370/clib/wtoline.s | 49 - src/crent370/clib/wtor.c | 54 - src/crent370/clib/wtor.o | 0 src/crent370/clib/wtor.s | 102 - src/crent370/clib/wtorf.c | 20 - src/crent370/clib/wtorf.o | 0 src/crent370/clib/wtorf.s | 54 - src/crent370/crypto/bfishdec.c | 57 - src/crent370/crypto/bfishdec.o | 0 src/crent370/crypto/bfishdec.s | 431 -- src/crent370/crypto/bfishenc.c | 58 - src/crent370/crypto/bfishenc.o | 0 src/crent370/crypto/bfishenc.s | 431 -- src/crent370/crypto/bfishkey.c | 197 - src/crent370/crypto/bfishkey.o | 0 src/crent370/crypto/bfishkey.s | 1360 ----- src/crent370/crypto/makefile | 67 - src/crent370/crypto/sha256.c | 124 - src/crent370/crypto/sha256.o | 0 src/crent370/crypto/sha256.s | 696 --- src/crent370/crypto/sha256f.c | 75 - src/crent370/crypto/sha256f.o | 0 src/crent370/crypto/sha256f.s | 129 - src/crent370/crypto/sha256i.c | 32 - src/crent370/crypto/sha256i.o | 0 src/crent370/crypto/sha256i.s | 61 - src/crent370/crypto/sha256t.c | 83 - src/crent370/crypto/sha256t.o | 0 src/crent370/crypto/sha256t.s | 297 -- src/crent370/crypto/sha256u.c | 33 - src/crent370/crypto/sha256u.o | 0 src/crent370/crypto/sha256u.s | 81 - src/crent370/dyn75/@@75.c | 77 - src/crent370/dyn75/@@75acce.c | 73 - src/crent370/dyn75/@@75bind.c | 73 - src/crent370/dyn75/@@75clos.c | 30 - src/crent370/dyn75/@@75conn.c | 86 - src/crent370/dyn75/@@75exit.c | 30 - src/crent370/dyn75/@@75gabn.c | 35 - src/crent370/dyn75/@@75ghba.c | 72 - src/crent370/dyn75/@@75ghbn.c | 56 - src/crent370/dyn75/@@75init.c | 39 - src/crent370/dyn75/@@75ioct.c | 60 - src/crent370/dyn75/@@75list.c | 44 - src/crent370/dyn75/@@75pnam.c | 55 - src/crent370/dyn75/@@75recv.c | 46 - src/crent370/dyn75/@@75sele.c | 28 - src/crent370/dyn75/@@75selx.c | 190 - src/crent370/dyn75/@@75send.c | 51 - src/crent370/dyn75/@@75snam.c | 60 - src/crent370/dyn75/@@75sock.c | 58 - src/crent370/dyn75/@@75vect.c | 49 - src/crent370/dyn75/asc2ebc.c | 36 - src/crent370/dyn75/ebc2asc.c | 35 - src/crent370/emfile/@@emamod.c | 49 - src/crent370/emfile/@@emamod.o | 0 src/crent370/emfile/@@emamod.s | 149 - src/crent370/emfile/@@emanew.c | 100 - src/crent370/emfile/@@emanew.o | 0 src/crent370/emfile/@@emanew.s | 276 - src/crent370/emfile/@@emaold.c | 50 - src/crent370/emfile/@@emaold.o | 0 src/crent370/emfile/@@emaold.s | 153 - src/crent370/emfile/@@emashr.c | 50 - src/crent370/emfile/@@emashr.o | 0 src/crent370/emfile/@@emashr.s | 153 - src/crent370/emfile/@@emchdr.c | 24 - src/crent370/emfile/@@emchdr.o | 0 src/crent370/emfile/@@emchdr.s | 80 - src/crent370/emfile/@@emclos.c | 60 - src/crent370/emfile/@@emclos.o | 0 src/crent370/emfile/@@emclos.s | 186 - src/crent370/emfile/@@emcrea.c | 60 - src/crent370/emfile/@@emcrea.o | 0 src/crent370/emfile/@@emcrea.s | 185 - src/crent370/emfile/@@emcsiz.c | 88 - src/crent370/emfile/@@emcsiz.o | 0 src/crent370/emfile/@@emcsiz.s | 201 - src/crent370/emfile/@@emdump.c | 91 - src/crent370/emfile/@@emdump.o | 0 src/crent370/emfile/@@emdump.s | 478 -- src/crent370/emfile/@@emflus.c | 21 - src/crent370/emfile/@@emflus.o | 0 src/crent370/emfile/@@emflus.s | 64 - src/crent370/emfile/@@emfull.c | 119 - src/crent370/emfile/@@emfull.o | 0 src/crent370/emfile/@@emfull.s | 397 -- src/crent370/emfile/@@emgerr.c | 16 - src/crent370/emfile/@@emgerr.o | 0 src/crent370/emfile/@@emgerr.s | 74 - src/crent370/emfile/@@emgetc.c | 23 - src/crent370/emfile/@@emgetc.o | 0 src/crent370/emfile/@@emgetc.s | 65 - src/crent370/emfile/@@emgets.c | 32 - src/crent370/emfile/@@emgets.o | 0 src/crent370/emfile/@@emgets.s | 78 - src/crent370/emfile/@@emgpos.c | 20 - src/crent370/emfile/@@emgpos.o | 0 src/crent370/emfile/@@emgpos.s | 84 - src/crent370/emfile/@@emgrow.c | 144 - src/crent370/emfile/@@emgrow.o | 0 src/crent370/emfile/@@emgrow.s | 379 -- src/crent370/emfile/@@emgwsa.c | 19 - src/crent370/emfile/@@emgwsa.o | 0 src/crent370/emfile/@@emgwsa.s | 60 - src/crent370/emfile/@@eminit.c | 74 - src/crent370/emfile/@@eminit.o | 0 src/crent370/emfile/@@eminit.s | 247 - src/crent370/emfile/@@emobpo.c | 26 - src/crent370/emfile/@@emobpo.o | 0 src/crent370/emfile/@@emobpo.s | 76 - src/crent370/emfile/@@emopen.c | 123 - src/crent370/emfile/@@emopen.o | 0 src/crent370/emfile/@@emopen.s | 303 -- src/crent370/emfile/@@emprtf.c | 16 - src/crent370/emfile/@@emprtf.o | 0 src/crent370/emfile/@@emprtf.s | 53 - src/crent370/emfile/@@emputc.c | 29 - src/crent370/emfile/@@emputc.o | 0 src/crent370/emfile/@@emputc.s | 97 - src/crent370/emfile/@@emputs.c | 22 - src/crent370/emfile/@@emputs.o | 0 src/crent370/emfile/@@emputs.s | 93 - src/crent370/emfile/@@emrblk.c | 106 - src/crent370/emfile/@@emrblk.o | 0 src/crent370/emfile/@@emrblk.s | 210 - src/crent370/emfile/@@emrbyt.c | 115 - src/crent370/emfile/@@emrbyt.o | 0 src/crent370/emfile/@@emrbyt.s | 243 - src/crent370/emfile/@@emrhdr.c | 36 - src/crent370/emfile/@@emrhdr.o | 0 src/crent370/emfile/@@emrhdr.s | 100 - src/crent370/emfile/@@emscfg.c | 61 - src/crent370/emfile/@@emscfg.o | 0 src/crent370/emfile/@@emscfg.s | 125 - src/crent370/emfile/@@emsddn.c | 14 - src/crent370/emfile/@@emsddn.o | 0 src/crent370/emfile/@@emsddn.s | 72 - src/crent370/emfile/@@emsdsn.c | 15 - src/crent370/emfile/@@emsdsn.o | 0 src/crent370/emfile/@@emsdsn.s | 74 - src/crent370/emfile/@@emseek.c | 117 - src/crent370/emfile/@@emseek.o | 0 src/crent370/emfile/@@emseek.s | 227 - src/crent370/emfile/@@emsetu.c | 136 - src/crent370/emfile/@@emsetu.o | 0 src/crent370/emfile/@@emsetu.s | 295 -- src/crent370/emfile/@@emspos.c | 31 - src/crent370/emfile/@@emspos.o | 0 src/crent370/emfile/@@emspos.s | 101 - src/crent370/emfile/@@emsvol.c | 46 - src/crent370/emfile/@@emsvol.o | 0 src/crent370/emfile/@@emsvol.s | 152 - src/crent370/emfile/@@emsync.c | 24 - src/crent370/emfile/@@emsync.o | 0 src/crent370/emfile/@@emsync.s | 65 - src/crent370/emfile/@@emte64.c | 17 - src/crent370/emfile/@@emte64.o | 0 src/crent370/emfile/@@emte64.s | 64 - src/crent370/emfile/@@emtell.c | 25 - src/crent370/emfile/@@emtell.o | 0 src/crent370/emfile/@@emtell.s | 73 - src/crent370/emfile/@@emtest.c | 99 - src/crent370/emfile/@@emtest.o | 0 src/crent370/emfile/@@emtest.s | 296 -- src/crent370/emfile/@@emtrun.c | 85 - src/crent370/emfile/@@emtrun.o | 0 src/crent370/emfile/@@emtrun.s | 237 - src/crent370/emfile/@@emunal.c | 41 - src/crent370/emfile/@@emunal.o | 0 src/crent370/emfile/@@emunal.s | 138 - src/crent370/emfile/@@emvali.c | 53 - src/crent370/emfile/@@emvali.o | 0 src/crent370/emfile/@@emvali.s | 112 - src/crent370/emfile/@@emvprt.c | 33 - src/crent370/emfile/@@emvprt.o | 0 src/crent370/emfile/@@emvprt.s | 92 - src/crent370/emfile/@@emwblk.c | 38 - src/crent370/emfile/@@emwblk.o | 0 src/crent370/emfile/@@emwblk.s | 114 - src/crent370/emfile/@@emwbyt.c | 69 - src/crent370/emfile/@@emwbyt.o | 0 src/crent370/emfile/@@emwbyt.s | 193 - src/crent370/emfile/@@emwhdr.c | 41 - src/crent370/emfile/@@emwhdr.o | 0 src/crent370/emfile/@@emwhdr.s | 117 - src/crent370/emfile/@@emwrit.c | 31 - src/crent370/emfile/@@emwrit.o | 0 src/crent370/emfile/@@emwrit.s | 105 - src/crent370/emfile/makefile | 110 - src/crent370/include/@@75.h | 29 - src/crent370/include/@@memmgr.h | 101 - src/crent370/include/__75.h | 29 - src/crent370/include/acee.h | 106 - src/crent370/include/assert.h | 25 - src/crent370/include/blowfish.h | 29 - src/crent370/include/cde.h | 72 - src/crent370/include/clib.h | 20 - src/crent370/include/clib64.h | 113 - src/crent370/include/clibary.h | 77 - src/crent370/include/clibauth.h | 20 - src/crent370/include/clibb64.h | 15 - src/crent370/include/clibccw.h | 58 - src/crent370/include/clibcib.h | 47 - src/crent370/include/clibcp.h | 44 - src/crent370/include/clibcrt.h | 71 - src/crent370/include/clibdscb.h | 239 - src/crent370/include/clibecb.h | 34 - src/crent370/include/clibenq.h | 27 - src/crent370/include/clibenv.h | 28 - src/crent370/include/clibgrt.h | 60 - src/crent370/include/clibio.h | 157 - src/crent370/include/clibispf.h | 148 - src/crent370/include/clibjes2.h | 160 - src/crent370/include/clibjpa.h | 45 - src/crent370/include/clibjs.h | 30 - src/crent370/include/cliblink.h | 25 - src/crent370/include/cliblist.h | 300 -- src/crent370/include/cliblock.h | 116 - src/crent370/include/clibmutx.h | 58 - src/crent370/include/clibmz.h | 720 --- src/crent370/include/clibmzi.h | 318 -- src/crent370/include/clibos.h | 164 - src/crent370/include/clibpdf.h | 427 -- src/crent370/include/clibpdfi.h | 287 - src/crent370/include/clibppa.h | 35 - src/crent370/include/clibprtf.h | 17 - src/crent370/include/clibprti.h | 149 - src/crent370/include/clibres.h | 528 -- src/crent370/include/clibsa.h | 69 - src/crent370/include/clibsdwa.h | 603 --- src/crent370/include/clibsmf.h | 239 - src/crent370/include/clibsock.h | 33 - src/crent370/include/clibspl.h | 106 - src/crent370/include/clibsrb.h | 37 - src/crent370/include/clibssct.h | 49 - src/crent370/include/clibssib.h | 13 - src/crent370/include/clibssvt.h | 60 - src/crent370/include/clibstae.h | 31 - src/crent370/include/clibstr.h | 80 - src/crent370/include/clibsvc.h | 39 - src/crent370/include/clibthrd.h | 125 - src/crent370/include/clibtiot.h | 12 - src/crent370/include/clibtmr.h | 128 - src/crent370/include/clibtry.h | 32 - src/crent370/include/clibtso.h | 10 - src/crent370/include/clibvsam.h | 712 --- src/crent370/include/clibwsa.h | 16 - src/crent370/include/clibwto.h | 22 - src/crent370/include/ctype.h | 34 - src/crent370/include/cvt.h | 755 --- src/crent370/include/emfile.h | 160 - src/crent370/include/emfilei.h | 124 - src/crent370/include/enqpl.h | 25 - src/crent370/include/errno.h | 169 - src/crent370/include/float.h | 137 - src/crent370/include/get3.h | 20 - src/crent370/include/hasphct.h | 50 - src/crent370/include/haspiot.h | 65 - src/crent370/include/haspjct.h | 162 - src/crent370/include/haspjoe.h | 90 - src/crent370/include/haspjot.h | 19 - src/crent370/include/haspjqe.h | 48 - src/crent370/include/hasppddb.h | 82 - src/crent370/include/hasppso.h | 116 - src/crent370/include/haspsjb.h | 221 - src/crent370/include/hasptab.h | 21 - src/crent370/include/hasptgm.h | 13 - src/crent370/include/iecvucb.h | 64 - src/crent370/include/iefjesct.h | 36 - src/crent370/include/iefjssib.h | 46 - src/crent370/include/iefsscs.h | 96 - src/crent370/include/iefssobh.h | 38 - src/crent370/include/iefssso.h | 91 - src/crent370/include/ieftiot.h | 158 - src/crent370/include/ieftxtft.h | 96 - src/crent370/include/iefvkeys.h | 154 - src/crent370/include/iezjscb.h | 235 - src/crent370/include/ihaasvt.h | 46 - src/crent370/include/ihadva.h | 92 - src/crent370/include/ihalpde.h | 46 - src/crent370/include/iharb.h | 312 -- src/crent370/include/ihascvt.h | 115 - src/crent370/include/ihasrb.h | 44 - src/crent370/include/ihaxtlst.h | 30 - src/crent370/include/ikjcppl.h | 23 - src/crent370/include/ikject.h | 39 - src/crent370/include/ikjpscb.h | 54 - src/crent370/include/ikjtcb.h | 776 --- src/crent370/include/ikjupt.h | 31 - src/crent370/include/limits.h | 40 - src/crent370/include/locale.h | 48 - src/crent370/include/math.h | 95 - src/crent370/include/miniz.h | 473 -- src/crent370/include/miniz_common.h | 104 - src/crent370/include/miniz_tdef.h | 191 - src/crent370/include/miniz_tinfl.h | 146 - src/crent370/include/miniz_zip.h | 436 -- .../include/miniz_zip.h:zone.identifier:$data | 3 - src/crent370/include/modmap.h | 281 - src/crent370/include/mvssupa.h | 41 - src/crent370/include/osdcb.h | 673 --- src/crent370/include/osdeb.h | 737 --- src/crent370/include/osdecb.h | 39 - src/crent370/include/osio.h | 81 - src/crent370/include/osiob.h | 329 -- src/crent370/include/osjfcb.h | 607 --- src/crent370/include/racf.h | 48 - src/crent370/include/racheck.h | 43 - src/crent370/include/racinit.h | 34 - src/crent370/include/rb99.h | 91 - src/crent370/include/rfile.h | 47 - src/crent370/include/safp.h | 31 - src/crent370/include/safv.h | 27 - src/crent370/include/setjmp.h | 25 - src/crent370/include/sha256.h | 28 - src/crent370/include/signal.h | 39 - src/crent370/include/socket.h | 311 -- src/crent370/include/stdarg.h | 45 - src/crent370/include/stddef.h | 45 - src/crent370/include/stdint.h | 655 --- src/crent370/include/stdio.h | 15 - src/crent370/include/stdlib.h | 99 - src/crent370/include/string.h | 6 - src/crent370/include/svc99.h | 206 - src/crent370/include/time.h | 60 - src/crent370/include/time64.h | 105 - src/crent370/include/trkcalc.h | 26 - src/crent370/include/txt99.h | 251 - src/crent370/jes/file.txt | 14 - src/crent370/jes/jescanj.c | 38 - src/crent370/jes/jescanj.o | 0 src/crent370/jes/jescanj.s | 124 - src/crent370/jes/jesclose.c | 43 - src/crent370/jes/jesclose.o | 0 src/crent370/jes/jesclose.s | 115 - src/crent370/jes/jesdelj.c | 41 - src/crent370/jes/jesdelj.o | 0 src/crent370/jes/jesdelj.s | 137 - src/crent370/jes/jesjob.c | 760 --- src/crent370/jes/jesjob.o | 0 src/crent370/jes/jesjob.s | 2544 --------- src/crent370/jes/jesjobf1.c | 36 - src/crent370/jes/jesjobf1.o | 0 src/crent370/jes/jesjobf1.s | 103 - src/crent370/jes/jesjobfr.c | 37 - src/crent370/jes/jesjobfr.o | 0 src/crent370/jes/jesjobfr.s | 72 - src/crent370/jes/jesopen.c | 61 - src/crent370/jes/jesopen.o | 0 src/crent370/jes/jesopen.s | 150 - src/crent370/jes/jesprint.c | 252 - src/crent370/jes/jesprint.o | 0 src/crent370/jes/jesprint.s | 492 -- src/crent370/jes/jesreque.c | 47 - src/crent370/jes/jesreque.o | 0 src/crent370/jes/jesreque.s | 157 - src/crent370/jes/jesxdone.c | 24 - src/crent370/jes/jesxdone.o | 0 src/crent370/jes/jesxdone.s | 50 - src/crent370/jes/jesxwrtr.c | 58 - src/crent370/jes/jesxwrtr.o | 0 src/crent370/jes/jesxwrtr.s | 168 - src/crent370/jes/josjobfr.c | 36 - src/crent370/jes/josjobfr.o | 0 src/crent370/jes/josjobfr.s | 72 - src/crent370/jes/makefile | 66 - src/crent370/maclib/clibcrt.copy | 37 - src/crent370/maclib/clibgrt.copy | 28 - src/crent370/maclib/clibjpa.copy | 9 - src/crent370/maclib/clibppa.copy | 23 - src/crent370/maclib/clibregs.macro | 16 - src/crent370/maclib/clibsupa.copy | 135 - src/crent370/maclib/clibvsfi.copy | 38 - src/crent370/maclib/mvsmacs.macro | 214 - src/crent370/maclib/pdp370.copy | 48 - src/crent370/maclib/pdp380.copy | 49 - src/crent370/maclib/pdp390.copy | 49 - src/crent370/maclib/pdpepil.macro | 22 - src/crent370/maclib/pdpmain.macro | 29 - src/crent370/maclib/pdporig.copy | 52 - src/crent370/maclib/pdpprlg.macro | 42 - src/crent370/maclib/pdptop.copy | 90 - src/crent370/miniz/@@mzadlr.c | 56 - src/crent370/miniz/@@mzcbnd.c | 33 - src/crent370/miniz/@@mzcmp2.c | 58 - src/crent370/miniz/@@mzcmpr.c | 33 - src/crent370/miniz/@@mzcore.c | 1063 ---- src/crent370/miniz/@@mzcrc.c | 117 - src/crent370/miniz/@@mzdalf.c | 33 - src/crent370/miniz/@@mzdbnd.c | 35 - src/crent370/miniz/@@mzdend.c | 40 - src/crent370/miniz/@@mzdflt.c | 85 - src/crent370/miniz/@@mzdfrf.c | 33 - src/crent370/miniz/@@mzdin2.c | 63 - src/crent370/miniz/@@mzdini.c | 32 - src/crent370/miniz/@@mzdref.c | 33 - src/crent370/miniz/@@mzdrst.c | 36 - src/crent370/miniz/@@mzerr.c | 54 - src/crent370/miniz/@@mzfree.c | 32 - src/crent370/miniz/@@mziend.c | 40 - src/crent370/miniz/@@mziin2.c | 64 - src/crent370/miniz/@@mziini.c | 33 - src/crent370/miniz/@@mzinfl.c | 140 - src/crent370/miniz/@@mzucmp.c | 58 - src/crent370/miniz/@@mzvers.c | 32 - src/crent370/miniz/@@tdccfz.c | 49 - src/crent370/miniz/@@tdcm2h.c | 45 - src/crent370/miniz/@@tdcm2m.c | 42 - src/crent370/miniz/@@tdcm2o.c | 44 - src/crent370/miniz/@@tdcmpa.c | 37 - src/crent370/miniz/@@tdcmpb.c | 34 - src/crent370/miniz/@@tdcmpf.c | 34 - src/crent370/miniz/@@tdcmpr.c | 96 - src/crent370/miniz/@@tdgadl.c | 34 - src/crent370/miniz/@@tdgprs.c | 34 - src/crent370/miniz/@@tdinit.c | 63 - src/crent370/miniz/@@tdwi2m.c | 35 - src/crent370/miniz/@@tdwi2x.c | 112 - src/crent370/miniz/@@tidalc.c | 37 - src/crent370/miniz/@@tidcmp.c | 501 -- src/crent370/miniz/@@tidfre.c | 33 - src/crent370/miniz/@@tidm2c.c | 58 - src/crent370/miniz/@@tidm2h.c | 68 - src/crent370/miniz/@@tidm2m.c | 38 - src/crent370/miniz/miniz.c | 604 --- src/crent370/miniz/mztdef.c | 1577 ------ .../miniz/mztdef.c:zone.identifier:$data | 3 - src/crent370/miniz/mztinfl.c | 738 --- .../miniz/mztinfl.c:zone.identifier:$data | 3 - src/crent370/miniz/mzzip.c | 4714 ----------------- src/crent370/modmap/mmapbase.c | 102 - src/crent370/modmap/mmapdump.c | 144 - src/crent370/modmap/mmapflr.c | 32 - src/crent370/modmap/mmapfree.c | 12 - src/crent370/modmap/mmapfrld.c | 11 - src/crent370/modmap/mmapfrlr.c | 11 - src/crent370/modmap/mmapfrrl.c | 11 - src/crent370/modmap/mmapfrsd.c | 38 - src/crent370/modmap/mmapfsd.c | 24 - src/crent370/modmap/mmapnew.c | 14 - src/crent370/modmap/mmapopen.c | 40 - src/crent370/modmap/mmapproc.c | 384 -- src/crent370/modmap/mmaprset.c | 31 - src/crent370/modmap/mmaprsld.c | 24 - src/crent370/modmap/mmapsort.c | 91 - src/crent370/modmap/mmapzap.c | 137 - src/crent370/modmap/modmap.c | 67 - src/crent370/os/osbclose.c | 61 - src/crent370/os/osbdcb.c | 62 - src/crent370/os/osbopen.c | 93 - src/crent370/os/oscheck.c | 27 - src/crent370/os/osdclose.c | 27 - src/crent370/os/osddcb.c | 34 - src/crent370/os/osdopen.c | 61 - src/crent370/os/osdread.c | 25 - src/crent370/os/osdwrite.c | 25 - src/crent370/os/osread.c | 14 - src/crent370/os/oswrite.c | 28 - src/crent370/os/osxcalc.c | 123 - src/crent370/os/osxclose.c | 33 - src/crent370/os/osxdcb.c | 64 - src/crent370/os/osxopen.c | 60 - src/crent370/os/osxread.c | 76 - src/crent370/os/osxwrite.c | 65 - src/crent370/os/rdjfcb.c | 32 - src/crent370/os/trkcalc.c | 32 - src/crent370/pdf/pdfabarc.c | 233 - src/crent370/pdf/pdfabkmk.c | 37 - src/crent370/pdf/pdfacrcl.c | 10 - src/crent370/pdf/pdfaelip.c | 63 - src/crent370/pdf/pdfafply.c | 29 - src/crent370/pdf/pdfafrec.c | 22 - src/crent370/pdf/pdfajpeg.c | 135 - src/crent370/pdf/pdfaline.c | 24 - src/crent370/pdf/pdfapage.c | 18 - src/crent370/pdf/pdfapoly.c | 27 - src/crent370/pdf/pdfappm.c | 85 - src/crent370/pdf/pdfarect.c | 22 - src/crent370/pdf/pdfatext.c | 8 - src/crent370/pdf/pdfatxtw.c | 118 - src/crent370/pdf/pdfcerr.c | 12 - src/crent370/pdf/pdfcrte.c | 68 - src/crent370/pdf/pdfdstr.c | 21 - src/crent370/pdf/pdfgerr.c | 17 - src/crent370/pdf/pdfgftw.c | 20 - src/crent370/pdf/pdfhght.c | 8 - src/crent370/pdf/pdfpgss.c | 16 - src/crent370/pdf/pdfptext.c | 9 - src/crent370/pdf/pdfsave.c | 24 - src/crent370/pdf/pdfscomp.c | 16 - src/crent370/pdf/pdfsdbg.c | 15 - src/crent370/pdf/pdfsfile.c | 306 -- src/crent370/pdf/pdfsfont.c | 30 - src/crent370/pdf/pdftest.c | 203 - src/crent370/pdf/pdfwidth.c | 8 - src/crent370/pdf/pdfx.c | 1050 ---- src/crent370/pdf2/@p2aarra.c | 11 - src/crent370/pdf2/@p2acpl.c | 14 - src/crent370/pdf2/@p2acpm.c | 14 - src/crent370/pdf2/@p2aimg.c | 23 - src/crent370/pdf2/@p2antk.c | 11 - src/crent370/pdf2/@p2antl.c | 12 - src/crent370/pdf2/@p2antn.c | 11 - src/crent370/pdf2/@p2antp.c | 11 - src/crent370/pdf2/@p2anutk.c | 11 - src/crent370/pdf2/@p2anutl.c | 12 - src/crent370/pdf2/@p2anutn.c | 11 - src/crent370/pdf2/@p2anutp.c | 11 - src/crent370/pdf2/@p2apann.c | 14 - src/crent370/pdf2/@p2apcnt.c | 14 - src/crent370/pdf2/@p2apgsp.c | 14 - src/crent370/pdf2/@p2arnf.c | 16 - src/crent370/pdf2/@p2arnx.c | 16 - src/crent370/pdf2/@p2arps.c | 14 - src/crent370/pdf2/@p2as.c | 12 - src/crent370/pdf2/@p2asbar.c | 29 - src/crent370/pdf2/@p2asbt.c | 9 - src/crent370/pdf2/@p2asclr.c | 22 - src/crent370/pdf2/@p2asdec.c | 14 - src/crent370/pdf2/@p2aset.c | 10 - src/crent370/pdf2/@p2asf.c | 21 - src/crent370/pdf2/@p2asfde.c | 14 - src/crent370/pdf2/@p2asffi.c | 14 - src/crent370/pdf2/@p2asfi.c | 35 - src/crent370/pdf2/@p2asfil.c | 14 - src/crent370/pdf2/@p2asflt.c | 14 - src/crent370/pdf2/@p2askv.c | 19 - src/crent370/pdf2/@p2askvf.c | 17 - src/crent370/pdf2/@p2aslt.c | 8 - src/crent370/pdf2/@p2asmt.c | 8 - src/crent370/pdf2/@p2asnsc.c | 15 - src/crent370/pdf2/@p2asrm.c | 8 - src/crent370/pdf2/@p2assc.c | 15 - src/crent370/pdf2/@p2assfo.c | 8 - src/crent370/pdf2/@p2asstf.c | 17 - src/crent370/pdf2/@p2ast.c | 8 - src/crent370/pdf2/@p2astf.c | 16 - src/crent370/pdf2/@p2astle.c | 8 - src/crent370/pdf2/@p2astm.c | 153 - src/crent370/pdf2/@p2astmx.c | 8 - src/crent370/pdf2/@p2asts.c | 43 - src/crent370/pdf2/@p2avnfs.c | 14 - src/crent370/pdf2/@p2avprd.c | 14 - src/crent370/pdf2/@p2bndc.c | 21 - src/crent370/pdf2/@p2bndl.c | 10 - src/crent370/pdf2/@p2bndlp.c | 8 - src/crent370/pdf2/@p2bndp.c | 16 - src/crent370/pdf2/@p2bnds.c | 8 - src/crent370/pdf2/@p2bndt.c | 15 - src/crent370/pdf2/@p2core.c | 88 - src/crent370/pdf2/@p2cspca.c | 10 - src/crent370/pdf2/@p2cspec.c | 17 - src/crent370/pdf2/@p2dstr.c | 19 - src/crent370/pdf2/@p2escap.c | 18 - src/crent370/pdf2/@p2ffont.c | 20 - src/crent370/pdf2/@p2fpdf.c | 12 - src/crent370/pdf2/@p2gcirc.c | 27 - src/crent370/pdf2/@p2gcpth.c | 14 - src/crent370/pdf2/@p2gdl.c | 14 - src/crent370/pdf2/@p2gfcol.c | 21 - src/crent370/pdf2/@p2glinw.c | 14 - src/crent370/pdf2/@p2glnto.c | 14 - src/crent370/pdf2/@p2gmvto.c | 14 - src/crent370/pdf2/@p2grest.c | 14 - src/crent370/pdf2/@p2gsave.c | 14 - src/crent370/pdf2/@p2gscol.c | 20 - src/crent370/pdf2/@p2gsl.c | 14 - src/crent370/pdf2/@p2gstro.c | 14 - src/crent370/pdf2/@p2narra.c | 17 - src/crent370/pdf2/@p2nback.c | 14 - src/crent370/pdf2/@p2nbkmd.c | 63 - src/crent370/pdf2/@p2nbkmk.c | 10 - src/crent370/pdf2/@p2nbkmp.c | 10 - src/crent370/pdf2/@p2nbool.c | 19 - src/crent370/pdf2/@p2ncat.c | 22 - src/crent370/pdf2/@p2ncol.c | 24 - src/crent370/pdf2/@p2ndate.c | 19 - src/crent370/pdf2/@p2ndest.c | 22 - src/crent370/pdf2/@p2nfile.c | 19 - src/crent370/pdf2/@p2nfont.c | 37 - src/crent370/pdf2/@p2nimg.c | 61 - src/crent370/pdf2/@p2ninfo.c | 47 - src/crent370/pdf2/@p2nint.c | 19 - src/crent370/pdf2/@p2nname.c | 19 - src/crent370/pdf2/@p2nnat.c | 19 - src/crent370/pdf2/@p2nnop.c | 21 - src/crent370/pdf2/@p2nnull.c | 17 - src/crent370/pdf2/@p2nnum.c | 19 - src/crent370/pdf2/@p2nnump.c | 20 - src/crent370/pdf2/@p2nnumt.c | 19 - src/crent370/pdf2/@p2nout.c | 20 - src/crent370/pdf2/@p2nouts.c | 26 - src/crent370/pdf2/@p2npag.c | 40 - src/crent370/pdf2/@p2npags.c | 22 - src/crent370/pdf2/@p2npdf.c | 25 - src/crent370/pdf2/@p2nrect.c | 22 - src/crent370/pdf2/@p2nres.c | 18 - src/crent370/pdf2/@p2nsop.c | 21 - src/crent370/pdf2/@p2nstr.c | 20 - src/crent370/pdf2/@p2nstrf.c | 16 - src/crent370/pdf2/@p2nstrm.c | 18 - src/crent370/pdf2/@p2nvprf.c | 24 - src/crent370/pdf2/@p2odef.c | 24 - src/crent370/pdf2/@p2onul.c | 7 - src/crent370/pdf2/@p2out.c | 21 - src/crent370/pdf2/@p2pccmp.c | 15 - src/crent370/pdf2/@p2pfcol.c | 22 - src/crent370/pdf2/@p2sdpag.c | 14 - src/crent370/pdf2/@p2sout.c | 20 - src/crent370/pdf2/@p2stell.c | 12 - src/crent370/pdf2/@p2str.c | 22 - src/crent370/pdf2/@p2strf.c | 16 - src/crent370/pdf2/@p2sudat.c | 12 - src/crent370/pdf2/@p2tdef.c | 12 - src/crent370/pdf2/@p2tell.c | 17 - src/crent370/pdf2/@p2trans.c | 23 - src/crent370/pdf2/pdf.h | 302 -- src/crent370/pdf2/pdfi.h | 415 -- src/crent370/pdfprt/@p3nprt.c | 31 - src/crent370/pdfprt/@p3prout.c | 21 - src/crent370/pdfprt/@p3prtel.c | 15 - src/crent370/pdfprt/pdfprt.h | 89 - src/crent370/racf/makefile | 60 - src/crent370/racf/racauth.c | 151 - src/crent370/racf/racauth.o | 0 src/crent370/racf/racauth.s | 172 - src/crent370/racf/racgacee.c | 17 - src/crent370/racf/racgacee.o | 0 src/crent370/racf/racgacee.s | 36 - src/crent370/racf/raclgout.c | 93 - src/crent370/racf/raclgout.o | 0 src/crent370/racf/raclgout.s | 117 - src/crent370/racf/raclogin.c | 167 - src/crent370/racf/raclogin.o | 0 src/crent370/racf/raclogin.s | 195 - src/crent370/racf/racsacee.c | 64 - src/crent370/racf/racsacee.o | 0 src/crent370/racf/racsacee.s | 79 - src/crent370/resident/resdisp.c | 158 - src/crent370/resident/resident.c | 470 -- src/crent370/resident/resinit.c | 0 src/crent370/resident/resprlg.c | 9 - src/crent370/resident/resprtf.c | 443 -- src/crent370/srb/srbfmain.c | 16 - src/crent370/srb/srbgmain.c | 23 - src/crent370/svc/@@svc.c | 26 - src/crent370/test/date.conversion.untested.c | 668 --- src/crent370/test/makefile | 56 - src/crent370/test/testcvt.c | 20 - src/crent370/test/testfile.c | 179 - src/crent370/test/testlink.c | 54 - src/crent370/test/testload.c | 36 - src/crent370/test/testmutx.c | 51 - src/crent370/test/testprtf.c | 18 - src/crent370/test/teststae.c | 40 - src/crent370/test/testsvc.c | 115 - src/crent370/test/testtime.c | 67 - src/crent370/test/testtime.o | 0 src/crent370/test/testtime.s | 153 - src/crent370/test/testtmr.c | 41 - src/crent370/test/testvsam.c | 76 - src/crent370/test/testwrtr.c | 116 - src/crent370/thdmgr/@@cminit.c | 474 -- src/crent370/thdmgr/@@cminit.o | 0 src/crent370/thdmgr/@@cminit.s | 957 ---- src/crent370/thdmgr/@@cmqadd.c | 44 - src/crent370/thdmgr/@@cmqadd.o | 0 src/crent370/thdmgr/@@cmqadd.s | 92 - src/crent370/thdmgr/@@cmqdel.c | 41 - src/crent370/thdmgr/@@cmqdel.o | 0 src/crent370/thdmgr/@@cmqdel.s | 95 - src/crent370/thdmgr/@@cmterm.c | 135 - src/crent370/thdmgr/@@cmterm.o | 0 src/crent370/thdmgr/@@cmterm.s | 214 - src/crent370/thdmgr/@@cmwadd.c | 48 - src/crent370/thdmgr/@@cmwadd.o | 0 src/crent370/thdmgr/@@cmwadd.s | 114 - src/crent370/thdmgr/@@cmwdel.c | 85 - src/crent370/thdmgr/@@cmwdel.o | 0 src/crent370/thdmgr/@@cmwdel.s | 131 - src/crent370/thdmgr/@@cmwshu.c | 69 - src/crent370/thdmgr/@@cmwshu.o | 0 src/crent370/thdmgr/@@cmwshu.s | 82 - src/crent370/thdmgr/@@cmwwat.c | 56 - src/crent370/thdmgr/@@cmwwat.o | 0 src/crent370/thdmgr/@@cmwwat.s | 81 - src/crent370/thdmgr/@@cti.c | 28 - src/crent370/thdmgr/clibthdi.h | 87 - src/crent370/thdmgr/files.txt | 9 - src/crent370/thdmgr/makefile | 66 - src/crent370/time64/@@gclk64.c | 36 - src/crent370/time64/@@gclk64.o | 0 src/crent370/time64/__time64.h | 36 - src/crent370/time64/makefile | 87 - src/crent370/time64/mktime64.c | 543 -- src/crent370/time64/time64.txt | 638 --- src/crent370/time64/tm64asc.c | 22 - src/crent370/time64/tm64asc.o | 0 src/crent370/time64/tm64asc.s | 68 - src/crent370/time64/tm64ascr.c | 68 - src/crent370/time64/tm64ascr.o | 0 src/crent370/time64/tm64ascr.s | 194 - src/crent370/time64/tm64clck.c | 58 - src/crent370/time64/tm64clck.o | 0 src/crent370/time64/tm64clck.s | 79 - src/crent370/time64/tm64cti.c | 12 - src/crent370/time64/tm64cti.o | 0 src/crent370/time64/tm64cti.s | 57 - src/crent370/time64/tm64ctir.c | 21 - src/crent370/time64/tm64ctir.o | 0 src/crent370/time64/tm64ctir.s | 66 - src/crent370/time64/tm64dim.c | 15 - src/crent370/time64/tm64dim.o | 0 src/crent370/time64/tm64dim.s | 83 - src/crent370/time64/tm64dtim.c | 35 - src/crent370/time64/tm64dtim.o | 0 src/crent370/time64/tm64dtim.s | 88 - src/crent370/time64/tm64gmt.c | 18 - src/crent370/time64/tm64gmt.o | 0 src/crent370/time64/tm64gmt.s | 58 - src/crent370/time64/tm64gmtr.c | 220 - src/crent370/time64/tm64gmtr.o | 0 src/crent370/time64/tm64gmtr.s | 375 -- src/crent370/time64/tm64jdbm.c | 14 - src/crent370/time64/tm64jdbm.o | 0 src/crent370/time64/tm64jdbm.s | 83 - src/crent370/time64/tm64ltm.c | 18 - src/crent370/time64/tm64ltm.o | 0 src/crent370/time64/tm64ltm.s | 58 - src/crent370/time64/tm64ltmr.c | 121 - src/crent370/time64/tm64ltmr.o | 0 src/crent370/time64/tm64ltmr.s | 200 - src/crent370/time64/tm64mclk.c | 26 - src/crent370/time64/tm64mclk.o | 0 src/crent370/time64/tm64mclk.s | 79 - src/crent370/time64/tm64mcti.c | 15 - src/crent370/time64/tm64mcti.o | 0 src/crent370/time64/tm64mcti.s | 63 - src/crent370/time64/tm64mgmt.c | 19 - src/crent370/time64/tm64mgmt.o | 0 src/crent370/time64/tm64mgmt.s | 65 - src/crent370/time64/tm64mkt.c | 79 - src/crent370/time64/tm64mkt.o | 0 src/crent370/time64/tm64mkt.s | 132 - src/crent370/time64/tm64mltm.c | 19 - src/crent370/time64/tm64mltm.o | 0 src/crent370/time64/tm64mltm.s | 65 - src/crent370/time64/tm64mtim.c | 16 - src/crent370/time64/tm64mtim.o | 0 src/crent370/time64/tm64mtim.s | 63 - src/crent370/time64/tm64sby.c | 91 - src/crent370/time64/tm64sby.o | 0 src/crent370/time64/tm64sby.s | 188 - src/crent370/time64/tm64syr.c | 139 - src/crent370/time64/tm64syr.o | 0 src/crent370/time64/tm64syr.s | 311 -- src/crent370/time64/tm64test.c | 220 - src/crent370/time64/tm64test.o | 0 src/crent370/time64/tm64test.s | 539 -- src/crent370/time64/tm64tgm.c | 168 - src/crent370/time64/tm64tgm.o | 0 src/crent370/time64/tm64tgm.s | 241 - src/crent370/time64/tm64time.c | 19 - src/crent370/time64/tm64time.o | 0 src/crent370/time64/tm64time.s | 69 - src/crent370/time64/tm64uclk.c | 23 - src/crent370/time64/tm64uclk.o | 0 src/crent370/time64/tm64uclk.s | 68 - src/crent370/time64/tm64ucti.c | 17 - src/crent370/time64/tm64ucti.o | 0 src/crent370/time64/tm64ucti.s | 65 - src/crent370/time64/tm64ugmt.c | 20 - src/crent370/time64/tm64ugmt.o | 0 src/crent370/time64/tm64ugmt.s | 65 - src/crent370/time64/tm64ultm.c | 20 - src/crent370/time64/tm64ultm.o | 0 src/crent370/time64/tm64ultm.s | 65 - src/crent370/time64/tm64utim.c | 17 - src/crent370/time64/tm64utim.o | 0 src/crent370/time64/tm64utim.s | 65 - 2604 files changed, 166005 deletions(-) delete mode 100644 src/crent370/asm/@@aclose.asm delete mode 100644 src/crent370/asm/@@aclose.o delete mode 100644 src/crent370/asm/@@aline.asm delete mode 100644 src/crent370/asm/@@aline.o delete mode 100644 src/crent370/asm/@@anote.asm delete mode 100644 src/crent370/asm/@@anote.o delete mode 100644 src/crent370/asm/@@aopen.asm delete mode 100644 src/crent370/asm/@@aopen.o delete mode 100644 src/crent370/asm/@@apoint.asm delete mode 100644 src/crent370/asm/@@apoint.o delete mode 100644 src/crent370/asm/@@aread.asm delete mode 100644 src/crent370/asm/@@aread.o delete mode 100644 src/crent370/asm/@@atrout.asm delete mode 100644 src/crent370/asm/@@atrout.o delete mode 100644 src/crent370/asm/@@awrite.asm delete mode 100644 src/crent370/asm/@@awrite.o delete mode 100644 src/crent370/asm/@@crt0.asm delete mode 100644 src/crent370/asm/@@crt0.o delete mode 100644 src/crent370/asm/@@crt1.asm delete mode 100644 src/crent370/asm/@@crt1.o delete mode 100644 src/crent370/asm/@@crtm.asm delete mode 100644 src/crent370/asm/@@crtm.o delete mode 100644 src/crent370/asm/@@crtsvc.asm delete mode 100644 src/crent370/asm/@@crtsvc.o delete mode 100644 src/crent370/asm/@@dynal.asm delete mode 100644 src/crent370/asm/@@dynal.o delete mode 100644 src/crent370/asm/@@exita.asm delete mode 100644 src/crent370/asm/@@exita.o delete mode 100644 src/crent370/asm/@@freem.asm delete mode 100644 src/crent370/asm/@@freem.o delete mode 100644 src/crent370/asm/@@getclk.asm delete mode 100644 src/crent370/asm/@@getclk.o delete mode 100644 src/crent370/asm/@@getm.asm delete mode 100644 src/crent370/asm/@@getm.o delete mode 100644 src/crent370/asm/@@getpfx.asm delete mode 100644 src/crent370/asm/@@getpfx.o delete mode 100644 src/crent370/asm/@@gettz.asm delete mode 100644 src/crent370/asm/@@gettz.o delete mode 100644 src/crent370/asm/@@idcams.asm delete mode 100644 src/crent370/asm/@@idcams.o delete mode 100644 src/crent370/asm/@@longj.asm delete mode 100644 src/crent370/asm/@@longj.o delete mode 100644 src/crent370/asm/@@ppaget.asm delete mode 100644 src/crent370/asm/@@ppaget.o delete mode 100644 src/crent370/asm/@@setj.asm delete mode 100644 src/crent370/asm/@@setj.o delete mode 100644 src/crent370/asm/@@ssctbn.asm delete mode 100644 src/crent370/asm/@@ssctbn.o delete mode 100644 src/crent370/asm/@@svc99.asm delete mode 100644 src/crent370/asm/@@svc99.o delete mode 100644 src/crent370/asm/@@system.asm delete mode 100644 src/crent370/asm/@@system.o delete mode 100644 src/crent370/asm/dummy.asm delete mode 100644 src/crent370/asm/dummy.o delete mode 100644 src/crent370/asm/files.txt delete mode 100644 src/crent370/asm/gettzoff.asm delete mode 100644 src/crent370/asm/gettzoff.o delete mode 100644 src/crent370/asm/makefile delete mode 100644 src/crent370/asm/ssireq01.asm delete mode 100644 src/crent370/asm/ssireq01.o delete mode 100644 src/crent370/clib/'mdr.httpd.h' delete mode 100644 src/crent370/clib/@@64add.c delete mode 100644 src/crent370/clib/@@64add.o delete mode 100644 src/crent370/clib/@@64add.s delete mode 100644 src/crent370/clib/@@64ai32.c delete mode 100644 src/crent370/clib/@@64ai32.o delete mode 100644 src/crent370/clib/@@64ai32.s delete mode 100644 src/crent370/clib/@@64and.c delete mode 100644 src/crent370/clib/@@64and.o delete mode 100644 src/crent370/clib/@@64and.s delete mode 100644 src/crent370/clib/@@64au32.c delete mode 100644 src/crent370/clib/@@64au32.o delete mode 100644 src/crent370/clib/@@64au32.s delete mode 100644 src/crent370/clib/@@64au64.c delete mode 100644 src/crent370/clib/@@64au64.o delete mode 100644 src/crent370/clib/@@64au64.s delete mode 100644 src/crent370/clib/@@64ci32.c delete mode 100644 src/crent370/clib/@@64ci32.o delete mode 100644 src/crent370/clib/@@64ci32.s delete mode 100644 src/crent370/clib/@@64cmp.c delete mode 100644 src/crent370/clib/@@64cmp.o delete mode 100644 src/crent370/clib/@@64cmp.s delete mode 100644 src/crent370/clib/@@64copy.c delete mode 100644 src/crent370/clib/@@64copy.o delete mode 100644 src/crent370/clib/@@64copy.s delete mode 100644 src/crent370/clib/@@64cu32.c delete mode 100644 src/crent370/clib/@@64cu32.o delete mode 100644 src/crent370/clib/@@64cu32.s delete mode 100644 src/crent370/clib/@@64cu64.c delete mode 100644 src/crent370/clib/@@64cu64.o delete mode 100644 src/crent370/clib/@@64cu64.s delete mode 100644 src/crent370/clib/@@64dec.c delete mode 100644 src/crent370/clib/@@64dec.o delete mode 100644 src/crent370/clib/@@64dec.s delete mode 100644 src/crent370/clib/@@64di32.c delete mode 100644 src/crent370/clib/@@64di32.o delete mode 100644 src/crent370/clib/@@64di32.s delete mode 100644 src/crent370/clib/@@64div.c delete mode 100644 src/crent370/clib/@@64div.o delete mode 100644 src/crent370/clib/@@64div.s delete mode 100644 src/crent370/clib/@@64dmod.c delete mode 100644 src/crent370/clib/@@64dmod.o delete mode 100644 src/crent370/clib/@@64dmod.s delete mode 100644 src/crent370/clib/@@64dmou.c delete mode 100644 src/crent370/clib/@@64dmou.o delete mode 100644 src/crent370/clib/@@64du32.c delete mode 100644 src/crent370/clib/@@64du32.o delete mode 100644 src/crent370/clib/@@64du32.s delete mode 100644 src/crent370/clib/@@64du64.c delete mode 100644 src/crent370/clib/@@64du64.o delete mode 100644 src/crent370/clib/@@64du64.s delete mode 100644 src/crent370/clib/@@64fi32.c delete mode 100644 src/crent370/clib/@@64fi32.o delete mode 100644 src/crent370/clib/@@64fi32.s delete mode 100644 src/crent370/clib/@@64fstr.c delete mode 100644 src/crent370/clib/@@64fstr.o delete mode 100644 src/crent370/clib/@@64fstr.s delete mode 100644 src/crent370/clib/@@64fu32.c delete mode 100644 src/crent370/clib/@@64fu32.o delete mode 100644 src/crent370/clib/@@64fu32.s delete mode 100644 src/crent370/clib/@@64fu64.c delete mode 100644 src/crent370/clib/@@64fu64.o delete mode 100644 src/crent370/clib/@@64fu64.s delete mode 100644 src/crent370/clib/@@64inc.c delete mode 100644 src/crent370/clib/@@64inc.o delete mode 100644 src/crent370/clib/@@64inc.s delete mode 100644 src/crent370/clib/@@64init.c delete mode 100644 src/crent370/clib/@@64init.o delete mode 100644 src/crent370/clib/@@64init.s delete mode 100644 src/crent370/clib/@@64is0.c delete mode 100644 src/crent370/clib/@@64is0.o delete mode 100644 src/crent370/clib/@@64is0.s delete mode 100644 src/crent370/clib/@@64isqr.c delete mode 100644 src/crent370/clib/@@64isqr.o delete mode 100644 src/crent370/clib/@@64isqr.s delete mode 100644 src/crent370/clib/@@64lsft.c delete mode 100644 src/crent370/clib/@@64lsft.o delete mode 100644 src/crent370/clib/@@64lsft.s delete mode 100644 src/crent370/clib/@@64lsh1.c delete mode 100644 src/crent370/clib/@@64lsh1.o delete mode 100644 src/crent370/clib/@@64lsh1.s delete mode 100644 src/crent370/clib/@@64lshw.c delete mode 100644 src/crent370/clib/@@64lshw.o delete mode 100644 src/crent370/clib/@@64lshw.s delete mode 100644 src/crent370/clib/@@64mi32.c delete mode 100644 src/crent370/clib/@@64mi32.o delete mode 100644 src/crent370/clib/@@64mi32.s delete mode 100644 src/crent370/clib/@@64mod.c delete mode 100644 src/crent370/clib/@@64mod.o delete mode 100644 src/crent370/clib/@@64mod.s delete mode 100644 src/crent370/clib/@@64mu32.c delete mode 100644 src/crent370/clib/@@64mu32.o delete mode 100644 src/crent370/clib/@@64mu32.s delete mode 100644 src/crent370/clib/@@64mu64.c delete mode 100644 src/crent370/clib/@@64mu64.o delete mode 100644 src/crent370/clib/@@64mu64.s delete mode 100644 src/crent370/clib/@@64mul.c delete mode 100644 src/crent370/clib/@@64mul.o delete mode 100644 src/crent370/clib/@@64mul.s delete mode 100644 src/crent370/clib/@@64ni32.c delete mode 100644 src/crent370/clib/@@64ni32.o delete mode 100644 src/crent370/clib/@@64ni32.s delete mode 100644 src/crent370/clib/@@64nu32.c delete mode 100644 src/crent370/clib/@@64nu32.o delete mode 100644 src/crent370/clib/@@64nu32.s delete mode 100644 src/crent370/clib/@@64nu64.c delete mode 100644 src/crent370/clib/@@64nu64.o delete mode 100644 src/crent370/clib/@@64nu64.s delete mode 100644 src/crent370/clib/@@64oi32.c delete mode 100644 src/crent370/clib/@@64oi32.o delete mode 100644 src/crent370/clib/@@64oi32.s delete mode 100644 src/crent370/clib/@@64or.c delete mode 100644 src/crent370/clib/@@64or.o delete mode 100644 src/crent370/clib/@@64or.s delete mode 100644 src/crent370/clib/@@64ou32.c delete mode 100644 src/crent370/clib/@@64ou32.o delete mode 100644 src/crent370/clib/@@64ou32.s delete mode 100644 src/crent370/clib/@@64ou64.c delete mode 100644 src/crent370/clib/@@64ou64.o delete mode 100644 src/crent370/clib/@@64ou64.s delete mode 100644 src/crent370/clib/@@64pow.c delete mode 100644 src/crent370/clib/@@64pow.o delete mode 100644 src/crent370/clib/@@64pow.s delete mode 100644 src/crent370/clib/@@64qi32.c delete mode 100644 src/crent370/clib/@@64qi32.o delete mode 100644 src/crent370/clib/@@64qi32.s delete mode 100644 src/crent370/clib/@@64qu32.c delete mode 100644 src/crent370/clib/@@64qu32.o delete mode 100644 src/crent370/clib/@@64qu32.s delete mode 100644 src/crent370/clib/@@64qu64.c delete mode 100644 src/crent370/clib/@@64qu64.o delete mode 100644 src/crent370/clib/@@64qu64.s delete mode 100644 src/crent370/clib/@@64rsft.c delete mode 100644 src/crent370/clib/@@64rsft.o delete mode 100644 src/crent370/clib/@@64rsft.s delete mode 100644 src/crent370/clib/@@64rsh1.c delete mode 100644 src/crent370/clib/@@64rsh1.o delete mode 100644 src/crent370/clib/@@64rsh1.s delete mode 100644 src/crent370/clib/@@64rshw.c delete mode 100644 src/crent370/clib/@@64rshw.o delete mode 100644 src/crent370/clib/@@64rshw.s delete mode 100644 src/crent370/clib/@@64si32.c delete mode 100644 src/crent370/clib/@@64si32.o delete mode 100644 src/crent370/clib/@@64si32.s delete mode 100644 src/crent370/clib/@@64su32.c delete mode 100644 src/crent370/clib/@@64su32.o delete mode 100644 src/crent370/clib/@@64su32.s delete mode 100644 src/crent370/clib/@@64su64.c delete mode 100644 src/crent370/clib/@@64su64.o delete mode 100644 src/crent370/clib/@@64su64.s delete mode 100644 src/crent370/clib/@@64sub.c delete mode 100644 src/crent370/clib/@@64sub.o delete mode 100644 src/crent370/clib/@@64sub.s delete mode 100644 src/crent370/clib/@@64subu.c delete mode 100644 src/crent370/clib/@@64subu.o delete mode 100644 src/crent370/clib/@@64test.c delete mode 100644 src/crent370/clib/@@64test.o delete mode 100644 src/crent370/clib/@@64test.s delete mode 100644 src/crent370/clib/@@64ti32.c delete mode 100644 src/crent370/clib/@@64ti32.o delete mode 100644 src/crent370/clib/@@64ti32.s delete mode 100644 src/crent370/clib/@@64tstr.c delete mode 100644 src/crent370/clib/@@64tstr.o delete mode 100644 src/crent370/clib/@@64tstr.s delete mode 100644 src/crent370/clib/@@64tu32.c delete mode 100644 src/crent370/clib/@@64tu32.o delete mode 100644 src/crent370/clib/@@64tu32.s delete mode 100644 src/crent370/clib/@@64tu64.c delete mode 100644 src/crent370/clib/@@64tu64.o delete mode 100644 src/crent370/clib/@@64tu64.s delete mode 100644 src/crent370/clib/@@64vi32.c delete mode 100644 src/crent370/clib/@@64vi32.o delete mode 100644 src/crent370/clib/@@64vi32.s delete mode 100644 src/crent370/clib/@@64vu32.c delete mode 100644 src/crent370/clib/@@64vu32.o delete mode 100644 src/crent370/clib/@@64vu32.s delete mode 100644 src/crent370/clib/@@64vu64.c delete mode 100644 src/crent370/clib/@@64vu64.o delete mode 100644 src/crent370/clib/@@64vu64.s delete mode 100644 src/crent370/clib/@@64xi32.c delete mode 100644 src/crent370/clib/@@64xi32.o delete mode 100644 src/crent370/clib/@@64xi32.s delete mode 100644 src/crent370/clib/@@64xor.c delete mode 100644 src/crent370/clib/@@64xor.o delete mode 100644 src/crent370/clib/@@64xor.s delete mode 100644 src/crent370/clib/@@64xu32.c delete mode 100644 src/crent370/clib/@@64xu32.o delete mode 100644 src/crent370/clib/@@64xu32.s delete mode 100644 src/crent370/clib/@@64xu64.c delete mode 100644 src/crent370/clib/@@64xu64.o delete mode 100644 src/crent370/clib/@@64xu64.s delete mode 100644 src/crent370/clib/@@@try.c delete mode 100644 src/crent370/clib/@@@try.o delete mode 100644 src/crent370/clib/@@@try.s delete mode 100644 src/crent370/clib/@@abrpt.c delete mode 100644 src/crent370/clib/@@abrpt.o delete mode 100644 src/crent370/clib/@@abrpt.s delete mode 100644 src/crent370/clib/@@apfset.c delete mode 100644 src/crent370/clib/@@apfset.o delete mode 100644 src/crent370/clib/@@apfset.s delete mode 100644 src/crent370/clib/@@aradd.c delete mode 100644 src/crent370/clib/@@aradd.o delete mode 100644 src/crent370/clib/@@aradd.s delete mode 100644 src/crent370/clib/@@aradf.c delete mode 100644 src/crent370/clib/@@aradf.o delete mode 100644 src/crent370/clib/@@aradf.s delete mode 100644 src/crent370/clib/@@arcou.c delete mode 100644 src/crent370/clib/@@arcou.o delete mode 100644 src/crent370/clib/@@arcou.s delete mode 100644 src/crent370/clib/@@ardel.c delete mode 100644 src/crent370/clib/@@ardel.o delete mode 100644 src/crent370/clib/@@ardel.s delete mode 100644 src/crent370/clib/@@areach.c delete mode 100644 src/crent370/clib/@@areach.o delete mode 100644 src/crent370/clib/@@areach.s delete mode 100644 src/crent370/clib/@@arfre.c delete mode 100644 src/crent370/clib/@@arfre.o delete mode 100644 src/crent370/clib/@@arfre.s delete mode 100644 src/crent370/clib/@@arget.c delete mode 100644 src/crent370/clib/@@arget.o delete mode 100644 src/crent370/clib/@@arget.s delete mode 100644 src/crent370/clib/@@arnew.c delete mode 100644 src/crent370/clib/@@arnew.o delete mode 100644 src/crent370/clib/@@arnew.s delete mode 100644 src/crent370/clib/@@arsiz.c delete mode 100644 src/crent370/clib/@@arsiz.o delete mode 100644 src/crent370/clib/@@arsiz.s delete mode 100644 src/crent370/clib/@@ascb.c delete mode 100644 src/crent370/clib/@@ascb.o delete mode 100644 src/crent370/clib/@@ascb.s delete mode 100644 src/crent370/clib/@@assert.c delete mode 100644 src/crent370/clib/@@assert.o delete mode 100644 src/crent370/clib/@@assert.s delete mode 100644 src/crent370/clib/@@austep.c delete mode 100644 src/crent370/clib/@@austep.o delete mode 100644 src/crent370/clib/@@austep.s delete mode 100644 src/crent370/clib/@@autask.c delete mode 100644 src/crent370/clib/@@autask.o delete mode 100644 src/crent370/clib/@@autask.s delete mode 100644 src/crent370/clib/@@autcde.c delete mode 100644 src/crent370/clib/@@autcde.o delete mode 100644 src/crent370/clib/@@autcde.s delete mode 100644 src/crent370/clib/@@autnam.c delete mode 100644 src/crent370/clib/@@autnam.o delete mode 100644 src/crent370/clib/@@autnam.s delete mode 100644 src/crent370/clib/@@b64dec.c delete mode 100644 src/crent370/clib/@@b64dec.o delete mode 100644 src/crent370/clib/@@b64dec.s delete mode 100644 src/crent370/clib/@@b64enc.c delete mode 100644 src/crent370/clib/@@b64enc.o delete mode 100644 src/crent370/clib/@@b64enc.s delete mode 100644 src/crent370/clib/@@b64tbl.c delete mode 100644 src/crent370/clib/@@b64tbl.o delete mode 100644 src/crent370/clib/@@b64tbl.s delete mode 100644 src/crent370/clib/@@bldl.c delete mode 100644 src/crent370/clib/@@bldl.o delete mode 100644 src/crent370/clib/@@bldl.s delete mode 100644 src/crent370/clib/@@call.c delete mode 100644 src/crent370/clib/@@call.o delete mode 100644 src/crent370/clib/@@call.s delete mode 100644 src/crent370/clib/@@caller.c delete mode 100644 src/crent370/clib/@@caller.o delete mode 100644 src/crent370/clib/@@caller.s delete mode 100644 src/crent370/clib/@@cibdel.c delete mode 100644 src/crent370/clib/@@cibdel.o delete mode 100644 src/crent370/clib/@@cibdel.s delete mode 100644 src/crent370/clib/@@cibget.c delete mode 100644 src/crent370/clib/@@cibget.o delete mode 100644 src/crent370/clib/@@cibget.s delete mode 100644 src/crent370/clib/@@cibset.c delete mode 100644 src/crent370/clib/@@cibset.o delete mode 100644 src/crent370/clib/@@cibset.s delete mode 100644 src/crent370/clib/@@cpclos.c delete mode 100644 src/crent370/clib/@@cpclos.o delete mode 100644 src/crent370/clib/@@cpclos.s delete mode 100644 src/crent370/clib/@@cpopen.c delete mode 100644 src/crent370/clib/@@cpopen.o delete mode 100644 src/crent370/clib/@@cpopen.s delete mode 100644 src/crent370/clib/@@cppoin.c delete mode 100644 src/crent370/clib/@@cppoin.o delete mode 100644 src/crent370/clib/@@cppoin.s delete mode 100644 src/crent370/clib/@@cpread.c delete mode 100644 src/crent370/clib/@@cpread.o delete mode 100644 src/crent370/clib/@@cpread.s delete mode 100644 src/crent370/clib/@@crtget.c delete mode 100644 src/crent370/clib/@@crtget.o delete mode 100644 src/crent370/clib/@@crtget.s delete mode 100644 src/crent370/clib/@@crtres.c delete mode 100644 src/crent370/clib/@@crtres.o delete mode 100644 src/crent370/clib/@@crtres.s delete mode 100644 src/crent370/clib/@@crtset.c delete mode 100644 src/crent370/clib/@@crtset.o delete mode 100644 src/crent370/clib/@@crtset.s delete mode 100644 src/crent370/clib/@@cs.c delete mode 100644 src/crent370/clib/@@cs.o delete mode 100644 src/crent370/clib/@@cs.s delete mode 100644 src/crent370/clib/@@ctcrte.c delete mode 100644 src/crent370/clib/@@ctcrte.o delete mode 100644 src/crent370/clib/@@ctcrte.s delete mode 100644 src/crent370/clib/@@ctcrtx.c delete mode 100644 src/crent370/clib/@@ctcrtx.o delete mode 100644 src/crent370/clib/@@ctcrtx.s delete mode 100644 src/crent370/clib/@@ctdel.c delete mode 100644 src/crent370/clib/@@ctdel.o delete mode 100644 src/crent370/clib/@@ctdel.s delete mode 100644 src/crent370/clib/@@ctdet.c delete mode 100644 src/crent370/clib/@@ctdet.o delete mode 100644 src/crent370/clib/@@ctdet.s delete mode 100644 src/crent370/clib/@@ctfind.c delete mode 100644 src/crent370/clib/@@ctfind.o delete mode 100644 src/crent370/clib/@@ctfind.s delete mode 100644 src/crent370/clib/@@ctgtcb.c delete mode 100644 src/crent370/clib/@@ctgtcb.o delete mode 100644 src/crent370/clib/@@ctgtcb.s delete mode 100644 src/crent370/clib/@@ctlock.c delete mode 100644 src/crent370/clib/@@ctlock.o delete mode 100644 src/crent370/clib/@@ctlock.s delete mode 100644 src/crent370/clib/@@ctpop.c delete mode 100644 src/crent370/clib/@@ctpop.o delete mode 100644 src/crent370/clib/@@ctpop.s delete mode 100644 src/crent370/clib/@@ctpost.c delete mode 100644 src/crent370/clib/@@ctpost.o delete mode 100644 src/crent370/clib/@@ctpost.s delete mode 100644 src/crent370/clib/@@ctpush.c delete mode 100644 src/crent370/clib/@@ctpush.o delete mode 100644 src/crent370/clib/@@ctpush.s delete mode 100644 src/crent370/clib/@@ctself.c delete mode 100644 src/crent370/clib/@@ctself.o delete mode 100644 src/crent370/clib/@@ctself.s delete mode 100644 src/crent370/clib/@@cttwat.c delete mode 100644 src/crent370/clib/@@cttwat.o delete mode 100644 src/crent370/clib/@@cttwat.s delete mode 100644 src/crent370/clib/@@ctwait.c delete mode 100644 src/crent370/clib/@@ctwait.o delete mode 100644 src/crent370/clib/@@ctwait.s delete mode 100644 src/crent370/clib/@@ctx.c delete mode 100644 src/crent370/clib/@@ctyiel.c delete mode 100644 src/crent370/clib/@@ctyiel.o delete mode 100644 src/crent370/clib/@@ctyiel.s delete mode 100644 src/crent370/clib/@@dblcvt.c delete mode 100644 src/crent370/clib/@@dblcvt.o delete mode 100644 src/crent370/clib/@@dblcvt.s delete mode 100644 src/crent370/clib/@@dec.c delete mode 100644 src/crent370/clib/@@dec.o delete mode 100644 src/crent370/clib/@@dec.s delete mode 100644 src/crent370/clib/@@delete.c delete mode 100644 src/crent370/clib/@@delete.o delete mode 100644 src/crent370/clib/@@delete.s delete mode 100644 src/crent370/clib/@@doperm.c delete mode 100644 src/crent370/clib/@@doperm.o delete mode 100644 src/crent370/clib/@@doperm.s delete mode 100644 src/crent370/clib/@@dscbav.c delete mode 100644 src/crent370/clib/@@dscbav.o delete mode 100644 src/crent370/clib/@@dscbav.s delete mode 100644 src/crent370/clib/@@dscbdv.c delete mode 100644 src/crent370/clib/@@dscbdv.o delete mode 100644 src/crent370/clib/@@dscbdv.s delete mode 100644 src/crent370/clib/@@dscbv.c delete mode 100644 src/crent370/clib/@@dscbv.o delete mode 100644 src/crent370/clib/@@dscbv.s delete mode 100644 src/crent370/clib/@@ecbpst.c delete mode 100644 src/crent370/clib/@@ecbpst.o delete mode 100644 src/crent370/clib/@@ecbpst.s delete mode 100644 src/crent370/clib/@@ecbtw.c delete mode 100644 src/crent370/clib/@@ecbtw.o delete mode 100644 src/crent370/clib/@@ecbtw.s delete mode 100644 src/crent370/clib/@@ecbtwa.c delete mode 100644 src/crent370/clib/@@ecbtwa.o delete mode 100644 src/crent370/clib/@@ecbtwa.s delete mode 100644 src/crent370/clib/@@ecbtwl.c delete mode 100644 src/crent370/clib/@@ecbtwl.o delete mode 100644 src/crent370/clib/@@ecbtwl.s delete mode 100644 src/crent370/clib/@@ecbwa.c delete mode 100644 src/crent370/clib/@@ecbwa.o delete mode 100644 src/crent370/clib/@@ecbwa.s delete mode 100644 src/crent370/clib/@@ecbwl.c delete mode 100644 src/crent370/clib/@@ecbwl.o delete mode 100644 src/crent370/clib/@@ecbwl.s delete mode 100644 src/crent370/clib/@@ecbwt.c delete mode 100644 src/crent370/clib/@@ecbwt.o delete mode 100644 src/crent370/clib/@@ecbwt.s delete mode 100644 src/crent370/clib/@@enqdeq.c delete mode 100644 src/crent370/clib/@@enqdeq.o delete mode 100644 src/crent370/clib/@@enqdeq.s delete mode 100644 src/crent370/clib/@@envvar.c delete mode 100644 src/crent370/clib/@@envvar.o delete mode 100644 src/crent370/clib/@@envvar.s delete mode 100644 src/crent370/clib/@@errno.c delete mode 100644 src/crent370/clib/@@errno.o delete mode 100644 src/crent370/clib/@@errno.s delete mode 100644 src/crent370/clib/@@estae.c delete mode 100644 src/crent370/clib/@@estae.o delete mode 100644 src/crent370/clib/@@estae.s delete mode 100644 src/crent370/clib/@@examin.c delete mode 100644 src/crent370/clib/@@examin.o delete mode 100644 src/crent370/clib/@@examin.s delete mode 100644 src/crent370/clib/@@exit.c delete mode 100644 src/crent370/clib/@@exit.o delete mode 100644 src/crent370/clib/@@exit.s delete mode 100644 src/crent370/clib/@@fdclr.c delete mode 100644 src/crent370/clib/@@fdclr.o delete mode 100644 src/crent370/clib/@@fdclr.s delete mode 100644 src/crent370/clib/@@fflush.c delete mode 100644 src/crent370/clib/@@fflush.o delete mode 100644 src/crent370/clib/@@fflush.s delete mode 100644 src/crent370/clib/@@fgetc.c delete mode 100644 src/crent370/clib/@@fgetc.o delete mode 100644 src/crent370/clib/@@fgetc.s delete mode 100644 src/crent370/clib/@@fgets.c delete mode 100644 src/crent370/clib/@@fgets.o delete mode 100644 src/crent370/clib/@@fgets.s delete mode 100644 src/crent370/clib/@@fildef.c delete mode 100644 src/crent370/clib/@@fildef.o delete mode 100644 src/crent370/clib/@@fildef.s delete mode 100644 src/crent370/clib/@@finden.c delete mode 100644 src/crent370/clib/@@finden.o delete mode 100644 src/crent370/clib/@@finden.s delete mode 100644 src/crent370/clib/@@fmtisp.c delete mode 100644 src/crent370/clib/@@fmtisp.o delete mode 100644 src/crent370/clib/@@fmtisp.s delete mode 100644 src/crent370/clib/@@fmtloa.c delete mode 100644 src/crent370/clib/@@fmtloa.o delete mode 100644 src/crent370/clib/@@fmtloa.s delete mode 100644 src/crent370/clib/@@fndcde.c delete mode 100644 src/crent370/clib/@@fndcde.o delete mode 100644 src/crent370/clib/@@fndcde.s delete mode 100644 src/crent370/clib/@@fpfree.c delete mode 100644 src/crent370/clib/@@fpfree.o delete mode 100644 src/crent370/clib/@@fpfree.s delete mode 100644 src/crent370/clib/@@fpmode.c delete mode 100644 src/crent370/clib/@@fpmode.o delete mode 100644 src/crent370/clib/@@fpmode.s delete mode 100644 src/crent370/clib/@@fpnew.c delete mode 100644 src/crent370/clib/@@fpnew.o delete mode 100644 src/crent370/clib/@@fpnew.s delete mode 100644 src/crent370/clib/@@fpold.c delete mode 100644 src/crent370/clib/@@fpold.o delete mode 100644 src/crent370/clib/@@fpold.s delete mode 100644 src/crent370/clib/@@fpopen.c delete mode 100644 src/crent370/clib/@@fpopen.o delete mode 100644 src/crent370/clib/@@fpopen.s delete mode 100644 src/crent370/clib/@@fpshr.c delete mode 100644 src/crent370/clib/@@fpshr.o delete mode 100644 src/crent370/clib/@@fpshr.s delete mode 100644 src/crent370/clib/@@fpstar.c delete mode 100644 src/crent370/clib/@@fpstar.o delete mode 100644 src/crent370/clib/@@fpstar.s delete mode 100644 src/crent370/clib/@@fptmp.c delete mode 100644 src/crent370/clib/@@fptmp.o delete mode 100644 src/crent370/clib/@@fptmp.s delete mode 100644 src/crent370/clib/@@fputc.c delete mode 100644 src/crent370/clib/@@fputc.o delete mode 100644 src/crent370/clib/@@fputc.s delete mode 100644 src/crent370/clib/@@fputs.c delete mode 100644 src/crent370/clib/@@fputs.o delete mode 100644 src/crent370/clib/@@fputs.s delete mode 100644 src/crent370/clib/@@fread.c delete mode 100644 src/crent370/clib/@@fread.o delete mode 100644 src/crent370/clib/@@fread.s delete mode 100644 src/crent370/clib/@@freeds.c delete mode 100644 src/crent370/clib/@@freeds.o delete mode 100644 src/crent370/clib/@@freeds.s delete mode 100644 src/crent370/clib/@@freepd.c delete mode 100644 src/crent370/clib/@@freepd.o delete mode 100644 src/crent370/clib/@@freepd.s delete mode 100644 src/crent370/clib/@@freevl.c delete mode 100644 src/crent370/clib/@@freevl.o delete mode 100644 src/crent370/clib/@@freevl.s delete mode 100644 src/crent370/clib/@@frtx99.c delete mode 100644 src/crent370/clib/@@frtx99.o delete mode 100644 src/crent370/clib/@@frtx99.s delete mode 100644 src/crent370/clib/@@frtx9a.c delete mode 100644 src/crent370/clib/@@frtx9a.o delete mode 100644 src/crent370/clib/@@frtx9a.s delete mode 100644 src/crent370/clib/@@fseek.c delete mode 100644 src/crent370/clib/@@fseek.o delete mode 100644 src/crent370/clib/@@fseek.s delete mode 100644 src/crent370/clib/@@fwrite.c delete mode 100644 src/crent370/clib/@@fwrite.o delete mode 100644 src/crent370/clib/@@fwrite.s delete mode 100644 src/crent370/clib/@@get@er.c delete mode 100644 src/crent370/clib/@@get@er.o delete mode 100644 src/crent370/clib/@@get@er.s delete mode 100644 src/crent370/clib/@@getpso.c delete mode 100644 src/crent370/clib/@@getpso.o delete mode 100644 src/crent370/clib/@@getpso.s delete mode 100644 src/crent370/clib/@@grtget.c delete mode 100644 src/crent370/clib/@@grtget.o delete mode 100644 src/crent370/clib/@@grtget.s delete mode 100644 src/crent370/clib/@@grtres.c delete mode 100644 src/crent370/clib/@@grtres.o delete mode 100644 src/crent370/clib/@@grtres.s delete mode 100644 src/crent370/clib/@@grtset.c delete mode 100644 src/crent370/clib/@@grtset.o delete mode 100644 src/crent370/clib/@@grtset.s delete mode 100644 src/crent370/clib/@@gtcom.c delete mode 100644 src/crent370/clib/@@gtcom.o delete mode 100644 src/crent370/clib/@@gtcom.s delete mode 100644 src/crent370/clib/@@gterr.c delete mode 100644 src/crent370/clib/@@gterr.o delete mode 100644 src/crent370/clib/@@gterr.s delete mode 100644 src/crent370/clib/@@gtin.c delete mode 100644 src/crent370/clib/@@gtin.o delete mode 100644 src/crent370/clib/@@gtin.s delete mode 100644 src/crent370/clib/@@gtout.c delete mode 100644 src/crent370/clib/@@gtout.o delete mode 100644 src/crent370/clib/@@gtout.s delete mode 100644 src/crent370/clib/@@idecth.c delete mode 100644 src/crent370/clib/@@idecth.o delete mode 100644 src/crent370/clib/@@idecth.s delete mode 100644 src/crent370/clib/@@inaton.c delete mode 100644 src/crent370/clib/@@inaton.o delete mode 100644 src/crent370/clib/@@inaton.s delete mode 100644 src/crent370/clib/@@inc.c delete mode 100644 src/crent370/clib/@@inc.o delete mode 100644 src/crent370/clib/@@inc.s delete mode 100644 src/crent370/clib/@@isauth.c delete mode 100644 src/crent370/clib/@@isauth.o delete mode 100644 src/crent370/clib/@@isauth.s delete mode 100644 src/crent370/clib/@@isbuf.c delete mode 100644 src/crent370/clib/@@isbuf.o delete mode 100644 src/crent370/clib/@@isbuf.s delete mode 100644 src/crent370/clib/@@isleap.c delete mode 100644 src/crent370/clib/@@isleap.o delete mode 100644 src/crent370/clib/@@isleap.s delete mode 100644 src/crent370/clib/@@ispexe.c delete mode 100644 src/crent370/clib/@@ispexe.o delete mode 100644 src/crent370/clib/@@ispexe.s delete mode 100644 src/crent370/clib/@@isplnk.c delete mode 100644 src/crent370/clib/@@isplnk.o delete mode 100644 src/crent370/clib/@@isplnk.s delete mode 100644 src/crent370/clib/@@ispsel.c delete mode 100644 src/crent370/clib/@@ispsel.o delete mode 100644 src/crent370/clib/@@ispsel.s delete mode 100644 src/crent370/clib/@@issup.c delete mode 100644 src/crent370/clib/@@issup.o delete mode 100644 src/crent370/clib/@@issup.s delete mode 100644 src/crent370/clib/@@jobid.c delete mode 100644 src/crent370/clib/@@jobid.o delete mode 100644 src/crent370/clib/@@jobid.s delete mode 100644 src/crent370/clib/@@jobnam.c delete mode 100644 src/crent370/clib/@@jobnam.o delete mode 100644 src/crent370/clib/@@jobnam.s delete mode 100644 src/crent370/clib/@@jpaget.c delete mode 100644 src/crent370/clib/@@jpaget.o delete mode 100644 src/crent370/clib/@@jpaget.s delete mode 100644 src/crent370/clib/@@jsclos.c delete mode 100644 src/crent370/clib/@@jsclos.o delete mode 100644 src/crent370/clib/@@jsclos.s delete mode 100644 src/crent370/clib/@@jsopen.c delete mode 100644 src/crent370/clib/@@jsopen.o delete mode 100644 src/crent370/clib/@@jsopen.s delete mode 100644 src/crent370/clib/@@jsrd4.c delete mode 100644 src/crent370/clib/@@jsrd4.o delete mode 100644 src/crent370/clib/@@jsrd4.s delete mode 100644 src/crent370/clib/@@link.c delete mode 100644 src/crent370/clib/@@link.o delete mode 100644 src/crent370/clib/@@link.s delete mode 100644 src/crent370/clib/@@linkds.c delete mode 100644 src/crent370/clib/@@linkds.o delete mode 100644 src/crent370/clib/@@linkds.s delete mode 100644 src/crent370/clib/@@linkt.c delete mode 100644 src/crent370/clib/@@linkt.o delete mode 100644 src/crent370/clib/@@linkt.s delete mode 100644 src/crent370/clib/@@listc.c delete mode 100644 src/crent370/clib/@@listc.o delete mode 100644 src/crent370/clib/@@listc.s delete mode 100644 src/crent370/clib/@@listds.c delete mode 100644 src/crent370/clib/@@listds.o delete mode 100644 src/crent370/clib/@@listds.s delete mode 100644 src/crent370/clib/@@listpd.c delete mode 100644 src/crent370/clib/@@listpd.o delete mode 100644 src/crent370/clib/@@listpd.s delete mode 100644 src/crent370/clib/@@listvl.c delete mode 100644 src/crent370/clib/@@listvl.o delete mode 100644 src/crent370/clib/@@listvl.s delete mode 100644 src/crent370/clib/@@lk.c delete mode 100644 src/crent370/clib/@@lk.o delete mode 100644 src/crent370/clib/@@lk.s delete mode 100644 src/crent370/clib/@@lkrn.c delete mode 100644 src/crent370/clib/@@lkrn.o delete mode 100644 src/crent370/clib/@@lkrn.s delete mode 100644 src/crent370/clib/@@lkrnf.c delete mode 100644 src/crent370/clib/@@lkrnf.o delete mode 100644 src/crent370/clib/@@lkrnf.s delete mode 100644 src/crent370/clib/@@lkrnte.c delete mode 100644 src/crent370/clib/@@lkrnte.o delete mode 100644 src/crent370/clib/@@lkrnte.s delete mode 100644 src/crent370/clib/@@lkrntf.c delete mode 100644 src/crent370/clib/@@lkrntf.o delete mode 100644 src/crent370/clib/@@lkrntf.s delete mode 100644 src/crent370/clib/@@lkrntr.c delete mode 100644 src/crent370/clib/@@lkrntr.o delete mode 100644 src/crent370/clib/@@lkrntr.s delete mode 100644 src/crent370/clib/@@lkrnuf.c delete mode 100644 src/crent370/clib/@@lkrnuf.o delete mode 100644 src/crent370/clib/@@lkrnuf.s delete mode 100644 src/crent370/clib/@@lkrnun.c delete mode 100644 src/crent370/clib/@@lkrnun.o delete mode 100644 src/crent370/clib/@@lkrnun.s delete mode 100644 src/crent370/clib/@@lkrtef.c delete mode 100644 src/crent370/clib/@@lkrtef.o delete mode 100644 src/crent370/clib/@@lkrtef.s delete mode 100644 src/crent370/clib/@@lktest.c delete mode 100644 src/crent370/clib/@@lktest.o delete mode 100644 src/crent370/clib/@@lktest.s delete mode 100644 src/crent370/clib/@@lktry.c delete mode 100644 src/crent370/clib/@@lktry.o delete mode 100644 src/crent370/clib/@@lktry.s delete mode 100644 src/crent370/clib/@@lkunlk.c delete mode 100644 src/crent370/clib/@@lkunlk.o delete mode 100644 src/crent370/clib/@@lkunlk.s delete mode 100644 src/crent370/clib/@@lkuntf.c delete mode 100644 src/crent370/clib/@@lkuntf.o delete mode 100644 src/crent370/clib/@@lkuntf.s delete mode 100644 src/crent370/clib/@@lkuntr.c delete mode 100644 src/crent370/clib/@@lkuntr.o delete mode 100644 src/crent370/clib/@@lkuntr.s delete mode 100644 src/crent370/clib/@@load.c delete mode 100644 src/crent370/clib/@@load.o delete mode 100644 src/crent370/clib/@@load.s delete mode 100644 src/crent370/clib/@@loadhi.c delete mode 100644 src/crent370/clib/@@loadhi.o delete mode 100644 src/crent370/clib/@@loadhi.s delete mode 100644 src/crent370/clib/@@locate.c delete mode 100644 src/crent370/clib/@@locate.o delete mode 100644 src/crent370/clib/@@locate.s delete mode 100644 src/crent370/clib/@@longj.c delete mode 100644 src/crent370/clib/@@longj.o delete mode 100644 src/crent370/clib/@@longj.s delete mode 100644 src/crent370/clib/@@mtd.c delete mode 100644 src/crent370/clib/@@mtd.o delete mode 100644 src/crent370/clib/@@mtd.s delete mode 100644 src/crent370/clib/@@nwtx99.c delete mode 100644 src/crent370/clib/@@nwtx99.o delete mode 100644 src/crent370/clib/@@nwtx99.s delete mode 100644 src/crent370/clib/@@nwtx9a.c delete mode 100644 src/crent370/clib/@@nwtx9a.o delete mode 100644 src/crent370/clib/@@nwtx9a.s delete mode 100644 src/crent370/clib/@@nwtx9s.c delete mode 100644 src/crent370/clib/@@nwtx9s.o delete mode 100644 src/crent370/clib/@@nwtx9s.s delete mode 100644 src/crent370/clib/@@patmat.c delete mode 100644 src/crent370/clib/@@patmat.o delete mode 100644 src/crent370/clib/@@patmat.s delete mode 100644 src/crent370/clib/@@perm.c delete mode 100644 src/crent370/clib/@@perm.o delete mode 100644 src/crent370/clib/@@perm.s delete mode 100644 src/crent370/clib/@@prob.c delete mode 100644 src/crent370/clib/@@prob.o delete mode 100644 src/crent370/clib/@@prob.s delete mode 100644 src/crent370/clib/@@prtfx.c delete mode 100644 src/crent370/clib/@@prtfx.o delete mode 100644 src/crent370/clib/@@prtfx.s delete mode 100644 src/crent370/clib/@@pswkey.c delete mode 100644 src/crent370/clib/@@pswkey.o delete mode 100644 src/crent370/clib/@@pswkey.s delete mode 100644 src/crent370/clib/@@rdjfcb.c delete mode 100644 src/crent370/clib/@@rdjfcb.o delete mode 100644 src/crent370/clib/@@rdjfcb.s delete mode 100644 src/crent370/clib/@@reopen.c delete mode 100644 src/crent370/clib/@@reopen.o delete mode 100644 src/crent370/clib/@@reopen.s delete mode 100644 src/crent370/clib/@@sigdfl.c delete mode 100644 src/crent370/clib/@@sigdfl.o delete mode 100644 src/crent370/clib/@@sigdfl.s delete mode 100644 src/crent370/clib/@@sigerr.c delete mode 100644 src/crent370/clib/@@sigerr.o delete mode 100644 src/crent370/clib/@@sigerr.s delete mode 100644 src/crent370/clib/@@sighdl.c delete mode 100644 src/crent370/clib/@@sighdl.o delete mode 100644 src/crent370/clib/@@sighdl.s delete mode 100644 src/crent370/clib/@@sigign.c delete mode 100644 src/crent370/clib/@@sigign.o delete mode 100644 src/crent370/clib/@@sigign.s delete mode 100644 src/crent370/clib/@@sl.c delete mode 100644 src/crent370/clib/@@sl.o delete mode 100644 src/crent370/clib/@@sl.s delete mode 100644 src/crent370/clib/@@sltest.c delete mode 100644 src/crent370/clib/@@sltest.o delete mode 100644 src/crent370/clib/@@sltest.s delete mode 100644 src/crent370/clib/@@sltry.c delete mode 100644 src/crent370/clib/@@sltry.o delete mode 100644 src/crent370/clib/@@sltry.s delete mode 100644 src/crent370/clib/@@slunlk.c delete mode 100644 src/crent370/clib/@@slunlk.o delete mode 100644 src/crent370/clib/@@slunlk.s delete mode 100644 src/crent370/clib/@@smca.c delete mode 100644 src/crent370/clib/@@smca.o delete mode 100644 src/crent370/clib/@@smca.s delete mode 100644 src/crent370/clib/@@smfid.c delete mode 100644 src/crent370/clib/@@smfid.o delete mode 100644 src/crent370/clib/@@smfid.s delete mode 100644 src/crent370/clib/@@soadd.c delete mode 100644 src/crent370/clib/@@soadd.o delete mode 100644 src/crent370/clib/@@soadd.s delete mode 100644 src/crent370/clib/@@sodel.c delete mode 100644 src/crent370/clib/@@sodel.o delete mode 100644 src/crent370/clib/@@sodel.s delete mode 100644 src/crent370/clib/@@sofind.c delete mode 100644 src/crent370/clib/@@sofind.o delete mode 100644 src/crent370/clib/@@sofind.s delete mode 100644 src/crent370/clib/@@soupd.c delete mode 100644 src/crent370/clib/@@soupd.o delete mode 100644 src/crent370/clib/@@soupd.s delete mode 100644 src/crent370/clib/@@ssfind.c delete mode 100644 src/crent370/clib/@@ssfind.o delete mode 100644 src/crent370/clib/@@ssfind.s delete mode 100644 src/crent370/clib/@@ssfree.c delete mode 100644 src/crent370/clib/@@ssfree.o delete mode 100644 src/crent370/clib/@@ssfree.s delete mode 100644 src/crent370/clib/@@ssib.c delete mode 100644 src/crent370/clib/@@ssib.o delete mode 100644 src/crent370/clib/@@ssib.s delete mode 100644 src/crent370/clib/@@ssinst.c delete mode 100644 src/crent370/clib/@@ssinst.o delete mode 100644 src/crent370/clib/@@ssinst.s delete mode 100644 src/crent370/clib/@@ssnew.c delete mode 100644 src/crent370/clib/@@ssnew.o delete mode 100644 src/crent370/clib/@@ssnew.s delete mode 100644 src/crent370/clib/@@ssrem.c delete mode 100644 src/crent370/clib/@@ssrem.o delete mode 100644 src/crent370/clib/@@ssrem.s delete mode 100644 src/crent370/clib/@@ssremn.c delete mode 100644 src/crent370/clib/@@ssremn.o delete mode 100644 src/crent370/clib/@@ssremn.s delete mode 100644 src/crent370/clib/@@start.c delete mode 100644 src/crent370/clib/@@start.o delete mode 100644 src/crent370/clib/@@start.s delete mode 100644 src/crent370/clib/@@stderr.c delete mode 100644 src/crent370/clib/@@stderr.o delete mode 100644 src/crent370/clib/@@stderr.s delete mode 100644 src/crent370/clib/@@stdin.c delete mode 100644 src/crent370/clib/@@stdin.o delete mode 100644 src/crent370/clib/@@stdin.s delete mode 100644 src/crent370/clib/@@stdout.c delete mode 100644 src/crent370/clib/@@stdout.o delete mode 100644 src/crent370/clib/@@stdout.s delete mode 100644 src/crent370/clib/@@steplb.c delete mode 100644 src/crent370/clib/@@steplb.o delete mode 100644 src/crent370/clib/@@steplb.s delete mode 100644 src/crent370/clib/@@stymd.c delete mode 100644 src/crent370/clib/@@stymd.o delete mode 100644 src/crent370/clib/@@stymd.s delete mode 100644 src/crent370/clib/@@sudo.c delete mode 100644 src/crent370/clib/@@sudo.o delete mode 100644 src/crent370/clib/@@sudo.s delete mode 100644 src/crent370/clib/@@sukydo.c delete mode 100644 src/crent370/clib/@@sukydo.o delete mode 100644 src/crent370/clib/@@sukydo.s delete mode 100644 src/crent370/clib/@@super.c delete mode 100644 src/crent370/clib/@@super.o delete mode 100644 src/crent370/clib/@@super.s delete mode 100644 src/crent370/clib/@@svfmap.c delete mode 100644 src/crent370/clib/@@svfmap.o delete mode 100644 src/crent370/clib/@@svfmap.s delete mode 100644 src/crent370/clib/@@svfree.c delete mode 100644 src/crent370/clib/@@svfree.o delete mode 100644 src/crent370/clib/@@svfree.s delete mode 100644 src/crent370/clib/@@svnew.c delete mode 100644 src/crent370/clib/@@svnew.o delete mode 100644 src/crent370/clib/@@svnew.s delete mode 100644 src/crent370/clib/@@svset.c delete mode 100644 src/crent370/clib/@@svset.o delete mode 100644 src/crent370/clib/@@svset.s delete mode 100644 src/crent370/clib/@@tiot.c delete mode 100644 src/crent370/clib/@@tiot.o delete mode 100644 src/crent370/clib/@@tiot.s delete mode 100644 src/crent370/clib/@@tminit.c delete mode 100644 src/crent370/clib/@@tminit.o delete mode 100644 src/crent370/clib/@@tminit.s delete mode 100644 src/crent370/clib/@@tmrecb.c delete mode 100644 src/crent370/clib/@@tmrecb.o delete mode 100644 src/crent370/clib/@@tmrecb.s delete mode 100644 src/crent370/clib/@@tmrece.c delete mode 100644 src/crent370/clib/@@tmrece.o delete mode 100644 src/crent370/clib/@@tmrece.s delete mode 100644 src/crent370/clib/@@tmreck.c delete mode 100644 src/crent370/clib/@@tmreck.o delete mode 100644 src/crent370/clib/@@tmreck.s delete mode 100644 src/crent370/clib/@@tmrfue.c delete mode 100644 src/crent370/clib/@@tmrfue.o delete mode 100644 src/crent370/clib/@@tmrfue.s delete mode 100644 src/crent370/clib/@@tmrfuk.c delete mode 100644 src/crent370/clib/@@tmrfuk.o delete mode 100644 src/crent370/clib/@@tmrfuk.s delete mode 100644 src/crent370/clib/@@tmrfun.c delete mode 100644 src/crent370/clib/@@tmrfun.o delete mode 100644 src/crent370/clib/@@tmrfun.s delete mode 100644 src/crent370/clib/@@tmrget.c delete mode 100644 src/crent370/clib/@@tmrget.o delete mode 100644 src/crent370/clib/@@tmrget.s delete mode 100644 src/crent370/clib/@@tmrid.c delete mode 100644 src/crent370/clib/@@tmrid.o delete mode 100644 src/crent370/clib/@@tmrid.s delete mode 100644 src/crent370/clib/@@tmsecs.c delete mode 100644 src/crent370/clib/@@tmsecs.o delete mode 100644 src/crent370/clib/@@tmsecs.s delete mode 100644 src/crent370/clib/@@tmstop.c delete mode 100644 src/crent370/clib/@@tmstop.o delete mode 100644 src/crent370/clib/@@tmstop.s delete mode 100644 src/crent370/clib/@@tmstrt.c delete mode 100644 src/crent370/clib/@@tmstrt.o delete mode 100644 src/crent370/clib/@@tmstrt.s delete mode 100644 src/crent370/clib/@@tmthrd.c delete mode 100644 src/crent370/clib/@@tmthrd.o delete mode 100644 src/crent370/clib/@@tmthrd.s delete mode 100644 src/crent370/clib/@@tolow.c delete mode 100644 src/crent370/clib/@@tolow.o delete mode 100644 src/crent370/clib/@@tolow.s delete mode 100644 src/crent370/clib/@@toup.c delete mode 100644 src/crent370/clib/@@toup.o delete mode 100644 src/crent370/clib/@@toup.s delete mode 100644 src/crent370/clib/@@tqedis.c delete mode 100644 src/crent370/clib/@@tqedis.o delete mode 100644 src/crent370/clib/@@tqedis.s delete mode 100644 src/crent370/clib/@@tqeena.c delete mode 100644 src/crent370/clib/@@tqeena.o delete mode 100644 src/crent370/clib/@@tqeena.s delete mode 100644 src/crent370/clib/@@tqeget.c delete mode 100644 src/crent370/clib/@@tqeget.o delete mode 100644 src/crent370/clib/@@tqeget.s delete mode 100644 src/crent370/clib/@@tqeprg.c delete mode 100644 src/crent370/clib/@@tqeprg.o delete mode 100644 src/crent370/clib/@@tqeprg.s delete mode 100644 src/crent370/clib/@@tqerst.c delete mode 100644 src/crent370/clib/@@tqerst.o delete mode 100644 src/crent370/clib/@@tqerst.s delete mode 100644 src/crent370/clib/@@tqnew.c delete mode 100644 src/crent370/clib/@@tqnew.o delete mode 100644 src/crent370/clib/@@tqnew.s delete mode 100644 src/crent370/clib/@@try.c delete mode 100644 src/crent370/clib/@@try.o delete mode 100644 src/crent370/clib/@@try.s delete mode 100644 src/crent370/clib/@@tx delete mode 100644 src/crent370/clib/@@txbfal.c delete mode 100644 src/crent370/clib/@@txbfal.o delete mode 100644 src/crent370/clib/@@txbfal.s delete mode 100644 src/crent370/clib/@@txbfte.c delete mode 100644 src/crent370/clib/@@txbfte.o delete mode 100644 src/crent370/clib/@@txbfte.s delete mode 100644 src/crent370/clib/@@txbksz.c delete mode 100644 src/crent370/clib/@@txbksz.o delete mode 100644 src/crent370/clib/@@txbksz.s delete mode 100644 src/crent370/clib/@@txblk.c delete mode 100644 src/crent370/clib/@@txblk.o delete mode 100644 src/crent370/clib/@@txblk.s delete mode 100644 src/crent370/clib/@@txbufl.c delete mode 100644 src/crent370/clib/@@txbufl.o delete mode 100644 src/crent370/clib/@@txbufl.s delete mode 100644 src/crent370/clib/@@txbufn.c delete mode 100644 src/crent370/clib/@@txbufn.o delete mode 100644 src/crent370/clib/@@txbufn.s delete mode 100644 src/crent370/clib/@@txbufo.c delete mode 100644 src/crent370/clib/@@txbufo.o delete mode 100644 src/crent370/clib/@@txbufo.s delete mode 100644 src/crent370/clib/@@txcat.c delete mode 100644 src/crent370/clib/@@txcat.o delete mode 100644 src/crent370/clib/@@txcat.s delete mode 100644 src/crent370/clib/@@txcopy.c delete mode 100644 src/crent370/clib/@@txcopy.o delete mode 100644 src/crent370/clib/@@txcopy.s delete mode 100644 src/crent370/clib/@@txcyl.c delete mode 100644 src/crent370/clib/@@txcyl.o delete mode 100644 src/crent370/clib/@@txcyl.s delete mode 100644 src/crent370/clib/@@txddn.c delete mode 100644 src/crent370/clib/@@txddn.o delete mode 100644 src/crent370/clib/@@txddn.s delete mode 100644 src/crent370/clib/@@txdel.c delete mode 100644 src/crent370/clib/@@txdel.o delete mode 100644 src/crent370/clib/@@txdel.s delete mode 100644 src/crent370/clib/@@txden.c delete mode 100644 src/crent370/clib/@@txden.o delete mode 100644 src/crent370/clib/@@txden.s delete mode 100644 src/crent370/clib/@@txdest.c delete mode 100644 src/crent370/clib/@@txdest.o delete mode 100644 src/crent370/clib/@@txdest.s delete mode 100644 src/crent370/clib/@@txdir.c delete mode 100644 src/crent370/clib/@@txdir.o delete mode 100644 src/crent370/clib/@@txdir.s delete mode 100644 src/crent370/clib/@@txdmy.c delete mode 100644 src/crent370/clib/@@txdmy.o delete mode 100644 src/crent370/clib/@@txdmy.s delete mode 100644 src/crent370/clib/@@txdsn.c delete mode 100644 src/crent370/clib/@@txdsn.o delete mode 100644 src/crent370/clib/@@txdsn.s delete mode 100644 src/crent370/clib/@@txerop.c delete mode 100644 src/crent370/clib/@@txerop.o delete mode 100644 src/crent370/clib/@@txerop.s delete mode 100644 src/crent370/clib/@@txexpd.c delete mode 100644 src/crent370/clib/@@txexpd.o delete mode 100644 src/crent370/clib/@@txexpd.s delete mode 100644 src/crent370/clib/@@txfcb.c delete mode 100644 src/crent370/clib/@@txfcb.o delete mode 100644 src/crent370/clib/@@txfcb.s delete mode 100644 src/crent370/clib/@@txform.c delete mode 100644 src/crent370/clib/@@txform.o delete mode 100644 src/crent370/clib/@@txform.s delete mode 100644 src/crent370/clib/@@txhold.c delete mode 100644 src/crent370/clib/@@txhold.o delete mode 100644 src/crent370/clib/@@txhold.s delete mode 100644 src/crent370/clib/@@txinpu.c delete mode 100644 src/crent370/clib/@@txinpu.o delete mode 100644 src/crent370/clib/@@txinpu.s delete mode 100644 src/crent370/clib/@@txkeep.c delete mode 100644 src/crent370/clib/@@txkeep.o delete mode 100644 src/crent370/clib/@@txkeep.s delete mode 100644 src/crent370/clib/@@txkeyl.c delete mode 100644 src/crent370/clib/@@txkeyl.o delete mode 100644 src/crent370/clib/@@txkeyl.s delete mode 100644 src/crent370/clib/@@txlabe.c delete mode 100644 src/crent370/clib/@@txlabe.o delete mode 100644 src/crent370/clib/@@txlabe.s delete mode 100644 src/crent370/clib/@@txlmct.c delete mode 100644 src/crent370/clib/@@txlmct.o delete mode 100644 src/crent370/clib/@@txlmct.s delete mode 100644 src/crent370/clib/@@txlrec.c delete mode 100644 src/crent370/clib/@@txlrec.o delete mode 100644 src/crent370/clib/@@txlrec.s delete mode 100644 src/crent370/clib/@@txmod.c delete mode 100644 src/crent370/clib/@@txmod.o delete mode 100644 src/crent370/clib/@@txmod.s delete mode 100644 src/crent370/clib/@@txncp.c delete mode 100644 src/crent370/clib/@@txncp.o delete mode 100644 src/crent370/clib/@@txncp.s delete mode 100644 src/crent370/clib/@@txnew.c delete mode 100644 src/crent370/clib/@@txnew.o delete mode 100644 src/crent370/clib/@@txnew.s delete mode 100644 src/crent370/clib/@@txold.c delete mode 100644 src/crent370/clib/@@txold.o delete mode 100644 src/crent370/clib/@@txold.s delete mode 100644 src/crent370/clib/@@txorg.c delete mode 100644 src/crent370/clib/@@txorg.o delete mode 100644 src/crent370/clib/@@txorg.s delete mode 100644 src/crent370/clib/@@txoutp.c delete mode 100644 src/crent370/clib/@@txoutp.o delete mode 100644 src/crent370/clib/@@txoutp.s delete mode 100644 src/crent370/clib/@@txpara.c delete mode 100644 src/crent370/clib/@@txpara.o delete mode 100644 src/crent370/clib/@@txpara.s delete mode 100644 src/crent370/clib/@@txperm.c delete mode 100644 src/crent370/clib/@@txperm.o delete mode 100644 src/crent370/clib/@@txperm.s delete mode 100644 src/crent370/clib/@@txpgm.c delete mode 100644 src/crent370/clib/@@txpgm.o delete mode 100644 src/crent370/clib/@@txpgm.s delete mode 100644 src/crent370/clib/@@txpriv.c delete mode 100644 src/crent370/clib/@@txpriv.o delete mode 100644 src/crent370/clib/@@txpriv.s delete mode 100644 src/crent370/clib/@@txprot.c delete mode 100644 src/crent370/clib/@@txprot.o delete mode 100644 src/crent370/clib/@@txprot.s delete mode 100644 src/crent370/clib/@@txrddn.c delete mode 100644 src/crent370/clib/@@txrddn.o delete mode 100644 src/crent370/clib/@@txrddn.s delete mode 100644 src/crent370/clib/@@txrecf.c delete mode 100644 src/crent370/clib/@@txrecf.o delete mode 100644 src/crent370/clib/@@txrecf.s delete mode 100644 src/crent370/clib/@@txretp.c delete mode 100644 src/crent370/clib/@@txretp.o delete mode 100644 src/crent370/clib/@@txretp.s delete mode 100644 src/crent370/clib/@@txrlse.c delete mode 100644 src/crent370/clib/@@txrlse.o delete mode 100644 src/crent370/clib/@@txrlse.s delete mode 100644 src/crent370/clib/@@txrnd.c delete mode 100644 src/crent370/clib/@@txrnd.o delete mode 100644 src/crent370/clib/@@txrnd.s delete mode 100644 src/crent370/clib/@@txseq.c delete mode 100644 src/crent370/clib/@@txseq.o delete mode 100644 src/crent370/clib/@@txseq.s delete mode 100644 src/crent370/clib/@@txshr.c delete mode 100644 src/crent370/clib/@@txshr.o delete mode 100644 src/crent370/clib/@@txshr.s delete mode 100644 src/crent370/clib/@@txspac.c delete mode 100644 src/crent370/clib/@@txspac.o delete mode 100644 src/crent370/clib/@@txspac.s delete mode 100644 src/crent370/clib/@@txsyso.c delete mode 100644 src/crent370/clib/@@txsyso.o delete mode 100644 src/crent370/clib/@@txsyso.s delete mode 100644 src/crent370/clib/@@txterm.c delete mode 100644 src/crent370/clib/@@txterm.o delete mode 100644 src/crent370/clib/@@txterm.s delete mode 100644 src/crent370/clib/@@txtrk.c delete mode 100644 src/crent370/clib/@@txtrk.o delete mode 100644 src/crent370/clib/@@txtrk.s delete mode 100644 src/crent370/clib/@@txtrtc.c delete mode 100644 src/crent370/clib/@@txtrtc.o delete mode 100644 src/crent370/clib/@@txtrtc.s delete mode 100644 src/crent370/clib/@@txucat.c delete mode 100644 src/crent370/clib/@@txucat.o delete mode 100644 src/crent370/clib/@@txucat.s delete mode 100644 src/crent370/clib/@@txucs.c delete mode 100644 src/crent370/clib/@@txucs.o delete mode 100644 src/crent370/clib/@@txucs.s delete mode 100644 src/crent370/clib/@@txunal.c delete mode 100644 src/crent370/clib/@@txunal.o delete mode 100644 src/crent370/clib/@@txunal.s delete mode 100644 src/crent370/clib/@@txunct.c delete mode 100644 src/crent370/clib/@@txunct.o delete mode 100644 src/crent370/clib/@@txunct.s delete mode 100644 src/crent370/clib/@@txunit.c delete mode 100644 src/crent370/clib/@@txunit.o delete mode 100644 src/crent370/clib/@@txunit.s delete mode 100644 src/crent370/clib/@@txvlct.c delete mode 100644 src/crent370/clib/@@txvlct.o delete mode 100644 src/crent370/clib/@@txvlct.s delete mode 100644 src/crent370/clib/@@txvols.c delete mode 100644 src/crent370/clib/@@txvols.o delete mode 100644 src/crent370/clib/@@txvols.s delete mode 100644 src/crent370/clib/@@txvseq.c delete mode 100644 src/crent370/clib/@@txvseq.o delete mode 100644 src/crent370/clib/@@txvseq.s delete mode 100644 src/crent370/clib/@@tzget.c delete mode 100644 src/crent370/clib/@@tzget.o delete mode 100644 src/crent370/clib/@@tzget.s delete mode 100644 src/crent370/clib/@@tzset.c delete mode 100644 src/crent370/clib/@@tzset.o delete mode 100644 src/crent370/clib/@@tzset.s delete mode 100644 src/crent370/clib/@@uastep.c delete mode 100644 src/crent370/clib/@@uastep.o delete mode 100644 src/crent370/clib/@@uastep.s delete mode 100644 src/crent370/clib/@@uatask.c delete mode 100644 src/crent370/clib/@@uatask.o delete mode 100644 src/crent370/clib/@@uatask.s delete mode 100644 src/crent370/clib/@@udec.c delete mode 100644 src/crent370/clib/@@udec.o delete mode 100644 src/crent370/clib/@@udec.s delete mode 100644 src/crent370/clib/@@uinc.c delete mode 100644 src/crent370/clib/@@uinc.o delete mode 100644 src/crent370/clib/@@uinc.s delete mode 100644 src/crent370/clib/@@userex.c delete mode 100644 src/crent370/clib/@@userex.o delete mode 100644 src/crent370/clib/@@userex.s delete mode 100644 src/crent370/clib/@@vscinv.c delete mode 100644 src/crent370/clib/@@vscinv.o delete mode 100644 src/crent370/clib/@@vscinv.s delete mode 100644 src/crent370/clib/@@vsclos.c delete mode 100644 src/crent370/clib/@@vsclos.o delete mode 100644 src/crent370/clib/@@vsclos.s delete mode 100644 src/crent370/clib/@@vsclr.c delete mode 100644 src/crent370/clib/@@vsclr.o delete mode 100644 src/crent370/clib/@@vsclr.s delete mode 100644 src/crent370/clib/@@vsdel.c delete mode 100644 src/crent370/clib/@@vsdel.o delete mode 100644 src/crent370/clib/@@vsdel.s delete mode 100644 src/crent370/clib/@@vseof.c delete mode 100644 src/crent370/clib/@@vseof.o delete mode 100644 src/crent370/clib/@@vseof.s delete mode 100644 src/crent370/clib/@@vserr.c delete mode 100644 src/crent370/clib/@@vserr.o delete mode 100644 src/crent370/clib/@@vserr.s delete mode 100644 src/crent370/clib/@@vslrec.c delete mode 100644 src/crent370/clib/@@vslrec.o delete mode 100644 src/crent370/clib/@@vslrec.s delete mode 100644 src/crent370/clib/@@vsmdfy.c delete mode 100644 src/crent370/clib/@@vsmdfy.o delete mode 100644 src/crent370/clib/@@vsmdfy.s delete mode 100644 src/crent370/clib/@@vsopen.c delete mode 100644 src/crent370/clib/@@vsopen.o delete mode 100644 src/crent370/clib/@@vsopen.s delete mode 100644 src/crent370/clib/@@vsread.c delete mode 100644 src/crent370/clib/@@vsread.o delete mode 100644 src/crent370/clib/@@vsread.s delete mode 100644 src/crent370/clib/@@vsshwc.c delete mode 100644 src/crent370/clib/@@vsshwc.o delete mode 100644 src/crent370/clib/@@vsshwc.s delete mode 100644 src/crent370/clib/@@vssteq.c delete mode 100644 src/crent370/clib/@@vssteq.o delete mode 100644 src/crent370/clib/@@vssteq.s delete mode 100644 src/crent370/clib/@@vsstge.c delete mode 100644 src/crent370/clib/@@vsstge.o delete mode 100644 src/crent370/clib/@@vsstge.s delete mode 100644 src/crent370/clib/@@vstell.c delete mode 100644 src/crent370/clib/@@vstell.o delete mode 100644 src/crent370/clib/@@vstell.s delete mode 100644 src/crent370/clib/@@vsupdt.c delete mode 100644 src/crent370/clib/@@vsupdt.o delete mode 100644 src/crent370/clib/@@vsupdt.s delete mode 100644 src/crent370/clib/@@vswrit.c delete mode 100644 src/crent370/clib/@@vswrit.o delete mode 100644 src/crent370/clib/@@vswrit.s delete mode 100644 src/crent370/clib/@@vsxeof.c delete mode 100644 src/crent370/clib/@@vsxeof.o delete mode 100644 src/crent370/clib/@@vsxeof.s delete mode 100644 src/crent370/clib/@@vsxerr.c delete mode 100644 src/crent370/clib/@@vsxerr.o delete mode 100644 src/crent370/clib/@@vsxerr.s delete mode 100644 src/crent370/clib/@@wsaget.c delete mode 100644 src/crent370/clib/@@wsaget.o delete mode 100644 src/crent370/clib/@@wsaget.s delete mode 100644 src/crent370/clib/@@wtotb.c delete mode 100644 src/crent370/clib/@@wtotb.o delete mode 100644 src/crent370/clib/@@wtotb.s delete mode 100644 src/crent370/clib/@@xmpost.c delete mode 100644 src/crent370/clib/@@xmpost.o delete mode 100644 src/crent370/clib/@@xmpost.s delete mode 100644 src/crent370/clib/@@ymdts.c delete mode 100644 src/crent370/clib/@@ymdts.o delete mode 100644 src/crent370/clib/@@ymdts.s delete mode 100644 src/crent370/clib/@@ytd.c delete mode 100644 src/crent370/clib/@@ytd.o delete mode 100644 src/crent370/clib/@@ytd.s delete mode 100644 src/crent370/clib/@dbleps.c delete mode 100644 src/crent370/clib/@dbleps.o delete mode 100644 src/crent370/clib/@dbleps.s delete mode 100644 src/crent370/clib/@dblmax.c delete mode 100644 src/crent370/clib/@dblmax.o delete mode 100644 src/crent370/clib/@dblmax.s delete mode 100644 src/crent370/clib/@dblmin.c delete mode 100644 src/crent370/clib/@dblmin.o delete mode 100644 src/crent370/clib/@dblmin.s delete mode 100644 src/crent370/clib/@flteps.c delete mode 100644 src/crent370/clib/@flteps.o delete mode 100644 src/crent370/clib/@flteps.s delete mode 100644 src/crent370/clib/@fltmax.c delete mode 100644 src/crent370/clib/@fltmax.o delete mode 100644 src/crent370/clib/@fltmax.s delete mode 100644 src/crent370/clib/@fltmin.c delete mode 100644 src/crent370/clib/@fltmin.o delete mode 100644 src/crent370/clib/@fltmin.s delete mode 100644 src/crent370/clib/abort.c delete mode 100644 src/crent370/clib/abort.o delete mode 100644 src/crent370/clib/abort.s delete mode 100644 src/crent370/clib/abs.c delete mode 100644 src/crent370/clib/abs.o delete mode 100644 src/crent370/clib/abs.s delete mode 100644 src/crent370/clib/acos.c delete mode 100644 src/crent370/clib/acos.o delete mode 100644 src/crent370/clib/acos.s delete mode 100644 src/crent370/clib/asctime.c delete mode 100644 src/crent370/clib/asctime.o delete mode 100644 src/crent370/clib/asctime.s delete mode 100644 src/crent370/clib/asin.c delete mode 100644 src/crent370/clib/asin.o delete mode 100644 src/crent370/clib/asin.s delete mode 100644 src/crent370/clib/atan.c delete mode 100644 src/crent370/clib/atan.o delete mode 100644 src/crent370/clib/atan.s delete mode 100644 src/crent370/clib/atan2.c delete mode 100644 src/crent370/clib/atan2.o delete mode 100644 src/crent370/clib/atan2.s delete mode 100644 src/crent370/clib/atexit.c delete mode 100644 src/crent370/clib/atexit.o delete mode 100644 src/crent370/clib/atexit.s delete mode 100644 src/crent370/clib/atof.c delete mode 100644 src/crent370/clib/atof.o delete mode 100644 src/crent370/clib/atof.s delete mode 100644 src/crent370/clib/atoi.c delete mode 100644 src/crent370/clib/atoi.o delete mode 100644 src/crent370/clib/atoi.s delete mode 100644 src/crent370/clib/atol.c delete mode 100644 src/crent370/clib/atol.o delete mode 100644 src/crent370/clib/atol.s delete mode 100644 src/crent370/clib/bcopy.c delete mode 100644 src/crent370/clib/bcopy.o delete mode 100644 src/crent370/clib/bcopy.s delete mode 100644 src/crent370/clib/bsearch.c delete mode 100644 src/crent370/clib/bsearch.o delete mode 100644 src/crent370/clib/bsearch.s delete mode 100644 src/crent370/clib/calloc.c delete mode 100644 src/crent370/clib/calloc.o delete mode 100644 src/crent370/clib/calloc.s delete mode 100644 src/crent370/clib/ceil.c delete mode 100644 src/crent370/clib/ceil.o delete mode 100644 src/crent370/clib/ceil.s delete mode 100644 src/crent370/clib/cib delete mode 100644 src/crent370/clib/clearerr.c delete mode 100644 src/crent370/clib/clearerr.o delete mode 100644 src/crent370/clib/clearerr.s delete mode 100644 src/crent370/clib/clib.c delete mode 100644 src/crent370/clib/clibary.c delete mode 100644 src/crent370/clib/clibary.o delete mode 100644 src/crent370/clib/clibary.s delete mode 100644 src/crent370/clib/cliblock.c delete mode 100644 src/crent370/clib/clock.c delete mode 100644 src/crent370/clib/clock.o delete mode 100644 src/crent370/clib/clock.s delete mode 100644 src/crent370/clib/cos.c delete mode 100644 src/crent370/clib/cos.o delete mode 100644 src/crent370/clib/cos.s delete mode 100644 src/crent370/clib/cosh.c delete mode 100644 src/crent370/clib/cosh.o delete mode 100644 src/crent370/clib/cosh.s delete mode 100644 src/crent370/clib/ctime.c delete mode 100644 src/crent370/clib/ctime.o delete mode 100644 src/crent370/clib/ctime.s delete mode 100644 src/crent370/clib/difftime.c delete mode 100644 src/crent370/clib/difftime.o delete mode 100644 src/crent370/clib/difftime.s delete mode 100644 src/crent370/clib/div.c delete mode 100644 src/crent370/clib/div.o delete mode 100644 src/crent370/clib/div.s delete mode 100644 src/crent370/clib/exit.c delete mode 100644 src/crent370/clib/exit.o delete mode 100644 src/crent370/clib/exit.s delete mode 100644 src/crent370/clib/exp.c delete mode 100644 src/crent370/clib/exp.o delete mode 100644 src/crent370/clib/exp.s delete mode 100644 src/crent370/clib/fabs.c delete mode 100644 src/crent370/clib/fabs.o delete mode 100644 src/crent370/clib/fabs.s delete mode 100644 src/crent370/clib/fclose.c delete mode 100644 src/crent370/clib/fclose.o delete mode 100644 src/crent370/clib/fclose.s delete mode 100644 src/crent370/clib/fctprtf@.c delete mode 100644 src/crent370/clib/fctprtf@.o delete mode 100644 src/crent370/clib/fctprtf@.s delete mode 100644 src/crent370/clib/feof.c delete mode 100644 src/crent370/clib/feof.o delete mode 100644 src/crent370/clib/feof.s delete mode 100644 src/crent370/clib/ferror.c delete mode 100644 src/crent370/clib/ferror.o delete mode 100644 src/crent370/clib/ferror.s delete mode 100644 src/crent370/clib/fflush.c delete mode 100644 src/crent370/clib/fflush.o delete mode 100644 src/crent370/clib/fflush.s delete mode 100644 src/crent370/clib/fgetc.c delete mode 100644 src/crent370/clib/fgetc.o delete mode 100644 src/crent370/clib/fgetc.s delete mode 100644 src/crent370/clib/fgetpos.c delete mode 100644 src/crent370/clib/fgetpos.o delete mode 100644 src/crent370/clib/fgetpos.s delete mode 100644 src/crent370/clib/fgets.c delete mode 100644 src/crent370/clib/fgets.o delete mode 100644 src/crent370/clib/fgets.s delete mode 100644 src/crent370/clib/floor.c delete mode 100644 src/crent370/clib/floor.o delete mode 100644 src/crent370/clib/floor.s delete mode 100644 src/crent370/clib/fmod.c delete mode 100644 src/crent370/clib/fmod.o delete mode 100644 src/crent370/clib/fmod.s delete mode 100644 src/crent370/clib/fopen.c delete mode 100644 src/crent370/clib/fopen.o delete mode 100644 src/crent370/clib/fopen.s delete mode 100644 src/crent370/clib/fprintf.c delete mode 100644 src/crent370/clib/fprintf.o delete mode 100644 src/crent370/clib/fprintf.s delete mode 100644 src/crent370/clib/fputc.c delete mode 100644 src/crent370/clib/fputc.o delete mode 100644 src/crent370/clib/fputc.s delete mode 100644 src/crent370/clib/fputs.c delete mode 100644 src/crent370/clib/fputs.o delete mode 100644 src/crent370/clib/fputs.s delete mode 100644 src/crent370/clib/fread.c delete mode 100644 src/crent370/clib/fread.o delete mode 100644 src/crent370/clib/fread.s delete mode 100644 src/crent370/clib/free.c delete mode 100644 src/crent370/clib/free.o delete mode 100644 src/crent370/clib/free.s delete mode 100644 src/crent370/clib/freopen.c delete mode 100644 src/crent370/clib/freopen.o delete mode 100644 src/crent370/clib/freopen.s delete mode 100644 src/crent370/clib/frexp.c delete mode 100644 src/crent370/clib/frexp.o delete mode 100644 src/crent370/clib/frexp.s delete mode 100644 src/crent370/clib/fscanf.c delete mode 100644 src/crent370/clib/fscanf.o delete mode 100644 src/crent370/clib/fscanf.s delete mode 100644 src/crent370/clib/fseek.c delete mode 100644 src/crent370/clib/fseek.o delete mode 100644 src/crent370/clib/fseek.s delete mode 100644 src/crent370/clib/fsetpos.c delete mode 100644 src/crent370/clib/fsetpos.o delete mode 100644 src/crent370/clib/fsetpos.s delete mode 100644 src/crent370/clib/ftell.c delete mode 100644 src/crent370/clib/ftell.o delete mode 100644 src/crent370/clib/ftell.s delete mode 100644 src/crent370/clib/fwrite.c delete mode 100644 src/crent370/clib/fwrite.o delete mode 100644 src/crent370/clib/fwrite.s delete mode 100644 src/crent370/clib/getc.c delete mode 100644 src/crent370/clib/getc.o delete mode 100644 src/crent370/clib/getc.s delete mode 100644 src/crent370/clib/getchar.c delete mode 100644 src/crent370/clib/getchar.o delete mode 100644 src/crent370/clib/getchar.s delete mode 100644 src/crent370/clib/getenv.c delete mode 100644 src/crent370/clib/getenv.o delete mode 100644 src/crent370/clib/getenv.s delete mode 100644 src/crent370/clib/getenvi.c delete mode 100644 src/crent370/clib/getenvi.o delete mode 100644 src/crent370/clib/getenvi.s delete mode 100644 src/crent370/clib/getmain.c delete mode 100644 src/crent370/clib/getmain.o delete mode 100644 src/crent370/clib/getmain.s delete mode 100644 src/crent370/clib/gets.c delete mode 100644 src/crent370/clib/gets.o delete mode 100644 src/crent370/clib/gets.s delete mode 100644 src/crent370/clib/gmtime.c delete mode 100644 src/crent370/clib/gmtime.o delete mode 100644 src/crent370/clib/gmtime.s delete mode 100644 src/crent370/clib/gmtime64.c delete mode 100644 src/crent370/clib/gmtimer.c delete mode 100644 src/crent370/clib/gmtimer.o delete mode 100644 src/crent370/clib/gmtimer.s delete mode 100644 src/crent370/clib/hello.c delete mode 100644 src/crent370/clib/hello.o delete mode 100644 src/crent370/clib/hello.s delete mode 100644 src/crent370/clib/idcams.c delete mode 100644 src/crent370/clib/idcams.o delete mode 100644 src/crent370/clib/idcams.s delete mode 100644 src/crent370/clib/iefssreq.c delete mode 100644 src/crent370/clib/iefssreq.o delete mode 100644 src/crent370/clib/iefssreq.s delete mode 100644 src/crent370/clib/ikjct441.c delete mode 100644 src/crent370/clib/ikjct441.o delete mode 100644 src/crent370/clib/ikjct441.s delete mode 100644 src/crent370/clib/initssob.c delete mode 100644 src/crent370/clib/initssob.o delete mode 100644 src/crent370/clib/initssob.s delete mode 100644 src/crent370/clib/isalnum.c delete mode 100644 src/crent370/clib/isalnum.o delete mode 100644 src/crent370/clib/isalnum.s delete mode 100644 src/crent370/clib/isalpha.c delete mode 100644 src/crent370/clib/isalpha.o delete mode 100644 src/crent370/clib/isalpha.s delete mode 100644 src/crent370/clib/iscntrl.c delete mode 100644 src/crent370/clib/iscntrl.o delete mode 100644 src/crent370/clib/iscntrl.s delete mode 100644 src/crent370/clib/isdigit.c delete mode 100644 src/crent370/clib/isdigit.o delete mode 100644 src/crent370/clib/isdigit.s delete mode 100644 src/crent370/clib/isgraph.c delete mode 100644 src/crent370/clib/isgraph.o delete mode 100644 src/crent370/clib/isgraph.s delete mode 100644 src/crent370/clib/islower.c delete mode 100644 src/crent370/clib/islower.o delete mode 100644 src/crent370/clib/islower.s delete mode 100644 src/crent370/clib/isprint.c delete mode 100644 src/crent370/clib/isprint.o delete mode 100644 src/crent370/clib/isprint.s delete mode 100644 src/crent370/clib/ispunct.c delete mode 100644 src/crent370/clib/ispunct.o delete mode 100644 src/crent370/clib/ispunct.s delete mode 100644 src/crent370/clib/isspace.c delete mode 100644 src/crent370/clib/isspace.o delete mode 100644 src/crent370/clib/isspace.s delete mode 100644 src/crent370/clib/isupper.c delete mode 100644 src/crent370/clib/isupper.o delete mode 100644 src/crent370/clib/isupper.s delete mode 100644 src/crent370/clib/isxdigit.c delete mode 100644 src/crent370/clib/isxdigit.o delete mode 100644 src/crent370/clib/isxdigit.s delete mode 100644 src/crent370/clib/labs.c delete mode 100644 src/crent370/clib/labs.o delete mode 100644 src/crent370/clib/labs.s delete mode 100644 src/crent370/clib/ldexp.c delete mode 100644 src/crent370/clib/ldexp.o delete mode 100644 src/crent370/clib/ldexp.s delete mode 100644 src/crent370/clib/ldiv.c delete mode 100644 src/crent370/clib/ldiv.o delete mode 100644 src/crent370/clib/ldiv.s delete mode 100644 src/crent370/clib/loadenv.c delete mode 100644 src/crent370/clib/loadenv.o delete mode 100644 src/crent370/clib/loadenv.s delete mode 100644 src/crent370/clib/localtim.c delete mode 100644 src/crent370/clib/localtim.o delete mode 100644 src/crent370/clib/localtim.s delete mode 100644 src/crent370/clib/localtmr.c delete mode 100644 src/crent370/clib/localtmr.o delete mode 100644 src/crent370/clib/localtmr.s delete mode 100644 src/crent370/clib/log.c delete mode 100644 src/crent370/clib/log.o delete mode 100644 src/crent370/clib/log.s delete mode 100644 src/crent370/clib/log10.c delete mode 100644 src/crent370/clib/log10.o delete mode 100644 src/crent370/clib/log10.s delete mode 100644 src/crent370/clib/longjmp.c delete mode 100644 src/crent370/clib/longjmp.o delete mode 100644 src/crent370/clib/longjmp.s delete mode 100644 src/crent370/clib/makefile delete mode 100644 src/crent370/clib/malloc.c delete mode 100644 src/crent370/clib/malloc.o delete mode 100644 src/crent370/clib/malloc.s delete mode 100644 src/crent370/clib/mblen.c delete mode 100644 src/crent370/clib/mblen.o delete mode 100644 src/crent370/clib/mblen.s delete mode 100644 src/crent370/clib/mbstowcs.c delete mode 100644 src/crent370/clib/mbstowcs.o delete mode 100644 src/crent370/clib/mbstowcs.s delete mode 100644 src/crent370/clib/mbtowc.c delete mode 100644 src/crent370/clib/mbtowc.o delete mode 100644 src/crent370/clib/mbtowc.s delete mode 100644 src/crent370/clib/memchr.c delete mode 100644 src/crent370/clib/memchr.o delete mode 100644 src/crent370/clib/memchr.s delete mode 100644 src/crent370/clib/memcmp.c delete mode 100644 src/crent370/clib/memcmp.o delete mode 100644 src/crent370/clib/memcmp.s delete mode 100644 src/crent370/clib/memcpy.c delete mode 100644 src/crent370/clib/memcpy.o delete mode 100644 src/crent370/clib/memcpy.s delete mode 100644 src/crent370/clib/memcpyp.c delete mode 100644 src/crent370/clib/memcpyp.o delete mode 100644 src/crent370/clib/memcpyp.s delete mode 100644 src/crent370/clib/memmove.c delete mode 100644 src/crent370/clib/memmove.o delete mode 100644 src/crent370/clib/memmove.s delete mode 100644 src/crent370/clib/memset.c delete mode 100644 src/crent370/clib/mktime.c delete mode 100644 src/crent370/clib/mktime.o delete mode 100644 src/crent370/clib/mktime.s delete mode 100644 src/crent370/clib/mktime64.c delete mode 100644 src/crent370/clib/mktime64.o delete mode 100644 src/crent370/clib/modf.c delete mode 100644 src/crent370/clib/modf.o delete mode 100644 src/crent370/clib/modf.s delete mode 100644 src/crent370/clib/mtxavail.c delete mode 100644 src/crent370/clib/mtxavail.o delete mode 100644 src/crent370/clib/mtxavail.s delete mode 100644 src/crent370/clib/mtxclup.c delete mode 100644 src/crent370/clib/mtxclup.o delete mode 100644 src/crent370/clib/mtxclup.s delete mode 100644 src/crent370/clib/mtxfree.c delete mode 100644 src/crent370/clib/mtxfree.o delete mode 100644 src/crent370/clib/mtxfree.s delete mode 100644 src/crent370/clib/mtxheld.c delete mode 100644 src/crent370/clib/mtxheld.o delete mode 100644 src/crent370/clib/mtxheld.s delete mode 100644 src/crent370/clib/mtxinit.c delete mode 100644 src/crent370/clib/mtxinit.o delete mode 100644 src/crent370/clib/mtxinit.s delete mode 100644 src/crent370/clib/mtxlock.c delete mode 100644 src/crent370/clib/mtxlock.o delete mode 100644 src/crent370/clib/mtxlock.s delete mode 100644 src/crent370/clib/mtxnew.c delete mode 100644 src/crent370/clib/mtxnew.o delete mode 100644 src/crent370/clib/mtxnew.s delete mode 100644 src/crent370/clib/mtxnheld.c delete mode 100644 src/crent370/clib/mtxnheld.o delete mode 100644 src/crent370/clib/mtxnheld.s delete mode 100644 src/crent370/clib/mtxtry.c delete mode 100644 src/crent370/clib/mtxtry.o delete mode 100644 src/crent370/clib/mtxtry.s delete mode 100644 src/crent370/clib/mtxunlk.c delete mode 100644 src/crent370/clib/mtxunlk.o delete mode 100644 src/crent370/clib/mtxunlk.s delete mode 100644 src/crent370/clib/on@exit.c delete mode 100644 src/crent370/clib/on@exit.o delete mode 100644 src/crent370/clib/on@exit.s delete mode 100644 src/crent370/clib/perror.c delete mode 100644 src/crent370/clib/perror.o delete mode 100644 src/crent370/clib/perror.s delete mode 100644 src/crent370/clib/pow.c delete mode 100644 src/crent370/clib/pow.o delete mode 100644 src/crent370/clib/pow.s delete mode 100644 src/crent370/clib/printf.c delete mode 100644 src/crent370/clib/printf.o delete mode 100644 src/crent370/clib/printf.s delete mode 100644 src/crent370/clib/printf@.c delete mode 100644 src/crent370/clib/printf@.o delete mode 100644 src/crent370/clib/printf@.s delete mode 100644 src/crent370/clib/putc.c delete mode 100644 src/crent370/clib/putc.o delete mode 100644 src/crent370/clib/putc.s delete mode 100644 src/crent370/clib/putchar.c delete mode 100644 src/crent370/clib/putchar.o delete mode 100644 src/crent370/clib/putchar.s delete mode 100644 src/crent370/clib/putenv.c delete mode 100644 src/crent370/clib/putenv.o delete mode 100644 src/crent370/clib/putenv.s delete mode 100644 src/crent370/clib/puts.c delete mode 100644 src/crent370/clib/puts.o delete mode 100644 src/crent370/clib/puts.s delete mode 100644 src/crent370/clib/qsort.c delete mode 100644 src/crent370/clib/qsort.o delete mode 100644 src/crent370/clib/qsort.s delete mode 100644 src/crent370/clib/raise.c delete mode 100644 src/crent370/clib/raise.o delete mode 100644 src/crent370/clib/raise.s delete mode 100644 src/crent370/clib/rand.c delete mode 100644 src/crent370/clib/rand.o delete mode 100644 src/crent370/clib/rand.s delete mode 100644 src/crent370/clib/rclose.c delete mode 100644 src/crent370/clib/rclose.o delete mode 100644 src/crent370/clib/rclose.s delete mode 100644 src/crent370/clib/realloc.c delete mode 100644 src/crent370/clib/realloc.o delete mode 100644 src/crent370/clib/realloc.s delete mode 100644 src/crent370/clib/remove.c delete mode 100644 src/crent370/clib/remove.o delete mode 100644 src/crent370/clib/remove.s delete mode 100644 src/crent370/clib/rename.c delete mode 100644 src/crent370/clib/rename.o delete mode 100644 src/crent370/clib/rename.s delete mode 100644 src/crent370/clib/rewind.c delete mode 100644 src/crent370/clib/rewind.o delete mode 100644 src/crent370/clib/rewind.s delete mode 100644 src/crent370/clib/ropen.c delete mode 100644 src/crent370/clib/ropen.o delete mode 100644 src/crent370/clib/ropen.s delete mode 100644 src/crent370/clib/rread.c delete mode 100644 src/crent370/clib/rread.o delete mode 100644 src/crent370/clib/rread.s delete mode 100644 src/crent370/clib/rwrite.c delete mode 100644 src/crent370/clib/rwrite.o delete mode 100644 src/crent370/clib/rwrite.s delete mode 100644 src/crent370/clib/scanf.c delete mode 100644 src/crent370/clib/scanf.o delete mode 100644 src/crent370/clib/scanf.s delete mode 100644 src/crent370/clib/setbuf.c delete mode 100644 src/crent370/clib/setbuf.o delete mode 100644 src/crent370/clib/setbuf.s delete mode 100644 src/crent370/clib/setenv.c delete mode 100644 src/crent370/clib/setenv.o delete mode 100644 src/crent370/clib/setenv.s delete mode 100644 src/crent370/clib/setenvi.c delete mode 100644 src/crent370/clib/setenvi.o delete mode 100644 src/crent370/clib/setenvi.s delete mode 100644 src/crent370/clib/setlocal.c delete mode 100644 src/crent370/clib/setlocal.o delete mode 100644 src/crent370/clib/setlocal.s delete mode 100644 src/crent370/clib/setvbuf.c delete mode 100644 src/crent370/clib/setvbuf.o delete mode 100644 src/crent370/clib/setvbuf.s delete mode 100644 src/crent370/clib/signal.c delete mode 100644 src/crent370/clib/signal.o delete mode 100644 src/crent370/clib/signal.s delete mode 100644 src/crent370/clib/sin.c delete mode 100644 src/crent370/clib/sin.o delete mode 100644 src/crent370/clib/sin.s delete mode 100644 src/crent370/clib/sinh.c delete mode 100644 src/crent370/clib/sinh.o delete mode 100644 src/crent370/clib/sinh.s delete mode 100644 src/crent370/clib/sleep.c delete mode 100644 src/crent370/clib/sleep.o delete mode 100644 src/crent370/clib/sleep.s delete mode 100644 src/crent370/clib/snprintf.c delete mode 100644 src/crent370/clib/snprintf.o delete mode 100644 src/crent370/clib/snprintf.s delete mode 100644 src/crent370/clib/snprtf@.c delete mode 100644 src/crent370/clib/snprtf@.o delete mode 100644 src/crent370/clib/snprtf@.s delete mode 100644 src/crent370/clib/sprintf.c delete mode 100644 src/crent370/clib/sprintf.o delete mode 100644 src/crent370/clib/sprintf.s delete mode 100644 src/crent370/clib/sprintf@.c delete mode 100644 src/crent370/clib/sprintf@.o delete mode 100644 src/crent370/clib/sprintf@.s delete mode 100644 src/crent370/clib/sqrt.c delete mode 100644 src/crent370/clib/sqrt.o delete mode 100644 src/crent370/clib/sqrt.s delete mode 100644 src/crent370/clib/srand.c delete mode 100644 src/crent370/clib/srand.o delete mode 100644 src/crent370/clib/srand.s delete mode 100644 src/crent370/clib/sscanf.c delete mode 100644 src/crent370/clib/sscanf.o delete mode 100644 src/crent370/clib/sscanf.s delete mode 100644 src/crent370/clib/stdio.c delete mode 100644 src/crent370/clib/stdlib.c delete mode 100644 src/crent370/clib/strcat.c delete mode 100644 src/crent370/clib/strcat.o delete mode 100644 src/crent370/clib/strcat.s delete mode 100644 src/crent370/clib/strchr.c delete mode 100644 src/crent370/clib/strchr.o delete mode 100644 src/crent370/clib/strchr.s delete mode 100644 src/crent370/clib/strcmp.c delete mode 100644 src/crent370/clib/strcmp.o delete mode 100644 src/crent370/clib/strcmp.s delete mode 100644 src/crent370/clib/strcoll.c delete mode 100644 src/crent370/clib/strcoll.o delete mode 100644 src/crent370/clib/strcoll.s delete mode 100644 src/crent370/clib/strcpy.c delete mode 100644 src/crent370/clib/strcpy.o delete mode 100644 src/crent370/clib/strcpy.s delete mode 100644 src/crent370/clib/strcpyp.c delete mode 100644 src/crent370/clib/strcpyp.o delete mode 100644 src/crent370/clib/strcpyp.s delete mode 100644 src/crent370/clib/strcspn.c delete mode 100644 src/crent370/clib/strcspn.o delete mode 100644 src/crent370/clib/strcspn.s delete mode 100644 src/crent370/clib/strdup.c delete mode 100644 src/crent370/clib/strdup.o delete mode 100644 src/crent370/clib/strdup.s delete mode 100644 src/crent370/clib/strerror.c delete mode 100644 src/crent370/clib/strerror.o delete mode 100644 src/crent370/clib/strerror.s delete mode 100644 src/crent370/clib/strftime.c delete mode 100644 src/crent370/clib/strftime.o delete mode 100644 src/crent370/clib/strftime.s delete mode 100644 src/crent370/clib/stricmp.c delete mode 100644 src/crent370/clib/stricmp.o delete mode 100644 src/crent370/clib/stricmp.s delete mode 100644 src/crent370/clib/string.c delete mode 100644 src/crent370/clib/strlen.c delete mode 100644 src/crent370/clib/strlen.o delete mode 100644 src/crent370/clib/strlen.s delete mode 100644 src/crent370/clib/strncat.c delete mode 100644 src/crent370/clib/strncat.o delete mode 100644 src/crent370/clib/strncat.s delete mode 100644 src/crent370/clib/strncmp.c delete mode 100644 src/crent370/clib/strncmp.o delete mode 100644 src/crent370/clib/strncmp.s delete mode 100644 src/crent370/clib/strncmpi.c delete mode 100644 src/crent370/clib/strncmpi.o delete mode 100644 src/crent370/clib/strncmpi.s delete mode 100644 src/crent370/clib/strncpy.c delete mode 100644 src/crent370/clib/strncpy.o delete mode 100644 src/crent370/clib/strncpy.s delete mode 100644 src/crent370/clib/strpbrk.c delete mode 100644 src/crent370/clib/strpbrk.o delete mode 100644 src/crent370/clib/strpbrk.s delete mode 100644 src/crent370/clib/strrchr.c delete mode 100644 src/crent370/clib/strrchr.o delete mode 100644 src/crent370/clib/strrchr.s delete mode 100644 src/crent370/clib/strspn.c delete mode 100644 src/crent370/clib/strspn.o delete mode 100644 src/crent370/clib/strspn.s delete mode 100644 src/crent370/clib/strstr.c delete mode 100644 src/crent370/clib/strstr.o delete mode 100644 src/crent370/clib/strstr.s delete mode 100644 src/crent370/clib/strtod.c delete mode 100644 src/crent370/clib/strtod.o delete mode 100644 src/crent370/clib/strtod.s delete mode 100644 src/crent370/clib/strtok.c delete mode 100644 src/crent370/clib/strtok.o delete mode 100644 src/crent370/clib/strtok.s delete mode 100644 src/crent370/clib/strtol.c delete mode 100644 src/crent370/clib/strtol.o delete mode 100644 src/crent370/clib/strtol.s delete mode 100644 src/crent370/clib/strtoul.c delete mode 100644 src/crent370/clib/strtoul.o delete mode 100644 src/crent370/clib/strtoul.s delete mode 100644 src/crent370/clib/strxfrm.c delete mode 100644 src/crent370/clib/strxfrm.o delete mode 100644 src/crent370/clib/strxfrm.s delete mode 100644 src/crent370/clib/svcmain.c delete mode 100644 src/crent370/clib/svcmain.o delete mode 100644 src/crent370/clib/svcmain.s delete mode 100644 src/crent370/clib/system.c delete mode 100644 src/crent370/clib/system.o delete mode 100644 src/crent370/clib/system.s delete mode 100644 src/crent370/clib/tan.c delete mode 100644 src/crent370/clib/tan.o delete mode 100644 src/crent370/clib/tan.s delete mode 100644 src/crent370/clib/tanh.c delete mode 100644 src/crent370/clib/tanh.o delete mode 100644 src/crent370/clib/tanh.s delete mode 100644 src/crent370/clib/testlstv.c delete mode 100644 src/crent370/clib/testlstv.o delete mode 100644 src/crent370/clib/testlstv.s delete mode 100644 src/crent370/clib/time.c delete mode 100644 src/crent370/clib/time.o delete mode 100644 src/crent370/clib/time.s delete mode 100644 src/crent370/clib/tmpfile.c delete mode 100644 src/crent370/clib/tmpfile.o delete mode 100644 src/crent370/clib/tmpfile.s delete mode 100644 src/crent370/clib/tmpnam.c delete mode 100644 src/crent370/clib/tmpnam.o delete mode 100644 src/crent370/clib/tmpnam.s delete mode 100644 src/crent370/clib/tolower.c delete mode 100644 src/crent370/clib/tolower.o delete mode 100644 src/crent370/clib/tolower.s delete mode 100644 src/crent370/clib/toupper.c delete mode 100644 src/crent370/clib/toupper.o delete mode 100644 src/crent370/clib/toupper.s delete mode 100644 src/crent370/clib/tsocmd.c delete mode 100644 src/crent370/clib/tsocmd.o delete mode 100644 src/crent370/clib/tsocmd.s delete mode 100644 src/crent370/clib/tsocmdf.c delete mode 100644 src/crent370/clib/tsocmdf.o delete mode 100644 src/crent370/clib/tsocmdf.s delete mode 100644 src/crent370/clib/tzset.c delete mode 100644 src/crent370/clib/tzset.o delete mode 100644 src/crent370/clib/tzset.s delete mode 100644 src/crent370/clib/ungetc.c delete mode 100644 src/crent370/clib/ungetc.o delete mode 100644 src/crent370/clib/ungetc.s delete mode 100644 src/crent370/clib/unsetenv.c delete mode 100644 src/crent370/clib/unsetenv.o delete mode 100644 src/crent370/clib/unsetenv.s delete mode 100644 src/crent370/clib/usleep.c delete mode 100644 src/crent370/clib/usleep.o delete mode 100644 src/crent370/clib/usleep.s delete mode 100644 src/crent370/clib/vfprintf.c delete mode 100644 src/crent370/clib/vfprintf.o delete mode 100644 src/crent370/clib/vfprintf.s delete mode 100644 src/crent370/clib/vscinv.c delete mode 100644 src/crent370/clib/vscinv.o delete mode 100644 src/crent370/clib/vscinv.s delete mode 100644 src/crent370/clib/vsclear.c delete mode 100644 src/crent370/clib/vsclear.o delete mode 100644 src/crent370/clib/vsclear.s delete mode 100644 src/crent370/clib/vsclose.c delete mode 100644 src/crent370/clib/vsclose.o delete mode 100644 src/crent370/clib/vsclose.s delete mode 100644 src/crent370/clib/vsdelete.c delete mode 100644 src/crent370/clib/vsdelete.o delete mode 100644 src/crent370/clib/vsdelete.s delete mode 100644 src/crent370/clib/vseof.c delete mode 100644 src/crent370/clib/vseof.o delete mode 100644 src/crent370/clib/vseof.s delete mode 100644 src/crent370/clib/vserror.c delete mode 100644 src/crent370/clib/vserror.o delete mode 100644 src/crent370/clib/vserror.s delete mode 100644 src/crent370/clib/vslrecl.c delete mode 100644 src/crent370/clib/vslrecl.o delete mode 100644 src/crent370/clib/vslrecl.s delete mode 100644 src/crent370/clib/vsnprint.c delete mode 100644 src/crent370/clib/vsnprint.o delete mode 100644 src/crent370/clib/vsnprint.s delete mode 100644 src/crent370/clib/vsnprtf@.c delete mode 100644 src/crent370/clib/vsnprtf@.o delete mode 100644 src/crent370/clib/vsnprtf@.s delete mode 100644 src/crent370/clib/vsopen.c delete mode 100644 src/crent370/clib/vsopen.o delete mode 100644 src/crent370/clib/vsopen.s delete mode 100644 src/crent370/clib/vsprintf.c delete mode 100644 src/crent370/clib/vsprintf.o delete mode 100644 src/crent370/clib/vsprintf.s delete mode 100644 src/crent370/clib/vsprtf@.c delete mode 100644 src/crent370/clib/vsprtf@.o delete mode 100644 src/crent370/clib/vsprtf@.s delete mode 100644 src/crent370/clib/vsread.c delete mode 100644 src/crent370/clib/vsread.o delete mode 100644 src/crent370/clib/vsread.s delete mode 100644 src/crent370/clib/vssteq.c delete mode 100644 src/crent370/clib/vssteq.o delete mode 100644 src/crent370/clib/vssteq.s delete mode 100644 src/crent370/clib/vsstge.c delete mode 100644 src/crent370/clib/vsstge.o delete mode 100644 src/crent370/clib/vsstge.s delete mode 100644 src/crent370/clib/vstell.c delete mode 100644 src/crent370/clib/vstell.o delete mode 100644 src/crent370/clib/vstell.s delete mode 100644 src/crent370/clib/vsupdate.c delete mode 100644 src/crent370/clib/vsupdate.o delete mode 100644 src/crent370/clib/vsupdate.s delete mode 100644 src/crent370/clib/vswrite.c delete mode 100644 src/crent370/clib/vswrite.o delete mode 100644 src/crent370/clib/vswrite.s delete mode 100644 src/crent370/clib/vvprintf.c delete mode 100644 src/crent370/clib/vvprintf.o delete mode 100644 src/crent370/clib/vvprintf.s delete mode 100644 src/crent370/clib/vvscanf.c delete mode 100644 src/crent370/clib/vvscanf.o delete mode 100644 src/crent370/clib/vvscanf.s delete mode 100644 src/crent370/clib/vwtof.c delete mode 100644 src/crent370/clib/vwtof.o delete mode 100644 src/crent370/clib/vwtof.s delete mode 100644 src/crent370/clib/vwtorf.c delete mode 100644 src/crent370/clib/vwtorf.o delete mode 100644 src/crent370/clib/vwtorf.s delete mode 100644 src/crent370/clib/wcstombs.c delete mode 100644 src/crent370/clib/wcstombs.o delete mode 100644 src/crent370/clib/wcstombs.s delete mode 100644 src/crent370/clib/wctomb.c delete mode 100644 src/crent370/clib/wctomb.o delete mode 100644 src/crent370/clib/wctomb.s delete mode 100644 src/crent370/clib/wto.c delete mode 100644 src/crent370/clib/wto.o delete mode 100644 src/crent370/clib/wto.s delete mode 100644 src/crent370/clib/wtodump.c delete mode 100644 src/crent370/clib/wtodump.o delete mode 100644 src/crent370/clib/wtodump.s delete mode 100644 src/crent370/clib/wtodumpf.c delete mode 100644 src/crent370/clib/wtodumpf.o delete mode 100644 src/crent370/clib/wtodumpf.s delete mode 100644 src/crent370/clib/wtof.c delete mode 100644 src/crent370/clib/wtof.o delete mode 100644 src/crent370/clib/wtof.s delete mode 100644 src/crent370/clib/wtoline.c delete mode 100644 src/crent370/clib/wtoline.o delete mode 100644 src/crent370/clib/wtoline.s delete mode 100644 src/crent370/clib/wtor.c delete mode 100644 src/crent370/clib/wtor.o delete mode 100644 src/crent370/clib/wtor.s delete mode 100644 src/crent370/clib/wtorf.c delete mode 100644 src/crent370/clib/wtorf.o delete mode 100644 src/crent370/clib/wtorf.s delete mode 100644 src/crent370/crypto/bfishdec.c delete mode 100644 src/crent370/crypto/bfishdec.o delete mode 100644 src/crent370/crypto/bfishdec.s delete mode 100644 src/crent370/crypto/bfishenc.c delete mode 100644 src/crent370/crypto/bfishenc.o delete mode 100644 src/crent370/crypto/bfishenc.s delete mode 100644 src/crent370/crypto/bfishkey.c delete mode 100644 src/crent370/crypto/bfishkey.o delete mode 100644 src/crent370/crypto/bfishkey.s delete mode 100644 src/crent370/crypto/makefile delete mode 100644 src/crent370/crypto/sha256.c delete mode 100644 src/crent370/crypto/sha256.o delete mode 100644 src/crent370/crypto/sha256.s delete mode 100644 src/crent370/crypto/sha256f.c delete mode 100644 src/crent370/crypto/sha256f.o delete mode 100644 src/crent370/crypto/sha256f.s delete mode 100644 src/crent370/crypto/sha256i.c delete mode 100644 src/crent370/crypto/sha256i.o delete mode 100644 src/crent370/crypto/sha256i.s delete mode 100644 src/crent370/crypto/sha256t.c delete mode 100644 src/crent370/crypto/sha256t.o delete mode 100644 src/crent370/crypto/sha256t.s delete mode 100644 src/crent370/crypto/sha256u.c delete mode 100644 src/crent370/crypto/sha256u.o delete mode 100644 src/crent370/crypto/sha256u.s delete mode 100644 src/crent370/dyn75/@@75.c delete mode 100644 src/crent370/dyn75/@@75acce.c delete mode 100644 src/crent370/dyn75/@@75bind.c delete mode 100644 src/crent370/dyn75/@@75clos.c delete mode 100644 src/crent370/dyn75/@@75conn.c delete mode 100644 src/crent370/dyn75/@@75exit.c delete mode 100644 src/crent370/dyn75/@@75gabn.c delete mode 100644 src/crent370/dyn75/@@75ghba.c delete mode 100644 src/crent370/dyn75/@@75ghbn.c delete mode 100644 src/crent370/dyn75/@@75init.c delete mode 100644 src/crent370/dyn75/@@75ioct.c delete mode 100644 src/crent370/dyn75/@@75list.c delete mode 100644 src/crent370/dyn75/@@75pnam.c delete mode 100644 src/crent370/dyn75/@@75recv.c delete mode 100644 src/crent370/dyn75/@@75sele.c delete mode 100644 src/crent370/dyn75/@@75selx.c delete mode 100644 src/crent370/dyn75/@@75send.c delete mode 100644 src/crent370/dyn75/@@75snam.c delete mode 100644 src/crent370/dyn75/@@75sock.c delete mode 100644 src/crent370/dyn75/@@75vect.c delete mode 100644 src/crent370/dyn75/asc2ebc.c delete mode 100644 src/crent370/dyn75/ebc2asc.c delete mode 100644 src/crent370/emfile/@@emamod.c delete mode 100644 src/crent370/emfile/@@emamod.o delete mode 100644 src/crent370/emfile/@@emamod.s delete mode 100644 src/crent370/emfile/@@emanew.c delete mode 100644 src/crent370/emfile/@@emanew.o delete mode 100644 src/crent370/emfile/@@emanew.s delete mode 100644 src/crent370/emfile/@@emaold.c delete mode 100644 src/crent370/emfile/@@emaold.o delete mode 100644 src/crent370/emfile/@@emaold.s delete mode 100644 src/crent370/emfile/@@emashr.c delete mode 100644 src/crent370/emfile/@@emashr.o delete mode 100644 src/crent370/emfile/@@emashr.s delete mode 100644 src/crent370/emfile/@@emchdr.c delete mode 100644 src/crent370/emfile/@@emchdr.o delete mode 100644 src/crent370/emfile/@@emchdr.s delete mode 100644 src/crent370/emfile/@@emclos.c delete mode 100644 src/crent370/emfile/@@emclos.o delete mode 100644 src/crent370/emfile/@@emclos.s delete mode 100644 src/crent370/emfile/@@emcrea.c delete mode 100644 src/crent370/emfile/@@emcrea.o delete mode 100644 src/crent370/emfile/@@emcrea.s delete mode 100644 src/crent370/emfile/@@emcsiz.c delete mode 100644 src/crent370/emfile/@@emcsiz.o delete mode 100644 src/crent370/emfile/@@emcsiz.s delete mode 100644 src/crent370/emfile/@@emdump.c delete mode 100644 src/crent370/emfile/@@emdump.o delete mode 100644 src/crent370/emfile/@@emdump.s delete mode 100644 src/crent370/emfile/@@emflus.c delete mode 100644 src/crent370/emfile/@@emflus.o delete mode 100644 src/crent370/emfile/@@emflus.s delete mode 100644 src/crent370/emfile/@@emfull.c delete mode 100644 src/crent370/emfile/@@emfull.o delete mode 100644 src/crent370/emfile/@@emfull.s delete mode 100644 src/crent370/emfile/@@emgerr.c delete mode 100644 src/crent370/emfile/@@emgerr.o delete mode 100644 src/crent370/emfile/@@emgerr.s delete mode 100644 src/crent370/emfile/@@emgetc.c delete mode 100644 src/crent370/emfile/@@emgetc.o delete mode 100644 src/crent370/emfile/@@emgetc.s delete mode 100644 src/crent370/emfile/@@emgets.c delete mode 100644 src/crent370/emfile/@@emgets.o delete mode 100644 src/crent370/emfile/@@emgets.s delete mode 100644 src/crent370/emfile/@@emgpos.c delete mode 100644 src/crent370/emfile/@@emgpos.o delete mode 100644 src/crent370/emfile/@@emgpos.s delete mode 100644 src/crent370/emfile/@@emgrow.c delete mode 100644 src/crent370/emfile/@@emgrow.o delete mode 100644 src/crent370/emfile/@@emgrow.s delete mode 100644 src/crent370/emfile/@@emgwsa.c delete mode 100644 src/crent370/emfile/@@emgwsa.o delete mode 100644 src/crent370/emfile/@@emgwsa.s delete mode 100644 src/crent370/emfile/@@eminit.c delete mode 100644 src/crent370/emfile/@@eminit.o delete mode 100644 src/crent370/emfile/@@eminit.s delete mode 100644 src/crent370/emfile/@@emobpo.c delete mode 100644 src/crent370/emfile/@@emobpo.o delete mode 100644 src/crent370/emfile/@@emobpo.s delete mode 100644 src/crent370/emfile/@@emopen.c delete mode 100644 src/crent370/emfile/@@emopen.o delete mode 100644 src/crent370/emfile/@@emopen.s delete mode 100644 src/crent370/emfile/@@emprtf.c delete mode 100644 src/crent370/emfile/@@emprtf.o delete mode 100644 src/crent370/emfile/@@emprtf.s delete mode 100644 src/crent370/emfile/@@emputc.c delete mode 100644 src/crent370/emfile/@@emputc.o delete mode 100644 src/crent370/emfile/@@emputc.s delete mode 100644 src/crent370/emfile/@@emputs.c delete mode 100644 src/crent370/emfile/@@emputs.o delete mode 100644 src/crent370/emfile/@@emputs.s delete mode 100644 src/crent370/emfile/@@emrblk.c delete mode 100644 src/crent370/emfile/@@emrblk.o delete mode 100644 src/crent370/emfile/@@emrblk.s delete mode 100644 src/crent370/emfile/@@emrbyt.c delete mode 100644 src/crent370/emfile/@@emrbyt.o delete mode 100644 src/crent370/emfile/@@emrbyt.s delete mode 100644 src/crent370/emfile/@@emrhdr.c delete mode 100644 src/crent370/emfile/@@emrhdr.o delete mode 100644 src/crent370/emfile/@@emrhdr.s delete mode 100644 src/crent370/emfile/@@emscfg.c delete mode 100644 src/crent370/emfile/@@emscfg.o delete mode 100644 src/crent370/emfile/@@emscfg.s delete mode 100644 src/crent370/emfile/@@emsddn.c delete mode 100644 src/crent370/emfile/@@emsddn.o delete mode 100644 src/crent370/emfile/@@emsddn.s delete mode 100644 src/crent370/emfile/@@emsdsn.c delete mode 100644 src/crent370/emfile/@@emsdsn.o delete mode 100644 src/crent370/emfile/@@emsdsn.s delete mode 100644 src/crent370/emfile/@@emseek.c delete mode 100644 src/crent370/emfile/@@emseek.o delete mode 100644 src/crent370/emfile/@@emseek.s delete mode 100644 src/crent370/emfile/@@emsetu.c delete mode 100644 src/crent370/emfile/@@emsetu.o delete mode 100644 src/crent370/emfile/@@emsetu.s delete mode 100644 src/crent370/emfile/@@emspos.c delete mode 100644 src/crent370/emfile/@@emspos.o delete mode 100644 src/crent370/emfile/@@emspos.s delete mode 100644 src/crent370/emfile/@@emsvol.c delete mode 100644 src/crent370/emfile/@@emsvol.o delete mode 100644 src/crent370/emfile/@@emsvol.s delete mode 100644 src/crent370/emfile/@@emsync.c delete mode 100644 src/crent370/emfile/@@emsync.o delete mode 100644 src/crent370/emfile/@@emsync.s delete mode 100644 src/crent370/emfile/@@emte64.c delete mode 100644 src/crent370/emfile/@@emte64.o delete mode 100644 src/crent370/emfile/@@emte64.s delete mode 100644 src/crent370/emfile/@@emtell.c delete mode 100644 src/crent370/emfile/@@emtell.o delete mode 100644 src/crent370/emfile/@@emtell.s delete mode 100644 src/crent370/emfile/@@emtest.c delete mode 100644 src/crent370/emfile/@@emtest.o delete mode 100644 src/crent370/emfile/@@emtest.s delete mode 100644 src/crent370/emfile/@@emtrun.c delete mode 100644 src/crent370/emfile/@@emtrun.o delete mode 100644 src/crent370/emfile/@@emtrun.s delete mode 100644 src/crent370/emfile/@@emunal.c delete mode 100644 src/crent370/emfile/@@emunal.o delete mode 100644 src/crent370/emfile/@@emunal.s delete mode 100644 src/crent370/emfile/@@emvali.c delete mode 100644 src/crent370/emfile/@@emvali.o delete mode 100644 src/crent370/emfile/@@emvali.s delete mode 100644 src/crent370/emfile/@@emvprt.c delete mode 100644 src/crent370/emfile/@@emvprt.o delete mode 100644 src/crent370/emfile/@@emvprt.s delete mode 100644 src/crent370/emfile/@@emwblk.c delete mode 100644 src/crent370/emfile/@@emwblk.o delete mode 100644 src/crent370/emfile/@@emwblk.s delete mode 100644 src/crent370/emfile/@@emwbyt.c delete mode 100644 src/crent370/emfile/@@emwbyt.o delete mode 100644 src/crent370/emfile/@@emwbyt.s delete mode 100644 src/crent370/emfile/@@emwhdr.c delete mode 100644 src/crent370/emfile/@@emwhdr.o delete mode 100644 src/crent370/emfile/@@emwhdr.s delete mode 100644 src/crent370/emfile/@@emwrit.c delete mode 100644 src/crent370/emfile/@@emwrit.o delete mode 100644 src/crent370/emfile/@@emwrit.s delete mode 100644 src/crent370/emfile/makefile delete mode 100644 src/crent370/include/@@75.h delete mode 100644 src/crent370/include/@@memmgr.h delete mode 100644 src/crent370/include/__75.h delete mode 100644 src/crent370/include/acee.h delete mode 100644 src/crent370/include/assert.h delete mode 100644 src/crent370/include/blowfish.h delete mode 100644 src/crent370/include/cde.h delete mode 100644 src/crent370/include/clib.h delete mode 100644 src/crent370/include/clib64.h delete mode 100644 src/crent370/include/clibary.h delete mode 100644 src/crent370/include/clibauth.h delete mode 100644 src/crent370/include/clibb64.h delete mode 100644 src/crent370/include/clibccw.h delete mode 100644 src/crent370/include/clibcib.h delete mode 100644 src/crent370/include/clibcp.h delete mode 100644 src/crent370/include/clibcrt.h delete mode 100644 src/crent370/include/clibdscb.h delete mode 100644 src/crent370/include/clibecb.h delete mode 100644 src/crent370/include/clibenq.h delete mode 100644 src/crent370/include/clibenv.h delete mode 100644 src/crent370/include/clibgrt.h delete mode 100644 src/crent370/include/clibio.h delete mode 100644 src/crent370/include/clibispf.h delete mode 100644 src/crent370/include/clibjes2.h delete mode 100644 src/crent370/include/clibjpa.h delete mode 100644 src/crent370/include/clibjs.h delete mode 100644 src/crent370/include/cliblink.h delete mode 100644 src/crent370/include/cliblist.h delete mode 100644 src/crent370/include/cliblock.h delete mode 100644 src/crent370/include/clibmutx.h delete mode 100644 src/crent370/include/clibmz.h delete mode 100644 src/crent370/include/clibmzi.h delete mode 100644 src/crent370/include/clibos.h delete mode 100644 src/crent370/include/clibpdf.h delete mode 100644 src/crent370/include/clibpdfi.h delete mode 100644 src/crent370/include/clibppa.h delete mode 100644 src/crent370/include/clibprtf.h delete mode 100644 src/crent370/include/clibprti.h delete mode 100644 src/crent370/include/clibres.h delete mode 100644 src/crent370/include/clibsa.h delete mode 100644 src/crent370/include/clibsdwa.h delete mode 100644 src/crent370/include/clibsmf.h delete mode 100644 src/crent370/include/clibsock.h delete mode 100644 src/crent370/include/clibspl.h delete mode 100644 src/crent370/include/clibsrb.h delete mode 100644 src/crent370/include/clibssct.h delete mode 100644 src/crent370/include/clibssib.h delete mode 100644 src/crent370/include/clibssvt.h delete mode 100644 src/crent370/include/clibstae.h delete mode 100644 src/crent370/include/clibstr.h delete mode 100644 src/crent370/include/clibsvc.h delete mode 100644 src/crent370/include/clibthrd.h delete mode 100644 src/crent370/include/clibtiot.h delete mode 100644 src/crent370/include/clibtmr.h delete mode 100644 src/crent370/include/clibtry.h delete mode 100644 src/crent370/include/clibtso.h delete mode 100644 src/crent370/include/clibvsam.h delete mode 100644 src/crent370/include/clibwsa.h delete mode 100644 src/crent370/include/clibwto.h delete mode 100644 src/crent370/include/ctype.h delete mode 100644 src/crent370/include/cvt.h delete mode 100644 src/crent370/include/emfile.h delete mode 100644 src/crent370/include/emfilei.h delete mode 100644 src/crent370/include/enqpl.h delete mode 100644 src/crent370/include/errno.h delete mode 100644 src/crent370/include/float.h delete mode 100644 src/crent370/include/get3.h delete mode 100644 src/crent370/include/hasphct.h delete mode 100644 src/crent370/include/haspiot.h delete mode 100644 src/crent370/include/haspjct.h delete mode 100644 src/crent370/include/haspjoe.h delete mode 100644 src/crent370/include/haspjot.h delete mode 100644 src/crent370/include/haspjqe.h delete mode 100644 src/crent370/include/hasppddb.h delete mode 100644 src/crent370/include/hasppso.h delete mode 100644 src/crent370/include/haspsjb.h delete mode 100644 src/crent370/include/hasptab.h delete mode 100644 src/crent370/include/hasptgm.h delete mode 100644 src/crent370/include/iecvucb.h delete mode 100644 src/crent370/include/iefjesct.h delete mode 100644 src/crent370/include/iefjssib.h delete mode 100644 src/crent370/include/iefsscs.h delete mode 100644 src/crent370/include/iefssobh.h delete mode 100644 src/crent370/include/iefssso.h delete mode 100644 src/crent370/include/ieftiot.h delete mode 100644 src/crent370/include/ieftxtft.h delete mode 100644 src/crent370/include/iefvkeys.h delete mode 100644 src/crent370/include/iezjscb.h delete mode 100644 src/crent370/include/ihaasvt.h delete mode 100644 src/crent370/include/ihadva.h delete mode 100644 src/crent370/include/ihalpde.h delete mode 100644 src/crent370/include/iharb.h delete mode 100644 src/crent370/include/ihascvt.h delete mode 100644 src/crent370/include/ihasrb.h delete mode 100644 src/crent370/include/ihaxtlst.h delete mode 100644 src/crent370/include/ikjcppl.h delete mode 100644 src/crent370/include/ikject.h delete mode 100644 src/crent370/include/ikjpscb.h delete mode 100644 src/crent370/include/ikjtcb.h delete mode 100644 src/crent370/include/ikjupt.h delete mode 100644 src/crent370/include/limits.h delete mode 100644 src/crent370/include/locale.h delete mode 100644 src/crent370/include/math.h delete mode 100644 src/crent370/include/miniz.h delete mode 100644 src/crent370/include/miniz_common.h delete mode 100644 src/crent370/include/miniz_tdef.h delete mode 100644 src/crent370/include/miniz_tinfl.h delete mode 100644 src/crent370/include/miniz_zip.h delete mode 100644 src/crent370/include/miniz_zip.h:zone.identifier:$data delete mode 100644 src/crent370/include/modmap.h delete mode 100644 src/crent370/include/mvssupa.h delete mode 100644 src/crent370/include/osdcb.h delete mode 100644 src/crent370/include/osdeb.h delete mode 100644 src/crent370/include/osdecb.h delete mode 100644 src/crent370/include/osio.h delete mode 100644 src/crent370/include/osiob.h delete mode 100644 src/crent370/include/osjfcb.h delete mode 100644 src/crent370/include/racf.h delete mode 100644 src/crent370/include/racheck.h delete mode 100644 src/crent370/include/racinit.h delete mode 100644 src/crent370/include/rb99.h delete mode 100644 src/crent370/include/rfile.h delete mode 100644 src/crent370/include/safp.h delete mode 100644 src/crent370/include/safv.h delete mode 100644 src/crent370/include/setjmp.h delete mode 100644 src/crent370/include/sha256.h delete mode 100644 src/crent370/include/signal.h delete mode 100644 src/crent370/include/socket.h delete mode 100644 src/crent370/include/stdarg.h delete mode 100644 src/crent370/include/stddef.h delete mode 100644 src/crent370/include/stdint.h delete mode 100644 src/crent370/include/stdio.h delete mode 100644 src/crent370/include/stdlib.h delete mode 100644 src/crent370/include/string.h delete mode 100644 src/crent370/include/svc99.h delete mode 100644 src/crent370/include/time.h delete mode 100644 src/crent370/include/time64.h delete mode 100644 src/crent370/include/trkcalc.h delete mode 100644 src/crent370/include/txt99.h delete mode 100644 src/crent370/jes/file.txt delete mode 100644 src/crent370/jes/jescanj.c delete mode 100644 src/crent370/jes/jescanj.o delete mode 100644 src/crent370/jes/jescanj.s delete mode 100644 src/crent370/jes/jesclose.c delete mode 100644 src/crent370/jes/jesclose.o delete mode 100644 src/crent370/jes/jesclose.s delete mode 100644 src/crent370/jes/jesdelj.c delete mode 100644 src/crent370/jes/jesdelj.o delete mode 100644 src/crent370/jes/jesdelj.s delete mode 100644 src/crent370/jes/jesjob.c delete mode 100644 src/crent370/jes/jesjob.o delete mode 100644 src/crent370/jes/jesjob.s delete mode 100644 src/crent370/jes/jesjobf1.c delete mode 100644 src/crent370/jes/jesjobf1.o delete mode 100644 src/crent370/jes/jesjobf1.s delete mode 100644 src/crent370/jes/jesjobfr.c delete mode 100644 src/crent370/jes/jesjobfr.o delete mode 100644 src/crent370/jes/jesjobfr.s delete mode 100644 src/crent370/jes/jesopen.c delete mode 100644 src/crent370/jes/jesopen.o delete mode 100644 src/crent370/jes/jesopen.s delete mode 100644 src/crent370/jes/jesprint.c delete mode 100644 src/crent370/jes/jesprint.o delete mode 100644 src/crent370/jes/jesprint.s delete mode 100644 src/crent370/jes/jesreque.c delete mode 100644 src/crent370/jes/jesreque.o delete mode 100644 src/crent370/jes/jesreque.s delete mode 100644 src/crent370/jes/jesxdone.c delete mode 100644 src/crent370/jes/jesxdone.o delete mode 100644 src/crent370/jes/jesxdone.s delete mode 100644 src/crent370/jes/jesxwrtr.c delete mode 100644 src/crent370/jes/jesxwrtr.o delete mode 100644 src/crent370/jes/jesxwrtr.s delete mode 100644 src/crent370/jes/josjobfr.c delete mode 100644 src/crent370/jes/josjobfr.o delete mode 100644 src/crent370/jes/josjobfr.s delete mode 100644 src/crent370/jes/makefile delete mode 100644 src/crent370/maclib/clibcrt.copy delete mode 100644 src/crent370/maclib/clibgrt.copy delete mode 100644 src/crent370/maclib/clibjpa.copy delete mode 100644 src/crent370/maclib/clibppa.copy delete mode 100644 src/crent370/maclib/clibregs.macro delete mode 100644 src/crent370/maclib/clibsupa.copy delete mode 100644 src/crent370/maclib/clibvsfi.copy delete mode 100644 src/crent370/maclib/mvsmacs.macro delete mode 100644 src/crent370/maclib/pdp370.copy delete mode 100644 src/crent370/maclib/pdp380.copy delete mode 100644 src/crent370/maclib/pdp390.copy delete mode 100644 src/crent370/maclib/pdpepil.macro delete mode 100644 src/crent370/maclib/pdpmain.macro delete mode 100644 src/crent370/maclib/pdporig.copy delete mode 100644 src/crent370/maclib/pdpprlg.macro delete mode 100644 src/crent370/maclib/pdptop.copy delete mode 100644 src/crent370/miniz/@@mzadlr.c delete mode 100644 src/crent370/miniz/@@mzcbnd.c delete mode 100644 src/crent370/miniz/@@mzcmp2.c delete mode 100644 src/crent370/miniz/@@mzcmpr.c delete mode 100644 src/crent370/miniz/@@mzcore.c delete mode 100644 src/crent370/miniz/@@mzcrc.c delete mode 100644 src/crent370/miniz/@@mzdalf.c delete mode 100644 src/crent370/miniz/@@mzdbnd.c delete mode 100644 src/crent370/miniz/@@mzdend.c delete mode 100644 src/crent370/miniz/@@mzdflt.c delete mode 100644 src/crent370/miniz/@@mzdfrf.c delete mode 100644 src/crent370/miniz/@@mzdin2.c delete mode 100644 src/crent370/miniz/@@mzdini.c delete mode 100644 src/crent370/miniz/@@mzdref.c delete mode 100644 src/crent370/miniz/@@mzdrst.c delete mode 100644 src/crent370/miniz/@@mzerr.c delete mode 100644 src/crent370/miniz/@@mzfree.c delete mode 100644 src/crent370/miniz/@@mziend.c delete mode 100644 src/crent370/miniz/@@mziin2.c delete mode 100644 src/crent370/miniz/@@mziini.c delete mode 100644 src/crent370/miniz/@@mzinfl.c delete mode 100644 src/crent370/miniz/@@mzucmp.c delete mode 100644 src/crent370/miniz/@@mzvers.c delete mode 100644 src/crent370/miniz/@@tdccfz.c delete mode 100644 src/crent370/miniz/@@tdcm2h.c delete mode 100644 src/crent370/miniz/@@tdcm2m.c delete mode 100644 src/crent370/miniz/@@tdcm2o.c delete mode 100644 src/crent370/miniz/@@tdcmpa.c delete mode 100644 src/crent370/miniz/@@tdcmpb.c delete mode 100644 src/crent370/miniz/@@tdcmpf.c delete mode 100644 src/crent370/miniz/@@tdcmpr.c delete mode 100644 src/crent370/miniz/@@tdgadl.c delete mode 100644 src/crent370/miniz/@@tdgprs.c delete mode 100644 src/crent370/miniz/@@tdinit.c delete mode 100644 src/crent370/miniz/@@tdwi2m.c delete mode 100644 src/crent370/miniz/@@tdwi2x.c delete mode 100644 src/crent370/miniz/@@tidalc.c delete mode 100644 src/crent370/miniz/@@tidcmp.c delete mode 100644 src/crent370/miniz/@@tidfre.c delete mode 100644 src/crent370/miniz/@@tidm2c.c delete mode 100644 src/crent370/miniz/@@tidm2h.c delete mode 100644 src/crent370/miniz/@@tidm2m.c delete mode 100644 src/crent370/miniz/miniz.c delete mode 100644 src/crent370/miniz/mztdef.c delete mode 100644 src/crent370/miniz/mztdef.c:zone.identifier:$data delete mode 100644 src/crent370/miniz/mztinfl.c delete mode 100644 src/crent370/miniz/mztinfl.c:zone.identifier:$data delete mode 100644 src/crent370/miniz/mzzip.c delete mode 100644 src/crent370/modmap/mmapbase.c delete mode 100644 src/crent370/modmap/mmapdump.c delete mode 100644 src/crent370/modmap/mmapflr.c delete mode 100644 src/crent370/modmap/mmapfree.c delete mode 100644 src/crent370/modmap/mmapfrld.c delete mode 100644 src/crent370/modmap/mmapfrlr.c delete mode 100644 src/crent370/modmap/mmapfrrl.c delete mode 100644 src/crent370/modmap/mmapfrsd.c delete mode 100644 src/crent370/modmap/mmapfsd.c delete mode 100644 src/crent370/modmap/mmapnew.c delete mode 100644 src/crent370/modmap/mmapopen.c delete mode 100644 src/crent370/modmap/mmapproc.c delete mode 100644 src/crent370/modmap/mmaprset.c delete mode 100644 src/crent370/modmap/mmaprsld.c delete mode 100644 src/crent370/modmap/mmapsort.c delete mode 100644 src/crent370/modmap/mmapzap.c delete mode 100644 src/crent370/modmap/modmap.c delete mode 100644 src/crent370/os/osbclose.c delete mode 100644 src/crent370/os/osbdcb.c delete mode 100644 src/crent370/os/osbopen.c delete mode 100644 src/crent370/os/oscheck.c delete mode 100644 src/crent370/os/osdclose.c delete mode 100644 src/crent370/os/osddcb.c delete mode 100644 src/crent370/os/osdopen.c delete mode 100644 src/crent370/os/osdread.c delete mode 100644 src/crent370/os/osdwrite.c delete mode 100644 src/crent370/os/osread.c delete mode 100644 src/crent370/os/oswrite.c delete mode 100644 src/crent370/os/osxcalc.c delete mode 100644 src/crent370/os/osxclose.c delete mode 100644 src/crent370/os/osxdcb.c delete mode 100644 src/crent370/os/osxopen.c delete mode 100644 src/crent370/os/osxread.c delete mode 100644 src/crent370/os/osxwrite.c delete mode 100644 src/crent370/os/rdjfcb.c delete mode 100644 src/crent370/os/trkcalc.c delete mode 100644 src/crent370/pdf/pdfabarc.c delete mode 100644 src/crent370/pdf/pdfabkmk.c delete mode 100644 src/crent370/pdf/pdfacrcl.c delete mode 100644 src/crent370/pdf/pdfaelip.c delete mode 100644 src/crent370/pdf/pdfafply.c delete mode 100644 src/crent370/pdf/pdfafrec.c delete mode 100644 src/crent370/pdf/pdfajpeg.c delete mode 100644 src/crent370/pdf/pdfaline.c delete mode 100644 src/crent370/pdf/pdfapage.c delete mode 100644 src/crent370/pdf/pdfapoly.c delete mode 100644 src/crent370/pdf/pdfappm.c delete mode 100644 src/crent370/pdf/pdfarect.c delete mode 100644 src/crent370/pdf/pdfatext.c delete mode 100644 src/crent370/pdf/pdfatxtw.c delete mode 100644 src/crent370/pdf/pdfcerr.c delete mode 100644 src/crent370/pdf/pdfcrte.c delete mode 100644 src/crent370/pdf/pdfdstr.c delete mode 100644 src/crent370/pdf/pdfgerr.c delete mode 100644 src/crent370/pdf/pdfgftw.c delete mode 100644 src/crent370/pdf/pdfhght.c delete mode 100644 src/crent370/pdf/pdfpgss.c delete mode 100644 src/crent370/pdf/pdfptext.c delete mode 100644 src/crent370/pdf/pdfsave.c delete mode 100644 src/crent370/pdf/pdfscomp.c delete mode 100644 src/crent370/pdf/pdfsdbg.c delete mode 100644 src/crent370/pdf/pdfsfile.c delete mode 100644 src/crent370/pdf/pdfsfont.c delete mode 100644 src/crent370/pdf/pdftest.c delete mode 100644 src/crent370/pdf/pdfwidth.c delete mode 100644 src/crent370/pdf/pdfx.c delete mode 100644 src/crent370/pdf2/@p2aarra.c delete mode 100644 src/crent370/pdf2/@p2acpl.c delete mode 100644 src/crent370/pdf2/@p2acpm.c delete mode 100644 src/crent370/pdf2/@p2aimg.c delete mode 100644 src/crent370/pdf2/@p2antk.c delete mode 100644 src/crent370/pdf2/@p2antl.c delete mode 100644 src/crent370/pdf2/@p2antn.c delete mode 100644 src/crent370/pdf2/@p2antp.c delete mode 100644 src/crent370/pdf2/@p2anutk.c delete mode 100644 src/crent370/pdf2/@p2anutl.c delete mode 100644 src/crent370/pdf2/@p2anutn.c delete mode 100644 src/crent370/pdf2/@p2anutp.c delete mode 100644 src/crent370/pdf2/@p2apann.c delete mode 100644 src/crent370/pdf2/@p2apcnt.c delete mode 100644 src/crent370/pdf2/@p2apgsp.c delete mode 100644 src/crent370/pdf2/@p2arnf.c delete mode 100644 src/crent370/pdf2/@p2arnx.c delete mode 100644 src/crent370/pdf2/@p2arps.c delete mode 100644 src/crent370/pdf2/@p2as.c delete mode 100644 src/crent370/pdf2/@p2asbar.c delete mode 100644 src/crent370/pdf2/@p2asbt.c delete mode 100644 src/crent370/pdf2/@p2asclr.c delete mode 100644 src/crent370/pdf2/@p2asdec.c delete mode 100644 src/crent370/pdf2/@p2aset.c delete mode 100644 src/crent370/pdf2/@p2asf.c delete mode 100644 src/crent370/pdf2/@p2asfde.c delete mode 100644 src/crent370/pdf2/@p2asffi.c delete mode 100644 src/crent370/pdf2/@p2asfi.c delete mode 100644 src/crent370/pdf2/@p2asfil.c delete mode 100644 src/crent370/pdf2/@p2asflt.c delete mode 100644 src/crent370/pdf2/@p2askv.c delete mode 100644 src/crent370/pdf2/@p2askvf.c delete mode 100644 src/crent370/pdf2/@p2aslt.c delete mode 100644 src/crent370/pdf2/@p2asmt.c delete mode 100644 src/crent370/pdf2/@p2asnsc.c delete mode 100644 src/crent370/pdf2/@p2asrm.c delete mode 100644 src/crent370/pdf2/@p2assc.c delete mode 100644 src/crent370/pdf2/@p2assfo.c delete mode 100644 src/crent370/pdf2/@p2asstf.c delete mode 100644 src/crent370/pdf2/@p2ast.c delete mode 100644 src/crent370/pdf2/@p2astf.c delete mode 100644 src/crent370/pdf2/@p2astle.c delete mode 100644 src/crent370/pdf2/@p2astm.c delete mode 100644 src/crent370/pdf2/@p2astmx.c delete mode 100644 src/crent370/pdf2/@p2asts.c delete mode 100644 src/crent370/pdf2/@p2avnfs.c delete mode 100644 src/crent370/pdf2/@p2avprd.c delete mode 100644 src/crent370/pdf2/@p2bndc.c delete mode 100644 src/crent370/pdf2/@p2bndl.c delete mode 100644 src/crent370/pdf2/@p2bndlp.c delete mode 100644 src/crent370/pdf2/@p2bndp.c delete mode 100644 src/crent370/pdf2/@p2bnds.c delete mode 100644 src/crent370/pdf2/@p2bndt.c delete mode 100644 src/crent370/pdf2/@p2core.c delete mode 100644 src/crent370/pdf2/@p2cspca.c delete mode 100644 src/crent370/pdf2/@p2cspec.c delete mode 100644 src/crent370/pdf2/@p2dstr.c delete mode 100644 src/crent370/pdf2/@p2escap.c delete mode 100644 src/crent370/pdf2/@p2ffont.c delete mode 100644 src/crent370/pdf2/@p2fpdf.c delete mode 100644 src/crent370/pdf2/@p2gcirc.c delete mode 100644 src/crent370/pdf2/@p2gcpth.c delete mode 100644 src/crent370/pdf2/@p2gdl.c delete mode 100644 src/crent370/pdf2/@p2gfcol.c delete mode 100644 src/crent370/pdf2/@p2glinw.c delete mode 100644 src/crent370/pdf2/@p2glnto.c delete mode 100644 src/crent370/pdf2/@p2gmvto.c delete mode 100644 src/crent370/pdf2/@p2grest.c delete mode 100644 src/crent370/pdf2/@p2gsave.c delete mode 100644 src/crent370/pdf2/@p2gscol.c delete mode 100644 src/crent370/pdf2/@p2gsl.c delete mode 100644 src/crent370/pdf2/@p2gstro.c delete mode 100644 src/crent370/pdf2/@p2narra.c delete mode 100644 src/crent370/pdf2/@p2nback.c delete mode 100644 src/crent370/pdf2/@p2nbkmd.c delete mode 100644 src/crent370/pdf2/@p2nbkmk.c delete mode 100644 src/crent370/pdf2/@p2nbkmp.c delete mode 100644 src/crent370/pdf2/@p2nbool.c delete mode 100644 src/crent370/pdf2/@p2ncat.c delete mode 100644 src/crent370/pdf2/@p2ncol.c delete mode 100644 src/crent370/pdf2/@p2ndate.c delete mode 100644 src/crent370/pdf2/@p2ndest.c delete mode 100644 src/crent370/pdf2/@p2nfile.c delete mode 100644 src/crent370/pdf2/@p2nfont.c delete mode 100644 src/crent370/pdf2/@p2nimg.c delete mode 100644 src/crent370/pdf2/@p2ninfo.c delete mode 100644 src/crent370/pdf2/@p2nint.c delete mode 100644 src/crent370/pdf2/@p2nname.c delete mode 100644 src/crent370/pdf2/@p2nnat.c delete mode 100644 src/crent370/pdf2/@p2nnop.c delete mode 100644 src/crent370/pdf2/@p2nnull.c delete mode 100644 src/crent370/pdf2/@p2nnum.c delete mode 100644 src/crent370/pdf2/@p2nnump.c delete mode 100644 src/crent370/pdf2/@p2nnumt.c delete mode 100644 src/crent370/pdf2/@p2nout.c delete mode 100644 src/crent370/pdf2/@p2nouts.c delete mode 100644 src/crent370/pdf2/@p2npag.c delete mode 100644 src/crent370/pdf2/@p2npags.c delete mode 100644 src/crent370/pdf2/@p2npdf.c delete mode 100644 src/crent370/pdf2/@p2nrect.c delete mode 100644 src/crent370/pdf2/@p2nres.c delete mode 100644 src/crent370/pdf2/@p2nsop.c delete mode 100644 src/crent370/pdf2/@p2nstr.c delete mode 100644 src/crent370/pdf2/@p2nstrf.c delete mode 100644 src/crent370/pdf2/@p2nstrm.c delete mode 100644 src/crent370/pdf2/@p2nvprf.c delete mode 100644 src/crent370/pdf2/@p2odef.c delete mode 100644 src/crent370/pdf2/@p2onul.c delete mode 100644 src/crent370/pdf2/@p2out.c delete mode 100644 src/crent370/pdf2/@p2pccmp.c delete mode 100644 src/crent370/pdf2/@p2pfcol.c delete mode 100644 src/crent370/pdf2/@p2sdpag.c delete mode 100644 src/crent370/pdf2/@p2sout.c delete mode 100644 src/crent370/pdf2/@p2stell.c delete mode 100644 src/crent370/pdf2/@p2str.c delete mode 100644 src/crent370/pdf2/@p2strf.c delete mode 100644 src/crent370/pdf2/@p2sudat.c delete mode 100644 src/crent370/pdf2/@p2tdef.c delete mode 100644 src/crent370/pdf2/@p2tell.c delete mode 100644 src/crent370/pdf2/@p2trans.c delete mode 100644 src/crent370/pdf2/pdf.h delete mode 100644 src/crent370/pdf2/pdfi.h delete mode 100644 src/crent370/pdfprt/@p3nprt.c delete mode 100644 src/crent370/pdfprt/@p3prout.c delete mode 100644 src/crent370/pdfprt/@p3prtel.c delete mode 100644 src/crent370/pdfprt/pdfprt.h delete mode 100644 src/crent370/racf/makefile delete mode 100644 src/crent370/racf/racauth.c delete mode 100644 src/crent370/racf/racauth.o delete mode 100644 src/crent370/racf/racauth.s delete mode 100644 src/crent370/racf/racgacee.c delete mode 100644 src/crent370/racf/racgacee.o delete mode 100644 src/crent370/racf/racgacee.s delete mode 100644 src/crent370/racf/raclgout.c delete mode 100644 src/crent370/racf/raclgout.o delete mode 100644 src/crent370/racf/raclgout.s delete mode 100644 src/crent370/racf/raclogin.c delete mode 100644 src/crent370/racf/raclogin.o delete mode 100644 src/crent370/racf/raclogin.s delete mode 100644 src/crent370/racf/racsacee.c delete mode 100644 src/crent370/racf/racsacee.o delete mode 100644 src/crent370/racf/racsacee.s delete mode 100644 src/crent370/resident/resdisp.c delete mode 100644 src/crent370/resident/resident.c delete mode 100644 src/crent370/resident/resinit.c delete mode 100644 src/crent370/resident/resprlg.c delete mode 100644 src/crent370/resident/resprtf.c delete mode 100644 src/crent370/srb/srbfmain.c delete mode 100644 src/crent370/srb/srbgmain.c delete mode 100644 src/crent370/svc/@@svc.c delete mode 100644 src/crent370/test/date.conversion.untested.c delete mode 100644 src/crent370/test/makefile delete mode 100644 src/crent370/test/testcvt.c delete mode 100644 src/crent370/test/testfile.c delete mode 100644 src/crent370/test/testlink.c delete mode 100644 src/crent370/test/testload.c delete mode 100644 src/crent370/test/testmutx.c delete mode 100644 src/crent370/test/testprtf.c delete mode 100644 src/crent370/test/teststae.c delete mode 100644 src/crent370/test/testsvc.c delete mode 100644 src/crent370/test/testtime.c delete mode 100644 src/crent370/test/testtime.o delete mode 100644 src/crent370/test/testtime.s delete mode 100644 src/crent370/test/testtmr.c delete mode 100644 src/crent370/test/testvsam.c delete mode 100644 src/crent370/test/testwrtr.c delete mode 100644 src/crent370/thdmgr/@@cminit.c delete mode 100644 src/crent370/thdmgr/@@cminit.o delete mode 100644 src/crent370/thdmgr/@@cminit.s delete mode 100644 src/crent370/thdmgr/@@cmqadd.c delete mode 100644 src/crent370/thdmgr/@@cmqadd.o delete mode 100644 src/crent370/thdmgr/@@cmqadd.s delete mode 100644 src/crent370/thdmgr/@@cmqdel.c delete mode 100644 src/crent370/thdmgr/@@cmqdel.o delete mode 100644 src/crent370/thdmgr/@@cmqdel.s delete mode 100644 src/crent370/thdmgr/@@cmterm.c delete mode 100644 src/crent370/thdmgr/@@cmterm.o delete mode 100644 src/crent370/thdmgr/@@cmterm.s delete mode 100644 src/crent370/thdmgr/@@cmwadd.c delete mode 100644 src/crent370/thdmgr/@@cmwadd.o delete mode 100644 src/crent370/thdmgr/@@cmwadd.s delete mode 100644 src/crent370/thdmgr/@@cmwdel.c delete mode 100644 src/crent370/thdmgr/@@cmwdel.o delete mode 100644 src/crent370/thdmgr/@@cmwdel.s delete mode 100644 src/crent370/thdmgr/@@cmwshu.c delete mode 100644 src/crent370/thdmgr/@@cmwshu.o delete mode 100644 src/crent370/thdmgr/@@cmwshu.s delete mode 100644 src/crent370/thdmgr/@@cmwwat.c delete mode 100644 src/crent370/thdmgr/@@cmwwat.o delete mode 100644 src/crent370/thdmgr/@@cmwwat.s delete mode 100644 src/crent370/thdmgr/@@cti.c delete mode 100644 src/crent370/thdmgr/clibthdi.h delete mode 100644 src/crent370/thdmgr/files.txt delete mode 100644 src/crent370/thdmgr/makefile delete mode 100644 src/crent370/time64/@@gclk64.c delete mode 100644 src/crent370/time64/@@gclk64.o delete mode 100644 src/crent370/time64/__time64.h delete mode 100644 src/crent370/time64/makefile delete mode 100644 src/crent370/time64/mktime64.c delete mode 100644 src/crent370/time64/time64.txt delete mode 100644 src/crent370/time64/tm64asc.c delete mode 100644 src/crent370/time64/tm64asc.o delete mode 100644 src/crent370/time64/tm64asc.s delete mode 100644 src/crent370/time64/tm64ascr.c delete mode 100644 src/crent370/time64/tm64ascr.o delete mode 100644 src/crent370/time64/tm64ascr.s delete mode 100644 src/crent370/time64/tm64clck.c delete mode 100644 src/crent370/time64/tm64clck.o delete mode 100644 src/crent370/time64/tm64clck.s delete mode 100644 src/crent370/time64/tm64cti.c delete mode 100644 src/crent370/time64/tm64cti.o delete mode 100644 src/crent370/time64/tm64cti.s delete mode 100644 src/crent370/time64/tm64ctir.c delete mode 100644 src/crent370/time64/tm64ctir.o delete mode 100644 src/crent370/time64/tm64ctir.s delete mode 100644 src/crent370/time64/tm64dim.c delete mode 100644 src/crent370/time64/tm64dim.o delete mode 100644 src/crent370/time64/tm64dim.s delete mode 100644 src/crent370/time64/tm64dtim.c delete mode 100644 src/crent370/time64/tm64dtim.o delete mode 100644 src/crent370/time64/tm64dtim.s delete mode 100644 src/crent370/time64/tm64gmt.c delete mode 100644 src/crent370/time64/tm64gmt.o delete mode 100644 src/crent370/time64/tm64gmt.s delete mode 100644 src/crent370/time64/tm64gmtr.c delete mode 100644 src/crent370/time64/tm64gmtr.o delete mode 100644 src/crent370/time64/tm64gmtr.s delete mode 100644 src/crent370/time64/tm64jdbm.c delete mode 100644 src/crent370/time64/tm64jdbm.o delete mode 100644 src/crent370/time64/tm64jdbm.s delete mode 100644 src/crent370/time64/tm64ltm.c delete mode 100644 src/crent370/time64/tm64ltm.o delete mode 100644 src/crent370/time64/tm64ltm.s delete mode 100644 src/crent370/time64/tm64ltmr.c delete mode 100644 src/crent370/time64/tm64ltmr.o delete mode 100644 src/crent370/time64/tm64ltmr.s delete mode 100644 src/crent370/time64/tm64mclk.c delete mode 100644 src/crent370/time64/tm64mclk.o delete mode 100644 src/crent370/time64/tm64mclk.s delete mode 100644 src/crent370/time64/tm64mcti.c delete mode 100644 src/crent370/time64/tm64mcti.o delete mode 100644 src/crent370/time64/tm64mcti.s delete mode 100644 src/crent370/time64/tm64mgmt.c delete mode 100644 src/crent370/time64/tm64mgmt.o delete mode 100644 src/crent370/time64/tm64mgmt.s delete mode 100644 src/crent370/time64/tm64mkt.c delete mode 100644 src/crent370/time64/tm64mkt.o delete mode 100644 src/crent370/time64/tm64mkt.s delete mode 100644 src/crent370/time64/tm64mltm.c delete mode 100644 src/crent370/time64/tm64mltm.o delete mode 100644 src/crent370/time64/tm64mltm.s delete mode 100644 src/crent370/time64/tm64mtim.c delete mode 100644 src/crent370/time64/tm64mtim.o delete mode 100644 src/crent370/time64/tm64mtim.s delete mode 100644 src/crent370/time64/tm64sby.c delete mode 100644 src/crent370/time64/tm64sby.o delete mode 100644 src/crent370/time64/tm64sby.s delete mode 100644 src/crent370/time64/tm64syr.c delete mode 100644 src/crent370/time64/tm64syr.o delete mode 100644 src/crent370/time64/tm64syr.s delete mode 100644 src/crent370/time64/tm64test.c delete mode 100644 src/crent370/time64/tm64test.o delete mode 100644 src/crent370/time64/tm64test.s delete mode 100644 src/crent370/time64/tm64tgm.c delete mode 100644 src/crent370/time64/tm64tgm.o delete mode 100644 src/crent370/time64/tm64tgm.s delete mode 100644 src/crent370/time64/tm64time.c delete mode 100644 src/crent370/time64/tm64time.o delete mode 100644 src/crent370/time64/tm64time.s delete mode 100644 src/crent370/time64/tm64uclk.c delete mode 100644 src/crent370/time64/tm64uclk.o delete mode 100644 src/crent370/time64/tm64uclk.s delete mode 100644 src/crent370/time64/tm64ucti.c delete mode 100644 src/crent370/time64/tm64ucti.o delete mode 100644 src/crent370/time64/tm64ucti.s delete mode 100644 src/crent370/time64/tm64ugmt.c delete mode 100644 src/crent370/time64/tm64ugmt.o delete mode 100644 src/crent370/time64/tm64ugmt.s delete mode 100644 src/crent370/time64/tm64ultm.c delete mode 100644 src/crent370/time64/tm64ultm.o delete mode 100644 src/crent370/time64/tm64ultm.s delete mode 100644 src/crent370/time64/tm64utim.c delete mode 100644 src/crent370/time64/tm64utim.o delete mode 100644 src/crent370/time64/tm64utim.s diff --git a/src/crent370/asm/@@aclose.asm b/src/crent370/asm/@@aclose.asm deleted file mode 100644 index 8838143..0000000 --- a/src/crent370/asm/@@aclose.asm +++ /dev/null @@ -1,73 +0,0 @@ - MACRO , -&NM FIXWRITE , -&NM L R15,=V(@@ATROUT) - BALR R14,R15 TRUNCATE CURRENT WRITE BLOCK - MEND , - COPY MVSMACS - COPY PDPTOP - CSECT , - PRINT GEN -* YREGS - SPACE 1 -*-----------------------ASSEMBLY OPTIONS------------------------------* -SUBPOOL EQU 0 * -*---------------------------------------------------------------------* - SPACE 1 -*********************************************************************** -* * -* ACLOSE - Close a data set * -* * -*********************************************************************** -@@ACLOSE FUNHEAD IO=YES,SAVE=(WORKAREA,WORKLEN,SUBPOOL) CLOSE - TM IOMFLAGS,IOFTERM TERMINAL I/O MODE? - BNZ FREEBUFF YES; JUST FREE STUFF - FIXWRITE , WRITE FINAL BUFFER, IF ONE -FREEBUFF LM R1,R2,ZBUFF1 Look at first buffer - LTR R0,R2 Any ? - BZ FREEDBF1 No - FREEMAIN RC,LV=(0),A=(1),SP=SUBPOOL Free BLOCK buffer -FREEDBF1 LM R1,R2,ZBUFF2 Look at first buffer - LTR R0,R2 Any ? - BZ FREEDBF2 No - FREEMAIN RC,LV=(0),A=(1),SP=SUBPOOL Free RECRD buffer -FREEDBF2 TM IOMFLAGS,IOFTERM TERMINAL I/O MODE? - BNZ NOPOOL YES; SKIP CLOSE/FREEPOOL - CLOSE MF=(E,OPENCLOS) - TM DCBBUFCA+L'DCBBUFCA-1,1 BUFFER POOL? - BNZ NOPOOL NO, INVALIDATED - SR R15,R15 - ICM R15,7,DCBBUFCA DID WE GET A BUFFER? - BZ NOPOOL 0-NO - FREEPOOL ((R10)) -NOPOOL DS 0H - FREEMAIN R,LV=ZDCBLEN,A=(R10),SP=SUBPOOL - FUNEXIT RC=0 -* - LTORG , - SPACE 2 - COPY CLIBSUPA -* - SPACE 2 - PRINT NOGEN - IHAPSA , MAP LOW STORAGE - CVT DSECT=YES - IKJTCB , MAP TASK CONTROL BLOCK - IKJECT , MAP ENV. CONTROL BLOCK - IKJPTPB , PUTLINE PARAMETER BLOCK - IKJCPPL , - IKJPSCB , - IEZJSCB , - IEZIOB , - IEFZB4D0 , MAP SVC 99 PARAMETER LIST - IEFZB4D2 , MAP SVC 99 PARAMETERS - IEFUCBOB , -MYTIOT DSECT , - IEFTIOT1 , - IHAPDS PDSBLDL=YES - SPACE 1 - IFGACB , GP14233 - SPACE 1 - IFGRPL , GP14233 - IEFJESCT , - IKJUPT , - END diff --git a/src/crent370/asm/@@aclose.o b/src/crent370/asm/@@aclose.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/asm/@@aline.asm b/src/crent370/asm/@@aline.asm deleted file mode 100644 index a876bb0..0000000 --- a/src/crent370/asm/@@aline.asm +++ /dev/null @@ -1,67 +0,0 @@ - MACRO , -&NM FIXWRITE , -&NM L R15,=V(@@ATROUT) - BALR R14,R15 TRUNCATE CURRENT WRITE BLOCK - MEND , - COPY MVSMACS - COPY PDPTOP - CSECT , - PRINT GEN -* YREGS - SPACE 1 -*-----------------------ASSEMBLY OPTIONS------------------------------* -SUBPOOL EQU 0 * -*---------------------------------------------------------------------* - SPACE 1 -*********************************************************************** -* * -* ALINE - See whether any more input is available * -* R15=0 EOF R15=1 More data available * -* * -*********************************************************************** -@@ALINE FUNHEAD IO=YES,AM=YES,SAVE=(WORKAREA,WORKLEN,SUBPOOL) - FIXWRITE , - TM IOMFLAGS,IOFTERM Terminal Input? - BNZ ALINEYES Always one more? - LA R3,KEPTREC - LA R4,KEPTREC+4 - STM R2,R4,DWORK BUILD PARM LIST -* LA R15,@@AREAD - L R15,=V(@@AREAD) - LA R1,DWORK - BALR R14,R15 GET NEXT RECORD - SR R15,R15 SET EOF FLAG - LTR R6,R6 HIT EOF ? - BM ALINEX YES; RETURN ZERO - OI IOPFLAGS,IOFKEPT SHOW WE'RE KEEPING A RECORD -ALINEYES LA R15,1 ELSE RETURN ONE -ALINEX FUNEXIT RC=(R15) -* - LTORG , - SPACE 2 - COPY CLIBSUPA -* - SPACE 2 - PRINT NOGEN - IHAPSA , MAP LOW STORAGE - CVT DSECT=YES - IKJTCB , MAP TASK CONTROL BLOCK - IKJECT , MAP ENV. CONTROL BLOCK - IKJPTPB , PUTLINE PARAMETER BLOCK - IKJCPPL , - IKJPSCB , - IEZJSCB , - IEZIOB , - IEFZB4D0 , MAP SVC 99 PARAMETER LIST - IEFZB4D2 , MAP SVC 99 PARAMETERS - IEFUCBOB , -MYTIOT DSECT , - IEFTIOT1 , - IHAPDS PDSBLDL=YES - SPACE 1 - IFGACB , GP14233 - SPACE 1 - IFGRPL , GP14233 - IEFJESCT , - IKJUPT , - END diff --git a/src/crent370/asm/@@aline.o b/src/crent370/asm/@@aline.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/asm/@@anote.asm b/src/crent370/asm/@@anote.asm deleted file mode 100644 index 3f59d89..0000000 --- a/src/crent370/asm/@@anote.asm +++ /dev/null @@ -1,64 +0,0 @@ - MACRO , -&NM FIXWRITE , -&NM L R15,=V(@@ATROUT) - BALR R14,R15 TRUNCATE CURRENT WRITE BLOCK - MEND , - COPY MVSMACS - COPY PDPTOP - CSECT , - PRINT GEN -* YREGS - SPACE 1 -*-----------------------ASSEMBLY OPTIONS------------------------------* -SUBPOOL EQU 0 * -*---------------------------------------------------------------------* - SPACE 1 -*********************************************************************** -* * -* ANOTE - Remember the position in the data set (BSAM/BPAM only) * -* * -*********************************************************************** -@@ANOTE FUNHEAD IO=YES,AM=YES,SAVE=SAVEADCB,US=NO NOTE position - L R3,4(,R1) R3 points to the return value - FIXWRITE , - GO24 , For old code - TM IOMFLAGS,IOFEXCP EXCP mode? - BZ NOTEBSAM No - L R4,DCBBLKCT Return block count - B NOTECOM - SPACE 1 -NOTEBSAM NOTE (R10) Note current position - LR R4,R1 Save result -NOTECOM AMUSE , - ST R4,0(,R3) Return TTR0 to user - FUNEXIT RC=0 -* - LTORG , In case someone adds literals -* - SPACE 2 - COPY CLIBSUPA -* - SPACE 2 - PRINT NOGEN - IHAPSA , MAP LOW STORAGE - CVT DSECT=YES - IKJTCB , MAP TASK CONTROL BLOCK - IKJECT , MAP ENV. CONTROL BLOCK - IKJPTPB , PUTLINE PARAMETER BLOCK - IKJCPPL , - IKJPSCB , - IEZJSCB , - IEZIOB , - IEFZB4D0 , MAP SVC 99 PARAMETER LIST - IEFZB4D2 , MAP SVC 99 PARAMETERS - IEFUCBOB , -MYTIOT DSECT , - IEFTIOT1 , - IHAPDS PDSBLDL=YES - SPACE 1 - IFGACB , GP14233 - SPACE 1 - IFGRPL , GP14233 - IEFJESCT , - IKJUPT , - END diff --git a/src/crent370/asm/@@anote.o b/src/crent370/asm/@@anote.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/asm/@@aopen.asm b/src/crent370/asm/@@aopen.asm deleted file mode 100644 index fb3e291..0000000 --- a/src/crent370/asm/@@aopen.asm +++ /dev/null @@ -1,766 +0,0 @@ - COPY MVSMACS - COPY PDPTOP - CSECT , - PRINT GEN -* YREGS - SPACE 1 -*-----------------------ASSEMBLY OPTIONS------------------------------* -SUBPOOL EQU 0 * -*---------------------------------------------------------------------* - SPACE 1 -* -* -* -* Start of functions -* -* -*********************************************************************** -* * -* AOPEN - Open a data set * -* * -*********************************************************************** -* * -* Parameters are: * -*1 DDNAME - space-padded, 8 character DDNAME to be opened * -*2 MODE = 0 INPUT 1 OUTPUT 2 UPDAT 3 APPEND Record mode * -* MODE = 4 INOUT 5 OUTIN * -* MODE = 8/9 Use EXCP for tape, BSAM otherwise (or 32<=JFCPNCP<=65) * -* MODE + 10 = Use BLOCK mode (valid 10-15) * -* MODE = 80 = GETLINE, 81 = PUTLINE (other bits ignored) * -* N.B.: see comments under Return value -*3 RECFM - 0 = F, 1 = V, 2 = U. Default/preference set by caller; * -* actual value returned from open. * -*4 LRECL - Default/preference set by caller; OPEN value returned. * -*5 BLKSIZE - Default/preference set by caller; OPEN value returned. * -* * -* August 2009 revision - caller will pass preferred RECFM (coded 0-2) * -* LRECL, and BLKSIZE values. DCB OPEN exit OCDCBEX will use these * -* defaults when not specified on JCL or DSCB merge. * -* * -*6 ZBUFF2 - pointer to an area that may be written to (size is LRECL) * -*7 MEMBER - *pointer* to space-padded, 8 character member name. * -* A member name beginning with blank or hex zero is ignored. * -* If pointer is 0 (NULL), no member is requested * -* * -* Return value: * -* An internal "handle" that allows the assembler routines to * -* keep track of what's what, when READ etc are subsequently * -* called. * -* * -* All passed parameters are subject to overrides based on device * -* capabilities and capacities, e.g., blocking may be turned off. * -* In particular, the MODE flag will have x'40' ORed in for a * -* unit record device. * -* * -* * -* Note - more documentation for this and other I/O functions can * -* be found halfway through the stdio.c file in PDPCLIB. * -* * -* Here are some of the errors reported: * -* * -* OPEN input failed return code is: -37 * -* OPEN output failed return code is: -39 * -* * -* FIND input member return codes are: * -* Original, before the return and reason codes had * -* negative translations added refer to copyrighted: * -* DFSMS Macro Instructions for Data Sets * -* RC = 0 Member was found. * -* RC = -1024 Member not found. * -* RC = -1028 RACF allows PDSE EXECUTE, not PDSE READ. * -* RC = -1032 PDSE share not available. * -* RC = -1036 PDSE is OPENed output to a different member. * -* RC = -2048 Directory I/O error. * -* RC = -2052 Out of virtual storage. * -* RC = -2056 Invalid DEB or DEB not on TCB or TCBs DEB chain. * -* RC = -2060 PDSE I/O error flushing system buffers. * -* RC = -2064 Invalid FIND, no DCB address. * -* * -*********************************************************************** - PUSH USING -@@AOPEN FUNHEAD SAVE=(WORKAREA,OPENLEN,SUBPOOL) - LR R11,R1 KEEP R11 FOR PARAMETERS - USING PARMSECT,R11 MAKE IT EASIER TO READ - L R3,PARM1 R3 POINTS TO DDNAME -* Note that R5 is used as a scratch register - L R8,PARM4 R8 POINTS TO LRECL -* PARM5 has BLKSIZE -* PARM6 has ZBUFF2 pointer - L R9,PARM7 R9 POINTS TO MEMBER NAME (OF PDS) - LA R9,00(,R9) Strip off high-order bit or byte - TM 0(R9),255-X'40' Either blank or zero? - BNZ *+6 No - SR R9,R9 Set for no member - SPACE 1 - L R4,PARM2 R4 is the MODE. 0=input 1=output - CH R4,=H'256' Call with value? - BL *+8 Yes; else pointer - L R4,0(,R4) Load C/370 MODE. 0=input 1=output - SPACE 1 - AIF ('&SYS' NE 'S390').NOLOW - GETMAIN R,LV=ZDCBLEN,SP=SUBPOOL,LOC=BELOW - AGO .FINLOW -.NOLOW GETMAIN R,LV=ZDCBLEN,SP=SUBPOOL -.FINLOW LR R10,R1 Addr.of storage obtained to its base - USING IHADCB,R10 Give assembler DCB area base register - LR R0,R10 Load output DCB area address - LA R1,ZDCBLEN Load output length of DCB area - LA R15,0 Pad of X'00' and no input length - MVCL R0,R14 Clear DCB area to binary zeroes -*---------------------------------------------------------------------* -* GET USER'S DEFAULTS HERE, BECAUSE THEY MAY GET CHANGED -*---------------------------------------------------------------------* - L R5,PARM3 HAS RECFM code (0-FB 1-VB 2-U) - L R14,0(,R5) LOAD RECFM VALUE - STC R14,FILEMODE PASS TO OPEN - L R14,0(,R8) GET LRECL VALUE - ST R14,LRECL PASS TO OPEN - L R14,PARM5 R14 POINTS TO BLKSIZE - L R14,0(,R14) GET BLOCK SIZE - ST R14,BLKSIZE PASS TO OPEN - SPACE 1 -*---------------------------------------------------------------------* -* DO THE DEVICE TYPE NOW TO CHECK WHETHER EXCP IS POSSIBLE -* ALSO BYPASS STUFF IF USER REQUESTED TERMINAL I/O -*---------------------------------------------------------------------* -OPCURSE STC R4,WWORK Save to storage - STC R4,WWORK+1 Save to storage - NI WWORK+1,7 Retain only open mode bits - TM WWORK,IOFTERM Terminal I/O ? - BNZ TERMOPEN Yes; do completely different -***> Consider forcing terminal mode if DD is a terminal? - MVC DWDDNAM,0(R3) Move below the line - DEVTYPE DWDDNAM,DWORK Check device type - BXH R15,R15,FAILDCB DD missing - ICM R0,15,DWORK+4 Any device size ? - BNZ OPHVMAXS - MVC DWORK+6(2),=H'32760' Set default max - SPACE 1 -OPHVMAXS CLI WWORK+1,3 Append requested ? - BNE OPNOTAP No - TM DWORK+2,UCB3TAPE+UCB3DACC TAPE or DISK ? - BM OPNOTAP Yes; supported - NI WWORK,255-2 Change to plain output -*OR-FAIL BNM FAILDCB No, not supported - SPACE 1 -OPNOTAP CLI WWORK+1,2 UPDAT request? - BNE OPNOTUP No - CLI DWORK+2,UCB3DACC DASD ? - BNE FAILDCB No, not supported - SPACE 1 -OPNOTUP CLI WWORK+1,4 INOUT or OUTIN ? - BL OPNOTIO No - TM DWORK+2,UCB3TAPE+UCB3DACC TAPE or DISK ? - BNM FAILDCB No; not supported - SPACE 1 -OPNOTIO TM WWORK,IOFEXCP EXCP requested ? - BZ OPFIXMD2 - CLI DWORK+2,UCB3TAPE TAPE/CARTRIDGE device? - BE OPFIXMD1 Yes; wonderful ? -OPFIXMD0 NI WWORK,255-IOFEXCP Cancel EXCP request - B OPFIXMD2 -OPFIXMD1 L R0,BLKSIZE GET USER'S SIZE - CH R0,=H'32760' NEED EXCP ? - BNH OPFIXMD0 NO; USE BSAM - ST R0,DWORK+4 Increase max size - ST R0,LRECL ALSO RECORD LENGTH - MVI FILEMODE,2 FORCE RECFM=U - SPACE 1 -OPFIXMD2 IC R4,WWORK Fix up -OPFIXMOD STC R4,WWORK Save to storage - MVC IOMFLAGS,WWORK Save for duration - SPACE 1 -*---------------------------------------------------------------------* -* Do as much common code for input and output before splitting -* Set mode flag in Open/Close list -* Move BSAM, QSAM, or EXCP DCB to work area -*---------------------------------------------------------------------* - STC R4,OPENCLOS Initialize MODE=24 OPEN/CLOSE list - NI OPENCLOS,X'07' For now -* OPEN mode: IN OU UP AP IO OI - TR OPENCLOS(1),=X'80,8F,84,8E,83,86,0,0' - CLI OPENCLOS,0 NOT SUPPORTED ? - BE FAILDCB FAIL REQUEST - SPACE 1 - TM WWORK,IOFEXCP EXCP mode ? - BZ OPQRYBSM - MVC ZDCBAREA(EXCPDCBL),EXCPDCB Move DCB/IOB/CCW - LA R15,TAPEIOB FOR EASIER SETTINGS - USING IOBSTDRD,R15 - MVI IOBFLAG1,IOBDATCH+IOBCMDCH COMMAND CHAINING IN USE - MVI IOBFLAG2,IOBRRT2 - LA R1,TAPEECB - ST R1,IOBECBPT - LA R1,TAPECCW - ST R1,IOBSTART CCW ADDRESS - ST R1,IOBRESTR CCW ADDRESS - LA R1,TAPEDCB - ST R1,IOBDCBPT DCB - LA R1,TAPEIOB - STCM R1,7,DCBIOBAA LINK IOB TO DCB FOR DUMP FORM.ING - LA R0,1 SET BLOCK COUNT INCREMENT - STH R0,IOBINCAM - DROP R15 - B OPREPCOM - SPACE 1 -OPQRYBSM TM WWORK,IOFBLOCK Block mode ? - BNZ OPREPBSM - TM WWORK,X'01' In or Out -*DEFUNCT BNZ OPREPQSM -OPREPBSM MVC ZDCBAREA(BSAMDCBL),BSAMDCB Move DCB template to work - TM DWORK+2,UCB3DACC+UCB3TAPE Tape or Disk ? - BM OPREPCOM Either; keep RP,WP - NC DCBMACR(2),=AL1(DCBMRRD,DCBMRWRT) Strip Point - B OPREPCOM - SPACE 1 -OPREPQSM MVC ZDCBAREA(QSAMDCBL),QSAMDCB -OPREPCOM MVC DCBDDNAM,0(R3) - MVC DEVINFO(8),DWORK Check device type - ICM R0,15,DEVINFO+4 Any ? - BZ FAILDCB No DD card or ? - N R4,=X'000000EF' Reset block mode - TM WWORK,IOFTERM Terminal I/O? - BNZ OPFIXMOD - TM WWORK,IOFBLOCK Blocked I/O? - BZ OPREPJFC - CLI DEVINFO+2,UCB3UREC Unit record? - BE OPFIXMOD Yes, may not block - SPACE 1 -OPREPJFC LA R14,JFCB -* EXIT TYPE 07 + 80 (END OF LIST INDICATOR) - ICM R14,B'1000',=X'87' - ST R14,DCBXLST+4 - LA R14,OCDCBEX POINT TO DCB EXIT -* Both S380 and S390 operate in 31-bit mode so need a stub - AIF ('&SYS' EQ 'S370').NODP24 - ST R14,DOPE31 Address of 31-bit exit - OI DOPE31,X'80' Set high bit = AMODE 31 - MVC DOPE24,DOPEX24 Move in stub code - LA R14,DOPE24 Switch to 24-bit stub -.NODP24 ANOP , - ICM R14,8,=X'05' REQUEST IT - ST R14,DCBXLST AND SET IT BACK - LA R14,DCBXLST - STCM R14,B'0111',DCBEXLSA - MVC EOFR24(EOFRLEN),ENDFILE Put EOF code below the line - LA R1,EOFR24 - STCM R1,B'0111',DCBEODA - RDJFCB ((R10)),MF=(E,OPENCLOS) Read JOB File Control Blk -*---------------------------------------------------------------------* -* If the caller did not request EXCP mode, but the user has BLKSIZE -* greater than 32760 on TAPE, then we set the EXCP bit in R4 and -* restart the OPEN. Otherwise MVS should fail? -* The system fails explicit BLKSIZE in excess of 32760, so we cheat. -* The NCP field is not otherwise honored, so if the value is 32 to -* 64 inclusive, we use that times 1024 as a value (max 65535) -*---------------------------------------------------------------------* - CLI DEVINFO+2,UCB3TAPE TAPE DEVICE? - BNE OPNOTBIG NO - TM WWORK,IOFEXCP USER REQUESTED EXCP ? - BNZ OPVOLCNT NOTHING TO DO - CLI JFCNCP,32 LESS THAN MIN ? - BL OPNOTBIG YES; IGNORE - CLI JFCNCP,65 NOT TOO HIGH ? - BH OPNOTBIG TOO BAD -*---------------------------------------------------------------------* -* Clear DCB wrk area and force RECFM=U,BLKSIZE>32K -* and restart the OPEN processing -*---------------------------------------------------------------------* - LR R0,R10 Load output DCB area address - LA R1,ZDCBLEN Load output length - LA R15,0 Pad of X'00' - MVCL R0,R14 Clear DCB area to zeroes - SR R0,R0 - ICM R0,1,JFCNCP NUMBER OF CHANNEL PROGRAMS - SLL R0,10 *1024 - C R0,=F'65535' LARGER THAN CCW SUPPORTS? - BL *+8 NO - L R0,=F'65535' LOAD MAX SUPPORTED - ST R0,BLKSIZE MAKE NEW VALUES THE DEFAULT - ST R0,LRECL MAKE NEW VALUES THE DEFAULT - MVI FILEMODE,2 USE RECFM=U - LA R0,IOFEXCP GET EXCP OPTION - OR R4,R0 ADD TO USER'S REQUEST - B OPCURSE AND RESTART THE OPEN - SPACE 1 -OPVOLCNT SR R1,R1 - ICM R1,1,JFCBVLCT GET VOLUME COUNT FROM DD - BNZ *+8 OK - LA R1,1 SET FOR ONE - ST R1,ZXCPVOLS SAVE FOR EOV - SPACE 1 -OPNOTBIG CLI DEVINFO+2,UCB3DACC Is it a DASD device? - BNE OPNODSCB No; no member name supported -*---------------------------------------------------------------------* -* For a DASD resident file, get the format 1 DSCB -*---------------------------------------------------------------------* -* CAMLST CAMLST SEARCH,DSNAME,VOLSER,DSCB+44 -* - L R14,CAMDUM Get CAMLST flags - LA R15,JFCBDSNM Load address of output data set name - LA R0,JFCBVOLS Load addr. of output data set volser - LA R1,DS1FMTID Load address of where to put DSCB - STM R14,R1,CAMLST Complete CAMLST addresses - OBTAIN CAMLST Read the VTOC record - SPACE 1 -* The member name may not be below the line, which may stuff up -* the "FIND" macro, so make sure it is in 24-bit memory. -OPNODSCB LTR R9,R9 See if an address for the member name - BZ NOMEM No member name, skip copying - MVC MEMBER24,0(R9) - LA R9,MEMBER24 - SPACE 1 -*---------------------------------------------------------------------* -* Split READ and WRITE paths -* Note that all references to DCBRECFM, DCBLRECL, and DCBBLKSI -* have been replaced by ZRECFM, LRECL, and BLKSIZE for EXCP use. -*---------------------------------------------------------------------* -NOMEM TM WWORK,1 See if OPEN input or output - BNZ WRITING -*---------------------------------------------------------------------* -* -* READING -* N.B. moved RDJFCB prior to member test to allow uniform OPEN and -* other code. Makes debugging and maintenance easier -* -*---------------------------------------------------------------------* - OI JFCBTSDM,JFCNWRIT Don't mess with DSCB - CLI DEVINFO+2,UCB3DACC Is it a DASD device? - BNE OPENVSEQ No; no member name supported -*---------------------------------------------------------------------* -* See if DSORG=PO but no member; use member from JFCB if one -*---------------------------------------------------------------------* - TM DS1DSORG,DS1DSGPO See if DSORG=PO - BZ OPENVSEQ Not PDS, don't read PDS directory - TM WWORK,X'07' ANY NON-READ OPTION ? - BNZ FAILDCB NOT ALLOWED FOR PDS - LTR R9,R9 See if an address for the member name - BNZ OPENMEM Is member name - BPAM access - TM JFCBIND1,JFCPDS See if a member name in JCL - BZ OPENDIR No; read directory - MVC MEMBER24,JFCBELNM Save the member name - NI JFCBIND1,255-JFCPDS Reset it - XC JFCBELNM,JFCBELNM Delete it in JFCB - LA R9,MEMBER24 Force FIND to prevent 013 abend - B OPENMEM Change DCB to BPAM PO -*---------------------------------------------------------------------* -* At this point, we have a PDS but no member name requested. -* Request must be to read the PDS directory -*---------------------------------------------------------------------* -OPENDIR TM OPENCLOS,X'0F' Other than plain OPEN ? - BNZ BADOPIN No, fail (allow UPDAT later?) - LA R0,256 Set size for Directory BLock - STH R0,DCBBLKSI Set DCB BLKSIZE to 256 - STH R0,DCBLRECL Set DCB LRECL to 256 - ST R0,LRECL - ST R0,BLKSIZE - MVI DCBRECFM,DCBRECF Set DCB RECFM to RECFM=F (notU?) - B OPENIN -OPENMEM MVI DCBDSRG1,DCBDSGPO Replace DCB DSORG=PS with PO - OI JFCBTSDM,JFCVSL Force OPEN analysis of JFCB - B OPENIN -OPENVSEQ LTR R9,R9 Member name for sequential? - BNZ BADOPIN Yes, fail - TM IOMFLAGS,IOFEXCP EXCP mode ? - BNZ OPENIN YES - OI DCBOFLGS,DCBOFPPC Allow unlike concatenation -OPENIN OPEN MF=(E,OPENCLOS),TYPE=J Open the data set - TM DCBOFLGS,DCBOFOPN Did OPEN work? - BZ BADOPIN OPEN failed, go return error code -37 - LTR R9,R9 See if an address for the member name - BZ GETBUFF No member name, skip finding it -* - FIND (R10),(R9),D Point to the requested member -* - LTR R15,R15 See if member found - BZ GETBUFF Member found, go get an input buffer -* If FIND return code not zero, process return and reason codes and -* return to caller with a negative return code. - SLL R15,8 Shift return code for reason code - OR R15,R0 Combine return code and reason code - LR R7,R15 Number to generate return and reason - CLOSE MF=(E,OPENCLOS) Close, FREEPOOL not needed - B FREEDCB -BADOPIN DS 0H -BADOPOUT DS 0H -FAILDCB N R4,=F'1' Mask other option bits - LA R7,37(R4,R4) Preset OPEN error code -FREEDCB FREEMAIN R,LV=ZDCBLEN,A=(R10),SP=SUBPOOL Free DCB area - LCR R7,R7 Set return and reason code - B RETURNOP Go return to caller with negative RC - SPACE 1 -*---------------------------------------------------------------------* -* Process for OUTPUT mode -*---------------------------------------------------------------------* -WRITING LTR R9,R9 - BZ WNOMEM - CLI DEVINFO+2,UCB3DACC DASD ? - BNE BADOPOUT Member name invalid - TM DS1DSORG,DS1DSGPO See if DSORG=PO - BZ BADOPOUT Is not PDS, fail request - TM WWORK,X'06' ANY NON-RITE OPTION ? - BNZ FAILDCB NOT ALLOWED FOR PDS - MVC JFCBELNM,0(R9) - OI JFCBIND1,JFCPDS - OI JFCBTSDM,JFCVSL Just in case - B WNOMEM2 Go to move DCB info -WNOMEM DS 0H - TM JFCBIND1,JFCPDS See if a member name in JCL - BO WNOMEM2 Is member name, go to continue OPEN -* See if DSORG=PO but no member so OPEN output would destroy directory - TM DS1DSORG,DS1DSGPO See if DSORG=PO - BZ WNOMEM2 Is not PDS, go OPEN - WTO 'MVSSUPA - No member name for output PDS',ROUTCDE=11 - WTO 'MVSSUPA - Refuses to write over PDS directory', C - ROUTCDE=11 - ABEND 123 Abend without a dump - SPACE 1 -WNOMEM2 OPEN MF=(E,OPENCLOS),TYPE=J - TM DCBOFLGS,DCBOFOPN Did OPEN work? - BZ BADOPOUT OPEN failed, go return error code -39 - SPACE 1 -*---------------------------------------------------------------------* -* Acquire one BLKSIZE buffer for our I/O; and one LRECL buffer -* for use by caller for @@AWRITE, and us for @@AREAD. -*---------------------------------------------------------------------* -GETBUFF L R5,BLKSIZE Load the input blocksize - LA R6,4(,R5) Add 4 in case RECFM=U buffer - GETMAIN R,LV=(R6),SP=SUBPOOL Get input buffer storage - ST R1,ZBUFF1 Save for cleanup - ST R6,ZBUFF1+4 ditto - ST R1,BUFFADDR Save the buffer address for READ - XC 0(4,R1),0(R1) Clear the RECFM=U Record Desc. Word - LA R14,0(R5,R1) Get end address - ST R14,BUFFEND for real - SPACE 1 - L R6,LRECL Get record length - LA R6,4(,R6) Insurance - GETMAIN R,LV=(R6),SP=SUBPOOL Get VBS build record area - ST R1,ZBUFF2 Save for cleanup - ST R6,ZBUFF2+4 ditto - LA R14,4(,R1) - ST R14,VBSADDR Save the VBS read/user write - L R5,PARM6 Get caller's BUFFER address - ST R14,0(,R5) and return work address - AR R1,R6 Add size GETMAINed to find end - ST R1,VBSEND Save address after VBS rec.build area - B DONEOPEN Go return to caller with DCB info - SPACE 1 - PUSH USING -*---------------------------------------------------------------------* -* Establish ZDCBAREA for either @@AWRITE or @@AREAD processing to -* a terminal, or SYSTSIN/SYSTERM in batch. -*---------------------------------------------------------------------* -TERMOPEN MVC IOMFLAGS,WWORK Save for duration - NI IOMFLAGS,IOFTERM+IOFOUT IGNORE ALL OTHERS - MVC ZDCBAREA(TERMDCBL),TERMDCB Move DCB/IOB/CCW - MVC ZIODDNM,0(R3) DDNAME FOR DEBUGGING, ETC. - LTR R9,R9 See if an address for the member name - BNZ FAILDCB Yes; fail - L R14,PSATOLD-PSA GET MY TCB - USING TCB,R14 - ICM R15,15,TCBJSCB LOOK FOR THE JSCB - BZ FAILDCB HUH ? - USING IEZJSCB,R15 - ICM R15,15,JSCBPSCB PSCB PRESENT ? - BZ FAILDCB NO; NOT TSO - L R1,TCBFSA GET FIRST SAVE AREA - N R1,=X'00FFFFFF' IN CASE AM31 - L R1,24(,R1) LOAD INVOCATION R1 - USING CPPL,R1 DECLARE IT - MVC ZIOECT,CPPLECT - MVC ZIOUPT,CPPLUPT - SPACE 1 - ICM R6,15,BLKSIZE Load the input blocksize - BP *+12 Use it - LA R6,1024 Arbitrary non-zero size - ST R6,BLKSIZE Return it - ST R6,LRECL Return it - LA R6,4(,R6) Add 4 in case RECFM=U buffer - GETMAIN R,LV=(R6),SP=SUBPOOL Get input buffer storage - ST R1,ZBUFF2 Save for cleanup - ST R6,ZBUFF2+4 ditto - LA R1,4(,R1) Allow for RDW if not V - ST R1,BUFFADDR Save the buffer address for READ - L R5,PARM6 R5 points to ZBUFF2 - ST R1,0(,R5) save the pointer - XC 0(4,R1),0(R1) Clear the RECFM=U Record Desc. Word - MVC ZRECFM,FILEMODE Requested format 0-2 - NI ZRECFM,3 Just in case - TR ZRECFM,=X'8040C0C0' Change to F / V / U - POP USING - SPACE 1 -* Lots of code tests DCBRECFM twice, to distinguish among F, V, and -* U formats. We set the index byte to 0,4,8 to allow a single test -* with a three-way branch. -DONEOPEN LR R7,R10 Return DCB/file handle address - LA R0,8 - TM ZRECFM,DCBRECU Undefined ? - BO SETINDEX Yes - BM GETINDFV No - TM ZRECFM,DCBRECTO RECFM=D - BZ SETINDEX No; treat as U - B SETINDVD -GETINDFV SR R0,R0 Set for F - TM ZRECFM,DCBRECF Fixed ? - BNZ SETINDEX Yes -SETINDVD LA R0,4 Preset for V -SETINDEX STC R0,RECFMIX Save for the duration - SRL R0,2 Convert to caller's code - L R5,PARM3 POINT TO RECFM - ST R0,0(,R5) Pass either RECFM F or V to caller - L R1,LRECL Load RECFM F or V max. record length - ST R1,0(,R8) Return record length back to caller - L R5,PARM5 POINT TO BLKSIZE - L R0,BLKSIZE Load RECFM U maximum record length - ST R0,0(,R5) Pass new BLKSIZE - L R5,PARM2 POINT TO MODE - MVC 3(1,R5),IOMFLAGS Pass (updated) file mode back - CLI DEVINFO+2,UCB3UREC - BNE NOTUNREC Not unit-record - OI 3(R5),IOFUREC flag unit-record -NOTUNREC DS 0H -* -* Finished with R5 now -* -RETURNOP FUNEXIT RC=(R7) Return to caller -* -* This is not executed directly, but copied into 24-bit storage -ENDFILE LA R6,1 Indicate @@AREAD reached end-of-file - LNR R6,R6 Make negative - BR R14 Return to instruction after the GET -EOFRLEN EQU *-ENDFILE -* - LTORG , - SPACE 1 -BSAMDCB DCB MACRF=(RP,WP),DSORG=PS,DDNAME=BSAMDCB, input and output * - EXLST=1-1 JFCB and DCB exits added later -BSAMDCBN EQU *-BSAMDCB -READDUM READ NONE, Read record Data Event Control Block * - SF, Read record Sequential Forward * - , (R10), Read record DCB address * - , (R4), Read record input buffer * - , (R5), Read BLKSIZE or 256 for PDS.Directory* - MF=L List type MACRO -READLEN EQU *-READDUM -BSAMDCBL EQU *-BSAMDCB - SPACE 1 -EXCPDCB DCB DDNAME=EXCPDCB,MACRF=E,DSORG=PS,REPOS=Y,BLKSIZE=0, * - DEVD=TA,EXLST=1-1,RECFM=U - DC 8XL4'0' CLEAR UNUSED SPACE - ORG EXCPDCB+84 LEAVE ROOM FOR DCBLRECL - DC F'0' VOLUME COUNT -PATCCW CCW 1,2-2,X'40',3-3 - ORG , -EXCPDCBL EQU *-EXCPDCB PATTERN TO MOVE - SPACE 1 -TERMDCB PUTLINE MF=L PATTERN FOR TERMINAL I/O -TERMDCBL EQU *-TERMDCB SIZE OF IOPL - SPACE 1 -F65536 DC F'65536' Maximum VBS record GETMAIN length -* -* QSAMDCB changes depending on whether we are in LOCATE mode or -* MOVE mode -QSAMDCB DCB MACRF=P&OUTM.M,DSORG=PS,DDNAME=QSAMDCB -QSAMDCBL EQU *-QSAMDCB -* -* -* CAMDUM CAMLST SEARCH,DSNAME,VOLSER,DSCB+44 -CAMDUM CAMLST SEARCH,*-*,*-*,*-* -CAMLEN EQU *-CAMDUM Length of CAMLST Template - POP USING - SPACE 1 -*---------------------------------------------------------------------* -* Expand OPEN options for reference -*---------------------------------------------------------------------* -ADHOC DSECT , -OPENREF OPEN (BSAMDCB,INPUT),MF=L QSAM, BSAM, any DEVTYPE - OPEN (BSAMDCB,OUTPUT),MF=L QSAM, BSAM, any DEVTYPE - OPEN (BSAMDCB,UPDAT),MF=L QSAM, BSAM, DASD - OPEN (BSAMDCB,EXTEND),MF=L QSAM, BSAM, DASD, TAPE - OPEN (BSAMDCB,INOUT),MF=L BSAM, DASD, TAPE - OPEN (BSAMDCB,OUTINX),MF=L BSAM, DASD, TAPE - OPEN (BSAMDCB,OUTIN),MF=L BSAM, DASD, TAPE - SPACE 1 -PARMSECT DSECT , MAP CALL PARM -PARM1 DS A FIRST PARM -PARM2 DS A NEXT PARM -PARM3 DS A NEXT PARM -PARM4 DS A NEXT PARM -PARM5 DS A NEXT PARM -PARM6 DS A NEXT PARM -PARM7 DS A NEXT PARM -PARM8 DS A NEXT PARM - CSECT , - SPACE 1 - ORG CAMDUM+4 Don't need rest - SPACE 2 -*********************************************************************** -* * -* OPEN DCB EXIT - if RECFM, LRECL, BLKSIZE preset, no change * -* unless forced by device (e.g., unit record * -* not blocked) * -* for PDS directory read, F, 256, 256 are preset. * -* a) device is unit record - default U, device size, device size * -* b) all others - default to values passed to AOPEN * -* * -* For FB, if LRECL > BLKSIZE, make LRECL=BLKSIZE * -* For VB, if LRECL+3 > BLKSIZE, set spanned * -* * -* * -* So, what this means is that if the DCBLRECL etc fields are set * -* already by MVS (due to existing file, JCL statement etc), * -* then these aren't changed. However, if they're not present, * -* then start using the "LRECL" etc previously set up by C caller. * -* * -*********************************************************************** - PUSH USING - DROP , - USING OCDCBEX,R15 - USING IHADCB,R1 DECLARE OUR DCB WORK SPACE -OCDCBEX LR R11,R1 SAVE DCB ADDRESS AND OPEN FLAGS - N R1,=X'00FFFFFF' NO 0C4 ON DCB ACCESS IF AM31 - TM IOPFLAGS,IOFDCBEX Been here before ? - BZ OCDCBX1 - OI IOPFLAGS,IOFCONCT Set unlike concatenation - OI DCBOFLGS,DCBOFPPC Keep them coming -OCDCBX1 OI IOPFLAGS,IOFDCBEX Show exit entered - SR R2,R2 FOR POSSIBLE DIVIDE (FB) - SR R3,R3 - ICM R3,3,DCBBLKSI GET CURRENT BLOCK SIZE - SR R4,R4 FOR POSSIBLE LRECL=X - ICM R4,3,DCBLRECL GET CURRENT RECORD LENGTH - NI FILEMODE,3 MASK FILE MODE - MVC ZRECFM,FILEMODE GET OPTION BITS - TR ZRECFM,=X'90,50,C0,C0' 0-FB 1-VB 2-U - TM DCBRECFM,DCBRECLA ANY RECORD FORMAT SPECIFIED? - BNZ OCDCBFH YES - CLI DEVINFO+2,UCB3UREC UNIT RECORD? - BNE OCDCBFM NO; USE OVERRIDE -OCDCBFU CLI FILEMODE,0 DID USER REQUEST FB? - BE OCDCBFM YES; USE IT - OI DCBRECFM,DCBRECU SET U FOR READER/PUNCH/PRINTER - B OCDCBFH -OCDCBFM MVC DCBRECFM,ZRECFM -OCDCBFH LTR R4,R4 - BNZ OCDCBLH HAVE A RECORD LENGTH - L R4,DEVINFO+4 SET DEVICE SIZE FOR UNIT RECORD - CLI DEVINFO+2,UCB3UREC UNIT RECORD? - BE OCDCBLH YES; USE IT -* REQUIRES CALLER TO SET LRECL=BLKSIZE FOR RECFM=U DEFAULT - ICM R4,15,LRECL SET LRECL=PREFERRED BLOCK SIZE - BNZ *+8 - L R4,DEVINFO+4 ELSE USE DEVICE MAX - IC R5,DCBRECFM GET RECFM - N R5,=X'000000C0' RETAIN ONLY D,F,U,V - SRL R5,6 CHANGE TO 0-D 1-V 2-F 3-U - MH R5,=H'3' PREPARE INDEX - SR R6,R6 - IC R6,FILEMODE GET USER'S VALUE - AR R5,R6 DCB VS. DFLT ARRAY -* DCB RECFM: --D--- --V--- --F--- --U--- -* FILE MODE: F V U F V U F V U F V U - LA R6,=AL1(4,0,-4,4,0,-4,0,-4,0,0,-4,0) LRECL ADJUST - AR R6,R5 POINT TO ENTRY - ICM R5,8,0(R6) LOAD IT - SRA R5,24 SHIFT WITH SIGN EXTENSION - AR R4,R5 NEW LRECL - SPACE 1 -* NOW CHECK BLOCK SIZE -OCDCBLH LTR R3,R3 ANY ? - BNZ *+8 YES - ICM R3,15,BLKSIZE SET OUR PREFERRED SIZE - BNZ *+8 OK - L R3,DEVINFO+4 SET NON-ZERO - C R3,DEVINFO+4 LEGAL ? - BNH *+8 - L R3,DEVINFO+4 NO; SHORTEN - TM DCBRECFM,DCBRECU U? - BO OCDCBBU YES - TM DCBRECFM,DCBRECF FIXED ? - BZ OCDCBBV NO; CHECK VAR - DR R2,R4 - CH R3,=H'1' DID IT FIT ? - BE OCDCBBF BARELY - BH OCDCBBB ELSE LEAVE BLOCKED - LA R3,1 SET ONE RECORD MINIMUM -OCDCBBF NI DCBRECFM,255-DCBRECBR BLOCKING NOT NEEDED -OCDCBBB MR R2,R4 BLOCK SIZE NOW MULTIPLE OF LRECL - B OCDCBXX AND GET OUT -* VARIABLE -OCDCBBV LA R5,4(,R4) LRECL+4 - CR R5,R3 WILL IT FIT ? - BNH *+8 YES - OI DCBRECFM,DCBRECSB SET SPANNED - B OCDCBXX AND EXIT -* UNDEFINED -OCDCBBU LR R4,R3 FOR NEATNESS, SET LRECL = BLOCK SIZE -* EXEUNT (Save DCB options for EXCP compatibility in main code) -OCDCBXX STH R3,DCBBLKSI UPDATE POSSIBLY CHANGED BLOCK SIZE - STH R4,DCBLRECL AND RECORD LENGTH - ST R3,BLKSIZE UPDATE POSSIBLY CHANGED BLOCK SIZE - ST R4,LRECL AND RECORD LENGTH - MVC ZRECFM,DCBRECFM DITTO - AIF ('&SYS' EQ 'S370').NOOPSW - BSM R0,R14 - AGO .OPNRET -.NOOPSW ANOP , - BR R14 RETURN TO OPEN -.OPNRET ANOP , - POP USING - SPACE 2 -* - AIF ('&SYS' EQ 'S370').NODOP24 -*********************************************************************** -* * -* OPEN DCB EXIT - 24 bit stub * -* This code is not directly executed. It is copied below the line * -* It is only needed for AMODE 31 programs (both S380 and S390 * -* execute in this mode). * -* * -*********************************************************************** - PUSH USING - DROP , - USING DOPEX24,R15 -* -* This next line works because when we are actually executing, -* we are executing inside that DSECT, so the address we want -* follows the code. Also, it has already had the high bit set, -* so it will switch to 31-bit mode. -* -DOPEX24 L R15,DOPE31-DOPE24(,R15) Load 31-bit routine address -* -* The following works because while the AMODE is saved in R14, the -* rest of R14 isn't disturbed, so it is all set for a BSM to R14 -* - BSM R14,R15 Switch to 31-bit mode -DOPELEN EQU *-DOPEX24 - POP USING -.NODOP24 ANOP , -* - COPY CLIBSUPA -* - SPACE 2 - PRINT NOGEN - IHAPSA , MAP LOW STORAGE - CVT DSECT=YES - IKJTCB , MAP TASK CONTROL BLOCK - IKJECT , MAP ENV. CONTROL BLOCK - IKJPTPB , PUTLINE PARAMETER BLOCK - IKJCPPL , - IKJPSCB , - IEZJSCB , - IEZIOB , - IEFZB4D0 , MAP SVC 99 PARAMETER LIST - IEFZB4D2 , MAP SVC 99 PARAMETERS - IEFUCBOB , -MYTIOT DSECT , - IEFTIOT1 , - IHAPDS PDSBLDL=YES - SPACE 1 - IFGACB , GP14233 - SPACE 1 - IFGRPL , GP14233 - IEFJESCT , - IKJUPT , - END diff --git a/src/crent370/asm/@@aopen.o b/src/crent370/asm/@@aopen.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/asm/@@apoint.asm b/src/crent370/asm/@@apoint.asm deleted file mode 100644 index 38ea19b..0000000 --- a/src/crent370/asm/@@apoint.asm +++ /dev/null @@ -1,81 +0,0 @@ - MACRO , -&NM FIXWRITE , -&NM L R15,=V(@@ATROUT) - BALR R14,R15 TRUNCATE CURRENT WRITE BLOCK - MEND , - COPY MVSMACS - COPY PDPTOP - CSECT , - PRINT GEN -* YREGS - SPACE 1 -*-----------------------ASSEMBLY OPTIONS------------------------------* -SUBPOOL EQU 0 * -*---------------------------------------------------------------------* - SPACE 1 -*********************************************************************** -* * -* APOINT - Restore the position in the data set (BSAM/BPAM only) * -* Note that this does not fail; it just bombs on the * -* next read or write if incorrect. * -* * -*********************************************************************** -@@APOINT FUNHEAD IO=YES,AM=YES,SAVE=SAVEADCB,US=NO NOTE position - L R3,4(,R1) R3 points to the TTR value - L R3,0(,R3) Get the TTR - ST R3,ZWORK Save below the line - FIXWRITE , - GO24 , For old code - TM IOMFLAGS,IOFEXCP EXCP mode ? - BZ POINBSAM No - L R4,DCBBLKCT Get current position - SR R4,R3 Get new position's increment - BZ POINCOM - BM POINHEAD -POINBACK MVI TAPECCW,X'27' Backspace - B POINECOM -POINHEAD MVI TAPECCW,X'37' Forward space -POINECOM LA R0,1 - STH R0,TAPECCW+6 - LPR R4,R4 -POINELUP EXCP TAPEIOB - WAIT ECB=TAPEECB - BCT R4,POINELUP - ST R3,DCBBLKCT - B POINCOM - SPACE 1 -POINBSAM POINT (R10),ZWORK Request repositioning -POINCOM AMUSE , - NI IOPFLAGS,255-IOFLEOF Valid POINT resets EOF - XC KEPTREC(8),KEPTREC Also clear record data - FUNEXIT RC=0 -* - LTORG , In case someone adds literals -* - SPACE 2 - COPY CLIBSUPA -* - SPACE 2 - PRINT NOGEN - IHAPSA , MAP LOW STORAGE - CVT DSECT=YES - IKJTCB , MAP TASK CONTROL BLOCK - IKJECT , MAP ENV. CONTROL BLOCK - IKJPTPB , PUTLINE PARAMETER BLOCK - IKJCPPL , - IKJPSCB , - IEZJSCB , - IEZIOB , - IEFZB4D0 , MAP SVC 99 PARAMETER LIST - IEFZB4D2 , MAP SVC 99 PARAMETERS - IEFUCBOB , -MYTIOT DSECT , - IEFTIOT1 , - IHAPDS PDSBLDL=YES - SPACE 1 - IFGACB , GP14233 - SPACE 1 - IFGRPL , GP14233 - IEFJESCT , - IKJUPT , - END diff --git a/src/crent370/asm/@@apoint.o b/src/crent370/asm/@@apoint.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/asm/@@aread.asm b/src/crent370/asm/@@aread.asm deleted file mode 100644 index e8c861e..0000000 --- a/src/crent370/asm/@@aread.asm +++ /dev/null @@ -1,331 +0,0 @@ - MACRO , -&NM FIXWRITE , -&NM L R15,=V(@@ATROUT) - BALR R14,R15 TRUNCATE CURRENT WRITE BLOCK - MEND , - COPY MVSMACS - COPY PDPTOP - CSECT , - PRINT GEN -* YREGS - SPACE 1 -*-----------------------ASSEMBLY OPTIONS------------------------------* -SUBPOOL EQU 0 * -*---------------------------------------------------------------------* - SPACE 1 -*********************************************************************** -* * -* AREAD - Read from an open data set * -* * -*********************************************************************** -@@AREAD FUNHEAD IO=YES,AM=YES,SAVE=SAVEADCB,US=NO READ / GET - L R3,4(,R1) R3 points to where to store record pointer - L R4,8(,R1) R4 points to where to store record length - SR R0,R0 - ST R0,0(,R3) Return null in case of EOF - ST R0,0(,R4) Return null in case of EOF - FIXWRITE , For OUTIN request - L R6,=F'-1' Prepare for EOF signal - TM IOPFLAGS,IOFKEPT Saved record ? - BZ READQEOF No; check for EOF - LM R8,R9,KEPTREC Get prior address & length - ST R8,0(,R3) Set address - ST R9,0(,R4) and length - XC KEPTREC(8),KEPTREC Reset record info - NI IOPFLAGS,IOFKEPT Reset flag - SR R6,R6 No EOF - B READEXIT - SPACE 1 -READQEOF TM IOPFLAGS,IOFLEOF Prior EOF ? - BNZ READEXIT Yes; don't abend - TM IOMFLAGS,IOFTERM GETLIN request? - BNZ TGETREAD Yes -* Return here for end-of-block or unlike concatenation -* -REREAD SLR R6,R6 Clear default end-of-file indicator - ICM R8,B'1111',BUFFCURR Load address of next record - BNZ DEBLOCK Block in memory, go de-block it - L R8,BUFFADDR Load address of input buffer - L R9,BLKSIZE Load block size to read - CLI RECFMIX,4 RECFM=Vxx ? - BE READ No, deblock - LA R8,4(,R8) Room for fake RDW -READ GO24 , For old code - TM IOMFLAGS,IOFEXCP EXCP mode? - BZ READBSAM No, use BSAM -*---------------------------------------------------------------------* -* EXCP read -*---------------------------------------------------------------------* -READEXCP STCM R8,7,TAPECCW+1 Read buffer - STH R9,TAPECCW+6 max length - MVI TAPECCW,2 READ - MVI TAPECCW+4,X'20' SILI bit - EXCP TAPEIOB Read - WAIT ECB=TAPEECB wait for completion - TM TAPEECB,X'7F' Good ? - BO EXRDOK Yes; calculate input length - CLI TAPEECB,X'41' Tape Mark read ? - BNE EXRDBAD NO - CLM R9,3,IOBCSW+5-IOBSTDRD+TAPEIOB All unread? - BNE EXRDBAD NO - L R1,DCBBLKCT - BCTR R1,0 - ST R1,DCBBLKCT allow for tape mark - OI DCBOFLGS,X'04' Set tape mark found - L R0,ZXCPVOLS Get current volume count - SH R0,=H'1' Just processed one - ST R0,ZXCPVOLS - BNP READEOD None left - take End File - EOV TAPEDCB switch volumes - B READEXCP and restart - SPACE 1 -EXRDBAD ABEND 001,DUMP bad way to show error? - SPACE 1 -EXRDOK SR R0,R0 - ICM R0,3,IOBCSW+5-IOBSTDRD+TAPEIOB - SR R9,R0 LENGTH READ - BNP BADBLOCK NONE ? - AMUSE , Restore caller's mode - LTR R6,R6 See if end of input data set - BM READEOD Is end, go return to caller - B POSTREAD Go to common code - SPACE 1 -*---------------------------------------------------------------------* -* BSAM read -*---------------------------------------------------------------------* -READBSAM SR R6,R6 Reset EOF flag - GO24 , Get low - READ DECB, Read record Data Event Control Block C - SF, Read record Sequential Forward C - (R10), Read record DCB address C - (R8), Read record input buffer C - (R9), Read BLKSIZE or 256 for PDS.DirectoryC - MF=E Execute a MF=L MACRO -* If EOF, R6 will be set to F'-1' - CHECK DECB Wait for READ to complete - TM IOPFLAGS,IOFCONCT Did we hit concatenation? - BZ READUSAM No; restore user's AM - NI IOPFLAGS,255-IOFCONCT Reset for next time - ICM R6,8,DCBRECFM - SRL R6,24+2 Isolate top two bits - STC R6,RECFMIX Store - TR RECFMIX,=X'01010002' Filemode D, V, F, U - MVC LRECL+2(2),DCBLRECL Also return record length - MVC ZRECFM,DCBRECFM and format - B READBSAM Reissue the READ - SPACE 1 -READUSAM AMUSE , Restore caller's mode - LTR R6,R6 See if end of input data set - BM READEOD Is end, go return to caller - L R14,DECB+16 DECIOBPT - USING IOBSTDRD,R14 Give assembler IOB base - SLR R1,R1 Clear residual amount work register - ICM R1,B'0011',IOBCSW+5 Load residual count - DROP R14 Don't need IOB address base anymore - SR R9,R1 Provisionally return blocklen - SPACE 1 -POSTREAD TM IOMFLAGS,IOFBLOCK Block mode ? - BNZ POSTBLOK Yes; process as such - TM ZRECFM,DCBRECU Also exit for U - BNO POSTREED -POSTBLOK ST R8,0(,R3) Return address to user - ST R9,0(,R4) Return length to user - STM R8,R9,KEPTREC Remember record info - XC BUFFCURR,BUFFCURR Show READ required next call - B READEXIT -POSTREED CLI RECFMIX,4 See if RECFM=V - BNE EXRDNOTV Is RECFM=U or F, so not RECFM=V - ICM R9,3,0(R8) Get presumed block length - C R9,BLKSIZE Valid? - BH BADBLOCK No - ICM R0,3,2(R8) Garbage in BDW? - BNZ BADBLOCK Yes; fail - B EXRDCOM -EXRDNOTV LA R0,4(,R9) Fake length - SH R8,=H'4' Space to fake RDW - STH R0,0(0,R8) Fake RDW - LA R9,4(,R9) Up for fake RDW (F/U) -EXRDCOM LA R8,4(,R8) Bump buffer address past BDW - SH R9,=H'4' and adjust length to match - BNP BADBLOCK Oops - ST R8,BUFFCURR Indicate data available - ST R8,0(,R3) Return address to user - ST R9,0(,R4) Return length to user - STM R8,R9,KEPTREC Remember record info - LA R7,0(R9,R8) End address + 1 - ST R7,BUFFEND Save end - SPACE 1 - TM IOMFLAGS,IOFBLOCK Block mode? - BNZ READEXIT Yes; exit - TM ZRECFM,DCBRECU Also exit for U - BO READEXIT -*NEXT* B DEBLOCK Else deblock - SPACE 1 -* R8 has address of current record -DEBLOCK CLI RECFMIX,4 Is data set RECFM=U - BL DEBLOCKF Is RECFM=Fx, go deblock it -* -* Must be RECFM=V, VB, VBS, VS, VA, VM, VBA, VBM, VSA, VSM, VBSA, VBSM -* VBS SDW ( Segment Descriptor Word ): -* REC+0 length 2 is segment length -* REC+2 0 is record not segmented -* REC+2 1 is first segment of record -* REC+2 2 is last seqment of record -* REC+2 3 is one of the middle segments of a record -* R5 has address of current record -DEBLOCKV CLI 0(R8),X'80' LOGICAL END OF BLOCK ? - BE REREAD YES; DONE WITH THIS BLOCK - LH R9,0(,R8) GET LENGTH FROM RDW - CH R9,=H'4' AT LEAST MINIMUM ? - BL BADBLOCK NO; BAD RECORD OR BAD BLOCK - C R9,LRECL VALID LENGTH ? - BH BADBLOCK NO - LA R7,0(R9,R8) SET ADDRESS OF LAST BYTE +1 - C R7,BUFFEND WILL IT FIT INTO BUFFER ? - BL DEBVCURR LOW - LEAVE IT - BH BADBLOCK NO; FAIL - SR R7,R7 PRESET FOR BLOCK DONE -DEBVCURR ST R7,BUFFCURR for recursion - TM 3(R8),X'FF' CLEAN RDW ? - BNZ BADBLOCK - TM IOPFLAGS,IOFLSDW WAS PREVIOUS RECORD DONE ? - BO DEBVAPND NO - LH R0,0(,R8) Provisional length if simple - ST R0,0(,R4) Return length - ST R0,KEPTREC+4 Remember record info - CLI 2(R8),1 What is this? - BL SETCURR Simple record - BH BADBLOCK Not=1; have a sequence error - OI IOPFLAGS,IOFLSDW Starting a new segment - L R2,VBSADDR Get start of buffer - MVC 0(4,R2),=X'00040000' Preset null record - B DEBVMOVE And move this -DEBVAPND CLI 2(R8),3 IS THIS A MIDDLE SEGMENT ? - BE DEBVMOVE YES, PUT IT OUT - CLI 2(R8),2 IS THIS THE LAST SEGMENT ? - BNE BADBLOCK No; bad segment sequence - NI IOPFLAGS,255-IOFLSDW INDICATE RECORD COMPLETE -DEBVMOVE L R2,VBSADDR Get segment assembly area - SR R1,R1 Never trust anyone - ICM R1,3,0(R8) Length of addition - SH R1,=H'4' Data length - LA R0,4(,R8) Skip SDW - SR R15,R15 - ICM R15,3,0(R2) Get amount used so far - LA R14,0(R15,R2) Address for next segment - LA R8,0(R1,R15) New length - STH R8,0(,R2) Update RDW - A R8,VBSADDR New end address - C R8,VBSEND Will it fit ? - BH BADBLOCK - LR R15,R1 Move all - MVCL R14,R0 Append segment - TM IOPFLAGS,IOFLSDW Did last segment? - BNZ REREAD No; get next one - L R8,VBSADDR Give user the assembled record - SR R0,R0 - ICM R0,3,0(R8) Provisional length if simple - ST R0,0(,R4) Return length - ST R0,KEPTREC+4 Remember record info - B SETCURR Done - SPACE 2 -* If RECFM=FB, bump address by lrecl -* R8 has address of current record -DEBLOCKF L R7,LRECL Load RECFM=F DCB LRECL - ST R7,0(,R4) Return length - ST R7,KEPTREC+4 Remember record info - AR R7,R8 Find the next record address -* If address=BUFFEND, zero BUFFCURR -SETCURR CL R7,BUFFEND Is it off end of block? - BL SETCURS Is not off, go store it - SR R7,R7 Clear the next record address -SETCURS ST R7,BUFFCURR Store the next record address - ST R8,0(,R3) Store record address for caller - ST R8,KEPTREC Remember record info - B READEXIT - SPACE 1 -TGETREAD L R6,ZIOECT RESTORE ECT ADDRESS - L R7,ZIOUPT RESTORE UPT ADDRESS - MVI ZGETLINE+2,X'80' EXPECTED FLAG - GO24 - GETLINE PARM=ZGETLINE,ECT=(R6),UPT=(R7),ECB=ZIOECB, * - MF=(E,ZIOPL) - GO31 - LR R6,R15 COPY RETURN CODE - CH R6,=H'16' HIT BARRIER ? - BE READEOD2 YES; EOF, BUT ALLOW READS - CH R6,=H'8' SERIOUS ? - BNL READEXNG ATTENTION INTERRUPT OR WORSE - L R1,ZGETLINE+4 GET INPUT LINE -*---------------------------------------------------------------------* -* MVS 3.8 undocumented behavior: at end of input in batch execution, -* returns text of 'END' instead of return code 16. Needs DOC fix -*---------------------------------------------------------------------* - CLC =X'00070000C5D5C4',0(R1) Undocumented EOF? - BNE TGETNEOF - XC KEPTREC(8),KEPTREC Clear saved record info - LA R6,1 - LNR R6,R6 Signal EOF - B TGETFREE FREE BUFFER AND QUIT -TGETNEOF L R6,BUFFADDR GET INPUT BUFFER - LR R8,R1 INPUT LINE W/RDW - LH R9,0(,R1) GET LENGTH - LR R7,R9 FOR V, IN LEN = OUT LEN - CLI RECFMIX,4 RECFM=V ? - BE TGETHAVE YES - BL TGETSKPF - SH R7,=H'4' ALLOW FOR RDW - B TGETSKPV -TGETSKPF L R7,LRECL FULL SIZE IF F -TGETSKPV LA R8,4(,R8) SKIP RDW - SH R9,=H'4' LENGTH SANS RDW -TGETHAVE ST R6,0(,R3) RETURN ADDRESS - ST R7,0(,R4) AND LENGTH - STM R6,R7,KEPTREC Remember record info - ICM R9,8,=C' ' BLANK FILL - MVCL R6,R8 PRESERVE IT FOR USER - SR R6,R6 NO EOF -TGETFREE LH R0,0(,R1) GET LENGTH - ICM R0,8,=AL1(1) SUBPOOL 1 - FREEMAIN R,LV=(0),A=(1) FREE SYSTEM BUFFER - B READEXIT TAKE NORMAL EXIT - SPACE 1 -READEOD OI IOPFLAGS,IOFLEOF Remember that we hit EOF -READEOD2 XC KEPTREC(8),KEPTREC Clear saved record info - LA R6,1 -READEXNG LNR R6,R6 Signal EOF -READEXIT FUNEXIT RC=(R6) =1-EOF Return to caller -* -BADBLOCK WTO 'MVSSUPA - @@AREAD - problem processing RECFM=V(bs) file* - ',ROUTCDE=11 Send to programmer and listing - ABEND 1234,DUMP Abend U1234 and allow a dump -* - LTORG , In case someone adds literals -* - SPACE 2 - COPY CLIBSUPA -* - SPACE 2 - PRINT NOGEN - IHAPSA , MAP LOW STORAGE - CVT DSECT=YES - IKJTCB , MAP TASK CONTROL BLOCK - IKJECT , MAP ENV. CONTROL BLOCK - IKJPTPB , PUTLINE PARAMETER BLOCK - IKJCPPL , - IKJPSCB , - IEZJSCB , - IEZIOB , - IEFZB4D0 , MAP SVC 99 PARAMETER LIST - IEFZB4D2 , MAP SVC 99 PARAMETERS - IEFUCBOB , -MYTIOT DSECT , - IEFTIOT1 , - IHAPDS PDSBLDL=YES - SPACE 1 - IFGACB , GP14233 - SPACE 1 - IFGRPL , GP14233 - IEFJESCT , - IKJUPT , - END diff --git a/src/crent370/asm/@@aread.o b/src/crent370/asm/@@aread.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/asm/@@atrout.asm b/src/crent370/asm/@@atrout.asm deleted file mode 100644 index 0e97307..0000000 --- a/src/crent370/asm/@@atrout.asm +++ /dev/null @@ -1,119 +0,0 @@ - COPY MVSMACS - COPY PDPTOP - CSECT , - PRINT GEN -* YREGS - SPACE 1 -*-----------------------ASSEMBLY OPTIONS------------------------------* -SUBPOOL EQU 0 * -*---------------------------------------------------------------------* - SPACE 1 -*---------------------------------------------------------------------* -* Physical Write - called by @@ACLOSE, switch from output to input -* mode, and whenever output buffer is full or needs to be emptied. -* Works for EXCP and BSAM. Special processing for UPDAT mode -*---------------------------------------------------------------------* - ENTRY @@ATROUT -@@ATROUT B *+14-@@ATROUT(,R15) SKIP LABEL - DC AL1(9),CL(9)'@@ATROUT' EXPAND LABEL - AIF ('&SYS' NE 'S380').NOTRUBS - BSM R14,R0 PRESERVE AMODE -.NOTRUBS STM R14,R12,12(R13) SAVE CALLER'S REGISTERS - LR R12,R15 - USING @@ATROUT,R12 - LA R15,ZIOSAVE2-ZDCBAREA(,R10) - ST R15,8(,R13) - ST R13,4(,R15) - LR R13,R15 - USING IHADCB,R10 COMMON I/O AREA SET BY CALLER - TM IOPFLAGS,IOFLDATA PENDING WRITE ? - BZ TRUNCOEX NO; JUST RETURN - NI IOPFLAGS,255-IOFLDATA Reset it - GO24 , GET LOW - LM R4,R5,BUFFADDR START/NEXT ADDRESS - CLI RECFMIX,4 RECFM=V? - BNE TRUNLEN5 - SR R5,R5 - ICM R5,3,0(R4) USE BDW LENGTH - CH R5,=H'8' EMPTY ? - BNH TRUNPOST YES; IGNORE REQUEST - B TRUNTMOD CHECK OUTPUT TYPE -TRUNLEN5 SR R5,R4 CONVERT TO LENGTH - BNP TRUNCOEX NOTHING TO DO -TRUNTMOD DS 0H - TM IOMFLAGS,IOFEXCP EXCP mode ? - BNZ EXCPWRIT Yes - CLI OPENCLOS,X'84' Update mode? - BE TRUNSHRT Yes; just rewrite as is - CLI RECFMIX,4 RECFM=F ? - BNL *+8 No; leave it alone - STH R5,DCBBLKSI Why do I need this? - WRITE DECB,SF,(R10),(R4),(R5),MF=E Write block - B TRUNCHK -TRUNSHRT WRITE DECB,SF,MF=E Rewrite block from READ -TRUNCHK CHECK DECB - B TRUNPOST Clean up - SPACE 1 -EXCPWRIT STH R5,TAPECCW+6 - STCM R4,7,TAPECCW+1 WRITE FROM TEXT - NI DCBIFLGS,255-DCBIFEC ENABLE ERP - OI DCBIFLGS,X'40' SUPPRESS DDR - STCM R5,12,IOBSENS0-IOBSTDRD+TAPEIOB CLEAR SENSE - OI DCBOFLGS-IHADCB+TAPEDCB,DCBOFLWR SHOW WRITE - XC TAPEECB,TAPEECB - EXCP TAPEIOB - WAIT ECB=TAPEECB - TM TAPEECB,X'7F' GOOD COMPLETION? - BO TRUNPOST -*NEXT* BNO EXWRN7F NO - SPACE 1 -EXWRN7F TM IOBUSTAT-IOBSTDRD+TAPEIOB,IOBUSB7 END OF TAPE? - BNZ EXWREND YES; SWITCH TAPES - CLC =X'1020',IOBSENS0-IOBSTDRD+TAPEIOB EXCEEDED AWS/HET ? - BNE EXWRB001 -EXWREND L R15,DCBBLKCT - SH R15,=H'1' - ST R15,DCBBLKCT ALLOW FOR EOF 'RECORD' - EOV TAPEDCB TRY TO RECOVER - B EXCPWRIT - SPACE 1 -EXWRB001 LA R9,TAPEIOB GET IOB FOR QUICK REFERENCE - ABEND 001,DUMP - SPACE 1 -TRUNPOST XC BUFFCURR,BUFFCURR CLEAR - CLI RECFMIX,4 RECFM=V - BL TRUNCOEX F - JUST EXIT - LA R4,4 BUILD BDW - L R3,BUFFADDR GET BUFFER - STH R4,0(,R3) UPDATE -TRUNCOEX L R13,4(,R13) - LM R14,R12,12(R13) Reload all - QBSM 0,R14 Return in caller's mode - LTORG , - SPACE 2 - COPY CLIBSUPA -* - SPACE 2 - PRINT NOGEN - IHAPSA , MAP LOW STORAGE - CVT DSECT=YES - IKJTCB , MAP TASK CONTROL BLOCK - IKJECT , MAP ENV. CONTROL BLOCK - IKJPTPB , PUTLINE PARAMETER BLOCK - IKJCPPL , - IKJPSCB , - IEZJSCB , - IEZIOB , - IEFZB4D0 , MAP SVC 99 PARAMETER LIST - IEFZB4D2 , MAP SVC 99 PARAMETERS - IEFUCBOB , -MYTIOT DSECT , - IEFTIOT1 , - IHAPDS PDSBLDL=YES - SPACE 1 - IFGACB , GP14233 - SPACE 1 - IFGRPL , GP14233 - IEFJESCT , - IKJUPT , - END diff --git a/src/crent370/asm/@@atrout.o b/src/crent370/asm/@@atrout.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/asm/@@awrite.asm b/src/crent370/asm/@@awrite.asm deleted file mode 100644 index 4d53251..0000000 --- a/src/crent370/asm/@@awrite.asm +++ /dev/null @@ -1,189 +0,0 @@ - MACRO , -&NM FIXWRITE , -&NM L R15,=V(@@ATROUT) - BALR R14,R15 TRUNCATE CURRENT WRITE BLOCK - MEND , - COPY MVSMACS - COPY PDPTOP - CSECT , - PRINT GEN -* YREGS - SPACE 1 -*-----------------------ASSEMBLY OPTIONS------------------------------* -SUBPOOL EQU 0 * -*---------------------------------------------------------------------* - SPACE 1 -*********************************************************************** -* * -* AWRITE - Write to an open data set * -* * -*********************************************************************** -@@AWRITE FUNHEAD IO=YES,AM=YES,SAVE=SAVEADCB,US=NO WRITE / PUT - LR R11,R1 SAVE PARM LIST -WRITMORE NI IOPFLAGS,255-IOFCURSE RESET RECURSION - L R4,4(,R11) R4 points to the record address - L R4,0(,R4) Get record address - L R5,8(,R11) R5 points to length of data to write - L R5,0(,R5) Length of data to write - TM IOMFLAGS,IOFTERM PUTLIN request? - BNZ TPUTWRIT Yes -* - TM IOMFLAGS,IOFBLOCK Block mode? - BNZ WRITBLK Yes - CLI OPENCLOS,X'84' Running in update mode ? - BNE WRITENEW No - LM R2,R3,KEPTREC Get last record returned - LTR R3,R3 Any? - BNP WRITEEX No; ignore (or abend?) - CLI RECFMIX,4 RECFM=V... - BNE WRITUPMV NO - LA R0,4 ADJUST FOR RDW - AR R2,R0 KEEP OLD RDW - SR R3,R0 ADJUST REPLACE LENGTH - AR R4,R0 SKIP OVER USER'S RDW - SR R5,R0 ADJUST LENGTH -WRITUPMV MVCL R2,R4 REPLACE DATA IN BUFFER - OI IOPFLAGS,IOFLDATA SHOW DATA IN BUFFER - B WRITEEX REWRITE ON NEXT READ OR CLOSE - SPACE 1 -WRITENEW CLI RECFMIX,4 V-FORMAT ? - BH WRITBLK U - WRITE BLOCK AS IS - BL WRITEFIX F - ADD RECORD TO BLOCK - CH R5,0(,R4) RDW LENGTH = REQUESTED LEN? - BNE WRITEBAD NO; FAIL - L R8,BUFFADDR GET BUFFER - ICM R6,15,BUFFCURR Get next record address - BNZ WRITEVAT - LA R0,4 - STH R0,0(,R8) BUILD BDW - LA R6,4(,R8) SET TO FIRST RECORD POSITION -WRITEVAT L R9,BUFFEND GET BUFFER END - SR R9,R6 LESS CURRENT POSITION - TM ZRECFM,DCBRECSB SPANNED? - BZ WRITEVAR NO; ROUTINE VARIABLE WRITE - LA R1,4(,R5) GET RECORD + BDW LENGTH - C R1,LRECL VALID SIZE? - BH WRITEBAD NO; TAKE A DIVE - TM IOPFLAGS,IOFLSDW CONTINUATION ? - BNZ WRITEVAW YES; DO HERE - CR R5,R9 WILL IT FIT AS IS? - BNH WRITEVAS YES; DON'T NEED TO SPLIT -WRITEVAW CH R9,=H'5' AT LEAST FIVE BYTES LEFT ? - BL WRITEVNU NO; WRITE THIS BLOCK; RETRY - LR R3,R6 SAVE START ADDRESS - LR R7,R9 COPY LENGTH - CR R7,R5 ROOM FOR ENTIRE SEGMENT ? - BL *+4+2 NO - LR R7,R5 USE ONLY WHAT'S AVAILABLE - MVCL R6,R4 COPY RDW + DATA - ST R6,BUFFCURR UPDATE NEXT AVAILABLE - SR R6,R8 LESS START - STH R6,0(,R8) UPDATE BDW - STH R9,0(,R3) FIX RDW LENGTH - MVC 2(2,R3),=X'0100' SET FLAGS FOR START SEGMENT - TM IOPFLAGS,IOFLSDW DID START ? - BZ *+4+6 NO; FIRST SEGMENT - MVI 2(R3),3 SHOW MIDDLE SEGMENT - LTR R5,R5 DID WE FINISH THE RECORD ? - BP WRITEWAY NO - MVI 2(R3),2 SHOW LAST SEGMENT - NI IOPFLAGS,255-IOFLSDW-IOFCURSE RCD COMPLETE - OI IOPFLAGS,IOFLDATA SHOW WRITE DATA IN BUFFER - B WRITEEX DONE -WRITEWAY SH R9,=H'4' ALLOW FOR EXTRA RDW - AR R4,R9 - SR R5,R9 - STM R4,R5,KEPTREC MAKE FAKE PARM LIST - LA R11,KEPTREC-4 SET FOR RECURSION - OI IOPFLAGS,IOFLSDW SHOW RECORD INCOMPLETE - B WRITEVNU GO FOR MORE - SPACE 1 -WRITEVAR LA R1,4(,R5) GET RECORD + BDW LENGTH - C R1,BLKSIZE VALID SIZE? - BH WRITEBAD NO; TAKE A DIVE - L R9,BUFFEND GET BUFFER END - SR R9,R6 LESS CURRENT POSITION - CR R5,R9 WILL IT FIT ? - BH WRITEVNU NO; WRITE NOW AND RECURSE -WRITEVAS LR R7,R5 IN LENGTH = MOVE LENGTH - MVCL R6,R4 MOVE USER'S RECORD - ST R6,BUFFCURR UPDATE NEXT AVAILABLE - SR R6,R8 LESS START - STH R6,0(,R8) UPDATE BDW - OI IOPFLAGS,IOFLDATA SHOW WRITE DATA IN BUFFER - TM DCBRECFM,DCBRECBR BLOCKED? - BNZ WRITEEX YES, NORMAL - FIXWRITE , RECFM=V - WRITE IMMEDIATELY - B WRITEEX - SPACE 1 -WRITEVNU OI IOPFLAGS,IOFCURSE SET RECURSION REQUEST - B WRITPREP SET ADDRESS/LENGTH TO WRITE - SPACE 1 -WRITEBAD ABEND 002,DUMP INVALID REQUEST - SPACE 1 -WRITEFIX ICM R6,15,BUFFCURR Get next available record - BNZ WRITEFAP Not first - L R6,BUFFADDR Get buffer start -WRITEFAP L R7,LRECL Record length - ICM R5,8,=C' ' Request blank padding - MVCL R6,R4 Copy record to buffer - ST R6,BUFFCURR Update new record address - OI IOPFLAGS,IOFLDATA SHOW DATA IN BUFFER - C R6,BUFFEND Room for more ? - BL WRITEEX YES; RETURN -WRITPREP L R4,BUFFADDR Start write address - LR R5,R6 Current end of block - SR R5,R4 Current length -*NEXT* B WRITBLK WRITE THE BLOCK - SPACE 1 -WRITBLK AR R5,R4 Set start and end of write - STM R4,R5,BUFFADDR Pass to physical writer - OI IOPFLAGS,IOFLDATA SHOW DATA IN BUFFER - FIXWRITE , Write physical block - B WRITEEX AND RETURN - SPACE 1 -TPUTWRIT CLI RECFMIX,4 RECFM=V ? - BE TPUTWRIV YES - SH R4,=H'4' BACK UP TO RDW - LA R5,4(,R5) LENGTH WITH RDW -TPUTWRIV STH R5,0(,R4) FILL RDW - STCM R5,12,2(R4) ZERO REST - L R6,ZIOECT RESTORE ECT ADDRESS - L R7,ZIOUPT RESTORE UPT ADDRESS - GO24 - PUTLINE PARM=ZPUTLINE,ECT=(R6),UPT=(R7),ECB=ZIOECB, * - OUTPUT=((R4),DATA),TERMPUT=EDIT,MF=(E,ZIOPL) - GO31 - SPACE 1 -WRITEEX TM IOPFLAGS,IOFCURSE RECURSION REQUESTED? - BNZ WRITMORE - FUNEXIT RC=0 -* - LTORG , - SPACE 2 - COPY CLIBSUPA -* - SPACE 2 - PRINT NOGEN - IHAPSA , MAP LOW STORAGE - CVT DSECT=YES - IKJTCB , MAP TASK CONTROL BLOCK - IKJECT , MAP ENV. CONTROL BLOCK - IKJPTPB , PUTLINE PARAMETER BLOCK - IKJCPPL , - IKJPSCB , - IEZJSCB , - IEZIOB , - IEFZB4D0 , MAP SVC 99 PARAMETER LIST - IEFZB4D2 , MAP SVC 99 PARAMETERS - IEFUCBOB , -MYTIOT DSECT , - IEFTIOT1 , - IHAPDS PDSBLDL=YES - SPACE 1 - IFGACB , GP14233 - SPACE 1 - IFGRPL , GP14233 - IEFJESCT , - IKJUPT , - END diff --git a/src/crent370/asm/@@awrite.o b/src/crent370/asm/@@awrite.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/asm/@@crt0.asm b/src/crent370/asm/@@crt0.asm deleted file mode 100644 index a38d46a..0000000 --- a/src/crent370/asm/@@crt0.asm +++ /dev/null @@ -1,268 +0,0 @@ -@@CRT0 TITLE '@ @ C R T 0 *** MVS startup routine for C main pgm' -*********************************************************************** -* Original code and concepts provided by: PAUL EDWARDS. * -* Extensive modifications provided by: Mike Rayborn * -* * -* This startup code requires elements from the CLIB datasets. * -* * -* RELEASED TO THE PUBLIC DOMAIN * -*********************************************************************** - COPY PDPTOP - PRINT OFF -* -SUBPOOL EQU 0 - USING PSA,R0 - PRINT ON - COPY CLIBCRT - COPY CLIBPPA CLIB Program Properties Area - CSECT - ENTRY @@CRT0 -@@CRT0 DS 0H - SAVE (14,12),,@@CRT0 - LA R12,0(,R15) - USING @@CRT0,R12 - LR R11,R1 -* - WXTRN @@STKLEN - ICM R1,15,=V(@@STKLEN) Get stack length address - BZ USEDFLT No, use default - L R8,0(R1) Yes, load stack size value - C R8,=F'4096' At least 4K? - BNL PLUSPPA Yes, continue -USEDFLT DS 0H - L R8,=A(STACKLEN) Default stack length -PLUSPPA DS 0H - AL R8,=A(L'CLIBPPA+7) Add in our CLIBPPA length - N R8,=X'00FFFFF8' Round to nearest double word - LA R0,SUBPOOL Subpool number - SLL R0,24 Shift into high byte - ALR R0,R8 Plus size of storage we want - GETMAIN R,LV=(0) - XC 0(L'CLIBPPA,R1),0(R1) Clear PPA - ST R13,4(,R1) - ST R1,8(,R13) - LR R6,R1 -> PPA - USING CLIBPPA,R6 Program Properties Area - MVC PPAEYE,=A(PPAEYE$) - ST R8,PPASTKLN Save length of stack area - LA R0,SUBPOOL Subpool number - STC R0,PPASUBPL Save subpool number -* - LA R1,L'CLIBPPA(,R6) -> New Save Area - ST R6,4(,R1) - ST R1,8(,R6) - LR R13,R1 - USING STACK,R13 Our Save Area -* - L R2,PSATOLD - USING TCB,R2 - SR R15,R15 - ICM R15,B'0111',TCBFSAB => TCB first save area - L R0,8(,15) get "next" value from fsa - ST R0,PPASAVE save old "next" value in PPA - ST R6,8(,R15) save PPA as fsa "next" value -* -CRTSETUP DS 0H - LA R0,0 - ST R0,DUMMYPTR Unused in C, used by PL/1 - LA R0,MAINSTK Next available stack location - ST R0,THEIRSTK => Next available stack (NAB) -* -* Create our CLIBCRT - L R15,=V(@@CRTSET) - BALR R14,R15 Create our CLIBCRT area - L R15,=V(@@GRTSET) - BALR R14,R15 Anchor a CLIBGRT area as CRTGRT -* -* Save R13 in CRTSAVE - L R15,=V(@@CRTGET) - BALR R14,R15 Get our CLIBCRT area - ST R13,CRTSAVE-CLIBCRT(,R15) Save our save area address -* - L R7,TCBRBP - USING RBBASIC,R7 - SLR R8,R8 - ICM R8,B'0111',RBCDE1 - DROP R7 (RBBASIC) -* - USING CDENTRY,R8 - MVC PGMNAME,CDNAME - MVI PGMNAMEN,0 - DROP R8 (CDENTRY) -* - L R2,TCBJSCB - USING IEZJSCB,R2 - LH R2,JSCBTJID - ST R2,TYPE TSO terminal job identifier - DROP R2 (IEZJSCB) -* -PPASETUP DS 0H - EXTRACT WORKAREA,FIELDS=(TIOT,TSO,PSB),MF=(E,EXTRLIST) - LM R1,R3,WORKAREA R1 R2 R3 - ST R1,PPATIOT SAVE POINTER TO TIOT - TM 0(R2),X'80' Is this TSO forground? - BNO PPASET10 No, check TSO background - OI PPAFLAG,PPATSOFG Yes, set TSO flag -* -PPASET10 DS 0H - LTR R3,R3 Do we have PSCB? - BZ PPASET20 No, continue - ST R3,PPAPSCB Yes, save PSCB - OI PPAFLAG,PPATSOBG Yes, set TSO background flag -* -PPASET20 DS 0H -* - ST R11,PGMR1 R11 == R1 on entry to @@CRT0 - L R2,0(,R11) A(arguments to program) - LA R2,0(,R2) ... clean address value - ST R2,ARGPTR A(execution parameters) - LA R2,PGMNAME - ST R2,PGMNPTR A(program name) -* - L R1,=A(CTHREAD) A(thread driver routine) - LA R0,=CL8'CTHREAD' - IDENTIFY EPLOC=(0),ENTRY=(1) -* - LA R1,PARMLIST A(parms,program,type) - L R15,=V(@@START) - BALR R14,R15 Should never return -* -* The call to @@START never returns because it will call @@EXIT -* after it calls main(). -* But just in case @@START returns here, we'll call @@EXIT which -* eventually calls @@EXITA below. - LA R1,=F'-1' - L R15,=V(@@EXIT) - BR R15 Just in case @@START returns - LTORG - TITLE 'CTHREAD - subtask driver (IDENTIFY entry point)' - ENTRY CTHREAD -CTHREAD DS 0H - SAVE (14,12),,'CTHREAD &SYSDATE &SYSTIME' - LA R12,0(,R15) - USING CTHREAD,R12 -* - LA R11,0(,R1) - USING CTHDTASK,R11 -* -* Chain stack with callers save area - LA R1,CTHDSTK => stack for function - ST R13,4(,R1) ... chain stack areas - ST R1,8(,R13) ... chain stack areas - LR R13,R1 new stack - USING STK,R13 -* -* Save thread handle in stack - ST R11,STKCTHD A(CTHDTASK) -* -* Set next available byte in stack - LA R0,STKNAB next available byte in stack - ST R0,STKSVNAB next available byte in stack -* -* Allocate CLIBCRT area in PPA - L R15,=V(@@CRTSET) - BALR R14,R15 Create CLIBCRT in PPA -* -* Save R13 in CRTSAVE - L R15,=V(@@CRTGET) - BALR R14,R15 Get our CLIBCRT area - ST R13,CRTSAVE-CLIBCRT(,R15) Save our save area address -* -* Call thread function - L R15,CTHDFUNC get function address from plist - LA R1,CTHDARG1 => parameters for function - BALR R14,R15 call function - ST R15,CTHDRC save return code from function -* -* Call thread exit - LA R1,CTHDRC => return code - L R15,=A(@@CTEXIT) - BR R15 exit thread environment - LTORG - TITLE '@@CTEXIT - exit C thread environment' - ENTRY @@CTEXIT -@@CTEXIT DS 0H - LA R12,0(,R15) - USING @@CTEXIT,R12 - L R9,0(R1) Get @@EXITB(rc) value -* -* Get save area address from CLIBCRT area - L R15,=V(@@CRTGET) - BALR R14,R15 Get our CLIBCRT area - L R13,CRTSAVE-CLIBCRT(,R15) Restore thread stack - USING STK,R13 -* -* Get thread task control block - L R11,STKCTHD => thread task control block - USING CTHDTASK,R11 -* -* Get return code passed to us -* L R9,0(R1) Get @@EXITB(rc) value - ST R9,CTHDRC save as return code -* -* Do thread cleanup - WXTRN @@CTCLUP - ICM R15,15,=V(@@CTCLUP) Get thread level cleanup - BZ THRDDONE - BALR R14,R15 Call __ctclup() routine -* -* Deallocate CLIBCRT area -THRDDONE DS 0H - L R15,=V(@@CRTRES) - BALR R14,R15 release CLIBCRT area from PPA -* -* Get callers save area - L R13,STKSV+4 switch back to callers stack - LR R15,R9 restore return code -RETURN RETURN (14,12),RC=(15) -* Note: -* The task level area CTHDTASK persists until the main thread or -* thread manager code calls @@CTDEL() to delete the thread. -* - LTORG , - TITLE 'Dummy Sections' -* Stack for C thread -STK DSECT -STKSV DS 18F 00 (0) callers registers go here -STKSVLWS DS A 48 (72) PL/I Language Work Space N/A -STKSVNAB DS A 4C (76) next available byte -------+ -STKCTHD DS A 50 (80) A(CTHDTASK) | -STKAVAIL DS F 54 (84) unused/available | -STKNAB DS 0D 58 stack next available byte <-----+ -* -* C thread parameter list -CTHDTASK DSECT -CTHDEYE DS CL8 00 eye catcher for dumps -CTHDTCB DS F 08 subtask TCB address -CTHDOTCB DS F 0C subtask owner TCB address -CTHDECB DS F 10 posted by MVS when task ends -CTHDRC DS F 14 return code from function -CTHDSSIZ DS F 18 stack size in bytes -CTHDFUNC DS A 1C subtask function address -CTHDARG1 DS A 20 arg1 for subtask function -CTHDARG2 DS A 24 arg2 for subtask function -CTHDSTK DS F 28 start of stack for driver -* - IKJTCB LIST=YES - IEZJSCB - IHAPSA - IHARB - IHACDE -STACK DSECT -SAVEAREA DS 18F -DUMMYPTR DS F => PL/I Language Work Space N/A -THEIRSTK DS F => Next Available Byte (NAB) -WORKAREA DS 4F work area -EXTRLIST EXTRACT MF=L EXTRACT PARAMETER LIST -PARMLIST DS 0F Parameter list passed to @@START -ARGPTR DS F A(parms) -PGMNPTR DS F A(program name) -TYPE DS F F'TSO job id' -PGMR1 DS F R1 at entry to program -PGMNAME DS CL8 -PGMNAMEN DS C NUL BYTE FOR C - DS 0D -MAINSTK DS 65536F stack for @@START -> main() -MAINLEN EQU *-MAINSTK -STACKLEN EQU *-STACK - END diff --git a/src/crent370/asm/@@crt0.o b/src/crent370/asm/@@crt0.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/asm/@@crt1.asm b/src/crent370/asm/@@crt1.asm deleted file mode 100644 index 2467822..0000000 --- a/src/crent370/asm/@@crt1.asm +++ /dev/null @@ -1,271 +0,0 @@ -@@CRT0 TITLE '@ @ C R T 0 *** MVS startup routine for C main pgm' -*********************************************************************** -* Original code and concepts provided by: PAUL EDWARDS. * -* Extensive modifications provided by: Mike Rayborn * -* * -* Copy of @@CRT0 without the IDENTIFY for CTHREAD * -* * -* This startup code requires elements from the CLIB datasets. * -* * -* RELEASED TO THE PUBLIC DOMAIN * -*********************************************************************** - COPY PDPTOP - PRINT OFF -* -SUBPOOL EQU 0 - USING PSA,R0 - PRINT ON - COPY CLIBCRT - COPY CLIBPPA CLIB Program Properties Area - CSECT - ENTRY @@CRT0 -@@CRT0 DS 0H - SAVE (14,12),,@@CRT0 - LA R12,0(,R15) - USING @@CRT0,R12 - LR R11,R1 -* - WXTRN @@STKLEN - ICM R1,15,=V(@@STKLEN) Get stack length address - BZ USEDFLT No, use default - L R8,0(R1) Yes, load stack size value - C R8,=F'4096' At least 4K? - BNL PLUSPPA Yes, continue -USEDFLT DS 0H - L R8,=A(STACKLEN) Default stack length -PLUSPPA DS 0H - AL R8,=A(L'CLIBPPA+7) Add in our CLIBPPA length - N R8,=X'00FFFFF8' Round to nearest double word - LA R0,SUBPOOL Subpool number - SLL R0,24 Shift into high byte - ALR R0,R8 Plus size of storage we want - GETMAIN R,LV=(0) -* - XC 0(L'CLIBPPA,R1),0(R1) Clear PPA - ST R13,4(,R1) - ST R1,8(,R13) - LR R6,R1 -> PPA - USING CLIBPPA,R6 Program Properties Area - MVC PPAEYE,=A(PPAEYE$) - ST R8,PPASTKLN Save length of stack area - LA R0,SUBPOOL Get subpool number - STC R0,PPASUBPL Save subpool number -* - LA R1,L'CLIBPPA(,R6) -> New Save Area - ST R6,4(,R1) - ST R1,8(,R6) - LR R13,R1 - USING STACK,R13 Our Save Area -* - L R2,PSATOLD - USING TCB,R2 - SR R15,R15 - ICM R15,B'0111',TCBFSAB => TCB first save area - L R0,8(,15) get "next" value from fsa - ST R0,PPASAVE save old "next" value in PPA - ST R6,8(,R15) save PPA as fsa "next" value -* -CRTSETUP DS 0H - LA R0,0 - ST R0,DUMMYPTR Unused in C, used by PL/1 - LA R0,MAINSTK Next available stack location - ST R0,THEIRSTK => Next available stack (NAB) -* -* Create our CLIBCRT - L R15,=V(@@CRTSET) - BALR R14,R15 Create our CLIBCRT area - L R15,=V(@@GRTSET) - BALR R14,R15 Anchor a CLIBGRT area as CRTGRT -* -* Save R13 in CRTSAVE - L R15,=V(@@CRTGET) - BALR R14,R15 Get our CLIBCRT area - ST R13,CRTSAVE-CLIBCRT(,R15) Save our save area address -* - L R7,TCBRBP - USING RBBASIC,R7 - SLR R8,R8 - ICM R8,B'0111',RBCDE1 - DROP R7 (RBBASIC) -* - USING CDENTRY,R8 - MVC PGMNAME,CDNAME - MVI PGMNAMEN,0 - DROP R8 (CDENTRY) -* - L R2,TCBJSCB - USING IEZJSCB,R2 - LH R2,JSCBTJID - ST R2,TYPE TSO terminal job identifier - DROP R2 (IEZJSCB) -* -PPASETUP DS 0H - EXTRACT WORKAREA,FIELDS=(TIOT,TSO,PSB),MF=(E,EXTRLIST) - LM R1,R3,WORKAREA R1 R2 R3 - ST R1,PPATIOT SAVE POINTER TO TIOT - TM 0(R2),X'80' Is this TSO forground? - BNO PPASET10 No, check TSO background - OI PPAFLAG,PPATSOFG Yes, set TSO flag -* -PPASET10 DS 0H - LTR R3,R3 Do we have PSCB? - BZ PPASET20 No, continue - ST R3,PPAPSCB Yes, save PSCB - OI PPAFLAG,PPATSOBG Yes, set TSO background flag -* -PPASET20 DS 0H -* - ST R11,PGMR1 R11 == R1 on entry to @@CRT0 - L R2,0(,R11) A(arguments to program) - LA R2,0(,R2) ... clean address value - ST R2,ARGPTR A(execution parameters) - LA R2,PGMNAME - ST R2,PGMNPTR A(program name) -* -*** L R1,=A(CTHREAD) A(thread driver routine) -*** LA R0,=CL8'CTHREAD' -*** IDENTIFY EPLOC=(0),ENTRY=(1) -* - LA R1,PARMLIST A(parms,program,type) - L R15,=V(@@START) - BALR R14,R15 Should never return -* -* The call to @@START never returns because it will call @@EXIT -* after it calls main(). -* But just in case @@START returns here, we'll call @@EXIT which -* eventually calls @@EXITA below. - LA R1,=F'-1' - L R15,=V(@@EXIT) - BR R15 Just in case @@START returns - LTORG - TITLE 'CTHREAD - subtask driver (IDENTIFY entry point)' - ENTRY CTHREAD -CTHREAD DS 0H - SAVE (14,12),,'CTHREAD &SYSDATE &SYSTIME' - LA R12,0(,R15) - USING CTHREAD,R12 -* - LA R11,0(,R1) - USING CTHDTASK,R11 -* -* Chain stack with callers save area - LA R1,CTHDSTK => stack for function - ST R13,4(,R1) ... chain stack areas - ST R1,8(,R13) ... chain stack areas - LR R13,R1 new stack - USING STK,R13 -* -* Save thread handle in stack - ST R11,STKCTHD A(CTHDTASK) -* -* Set next available byte in stack - LA R0,STKNAB next available byte in stack - ST R0,STKSVNAB next available byte in stack -* -* Allocate CLIBCRT area in TCBUSER - L R15,=V(@@CRTSET) - BALR R14,R15 Create CLIBCRT as TCBUSER -* -* Save R13 in CRTSAVE - L R15,=V(@@CRTGET) - BALR R14,R15 Get our CLIBCRT area - ST R13,CRTSAVE-CLIBCRT(,R15) Save our save area address -* -* Call thread function - L R15,CTHDFUNC get function address from plist - LA R1,CTHDARG1 => parameters for function - BALR R14,R15 call function - ST R15,CTHDRC save return code from function -* -* Call thread exit - LA R1,CTHDRC => return code - L R15,=A(@@CTEXIT) - BR R15 exit thread environment - LTORG - TITLE '@@CTEXIT - exit C thread environment' - ENTRY @@CTEXIT -@@CTEXIT DS 0H - LA R12,0(,R15) - USING @@CTEXIT,R12 -* -* Get save area address from CLIBCRT area - L R15,=V(@@CRTGET) - BALR R14,R15 Get our CLIBCRT area - L R13,CRTSAVE-CLIBCRT(,R15) Restore thread stack - USING STK,R13 -* -* Get thread task control block - L R11,STKCTHD => thread task control block - USING CTHDTASK,R11 -* -* Get return code passed to us - L R9,0(R1) Get @@EXITB(rc) value - ST R9,CTHDRC save as return code -* -* Do thread cleanup - WXTRN @@CTCLUP - ICM R15,15,=V(@@CTCLUP) Get thread level cleanup - BZ THRDDONE - BALR R14,R15 Call __ctclup() routine -* -* Deallocate CLIBCRT area -THRDDONE DS 0H - L R15,=V(@@CRTRES) - BALR R14,R15 release CLIBCRT area from PPA -* -* Get callers save area - L R13,STKSV+4 switch back to callers stack - LR R15,R9 restore return code -RETURN RETURN (14,12),RC=(15) -* Note: -* The task level area CTHDTASK persists until the main thread or -* thread manager code calls @@CTDEL() to delete the thread. -* - LTORG , - TITLE 'Dummy Sections' -* Stack for C thread -STK DSECT -STKSV DS 18F 00 (0) callers registers go here -STKSVLWS DS A 48 (72) PL/I Language Work Space N/A -STKSVNAB DS A 4C (76) next available byte -------+ -STKCTHD DS A 50 (80) A(CTHDTASK) | -STKAVAIL DS F 54 (84) unused/available | -STKNAB DS 0D 58 stack next available byte <-----+ -* -* C thread parameter list -CTHDTASK DSECT -CTHDEYE DS CL8 00 eye catcher for dumps -CTHDTCB DS F 08 subtask TCB address -CTHDOTCB DS F 0C subtask owner TCB address -CTHDECB DS F 10 posted by MVS when task ends -CTHDRC DS F 14 return code from function -CTHDSSIZ DS F 18 stack size in bytes -CTHDFUNC DS A 1C subtask function address -CTHDARG1 DS A 20 arg1 for subtask function -CTHDARG2 DS A 24 arg2 for subtask function -CTHDSTK DS F 28 start of stack for driver -* - IKJTCB LIST=YES - IEZJSCB - IHAPSA - IHARB - IHACDE -STACK DSECT -SAVEAREA DS 18F -DUMMYPTR DS F => PL/I Language Work Space N/A -THEIRSTK DS F => Next Available Byte (NAB) -WORKAREA DS 4F work area -EXTRLIST EXTRACT MF=L EXTRACT PARAMETER LIST -PARMLIST DS 0F Parameter list passed to @@START -ARGPTR DS F A(parms) -PGMNPTR DS F A(program name) -TYPE DS F F'TSO job id' -PGMR1 DS F R1 at entry to program -PGMNAME DS CL8 -PGMNAMEN DS C NUL BYTE FOR C - DS 0D -MAINSTK DS 65536F stack for @@START -> main() -MAINLEN EQU *-MAINSTK -STACKLEN EQU *-STACK - END - diff --git a/src/crent370/asm/@@crt1.o b/src/crent370/asm/@@crt1.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/asm/@@crtm.asm b/src/crent370/asm/@@crtm.asm deleted file mode 100644 index c85c58f..0000000 --- a/src/crent370/asm/@@crtm.asm +++ /dev/null @@ -1,168 +0,0 @@ -@@CRT0 TITLE '@ @ C R T 0 *** Mini startup routine for C main pgm' -*********************************************************************** -* Provided by: Mike Rayborn * -* * -* This startup code create a minimal environment for C programs * -* * -* RELEASED TO THE PUBLIC DOMAIN * -*********************************************************************** - COPY PDPTOP - PRINT OFF -* -SUBPOOL EQU 0 - USING PSA,R0 - PRINT ON - COPY CLIBCRT - COPY CLIBPPA CLIB Program Properties Area - CSECT - ENTRY @@CRT0 -@@CRT0 DS 0H - SAVE (14,12),,@@CRT0 - LA R12,0(,R15) - USING @@CRT0,R12 - LR R10,R0 - LR R11,R1 -* - WXTRN @@STKLEN - ICM R8,15,=V(@@STKLEN) Get stack length address - BZ USEDFLT No, use default - L R8,0(R8) Yes, load stack size value - C R8,=F'4096' At least 4K? - BNL ROUNDUP Yes, continue -USEDFLT DS 0H - L R8,=A(STACKLEN) Default stack length -ROUNDUP DS 0H - LA R8,7(,R8) Plus 7 for rounding - N R8,=X'00FFFFF8' Round to nearest double word - LA R0,SUBPOOL Subpool number - SLL R0,24 Shift into high byte - ALR R0,R8 Plus size of storage we want - GETMAIN R,LV=(0) -* - ST R13,4(,R1) - ST R1,8(,R13) - LR R13,R1 - USING STACK,R13 Our Save Area -* -CRTSETUP DS 0H - LA R0,0 - ST R0,DUMMYPTR Unused in C, used by PL/1 - LA R0,MAINSTK Next available stack location - ST R0,THEIRSTK => Next available stack (NAB) -* -* Save R13 in CRTSAVE - L R15,=V(@@CRTGET) - BALR R14,R15 Get our CLIBCRT area - L R0,CRTSAVE-CLIBCRT(,R15) Get previous save area - ST R0,OLDSAVE Save for later - ST R13,CRTSAVE-CLIBCRT(,R15) Save our save area address -* - L R2,PSATOLD - USING TCB,R2 -* - L R7,TCBRBP - USING RBBASIC,R7 - SLR R8,R8 - ICM R8,B'0111',RBCDE1 - DROP R7 (RBBASIC) -* - USING CDENTRY,R8 - MVC PGMNAME,CDNAME - MVI PGMNAMEN,0 - DROP R8 (CDENTRY) -* - L R2,TCBJSCB - USING IEZJSCB,R2 - LH R2,JSCBTJID - ST R2,TYPE TSO terminal job identifier - DROP R2 (IEZJSCB) -* - ST R10,PGMR0 R10 == R0 on entry to @@CRT0 - ST R11,PGMR1 R11 == R1 on entry to @@CRT0 - LA R2,PGMNAME - ST R2,PGMNPTR A(program name) -* - LA R1,PARMLIST A(parms,program,type) - L R15,=V(@@START) - BALR R14,R15 Should never return -* -* The call to @@START never returns because it will call @@EXIT -* after it calls main(). -* But just in case @@START returns here, we'll call @@EXIT which -* eventually calls @@EXITA below. - LA R1,=F'-1' - L R15,=V(@@EXIT) - BR R15 Just in case @@START returns -*** LTORG - TITLE '@@EXITA - exit C runtime environment' - ENTRY @@EXITA -@@EXITA DS 0H -* SWITCH BACK TO OUR OLD SAVE AREA - LA R12,0(,R15) - USING @@EXITA,R12 - L R9,0(R1) Get exit(rc) value -* -* Get save area address from CLIBCRT area - L R15,=V(@@CRTGET) - BALR R14,R15 Get our CLIBCRT area - L R13,CRTSAVE-CLIBCRT(,R15) Restore original stack - L R0,OLDSAVE Get old CRTSAVE value - ST R0,CRTSAVE-CLIBCRT(,R15) restore CRTSAVE -* -* Release stack storage -* - LR R1,R13 R1=A(storage to be freed) - L R13,4(,R1) Original save area -*** WXTRN @@STKLEN - ICM R8,15,=V(@@STKLEN) Get stack length address - BZ EXITDFLT No, use default - L R8,0(R8) Yes, load stack size value - C R8,=F'4096' At least 4K? - BNL EXITSIZE Yes, continue -EXITDFLT DS 0H - L R8,=A(STACKLEN) Default stack length -EXITSIZE DS 0H - LA R8,7(,R8) Plus 7 for rounding - N R8,=X'00FFFFF8' Round to nearest double word - LA R0,SUBPOOL Subpool number - SLL R0,24 Shift into high byte - ALR R0,R8 Plus size of storage we want - FREEMAIN R,LV=(0),A=(R1) -* -* Return to system - LR R15,R9 Get exit(rc) value - RETURN (14,12),RC=(15) - LTORG - TITLE 'Dummy Sections' -* Stack for C thread -STK DSECT -STKSV DS 18F 00 (0) callers registers go here -STKSVLWS DS A 48 (72) PL/I Language Work Space N/A -STKSVNAB DS A 4C (76) next available byte -------+ -STKCTHD DS A 50 (80) A(CTHDTASK) | -STKAVAIL DS F 54 (84) unused/available | -STKNAB DS 0D 58 stack next available byte <-----+ -* - IKJTCB LIST=YES - IEZJSCB - IHAPSA - IHARB - IHACDE -STACK DSECT -SAVEAREA DS 18F -DUMMYPTR DS F => PL/I Language Work Space N/A -THEIRSTK DS F => Next Available Byte (NAB) -PARMLIST DS 0F Parameter list passed to @@START -PGMR0 DS F R0 at entry to program -PGMNPTR DS F A(program name) -TYPE DS F F'TSO job id' -PGMR1 DS F R1 at entry to program -PGMNAME DS CL8 -PGMNAMEN DS C NUL BYTE FOR C -OLDSAVE DS F Old CRTSAVE value - DS 0D -MAINSTK DS 16384F stack for @@START -> main() -MAINLEN EQU *-MAINSTK -STACKLEN EQU *-STACK - END - diff --git a/src/crent370/asm/@@crtm.o b/src/crent370/asm/@@crtm.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/asm/@@crtsvc.asm b/src/crent370/asm/@@crtsvc.asm deleted file mode 100644 index 71937fe..0000000 --- a/src/crent370/asm/@@crtsvc.asm +++ /dev/null @@ -1,121 +0,0 @@ -@@CRTSVC TITLE '@ @ C R T S V C *** MVS startup routine for C SVC' - COPY PDPTOP -SUBPOOL EQU 250 Used for C style stack allocation - USING PSA,R0 - PRINT ON - CSECT - ENTRY @@CRTSVC - USING @@CRTSVC,R6 -@@CRTSVC DS 0H Note: we do not save registers - B AROUND Skip over eye catcher - DC AL1(EYELEN) -EYE DC C'@@CRTSVC &SYSDATE &SYSTIME' -EYELEN EQU *-EYE -AROUND DS 0H - LA R12,0(,R6) Establish base register - DROP R6 (@@CRTSVC) - USING @@CRTSVC,R12 - LR R8,R14 Save R14 - LR R9,R15 Save R15 - LR R10,R0 Save R0 - LR R11,R1 Save R1 -* -* Allocate a save area + stack space - GETMAIN RC,LV=STACKLEN,SP=SUBPOOL - LTR R2,R15 Save return code and test - BZ CHAINSTG Success -* -* No storage available -* fail the request (GETMAIN RC in R0, 0 in R1, -1 in R15) - WTO '*** Out Of Memory ***' - LR R0,R2 Save return code from GETMAIN - SLR R1,R1 Clear R1 - L R15,=F'-1' Indicate failure - LR R14,R8 Get return address - BR R14 Return to caller -* -* Chain the save areas -CHAINSTG DS 0H - ST R13,4(,R1) Chain prev save area -*** ST R1,8(,R13) Chain next save area - LR R13,R1 Use next save area - USING STACK,R13 Our Save Area -* -* Create C style stack frame - LA R0,0 - ST R0,DUMMYPTR Unused in C, used by PL/1 - LA R0,MAINSTK Next available stack location - ST R0,STACKNAB => Next available stack (NAB) -* -* Build parameter list for @@SVC - LA R1,SVCREGS => SVC registers - ST R1,PARMREGS Save in parameter list - STM R9,R11,SVCREGS Save R15, R0, R1 - STM R3,R7,SVCCVT Save CVT, TCB, SVRB, SVC, ASCB - SLR R0,R0 Clear for insert - ICM R0,B'0111',RBLINKB-RBBASIC(R5) - ST R0,SVCRBLNK Save RBLINK address - USING TCB,R4 - MVC SVCJSCB,TCBJSCB Save JSCB address -* -* Call @@SVC with parameter list - LA R1,PARMLIST => @@SVC paremeter list - L R15,=V(@@SVC) - BALR R14,R15 -* -* We should be in supervisor state and key 0 - MODESET EXTKEY=ZERO -* -* Get return regs (R15,R0,R1) from @@SVC - LM R9,R11,SVCREGS save R15,R0,R1 -* -* Release our savearea and stack storage - LR R1,R13 R1=A(storage to be freed) - L R13,4(,R1) Original save area - FREEMAIN RU,LV=STACKLEN,A=(R1),SP=SUBPOOL - DROP R13 (STACK) -* -* Return to system - LR R14,R8 Callers R14 - LR R15,R9 Return R15 - LR R0,R10 Return R0 - LR R1,R11 Return R1 - BR R14 Return to caller - LTORG , - TITLE 'Our Save Area, Variables and Stack Frame' -STACK DSECT -SAVEAREA DS 18F Standard MVS style save area -DUMMYPTR DS F => PL/I Language Work Space N/A -STACKNAB DS F => Next Available Byte (NAB) -* -* Parameter list for @@SVC -PARMLIST DS 0D Parameter list passed to @@SVC -PARMREGS DS A => SVC registers -* -* Values passed to @@SVC via pointer reference -SVCREGS DS 0F -SVCR15 DS F SVC R15 (input/output) -SVCR0 DS F SVC R0 (input/output) -SVCR1 DS F SVC R1 (input/output) -SVCCVT DS A CVT address (input) -SVCTCB DS A TCB address (input) -SVCSVRB DS A SVRB address (input) -SVCEPA DS A SVC entry address (input) -SVCASCB DS A ASCB address (input) -SVCRBLNK DS A RBLINK address (input) -SVCJSCB DS A JSCB address (input) - DS 2F unused -* -* Stack area (next available byte 'STACKNAB' points here) - DS 0D -MAINSTK DS 8192F stack for @@SVC -> svcmain() -MAINLEN EQU *-MAINSTK -STACKLEN EQU *-STACK - TITLE 'Dummy Sections' -* - IKJTCB LIST=YES - IEZJSCB - IHAPSA - IHARB - IHACDE - END diff --git a/src/crent370/asm/@@crtsvc.o b/src/crent370/asm/@@crtsvc.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/asm/@@dynal.asm b/src/crent370/asm/@@dynal.asm deleted file mode 100644 index a727ff7..0000000 --- a/src/crent370/asm/@@dynal.asm +++ /dev/null @@ -1,206 +0,0 @@ - MACRO , PATTERN FOR @@DYNAL'S DYNAMIC WORK AREA -&NM DYNPAT &P=MISSING-PFX -.* NOTE THAT EXTRA FIELDS ARE DEFINED FOR FUTURE EXPANSION -.* -&NM DS 0D ALLOCATION FIELDS -&P.ARBP DC 0F'0',A(X'80000000'+&P.ARB) RB POINTER -&P.ARB DC 0F'0',AL1(20,S99VRBAL,0,0) - DC A(0,&P.ATXTP,0,0) SVC 99 REQUEST BLOCK -&P.ATXTP DC 10A(0) -&P.AXVOL DC Y(DALVLSER,1,6) -&P.AVOL DC CL6' ' -&P.AXDSN DC Y(DALDSNAM,1,44) -&P.ADSN DC CL44' ' -&P.AXMEM DC Y(DALMEMBR,1,8) -&P.AMEM DC CL8' ' -&P.AXDSP DC Y(DALSTATS,1,1) -&P.ADSP DC X'08' DISP=SHR -&P.AXFRE DC Y(DALCLOSE,0) FREE=CLOSE -&P.AXDDN DC Y(DALDDNAM,1,8) DALDDNAM OR DALRTDDN -&P.ADDN DC CL8' ' SUPPLIED OR RETURNED DDNAME -&P.ALEN EQU *-&P.ARBP LENGTH OF REQUEST BLOCK - SPACE 1 -&P.URBP DC 0F'0',A(X'80000000'+&P.URB) RB POINTER -&P.URB DC 0F'0',AL1(20,S99VRBUN,0,0) - DC A(0,&P.UTXTP,0,0) SVC 99 REQUEST BLOCK -&P.UTXTP DC A(X'80000000'+&P.UXDDN) -&P.UXDDN DC Y(DUNDDNAM,1,8) -&P.UDDN DC CL8' ' RETURNED DDNAME -&P.ULEN EQU *-&P.URBP LENGTH OF REQUEST BLOCK -&P.DYNLN EQU *-&P.ARBP LENGTH OF ALL DATA - MEND , - COPY MVSMACS - COPY PDPTOP - CSECT , - PRINT GEN - SPACE 1 -*********************************************************************** -* * -* CALL @@DYNAL,(ddn-len,ddn-adr,dsn-len,dsn-adr),VL * -* * -* "-len" fields are self-defining values in the calling list, * -* or else pointers to 32-bit signed integer values * -* * -* "ddn-adr" is the address of the DD name to be used. When the * -* contents is hex zero or blank, and len=8, gets assigned. * -* * -* "dsn-adr" is the address of a 1 to 44 byte data set name of an * -* existing file (sequential or partitioned). * -* * -* Calling @@DYNAL with a DDNAME and a zero length for the DSN * -* results in unallocation of that DD (and a PARM error). * -* * -*---------------------------------------------------------------------* -* * -* Author: Gerhard Postpischil * -* * -* This program is placed in the public domain. * -* * -*---------------------------------------------------------------------* -* * -* Assembly: Any MVS or later assembler may be used. * -* Requires SYS1.MACLIB * -* Intended to work in any 24 and 31-bit environment. * -* * -* Linker/Binder: RENT,REFR,REUS * -* * -*---------------------------------------------------------------------* -* Return codes: R15:04sssnnn it's a program error code: * -* 04804 - GETMAIN failed; 1400000n PARM list error * -* * -* Otherwise R15:0-1 the primary allocation return code, and * -* R15:2-3 the reason codes. * -*********************************************************************** -* Maintenance: new on 2008-06-07 * -* * -*********************************************************************** -@@DYNAL FUNHEAD , DYNAMIC ALLOCATION - LA R11,16(,R13) REMEMBER RETURN CODE ADDRESS - MVC 0(4,R11),=X'04804000' PRESET - LR R9,R1 SAVE PARAMETER LIST ADDRESS - LA R0,DYNALDLN GET LENGTH OF SAVE AND WORK AREA - GETMAIN RC,LV=(0) GET STORAGE - LTR R15,R15 SUCCESSFUL ? - BZ DYNALHAV YES - STC R15,3(,R11) SET RETURN VALUES - B DYNALRET RELOAD AND RETURN -* -* CLEAR GOTTEN STORAGE AND ESTABLISH SAVE AREA -* -DYNALHAV ST R1,8(,R13) LINK OURS TO CALLER'S SAVE AREA - ST R13,4(,R1) LINK CALLER'S TO OUR AREA - LR R13,R1 - USING DYNALWRK,R13 - MVC 0(4,R11),=X'14000001' PRESET FOR PARM LIST ERROR - MVC DYNLIST(ALLDYNLN),PATLIST INITIALIZE EVERYTHING - LDINT R4,0(,R9) DD NAME LENGTH - L R5,4(,R9) -> DD NAME - LDINT R6,8(,R9) DSN LENGTH - L R7,12(,R9) -> DATA SET NAME -* NOTE THAT THE CALLER IS EITHER COMPILER CODE, OR A COMPILER -* LIBRARY ROUTINE, SO WE DO MINIMAL VALIDITY CHECKING -* -* PREPARE DYNAMIC ALLOCATION REQUEST LISTS -* - LA R0,ALLARB - STCM R0,7,ALLARBP+1 REQUEST POINTER - LA R0,ALLATXTP - ST R0,ALLARB+8 TEXT UNIT POINTER - LA R0,ALLAXDSN - LA R1,ALLAXDSP - LA R2,ALLAXDDN - O R2,=X'80000000' - STM R0,R2,ALLATXTP TEXT UNIT ADDRESSES -* COMPLETE REQUEST WITH CALLER'S DATA -* - LTR R4,R4 CHECK DDN LENGTH - BNP DYNALEXT OOPS - CH R4,=AL2(L'ALLADDN) REASONABLE SIZE ? - BH DYNALEXT NO - BCTR R4,0 - EX R4,DYNAXDDN MOVE DD NAME - OC ALLADDN,=CL11' ' CONVERT HEX ZEROES TO BLANKS - CLC ALLADDN,=CL11' ' NAME SUPPLIED ? - BNE DYNALDDN YES - MVI ALLAXDDN+1,DALRTDDN REQUEST RETURN OF DD NAME - CH R4,=AL2(L'ALLADDN-1) CORRECT SIZE FOR RETURN ? - BE DYNALNDD AND LEAVE R5 NON-ZERO - B DYNALEXT NO -DYNALDDN SR R5,R5 SIGNAL NO FEEDBACK -* WHEN USER SUPPLIES A DD NAME, DO AN UNCONDITIONAL UNALLOCATE ON IT - LA R0,ALLURB - STCM R0,7,ALLURBP+1 REQUEST POINTER - LA R0,ALLUTXTP - ST R0,ALLURB+8 TEXT UNIT POINTER - LA R2,ALLUXDDN - O R2,=X'80000000' - ST R2,ALLUTXTP TEXT UNIT ADDRESS - MVC ALLUDDN,ALLADDN SET DD NAME - LA R1,ALLURBP POINT TO REQUEST BLOCK POINTER - DYNALLOC , REQUEST ALLOCATION -DYNALNDD LTR R6,R6 CHECK DSN LENGTH - BNP DYNALEXT OOPS - CH R6,=AL2(L'ALLADSN) REASONABLE SIZE ? - BH DYNALEXT NO - STH R6,ALLADSN-2 SET LENGTH INTO TEXT UNIT - BCTR R6,0 - EX R6,DYNAXDSN MOVE DS NAME -* ALLOCATE - LA R1,ALLARBP POINT TO REQUEST BLOCK POINTER - DYNALLOC , REQUEST ALLOCATION - STH R15,0(,R11) PRIMARY RETURN CODE - STH R0,2(,R11) REASON CODES - LTR R5,R5 NEED TO RETURN DDN ? - BZ DYNALEXT NO - MVC 0(8,R5),ALLADDN RETURN NEW DDN, IF ANY - B DYNALEXT AND RETURN -DYNAXDDN MVC ALLADDN(0),0(R5) COPY DD NAME -DYNAXDSN MVC ALLADSN(0),0(R7) COPY DATA SET NAME -* PROGRAM EXIT, WITH APPROPRIATE RETURN CODES -* -DYNALEXT LR R1,R13 COPY STORAGE ADDRESS - L R9,4(,R13) GET CALLER'S SAVE AREA - LA R0,DYNALDLN GET ORIGINAL LENGTH - FREEMAIN R,A=(1),LV=(0) AND RELEASE THE STORAGE - LR R13,R9 RESTORE CALLER'S SAVE AREA -DYNALRET FUNEXIT , RESTORE REGS; SET RETURN CODES - LTORG , - PUSH PRINT - PRINT NOGEN DON'T NEED TWO COPIES -PATLIST DYNPAT P=PAT EXPAND ALLOCATION DATA - POP PRINT -* DYNAMICALLY ACQUIRED STORAGE -* -DYNALWRK DSECT , MAP STORAGE - DS 18A OUR OS SAVE AREA -DYNLIST DYNPAT P=ALL EXPAND ALLOCATION DATA -DYNALDLN EQU *-DYNALWRK LENGTH OF DYNAMIC STORAGE - CSECT , RESTORE - LTORG , - SPACE 2 - COPY CLIBSUPA -* - SPACE 2 - PRINT NOGEN - IHAPSA , MAP LOW STORAGE - CVT DSECT=YES - IKJTCB , MAP TASK CONTROL BLOCK - IKJECT , MAP ENV. CONTROL BLOCK - IKJPTPB , PUTLINE PARAMETER BLOCK - IKJCPPL , - IKJPSCB , - IEZJSCB , - IEZIOB , - IEFZB4D0 , MAP SVC 99 PARAMETER LIST - IEFZB4D2 , MAP SVC 99 PARAMETERS - IEFUCBOB , -MYTIOT DSECT , - IEFTIOT1 , - IHAPDS PDSBLDL=YES - SPACE 1 - IFGACB , GP14233 - SPACE 1 - IFGRPL , GP14233 - IEFJESCT , - IKJUPT , - END diff --git a/src/crent370/asm/@@dynal.o b/src/crent370/asm/@@dynal.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/asm/@@exita.asm b/src/crent370/asm/@@exita.asm deleted file mode 100644 index 46a34f8..0000000 --- a/src/crent370/asm/@@exita.asm +++ /dev/null @@ -1,58 +0,0 @@ -@@EXITA TITLE '@ @ E X I T A *** Terminate C environment' - COPY PDPTOP - PRINT OFF - USING PSA,R0 - PRINT ON - COPY CLIBCRT - COPY CLIBPPA CLIB Program Properties Area - CSECT - ENTRY @@EXITA -@@EXITA DS 0H -* SWITCH BACK TO OUR OLD SAVE AREA - LA R12,0(,R15) - USING @@EXITA,R12 - L R9,0(R1) Get exit(rc) value -* -* Get save area address from CLIBCRT area - L R15,=V(@@CRTGET) - BALR R14,R15 Get our CLIBCRT area - L R13,CRTSAVE-CLIBCRT(,R15) Restore original stack -* -* Cleanup C process level area - L R15,=V(@@GRTRES) - BALR R14,R15 Reset CLIBGRT area -* -* Cleanup C main task (thread) area - L R15,=V(@@CRTRES) - BALR R14,R15 Release CLIBCRT, reset TCBUSER -* -* Release stack storage -* - L R2,PSATOLD - USING TCB,R2 - SR R15,R15 - ICM R15,B'0111',TCBFSAB => TCB first save area - L R6,8(,R15) get PPA from fsa next value - USING CLIBPPA,R6 -* - L R0,PPASAVE get original "next" value - ST R0,8(,R15) save original "next" in fsa - LR R1,R6 R1=A(storage to be freed) - L R13,4(,R1) Original save area - ICM R0,1,PPASUBPL Get subpool number - SLL R0,24 Put subpool in high byte - AL R0,PPASTKLN Plus size of storage - FREEMAIN R,LV=(0),A=(R1) - DROP R6 (CLIBPPA) -* -* Return to system - LR R15,R9 Get exit(rc) value - RETURN (14,12),RC=(15) - LTORG - TITLE 'Dummy Sections' - IKJTCB LIST=YES - IEZJSCB - IHAPSA - IHARB - IHACDE - END diff --git a/src/crent370/asm/@@exita.o b/src/crent370/asm/@@exita.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/asm/@@freem.asm b/src/crent370/asm/@@freem.asm deleted file mode 100644 index 5de403c..0000000 --- a/src/crent370/asm/@@freem.asm +++ /dev/null @@ -1,25 +0,0 @@ - COPY MVSMACS - COPY PDPTOP - CSECT , - PRINT GEN - SPACE 1 -*-----------------------ASSEMBLY OPTIONS------------------------------* -SUBPOOL EQU 0 * -*---------------------------------------------------------------------* - SPACE 1 -*********************************************************************** -* * -* FREEM - FREE MEMORY * -* * -*********************************************************************** -@@FREEM FUNHEAD , -* - L R1,0(,R1) - S R1,=F'8' - L R0,0(,R1) -* - FREEMAIN RU,LV=(0),A=(1),SP=SUBPOOL -* - FUNEXIT RC=(15) - LTORG , - END diff --git a/src/crent370/asm/@@freem.o b/src/crent370/asm/@@freem.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/asm/@@getclk.asm b/src/crent370/asm/@@getclk.asm deleted file mode 100644 index ce472e7..0000000 --- a/src/crent370/asm/@@getclk.asm +++ /dev/null @@ -1,35 +0,0 @@ - COPY MVSMACS - COPY PDPTOP - CSECT , - PRINT GEN - SPACE 1 -*-----------------------ASSEMBLY OPTIONS------------------------------* -SUBPOOL EQU 0 * -*---------------------------------------------------------------------* - SPACE 1 -*********************************************************************** -* * -* GETCLCK - GET THE VALUE OF THE MVS CLOCK TIMER AND MOVE IT TO AN * -* 8-BYTE FIELD. THIS 8-BYTE FIELD DOES NOT NEED TO BE ALIGNED IN * -* ANY PARTICULAR WAY. * -* * -* E.G. CALL 'GETCLCK' USING WS-CLOCK1 * -* * -* THIS FUNCTION ALSO RETURNS THE NUMBER OF SECONDS SINCE 1970-01-01 * -* BY USING SOME EMPIRICALLY-DERIVED MAGIC NUMBERS * -* * -*********************************************************************** -@@GETCLK FUNHEAD , GET TOD CLOCK VALUE -* - L R2,0(,R1) - STCK 0(R2) - L R4,0(,R2) - L R5,4(,R2) - SRDL R4,12 - SL R4,=X'0007D910' - D R4,=F'1000000' - SL R5,=F'1220' -* -RETURNGC FUNEXIT RC=(R5) - LTORG , - END diff --git a/src/crent370/asm/@@getclk.o b/src/crent370/asm/@@getclk.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/asm/@@getm.asm b/src/crent370/asm/@@getm.asm deleted file mode 100644 index 7997cd4..0000000 --- a/src/crent370/asm/@@getm.asm +++ /dev/null @@ -1,43 +0,0 @@ - COPY MVSMACS - COPY PDPTOP - CSECT , - PRINT GEN - SPACE 1 -*-----------------------ASSEMBLY OPTIONS------------------------------* -SUBPOOL EQU 0 * -*---------------------------------------------------------------------* - SPACE 1 -*********************************************************************** -* * -* GETM - GET MEMORY * -* * -*********************************************************************** -@@GETM FUNHEAD , -* - LDINT R3,0(,R1) LOAD REQUESTED STORAGE SIZE - SLR R1,R1 PRESET IN CASE OF ERROR - LTR R4,R3 CHECK REQUEST - BNP GETMEX QUIT IF INVALID -* -* To reduce fragmentation, round up size to 64 byte multiple -* - A R3,=A(8+(64-1)) OVERHEAD PLUS ROUNDING - N R3,=X'FFFFFFC0' MULTIPLE OF 64 -* - AIF ('&SYS' NE 'S380').NOANY - GETMAIN RU,LV=(R3),SP=SUBPOOL,LOC=ANY - AGO .FINANY -.NOANY ANOP , - GETMAIN RU,LV=(R3),SP=SUBPOOL -.FINANY ANOP , -* -* WE STORE THE AMOUNT WE REQUESTED FROM MVS INTO THIS ADDRESS - ST R3,0(,R1) -* AND JUST BELOW THE VALUE WE RETURN TO THE CALLER, WE SAVE -* THE AMOUNT THEY REQUESTED - ST R4,4(,R1) - A R1,=F'8' -* -GETMEX FUNEXIT RC=(R1) - LTORG , - END diff --git a/src/crent370/asm/@@getm.o b/src/crent370/asm/@@getm.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/asm/@@getpfx.asm b/src/crent370/asm/@@getpfx.asm deleted file mode 100644 index 6dbb3ea..0000000 --- a/src/crent370/asm/@@getpfx.asm +++ /dev/null @@ -1,64 +0,0 @@ - COPY MVSMACS - COPY PDPTOP - CSECT , - PRINT GEN - SPACE 1 -********************************************************************** -* * -* GETPFX - get TSO prefix * -* * -********************************************************************** - ENTRY @@GETPFX -@@GETPFX DS 0H - SAVE (14,12),,@@GETPFX - LR R12,R15 - USING @@GETPFX,R12 -* - LA R15,0 - LA R0,0 Not really needed, just looks nice - USING PSA,R0 - ICM R2,15,PSATOLD - BZ RETURNGP - USING TCB,R2 - ICM R3,15,TCBJSCB - BZ RETURNGP - USING IEZJSCB,R3 - ICM R4,15,JSCBPSCB - BZ RETURNGP - USING PSCB,R4 - ICM R5,15,PSCBUPT - BZ RETURNGP - USING UPT,R5 - LA R6,UPTPREFX - LR R15,R6 -* -RETURNGP DS 0H - RETURN (14,12),RC=(15) - LTORG - SPACE 2 - COPY CLIBSUPA -* - SPACE 2 - PRINT NOGEN - IHAPSA , MAP LOW STORAGE - CVT DSECT=YES - IKJTCB , MAP TASK CONTROL BLOCK - IKJECT , MAP ENV. CONTROL BLOCK - IKJPTPB , PUTLINE PARAMETER BLOCK - IKJCPPL , - IKJPSCB , - IEZJSCB , - IEZIOB , - IEFZB4D0 , MAP SVC 99 PARAMETER LIST - IEFZB4D2 , MAP SVC 99 PARAMETERS - IEFUCBOB , -MYTIOT DSECT , - IEFTIOT1 , - IHAPDS PDSBLDL=YES - SPACE 1 - IFGACB , GP14233 - SPACE 1 - IFGRPL , GP14233 - IEFJESCT , - IKJUPT , - END diff --git a/src/crent370/asm/@@getpfx.o b/src/crent370/asm/@@getpfx.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/asm/@@gettz.asm b/src/crent370/asm/@@gettz.asm deleted file mode 100644 index fb7a597..0000000 --- a/src/crent370/asm/@@gettz.asm +++ /dev/null @@ -1,27 +0,0 @@ - COPY MVSMACS - COPY PDPTOP - CSECT , - PRINT GEN - SPACE 1 -*********************************************************************** -* * -* GETTZ - Get the offset from GMT in 1.048576 seconds * -* * -*********************************************************************** -* @@GETTZ FUNHEAD , get timezone offset -* -* L R3,CVTPTR -* USING CVT,R3 -* L R4,CVTTZ -* -* RETURNGS FUNEXIT RC=(R4) -* LTORG , - ENTRY @@GETTZ -@@GETTZ L R15,CVTPTR - L R15,CVTTZ-CVTMAP(,R15) GET GMT TIME-ZONE OFFSET - BR R14 - LTORG , - PRINT NOGEN - IHAPSA , MAP LOW STORAGE - CVT DSECT=YES - END diff --git a/src/crent370/asm/@@gettz.o b/src/crent370/asm/@@gettz.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/asm/@@idcams.asm b/src/crent370/asm/@@idcams.asm deleted file mode 100644 index fe13f00..0000000 --- a/src/crent370/asm/@@idcams.asm +++ /dev/null @@ -1,125 +0,0 @@ - COPY MVSMACS - COPY PDPTOP - CSECT , - PRINT GEN - SPACE 1 -*********************************************************************** -* * -* INVOKE IDCAMS: CALL @@IDCAMS,(@LEN,@TEXT) * -* * -*********************************************************************** - PUSH USING - DROP , -@@IDCAMS FUNHEAD SAVE=IDCSAVE EXECUTE IDCAMS REQUEST - LA R1,0(,R1) ADDRESS OF IDCAMS REQUEST (V-CON) -* ST R1,IDC@REQ SAVE REQUEST ADDRESS - LA R14,IDC@REQ - ST R1,0(,R14) -* -* MVI EXFLAGS,0 INITIALIZE FLAGS - LA R14,EXFLAGS - MVI 0(R14),0 -* - LA R1,AMSPARM PASS PARAMETER LIST - LINK EP=IDCAMS INVOKE UTILITY - FUNEXIT RC=(15) RESTORE CALLER'S REGS - POP USING - SPACE 1 -*********************************************************************** -* * -* XIDCAMS - ASYNCHRONOUS EXIT ROUTINE * -* * -*********************************************************************** - PUSH USING - DROP , -XIDCAMS STM R14,R12,12(R13) - LR R12,R15 - USING XIDCAMS,R12 - LA R9,XIDSAVE SET MY SAVE AREA - ST R13,4(,R9) MAKE BACK LINK - ST R9,8(,R13) MAKE DOWN LINK - LR R13,R9 MAKE ACTIVE SAVE AREA - SR R15,R15 PRESET FOR GOOD RETURN - LM R3,R5,0(R1) LOAD PARM LIST ADDRESSES - SLR R14,R14 - IC R14,0(,R4) LOAD FUNCTION - B *+4(R14) - B XIDCEXIT OPEN CODE IN R14 = X'00' - B XIDCEXIT CLOSE CODE IN R14 = X'04' - B XIDCGET GET SYSIN CODE IN R14 = X'08' - B XIDCPUT PUT SYSPRINT CODE IN R14 = X'0C' -XIDCGET TM EXFLAGS,EXFGET X'01' = PRIOR GET ISSUED ? - BNZ XIDCGET4 YES, SET RET CODE = 04 - L R1,IDC@REQ GET REQUEST ADDRESS - LDINT R3,0(,R1) LOAD LENGTH - L R2,4(,R1) LOAD TEXT POINTER - LA R2,0(,R2) CLEAR HIGH - STM R2,R3,0(R5) PLACE INTO IDCAMS LIST -* OI EXFLAGS,EXFGET X'01' = A GET HAS BEEN ISSUED - LA R14,EXFLAGS - OI 0(R14),EXFGET -* - B XIDCEXIT -XIDCGET4 LA R15,4 SET REG 15 = X'00000004' - B XIDCEXIT -XIDCPUT TM EXFLAGS,EXFSUPP+EXFSKIP ANY FORM OF SUPPRESSION? - BNZ XIDCPUTZ YES; DON'T BOTHER WITH REST - LM R4,R5,0(R5) - LA R4,1(,R4) SKIP CARRIAGE CONTROL CHARACTER - BCTR R5,0 FIX LENGTH - ICM R5,8,=C' ' BLANK FILL - LA R14,XIDCTEXT - LA R15,L'XIDCTEXT - MVCL R14,R4 - TM EXFLAGS,EXFMALL PRINT ALL MESSAGES? - BNZ XIDCSHOW YES; PUT THEM ALL OUT - CLC =C'IDCAMS ',XIDCTEXT IDCAMS TITLE ? - BE XIDCEXIT YES; SKIP - CLC XIDCTEXT+1(L'XIDCTEXT-1),XIDCTEXT ALL BLANK OR SOME? - BE XIDCEXIT YES; SKIP - CLC =C'IDC0002I',XIDCTEXT AMS PGM END - BE XIDCEXIT YES; SKIP -XIDCSHOW DS 0H -*DEBUG* WTO MF=(E,AMSPRINT) SHOW MESSAGE -XIDCPUTZ SR R15,R15 - B XIDCEXIT -*XIDCSKIP OI EXFLAGS,EXFSKIP SKIP THIS AND REMAINING MESSAGES -XIDCSKIP DS 0H - LA R15,EXFLAGS - OI 0(R15),EXFSKIP -* - SR R15,R15 -*---------------------------------------------------------------------* -* IDCAMS ASYNC EXIT ROUTINE - EXIT, CONSTANTS & WORKAREAS -*---------------------------------------------------------------------* -XIDCEXIT L R13,4(,R13) GET CALLER'S SAVE AREA - L R14,12(,R13) - RETURN (0,12) RESTORE AND RETURN TO IDCAMS -IDCSAVE DC 18F'0' MAIN ROUTINE'S REG SAVEAREA -XIDSAVE DC 18F'0' ASYNC ROUTINE'S REG SAVEAREA -AMSPRINT DC 0A(0),AL2(4+L'XIDCTEXT,0) -XIDCTEXT DC CL132' ' -AMSPARM DC A(HALF00,HALF00,HALF00,X'80000000'+ADDRLIST) -ADDRLIST DC F'2' - DC A(DDNAME01) - DC A(XIDCAMS) -IDC@REQ DC A(0) ADDRESS OF REQUEST POINTER - DC A(DDNAME02) - DC A(XIDCAMS) - DC A(0) -HALF00 DC H'0' -DDNAME01 DC CL10'DDSYSIN ' -DDNAME02 DC CL10'DDSYSPRINT' -EXFLAGS DC X'08' EXIT PROCESSING FLAGS -EXFGET EQU X'01' PRIOR GET WAS ISSUED -EXFNOM EQU X'04' SUPPRESS ERROR WTOS -EXFRET EQU X'08' NO ABEND; RETURN WITH COND.CODE -EXFMALL EQU X'10' ALWAYS PRINT MESSAGES -EXFSUPP EQU X'20' ALWAYS SUPPRESS MESSAGES -EXFSKIP EQU X'40' SKIP SUBSEQUENT MESSAGES -EXFGLOB EQU EXFMALL+EXFSUPP+EXFRET GLOBAL FLAGS - POP USING - LTORG , - SPACE 2 - COPY CLIBSUPA - END diff --git a/src/crent370/asm/@@idcams.o b/src/crent370/asm/@@idcams.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/asm/@@longj.asm b/src/crent370/asm/@@longj.asm deleted file mode 100644 index 76561d0..0000000 --- a/src/crent370/asm/@@longj.asm +++ /dev/null @@ -1,17 +0,0 @@ - COPY MVSMACS - COPY PDPTOP - CSECT , - PRINT GEN - SPACE 1 -*********************************************************************** -* * -* LONGJ - RESTORE REGISTERS FROM ENV * -* * -*********************************************************************** - ENTRY @@LONGJ -@@LONGJ L R1,0(,R1) get the env variable - L R15,60(,R1) get the return code - LM R0,R14,0(R1) restore registers - BR R14 return to caller - LTORG , - END diff --git a/src/crent370/asm/@@longj.o b/src/crent370/asm/@@longj.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/asm/@@ppaget.asm b/src/crent370/asm/@@ppaget.asm deleted file mode 100644 index ccc12b2..0000000 --- a/src/crent370/asm/@@ppaget.asm +++ /dev/null @@ -1,78 +0,0 @@ -@@PPAGET TITLE '@ @ P P A G E T *** Retrieve CLIBPPA from stack' - COPY PDPTOP - PRINT OFF - USING PSA,R0 - PRINT ON - COPY CLIBCRT - COPY CLIBPPA CLIB Program Properties Area - CSECT - ENTRY @@PPAGET -@@PPAGET DS 0H - SAVE (14,12),,@@PPAGET - LA R12,0(,R15) - USING @@PPAGET,R12 - SR R15,R15 -* - USING PSA,R0 - L R2,PSATOLD - USING TCB,R2 - SR R3,R3 - ICM R3,B'0111',TCBFSAB -> first TCB save area - BZ PPAOWNER No save area, try owner TCB - ICM R3,B'1111',8(R3) -> next TCB save area - BZ PPAOWNER No next, try owner TCB - CL R3,=F'16777215' GT X'FFFFFF'? - BH PPAOWNER Yes, not 24 bit address - USING CLIBPPA,R3 Program Properties Area - CLC PPAEYE,=A(PPAEYE$) Valid eye catcher? - BE PPAFND Yes, PPA found -* -* See if owner TCB has PPA -PPAOWNER DS 0H - ICM R2,B'0111',TCBOTC+1 Get owner TCB - BZ PPASTCK None, check stack -* - SR R3,R3 - ICM R3,B'0111',TCBFSAB -> first TCB save area - BZ PPAONEXT No save area, try next owner - ICM R3,B'1111',8(R3) -> next TCB save area - BZ PPAONEXT No next, try next owner TCB - CL R3,=F'16777215' GT X'FFFFFF'? - BH PPAONEXT Yes, not 24 bit address - CLC PPAEYE,=A(PPAEYE$) Valid eye catcher? - BE PPAFND Yes, PPA found -* -PPAONEXT DS 0H - C R2,TCBJSTCB Is this the Job Step TCB? - BE PPASTCK Yes, check stack - B PPAOWNER No, try owner TCB -* -* We didn't find the PPA as the "next" SA in the TCBFSA. -* So we'll run the SA chain backward and try to find it. -PPASTCK DS 0H - L R2,PSATOLD - ICM R3,B'1111',4(R13) Get prev SA -PPALOOP DS 0H - CLC PPAEYE,=A(PPAEYE$) Valid eye catcher? - BE PPAFND Yes, PPA found - ICM R3,B'1111',4(R3) Get prev SA - BZ PPAFAIL Zero, not found - CLM R3,B'0111',TCBFSAB Same as TCBFSAB? - BE PPAFAIL Yes, not found - B PPALOOP -* -PPAFND DS 0H - B PPAEXIT -PPAFAIL DS 0H - SR R3,R3 -PPAEXIT DS 0H - LR R15,R3 Return PPA - RETURN (14,12),RC=(15) - LTORG , - TITLE 'Dummy Sections' - IKJTCB LIST=YES - IEZJSCB - IHAPSA - IHARB - IHACDE - END diff --git a/src/crent370/asm/@@ppaget.o b/src/crent370/asm/@@ppaget.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/asm/@@setj.asm b/src/crent370/asm/@@setj.asm deleted file mode 100644 index 90fd659..0000000 --- a/src/crent370/asm/@@setj.asm +++ /dev/null @@ -1,17 +0,0 @@ - COPY MVSMACS - COPY PDPTOP - CSECT , - PRINT GEN - SPACE 1 -*********************************************************************** -* * -* SETJ - SAVE REGISTERS INTO ENV * -* * -*********************************************************************** - ENTRY @@SETJ -@@SETJ L R1,0(,R1) get the env variable - LA R15,0 setjmp needs to return 0 - STM R0,R14,0(R1) save registers to be restored - BR R14 return to caller - LTORG , - END diff --git a/src/crent370/asm/@@setj.o b/src/crent370/asm/@@setj.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/asm/@@ssctbn.asm b/src/crent370/asm/@@ssctbn.asm deleted file mode 100644 index 7fa0675..0000000 --- a/src/crent370/asm/@@ssctbn.asm +++ /dev/null @@ -1,24 +0,0 @@ - TITLE 'Find SSCT by subsystem name' - ENTRY @@SSCTBN -@@SSCTBN DS 0H - SAVE (14,12),,@@SSCTBN - LA 12,0(,15) => our base - USING @@SSCTBN,12 - L 1,0(,1) => CL4'subsystem name' - L 15,FLCCVT-PSA(,0) => CVT - L 15,CVTJESCT-CVT(,15) => JESCT - L 15,JESSSCT-JESCT(,15) => SSCT - USING SSCT,15 -AGAIN DS 0H - CLC SSCTSNAM,0(1) Is this the subsystem? - BE RETURN Yes, return now - ICM 15,B'1111',SSCTSCTA Next subsystem - BNZ AGAIN -RETURN DS 0H - RETURN (14,12),RC=(15) - PRINT NOGEN - IHAPSA - CVT DSECT=YES - IEFJESCT - IEFJSCVT - END diff --git a/src/crent370/asm/@@ssctbn.o b/src/crent370/asm/@@ssctbn.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/asm/@@svc99.asm b/src/crent370/asm/@@svc99.asm deleted file mode 100644 index 07d9376..0000000 --- a/src/crent370/asm/@@svc99.asm +++ /dev/null @@ -1,89 +0,0 @@ - COPY MVSMACS - COPY PDPTOP - CSECT , - PRINT GEN - SPACE 1 -*-----------------------ASSEMBLY OPTIONS------------------------------* -SUBPOOL EQU 0 * -*---------------------------------------------------------------------* - SPACE 1 -*********************************************************************** -* * -* CALL @@SVC99,(rb) * -* * -* Execute DYNALLOC (SVC 99) * -* * -* Caller must provide a request block, in conformance with the * -* MVS documentation for this (which is very complicated) * -* * -*********************************************************************** - PUSH USING - DROP , - ENTRY @@SVC99 -@@SVC99 DS 0H - SAVE (14,12),,@@SVC99 Save caller's regs. - LR R12,R15 - USING @@SVC99,R12 - LR R11,R1 -* - GETMAIN RU,LV=WORKLEN,SP=SUBPOOL - ST R13,4(,R1) - ST R1,8(,R13) - LR R13,R1 - LR R1,R11 - USING WORKAREA,R13 -* -* Note that the SVC requires a pointer to the pointer to the RB. -* Because this function (not SVC) expects to receive a standard -* parameter list, where R1 so happens to be a pointer to the -* first parameter, which happens to be the address of the RB, -* then we already have in R1 exactly what SVC 99 needs. -* -* Except for one thing. Technically, you're meant to have the -* high bit of the pointer on. So we rely on the caller to have -* the parameter in writable storage so that we can ensure that -* we set that bit. -* - L R2,0(R1) - O R2,=X'80000000' - ST R2,0(R1) - SVC 99 - LR R2,R15 -* -RETURN99 DS 0H - LR R1,R13 - L R13,SAVEAREA+4 - FREEMAIN RU,LV=WORKLEN,A=(1),SP=SUBPOOL -* - LR R15,R2 Return success - RETURN (14,12),RC=(15) Return to caller -* - DROP R12 - POP USING - SPACE 2 - COPY CLIBSUPA -* - SPACE 2 - PRINT NOGEN - IHAPSA , MAP LOW STORAGE - CVT DSECT=YES - IKJTCB , MAP TASK CONTROL BLOCK - IKJECT , MAP ENV. CONTROL BLOCK - IKJPTPB , PUTLINE PARAMETER BLOCK - IKJCPPL , - IKJPSCB , - IEZJSCB , - IEZIOB , - IEFZB4D0 , MAP SVC 99 PARAMETER LIST - IEFZB4D2 , MAP SVC 99 PARAMETERS - IEFUCBOB , -MYTIOT DSECT , - IEFTIOT1 , - IHAPDS PDSBLDL=YES - SPACE 1 - IFGACB , GP14233 - SPACE 1 - IFGRPL , GP14233 - IEFJESCT , - IKJUPT , - END diff --git a/src/crent370/asm/@@svc99.o b/src/crent370/asm/@@svc99.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/asm/@@system.asm b/src/crent370/asm/@@system.asm deleted file mode 100644 index 706a385..0000000 --- a/src/crent370/asm/@@system.asm +++ /dev/null @@ -1,221 +0,0 @@ - COPY MVSMACS - COPY PDPTOP - CSECT , - PRINT GEN - SPACE 1 -*********************************************************************** -* * -* CALL @@SYSTEM,(req-type,pgm-len,pgm-name,parm-len,parm),VL * -* * -* "-len" fields are self-defining values in the calling list, * -* or else pointers to 32-bit signed integer values * -* * -* "pgm-name" is the address of the name of the program to be * -* executed (one to eight characters) * -* * -* "parm" is the address of a text string of length "parm-len", * -* and may be zero to one hundred bytes (OS JCL limit) * -* * -* "req-type" is or points to 1 for a program ATTACH * -* 2 for TSO CP invocation * -* * -*---------------------------------------------------------------------* -* * -* Author: Gerhard Postpischil * -* * -* This program is placed in the public domain. * -* * -*---------------------------------------------------------------------* -* * -* Assembly: Any MVS or later assembler may be used. * -* Requires SYS1.MACLIB. TSO CP support requires additional * -* macros from SYS1.MODGEN (SYS1.AMODGEN in MVS). * -* Intended to work in any 24 and 31-bit environment. * -* * -* Linker/Binder: RENT,REFR,REUS * -* * -*---------------------------------------------------------------------* -* Return codes: when R15:0 R15:1-3 has return from program. * -* R15 is 04806nnn ATTACH failed * -* R15 is 1400000n PARM list error: n= 1,2, or 3 (req/pgm/parm) * -* R15 is 80sss000 or 80000uuu Subtask ABENDED (SYS sss/User uuu)* -* * -*********************************************************************** -@@SYSTEM FUNHEAD SAVE=(SYSATWRK,SYSATDLN,78) ISSUE OS OR TSO COMMAND - L R15,4(,R13) GET CALLER'S SAVE AREA - LA R11,16(,R15) REMEMBER THE RETURN CODE ADDRESS - LR R9,R1 SAVE PARAMETER LIST ADDRESS - SPACE 1 - MVC 0(4,R11),=X'14000002' PRESET FOR PARM ERROR - LDINT R4,0(,R9) REQUEST TYPE - LDINT R5,4(,R9) LENGTH OF PROGRAM NAME - L R6,8(,R9) -> PROGRAM NAME - LDINT R7,12(,R9) LENGTH OF PARM - L R8,16(,R9) -> PARM TEXT - SPACE 1 -* NOTE THAT THE CALLER IS EITHER COMPILER CODE, OR A COMPILER -* LIBRARY ROUTINE, SO WE DO MINIMAL VALIDITY CHECKING -* -* EXAMINE PROGRAM NAME LENGTH AND STRING -* - CH R5,=H'8' NOT TOO LONG ? - BH SYSATEXT TOO LONG; TOO BAD - SH R5,=H'1' LENGTH FOR EXECUTE - BM SYSATEXT NONE; OOPS - MVC SYSATPGM(L'SYSATPGM+L'SYSATOTL+1),=CL11' ' PRE-BLANK - EX R5,SYSAXPGM MOVE PROGRAM NAME - CLC SYSATPGM,=CL11' ' STILL BLANK ? - BE SYSATEXT YES; TOO BAD -* BRANCH AND PROCESS ACCORDING TO REQUEST TYPE -* - MVI 3(R11),1 SET BAD REQUEST TYPE - CH R4,=H'2' CP PROGRAM ATTACH ? - BE SYSATCP YES - CH R4,=H'1' OS PROGRAM ATTACH ? - BNE SYSATEXT NO; HAVE ERROR CODE -* OS PROGRAM ATTACH - PREPARE PARM, ETC. -* -* NOW LOOK AT PARM STRING - LTR R7,R7 ANY LENGTH ? - BM SYSATEXT NO; OOPS - STH R7,SYSATOTL PASS LENGTH OF TEXT - BZ SYSATNTX - CH R7,=AL2(L'SYSATOTX) NOT TOO LONG ? - BH SYSATEXT TOO LONG; TOO BAD - BCTR R7,0 - EX R7,SYSAXTXT MOVE PARM STRING -SYSATNTX LA R1,SYSATOTL GET PARAMETER ADDRESS - ST R1,SYSATPRM SET IT - OI SYSATPRM,X'80' SET END OF LIST BIT - B SYSATCOM GO TO COMMON ATTACH ROUTINE -* TSO CP REQUEST - PREPARE PARM, CPPL, ETC. -* -SYSATCP LTR R7,R7 ANY LENGTH ? - BM SYSATEXT NO; OOPS - LA R1,SYSATOTX-SYSATOPL(,R7) LENGTH WITH HEADER - STH R1,SYSATOPL PASS LENGTH OF COMMAND TEXT - LA R1,1(,R5) BYTE AFTER COMMAND NAME - STH R1,SYSATOPL+2 LENGTH PROCESSED BY PARSER - BZ SYSATXNO - CH R7,=AL2(L'SYSATOTX) NOT TOO LONG ? - BH SYSATEXT TOO LONG; TOO BAD - BCTR R7,0 - EX R7,SYSAXTXT MOVE PARM STRING -SYSATXNO LA R1,SYSATOPL GET PARAMETER ADDRESS - ST R1,SYSATPRM SET IT -* TO MAKE THIS WORK, WE NEED THE UPT, PSCB, AND ECT ADDRESS. -* THE FOLLOWING CODE WORKS PROVIDED THE CALLER WAS INVOKED AS A -* TSO CP, USED NORMAL SAVE AREA CONVENTIONS, AND HASN'T MESSED WITH -* THE TOP SAVE AREA. - MVI 3(R11),4 SET ERROR FOR BAD CP REQUEST - LA R2,SYSATPRM+8 CPPLPSCB - EXTRACT (R2),FIELDS=PSB GET THE PSCB - PUSH USING - L R1,PSATOLD-PSA GET THE CURRENT TCB - USING TCB,R1 - L R1,TCBFSA GET THE TOP LEVEL SAVE AREA - N R1,=X'00FFFFFF' KILL TCBIDF BYTE - POP USING - L R1,24(,R1) ORIGINAL R1 - LA R1,0(,R1) CLEAN IT - LTR R1,R1 ANY? - BZ SYSATEXT NO; TOO BAD - TM 0(R1),X'80' END OF LIST? - BNZ SYSATEXT YES; NOT CPPL - TM 4(R1),X'80' END OF LIST? - BNZ SYSATEXT YES; NOT CPPL - TM 8(R1),X'80' END OF LIST? - BNZ SYSATEXT YES; NOT CPPL - CLC 8(4,R1),SYSATPRM+8 MATCHES PSCB FROM EXTRACT? - BNE SYSATEXT NO; TOO BAD - MVC SYSATPRM+4(3*4),4(R1) COPY UPT, PSCB, ECT - L R1,12(,R1) - LA R1,0(,R1) CLEAR EOL BIT IN EITHER AMODE - LTR R1,R1 ANY ADDRESS? - BZ SYSATCOM NO; SKIP - PUSH USING (FOR LATER ADDITIONS?) - USING ECT,R1 DECLARE ECT - LM R14,R15,SYSATPGM GET COMMAND NAME - LA R0,7 MAX TEST/SHIFT -SYSATLCM CLM R14,8,=CL11' ' LEADING BLANK ? - BNE SYSATLSV NO; SET COMMAND NAME - SLDL R14,8 ELIMINATE LEADING BLANK - IC R15,=CL11' ' REPLACE BY TRAILING BLANK - BCT R0,SYSATLCM TRY AGAIN -SYSATLSV STM R14,R15,ECTPCMD - NI ECTSWS,255-ECTNOPD SET FOR OPERANDS EXIST - EX R7,SYSAXBLK SEE IF ANY OPERANDS - BNE SYSATCOM HAVE SOMETHING - OI ECTSWS,ECTNOPD ALL BLANK - POP USING -SYSATCOM LA R1,SYSATPRM PASS ADDRESS OF PARM ADDRESS - LA R2,SYSATPGM POINT TO NAME - LA R3,SYSATECB AND ECB - ATTACH EPLOC=(R2), INVOKE THE REQUESTED PROGRAM * - ECB=(R3),SF=(E,SYSATLST) SZERO=NO,SHSPV=78 - LTR R15,R15 CHECK RETURN CODE - BZ SYSATWET GOOD - MVC 0(4,R11),=X'04806000' ATTACH FAILED - STC R15,3(,R11) SET ERROR CODE - B SYSATEXT FAIL -SYSATWET ST R1,SYSATTCB SAVE FOR DETACH - WAIT ECB=SYSATECB WAIT FOR IT TO FINISH - L R2,SYSATTCB GET SUBTASK TCB - USING TCB,R2 DECLARE IT - MVC 0(4,R11),TCBCMP COPY RETURN OR ABEND CODE - TM TCBFLGS,TCBFA ABENDED ? - BZ *+8 NO - MVI 0(R11),X'80' SET ABEND FLAG - DETACH SYSATTCB GET RID OF SUBTASK - DROP R2 - B SYSATEXT AND RETURN -SYSAXPGM OC SYSATPGM(0),0(R6) MOVE NAME AND UPPER CASE -SYSAXTXT MVC SYSATOTX(0),0(R8) MOVE PARM TEXT -SYSAXBLK CLC SYSATOTX(0),SYSATOTX-1 TEST FOR OPERANDS -* PROGRAM EXIT, WITH APPROPRIATE RETURN CODES -* -SYSATEXT FUNEXIT , RESTORE REGS; SET RETURN CODES - SPACE 1 RETURN TO CALLER -* DYNAMICALLY ACQUIRED STORAGE -* -SYSATWRK DSECT , MAP STORAGE - DS 18A OUR OS SAVE AREA -SYSATCLR DS 0F START OF CLEARED AREA -SYSATLST ATTACH EPLOC=SYSATPGM,ECB=SYSATECB,SHSPV=78,SZERO=NO,SF=L -SYSATECB DS F EVENT CONTROL FOR SUBTASK -SYSATTCB DS A ATTACH TOKEN FOR CLEAN-UP -SYSATPRM DS 4A PREFIX FOR CP -SYSATOPL DS 2Y 1/4 PARM LENGTH / LENGTH SCANNED -SYSATPGM DS CL8 2/4 PROGRAM NAME (SEPARATOR) -SYSATOTL DS Y 3/4 OS PARM LENGTH / BLANKS FOR CP CALL -SYSATZER EQU SYSATCLR,*-SYSATCLR,C'X' ADDRESS & SIZE TO CLEAR -SYSATOTX DS CL247 4/4 NORMAL PARM TEXT STRING -SYSATDLN EQU *-SYSATWRK LENGTH OF DYNAMIC STORAGE - CSECT , RESTORE - SPACE 2 - COPY CLIBSUPA -* - SPACE 2 - PRINT NOGEN - IHAPSA , MAP LOW STORAGE - CVT DSECT=YES - IKJTCB , MAP TASK CONTROL BLOCK - IKJECT , MAP ENV. CONTROL BLOCK - IKJPTPB , PUTLINE PARAMETER BLOCK - IKJCPPL , - IKJPSCB , - IEZJSCB , - IEZIOB , - IEFZB4D0 , MAP SVC 99 PARAMETER LIST - IEFZB4D2 , MAP SVC 99 PARAMETERS - IEFUCBOB , -MYTIOT DSECT , - IEFTIOT1 , - IHAPDS PDSBLDL=YES - SPACE 1 - IFGACB , GP14233 - SPACE 1 - IFGRPL , GP14233 - IEFJESCT , - IKJUPT , - END diff --git a/src/crent370/asm/@@system.o b/src/crent370/asm/@@system.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/asm/dummy.asm b/src/crent370/asm/dummy.asm deleted file mode 100644 index df3439e..0000000 --- a/src/crent370/asm/dummy.asm +++ /dev/null @@ -1,3 +0,0 @@ - PRINT GEN - $PDDB - END diff --git a/src/crent370/asm/dummy.o b/src/crent370/asm/dummy.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/asm/files.txt b/src/crent370/asm/files.txt deleted file mode 100644 index 2af97c4..0000000 --- a/src/crent370/asm/files.txt +++ /dev/null @@ -1,26 +0,0 @@ -@@aclose.asm -@@aline.asm -@@anote.asm -@@aopen.asm -@@apoint.asm -@@aread.asm -@@atrout.asm -@@awrite.asm -@@crt0.asm -@@crt1.asm -@@crtsvc.asm -dummy.asm -@@dynal.asm -@@freem.asm -@@getclk.asm -@@getm.asm -@@getpfx.asm -@@gettz.asm -gettzoff.asm -@@idcams.asm -@@longj.asm -@@setj.asm -@@ssctbn.asm -ssireq01.asm -@@svc99.asm -@@system.asm diff --git a/src/crent370/asm/gettzoff.asm b/src/crent370/asm/gettzoff.asm deleted file mode 100644 index 47726f2..0000000 --- a/src/crent370/asm/gettzoff.asm +++ /dev/null @@ -1,75 +0,0 @@ -R0 EQU 0 -R1 EQU 1 -R2 EQU 2 -R3 EQU 3 -R4 EQU 4 -R5 EQU 5 -R6 EQU 6 -R7 EQU 7 -R8 EQU 8 -R9 EQU 9 -R10 EQU 10 -R11 EQU 11 -R12 EQU 12 -R13 EQU 13 -R14 EQU 14 -R15 EQU 15 - ENTRY GETTZOFF -GETTZOFF DS 0H - STM R0,R12,20(R13) Save the register we're using - LA R12,0(,R15) - USING GETTZOFF,R12 -* - L R15,CVTPTR - L R15,CVTTZ-CVTMAP(,R15) GET GMT TIME-ZONE OFFSET -* The CVTTZ value offset is in 1.048576 second increments. -* The maximum offset people have managed to define is 14 hours -* (Kirribati) and when mulplied by 16384, this doesn't exceed a 32-bit -* signed integer, so we're safe. -* -* However, the TZ offset value is actually truncated, e.g. -27465.8 -* is stored as -27465, which combined with the 1.048576 granularity -* means that we don't have 1-second accuracy. -* So we round to the nearest minute. - LR 4,15 - SLL 4,14 o = o * 16384; - SRDA 4,32 - L 8,=F'15625' - DR 4,8 o /= 15625 -* - SR 2,2 - SRDA 2,32 - LA 8,60 - DR 2,8 r = o % 60 -* - SR 6,6 - SRDA 6,32 - DR 6,8 o /= 60 convert to minutes -* - LR 15,7 - LTR 7,7 - BL GETTZ010 - LA 3,29 - CR 2,3 - BNH GETTZ010 - A 15,=F'1' o += 1 - B GETTZ020 -GETTZ010 DS 0H - LTR 15,15 - BH GETTZ020 - L 8,=F'-30' - CR 2,8 - BH GETTZ020 - BCTR 15,0 o -= 1 -GETTZ020 DS 0H - LR 2,15 - SLL 2,4 - SR 2,15 - SLL 2,2 o = o * 60 convert to seconds - LR R15,R2 Time zone offset - LM R0,R12,20(R13) Restore registers we used - BR R14 - LTORG - IHAPSA - CVT DSECT=YES - END diff --git a/src/crent370/asm/gettzoff.o b/src/crent370/asm/gettzoff.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/asm/makefile b/src/crent370/asm/makefile deleted file mode 100644 index 81a853f..0000000 --- a/src/crent370/asm/makefile +++ /dev/null @@ -1,62 +0,0 @@ -# -# makefile for crent370/asm (asm files) -# -# asm source code files -A_FILES := @@aclose.asm \ - @@aline.asm \ - @@anote.asm \ - @@aopen.asm \ - @@apoint.asm \ - @@aread.asm \ - @@atrout.asm \ - @@awrite.asm \ - @@crt0.asm \ - @@crt1.asm \ - @@crtm.asm \ - @@crtsvc.asm \ - dummy.asm \ - @@dynal.asm \ - @@exita.asm \ - @@freem.asm \ - @@getclk.asm \ - @@getm.asm \ - @@getpfx.asm \ - @@gettz.asm \ - gettzoff.asm \ - @@idcams.asm \ - @@longj.asm \ - @@ppaget.asm \ - @@setj.asm \ - @@ssctbn.asm \ - @@svc99.asm \ - @@system.asm - -#deprecated: - -# object files (one for each .asm source file) -O_FILES := $(foreach filename,$(A_FILES),$(filename:.asm=.o)) - -# export MACn variables for mvsasm->jobasm script -export MAC1=MDR.CRENT370.MACLIB -export MAC2=SYS2.MACLIB - -# export dataset names used by mvsasm script -export MVSASM_PUNCH=MDR.CRENT370.OBJECT -export MVSASM_SYSLMOD=MDR.CRENT370.NCALIB - -all: $(O_FILES) - @echo "Done" -# Note: PHONY is important here. Without it, implicit rules will try -# to build the executable "all", since the prereqs are ".o" files. -.PHONY: all - -# build object files from assembler files (.asm) -%.o: %.asm - @echo "mvsasm $(notdir $<)" - @mvsasm "$<" - @touch "$@" - -# remove generated files -clean: - @rm -f $(O_FILES) - diff --git a/src/crent370/asm/ssireq01.asm b/src/crent370/asm/ssireq01.asm deleted file mode 100644 index 6672c2f..0000000 --- a/src/crent370/asm/ssireq01.asm +++ /dev/null @@ -1,404 +0,0 @@ -SSIREQ01 TITLE '- DOCUMENTATION' -SSIREQ01 AMODE 31 -SSIREQ01 RMODE 24 - SPLEVEL SET=4 -********************************************************************* -* FUNCTION: THIS PROGRAM PERFORMS THE FOLLOWING FUNCTIONS: * -* * -* 1. REQUESTS A SYSOUT DATA SET FROM JES THROUGH A WRITER * -* NAME (SHOWS AN EXAMPLE OF USING ONE OF THE AVAILABLE * -* SELECTION CRITERIA TO INFLUENCE WHICH SYSOUT DATA SET * -* IS SELECTED). THIS PROGRAM IS INTENDED TO RUN ON JES3 * -* ONLY, AS IT SHOWS SELECTION CRITERIA AVAILABLE ONLY TO * -* JES3. (SPECIFICALLY, BIT SSSOHLD IS USED.) * -* 2. IF ONE IS NOT AVAILABLE, THE OPERATOR CAN WAIT UNTIL * -* ONE IS AVAILABLE, OR EXIT THE PROGRAM. * -* 3. IF ONE IS AVAILABLE, IT IS DYNAMICALLY ALLOCATED. * -* 4. EACH RECORD IS READ AND DISPLAYED TO THE OPERATOR. * -* 5. UPON END-OF-DATA, THE SYSOUT DATA SET IS DEALLOCATED. * -* THE SYSOUT CLASS IS CHANGED TO 'A', AND THE * -* DESTINATION IS CHANGED TO 'PRT803'. * -* (SHOWS AN EXAMPLE OF USING THE AVAILABLE DYNAMIC * -* ALLOCATION TEXT UNIT TO CHANGE THE ATTRIBUTES OF THE * -* RECEIVE SYSOUT DATA SET DURING UNALLOCATION.) * -* 6. THE PROGRAM THEN CYCLES BACK AND ASKS JES FOR THE NEXT * -* DATA SET (GOES TO STEP 1). * -* * -* NAME OF MODULE: SSIREQ01 * -* * -* REGISTER USE: * -* * -* 0 PARM REGISTER * -* 1 PARM REGISTER * -* 2 SSOB * -* 3 SSSO * -* 4 DCB * -* 5 RB * -* 6 MAX RECORD LENGTH * -* 7 DUMP CODE * -* 8 ABEND VALUE REGISTER * -* 9 IEFSSREQ RETURN CODES * -* 10 BASE REGISTER * -* 11 TEXT RECORD STRUCTURE PTR * -* 12 UNUSED * -* 13 SAVE AREA CHAIN REGISTER * -* 14 PARM REGISTER / RETURN ADDR * -* 15 PARM REGISTER / COND CODE * -* * -* ATTRIBUTES: SUPERVISOR STATE, AMODE(31), RMODE(24) * -* * -* * -* NOTE: THIS IS A SAMPLE. * -********************************************************************* - TITLE '- EQUATES' -********************************************************************* -* GENERAL EQUATES * -********************************************************************* -EQUHOBON EQU X'80000000' HIGH ORDER BIT ON -FF EQU X'FF' ALL BITS ON IN A BYTE -********************************************************************* -* AFTER COMPARE INSTRUCTIONS * -********************************************************************* -GT EQU 2 A HIGH -LT EQU 4 A LOW -NE EQU 7 A NOT EQUAL B -EQ EQU 8 A EQUAL B -GE EQU 11 A NOT LOW -LE EQU 13 A NOT HIGH -* -********************************************************************* -* AFTER ARITHMETIC INSTRUCTIONS * -********************************************************************* -OV EQU 1 OVERFLOW -PLUS EQU 2 PLUS -MINUS EQU 4 MINUS -NZERO EQU 7 NOT ZERO -ZERO EQU 8 ZERO -ZEROS EQU 8 ZERO -NMINUS EQU 11 NOT MINUS -NOV EQU 12 NOT OVERFLOW -NPLUS EQU 13 NOT PLUS -* -********************************************************************* -* AFTER TEST UNDER MASK INSTRUCTIONS * -********************************************************************* -ALLON EQU 1 ALL ON -MIXED EQU 4 MIXED -NALLOFF EQU 5 ALLON+MIXED -ALLOFF EQU 8 ALL OFF -NALLON EQU 12 ALLOFF+MIXED -********************************************************************* -* ABEND CODE INDICATIONS * -********************************************************************* -BADR15 EQU 1 IEFSSREQ R15 NON-ZERO -BADRETN EQU 2 SSOBRETN NON-ZERO AND NOT 8 -BADS99A EQU 3 DYNALLOC ALLOC FAILED -BADOPEN EQU 4 OPEN DCB FAILED -BADS99U EQU 5 DYNALLOC UNALLC FAILED -BADRLEN EQU 6 PSO DATASET TOO LARGE (RECLEN) -********************************************************************* -* GENERAL PURPOSE REGISTERS * -********************************************************************* -R0 EQU 0 PARM REGISTER -R1 EQU 1 PARM REGISTER -R2 EQU 2 SSOB -R3 EQU 3 SSSO -R4 EQU 4 DCB -R5 EQU 5 RB -R6 EQU 6 MAX RECORD LENGTH -R7 EQU 7 DUMP CODE -R8 EQU 8 ABEND VALUE REGISTER -R9 EQU 9 RETURN CODES OR REASONS -R10 EQU 10 BASE REGISTER -R11 EQU 11 TEXT RECORD STRUCTURE PTR -R12 EQU 12 UNUSED -R13 EQU 13 SAVE AREA CHAIN REGISTER -R14 EQU 14 PARM REGISTER / RETURN ADDR -R15 EQU 15 PARM REGISTER / COND CODE - TITLE '- CVT - COMMUNICATIONS VECTOR TABLE' - CVT DSECT=YES,LIST=NO - TITLE 'DCBD' - DCBD DSORG=PS - TITLE '- IEFJESCT - JES CONTROL TABLE' - IEFJESCT TYPE=DSECT - TITLE '- SSOB' - IEFSSOBH -SSOBGN EQU * START OF FUNCTIONAL EXTENSION - TITLE '- SSSO' - IEFSSSO SOEXT=YES - TITLE '- IEFZB4D0 - SVC99 DSECTS' - IEFZB4D0 - TITLE '- IEFZB4D2 - TU KEYS' - IEFZB4D2 -********************************************************************* -* HOUSEKEEPING * -********************************************************************* -SSIREQ01 CSECT - SAVE (14,12) FORM ID - BALR R10,0 ESTABLISH BASE REG - USING *,R10 INFORM ASSEMBLER - LA R2,SA CHAIN SAVEAREAS - ST R13,4(R2) OLD IN NEW - ST R2,8(R13) NEW IN OLD - LR R13,R2 RECHAIN THE SAVE AREAS - TITLE '- PROCESS SYSOUT' - WTO 'SSI CODE 01 Version 1' LET OP KNOW WHAT LEVEL - STORAGE OBTAIN, GET STORAGE FOR SSOB/SSSO - LENGTH=SSOBLEN1, - COND=NO - LR R2,R1 SAVE BEGINNING OF STORAGE - USING SSOBEGIN,R2 INFORM ASSEMBLER - LA R3,SSOBGN PT TO BEGINNING OF SSSO - USING SSSOBGN,R3 INFORM ASSEMBLER - TITLE '- SSOB PROCESSING' -********************************************************************* -* NOW WORK ON THE SSOB. THE LIFE-OF-JOB IS USED HERE, SO THE * -* SSOBSSIB IS ZERO. * -********************************************************************* - XC SSOB(SSOBHSIZ),SSOB CLEAR THE SSOB - MVC SSOBID,=CL4'SSOB' SSOB INITIALS INTO SSOB - MVC SSOBFUNC,=AL2(SSOBSOUT) MOVE FUNCTION ID INTO SSOB - MVC SSOBLEN,=AL2(SSOBHSIZ) MOVE SIZE INTO SSOB - ST R3,SSOBINDV SAVE THE SSSO ADDRESS - TITLE '- SSSO PROCESSING' -********************************************************************* -* NOW WORK ON THE SSSO. SELECT A SELECTION CRITERIA BASED ON * -* AN EXTERNAL WRITER NAME OF 'ANDREW'. * -********************************************************************* - XC SSSOBGN(SSSOSIZE),SSSOBGN CLEAR THE SSSO - MVC SSSOLEN,=AL2(SSSOSIZE) SET THE SIZE OF THE SSSO - MVI SSSOVER,SSSOCVER SET THE VERSION NUMBER - OI SSSOFLG1,SSSOSPGM+SSSOHLD SELECT BY WRITER NAME AND -* THE HOLD QUEUE - OI SSSOFLGA,SSSOWTRN IND. THAT SELECTION IS BY -* WRITER NAME, NOT USERID - MVC SSSOPGMN,=CL8'ANDREW' IND. CORRECT WRITER NAME -* THAT IS USED AS SELECTION - OI SSSOFLG2,SSSOPSEE IND. LONG FORM OF IEFSSSO -********************************************************************* -* NOW GO TAP JES ON THE SHOULDER FOR A DATASET! * -********************************************************************* -NEXTDS DS 0H GET NEXT DSNAME FROM JES - MODESET MODE=SUP GET INTO SUPERVISOR STATE - LR R1,R2 R1=ADDRESS OF SSOB - O R1,=A(EQUHOBON) TURN ON THE HIGH-ORDER BIT - ST R1,MYSSOBPT SAVE POINTER FOR SSREQ - LA R1,MYSSOBPT POINT TO SSOB POINTER - IEFSSREQ , GO TO JES FOR A DATASET - MODESET MODE=PROB BACK TO PROBLEM STATE - LA R8,BADR15 ASSUME BAD REG 15 RETURN - LTR R9,R15 DID THE IEFSSREQ WORK OK? - BC NZERO,ABEND NOT GOOD...TAKE AN ABEND - LA R8,BADRETN ASSUME BAD SSOBRETN - ICM R9,B'1111',SSOBRETN CHECK OUT SSOBRETN - BC NZERO,TESTIT NON-ZERO, INVESTIGATE FURTHER -********************************************************************* -* WE HAVE A DATA SET. NOW DYNAMICALLY ALLOCATE IT, READ AND DISPLAY* -* THE RECORDS USING SEQUENTIAL ACCESS METHOD AS EXAMPLE OF HOW TO * -* RETRIEVE THE DATA. * -********************************************************************* - TITLE '- ALLOCATE RETURNED DATASET' -********************************************************************* -* ALLOCATE THE RETURNED SYSOUT DATASET * -********************************************************************* - LA R8,BADRLEN ASSUME SIZE TOO LARGE FOR WTO - SR R6,R6 CLEAR REG 6 - ICM R6,B'0011',SSSOMLRL GET MAX RECORD LENGTH - CH R6,=H'150' IS MAX RCD LENGTH>150?? - BC GT,ABEND YES - TIME FOR US TO GO HOME - STH R6,RECLEN SAVE MAX RECORD LENGTH - LA R5,MY99RB PT TO RB - USING S99RB,R5 ADDRESSABILITY TO THE RB - XC S99RB(RBLEN),S99RB ZERO THE RB - MVI S99RBLN,RBLEN RB LENGTH - MVI S99VERB,S99VRBAL RB VERB CODE=ALLOC - LA R1,MY99TPTA ADDR SVC 99 ALLOC TU PTRS - ST R1,S99TXTPP STORED IN RB - LA R1,MY99RBPT PT TO RB POINTER - MVC TXTDSNAM,SSSODSN MOVE DATASET NAME TO BE ALLOCATED - DYNALLOC ISSUE DYNAMIC ALLOCATION - LA R8,BADS99A ASSUME IT DIDN'T WORK - LR R9,R1 COPY FOR DUMP - LTR R15,R15 SVC 99 WORK OKAY?? - BC NZERO,ABEND NO, TAKE A DUMP -********************************************************************* -* SYSOUT DATASET ALLOCATED OKAY. MOVE RETURNED DDNAME INTO * -* THE DCB PRIOR TO OPENING IT. * -********************************************************************* - LA R4,INDCB PT TO THE INPUT DCB - USING IHADCB,R4 ADDRESSABILITY - MVC DCBDDNAM(8),TXTDDA99 MOVE IN RETURNED DDNAME - MVC TXTDDU99,TXTDDA99 SAVE FOR UNALLOCATION - MVC DCBLRECL,SSSOMLRL MOVE MAX LENGTH RECORD IN -* * - OPEN INDCB OPEN THE DCB - LA R8,BADOPEN ASSUME THE OPEN FAILED - LR R9,R4 COPY FOR DUMP - TM DCBOFLGS,DCBOFOPN DID IT WORK? - BC ALLOFF,ABEND NOPE, TAKE A DUMP - TITLE '- GET THE RECORDS - DISPLAY TO PROGRAM' -GETNEXT DS 0H LOOP FOR READING/DISPLAYING -********************************************************************* -* SWITCH TO 24 BIT MODE FOR GET MACRO * -********************************************************************* - LA R15,SSITO24 SWITCH TO 24 BIT MODE ... - BSM 0,R15 ... FOR RESTRICTED MACRO -SSITO24 DS 0H - GET INDCB R1==> RECORD AFTER THE GET - L R15,SSITO31A RETURN TO 31 BIT MODE ... - BSM 0,R15 ... AND CONTINUE -SSITO31A DC A(SSITO31+EQUHOBON) FOR MODE SWITCHING -********************************************************************* -* RETURN TO 31 BIT MODE AND CONTINUE * -********************************************************************* -SSITO31 DS 0H - EX R6,MOVEIT MOVE UP TO 150 BYTES OF REC - LA R11,RECLEN POINT TO RECORD FOR OUTPUT - WTO TEXT=(11),ROUTCDE=11 DISPLAY TO JOBLOG - MVI RECTEXT,C' ' CLEAR RECORD OUT... - MVC RECTEXT+1(L'RECTEXT-1),RECTEXT ..FOR NEXT ONE - B GETNEXT GO GET NEXT RECORD - TITLE '- EODAD ROUTINE' -MYEODAD DS 0H END-OF-DATASET - CLOSE INDCB CLOSE THE INPUT DCB - DROP R4 IHADCB -********************************************************************* -* UNALLOCATE THE SYSOUT DATASET, CHANGING CLASS + DESTINATION * -********************************************************************* - XC S99RB(RBLEN),S99RB ZERO THE RB - MVI S99RBLN,RBLEN RB LENGTH - MVI S99VERB,S99VRBUN RB VERB CODE=UNALLOC - LA R1,MY99TPTU ADDR SVC 99 ALLOC TU PTRS - ST R1,S99TXTPP STORED IN RB - LA R1,MY99RBPT PT TO RB POINTER - DYNALLOC ISSUE DYNAMIC UNALLOCATION - LA R8,BADS99U ASSUME IT DIDN'T WORK - LR R9,R1 COPY FOR DUMP - LTR R15,R15 SVC 99 WORK OKAY?? - BC NZERO,ABEND NO, TAKE A DUMP - B NEXTDS GO GET NEXT DATA SET - TITLE '- BAD RETURN FROM IEFSSREQ' -TESTIT DS 0H -********************************************************************* -* R8 HAS THE 'BADRETN' ASSUMPTION VALUE FOR POSSIBLE ABEND. * -* R9 HAS A NON-ZERO VALUE FROM SSOBRETN FROM THE IEFSSREQ. * -********************************************************************* - CH R9,NOMORE END OF DATA SET RETURN? - BC NE,ABEND NOPE - QUIT! -********************************************************************* -* WE RECEIVED THE END-OF-DATA CONDITION. ASK WHETHER WE * -* SHOULD WAIT ON RETURNED ECB, OR COMPLETE NOW, * -********************************************************************* - XC MYECB,MYECB CLEAR THE ECB - WTOR 'ENTER 'W' OR WAIT, ANYTHING ELSE TO EXIT', - MYREPLY, - 1, - MYECB - WAIT ECB=MYECB - OI MYREPLY,C' ' FORCE REPLY TO UPPER CASE - CLI MYREPLY,C'W' SHOULD WE WAIT? - BC NE,EXIT NO, EXIT -********************************************************************* -* WAIT INDICATED. SET UP WAIT ON THE RETURNED ECB. * -********************************************************************* - MODESET KEY=ZERO GET INTO KEY 0 - L R1,SSSOWTRC POINT TO RETURNED DATA AREA - WAIT ECB=(1) R1==>RETURNED WAIT-FOR ECB - MODESET KEY=NZERO BACK TO ORIGINAL - B NEXTDS WE'RE POSTED - GO GET IT! - TITLE '- CLOSE OUT ROUTINES' -EXIT DS 0H FINAL CALL, RETURN TO MVS - MVI SSSOFLG2,SSSOCTRL IND. FINAL CALL TO JES - MODESET MODE=SUP GET INTO SUPERVISOR STATE - LA R1,MYSSOBPT POINT TO SSOB POINTER - IEFSSREQ , GO TO JES FOR GIVE BACK - MODESET MODE=PROB BACK TO PROBLEM STATE.... - STORAGE RELEASE, FREE SSOB/SSSO - LENGTH=SSOBLEN1, - ADDR=(R2) HERE'S WHERE IT LIVES - L R13,4(,R13) OLD SA PTR - RETURN (14,12),RC=0 BACK TO MVS - TITLE '- ABEND ROUTINES' -********************************************************************* -* THIS IS THE ABEND ROUTINE. R8 CONTAINS THE PROGRAM REASON CODE, * -* R9 CONTAINS SPECIFIC ERROR/REASON CODE AS RETURNED BY THE * -* SERVICE ROUTINE. * -********************************************************************* -ABEND DS 0H ISSUE THE ABEND MACRO - ABEND (8),DUMP,STEP TAKE A DUMP IF WANTED - TITLE '- DATA AREAS' -SA DS 9D SAVE AREAS -MYECB DS F DOUBLEWORD FOR WTOR -* -MYREPLY DS CL1 REPLY AREA FOR WTORS -RESRV DS XL3 ROUND TO FULL WORD - TITLE '- DYNALLOC DATA' -********************************************************************* -* THE FOLLOWING CONTROL BLOCKS ARE FOR DYNAMIC ALLOCATION AND * -* UNALLOCATION. * -********************************************************************* -* S99 REQUEST BLOCK POINTER * -********************************************************************* -MY99RBPT DC A(EQUHOBON+MY99RB) S99 RB PTR -********************************************************************* -* S99 REQUEST BLOCK * -********************************************************************* -MY99RB DS CL(RBLEN) MY SVC 99 RB -RBLEN EQU (S99RBEND-S99RB) LENGTH OF RB FOR MY99RB -********************************************************************* -* TEXT UNIT POINTERS FOR ALLOCATION * -********************************************************************* -MY99TPTA DC A(TXTDALDS) TU FOR DATASET NAME - DC A(TXTSSREQ) NAME OF SUBSYSTEM TU PTR - DC A(EQUHOBON+TXTRTDDN) RETURN DD NAME TU -********************************************************************* -* TEXT UNIT POINTERS FOR UNALLOCATION * -********************************************************************* -MY99TPTU DC A(TXTDUNDD) TU FOR UNALLOC BY DDNAME - DC A(TXTDUNNH) NOHOLD TU - DC A(TXTDUNCL) CHANGE THE CLASS TU - DC A(EQUHOBON+TXTDUNDS) CHANGE THE DEST TU -********************************************************************* -* TEXT UNITS FOR ALLOCATION * -********************************************************************* -TXTDALDS DC AL2(DALDSNAM) DATASET NAME KEY - DC X'0001' NUMBER - DC AL2(44) DSNAME LENGTH -TXTDSNAM DS CL44' ' DSNAME FROM IEFSSREQ -TXTCLOSE DC AL2(DALCLOSE) UNALLOCATE AT CLOSE KEY - DC X'0000' # FIELD (0000 REQUIRED) -TXTSSREQ DC AL2(DALSSREQ) REQUEST OF SUBSYSTEM - DC X'0001' # FIELD (0001 REQUIRED) - DC X'0004' LEN OF SS NAME FOLLOWING - DC CL4'JES3' NAME OF SUBSYSTEM -TXTRTDDN DC AL2(DALRTDDN) RETURN DDNAME FIELD - DC X'0001' # FIELD (0001 REQUIRED) - DC X'0008' LEN OF PARM -TXTDDA99 DC CL8' ' RETURNED DDNAME PARM FIELD -********************************************************************* -* TEXT UNITS FOR UNALLOCATION * -********************************************************************* -TXTDUNDD DC AL2(DUNDDNAM) TU FOR DDNAME UNALLOC - DC X'0001' NUMBER - DC AL2(8) DDNAME LENGTH -TXTDDU99 DS CL8' ' DDNAME FROM DYNALLOC -TXTDUNNH DC AL2(DUNOVSNH) TU FOR NOHOLD - DC X'0000' # FIELD (0000 REQUIRED) -TXTDUNCL DC AL2(DUNOVCLS) TU FOR CHANGE OF CLASS - DC X'0001' # FIELD (0001 REQUIRED) - DC X'0001' LEN OF SYSOUT CLASS - DC CL1'A' CHANGED SYSOUT CLASS -TXTDUNDS DC AL2(DUNOVSUS) TU FOR CHANGE OF REMOTE - DC X'0001' # FIELD (0001 REQUIRED) - DC X'0008' LEN OF CHANGED REMOTE - DC CL8'PRT803' CHANGED REMOTE NAME -MYSSOBPT DS F POINTER TO SSOB FOR IEFSSREQ -NOMORE DC AL2(SSSOEODS) NO MORE DATASETS FROM JES -MOVEIT MVC RECTEXT(*-*),0(R1) OBJ OF AN EXECUTE -RECLEN DS H LENGTH OF OUTPUT RECORD -RECTEXT DS CL150 UP TO 150 BYTES OF SYSOUT -INDCB DCB DSORG=PS,MACRF=GL,BUFNO=2,EODAD=MYEODAD, X - DDNAME=WILLCHNG - TITLE '- LITERALS' - LTORG , - END diff --git a/src/crent370/asm/ssireq01.o b/src/crent370/asm/ssireq01.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/'mdr.httpd.h' b/src/crent370/clib/'mdr.httpd.h' deleted file mode 100644 index 7b05080..0000000 --- a/src/crent370/clib/'mdr.httpd.h' +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/src/crent370/clib/@@64add.c b/src/crent370/clib/@@64add.c deleted file mode 100644 index b1c9cc9..0000000 --- a/src/crent370/clib/@@64add.c +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_add'"); -void __64_add(__64* a, __64* b, __64* c) -{ - __64_DTYPE_TMP tmp; - int carry = 0; - int i; - - if (a && b && c) { - for (i = __64_ARRAY_SIZE - 1; i >=0 ; i--) { - tmp = (__64_DTYPE_TMP)a->array[i] + b->array[i] + carry; - carry = (tmp > __64_MAX_VAL); - c->array[i] = (tmp & __64_MAX_VAL); - } - } -} - diff --git a/src/crent370/clib/@@64add.o b/src/crent370/clib/@@64add.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64add.s b/src/crent370/clib/@@64add.s deleted file mode 100644 index 47600b0..0000000 --- a/src/crent370/clib/@@64add.s +++ /dev/null @@ -1,83 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64add.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_add' -* Program text area - DS 0F - EJECT -* external function '__64_add' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__64_add' -@@64ADD PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_add' code - L 7,0(11) ==> a - L 6,4(11) ==> b - L 5,8(11) ==> c - SLR 4,4 ==> carry - LTR 7,7 ==> a - BE @@L1 - LTR 6,6 ==> b - BE @@L1 - LTR 5,5 ==> c - BE @@L1 - LA 15,3(0,0) ==> i -@@L8 EQU * - LR 2,15 ==> i - MH 2,=H'2' - LH 3,0(2,7) ==> .array - N 3,=XL4'0000FFFF' - LH 2,0(2,6) ==> .array - N 2,=XL4'0000FFFF' - AR 3,2 - LR 2,3 ==> tmp - AR 2,4 ==> tmp,carry - SLR 4,4 ==> carry - L 3,=F'65535' - CLR 2,3 ==> tmp - BNH @@L7 - LA 4,1(0,0) ==> carry -@@L7 EQU * - LR 3,15 ==> i - MH 3,=H'2' - N 2,=F'65535' - STH 2,0(3,5) ==> .array - BCTR 15,0 ==> i - LTR 15,15 ==> i - BNL @@L8 -@@L1 EQU * -* Function '__64_add' epilogue - PDPEPIL -* Function '__64_add' literal pool - DS 0D - LTORG -* Function '__64_add' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64ai32.c b/src/crent370/clib/@@64ai32.c deleted file mode 100644 index 80034a7..0000000 --- a/src/crent370/clib/@@64ai32.c +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_add_i32'"); -void __64_add_i32(__64* a, int32_t b, __64* c) -{ - __64 tmp; - - if (a && c) { - /* make tmp value positive */ - __64_from_u32(&tmp, (uint32_t) (b < 0 ? -b : b)); - if (b < 0) { - __64_sub(a, &tmp, c); - } - else { - __64_add(a, &tmp, c); - } - } -} - diff --git a/src/crent370/clib/@@64ai32.o b/src/crent370/clib/@@64ai32.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64ai32.s b/src/crent370/clib/@@64ai32.s deleted file mode 100644 index d3d74a9..0000000 --- a/src/crent370/clib/@@64ai32.s +++ /dev/null @@ -1,81 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64ai32.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_add_i32' -* Program text area - DS 0F - EJECT -* external function '__64_add_i32' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__64_add_i32' -@@64AI32 PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_add_i32' code - L 3,0(11) ==> a - L 5,4(11) ==> b - L 4,8(11) ==> c - LTR 3,3 ==> a - BE @@L1 - LTR 4,4 ==> c - BE @@L1 - LA 2,104(,13) - ST 2,88(13) - LPR 2,5 ==> b - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@64FU32) - BALR 14,15 - LTR 5,5 ==> b - BNL @@L3 - ST 3,88(13) ==> a - LA 2,104(,13) - ST 2,92(13) - ST 4,96(13) ==> c - LA 1,88(,13) - L 15,=V(@@64SUB) - BALR 14,15 - B @@L1 -@@L3 EQU * - ST 3,88(13) ==> a - LA 2,104(,13) - ST 2,92(13) - ST 4,96(13) ==> c - LA 1,88(,13) - L 15,=V(@@64ADD) - BALR 14,15 -@@L1 EQU * -* Function '__64_add_i32' epilogue - PDPEPIL -* Function '__64_add_i32' literal pool - DS 0D - LTORG -* Function '__64_add_i32' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64and.c b/src/crent370/clib/@@64and.c deleted file mode 100644 index 445b68f..0000000 --- a/src/crent370/clib/@@64and.c +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_and'"); -void __64_and(__64* a, __64* b, __64* c) -{ - if (a && b && c) { -#if 1 /* gccmvs can AND 64 bit values */ - c->u64 = a->u64 & b->u64; -#else - int i; - - for (i = 0; i < __64_ARRAY_SIZE; ++i) { - c->array[i] = (a->array[i] & b->array[i]); - } -#endif - } -} - diff --git a/src/crent370/clib/@@64and.o b/src/crent370/clib/@@64and.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64and.s b/src/crent370/clib/@@64and.s deleted file mode 100644 index 215b692..0000000 --- a/src/crent370/clib/@@64and.s +++ /dev/null @@ -1,64 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64and.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_and' -* Program text area - DS 0F - EJECT -* external function '__64_and' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__64_and' -@@64AND PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_and' code - L 4,0(11) ==> a - L 15,4(11) ==> b - L 5,8(11) ==> c - LTR 4,4 ==> a - BE @@L1 - LTR 15,15 ==> b - BE @@L1 - LTR 5,5 ==> c - BE @@L1 - L 2,0(4) ==> .u64 - N 2,0(15) ==> .u64 - L 3,4(4) ==> .u64 - N 3,4(15) ==> .u64 - ST 2,0(5) ==> .u64 - ST 3,4+0(5) ==> .u64 -@@L1 EQU * -* Function '__64_and' epilogue - PDPEPIL -* Function '__64_and' literal pool - DS 0D - LTORG -* Function '__64_and' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64au32.c b/src/crent370/clib/@@64au32.c deleted file mode 100644 index 6c7ceac..0000000 --- a/src/crent370/clib/@@64au32.c +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_add_u32'"); -void __64_add_u32(__64* a, uint32_t b, __64* c) -{ - __64 tmp; - - if (a && c) { - __64_from_u32(&tmp, b); - __64_add(a, &tmp, c); - } -} - diff --git a/src/crent370/clib/@@64au32.o b/src/crent370/clib/@@64au32.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64au32.s b/src/crent370/clib/@@64au32.s deleted file mode 100644 index 3ec2d3f..0000000 --- a/src/crent370/clib/@@64au32.s +++ /dev/null @@ -1,68 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64au32.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_add_u32' -* Program text area - DS 0F - EJECT -* external function '__64_add_u32' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__64_add_u32' -@@64AU32 PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_add_u32' code - L 3,0(11) ==> a - L 4,8(11) ==> c - LTR 3,3 ==> a - BE @@L1 - LTR 4,4 ==> c - BE @@L1 - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),4(11) ==> b - LA 1,88(,13) - L 15,=V(@@64FU32) - BALR 14,15 - ST 3,88(13) ==> a - LA 2,104(,13) - ST 2,92(13) - ST 4,96(13) ==> c - LA 1,88(,13) - L 15,=V(@@64ADD) - BALR 14,15 -@@L1 EQU * -* Function '__64_add_u32' epilogue - PDPEPIL -* Function '__64_add_u32' literal pool - DS 0D - LTORG -* Function '__64_add_u32' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64au64.c b/src/crent370/clib/@@64au64.c deleted file mode 100644 index 9d4b630..0000000 --- a/src/crent370/clib/@@64au64.c +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_add_u64'"); -void __64_add_u64(__64* a, uint64_t b, __64* c) -{ - __64 tmp; - - if (a && c) { - __64_from_u64(&tmp, b); - __64_add(a, &tmp, c); - } -} - diff --git a/src/crent370/clib/@@64au64.o b/src/crent370/clib/@@64au64.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64au64.s b/src/crent370/clib/@@64au64.s deleted file mode 100644 index a84deac..0000000 --- a/src/crent370/clib/@@64au64.s +++ /dev/null @@ -1,71 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64au64.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_add_u64' -* Program text area - DS 0F - EJECT -* external function '__64_add_u64' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__64_add_u64' -@@64AU64 PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_add_u64' code - L 3,0(11) ==> a - L 4,4(11) ==> b - L 5,4+4(11) ==> b - L 6,12(11) ==> c - LTR 3,3 ==> a - BE @@L1 - LTR 6,6 ==> c - BE @@L1 - LA 2,104(,13) - ST 2,88(13) - ST 4,92(13) ==> b - ST 5,4+92(13) ==> b - LA 1,88(,13) - L 15,=V(@@64FU64) - BALR 14,15 - ST 3,88(13) ==> a - LA 2,104(,13) - ST 2,92(13) - ST 6,96(13) ==> c - LA 1,88(,13) - L 15,=V(@@64ADD) - BALR 14,15 -@@L1 EQU * -* Function '__64_add_u64' epilogue - PDPEPIL -* Function '__64_add_u64' literal pool - DS 0D - LTORG -* Function '__64_add_u64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64ci32.c b/src/crent370/clib/@@64ci32.c deleted file mode 100644 index 7c24b6b..0000000 --- a/src/crent370/clib/@@64ci32.c +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_cmp_i32'"); -int __64_cmp_i32(__64* a, int32_t b) -{ - __64 tmp; - - __64_from_i32(&tmp, b); - - return __64_cmp(a, &tmp); -} - diff --git a/src/crent370/clib/@@64ci32.o b/src/crent370/clib/@@64ci32.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64ci32.s b/src/crent370/clib/@@64ci32.s deleted file mode 100644 index 318428e..0000000 --- a/src/crent370/clib/@@64ci32.s +++ /dev/null @@ -1,60 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64ci32.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_cmp_i32' -* Program text area - DS 0F - EJECT -* external function '__64_cmp_i32' prologue -* frame base=88, local stack=8, call args=8 -&FUNC SETC '__64_cmp_i32' -@@64CI32 PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_cmp_i32' code - LA 2,96(,13) - ST 2,88(13) - MVC 92(4,13),4(11) ==> b - LA 1,88(,13) - L 15,=V(@@64FI32) - BALR 14,15 - MVC 88(4,13),0(11) ==> a - LA 2,96(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@64CMP) - BALR 14,15 -* Function '__64_cmp_i32' epilogue - PDPEPIL -* Function '__64_cmp_i32' literal pool - DS 0D - LTORG -* Function '__64_cmp_i32' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64cmp.c b/src/crent370/clib/@@64cmp.c deleted file mode 100644 index f665b25..0000000 --- a/src/crent370/clib/@@64cmp.c +++ /dev/null @@ -1,52 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_cmp'"); -int __64_cmp(__64* a, __64* b) -{ - int i; - - if (a && b) { -#if 1 /* gccmvs can compare 64 bit values */ - __asm__("DS\t0H\tif (a->u64 > b->u64) return __64_LARGER;"); - if (a->u64 > b->u64) return __64_LARGER; - __asm__("DS\t0H\tif (a->u64 < b->u64) return __64_SMALLER;"); - if (a->u64 < b->u64) return __64_SMALLER; -#else - for(i=0; i < __64_ARRAY_SIZE; i++) { - if (a->array[i] > b->array[i]) { - return __64_LARGER; - } - else if (a->array[i] < b->array[i]) { - return __64_SMALLER; - } - } -#endif - } - - __asm__("DS\t0H\treturn __64_EQUAL;"); - return __64_EQUAL; -} -#if 0 -int __64_cmp(__64* a, __64* b) -{ - if (a && b) { - int i = __64_ARRAY_SIZE; - - do { - i -= 1; /* Decrement first, to start with last array element */ - - if (a->array[i] > b->array[i]) { - return __64_LARGER; - } - else if (a->array[i] < b->array[i]) { - return __64_SMALLER; - } - } while (i != 0); - } - - return __64_EQUAL; -} -#endif - diff --git a/src/crent370/clib/@@64cmp.o b/src/crent370/clib/@@64cmp.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64cmp.s b/src/crent370/clib/@@64cmp.s deleted file mode 100644 index b1cb5fe..0000000 --- a/src/crent370/clib/@@64cmp.s +++ /dev/null @@ -1,81 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64cmp.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_cmp' -* Program text area - DS 0F - EJECT -* external function '__64_cmp' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__64_cmp' -@@64CMP PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_cmp' code - L 3,0(11) ==> a - L 15,4(11) ==> b - LTR 3,3 ==> a - BE @@L2 - LTR 15,15 ==> b - BE @@L2 - DS 0H if (a->u64 > b->u64) return __64_LARGER; - L 2,0(3) ==> .u64 - CL 2,0(15) ==> .u64 - BH @@L4 - BNE @@L3 - L 2,4(3) ==> .u64 - CL 2,4(15) ==> .u64 - BNH @@L3 -@@L4 EQU * - LA 15,1(0,0) - B @@L1 -@@L3 EQU * - DS 0H if (a->u64 < b->u64) return __64_SMALLER; - L 2,0(15) ==> .u64 - CL 2,0(3) ==> .u64 - BH @@L6 - BNE @@L2 - L 2,4(15) ==> .u64 - CL 2,4(3) ==> .u64 - BNH @@L2 -@@L6 EQU * - L 15,=F'-1' - B @@L1 -@@L2 EQU * - DS 0H return __64_EQUAL; - SLR 15,15 -@@L1 EQU * -* Function '__64_cmp' epilogue - PDPEPIL -* Function '__64_cmp' literal pool - DS 0D - LTORG -* Function '__64_cmp' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64copy.c b/src/crent370/clib/@@64copy.c deleted file mode 100644 index e4f1947..0000000 --- a/src/crent370/clib/@@64copy.c +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_copy'"); -void __64_copy(__64 *src, __64* dst) -{ - if (src && dst) { -#if 1 /* gccmvs can copy 64 bit values */ - dst->u64 = src->u64; -#else - int i; - - for (i = 0; i < __64_ARRAY_SIZE; ++i) { - dst->array[i] = src->array[i]; - } -#endif - } -} - diff --git a/src/crent370/clib/@@64copy.o b/src/crent370/clib/@@64copy.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64copy.s b/src/crent370/clib/@@64copy.s deleted file mode 100644 index 5a1f6ca..0000000 --- a/src/crent370/clib/@@64copy.s +++ /dev/null @@ -1,56 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64copy.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_copy' -* Program text area - DS 0F - EJECT -* external function '__64_copy' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__64_copy' -@@64COPY PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_copy' code - L 2,0(11) ==> src - L 15,4(11) ==> dst - LTR 2,2 ==> src - BE @@L1 - LTR 15,15 ==> dst - BE @@L1 - MVC 0(8,15),0(2) ==> .u64 -@@L1 EQU * -* Function '__64_copy' epilogue - PDPEPIL -* Function '__64_copy' literal pool - DS 0D - LTORG -* Function '__64_copy' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64cu32.c b/src/crent370/clib/@@64cu32.c deleted file mode 100644 index f4b7917..0000000 --- a/src/crent370/clib/@@64cu32.c +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_cmp_u32'"); -int __64_cmp_u32(__64* a, uint32_t b) -{ - __64 tmp; - - __64_from_u32(&tmp, b); - - return __64_cmp(a, &tmp); -} - diff --git a/src/crent370/clib/@@64cu32.o b/src/crent370/clib/@@64cu32.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64cu32.s b/src/crent370/clib/@@64cu32.s deleted file mode 100644 index b3d9bd4..0000000 --- a/src/crent370/clib/@@64cu32.s +++ /dev/null @@ -1,60 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64cu32.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_cmp_u32' -* Program text area - DS 0F - EJECT -* external function '__64_cmp_u32' prologue -* frame base=88, local stack=8, call args=8 -&FUNC SETC '__64_cmp_u32' -@@64CU32 PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_cmp_u32' code - LA 2,96(,13) - ST 2,88(13) - MVC 92(4,13),4(11) ==> b - LA 1,88(,13) - L 15,=V(@@64FU32) - BALR 14,15 - MVC 88(4,13),0(11) ==> a - LA 2,96(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@64CMP) - BALR 14,15 -* Function '__64_cmp_u32' epilogue - PDPEPIL -* Function '__64_cmp_u32' literal pool - DS 0D - LTORG -* Function '__64_cmp_u32' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64cu64.c b/src/crent370/clib/@@64cu64.c deleted file mode 100644 index 3749371..0000000 --- a/src/crent370/clib/@@64cu64.c +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_cmp_u64'"); -int __64_cmp_u64(__64* a, uint64_t b) -{ - __64 tmp; - - __64_from_u64(&tmp, b); - - return __64_cmp(a, &tmp); -} - diff --git a/src/crent370/clib/@@64cu64.o b/src/crent370/clib/@@64cu64.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64cu64.s b/src/crent370/clib/@@64cu64.s deleted file mode 100644 index c75c4c0..0000000 --- a/src/crent370/clib/@@64cu64.s +++ /dev/null @@ -1,60 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64cu64.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_cmp_u64' -* Program text area - DS 0F - EJECT -* external function '__64_cmp_u64' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__64_cmp_u64' -@@64CU64 PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_cmp_u64' code - LA 2,104(,13) - ST 2,88(13) - MVC 92(8,13),4(11) ==> b - LA 1,88(,13) - L 15,=V(@@64FU64) - BALR 14,15 - MVC 88(4,13),0(11) ==> a - LA 2,104(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@64CMP) - BALR 14,15 -* Function '__64_cmp_u64' epilogue - PDPEPIL -* Function '__64_cmp_u64' literal pool - DS 0D - LTORG -* Function '__64_cmp_u64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64dec.c b/src/crent370/clib/@@64dec.c deleted file mode 100644 index 5bb1697..0000000 --- a/src/crent370/clib/@@64dec.c +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_dec'"); -void __64_dec(__64* n) -{ - - if (n) { -#if 0 /* gccmvs can't decrement 64 bit values */ - n->u64--; -#else - __64_DTYPE tmp; /* copy of n */ - __64_DTYPE res; - int i; - - for (i = __64_ARRAY_SIZE - 1; i >= 0; i--) { - tmp = n->array[i]; - res = tmp - 1; - n->array[i] = res; - - if (!(res > tmp)) { - /* no borrow needed, we're done */ - break; - } - } -#endif - } -} - diff --git a/src/crent370/clib/@@64dec.o b/src/crent370/clib/@@64dec.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64dec.s b/src/crent370/clib/@@64dec.s deleted file mode 100644 index e8b9ac9..0000000 --- a/src/crent370/clib/@@64dec.s +++ /dev/null @@ -1,66 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64dec.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_dec' -* Program text area - DS 0F - EJECT -* external function '__64_dec' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__64_dec' -@@64DEC PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_dec' code - L 5,0(11) ==> n - LTR 5,5 ==> n - BE @@L1 - LA 15,3(0,0) ==> i -@@L8 EQU * - LR 2,15 ==> i - MH 2,=H'2' - LH 4,0(2,5) ==> tmp,array - LR 3,4 ==> res,tmp - BCTR 3,0 ==> res - STH 3,0(2,5) ==> res,array - STH 4,80(,13) ==> tmp - CLM 3,3,80(13) ==> res - BNH @@L1 - BCTR 15,0 ==> i - LTR 15,15 ==> i - BNL @@L8 -@@L1 EQU * -* Function '__64_dec' epilogue - PDPEPIL -* Function '__64_dec' literal pool - DS 0D - LTORG -* Function '__64_dec' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64di32.c b/src/crent370/clib/@@64di32.c deleted file mode 100644 index 3036bac..0000000 --- a/src/crent370/clib/@@64di32.c +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_div_i32'"); -void __64_div_i32(__64* a, int32_t b, __64* c) -{ - __64 tmp; - - if (a && c) { - __64_from_u32(&tmp, (uint32_t) (b < 0 ? -b : b)); - if (b < 0) { - __64_mul(a, &tmp, c); - } - else { - __64_div(a, &tmp, c); - } - } -} - diff --git a/src/crent370/clib/@@64di32.o b/src/crent370/clib/@@64di32.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64di32.s b/src/crent370/clib/@@64di32.s deleted file mode 100644 index af25d41..0000000 --- a/src/crent370/clib/@@64di32.s +++ /dev/null @@ -1,81 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64di32.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_div_i32' -* Program text area - DS 0F - EJECT -* external function '__64_div_i32' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__64_div_i32' -@@64DI32 PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_div_i32' code - L 3,0(11) ==> a - L 5,4(11) ==> b - L 4,8(11) ==> c - LTR 3,3 ==> a - BE @@L1 - LTR 4,4 ==> c - BE @@L1 - LA 2,104(,13) - ST 2,88(13) - LPR 2,5 ==> b - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@64FU32) - BALR 14,15 - LTR 5,5 ==> b - BNL @@L3 - ST 3,88(13) ==> a - LA 2,104(,13) - ST 2,92(13) - ST 4,96(13) ==> c - LA 1,88(,13) - L 15,=V(@@64MUL) - BALR 14,15 - B @@L1 -@@L3 EQU * - ST 3,88(13) ==> a - LA 2,104(,13) - ST 2,92(13) - ST 4,96(13) ==> c - LA 1,88(,13) - L 15,=V(@@64DIV) - BALR 14,15 -@@L1 EQU * -* Function '__64_div_i32' epilogue - PDPEPIL -* Function '__64_div_i32' literal pool - DS 0D - LTORG -* Function '__64_div_i32' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64div.c b/src/crent370/clib/@@64div.c deleted file mode 100644 index 1c4d7ea..0000000 --- a/src/crent370/clib/@@64div.c +++ /dev/null @@ -1,87 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_div'"); -void __64_div(__64* a, __64* b, __64* c) -{ - __64 current; - __64 denom; - __64 tmp; - const __64_DTYPE_TMP half_max = 1 + (__64_DTYPE_TMP)(__64_MAX_VAL / 2); - int overflow = 0; - - if (a && b && c) { - __64_from_i32(¤t, 1); // int current = 1; - __64_assign(&denom, b); // denom = b - __64_assign(&tmp, a); // tmp = a -#if 0 - wtodumpf(¤t, sizeof(__64), "%s: current", __func__); - wtodumpf(&denom, sizeof(__64), "%s: denom", __func__); - wtodumpf(&tmp, sizeof(__64), "%s: tmp", __func__); - wtof("%s: half_max=%u", __func__, half_max); - - wtof("%s: while (__64_cmp(&denom, a) != __64_LARGER) {", __func__); -#endif - while (__64_cmp(&denom, a) != __64_LARGER) { // while (denom <= a) { - if (denom.array[0] >= half_max) { - overflow = 1; - break; - } - - __64_lshift_one_bit(¤t); // current <<= 1; - /* wtodumpf(¤t, sizeof(__64), "%s: current <<=1", __func__); */ - - __64_lshift_one_bit(&denom); // denom <<= 1; - /* wtodumpf(&denom, sizeof(__64), "%s: denom <<=1", __func__); */ - } -#if 0 - wtof("%s: }", __func__); - - wtof("%s: if (!overflow) { // overflow=%d", __func__, overflow); -#endif - if (!overflow) { - __64_rshift_one_bit(&denom); // denom >>= 1; - /* wtodumpf(&denom, sizeof(__64), "%s: denom >>=1", __func__); */ - __64_rshift_one_bit(¤t); // current >>= 1; - /* wtodumpf(¤t, sizeof(__64), "%s: current >>=1", __func__); */ - } - /* wtof("%s: }", __func__); */ - - __64_init(c); // int answer = 0; -#if 0 - wtodumpf(c, sizeof(__64), "%s: c", __func__); - - wtof("%s: while (!__64_is_zero(¤t)) {", __func__); -#endif - while (!__64_is_zero(¤t)) { // while (current != 0) - /* wtof("%s: if (__64_cmp(&tmp, &denom) != __64_SMALLER) {", __func__); */ - if (__64_cmp(&tmp, &denom) != __64_SMALLER) { // if (dividend >= denom) -#if 0 - wtof("%s: __64_sub()", __func__); - wtodumpf(&tmp, sizeof(__64), "%s: tmp", __func__); - wtodumpf(&denom, sizeof(__64), "%s: denom", __func__); -#endif - __64_sub(&tmp, &denom, &tmp); // dividend -= denom; -#if 0 - wtodumpf(&tmp, sizeof(__64), "%s: tmp", __func__); - - wtof("%s: __64_or()", __func__); - wtodumpf(c, sizeof(__64), "%s: c", __func__); - wtodumpf(¤t, sizeof(__64), "%s: current", __func__); -#endif - __64_or(c, ¤t, c); // answer |= current; - /* wtodumpf(c, sizeof(__64), "%s: c", __func__); */ - } - /* wtof("%s: }", __func__); */ - - __64_rshift_one_bit(¤t); // current >>= 1; - /* wtodumpf(¤t, sizeof(__64), "%s: current >>=1", __func__); */ - - __64_rshift_one_bit(&denom); // denom >>= 1; - /* wtodumpf(&denom, sizeof(__64), "%s: denom >>=1", __func__); */ - } // return answer; - /* wtof("%s: }", __func__); */ - } -} - diff --git a/src/crent370/clib/@@64div.o b/src/crent370/clib/@@64div.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64div.s b/src/crent370/clib/@@64div.s deleted file mode 100644 index ed32762..0000000 --- a/src/crent370/clib/@@64div.s +++ /dev/null @@ -1,170 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64div.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_div' -* Program text area - DS 0F - EJECT -* external function '__64_div' prologue -* frame base=88, local stack=24, call args=16 -&FUNC SETC '__64_div' -@@64DIV PDPPRLG CINDEX=0,FRAME=128,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_div' code - L 3,0(11) ==> a - L 4,4(11) ==> b - L 5,8(11) ==> c - SLR 6,6 ==> overflow - LTR 3,3 ==> a - BE @@L1 - LTR 4,4 ==> b - BE @@L1 - LTR 5,5 ==> c - BE @@L1 - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=F'1' - LA 1,88(,13) - L 15,=V(@@64FI32) - BALR 14,15 - ST 4,88(13) ==> b - LA 2,112(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@64COPY) - BALR 14,15 - ST 3,88(13) ==> a - LA 2,120(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@64COPY) - BALR 14,15 - B @@L3 -@@L7 EQU * - LH 2,112(13) - CLM 2,3,=H'32767' - BNH @@L6 - LA 6,1(0,0) ==> overflow - B @@L4 -@@L6 EQU * - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64LSH1) - BALR 14,15 - LA 2,112(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64LSH1) - BALR 14,15 -@@L3 EQU * - LA 2,112(,13) - ST 2,88(13) - ST 3,92(13) ==> a - LA 1,88(,13) - L 15,=V(@@64CMP) - BALR 14,15 - LA 2,1(0,0) - CLR 15,2 - BNE @@L7 -@@L4 EQU * - LTR 6,6 ==> overflow - BNE @@L8 - LA 2,112(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64RSH1) - BALR 14,15 - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64RSH1) - BALR 14,15 -@@L8 EQU * - ST 5,88(13) ==> c - LA 1,88(,13) - L 15,=V(@@64INIT) - BALR 14,15 - B @@L9 -@@L13 EQU * - LA 2,120(,13) - ST 2,88(13) - LA 2,112(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@64CMP) - BALR 14,15 - L 2,=F'-1' - CLR 15,2 - BE @@L12 - LA 2,120(,13) - ST 2,88(13) - LA 2,112(,13) - ST 2,92(13) - LA 2,120(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64SUB) - BALR 14,15 - ST 5,88(13) ==> c - LA 2,104(,13) - ST 2,92(13) - ST 5,96(13) ==> c - LA 1,88(,13) - L 15,=V(@@64OR) - BALR 14,15 -@@L12 EQU * - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64RSH1) - BALR 14,15 - LA 2,112(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64RSH1) - BALR 14,15 -@@L9 EQU * - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64IS0) - BALR 14,15 - LTR 15,15 - BE @@L13 -@@L1 EQU * -* Function '__64_div' epilogue - PDPEPIL -* Function '__64_div' literal pool - DS 0D - LTORG -* Function '__64_div' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64dmod.c b/src/crent370/clib/@@64dmod.c deleted file mode 100644 index ccf07ba..0000000 --- a/src/crent370/clib/@@64dmod.c +++ /dev/null @@ -1,34 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_divmod'"); -void __64_divmod(__64* a, __64* b, __64* c, __64* d) -{ - /* - Puts a%b in d - and a/b in c - - mod(a,b) = a - ((a / b) * b) - - example: - mod(8, 3) = 8 - ((8 / 3) * 3) = 2 - */ - if (a && b && c && d) { - __64 tmp; - __64 tmpc; - - /* tmpc = (a / b) */ - __64_div(a, b, &tmpc); - - /* tmp = (tmpc * b) */ - __64_mul(&tmpc, b, &tmp); - - /* d = a - tmp */ - __64_sub(a, &tmp, d); - - /* c = tmpc */ - __64_copy(&tmpc, c); - } -} - diff --git a/src/crent370/clib/@@64dmod.o b/src/crent370/clib/@@64dmod.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64dmod.s b/src/crent370/clib/@@64dmod.s deleted file mode 100644 index c186348..0000000 --- a/src/crent370/clib/@@64dmod.s +++ /dev/null @@ -1,89 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64dmod.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_divmod' -* Program text area - DS 0F - EJECT -* external function '__64_divmod' prologue -* frame base=88, local stack=16, call args=16 -&FUNC SETC '__64_divmod' -@@64DMOD PDPPRLG CINDEX=0,FRAME=120,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_divmod' code - L 4,0(11) ==> a - L 3,4(11) ==> b - L 6,8(11) ==> c - L 5,12(11) ==> d - LTR 4,4 ==> a - BE @@L1 - LTR 3,3 ==> b - BE @@L1 - LTR 6,6 ==> c - BE @@L1 - LTR 5,5 ==> d - BE @@L1 - ST 4,88(13) ==> a - ST 3,92(13) ==> b - LA 2,104(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64DIV) - BALR 14,15 - LA 2,104(,13) - ST 2,88(13) - ST 3,92(13) ==> b - LA 2,112(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64MUL) - BALR 14,15 - ST 4,88(13) ==> a - LA 2,112(,13) - ST 2,92(13) - ST 5,96(13) ==> d - LA 1,88(,13) - L 15,=V(@@64SUB) - BALR 14,15 - LA 2,104(,13) - ST 2,88(13) - ST 6,92(13) ==> c - LA 1,88(,13) - L 15,=V(@@64COPY) - BALR 14,15 -@@L1 EQU * -* Function '__64_divmod' epilogue - PDPEPIL -* Function '__64_divmod' literal pool - DS 0D - LTORG -* Function '__64_divmod' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64dmou.c b/src/crent370/clib/@@64dmou.c deleted file mode 100644 index d5faee2..0000000 --- a/src/crent370/clib/@@64dmou.c +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_divmod_ull'"); -void __64_divmod_ull(__64* a, uint64_t b, __64* c, __64* d) -{ - __64 tmp; - - if (a && c && d) { - __64_from_ull(&tmp, b); - __64_divmod(a, &tmp, c, d); - } -} - diff --git a/src/crent370/clib/@@64dmou.o b/src/crent370/clib/@@64dmou.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64du32.c b/src/crent370/clib/@@64du32.c deleted file mode 100644 index 90d9797..0000000 --- a/src/crent370/clib/@@64du32.c +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_div_u32'"); -void __64_div_u32(__64* a, uint32_t b, __64* c) -{ - __64 tmp; - - if (a && c) { - __64_from_u32(&tmp, b); - __64_div(a, &tmp, c); - } -} - diff --git a/src/crent370/clib/@@64du32.o b/src/crent370/clib/@@64du32.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64du32.s b/src/crent370/clib/@@64du32.s deleted file mode 100644 index 549a679..0000000 --- a/src/crent370/clib/@@64du32.s +++ /dev/null @@ -1,68 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64du32.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_div_u32' -* Program text area - DS 0F - EJECT -* external function '__64_div_u32' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__64_div_u32' -@@64DU32 PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_div_u32' code - L 3,0(11) ==> a - L 4,8(11) ==> c - LTR 3,3 ==> a - BE @@L1 - LTR 4,4 ==> c - BE @@L1 - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),4(11) ==> b - LA 1,88(,13) - L 15,=V(@@64FU32) - BALR 14,15 - ST 3,88(13) ==> a - LA 2,104(,13) - ST 2,92(13) - ST 4,96(13) ==> c - LA 1,88(,13) - L 15,=V(@@64DIV) - BALR 14,15 -@@L1 EQU * -* Function '__64_div_u32' epilogue - PDPEPIL -* Function '__64_div_u32' literal pool - DS 0D - LTORG -* Function '__64_div_u32' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64du64.c b/src/crent370/clib/@@64du64.c deleted file mode 100644 index fccec79..0000000 --- a/src/crent370/clib/@@64du64.c +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_div_u64'"); -void __64_div_u64(__64* a, uint64_t b, __64* c) -{ - __64 tmp; - - if (a && c) { - __64_from_u64(&tmp, b); - __64_div(a, &tmp, c); - } -} - diff --git a/src/crent370/clib/@@64du64.o b/src/crent370/clib/@@64du64.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64du64.s b/src/crent370/clib/@@64du64.s deleted file mode 100644 index c047658..0000000 --- a/src/crent370/clib/@@64du64.s +++ /dev/null @@ -1,71 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64du64.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_div_u64' -* Program text area - DS 0F - EJECT -* external function '__64_div_u64' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__64_div_u64' -@@64DU64 PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_div_u64' code - L 3,0(11) ==> a - L 4,4(11) ==> b - L 5,4+4(11) ==> b - L 6,12(11) ==> c - LTR 3,3 ==> a - BE @@L1 - LTR 6,6 ==> c - BE @@L1 - LA 2,104(,13) - ST 2,88(13) - ST 4,92(13) ==> b - ST 5,4+92(13) ==> b - LA 1,88(,13) - L 15,=V(@@64FU64) - BALR 14,15 - ST 3,88(13) ==> a - LA 2,104(,13) - ST 2,92(13) - ST 6,96(13) ==> c - LA 1,88(,13) - L 15,=V(@@64DIV) - BALR 14,15 -@@L1 EQU * -* Function '__64_div_u64' epilogue - PDPEPIL -* Function '__64_div_u64' literal pool - DS 0D - LTORG -* Function '__64_div_u64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64fi32.c b/src/crent370/clib/@@64fi32.c deleted file mode 100644 index 9cccff1..0000000 --- a/src/crent370/clib/@@64fi32.c +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include "clib64.h" - -__asm__("\n&FUNC SETC '__64_from_i32'"); -void __64_from_i32(__64* n, int32_t i) -{ - if (n) { - n->u32[0] = 0; - n->u32[1] = 0; - if (i < 0) { - __64_sub_u32(n, (uint32_t)(-i), n); /* make i positive value */ - } - else { - n->u32[1] = (uint32_t)i; - } - } -} - diff --git a/src/crent370/clib/@@64fi32.o b/src/crent370/clib/@@64fi32.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64fi32.s b/src/crent370/clib/@@64fi32.s deleted file mode 100644 index 855e8aa..0000000 --- a/src/crent370/clib/@@64fi32.s +++ /dev/null @@ -1,67 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64fi32.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_from_i32' -* Program text area - DS 0F - EJECT -* external function '__64_from_i32' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__64_from_i32' -@@64FI32 PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_from_i32' code - L 15,0(11) ==> n - L 2,4(11) ==> i - LTR 15,15 ==> n - BE @@L1 - MVC 0(4,15),=F'0' ==> .u32 - MVC 4(4,15),=F'0' ==> .u32 - LTR 2,2 ==> i - BNL @@L3 - ST 15,88(13) ==> n - LCR 2,2 ==> i - ST 2,92(13) - ST 15,96(13) ==> n - LA 1,88(,13) - L 15,=V(@@64SU32) - BALR 14,15 - B @@L1 -@@L3 EQU * - ST 2,4(15) ==> i,u32 -@@L1 EQU * -* Function '__64_from_i32' epilogue - PDPEPIL -* Function '__64_from_i32' literal pool - DS 0D - LTORG -* Function '__64_from_i32' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64fstr.c b/src/crent370/clib/@@64fstr.c deleted file mode 100644 index 3a26044..0000000 --- a/src/crent370/clib/@@64fstr.c +++ /dev/null @@ -1,49 +0,0 @@ -#include -#include -#include - -#define binary "01" -#define digits "0123456789" -#define hexstr "0123456789abcdef" - -__asm__("\n&FUNC SETC '__64_from_string'"); -void __64_from_string(__64* n, char* str) -{ - __64 base; - __64_DTYPE tmp; - int c; - char *p; - char *table; - - /* skip any leading space */ - while(*str==' ') str++; - - if (memcmp(str, "0x", 2)==0) { - table = hexstr; - __64_from_i32(&base, 16); - str+=2; - } - else if (memcmp(str, "0b", 2)==0) { - table = binary; - __64_from_i32(&base, 2); - str++; - } - else { - table = digits; - __64_from_i32(&base, 10); - } - - if (n) { - __64_init(n); - - for(;*str;str++) { - c = tolower(*str); - p = strchr(table, c); - if (!p) break; - tmp = (__64_DTYPE) (p - table); - __64_mul(n, &base, n); - n->array[__64_ARRAY_SIZE-1] += tmp; - } - } -} - diff --git a/src/crent370/clib/@@64fstr.o b/src/crent370/clib/@@64fstr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64fstr.s b/src/crent370/clib/@@64fstr.s deleted file mode 100644 index b29ec03..0000000 --- a/src/crent370/clib/@@64fstr.s +++ /dev/null @@ -1,157 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64fstr.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_from_string' -* Program text area - DS 0F - EJECT -* external function '__64_from_string' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__64_from_string' -@@64FSTR PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_from_string' code - L 5,0(11) ==> n - L 4,4(11) ==> str - CLI 0(4),64 ==> str - BNE @@L18 -@@L5 EQU * - A 4,=F'1' ==> str - CLI 0(4),64 ==> str - BE @@L5 -@@L18 EQU * - ST 4,88(13) ==> str - MVC 92(4,13),=A(@@LC0) - MVC 96(4,13),=F'2' - LA 1,88(,13) - L 15,=V(MEMCMP) - BALR 14,15 - LTR 15,15 ==> c - BNE @@L6 - L 6,=A(@@LC1) ==> table - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=F'16' - LA 1,88(,13) - L 15,=V(@@64FI32) - BALR 14,15 - A 4,=F'2' ==> str - B @@L7 -@@L6 EQU * - ST 4,88(13) ==> str - MVC 92(4,13),=A(@@LC2) - MVC 96(4,13),=F'2' - LA 1,88(,13) - L 15,=V(MEMCMP) - BALR 14,15 - LTR 15,15 ==> c - BNE @@L8 - L 6,=A(@@LC3) ==> table - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=F'2' - LA 1,88(,13) - L 15,=V(@@64FI32) - BALR 14,15 - A 4,=F'1' ==> str - B @@L7 -@@L8 EQU * - L 6,=A(@@LC4) ==> table - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=F'10' - LA 1,88(,13) - L 15,=V(@@64FI32) - BALR 14,15 -@@L7 EQU * - LTR 5,5 ==> n - BE @@L1 - ST 5,88(13) ==> n - LA 1,88(,13) - L 15,=V(@@64INIT) - BALR 14,15 - IC 2,0(4) ==> str - CLM 2,1,=XL1'00' - BE @@L1 -@@L16 EQU * - SLR 2,2 - IC 2,0(4) ==> str - ST 2,88(13) - LA 1,88(,13) - L 15,=V(TOLOWER) - BALR 14,15 - ST 6,88(13) ==> table - ST 15,92(13) ==> c - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LTR 15,15 ==> p - BE @@L1 - LR 2,15 ==> tmp,p - SR 2,6 ==> tmp,table - SLL 2,16 ==> tmp - SRA 2,16 ==> tmp - ST 5,88(13) ==> n - LA 3,104(,13) - ST 3,92(13) - ST 5,96(13) ==> n - LA 1,88(,13) - L 15,=V(@@64MUL) - BALR 14,15 - AH 2,6(5) ==> .array - STH 2,6(5) ==> .array - A 4,=F'1' ==> str - IC 2,0(4) ==> str - CLM 2,1,=XL1'00' - BNE @@L16 -@@L1 EQU * -* Function '__64_from_string' epilogue - PDPEPIL -* Function '__64_from_string' literal pool - DS 0D - LTORG -* Function '__64_from_string' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'0x' - DC X'0' -@@LC1 EQU * - DC C'0123456789abcdef' - DC X'0' -@@LC2 EQU * - DC C'0b' - DC X'0' -@@LC3 EQU * - DC C'01' - DC X'0' -@@LC4 EQU * - DC C'0123456789' - DC X'0' - END diff --git a/src/crent370/clib/@@64fu32.c b/src/crent370/clib/@@64fu32.c deleted file mode 100644 index 56ed74b..0000000 --- a/src/crent370/clib/@@64fu32.c +++ /dev/null @@ -1,12 +0,0 @@ -#include -#include "clib64.h" - -__asm__("\n&FUNC SETC '__64_from_u32'"); -void __64_from_u32(__64* n, uint32_t i) -{ - if (n) { - n->u32[0] = 0; - n->u32[1] = i; - } -} - diff --git a/src/crent370/clib/@@64fu32.o b/src/crent370/clib/@@64fu32.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64fu32.s b/src/crent370/clib/@@64fu32.s deleted file mode 100644 index a4234d7..0000000 --- a/src/crent370/clib/@@64fu32.s +++ /dev/null @@ -1,54 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64fu32.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_from_u32' -* Program text area - DS 0F - EJECT -* external function '__64_from_u32' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__64_from_u32' -@@64FU32 PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_from_u32' code - L 15,0(11) ==> n - LTR 15,15 ==> n - BE @@L1 - MVC 0(4,15),=F'0' ==> .u32 - MVC 4(4,15),4(11) ==> .u32,i -@@L1 EQU * -* Function '__64_from_u32' epilogue - PDPEPIL -* Function '__64_from_u32' literal pool - DS 0D - LTORG -* Function '__64_from_u32' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64fu64.c b/src/crent370/clib/@@64fu64.c deleted file mode 100644 index cd29697..0000000 --- a/src/crent370/clib/@@64fu64.c +++ /dev/null @@ -1,13 +0,0 @@ -#include -#include "clib64.h" - -__asm__("\n&FUNC SETC '__64_from_u64'"); -void __64_from_u64(__64* n, uint64_t u64) -{ - if (n) { - n->u64 = u64; - } - /* wtof("%s: n=%08X, u64=%016llX, n->u64=%016llX (%llu)", __func__, n, u64, *n, *n); */ -} - - diff --git a/src/crent370/clib/@@64fu64.o b/src/crent370/clib/@@64fu64.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64fu64.s b/src/crent370/clib/@@64fu64.s deleted file mode 100644 index 02cb2a6..0000000 --- a/src/crent370/clib/@@64fu64.s +++ /dev/null @@ -1,56 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64fu64.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_from_u64' -* Program text area - DS 0F - EJECT -* external function '__64_from_u64' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__64_from_u64' -@@64FU64 PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_from_u64' code - L 15,0(11) ==> n - L 2,4(11) ==> u64 - L 3,4+4(11) ==> u64 - LTR 15,15 ==> n - BE @@L1 - ST 2,0(15) ==> u64,u64 - ST 3,4+0(15) ==> u64,u64 -@@L1 EQU * -* Function '__64_from_u64' epilogue - PDPEPIL -* Function '__64_from_u64' literal pool - DS 0D - LTORG -* Function '__64_from_u64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64inc.c b/src/crent370/clib/@@64inc.c deleted file mode 100644 index cf85c03..0000000 --- a/src/crent370/clib/@@64inc.c +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_inc'"); -void __64_inc(__64* n) -{ - __64_DTYPE res; - __64_DTYPE_TMP tmp; /* copy of n */ - int i; - - if (n) { - for (i = __64_ARRAY_SIZE - 1; i >= 0; i--) { - tmp = n->array[i]; - res = tmp + 1; - n->array[i] = res; - - if (res > tmp) { - /* no overflow occured, we're done */ - break; - } - } - } -} - diff --git a/src/crent370/clib/@@64inc.o b/src/crent370/clib/@@64inc.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64inc.s b/src/crent370/clib/@@64inc.s deleted file mode 100644 index 8d57c45..0000000 --- a/src/crent370/clib/@@64inc.s +++ /dev/null @@ -1,69 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64inc.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_inc' -* Program text area - DS 0F - EJECT -* external function '__64_inc' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__64_inc' -@@64INC PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_inc' code - L 5,0(11) ==> n - LTR 5,5 ==> n - BE @@L1 - LA 15,3(0,0) ==> i -@@L8 EQU * - LR 2,15 ==> i - MH 2,=H'2' - LH 4,0(2,5) ==> .array - N 4,=XL4'0000FFFF' - LR 3,4 ==> res,tmp - A 3,=F'1' ==> res - SLL 3,16 ==> res - SRA 3,16 ==> res - STH 3,0(2,5) ==> res,array - N 3,=XL4'0000FFFF' ==> res - CLR 3,4 ==> res,tmp - BH @@L1 - BCTR 15,0 ==> i - LTR 15,15 ==> i - BNL @@L8 -@@L1 EQU * -* Function '__64_inc' epilogue - PDPEPIL -* Function '__64_inc' literal pool - DS 0D - LTORG -* Function '__64_inc' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64init.c b/src/crent370/clib/@@64init.c deleted file mode 100644 index af6b4b8..0000000 --- a/src/crent370/clib/@@64init.c +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include -#include - -/* Initialize __64 structure */ -__asm__("\n&FUNC SETC '__64_init'"); -void __64_init(__64* n) -{ -#if 1 /* a slightly faster method */ - n->u32[0] = 0; n->u32[1] = 0; /* memset(n, 0, sizeof(__64)); */ -#else - int i; - - if (n) { - for (i = 0; i < __64_ARRAY_SIZE; ++i) { - n->array[i] = 0; - } - } -#endif -} - diff --git a/src/crent370/clib/@@64init.o b/src/crent370/clib/@@64init.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64init.s b/src/crent370/clib/@@64init.s deleted file mode 100644 index feca167..0000000 --- a/src/crent370/clib/@@64init.s +++ /dev/null @@ -1,51 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64init.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_init' -* Program text area - DS 0F - EJECT -* external function '__64_init' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__64_init' -@@64INIT PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_init' code - L 2,0(11) ==> n - MVC 0(4,2),=F'0' ==> .u32 - MVC 4(4,2),=F'0' ==> .u32 -* Function '__64_init' epilogue - PDPEPIL -* Function '__64_init' literal pool - DS 0D - LTORG -* Function '__64_init' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64is0.c b/src/crent370/clib/@@64is0.c deleted file mode 100644 index dd36f51..0000000 --- a/src/crent370/clib/@@64is0.c +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_is_zero'"); -int __64_is_zero(__64* n) -{ - if (n) { -#if 1 /* gccmvs can test 64 bit values */ - if (n->u64) return 0; -#else - int i; - - for (i = 0; i < __64_ARRAY_SIZE; ++i) { - if (n->array[i]) { - return 0; - } - } -#endif - } - - return 1; -} - diff --git a/src/crent370/clib/@@64is0.o b/src/crent370/clib/@@64is0.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64is0.s b/src/crent370/clib/@@64is0.s deleted file mode 100644 index 126ed8e..0000000 --- a/src/crent370/clib/@@64is0.s +++ /dev/null @@ -1,59 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64is0.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_is_zero' -* Program text area - DS 0F - EJECT -* external function '__64_is_zero' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__64_is_zero' -@@64IS0 PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_is_zero' code - L 2,0(11) ==> n - LTR 2,2 ==> n - BE @@L2 - L 3,0(2) ==> .u64 - O 3,4(2) ==> .u64 - SLR 15,15 - LTR 3,3 - BNE @@L1 -@@L2 EQU * - LA 15,1(0,0) -@@L1 EQU * -* Function '__64_is_zero' epilogue - PDPEPIL -* Function '__64_is_zero' literal pool - DS 0D - LTORG -* Function '__64_is_zero' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64isqr.c b/src/crent370/clib/@@64isqr.c deleted file mode 100644 index 4e79978..0000000 --- a/src/crent370/clib/@@64isqr.c +++ /dev/null @@ -1,35 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_isqrt'"); -void __64_isqrt(__64 *a, __64* b) -{ - __64 low, high, mid, tmp; - - if (a && b) { - __64_init(&low); - __64_assign(&high, a); - __64_rshift(&high, &mid, 1); - __64_inc(&mid); - - while (__64_cmp(&high, &low) > 0) { - __64_mul(&mid, &mid, &tmp); - if (__64_cmp(&tmp, a) > 0) { - __64_assign(&high, &mid); - __64_dec(&high); - } - else { - __64_assign(&low, &mid); - } - - __64_sub(&high,&low,&mid); - __64_rshift_one_bit(&mid); - __64_add(&low,&mid,&mid); - __64_inc(&mid); - } - - __64_assign(b,&low); - } -} - diff --git a/src/crent370/clib/@@64isqr.o b/src/crent370/clib/@@64isqr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64isqr.s b/src/crent370/clib/@@64isqr.s deleted file mode 100644 index e764043..0000000 --- a/src/crent370/clib/@@64isqr.s +++ /dev/null @@ -1,157 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64isqr.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_isqrt' -* Program text area - DS 0F - EJECT -* external function '__64_isqrt' prologue -* frame base=88, local stack=32, call args=16 -&FUNC SETC '__64_isqrt' -@@64ISQR PDPPRLG CINDEX=0,FRAME=136,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_isqrt' code - L 3,0(11) ==> a - L 4,4(11) ==> b - LTR 3,3 ==> a - BE @@L1 - LTR 4,4 ==> b - BE @@L1 - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64INIT) - BALR 14,15 - ST 3,88(13) ==> a - LA 2,112(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@64COPY) - BALR 14,15 - LA 2,112(,13) - ST 2,88(13) - LA 2,120(,13) - ST 2,92(13) - MVC 96(4,13),=F'1' - LA 1,88(,13) - L 15,=V(@@64RSFT) - BALR 14,15 - B @@L9 -@@L8 EQU * - LA 2,120(,13) - ST 2,88(13) - ST 2,92(13) - LA 2,128(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64MUL) - BALR 14,15 - LA 2,128(,13) - ST 2,88(13) - ST 3,92(13) ==> a - LA 1,88(,13) - L 15,=V(@@64CMP) - BALR 14,15 - LTR 15,15 - BNH @@L6 - LA 2,120(,13) - ST 2,88(13) - LA 2,112(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@64COPY) - BALR 14,15 - LA 2,112(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64DEC) - BALR 14,15 - B @@L7 -@@L6 EQU * - LA 2,120(,13) - ST 2,88(13) - LA 2,104(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@64COPY) - BALR 14,15 -@@L7 EQU * - LA 2,112(,13) - ST 2,88(13) - LA 2,104(,13) - ST 2,92(13) - LA 2,120(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64SUB) - BALR 14,15 - LA 2,120(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64RSH1) - BALR 14,15 - LA 2,104(,13) - ST 2,88(13) - LA 2,120(,13) - ST 2,92(13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64ADD) - BALR 14,15 -@@L9 EQU * - LA 2,120(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64INC) - BALR 14,15 - LA 2,112(,13) - ST 2,88(13) - LA 2,104(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@64CMP) - BALR 14,15 - LTR 15,15 - BH @@L8 - LA 2,104(,13) - ST 2,88(13) - ST 4,92(13) ==> b - LA 1,88(,13) - L 15,=V(@@64COPY) - BALR 14,15 -@@L1 EQU * -* Function '__64_isqrt' epilogue - PDPEPIL -* Function '__64_isqrt' literal pool - DS 0D - LTORG -* Function '__64_isqrt' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64lsft.c b/src/crent370/clib/@@64lsft.c deleted file mode 100644 index ad58e38..0000000 --- a/src/crent370/clib/@@64lsft.c +++ /dev/null @@ -1,42 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_lshift'"); -void __64_lshift(__64* a, __64* b, int nbits) -{ - if (a && b && (nbits>=0)) { - int i; - const int nbits_pr_word = (__64_WORD_SIZE * 8); - int nwords = nbits / nbits_pr_word; - - __64_assign(b, a); - -#if 0 /* gccmvs uses SLDA which preserves the sign bit. This is incorrect for our unsigned value. */ - /* gccmvs *should* have used SLDL to perform a shift left double logical. */ - if (nbits>63) { - /* gccmvs uses SLDA for shift which is limited to 0 throough 63 for the shift value */ - __64_init(b); - } - else { - /* gccmvs uses SLDA which can shift up to 63 bits */ - b->u64 = a->u64 << nbits; - } -#else /* slower but correct results */ - - /* Handle shift in multiples of word-size */ - if (nwords != 0) { - __64_lshift_word(b, nwords); - nbits -= (nwords * nbits_pr_word); - } - - if (nbits != 0) { - for (i=0; i < (__64_ARRAY_SIZE - 1); i++) { - b->array[i] = (b->array[i] << nbits) | (b->array[i + 1] >> ((8 * __64_WORD_SIZE) - nbits)); - } - b->array[i] <<= nbits; - } -#endif - } -} - diff --git a/src/crent370/clib/@@64lsft.o b/src/crent370/clib/@@64lsft.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64lsft.s b/src/crent370/clib/@@64lsft.s deleted file mode 100644 index ef8763a..0000000 --- a/src/crent370/clib/@@64lsft.s +++ /dev/null @@ -1,103 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64lsft.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_lshift' -* Program text area - DS 0F - EJECT -* external function '__64_lshift' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC '__64_lshift' -@@64LSFT PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_lshift' code - L 3,0(11) ==> a - L 6,4(11) ==> b - L 5,8(11) ==> nbits - LTR 3,3 ==> a - BE @@L1 - LTR 6,6 ==> b - BE @@L1 - LTR 5,5 ==> nbits - BL @@L1 - LR 2,5 ==> nwords,nbits - SRA 2,4 ==> nwords - ST 3,88(13) ==> a - ST 6,92(13) ==> b - LA 1,88(,13) - L 15,=V(@@64COPY) - BALR 14,15 - LTR 2,2 ==> nwords - BE @@L4 - ST 6,88(13) ==> b - ST 2,92(13) ==> nwords - LA 1,88(,13) - L 15,=V(@@64LSHW) - BALR 14,15 - MH 2,=H'16' - SR 5,2 ==> nbits -@@L4 EQU * - LTR 5,5 ==> nbits - BE @@L1 - SLR 15,15 ==> i - LA 8,2(0,0) - LA 7,16(0,0) - SR 7,5 ==> nbits -@@L10 EQU * - LR 4,15 ==> i - MH 4,=H'2' - LH 3,0(4,6) ==> .array - N 3,=XL4'0000FFFF' - SLL 3,0(5) ==> nbits - AR 4,6 ==> b - LH 2,0(8,4) ==> .array - N 2,=XL4'0000FFFF' - SRA 2,0(7) - OR 3,2 - STH 3,0(4) ==> .array - A 15,=F'1' ==> i - LA 2,2(0,0) - CR 15,2 ==> i - BNH @@L10 - LR 3,15 ==> i - MH 3,=H'2' - LH 2,0(3,6) ==> .array - N 2,=XL4'0000FFFF' - SLL 2,0(5) ==> nbits - STH 2,0(3,6) ==> .array -@@L1 EQU * -* Function '__64_lshift' epilogue - PDPEPIL -* Function '__64_lshift' literal pool - DS 0D - LTORG -* Function '__64_lshift' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64lsh1.c b/src/crent370/clib/@@64lsh1.c deleted file mode 100644 index f78b3a8..0000000 --- a/src/crent370/clib/@@64lsh1.c +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_lshift_one_bit'"); -void __64_lshift_one_bit(__64* a) -{ - if (a) { -#if 1 /* gccmvs uses SLDA for unsigned 64 bit value, so we'll use 32 bit shifts instead */ - a->u32[0] = a->u32[0] << 1 | a->u32[1] >> 31; - a->u32[1] <<= 1; -#else - int i; - - for (i = 0; i < (__64_ARRAY_SIZE-1); i++) { - a->array[i] = (a->array[i] << 1) | (a->array[i + 1] >> ((8 * __64_WORD_SIZE) - 1)); - } - a->array[__64_ARRAY_SIZE-1] <<= 1; -#endif - } -} - diff --git a/src/crent370/clib/@@64lsh1.o b/src/crent370/clib/@@64lsh1.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64lsh1.s b/src/crent370/clib/@@64lsh1.s deleted file mode 100644 index 8fc37c3..0000000 --- a/src/crent370/clib/@@64lsh1.s +++ /dev/null @@ -1,61 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64lsh1.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_lshift_one_bit' -* Program text area - DS 0F - EJECT -* external function '__64_lshift_one_bit' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__64_lshift_one_bit' -@@64LSH1 PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_lshift_one_bit' code - L 15,0(11) ==> a - LTR 15,15 ==> a - BE @@L1 - L 2,0(15) ==> .u32 - SLL 2,1 - L 3,4(15) ==> .u32 - SRL 3,31 - OR 2,3 - ST 2,0(15) ==> .u32 - L 2,4(15) ==> .u32 - SLL 2,1 - ST 2,4(15) ==> .u32 -@@L1 EQU * -* Function '__64_lshift_one_bit' epilogue - PDPEPIL -* Function '__64_lshift_one_bit' literal pool - DS 0D - LTORG -* Function '__64_lshift_one_bit' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64lshw.c b/src/crent370/clib/@@64lshw.c deleted file mode 100644 index ba1a5b2..0000000 --- a/src/crent370/clib/@@64lshw.c +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_lshift_word'"); -void __64_lshift_word(__64* a, int nwords) -{ - int i; - int j; - int shift = nwords; - - if (a) { - /* wtodumpf(a, sizeof(__64), "%s: a before shift %d", __func__, nwords); */ -#if 1 - if (shift < 0) shift = 0; - if (shift > __64_ARRAY_SIZE) shift = __64_ARRAY_SIZE; /* range 0 through 4 */ - if (shift != nwords) wtof("%s: *** shift corrected from %d to %d ***", __func__, nwords, shift); - - /* if shift is 0 then do nothing */ - for (i=0; i < shift; i++) { - for(j=0; j < (__64_ARRAY_SIZE - 1); j++) { - a->array[j] = a->array[j+1]; - } - a->array[j] = 0; - } - /* wtodumpf(a, sizeof(__64), "%s: a after shifting %d", __func__, shift); */ -#endif - } -} - diff --git a/src/crent370/clib/@@64lshw.o b/src/crent370/clib/@@64lshw.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64lshw.s b/src/crent370/clib/@@64lshw.s deleted file mode 100644 index 66d701b..0000000 --- a/src/crent370/clib/@@64lshw.s +++ /dev/null @@ -1,102 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64lshw.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_lshift_word' -* Program text area -@@2 EQU * - DC C'__64_lshift_word' - DC X'0' - DS 0F - EJECT -* external function '__64_lshift_word' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__64_lshift_word' -@@64LSHW PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_lshift_word' code - L 4,0(11) ==> a - L 2,4(11) ==> nwords - LR 6,2 ==> shift,nwords - LTR 4,4 ==> a - BE @@L1 - LTR 2,2 ==> shift - BNL @@L3 - SLR 6,6 ==> shift -@@L3 EQU * - LA 3,4(0,0) - CR 6,3 ==> shift - BNH @@L4 - LR 6,3 ==> shift -@@L4 EQU * - CLR 6,2 ==> shift,nwords - BE @@L5 - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@2) - ST 2,96(13) ==> nwords - ST 6,100(13) ==> shift - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L5 EQU * - SLR 5,5 ==> i - CR 5,6 ==> i,shift - BNL @@L1 - LA 3,2(0,0) -@@L15 EQU * - SLR 15,15 ==> j -@@L14 EQU * - LR 2,15 ==> j - MH 2,=H'2' - AR 2,4 ==> a - LH 7,0(3,2) ==> .array - STH 7,0(2) ==> .array - A 15,=F'1' ==> j - LA 2,2(0,0) - CR 15,2 ==> j - BNH @@L14 - LR 2,15 ==> j - MH 2,=H'2' - SLR 7,7 - STH 7,0(2,4) ==> .array - A 5,=F'1' ==> i - CR 5,6 ==> i,shift - BL @@L15 -@@L1 EQU * -* Function '__64_lshift_word' epilogue - PDPEPIL -* Function '__64_lshift_word' literal pool - DS 0D - LTORG -* Function '__64_lshift_word' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s: *** shift corrected from %d to %d ***' - DC X'0' - END diff --git a/src/crent370/clib/@@64mi32.c b/src/crent370/clib/@@64mi32.c deleted file mode 100644 index ce07c56..0000000 --- a/src/crent370/clib/@@64mi32.c +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_mul_i32'"); -void __64_mul_i32(__64* a, int32_t b, __64* c) -{ - __64 tmp; - - if (a && c) { - /* make tmp value positive */ - __64_from_u32(&tmp, (uint32_t) (b < 0 ? -b : b)); - if (b < 0) { - __64_div(a, &tmp, c); - } - else { - __64_mul(a, &tmp, c); - } - } -} - diff --git a/src/crent370/clib/@@64mi32.o b/src/crent370/clib/@@64mi32.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64mi32.s b/src/crent370/clib/@@64mi32.s deleted file mode 100644 index 8efa2fe..0000000 --- a/src/crent370/clib/@@64mi32.s +++ /dev/null @@ -1,81 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64mi32.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_mul_i32' -* Program text area - DS 0F - EJECT -* external function '__64_mul_i32' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__64_mul_i32' -@@64MI32 PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_mul_i32' code - L 3,0(11) ==> a - L 5,4(11) ==> b - L 4,8(11) ==> c - LTR 3,3 ==> a - BE @@L1 - LTR 4,4 ==> c - BE @@L1 - LA 2,104(,13) - ST 2,88(13) - LPR 2,5 ==> b - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@64FU32) - BALR 14,15 - LTR 5,5 ==> b - BNL @@L3 - ST 3,88(13) ==> a - LA 2,104(,13) - ST 2,92(13) - ST 4,96(13) ==> c - LA 1,88(,13) - L 15,=V(@@64DIV) - BALR 14,15 - B @@L1 -@@L3 EQU * - ST 3,88(13) ==> a - LA 2,104(,13) - ST 2,92(13) - ST 4,96(13) ==> c - LA 1,88(,13) - L 15,=V(@@64MUL) - BALR 14,15 -@@L1 EQU * -* Function '__64_mul_i32' epilogue - PDPEPIL -* Function '__64_mul_i32' literal pool - DS 0D - LTORG -* Function '__64_mul_i32' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64mod.c b/src/crent370/clib/@@64mod.c deleted file mode 100644 index 03a32cd..0000000 --- a/src/crent370/clib/@@64mod.c +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_mod'"); -void __64_mod(__64* a, __64* b, __64* c) -{ - /* Take divmod and throw away div part */ - if (a && b && c) { - __64 tmp; - - __64_divmod(a,b,&tmp,c); - } -} - diff --git a/src/crent370/clib/@@64mod.o b/src/crent370/clib/@@64mod.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64mod.s b/src/crent370/clib/@@64mod.s deleted file mode 100644 index 0237b20..0000000 --- a/src/crent370/clib/@@64mod.s +++ /dev/null @@ -1,66 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64mod.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_mod' -* Program text area - DS 0F - EJECT -* external function '__64_mod' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__64_mod' -@@64MOD PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_mod' code - L 2,0(11) ==> a - L 15,4(11) ==> b - L 3,8(11) ==> c - LTR 2,2 ==> a - BE @@L1 - LTR 15,15 ==> b - BE @@L1 - LTR 3,3 ==> c - BE @@L1 - ST 2,88(13) ==> a - ST 15,92(13) ==> b - LA 2,104(,13) - ST 2,96(13) - ST 3,100(13) ==> c - LA 1,88(,13) - L 15,=V(@@64DMOD) - BALR 14,15 -@@L1 EQU * -* Function '__64_mod' epilogue - PDPEPIL -* Function '__64_mod' literal pool - DS 0D - LTORG -* Function '__64_mod' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64mu32.c b/src/crent370/clib/@@64mu32.c deleted file mode 100644 index 7815dde..0000000 --- a/src/crent370/clib/@@64mu32.c +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_mul_u32'"); -void __64_mul_u32(__64* a, uint32_t b, __64* c) -{ - __64 tmp; - - if (a && c) { - __64_from_u32(&tmp, b); - __64_mul(a, &tmp, c); - } -} - diff --git a/src/crent370/clib/@@64mu32.o b/src/crent370/clib/@@64mu32.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64mu32.s b/src/crent370/clib/@@64mu32.s deleted file mode 100644 index 142382f..0000000 --- a/src/crent370/clib/@@64mu32.s +++ /dev/null @@ -1,68 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64mu32.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_mul_u32' -* Program text area - DS 0F - EJECT -* external function '__64_mul_u32' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__64_mul_u32' -@@64MU32 PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_mul_u32' code - L 3,0(11) ==> a - L 4,8(11) ==> c - LTR 3,3 ==> a - BE @@L1 - LTR 4,4 ==> c - BE @@L1 - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),4(11) ==> b - LA 1,88(,13) - L 15,=V(@@64FU32) - BALR 14,15 - ST 3,88(13) ==> a - LA 2,104(,13) - ST 2,92(13) - ST 4,96(13) ==> c - LA 1,88(,13) - L 15,=V(@@64MUL) - BALR 14,15 -@@L1 EQU * -* Function '__64_mul_u32' epilogue - PDPEPIL -* Function '__64_mul_u32' literal pool - DS 0D - LTORG -* Function '__64_mul_u32' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64mu64.c b/src/crent370/clib/@@64mu64.c deleted file mode 100644 index b865205..0000000 --- a/src/crent370/clib/@@64mu64.c +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_mul_u64'"); -void __64_mul_u64(__64* a, uint64_t b, __64* c) -{ - __64 tmp; - - if (a && c) { - __64_from_u64(&tmp, b); - __64_mul(a, &tmp, c); - } -} - diff --git a/src/crent370/clib/@@64mu64.o b/src/crent370/clib/@@64mu64.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64mu64.s b/src/crent370/clib/@@64mu64.s deleted file mode 100644 index 9f06983..0000000 --- a/src/crent370/clib/@@64mu64.s +++ /dev/null @@ -1,71 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64mu64.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_mul_u64' -* Program text area - DS 0F - EJECT -* external function '__64_mul_u64' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__64_mul_u64' -@@64MU64 PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_mul_u64' code - L 3,0(11) ==> a - L 4,4(11) ==> b - L 5,4+4(11) ==> b - L 6,12(11) ==> c - LTR 3,3 ==> a - BE @@L1 - LTR 6,6 ==> c - BE @@L1 - LA 2,104(,13) - ST 2,88(13) - ST 4,92(13) ==> b - ST 5,4+92(13) ==> b - LA 1,88(,13) - L 15,=V(@@64FU64) - BALR 14,15 - ST 3,88(13) ==> a - LA 2,104(,13) - ST 2,92(13) - ST 6,96(13) ==> c - LA 1,88(,13) - L 15,=V(@@64MUL) - BALR 14,15 -@@L1 EQU * -* Function '__64_mul_u64' epilogue - PDPEPIL -* Function '__64_mul_u64' literal pool - DS 0D - LTORG -* Function '__64_mul_u64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64mul.c b/src/crent370/clib/@@64mul.c deleted file mode 100644 index 83ede3a..0000000 --- a/src/crent370/clib/@@64mul.c +++ /dev/null @@ -1,82 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_mul'"); -#if 1 -void __64_mul(__64* a, __64* b, __64* c) -{ - __64 row; - __64 tmp; - __64 result; - __64_DTYPE_TMP intermediate; - int i, j, k, x; - - if (a && b && c) { - __64_init(&result); - - for (i = __64_ARRAY_SIZE - 1; i >= 0; i--) { - __64_init(&row); - - for (j = __64_ARRAY_SIZE - 1; j >= 0; j--) { - k = i + j; - if (k > (__64_ARRAY_SIZE-2)) { - intermediate = ((__64_DTYPE_TMP)a->array[i] * (__64_DTYPE_TMP)b->array[j]); - - if (intermediate) { - x = ((__64_ARRAY_SIZE - 1) * 2) - k; - if (x < 0 || x > __64_ARRAY_SIZE -1) { - wtof("%s: *** x=%d is out of range ***", __func__, x); - wtodumpf(a, sizeof(__64), "%s: a", __func__); - wtodumpf(b, sizeof(__64), "%s: b", __func__); - wtof("%s: i=%d, j=%d, k=%d, 0x%04X * 0x%04X intermediate=%u", - __func__, i, j, k, a->array[i], b->array[j], intermediate); - } - - __64_from_u32(&tmp, intermediate); - /* wtodumpf(&tmp, sizeof(__64), "%s: tmp", __func__); */ - - __64_lshift_word(&tmp, x); - /* wtodumpf(&tmp, sizeof(__64), "%s: tmp after lshift word %d", __func__, x); */ - - __64_add(&tmp, &row, &row); - /* wtodumpf(&row, sizeof(__64), "%s: row after add tmp", __func__); */ - } - } - } - __64_add(&result, &row, &result); - /* wtodumpf(&result, sizeof(__64), "%s: result", __func__); */ - } - __64_copy(&result, c); - /* wtodumpf(c, sizeof(__64), "%s: c", __func__); */ - } -} -#endif -#if 0 -void __64_mul(__64* a, __64* b, __64* c) -{ - __64 row; - __64 tmp; - int i, j; - - if (a && b && c) { - __64_init(c); - - for (i = 0; i < __64_ARRAY_SIZE; ++i) { - __64_init(&row); - - for (j = 0; j < __64_ARRAY_SIZE; ++j) { - if (i + j < __64_ARRAY_SIZE) { - __64_DTYPE_TMP intermediate = ((__64_DTYPE_TMP)a->array[i] * (__64_DTYPE_TMP)b->array[j]); - - __64_from_int(&tmp, intermediate); - __64_lshift_word(&tmp, i + j); - __64_add(&tmp, &row, &row); - } - } - __64_add(c, &row, c); - } - } -} -#endif - diff --git a/src/crent370/clib/@@64mul.o b/src/crent370/clib/@@64mul.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64mul.s b/src/crent370/clib/@@64mul.s deleted file mode 100644 index 262b04a..0000000 --- a/src/crent370/clib/@@64mul.s +++ /dev/null @@ -1,196 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64mul.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_mul' -* Program text area -@@2 EQU * - DC C'__64_mul' - DC X'0' - DS 0F - EJECT -* external function '__64_mul' prologue -* frame base=88, local stack=32, call args=32 -&FUNC SETC '__64_mul' -@@64MUL PDPPRLG CINDEX=0,FRAME=152,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_mul' code - SLR 4,4 ==> intermediate - SLR 5,5 ==> intermediate - L 2,0(11) ==> a - LTR 2,2 - BE @@L1 - L 3,4(11) ==> b - LTR 3,3 - BE @@L1 - L 8,8(11) ==> c - LTR 8,8 - BE @@L1 - LA 2,120(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64INIT) - BALR 14,15 - MVC 148(4,13),=F'3' ==> i -@@L15 EQU * - LA 2,128(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64INIT) - BALR 14,15 - LA 6,3(0,0) ==> j -@@L14 EQU * - L 3,148(13) ==> k,i - AR 3,6 ==> k,j - LA 9,2(0,0) - CR 3,9 ==> k - BNH @@L9 - L 7,148(13) ==> i - MH 7,=H'2' - L 8,0(11) ==> a - LH 2,0(7,8) ==> .array - N 2,=XL4'0000FFFF' - LR 8,6 ==> j - MH 8,=H'2' - L 9,4(11) ==> b - LH 5,0(8,9) ==> .array - N 5,=XL4'0000FFFF' - MR 4,2 ==> intermediate - ST 5,144(13) ==> intermediate - LTR 5,5 ==> intermediate - BE @@L9 - LA 9,6(0,0) ==> x - SR 9,3 ==> x,k - LA 2,3(0,0) - CLR 9,2 ==> x - BNH @@L13 - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@2) - ST 9,96(13) ==> x - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),0(11) ==> a - MVC 92(4,13),=F'8' - MVC 96(4,13),=A(@@LC1) - MVC 100(4,13),=A(@@2) - LA 1,88(,13) - L 15,=V(WTODUMPF) - BALR 14,15 - MVC 88(4,13),4(11) ==> b - MVC 92(4,13),=F'8' - MVC 96(4,13),=A(@@LC2) - MVC 100(4,13),=A(@@2) - LA 1,88(,13) - L 15,=V(WTODUMPF) - BALR 14,15 - MVC 88(4,13),=A(@@LC3) - MVC 92(4,13),=A(@@2) - MVC 96(4,13),148(13) ==> i - ST 6,100(13) ==> j - ST 3,104(13) ==> k - L 3,0(11) ==> a - LH 2,0(7,3) ==> .array - N 2,=XL4'0000FFFF' - ST 2,108(13) - L 3,4(11) ==> b - LH 2,0(8,3) ==> .array - N 2,=XL4'0000FFFF' - ST 2,112(13) - ST 5,116(13) ==> intermediate - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L13 EQU * - LA 2,136(,13) - ST 2,88(13) - MVC 92(4,13),144(13) ==> intermediate - LA 1,88(,13) - L 15,=V(@@64FU32) - BALR 14,15 - LA 2,136(,13) - ST 2,88(13) - ST 9,92(13) ==> x - LA 1,88(,13) - L 15,=V(@@64LSHW) - BALR 14,15 - LA 2,136(,13) - ST 2,88(13) - LA 2,128(,13) - ST 2,92(13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64ADD) - BALR 14,15 -@@L9 EQU * - BCTR 6,0 ==> j - LTR 6,6 ==> j - BNL @@L14 - LA 2,120(,13) - ST 2,88(13) - LA 2,128(,13) - ST 2,92(13) - LA 2,120(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64ADD) - BALR 14,15 - L 8,148(13) ==> i - BCTR 8,0 - ST 8,148(13) ==> i - LTR 8,8 - BNL @@L15 - LA 2,120(,13) - ST 2,88(13) - MVC 92(4,13),8(11) ==> c - LA 1,88(,13) - L 15,=V(@@64COPY) - BALR 14,15 -@@L1 EQU * -* Function '__64_mul' epilogue - PDPEPIL -* Function '__64_mul' literal pool - DS 0D - LTORG -* Function '__64_mul' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s: *** x=%d is out of range ***' - DC X'0' -@@LC1 EQU * - DC C'%s: a' - DC X'0' -@@LC2 EQU * - DC C'%s: b' - DC X'0' -@@LC3 EQU * - DC C'%s: i=%d, j=%d, k=%d, 0x%04X * 0x%04X intermedia' - DC C'te=%u' - DC X'0' - END diff --git a/src/crent370/clib/@@64ni32.c b/src/crent370/clib/@@64ni32.c deleted file mode 100644 index 452c151..0000000 --- a/src/crent370/clib/@@64ni32.c +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_and_i32'"); -void __64_and_i32(__64* a, int32_t b, __64* c) -{ - __64 tmp; - - if (a && c) { - __64_from_i32(&tmp, b); - -#if 1 /* gccmvs can AND 64 bit values */ - c->u64 = a->u64 & tmp.u64; -#else - __64_and(a, &tmp, c); -#endif - } -} - diff --git a/src/crent370/clib/@@64ni32.o b/src/crent370/clib/@@64ni32.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64ni32.s b/src/crent370/clib/@@64ni32.s deleted file mode 100644 index f87ce8d..0000000 --- a/src/crent370/clib/@@64ni32.s +++ /dev/null @@ -1,67 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64ni32.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_and_i32' -* Program text area - DS 0F - EJECT -* external function '__64_and_i32' prologue -* frame base=88, local stack=8, call args=8 -&FUNC SETC '__64_and_i32' -@@64NI32 PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_and_i32' code - L 4,0(11) ==> a - L 5,8(11) ==> c - LTR 4,4 ==> a - BE @@L1 - LTR 5,5 ==> c - BE @@L1 - LA 2,96(,13) - ST 2,88(13) - MVC 92(4,13),4(11) ==> b - LA 1,88(,13) - L 15,=V(@@64FI32) - BALR 14,15 - L 2,0(4) ==> .u64 - N 2,96(13) - L 3,4(4) ==> .u64 - N 3,100(13) ==> .u64 - ST 2,0(5) ==> .u64 - ST 3,4+0(5) ==> .u64 -@@L1 EQU * -* Function '__64_and_i32' epilogue - PDPEPIL -* Function '__64_and_i32' literal pool - DS 0D - LTORG -* Function '__64_and_i32' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64nu32.c b/src/crent370/clib/@@64nu32.c deleted file mode 100644 index 1e219ed..0000000 --- a/src/crent370/clib/@@64nu32.c +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_and_u32'"); -void __64_and_u32(__64* a, uint32_t b, __64* c) -{ - __64 tmp; - - if (a && c) { - __64_from_u32(&tmp, b); - -#if 1 /* gccmvs can AND 64 bit values */ - c->u64 = a->u64 & tmp.u64; -#else - __64_and(a, &tmp, c); -#endif - } -} - diff --git a/src/crent370/clib/@@64nu32.o b/src/crent370/clib/@@64nu32.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64nu32.s b/src/crent370/clib/@@64nu32.s deleted file mode 100644 index 7144974..0000000 --- a/src/crent370/clib/@@64nu32.s +++ /dev/null @@ -1,67 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64nu32.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_and_u32' -* Program text area - DS 0F - EJECT -* external function '__64_and_u32' prologue -* frame base=88, local stack=8, call args=8 -&FUNC SETC '__64_and_u32' -@@64NU32 PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_and_u32' code - L 4,0(11) ==> a - L 5,8(11) ==> c - LTR 4,4 ==> a - BE @@L1 - LTR 5,5 ==> c - BE @@L1 - LA 2,96(,13) - ST 2,88(13) - MVC 92(4,13),4(11) ==> b - LA 1,88(,13) - L 15,=V(@@64FU32) - BALR 14,15 - L 2,0(4) ==> .u64 - N 2,96(13) - L 3,4(4) ==> .u64 - N 3,100(13) ==> .u64 - ST 2,0(5) ==> .u64 - ST 3,4+0(5) ==> .u64 -@@L1 EQU * -* Function '__64_and_u32' epilogue - PDPEPIL -* Function '__64_and_u32' literal pool - DS 0D - LTORG -* Function '__64_and_u32' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64nu64.c b/src/crent370/clib/@@64nu64.c deleted file mode 100644 index 372d0c7..0000000 --- a/src/crent370/clib/@@64nu64.c +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_and_u64'"); -void __64_and_u64(__64* a, uint64_t b, __64* c) -{ - __64 tmp; - - if (a && c) { - __64_from_u64(&tmp, b); - -#if 1 /* gccmvs can AND 64 bit values */ - c->u64 = a->u64 & tmp.u64; -#else - __64_and(a, &tmp, c); -#endif - } -} - diff --git a/src/crent370/clib/@@64nu64.o b/src/crent370/clib/@@64nu64.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64nu64.s b/src/crent370/clib/@@64nu64.s deleted file mode 100644 index 746956a..0000000 --- a/src/crent370/clib/@@64nu64.s +++ /dev/null @@ -1,70 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64nu64.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_and_u64' -* Program text area - DS 0F - EJECT -* external function '__64_and_u64' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__64_and_u64' -@@64NU64 PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_and_u64' code - L 6,0(11) ==> a - L 4,4(11) ==> b - L 5,4+4(11) ==> b - L 7,12(11) ==> c - LTR 6,6 ==> a - BE @@L1 - LTR 7,7 ==> c - BE @@L1 - LA 2,104(,13) - ST 2,88(13) - ST 4,92(13) ==> b - ST 5,4+92(13) ==> b - LA 1,88(,13) - L 15,=V(@@64FU64) - BALR 14,15 - L 2,0(6) ==> .u64 - N 2,104(13) - L 3,4(6) ==> .u64 - N 3,108(13) ==> .u64 - ST 2,0(7) ==> .u64 - ST 3,4+0(7) ==> .u64 -@@L1 EQU * -* Function '__64_and_u64' epilogue - PDPEPIL -* Function '__64_and_u64' literal pool - DS 0D - LTORG -* Function '__64_and_u64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64oi32.c b/src/crent370/clib/@@64oi32.c deleted file mode 100644 index 486e0e8..0000000 --- a/src/crent370/clib/@@64oi32.c +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_or_i32'"); -void __64_or_i32(__64* a, int32_t b, __64* c) -{ - __64 tmp; - - if (a && c) { - __64_from_i32(&tmp, b); - -#if 1 /* gccmvs can OR 64 bit values */ - c->u64 = a->u64 | tmp.u64; -#else - __64_or(a, &tmp, c); -#endif - } -} - diff --git a/src/crent370/clib/@@64oi32.o b/src/crent370/clib/@@64oi32.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64oi32.s b/src/crent370/clib/@@64oi32.s deleted file mode 100644 index 915be26..0000000 --- a/src/crent370/clib/@@64oi32.s +++ /dev/null @@ -1,67 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64oi32.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_or_i32' -* Program text area - DS 0F - EJECT -* external function '__64_or_i32' prologue -* frame base=88, local stack=8, call args=8 -&FUNC SETC '__64_or_i32' -@@64OI32 PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_or_i32' code - L 4,0(11) ==> a - L 5,8(11) ==> c - LTR 4,4 ==> a - BE @@L1 - LTR 5,5 ==> c - BE @@L1 - LA 2,96(,13) - ST 2,88(13) - MVC 92(4,13),4(11) ==> b - LA 1,88(,13) - L 15,=V(@@64FI32) - BALR 14,15 - L 2,0(4) ==> .u64 - O 2,96(13) - L 3,4(4) ==> .u64 - O 3,100(13) ==> .u64 - ST 2,0(5) ==> .u64 - ST 3,4+0(5) ==> .u64 -@@L1 EQU * -* Function '__64_or_i32' epilogue - PDPEPIL -* Function '__64_or_i32' literal pool - DS 0D - LTORG -* Function '__64_or_i32' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64or.c b/src/crent370/clib/@@64or.c deleted file mode 100644 index 5a3ad5c..0000000 --- a/src/crent370/clib/@@64or.c +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_or'"); -void __64_or(__64* a, __64* b, __64* c) -{ - if (a && b && c) { -#if 1 - c->u64 = a->u64 | b->u64; -#else - int i; - - for (i = 0; i < __64_ARRAY_SIZE; ++i) { - c->array[i] = (a->array[i] | b->array[i]); - } -#endif - } -} - diff --git a/src/crent370/clib/@@64or.o b/src/crent370/clib/@@64or.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64or.s b/src/crent370/clib/@@64or.s deleted file mode 100644 index eb3f70e..0000000 --- a/src/crent370/clib/@@64or.s +++ /dev/null @@ -1,64 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64or.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_or' -* Program text area - DS 0F - EJECT -* external function '__64_or' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__64_or' -@@64OR PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_or' code - L 4,0(11) ==> a - L 15,4(11) ==> b - L 5,8(11) ==> c - LTR 4,4 ==> a - BE @@L1 - LTR 15,15 ==> b - BE @@L1 - LTR 5,5 ==> c - BE @@L1 - L 2,0(4) ==> .u64 - O 2,0(15) ==> .u64 - L 3,4(4) ==> .u64 - O 3,4(15) ==> .u64 - ST 2,0(5) ==> .u64 - ST 3,4+0(5) ==> .u64 -@@L1 EQU * -* Function '__64_or' epilogue - PDPEPIL -* Function '__64_or' literal pool - DS 0D - LTORG -* Function '__64_or' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64ou32.c b/src/crent370/clib/@@64ou32.c deleted file mode 100644 index 46ec94e..0000000 --- a/src/crent370/clib/@@64ou32.c +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_or_u32'"); -void __64_or_u32(__64* a, uint32_t b, __64* c) -{ - __64 tmp; - - if (a && c) { - __64_from_u32(&tmp, b); - -#if 1 /* gccmvs can OR 64 bit values */ - c->u64 = a->u64 | tmp.u64; -#else - __64_or(a, &tmp, c); -#endif - } -} - diff --git a/src/crent370/clib/@@64ou32.o b/src/crent370/clib/@@64ou32.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64ou32.s b/src/crent370/clib/@@64ou32.s deleted file mode 100644 index c2f5ba8..0000000 --- a/src/crent370/clib/@@64ou32.s +++ /dev/null @@ -1,67 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64ou32.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_or_u32' -* Program text area - DS 0F - EJECT -* external function '__64_or_u32' prologue -* frame base=88, local stack=8, call args=8 -&FUNC SETC '__64_or_u32' -@@64OU32 PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_or_u32' code - L 4,0(11) ==> a - L 5,8(11) ==> c - LTR 4,4 ==> a - BE @@L1 - LTR 5,5 ==> c - BE @@L1 - LA 2,96(,13) - ST 2,88(13) - MVC 92(4,13),4(11) ==> b - LA 1,88(,13) - L 15,=V(@@64FU32) - BALR 14,15 - L 2,0(4) ==> .u64 - O 2,96(13) - L 3,4(4) ==> .u64 - O 3,100(13) ==> .u64 - ST 2,0(5) ==> .u64 - ST 3,4+0(5) ==> .u64 -@@L1 EQU * -* Function '__64_or_u32' epilogue - PDPEPIL -* Function '__64_or_u32' literal pool - DS 0D - LTORG -* Function '__64_or_u32' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64ou64.c b/src/crent370/clib/@@64ou64.c deleted file mode 100644 index bde16ff..0000000 --- a/src/crent370/clib/@@64ou64.c +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_or_u64'"); -void __64_or_u64(__64* a, uint64_t b, __64* c) -{ - __64 tmp; - - if (a && c) { - __64_from_u64(&tmp, b); - -#if 1 /* gccmvs can OR 64 bit values */ - c->u64 = a->u64 | tmp.u64; -#else - __64_or(a, &tmp, c); -#endif - } -} - diff --git a/src/crent370/clib/@@64ou64.o b/src/crent370/clib/@@64ou64.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64ou64.s b/src/crent370/clib/@@64ou64.s deleted file mode 100644 index a9e064b..0000000 --- a/src/crent370/clib/@@64ou64.s +++ /dev/null @@ -1,70 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64ou64.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_or_u64' -* Program text area - DS 0F - EJECT -* external function '__64_or_u64' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__64_or_u64' -@@64OU64 PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_or_u64' code - L 6,0(11) ==> a - L 4,4(11) ==> b - L 5,4+4(11) ==> b - L 7,12(11) ==> c - LTR 6,6 ==> a - BE @@L1 - LTR 7,7 ==> c - BE @@L1 - LA 2,104(,13) - ST 2,88(13) - ST 4,92(13) ==> b - ST 5,4+92(13) ==> b - LA 1,88(,13) - L 15,=V(@@64FU64) - BALR 14,15 - L 2,0(6) ==> .u64 - O 2,104(13) - L 3,4(6) ==> .u64 - O 3,108(13) ==> .u64 - ST 2,0(7) ==> .u64 - ST 3,4+0(7) ==> .u64 -@@L1 EQU * -* Function '__64_or_u64' epilogue - PDPEPIL -* Function '__64_or_u64' literal pool - DS 0D - LTORG -* Function '__64_or_u64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64pow.c b/src/crent370/clib/@@64pow.c deleted file mode 100644 index 45a5d09..0000000 --- a/src/crent370/clib/@@64pow.c +++ /dev/null @@ -1,42 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_pow'"); -void __64_pow(__64* a, __64* b, __64* c) -{ - __64 tmp; - __64 bcopy; - - if (a && b && c) { - __64_init(c); - - if (__64_cmp(b, c) == __64_EQUAL) { - /* Return 1 when exponent is 0 -- n^0 = 1 */ - __64_inc(c); - } - else { - __64_assign(&bcopy, b); - - /* Copy a -> tmp */ - __64_assign(&tmp, a); - - __64_dec(&bcopy); - - /* Begin summing products: */ - while (!__64_is_zero(&bcopy)) { - /* c = tmp * tmp */ - __64_mul(&tmp, a, c); - - /* Decrement b by one */ - __64_dec(&bcopy); - - __64_assign(&tmp, c); - } - - /* c = tmp */ - __64_assign(c, &tmp); - } - } -} - diff --git a/src/crent370/clib/@@64pow.o b/src/crent370/clib/@@64pow.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64pow.s b/src/crent370/clib/@@64pow.s deleted file mode 100644 index 646e282..0000000 --- a/src/crent370/clib/@@64pow.s +++ /dev/null @@ -1,126 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64pow.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_pow' -* Program text area - DS 0F - EJECT -* external function '__64_pow' prologue -* frame base=88, local stack=16, call args=16 -&FUNC SETC '__64_pow' -@@64POW PDPPRLG CINDEX=0,FRAME=120,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_pow' code - L 4,0(11) ==> a - L 2,4(11) ==> b - L 3,8(11) ==> c - LTR 4,4 ==> a - BE @@L1 - LTR 2,2 ==> b - BE @@L1 - LTR 3,3 ==> c - BE @@L1 - ST 3,88(13) ==> c - LA 1,88(,13) - L 15,=V(@@64INIT) - BALR 14,15 - ST 2,88(13) ==> b - ST 3,92(13) ==> c - LA 1,88(,13) - L 15,=V(@@64CMP) - BALR 14,15 - LTR 15,15 - BNE @@L3 - ST 3,88(13) ==> c - LA 1,88(,13) - L 15,=V(@@64INC) - BALR 14,15 - B @@L1 -@@L3 EQU * - ST 2,88(13) ==> b - LA 2,104(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@64COPY) - BALR 14,15 - ST 4,88(13) ==> a - LA 2,112(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@64COPY) - BALR 14,15 - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64DEC) - BALR 14,15 - B @@L5 -@@L8 EQU * - LA 2,112(,13) - ST 2,88(13) - ST 4,92(13) ==> a - ST 3,96(13) ==> c - LA 1,88(,13) - L 15,=V(@@64MUL) - BALR 14,15 - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64DEC) - BALR 14,15 - ST 3,88(13) ==> c - LA 2,112(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@64COPY) - BALR 14,15 -@@L5 EQU * - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64IS0) - BALR 14,15 - LTR 15,15 - BE @@L8 - LA 2,112(,13) - ST 2,88(13) - ST 3,92(13) ==> c - LA 1,88(,13) - L 15,=V(@@64COPY) - BALR 14,15 -@@L1 EQU * -* Function '__64_pow' epilogue - PDPEPIL -* Function '__64_pow' literal pool - DS 0D - LTORG -* Function '__64_pow' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64qi32.c b/src/crent370/clib/@@64qi32.c deleted file mode 100644 index 319e0d2..0000000 --- a/src/crent370/clib/@@64qi32.c +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_mod_i32'"); -void __64_mod_i32(__64* a, int32_t b, __64* c) -{ - __64 tmp; - - if (a && c) { - __64_from_i32(&tmp, b); - __64_mod(a, &tmp, c); - } -} - diff --git a/src/crent370/clib/@@64qi32.o b/src/crent370/clib/@@64qi32.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64qi32.s b/src/crent370/clib/@@64qi32.s deleted file mode 100644 index 0470e00..0000000 --- a/src/crent370/clib/@@64qi32.s +++ /dev/null @@ -1,68 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64qi32.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_mod_i32' -* Program text area - DS 0F - EJECT -* external function '__64_mod_i32' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__64_mod_i32' -@@64QI32 PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_mod_i32' code - L 3,0(11) ==> a - L 4,8(11) ==> c - LTR 3,3 ==> a - BE @@L1 - LTR 4,4 ==> c - BE @@L1 - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),4(11) ==> b - LA 1,88(,13) - L 15,=V(@@64FI32) - BALR 14,15 - ST 3,88(13) ==> a - LA 2,104(,13) - ST 2,92(13) - ST 4,96(13) ==> c - LA 1,88(,13) - L 15,=V(@@64MOD) - BALR 14,15 -@@L1 EQU * -* Function '__64_mod_i32' epilogue - PDPEPIL -* Function '__64_mod_i32' literal pool - DS 0D - LTORG -* Function '__64_mod_i32' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64qu32.c b/src/crent370/clib/@@64qu32.c deleted file mode 100644 index c20f71b..0000000 --- a/src/crent370/clib/@@64qu32.c +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_mod_u32'"); -void __64_mod_u32(__64* a, uint32_t b, __64* c) -{ - __64 tmp; - - if (a && c) { - __64_from_u32(&tmp, b); - __64_mod(a, &tmp, c); - } -} - diff --git a/src/crent370/clib/@@64qu32.o b/src/crent370/clib/@@64qu32.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64qu32.s b/src/crent370/clib/@@64qu32.s deleted file mode 100644 index 4803eaf..0000000 --- a/src/crent370/clib/@@64qu32.s +++ /dev/null @@ -1,68 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64qu32.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_mod_u32' -* Program text area - DS 0F - EJECT -* external function '__64_mod_u32' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__64_mod_u32' -@@64QU32 PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_mod_u32' code - L 3,0(11) ==> a - L 4,8(11) ==> c - LTR 3,3 ==> a - BE @@L1 - LTR 4,4 ==> c - BE @@L1 - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),4(11) ==> b - LA 1,88(,13) - L 15,=V(@@64FU32) - BALR 14,15 - ST 3,88(13) ==> a - LA 2,104(,13) - ST 2,92(13) - ST 4,96(13) ==> c - LA 1,88(,13) - L 15,=V(@@64MOD) - BALR 14,15 -@@L1 EQU * -* Function '__64_mod_u32' epilogue - PDPEPIL -* Function '__64_mod_u32' literal pool - DS 0D - LTORG -* Function '__64_mod_u32' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64qu64.c b/src/crent370/clib/@@64qu64.c deleted file mode 100644 index 9bc0976..0000000 --- a/src/crent370/clib/@@64qu64.c +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_mod_u64'"); -void __64_mod_u64(__64* a, uint64_t b, __64* c) -{ - __64 tmp; - - if (a && c) { - __64_from_u64(&tmp, b); - __64_mod(a, &tmp, c); - } -} - diff --git a/src/crent370/clib/@@64qu64.o b/src/crent370/clib/@@64qu64.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64qu64.s b/src/crent370/clib/@@64qu64.s deleted file mode 100644 index 265878c..0000000 --- a/src/crent370/clib/@@64qu64.s +++ /dev/null @@ -1,71 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64qu64.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_mod_u64' -* Program text area - DS 0F - EJECT -* external function '__64_mod_u64' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__64_mod_u64' -@@64QU64 PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_mod_u64' code - L 3,0(11) ==> a - L 4,4(11) ==> b - L 5,4+4(11) ==> b - L 6,12(11) ==> c - LTR 3,3 ==> a - BE @@L1 - LTR 6,6 ==> c - BE @@L1 - LA 2,104(,13) - ST 2,88(13) - ST 4,92(13) ==> b - ST 5,4+92(13) ==> b - LA 1,88(,13) - L 15,=V(@@64FU64) - BALR 14,15 - ST 3,88(13) ==> a - LA 2,104(,13) - ST 2,92(13) - ST 6,96(13) ==> c - LA 1,88(,13) - L 15,=V(@@64MOD) - BALR 14,15 -@@L1 EQU * -* Function '__64_mod_u64' epilogue - PDPEPIL -* Function '__64_mod_u64' literal pool - DS 0D - LTORG -* Function '__64_mod_u64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64rsft.c b/src/crent370/clib/@@64rsft.c deleted file mode 100644 index ca44620..0000000 --- a/src/crent370/clib/@@64rsft.c +++ /dev/null @@ -1,31 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_rshift'"); -void __64_rshift(__64* a, __64* b, int nbits) -{ - const int nbits_pr_word = (__64_WORD_SIZE * 8); - int nwords = nbits / nbits_pr_word; - - if (a && b && (nbits>=0)) { - __64_assign(b, a); - - /* Handle shift in multiples of word-size */ - if (nwords != 0) { - /* wtof("%s: nbits=%d, nbits_pr_word=%d, nwords=%d", __func__, nbits, nbits_pr_word, nwords); */ - __64_rshift_word(b, nwords); - nbits -= (nwords * nbits_pr_word); - } - - if (nbits != 0) { - int i; - - for (i = (__64_ARRAY_SIZE - 1); i > 0; i--) { - b->array[i] = (b->array[i] >> nbits) | (b->array[i - 1] << ((8 * __64_WORD_SIZE) - nbits)); - } - b->array[0] >>= nbits; - } - } -} - diff --git a/src/crent370/clib/@@64rsft.o b/src/crent370/clib/@@64rsft.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64rsft.s b/src/crent370/clib/@@64rsft.s deleted file mode 100644 index 947dac6..0000000 --- a/src/crent370/clib/@@64rsft.s +++ /dev/null @@ -1,104 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64rsft.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_rshift' -* Program text area - DS 0F - EJECT -* external function '__64_rshift' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC '__64_rshift' -@@64RSFT PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_rshift' code - L 3,0(11) ==> a - L 6,4(11) ==> b - L 5,8(11) ==> nbits - LR 2,5 ==> nbits - LTR 5,5 ==> nbits - BNL @@L2 - A 2,=F'15' ==> nbits -@@L2 EQU * - SRA 2,4 ==> nwords - LTR 3,3 ==> a - BE @@L1 - LTR 6,6 ==> b - BE @@L1 - LTR 5,5 ==> nbits - BL @@L1 - ST 3,88(13) ==> a - ST 6,92(13) ==> b - LA 1,88(,13) - L 15,=V(@@64COPY) - BALR 14,15 - LTR 2,2 ==> nwords - BE @@L4 - ST 6,88(13) ==> b - ST 2,92(13) ==> nwords - LA 1,88(,13) - L 15,=V(@@64RSHW) - BALR 14,15 - MH 2,=H'16' - SR 5,2 ==> nbits -@@L4 EQU * - LTR 5,5 ==> nbits - BE @@L1 - LA 15,3(0,0) ==> i - L 8,=F'-2' - LA 7,16(0,0) - SR 7,5 ==> nbits -@@L10 EQU * - LR 4,15 ==> i - MH 4,=H'2' - LH 3,0(4,6) ==> .array - N 3,=XL4'0000FFFF' - SRA 3,0(5) ==> nbits - AR 4,6 ==> b - LH 2,0(8,4) ==> .array - N 2,=XL4'0000FFFF' - SLL 2,0(7) - OR 3,2 - STH 3,0(4) ==> .array - BCTR 15,0 ==> i - LTR 15,15 ==> i - BH @@L10 - LH 2,0(6) ==> .array - N 2,=XL4'0000FFFF' - SRA 2,0(5) ==> nbits - STH 2,0(6) ==> .array -@@L1 EQU * -* Function '__64_rshift' epilogue - PDPEPIL -* Function '__64_rshift' literal pool - DS 0D - LTORG -* Function '__64_rshift' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64rsh1.c b/src/crent370/clib/@@64rsh1.c deleted file mode 100644 index a71254d..0000000 --- a/src/crent370/clib/@@64rsh1.c +++ /dev/null @@ -1,53 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_rshift_one_bit'"); -void __64_rshift_one_bit(__64* a) -{ - int i; - __64_DTYPE tmp; - - if (a) { - /* wtodumpf(a, sizeof(__64), "%s: before", __func__); */ - - for (i = (__64_ARRAY_SIZE - 1); i > 0; i--) { -#if 0 - tmp = a->array[i]; - wtof("%s: a->array[%d] tmp before 0x%04X", __func__, i, tmp); - - tmp = (a->array[i] >> 1) | (a->array[i - 1] << ((8 * __64_WORD_SIZE) - 1)); - wtof("%s: a->array[%d] tmp after 0x%04X", __func__, i, tmp); -#endif - a->array[i] = (a->array[i] >> 1) | (a->array[i - 1] << ((8 * __64_WORD_SIZE) - 1)); - } - - a->array[0] >>= 1; - - /* wtodumpf(a, sizeof(__64), "%s: after", __func__); */ - } -} - -#if 0 -void __64_rshift_one_bit(__64* a) -{ - int i; - __64_DTYPE tmp; - - if (a) { - - for (i = 0; i < (__64_ARRAY_SIZE - 1); ++i) { - tmp = a->array[i]; - wtof("%s: a->array[%d] tmp before 0x%04X", __func__, i, tmp); - - tmp = (a->array[i] >> 1) | (a->array[i + 1] << ((8 * __64_WORD_SIZE) - 1)); - wtof("%s: a->array[%d] tmp after 0x%04X", __func__, i, tmp); - - a->array[i] = (a->array[i] >> 1) | (a->array[i + 1] << ((8 * __64_WORD_SIZE) - 1)); - } - - a->array[__64_ARRAY_SIZE - 1] >>= 1; - } -} -#endif - diff --git a/src/crent370/clib/@@64rsh1.o b/src/crent370/clib/@@64rsh1.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64rsh1.s b/src/crent370/clib/@@64rsh1.s deleted file mode 100644 index ad8ff30..0000000 --- a/src/crent370/clib/@@64rsh1.s +++ /dev/null @@ -1,75 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64rsh1.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_rshift_one_bit' -* Program text area - DS 0F - EJECT -* external function '__64_rshift_one_bit' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__64_rshift_one_bit' -@@64RSH1 PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_rshift_one_bit' code - L 5,0(11) ==> a - LTR 5,5 ==> a - BE @@L1 - LA 15,3(0,0) ==> i - L 6,=F'-2' -@@L7 EQU * - LR 2,15 ==> i - MH 2,=H'2' - LH 4,0(2,5) ==> .array - N 4,=XL4'0000FFFF' - SRL 4,1 - AR 2,5 ==> a - LH 3,0(6,2) ==> .array - N 3,=XL4'0000FFFF' - SLL 3,15 - SLL 3,16 - SRA 3,16 - OR 4,3 - STH 4,0(2) ==> .array - BCTR 15,0 ==> i - LTR 15,15 ==> i - BH @@L7 - LH 2,0(5) ==> .array - N 2,=XL4'0000FFFF' - SRL 2,1 - STH 2,0(5) ==> .array -@@L1 EQU * -* Function '__64_rshift_one_bit' epilogue - PDPEPIL -* Function '__64_rshift_one_bit' literal pool - DS 0D - LTORG -* Function '__64_rshift_one_bit' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64rshw.c b/src/crent370/clib/@@64rshw.c deleted file mode 100644 index f8165e9..0000000 --- a/src/crent370/clib/@@64rshw.c +++ /dev/null @@ -1,26 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_rshift_word'"); -void __64_rshift_word(__64* a, int nwords) -{ - int i; - int j; - int shift = nwords; - - if (a && (nwords >=0)) { - if (shift < 0) shift = 0; - if (shift > __64_ARRAY_SIZE) shift = __64_ARRAY_SIZE; /* range 0 through 4 */ - if (shift != nwords) wtof("%s: *** shift corrected from %d to %d ***", __func__, nwords, shift); - - /* if shift is 0 then do nothing */ - for (i=0; i < shift; i++) { - for(j= (__64_ARRAY_SIZE - 1); j > 0; j--) { - a->array[j] = a->array[j-1]; - } - a->array[j] = 0; - } - } -} - diff --git a/src/crent370/clib/@@64rshw.o b/src/crent370/clib/@@64rshw.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64rshw.s b/src/crent370/clib/@@64rshw.s deleted file mode 100644 index 59c5fbf..0000000 --- a/src/crent370/clib/@@64rshw.s +++ /dev/null @@ -1,99 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64rshw.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_rshift_word' -* Program text area -@@2 EQU * - DC C'__64_rshift_word' - DC X'0' - DS 0F - EJECT -* external function '__64_rshift_word' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__64_rshift_word' -@@64RSHW PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_rshift_word' code - L 4,0(11) ==> a - L 2,4(11) ==> nwords - LR 5,2 ==> shift,nwords - LTR 4,4 ==> a - BE @@L1 - LTR 2,2 ==> shift - BL @@L1 - LA 3,4(0,0) - CR 2,3 ==> shift - BNH @@L4 - LR 5,3 ==> shift -@@L4 EQU * - CLR 5,2 ==> shift,nwords - BE @@L5 - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@2) - ST 2,96(13) ==> nwords - ST 5,100(13) ==> shift - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L5 EQU * - SLR 6,6 ==> i - CR 6,5 ==> i,shift - BNL @@L1 - L 3,=F'-2' -@@L15 EQU * - LA 15,3(0,0) ==> j -@@L14 EQU * - LR 2,15 ==> j - MH 2,=H'2' - AR 2,4 ==> a - LH 7,0(3,2) ==> .array - STH 7,0(2) ==> .array - BCTR 15,0 ==> j - LTR 15,15 ==> j - BH @@L14 - LR 2,15 ==> j - MH 2,=H'2' - SLR 7,7 - STH 7,0(2,4) ==> .array - A 6,=F'1' ==> i - CR 6,5 ==> i,shift - BL @@L15 -@@L1 EQU * -* Function '__64_rshift_word' epilogue - PDPEPIL -* Function '__64_rshift_word' literal pool - DS 0D - LTORG -* Function '__64_rshift_word' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s: *** shift corrected from %d to %d ***' - DC X'0' - END diff --git a/src/crent370/clib/@@64si32.c b/src/crent370/clib/@@64si32.c deleted file mode 100644 index c3e270b..0000000 --- a/src/crent370/clib/@@64si32.c +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_sub_i32'"); -void __64_sub_i32(__64* a, int32_t b, __64* c) -{ - __64 tmp; - - if (a && c) { - /* make tmp value positive */ - __64_from_u32(&tmp, (uint32_t) (b < 0 ? -b : b)); - if (b < 0) { - __64_add(a, &tmp, c); - } - else { - __64_sub(a, &tmp, c); - } - } -} - diff --git a/src/crent370/clib/@@64si32.o b/src/crent370/clib/@@64si32.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64si32.s b/src/crent370/clib/@@64si32.s deleted file mode 100644 index 9861fad..0000000 --- a/src/crent370/clib/@@64si32.s +++ /dev/null @@ -1,81 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64si32.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_sub_i32' -* Program text area - DS 0F - EJECT -* external function '__64_sub_i32' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__64_sub_i32' -@@64SI32 PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_sub_i32' code - L 3,0(11) ==> a - L 5,4(11) ==> b - L 4,8(11) ==> c - LTR 3,3 ==> a - BE @@L1 - LTR 4,4 ==> c - BE @@L1 - LA 2,104(,13) - ST 2,88(13) - LPR 2,5 ==> b - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@64FU32) - BALR 14,15 - LTR 5,5 ==> b - BNL @@L3 - ST 3,88(13) ==> a - LA 2,104(,13) - ST 2,92(13) - ST 4,96(13) ==> c - LA 1,88(,13) - L 15,=V(@@64ADD) - BALR 14,15 - B @@L1 -@@L3 EQU * - ST 3,88(13) ==> a - LA 2,104(,13) - ST 2,92(13) - ST 4,96(13) ==> c - LA 1,88(,13) - L 15,=V(@@64SUB) - BALR 14,15 -@@L1 EQU * -* Function '__64_sub_i32' epilogue - PDPEPIL -* Function '__64_sub_i32' literal pool - DS 0D - LTORG -* Function '__64_sub_i32' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64su32.c b/src/crent370/clib/@@64su32.c deleted file mode 100644 index 9ef086e..0000000 --- a/src/crent370/clib/@@64su32.c +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_sub_u32'"); -void __64_sub_u32(__64* a, uint32_t b, __64* c) -{ - __64 tmp; - - if (a && c) { - __64_from_u32(&tmp, b); - __64_sub(a, &tmp, c); - } -} - diff --git a/src/crent370/clib/@@64su32.o b/src/crent370/clib/@@64su32.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64su32.s b/src/crent370/clib/@@64su32.s deleted file mode 100644 index 632081c..0000000 --- a/src/crent370/clib/@@64su32.s +++ /dev/null @@ -1,68 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64su32.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_sub_u32' -* Program text area - DS 0F - EJECT -* external function '__64_sub_u32' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__64_sub_u32' -@@64SU32 PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_sub_u32' code - L 3,0(11) ==> a - L 4,8(11) ==> c - LTR 3,3 ==> a - BE @@L1 - LTR 4,4 ==> c - BE @@L1 - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),4(11) ==> b - LA 1,88(,13) - L 15,=V(@@64FU32) - BALR 14,15 - ST 3,88(13) ==> a - LA 2,104(,13) - ST 2,92(13) - ST 4,96(13) ==> c - LA 1,88(,13) - L 15,=V(@@64SUB) - BALR 14,15 -@@L1 EQU * -* Function '__64_sub_u32' epilogue - PDPEPIL -* Function '__64_sub_u32' literal pool - DS 0D - LTORG -* Function '__64_sub_u32' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64su64.c b/src/crent370/clib/@@64su64.c deleted file mode 100644 index b5da039..0000000 --- a/src/crent370/clib/@@64su64.c +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_sub_u64'"); -void __64_sub_u64(__64* a, uint64_t b, __64* c) -{ - __64 tmp; - - if (a && c) { - __64_from_u64(&tmp, b); - __64_sub(a, &tmp, c); - } -} - diff --git a/src/crent370/clib/@@64su64.o b/src/crent370/clib/@@64su64.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64su64.s b/src/crent370/clib/@@64su64.s deleted file mode 100644 index e03797e..0000000 --- a/src/crent370/clib/@@64su64.s +++ /dev/null @@ -1,71 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64su64.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_sub_u64' -* Program text area - DS 0F - EJECT -* external function '__64_sub_u64' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__64_sub_u64' -@@64SU64 PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_sub_u64' code - L 3,0(11) ==> a - L 4,4(11) ==> b - L 5,4+4(11) ==> b - L 6,12(11) ==> c - LTR 3,3 ==> a - BE @@L1 - LTR 6,6 ==> c - BE @@L1 - LA 2,104(,13) - ST 2,88(13) - ST 4,92(13) ==> b - ST 5,4+92(13) ==> b - LA 1,88(,13) - L 15,=V(@@64FU64) - BALR 14,15 - ST 3,88(13) ==> a - LA 2,104(,13) - ST 2,92(13) - ST 6,96(13) ==> c - LA 1,88(,13) - L 15,=V(@@64SUB) - BALR 14,15 -@@L1 EQU * -* Function '__64_sub_u64' epilogue - PDPEPIL -* Function '__64_sub_u64' literal pool - DS 0D - LTORG -* Function '__64_sub_u64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64sub.c b/src/crent370/clib/@@64sub.c deleted file mode 100644 index e010d62..0000000 --- a/src/crent370/clib/@@64sub.c +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_sub'"); -void __64_sub(__64* a, __64* b, __64* c) -{ - __64_DTYPE_TMP res; - __64_DTYPE_TMP tmp1; - __64_DTYPE_TMP tmp2; - int borrow = 0; - int i; - - if (a && b && c) { - for (i = __64_ARRAY_SIZE-1; i >= 0; i--) { - tmp1 = (__64_DTYPE_TMP)a->array[i] + (__64_MAX_VAL + 1); /* + number_base */ - tmp2 = (__64_DTYPE_TMP)b->array[i] + borrow; - res = (tmp1 - tmp2); - /* "modulo number_base" == "% (number_base - 1)" if number_base is 2^N */ - c->array[i] = (__64_DTYPE)(res & __64_MAX_VAL); - borrow = (res <= __64_MAX_VAL); - } - } -} - diff --git a/src/crent370/clib/@@64sub.o b/src/crent370/clib/@@64sub.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64sub.s b/src/crent370/clib/@@64sub.s deleted file mode 100644 index 1e5c093..0000000 --- a/src/crent370/clib/@@64sub.s +++ /dev/null @@ -1,82 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64sub.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_sub' -* Program text area - DS 0F - EJECT -* external function '__64_sub' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__64_sub' -@@64SUB PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_sub' code - L 8,0(11) ==> a - L 7,4(11) ==> b - L 6,8(11) ==> c - SLR 5,5 ==> borrow - LTR 8,8 ==> a - BE @@L1 - LTR 7,7 ==> b - BE @@L1 - LTR 6,6 ==> c - BE @@L1 - LA 15,3(0,0) ==> i -@@L8 EQU * - LR 4,15 ==> i - MH 4,=H'2' - LH 3,0(4,8) ==> .array - N 3,=XL4'0000FFFF' - A 3,=F'65536' ==> tmp1 - LH 2,0(4,7) ==> .array - N 2,=XL4'0000FFFF' - AR 2,5 ==> tmp2,borrow - SR 3,2 ==> res,tmp2 - LR 2,3 ==> res - N 2,=F'65535' - STH 2,0(4,6) ==> .array - SLR 5,5 ==> borrow - L 2,=F'65535' - CLR 3,2 ==> res - BH @@L5 - LA 5,1(0,0) ==> borrow -@@L5 EQU * - BCTR 15,0 ==> i - LTR 15,15 ==> i - BNL @@L8 -@@L1 EQU * -* Function '__64_sub' epilogue - PDPEPIL -* Function '__64_sub' literal pool - DS 0D - LTORG -* Function '__64_sub' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64subu.c b/src/crent370/clib/@@64subu.c deleted file mode 100644 index ca6e359..0000000 --- a/src/crent370/clib/@@64subu.c +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_sub_ull'"); -void __64_sub_ull(__64* a, uint64_t b, __64* c) -{ - __64 tmp; - - if (a && c) { - __64_from_ull(&tmp, b); - __64_sub(a, &tmp, c); - } -} - diff --git a/src/crent370/clib/@@64subu.o b/src/crent370/clib/@@64subu.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64test.c b/src/crent370/clib/@@64test.c deleted file mode 100644 index ddf14f0..0000000 --- a/src/crent370/clib/@@64test.c +++ /dev/null @@ -1,233 +0,0 @@ -#include -#include -#include -#include - -__asm__("\n&FUNC SETC 'test_return_from_ptr'"); -static __64 test_return_from_ptr(__64 *value) -{ - return *value; -} - -__asm__("\n&FUNC SETC 'test_return_from_struct'"); -static __64 test_return_from_struct(__64 value) -{ - return value; -} - -__asm__("\n&FUNC SETC 'main'"); -int main(int argc, char **argv) -{ - __64 u10; - __64 u16; - __64 u100; - __64 u65535; - __64 u65536; - __64 result; - __64 tmp; - __64 tmp2; - int i; - char buf[256]; - - __64 Uresult; - - wtof("__64_lshift()"); - __64_from_u64(&result,0xffeeddccbbaa9988ULL); - wtodumpf(&result, sizeof(__64), "starting result value"); - tmp.u64 = __64_to_u64(&result); - wtodumpf(&tmp, sizeof(__64), "tmp.u64=__64_to_u64(result)"); - - for(i=0; i < 8; i++) { - __64_lshift(&result, &result, 8); - wtodumpf(&result, sizeof(__64), "result after shift 8 bits"); - } - wtof("========================================================="); - - wtof("__64_rshift_one_bit()"); -#if 0 - result.u64 = 0x8000000000000000ULL; -#else - __64_from_u32(&result, 0x80000000); - __64_lshift_word(&result, 2); -#endif - Uresult.u64 = result.u64; - wtodumpf(&Uresult, sizeof(__64), "Uresult value"); - wtodumpf(&result, sizeof(__64), "starting result value"); - for(i=0; i<64; i++) { - __64_rshift_one_bit(&result); - Uresult.u64 >>=1; - wtodumpf(&Uresult, sizeof(__64), "Uresult after right shift 1 bit"); - wtodumpf(&result, sizeof(__64), "result after __64_rshift_one_bit()"); - } - -#if 0 - __64_init(&u10); - u10.array[3] = 10; - wtodumpf(&u10, sizeof(__64), "u10"); - tmp = test_return_from_ptr(&u10); - wtodumpf(&tmp, sizeof(__64), "tmp=test_return_from_ptr(&u10)"); - tmp2 = test_return_from_struct(u10); - wtodumpf(&tmp2, sizeof(__64), "tmp2=test_return_from_struct(u10)"); - wtof("========================================================="); - - wtof("__64_lshift()"); - __64_from_int(&tmp, 0x11); - __64_from_int(&tmp2, 0x11); - for(i=0; i < 65; i++) { - wtodumpf(&tmp, sizeof(__64), "tmp"); - __64_lshift(&tmp, &result, i); - wtodumpf(&result, sizeof(__64), "result=__64_lshift(tmp,result,%d)", i); - __64_mul(&tmp, &tmp2, &tmp); - wtof("---------------------------------------------------------"); - } - wtof("========================================================="); - wtof("__64_rshift()"); - __64_from_int(&tmp, 0xCCCCCCCC); - __64_copy(&tmp, &tmp2); - __64_lshift_word(&tmp,2); - __64_add(&tmp, &tmp2, &tmp); - for(i=0; i < 65; i++) { - wtodumpf(&tmp, sizeof(__64), "tmp"); - __64_rshift(&tmp, &result, i); - wtodumpf(&result, sizeof(__64), "result=__64_rshift(tmp,result,%d)", i); - __64_add(&tmp, &tmp2, &tmp); - wtof("---------------------------------------------------------"); - } - wtof("========================================================="); - - __64_init(&u16); - u16.array[3] = 16; - wtodumpf(&u16, sizeof(__64), "u16"); - wtof("========================================================="); - - __64_init(&u100); - u100.array[3] = 100; - wtodumpf(&u100, sizeof(__64), "u100"); - wtof("========================================================="); - - __64_init(&u65535); - u65535.array[3] = 65535; - wtodumpf(&u65535, sizeof(__64), "u65535"); - wtof("========================================================="); - - __64_init(&u65536); - u65536.array[2] = 1; - wtodumpf(&u65536, sizeof(__64), "u65536"); - wtof("========================================================="); -#endif -#if 0 - __64_from_int(&result, 255); - wtodumpf(&result, sizeof(__64), "result=255"); - wtof("========================================================="); - - for(i=0; i < 64; i++) { - __64_lshift_one_bit(&result); - wtodumpf(&result, sizeof(__64), "result left shift one bit"); - } - wtof("========================================================="); - - __64_from_int(&result, 255); - wtodumpf(&result, sizeof(__64), "result=255"); - - for(i=0; i < 4; i++) { - __64_lshift_word(&result, 1); - wtodumpf(&result, sizeof(__64), "result left shift word"); - } - wtof("========================================================="); -#endif -#if 0 - __64_from_int(&tmp, 0xFFFFFFFF); - wtodumpf(&tmp, sizeof(__64), "tmp=0xFFFFFFFF"); - wtof("========================================================="); - - __64_mul(&tmp, &u65536, &result); - wtodumpf(&result, sizeof(__64), "result 0xFFFFFFFF * u65536"); - wtof("========================================================="); - - __64_copy(&result, &tmp); - __64_mul(&tmp, &u65536, &result); - wtodumpf(&result, sizeof(__64), "result 0xFFFFFFFF0000 * u65536"); - wtof("========================================================="); - - wtof("__64_rshift_one_bit()"); - __64_from_int(&result, 0x80000000); - __64_lshift_word(&result, 2); - wtodumpf(&result, sizeof(__64), "starting result value"); - for(i=0; i<64; i++) { - __64_rshift_one_bit(&result); - wtodumpf(&result, sizeof(__64), "result after __64_rshift_one_bit()"); - } -#endif -#if 0 - wtof("========================================================="); - - wtof("__div() 0xFFFFFFFF, 0x00000010, result"); - __64_from_int(&tmp, 0xFFFFFFFF); - wtodumpf(&tmp, sizeof(__64), "tmp=0xFFFFFFFF"); - __64_from_int(&u16, 0x10); - wtodumpf(&u16, sizeof(__64), "u16=0x00000010"); - __64_div(&tmp, &u16, &result); - wtodumpf(&result, sizeof(__64), "result"); - wtof("========================================================="); -#endif -#if 0 - wtof("__divmod() 0xFFFFFFFF, 0x00000010, tmp2, result"); - __64_from_int(&tmp, 0xFFFFFFFF); - wtodumpf(&tmp, sizeof(__64), "tmp=0xFFFFFFFF"); - __64_from_int(&u16, 0x10); - wtodumpf(&u16, sizeof(__64), "u16=0x00000010"); - __64_divmod(&tmp, &u16, &tmp2, &result); - wtodumpf(&tmp2, sizeof(__64), "tmp2"); - wtodumpf(&result, sizeof(__64), "result"); - wtof("========================================================="); -#endif - -#if 0 - wtof("__64_sub() u65535, u100, result"); - __64_sub(&u65535, &u100, &result); - wtodumpf(&result, sizeof(__64), "result u65535 - u100"); - wtof("========================================================="); - - wtof("__64_add() u65535, u100, result"); - __64_add(&u65535, &u100, &result); - wtodumpf(&result, sizeof(__64), "result u65535 + u100"); - wtof("========================================================="); - - wtof("__64_sub() loop 0xFFFFFFFFFFFF0000, u100, result"); - __64_init(&result); - result.array[0] = 65535; - result.array[1] = 65535; - result.array[2] = 65535; - for(i=0; i < 128; i++) { - __64_sub(&result, &u65536, &result); - wtodumpf(&result, sizeof(__64), "result -= u65536"); - } - wtof("========================================================="); -#endif - -#if 0 - __64_from_int(&u10, 10); - wtodumpf(&u10, sizeof(__64), "u10"); - - __64_from_int(&u100, 100); - wtodumpf(&u100, sizeof(__64), "u100"); - - __64_from_int(&u65535, 65535); - wtodumpf(&u65535, sizeof(__64), "u65535"); - - __64_from_int(&u65536, 65536); - wtodumpf(&u65536, sizeof(__64), "u65536"); -#endif -#if 0 - __64_to_string(&u10, buf, sizeof(buf)); - printf("u10 = %s\n", buf); - - __64_to_string(&u100, buf, sizeof(buf)); - printf("u100 = %s\n", buf); - - __64_to_string(&u65535, buf, sizeof(buf)); - printf("u65535 = %s\n", buf); -#endif - return 0; -} - diff --git a/src/crent370/clib/@@64test.o b/src/crent370/clib/@@64test.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64test.s b/src/crent370/clib/@@64test.s deleted file mode 100644 index 9417203..0000000 --- a/src/crent370/clib/@@64test.s +++ /dev/null @@ -1,254 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64test.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'test_return_from_ptr' -* Program text area - DS 0F - EJECT -* static function 'test_return_from_ptr' prologue -* frame base=88, local stack=8, call args=0 -&FUNC SETC 'test_return_from_ptr' -@@6 PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=NO - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'test_return_from_ptr' code - LR 3,0 - L 2,0(11) ==> value - MVC 0(8,3),0(2) ==> ,value - LR 15,0 -* Function 'test_return_from_ptr' epilogue - PDPEPIL -* Function 'test_return_from_ptr' literal pool - DS 0D - LTORG -* Function 'test_return_from_ptr' page table -@@PGT0 DS 0F - DC A(@@PG0) - -&FUNC SETC 'test_return_from_struct' - DS 0F - EJECT -* static function 'test_return_from_struct' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'test_return_from_struct' -@@7 PDPPRLG CINDEX=1,FRAME=88,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'test_return_from_struct' code - LR 2,0 - MVC 0(8,2),0(11) ==> ,value - LR 15,0 -* Function 'test_return_from_struct' epilogue - PDPEPIL -* Function 'test_return_from_struct' literal pool - DS 0D - LTORG -* Function 'test_return_from_struct' page table -@@PGT1 DS 0F - DC A(@@PG1) - -&FUNC SETC 'main' - DS 0F - COPY PDPMAIN - EJECT -* external function 'main' prologue -* frame base=88, local stack=288, call args=16 -&FUNC SETC 'main' -MAIN PDPPRLG CINDEX=2,FRAME=392,BASER=12,ENTRY=YES - B @@FEN2 - LTORG -@@FEN2 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG2 EQU * - LR 11,1 - L 10,=A(@@PGT2) -* Function 'main' code - MVC 88(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LA 2,368(,13) - ST 2,88(13) - MVC 92(8,13),=XL8'FFEEDDCCBBAA9988' - LA 1,88(,13) - L 15,=V(@@64FU64) - BALR 14,15 - LA 2,368(,13) - ST 2,88(13) - MVC 92(4,13),=F'8' - MVC 96(4,13),=A(@@LC1) - LA 1,88(,13) - L 15,=V(WTODUMPF) - BALR 14,15 - LA 2,368(,13) - ST 2,88(13) - LA 0,360(,13) - LA 1,88(,13) - L 15,=V(@@64TU64) - BALR 14,15 - MVC 376(8,13),360(13) - LA 2,376(,13) - ST 2,88(13) - MVC 92(4,13),=F'8' - MVC 96(4,13),=A(@@LC2) - LA 1,88(,13) - L 15,=V(WTODUMPF) - BALR 14,15 - SLR 4,4 ==> i - LA 3,368(,13) -@@L8 EQU * - ST 3,88(13) - LA 2,368(,13) - ST 2,92(13) - MVC 96(4,13),=F'8' - LA 1,88(,13) - L 15,=V(@@64LSFT) - BALR 14,15 - LA 2,368(,13) - ST 2,88(13) - MVC 92(4,13),=F'8' - MVC 96(4,13),=A(@@LC3) - LA 1,88(,13) - L 15,=V(WTODUMPF) - BALR 14,15 - A 4,=F'1' ==> i - LA 2,7(0,0) - CR 4,2 ==> i - BNH @@L8 - MVC 88(4,13),=A(@@LC4) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC5) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LA 2,368(,13) - ST 2,88(13) - MVC 92(4,13),=F'-2147483648' - LA 1,88(,13) - L 15,=V(@@64FU32) - BALR 14,15 - LA 2,368(,13) - ST 2,88(13) - MVC 92(4,13),=F'2' - LA 1,88(,13) - L 15,=V(@@64LSHW) - BALR 14,15 - MVC 384(8,13),368(13) - LA 2,384(,13) - ST 2,88(13) - MVC 92(4,13),=F'8' - MVC 96(4,13),=A(@@LC6) - LA 1,88(,13) - L 15,=V(WTODUMPF) - BALR 14,15 - LA 2,368(,13) - ST 2,88(13) - MVC 92(4,13),=F'8' - MVC 96(4,13),=A(@@LC1) - LA 1,88(,13) - L 15,=V(WTODUMPF) - BALR 14,15 - SLR 4,4 ==> i -@@L13 EQU * - LA 2,368(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64RSH1) - BALR 14,15 - L 2,384(13) - L 3,4+384(13) - SRDL 2,1 - ST 2,384(13) - ST 3,4+384(13) - LA 2,384(,13) - ST 2,88(13) - MVC 92(4,13),=F'8' - MVC 96(4,13),=A(@@LC7) - LA 1,88(,13) - L 15,=V(WTODUMPF) - BALR 14,15 - LA 2,368(,13) - ST 2,88(13) - MVC 92(4,13),=F'8' - MVC 96(4,13),=A(@@LC8) - LA 1,88(,13) - L 15,=V(WTODUMPF) - BALR 14,15 - A 4,=F'1' ==> i - LA 2,63(0,0) - CR 4,2 ==> i - BNH @@L13 - SLR 15,15 -* Function 'main' epilogue - PDPEPIL -* Function 'main' literal pool - DS 0D - LTORG -* Function 'main' page table -@@PGT2 DS 0F - DC A(@@PG2) -@@LC0 EQU * - DC C'__64_lshift()' - DC X'0' -@@LC1 EQU * - DC C'starting result value' - DC X'0' -@@LC2 EQU * - DC C'tmp.u64=__64_to_u64(result)' - DC X'0' -@@LC3 EQU * - DC C'result after shift 8 bits' - DC X'0' -@@LC4 EQU * - DC C'================================================' - DC C'=========' - DC X'0' -@@LC5 EQU * - DC C'__64_rshift_one_bit()' - DC X'0' -@@LC6 EQU * - DC C'Uresult value' - DC X'0' -@@LC7 EQU * - DC C'Uresult after right shift 1 bit' - DC X'0' -@@LC8 EQU * - DC C'result after __64_rshift_one_bit()' - DC X'0' - END @@MAIN diff --git a/src/crent370/clib/@@64ti32.c b/src/crent370/clib/@@64ti32.c deleted file mode 100644 index dbc2ea2..0000000 --- a/src/crent370/clib/@@64ti32.c +++ /dev/null @@ -1,16 +0,0 @@ -#include -#include -#include "clib64.h" - -__asm__("\n&FUNC SETC '__64_to_i32'"); -int32_t __64_to_i32(__64* n) -{ - int32_t ret = 0; - - if (n) { - ret = (int) (n->u32[1] & 0x7FFFFFFF); - } - - return ret; -} - diff --git a/src/crent370/clib/@@64ti32.o b/src/crent370/clib/@@64ti32.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64ti32.s b/src/crent370/clib/@@64ti32.s deleted file mode 100644 index 291aa51..0000000 --- a/src/crent370/clib/@@64ti32.s +++ /dev/null @@ -1,55 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64ti32.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_to_i32' -* Program text area - DS 0F - EJECT -* external function '__64_to_i32' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__64_to_i32' -@@64TI32 PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_to_i32' code - L 2,0(11) ==> n - SLR 15,15 ==> ret - LTR 2,2 ==> n - BE @@L2 - L 15,4(2) ==> ret,u32 - N 15,=F'2147483647' ==> ret -@@L2 EQU * -* Function '__64_to_i32' epilogue - PDPEPIL -* Function '__64_to_i32' literal pool - DS 0D - LTORG -* Function '__64_to_i32' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64tstr.c b/src/crent370/clib/@@64tstr.c deleted file mode 100644 index b33a817..0000000 --- a/src/crent370/clib/@@64tstr.c +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include -#include "clib64.h" - -__asm__("\n&FUNC SETC '__64_to_string'"); -void __64_to_string(__64* n, char* str, int nbytes) -{ - int x = 0; - int i = 0; - unsigned u; - char work[50] = "0"; - __64 base; - __64 tmp; - __64 rem; - - __64_from_i32(&base, 10); - - if (n && str) { - __64_copy(n, &tmp); - - while((!__64_is_zero(&tmp)) && (x < nbytes)) { - __64_divmod(&tmp, &base, &tmp, &rem); - u = rem.array[__64_ARRAY_SIZE-1]; - work[x++] = (char) ("0123456789"[u]); - } - - if (x==0) { - if (i < nbytes) str[i++] = '0'; - } - else { - for(x--; (x >= 0) && (i < nbytes); x--, i++) { - str[i] = work[x]; - } - } - if (i < nbytes) str[i] = 0; - } -} - diff --git a/src/crent370/clib/@@64tstr.o b/src/crent370/clib/@@64tstr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64tstr.s b/src/crent370/clib/@@64tstr.s deleted file mode 100644 index 44a90e5..0000000 --- a/src/crent370/clib/@@64tstr.s +++ /dev/null @@ -1,145 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64tstr.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_to_string' -* Program text area - DS 0F - EJECT -* external function '__64_to_string' prologue -* frame base=88, local stack=80, call args=16 -&FUNC SETC '__64_to_string' -@@64TSTR PDPPRLG CINDEX=0,FRAME=184,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_to_string' code - L 9,0(11) ==> n - L 8,8(11) ==> nbytes - SLR 7,7 ==> i - LR 6,7 ==> x,i - L 2,=A(@@LC0) - MVC 104(2,13),0(2) ==> work - LA 4,106(,13) - LA 5,48(0,0) - LR 2,7 ==> i - LR 3,7 ==> i - MVCL 4,2 ==> i - LA 2,160(,13) - ST 2,88(13) - MVC 92(4,13),=F'10' - LA 1,88(,13) - L 15,=V(@@64FI32) - BALR 14,15 - LTR 9,9 ==> n - BE @@L1 - L 2,4(11) ==> str - LTR 2,2 - BE @@L1 - ST 9,88(13) ==> n - LA 2,168(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@64COPY) - BALR 14,15 - B @@L3 -@@L7 EQU * - LA 2,168(,13) - ST 2,88(13) - LA 2,160(,13) - ST 2,92(13) - LA 2,168(,13) - ST 2,96(13) - LA 2,176(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@64DMOD) - BALR 14,15 - LH 3,182(13) ==> .array - N 3,=XL4'0000FFFF' - L 2,=A(@@LC1) - IC 2,0(3,2) ==> u - STC 2,104(6,13) ==> work - A 6,=F'1' ==> x -@@L3 EQU * - LA 2,168(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64IS0) - BALR 14,15 - LTR 15,15 - BNE @@L4 - CR 6,8 ==> x,nbytes - BL @@L7 -@@L4 EQU * - LTR 6,6 ==> x - BNE @@L8 - CR 7,8 ==> i,nbytes - BNL @@L10 - L 2,=F'-16' - L 3,4(11) ==> str - STC 2,0(7,3) ==> i - A 7,=F'1' ==> i - B @@L10 -@@L8 EQU * - BCTR 6,0 ==> x - LTR 6,6 ==> x - BL @@L10 - CR 7,8 ==> i,nbytes - BNL @@L10 -@@L16 EQU * - IC 2,104(13,6) ==> work - L 3,4(11) ==> str - STC 2,0(7,3) ==> i - BCTR 6,0 ==> x - A 7,=F'1' ==> i - LTR 6,6 ==> x - BL @@L10 - CR 7,8 ==> i,nbytes - BL @@L16 -@@L10 EQU * - CR 7,8 ==> i,nbytes - BNL @@L1 - SLR 2,2 - L 3,4(11) ==> str - STC 2,0(7,3) ==> i -@@L1 EQU * -* Function '__64_to_string' epilogue - PDPEPIL -* Function '__64_to_string' literal pool - DS 0D - LTORG -* Function '__64_to_string' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'0' - DC X'0' - DC 48X'00' -@@LC1 EQU * - DC C'0123456789' - DC X'0' - END diff --git a/src/crent370/clib/@@64tu32.c b/src/crent370/clib/@@64tu32.c deleted file mode 100644 index a1c755c..0000000 --- a/src/crent370/clib/@@64tu32.c +++ /dev/null @@ -1,16 +0,0 @@ -#include -#include -#include "clib64.h" - -__asm__("\n&FUNC SETC '__64_to_u32'"); -uint32_t __64_to_u32(__64* n) -{ - uint32_t ret = 0; - - if (n) { - ret = n->u32[1]; - } - - return ret; -} - diff --git a/src/crent370/clib/@@64tu32.o b/src/crent370/clib/@@64tu32.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64tu32.s b/src/crent370/clib/@@64tu32.s deleted file mode 100644 index 1e9fd5a..0000000 --- a/src/crent370/clib/@@64tu32.s +++ /dev/null @@ -1,54 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64tu32.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_to_u32' -* Program text area - DS 0F - EJECT -* external function '__64_to_u32' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__64_to_u32' -@@64TU32 PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_to_u32' code - L 2,0(11) ==> n - SLR 15,15 ==> ret - LTR 2,2 ==> n - BE @@L2 - L 15,4(2) ==> ret,u32 -@@L2 EQU * -* Function '__64_to_u32' epilogue - PDPEPIL -* Function '__64_to_u32' literal pool - DS 0D - LTORG -* Function '__64_to_u32' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64tu64.c b/src/crent370/clib/@@64tu64.c deleted file mode 100644 index d747756..0000000 --- a/src/crent370/clib/@@64tu64.c +++ /dev/null @@ -1,16 +0,0 @@ -#include -#include -#include "clib64.h" - -__asm__("\n&FUNC SETC '__64_to_u64'"); -uint64_t __64_to_u64(__64* n) -{ - uint64_t ret = 0; - - if (n) { - ret = n->u64; - } - - return ret; -} - diff --git a/src/crent370/clib/@@64tu64.o b/src/crent370/clib/@@64tu64.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64tu64.s b/src/crent370/clib/@@64tu64.s deleted file mode 100644 index 21b8bfe..0000000 --- a/src/crent370/clib/@@64tu64.s +++ /dev/null @@ -1,59 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64tu64.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_to_u64' -* Program text area - DS 0F - EJECT -* external function '__64_to_u64' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__64_to_u64' -@@64TU64 PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_to_u64' code - LR 15,0 - L 4,0(11) ==> n - SLR 2,2 ==> ret - SLR 3,3 ==> ret - LTR 4,4 ==> n - BE @@L2 - L 2,0(4) ==> ret,u64 - L 3,4+0(4) ==> ret,u64 -@@L2 EQU * - ST 2,0(15) ==> ret, - ST 3,4+0(15) ==> ret, -* Function '__64_to_u64' epilogue - PDPEPIL -* Function '__64_to_u64' literal pool - DS 0D - LTORG -* Function '__64_to_u64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64vi32.c b/src/crent370/clib/@@64vi32.c deleted file mode 100644 index a034156..0000000 --- a/src/crent370/clib/@@64vi32.c +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_divmod_i32'"); -void __64_divmod_i32(__64* a, int32_t b, __64* c, __64* d) -{ - __64 tmp; - - if (a && c && d) { - __64_from_i32(&tmp, b); - __64_divmod(a, &tmp, c, d); - } -} - diff --git a/src/crent370/clib/@@64vi32.o b/src/crent370/clib/@@64vi32.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64vi32.s b/src/crent370/clib/@@64vi32.s deleted file mode 100644 index 97735d9..0000000 --- a/src/crent370/clib/@@64vi32.s +++ /dev/null @@ -1,72 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64vi32.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_divmod_i32' -* Program text area - DS 0F - EJECT -* external function '__64_divmod_i32' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__64_divmod_i32' -@@64VI32 PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_divmod_i32' code - L 3,0(11) ==> a - L 4,8(11) ==> c - L 5,12(11) ==> d - LTR 3,3 ==> a - BE @@L1 - LTR 4,4 ==> c - BE @@L1 - LTR 5,5 ==> d - BE @@L1 - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),4(11) ==> b - LA 1,88(,13) - L 15,=V(@@64FI32) - BALR 14,15 - ST 3,88(13) ==> a - LA 2,104(,13) - ST 2,92(13) - ST 4,96(13) ==> c - ST 5,100(13) ==> d - LA 1,88(,13) - L 15,=V(@@64DMOD) - BALR 14,15 -@@L1 EQU * -* Function '__64_divmod_i32' epilogue - PDPEPIL -* Function '__64_divmod_i32' literal pool - DS 0D - LTORG -* Function '__64_divmod_i32' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64vu32.c b/src/crent370/clib/@@64vu32.c deleted file mode 100644 index a1a93cd..0000000 --- a/src/crent370/clib/@@64vu32.c +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_divmod_u32'"); -void __64_divmod_u32(__64* a, uint32_t b, __64* c, __64* d) -{ - __64 tmp; - - if (a && c && d) { - __64_from_u32(&tmp, b); - __64_divmod(a, &tmp, c, d); - } -} - diff --git a/src/crent370/clib/@@64vu32.o b/src/crent370/clib/@@64vu32.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64vu32.s b/src/crent370/clib/@@64vu32.s deleted file mode 100644 index 0b21ee7..0000000 --- a/src/crent370/clib/@@64vu32.s +++ /dev/null @@ -1,72 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64vu32.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_divmod_u32' -* Program text area - DS 0F - EJECT -* external function '__64_divmod_u32' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__64_divmod_u32' -@@64VU32 PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_divmod_u32' code - L 3,0(11) ==> a - L 4,8(11) ==> c - L 5,12(11) ==> d - LTR 3,3 ==> a - BE @@L1 - LTR 4,4 ==> c - BE @@L1 - LTR 5,5 ==> d - BE @@L1 - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),4(11) ==> b - LA 1,88(,13) - L 15,=V(@@64FU32) - BALR 14,15 - ST 3,88(13) ==> a - LA 2,104(,13) - ST 2,92(13) - ST 4,96(13) ==> c - ST 5,100(13) ==> d - LA 1,88(,13) - L 15,=V(@@64DMOD) - BALR 14,15 -@@L1 EQU * -* Function '__64_divmod_u32' epilogue - PDPEPIL -* Function '__64_divmod_u32' literal pool - DS 0D - LTORG -* Function '__64_divmod_u32' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64vu64.c b/src/crent370/clib/@@64vu64.c deleted file mode 100644 index 7a0ac54..0000000 --- a/src/crent370/clib/@@64vu64.c +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_divmod_u64'"); -void __64_divmod_u64(__64* a, uint64_t b, __64* c, __64* d) -{ - __64 tmp; - - if (a && c && d) { - __64_from_u64(&tmp, b); - __64_divmod(a, &tmp, c, d); - } -} - diff --git a/src/crent370/clib/@@64vu64.o b/src/crent370/clib/@@64vu64.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64vu64.s b/src/crent370/clib/@@64vu64.s deleted file mode 100644 index 09e6c77..0000000 --- a/src/crent370/clib/@@64vu64.s +++ /dev/null @@ -1,75 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64vu64.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_divmod_u64' -* Program text area - DS 0F - EJECT -* external function '__64_divmod_u64' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__64_divmod_u64' -@@64VU64 PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_divmod_u64' code - L 3,0(11) ==> a - L 4,4(11) ==> b - L 5,4+4(11) ==> b - L 6,12(11) ==> c - L 7,16(11) ==> d - LTR 3,3 ==> a - BE @@L1 - LTR 6,6 ==> c - BE @@L1 - LTR 7,7 ==> d - BE @@L1 - LA 2,104(,13) - ST 2,88(13) - ST 4,92(13) ==> b - ST 5,4+92(13) ==> b - LA 1,88(,13) - L 15,=V(@@64FU64) - BALR 14,15 - ST 3,88(13) ==> a - LA 2,104(,13) - ST 2,92(13) - ST 6,96(13) ==> c - ST 7,100(13) ==> d - LA 1,88(,13) - L 15,=V(@@64DMOD) - BALR 14,15 -@@L1 EQU * -* Function '__64_divmod_u64' epilogue - PDPEPIL -* Function '__64_divmod_u64' literal pool - DS 0D - LTORG -* Function '__64_divmod_u64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64xi32.c b/src/crent370/clib/@@64xi32.c deleted file mode 100644 index 62b234b..0000000 --- a/src/crent370/clib/@@64xi32.c +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_xor_i32'"); -void __64_xor_i32(__64* a, int32_t b, __64* c) -{ - __64 tmp; - - if (a && c) { - __64_from_i32(&tmp, b); - -#if 1 /* gccmvs can XOR 64 bit values */ - c->u64 = a->u64 ^ tmp.u64; -#else - __64_xor(a, &tmp, c); -#endif - } -} - diff --git a/src/crent370/clib/@@64xi32.o b/src/crent370/clib/@@64xi32.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64xi32.s b/src/crent370/clib/@@64xi32.s deleted file mode 100644 index 0aa9167..0000000 --- a/src/crent370/clib/@@64xi32.s +++ /dev/null @@ -1,67 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64xi32.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_xor_i32' -* Program text area - DS 0F - EJECT -* external function '__64_xor_i32' prologue -* frame base=88, local stack=8, call args=8 -&FUNC SETC '__64_xor_i32' -@@64XI32 PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_xor_i32' code - L 4,0(11) ==> a - L 5,8(11) ==> c - LTR 4,4 ==> a - BE @@L1 - LTR 5,5 ==> c - BE @@L1 - LA 2,96(,13) - ST 2,88(13) - MVC 92(4,13),4(11) ==> b - LA 1,88(,13) - L 15,=V(@@64FI32) - BALR 14,15 - L 2,0(4) ==> .u64 - X 2,96(13) - L 3,4(4) ==> .u64 - X 3,100(13) ==> .u64 - ST 2,0(5) ==> .u64 - ST 3,4+0(5) ==> .u64 -@@L1 EQU * -* Function '__64_xor_i32' epilogue - PDPEPIL -* Function '__64_xor_i32' literal pool - DS 0D - LTORG -* Function '__64_xor_i32' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64xor.c b/src/crent370/clib/@@64xor.c deleted file mode 100644 index 0597cea..0000000 --- a/src/crent370/clib/@@64xor.c +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_xor'"); -void __64_xor(__64* a, __64* b, __64* c) -{ - if (a && b && c) { -#if 1 /* gccmvs can XOR 64 bit values */ - c->u64 = a->u64 ^ b->u64; -#else - int i; - - for (i = 0; i < __64_ARRAY_SIZE; ++i) { - c->array[i] = (a->array[i] ^ b->array[i]); - } -#endif - } -} - diff --git a/src/crent370/clib/@@64xor.o b/src/crent370/clib/@@64xor.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64xor.s b/src/crent370/clib/@@64xor.s deleted file mode 100644 index 2b06706..0000000 --- a/src/crent370/clib/@@64xor.s +++ /dev/null @@ -1,64 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64xor.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_xor' -* Program text area - DS 0F - EJECT -* external function '__64_xor' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__64_xor' -@@64XOR PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_xor' code - L 4,0(11) ==> a - L 15,4(11) ==> b - L 5,8(11) ==> c - LTR 4,4 ==> a - BE @@L1 - LTR 15,15 ==> b - BE @@L1 - LTR 5,5 ==> c - BE @@L1 - L 2,0(4) ==> .u64 - X 2,0(15) ==> .u64 - L 3,4(4) ==> .u64 - X 3,4(15) ==> .u64 - ST 2,0(5) ==> .u64 - ST 3,4+0(5) ==> .u64 -@@L1 EQU * -* Function '__64_xor' epilogue - PDPEPIL -* Function '__64_xor' literal pool - DS 0D - LTORG -* Function '__64_xor' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64xu32.c b/src/crent370/clib/@@64xu32.c deleted file mode 100644 index 41a6f70..0000000 --- a/src/crent370/clib/@@64xu32.c +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_xor_u32'"); -void __64_xor_u32(__64* a, uint32_t b, __64* c) -{ - __64 tmp; - - if (a && c) { - __64_from_u32(&tmp, b); - -#if 1 /* gccmvs can XOR 64 bit values */ - c->u64 = a->u64 ^ tmp.u64; -#else - __64_xor(a, &tmp, c); -#endif - } -} - diff --git a/src/crent370/clib/@@64xu32.o b/src/crent370/clib/@@64xu32.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64xu32.s b/src/crent370/clib/@@64xu32.s deleted file mode 100644 index ad28731..0000000 --- a/src/crent370/clib/@@64xu32.s +++ /dev/null @@ -1,67 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64xu32.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_xor_u32' -* Program text area - DS 0F - EJECT -* external function '__64_xor_u32' prologue -* frame base=88, local stack=8, call args=8 -&FUNC SETC '__64_xor_u32' -@@64XU32 PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_xor_u32' code - L 4,0(11) ==> a - L 5,8(11) ==> c - LTR 4,4 ==> a - BE @@L1 - LTR 5,5 ==> c - BE @@L1 - LA 2,96(,13) - ST 2,88(13) - MVC 92(4,13),4(11) ==> b - LA 1,88(,13) - L 15,=V(@@64FU32) - BALR 14,15 - L 2,0(4) ==> .u64 - X 2,96(13) - L 3,4(4) ==> .u64 - X 3,100(13) ==> .u64 - ST 2,0(5) ==> .u64 - ST 3,4+0(5) ==> .u64 -@@L1 EQU * -* Function '__64_xor_u32' epilogue - PDPEPIL -* Function '__64_xor_u32' literal pool - DS 0D - LTORG -* Function '__64_xor_u32' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@64xu64.c b/src/crent370/clib/@@64xu64.c deleted file mode 100644 index 517a8ae..0000000 --- a/src/crent370/clib/@@64xu64.c +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__64_xor_u64'"); -void __64_xor_u64(__64* a, uint64_t b, __64* c) -{ - __64 tmp; - - if (a && c) { - __64_from_u64(&tmp, b); - -#if 1 /* gccmvs can XOR 64 bit values */ - c->u64 = a->u64 ^ tmp.u64; -#else - __64_xor(a, &tmp, c); -#endif - } -} - diff --git a/src/crent370/clib/@@64xu64.o b/src/crent370/clib/@@64xu64.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@64xu64.s b/src/crent370/clib/@@64xu64.s deleted file mode 100644 index 1ca94e1..0000000 --- a/src/crent370/clib/@@64xu64.s +++ /dev/null @@ -1,70 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@64xu64.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__64_xor_u64' -* Program text area - DS 0F - EJECT -* external function '__64_xor_u64' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__64_xor_u64' -@@64XU64 PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__64_xor_u64' code - L 6,0(11) ==> a - L 4,4(11) ==> b - L 5,4+4(11) ==> b - L 7,12(11) ==> c - LTR 6,6 ==> a - BE @@L1 - LTR 7,7 ==> c - BE @@L1 - LA 2,104(,13) - ST 2,88(13) - ST 4,92(13) ==> b - ST 5,4+92(13) ==> b - LA 1,88(,13) - L 15,=V(@@64FU64) - BALR 14,15 - L 2,0(6) ==> .u64 - X 2,104(13) - L 3,4(6) ==> .u64 - X 3,108(13) ==> .u64 - ST 2,0(7) ==> .u64 - ST 3,4+0(7) ==> .u64 -@@L1 EQU * -* Function '__64_xor_u64' epilogue - PDPEPIL -* Function '__64_xor_u64' literal pool - DS 0D - LTORG -* Function '__64_xor_u64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@@try.c b/src/crent370/clib/@@@try.c deleted file mode 100644 index 727d6fb..0000000 --- a/src/crent370/clib/@@@try.c +++ /dev/null @@ -1,132 +0,0 @@ -#include -#include - -typedef struct { - unsigned r[16]; -} REGS; -typedef struct { - unsigned u[2]; -} PARAM; - -__asm__("\n&FUNC SETC 'failed'"); -static int -failed(SDWA *sdwa, void *udata) -{ - PARAM *param = (PARAM*)udata; - REGS *regs = (REGS*)param->u[1]; - unsigned abcode = (*(unsigned*)&sdwa->SDWACMPF) & 0x00FFFFFF; - unsigned retry = 0; - - if (abcode) { - /* return abend code in R15 */ - regs->r[15] = abcode; - } - - /* get the retry address */ - __asm__("L\t%0,=A(RETRY)" : "=r" (retry)); - - /* suppress dump */ - sdwa->SDWACMPF = 0; - - /* update the retry registers */ - __asm__("MVC\t0(64,%0),0(%1)" : - : "r" (&sdwa->SDWASR00), "r" (regs) ); - - /* RC=4,RETRY=retry,restore registers */ - SETRP(sdwa,4,retry,1); - - /* 4=retry */ - return 4; -} - -__asm__("\n&FUNC SETC 'call'"); -static int -call(void *func, void *plist) -{ - CLIBCRT *crt = __crtget(); - int rc; - REGS regs; - - /* populate the retry registers */ - __asm__("STM\t0,14,0(%0)" : : "r" (®s)); - regs.r[15] = (unsigned) (-1); - - if (crt) crt->crttryrc = 0; - - /* create ESTAE with failed() as the recovery routine */ - rc = estae(ESTAE_CREATE, failed, ®s); - if (rc) { - rc *= -1; /* make negative */ - goto quit; - } - - __asm__( - "LR\t15,%1 => function to call \n\t" - "LR\t1,%2 => parameter list\n\t" - "BALR\t14,15 call function\n\t" - "SR\t15,15 function completed without abend\n\t" - "LR\t%0,15 save return code" - : "=r" (rc) - : "r" (func), "r" (plist) - : "0", "1", "14", "15"); - - if (!rc) goto cleanup; - - __asm__("\n" -"RETRY DS 0H"); - - __asm__("LR\t%0,15" : "=r" (rc)); - - /* isolate the system and user abend codes */ - rc &= 0xFFFFFF; - - /* save abend code in crt */ - if (crt) crt->crttryrc = rc; - -cleanup: - /* remove the estae */ - estae(ESTAE_DELETE, 0, 0); - -quit: - return rc; -} - -/* call func with ESTAE protection, RC0=success otherwise failed */ -int -___try(void *func, ...) -{ - int rc; - void *r1 = (void*)(&func)+4; - - rc = call(func, r1); - -#if 0 /* debug code */ - if (rc != 0) { - if (rc > 0xFFF) { - /* ESTAE capyured system abend */ - wtof("%s: ABEND S%03X", __func__, (rc >> 12) & 0xFFF); - } - else if (rc > 0) { - /* ESTAE captured user abend */ - wtof("%s: ABEND U%04d", __func__, rc); - } - else if (rc < 0) { - /* ESTAE CREATE failed in call() function */ - int i = rc *= -1; /* make rc a positive value */ - wtof("%s: ESTAE CREATE failed, RC=0x%08X (%d)", __func__, i, i); - } - } -#endif - - return rc; -} - -unsigned ___tryrc(void) -{ - unsigned rc = 0xFFFFFFFF; - CLIBCRT *crt = __crtget(); - - if (crt) rc = crt->crttryrc; - - return rc; -} diff --git a/src/crent370/clib/@@@try.o b/src/crent370/clib/@@@try.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@@try.s b/src/crent370/clib/@@@try.s deleted file mode 100644 index c5245f7..0000000 --- a/src/crent370/clib/@@@try.s +++ /dev/null @@ -1,201 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@@try.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'failed' -* Program text area - DS 0F - EJECT -* static function 'failed' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'failed' -@@2 PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=NO - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'failed' code - L 15,0(11) ==> sdwa - L 2,4(11) ==> udata - L 4,4(2) ==> regs,u - L 2,4(15) ==> abcode - N 2,=F'16777215' ==> abcode - LTR 2,2 ==> abcode - BE @@L2 - ST 2,60(4) ==> abcode,r -@@L2 EQU * - L 3,=A(RETRY) ==> retry - MVI 4(15),0 ==> .SDWACMPF - LR 2,15 ==> sdwa - A 2,=F'136' - MVC 0(64,2),0(4) ==> regs - MVI 252(15),4 ==> .SDWARCDE - ST 3,240(15) ==> retry,SDWARTYA - OI 253(15),8 ==> .SDWAACF2 - LA 15,4(0,0) -* Function 'failed' epilogue - PDPEPIL -* Function 'failed' literal pool - DS 0D - LTORG -* Function 'failed' page table -@@PGT0 DS 0F - DC A(@@PG0) - -&FUNC SETC 'call' - DS 0F - EJECT -* static function 'call' prologue -* frame base=88, local stack=64, call args=16 -&FUNC SETC 'call' -@@3 PDPPRLG CINDEX=1,FRAME=168,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'call' code - L 5,0(11) ==> func - L 4,4(11) ==> plist - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - LR 3,15 ==> crt - LA 2,104(,13) - STM 0,14,0(2) - MVC 164(4,13),=F'-1' ==> .r - LTR 15,15 ==> crt - BE @@L4 - MVC 376(4,15),=F'0' ==> .crttryrc -@@L4 EQU * - MVC 88(4,13),=F'0' - MVC 92(4,13),=A(@@2) - LA 2,104(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@ESTAE) - BALR 14,15 - LCR 2,15 ==> rc - LTR 15,15 ==> rc - BNE @@L6 - LR 15,5 => function to call ==> func - LR 1,4 => parameter list ==> plist - BALR 14,15 call function - SR 15,15 function completed without abend - LR 2,15 save return code ==> rc - LTR 2,2 ==> rc - BE @@L8 - -RETRY DS 0H - LR 2,15 ==> rc - N 2,=F'16777215' ==> rc - LTR 3,3 ==> crt - BE @@L8 - ST 2,376(3) ==> rc,crttryrc -@@L8 EQU * - MVC 88(4,13),=F'2' - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@ESTAE) - BALR 14,15 -@@L6 EQU * - LR 15,2 ==> rc -* Function 'call' epilogue - PDPEPIL -* Function 'call' literal pool - DS 0D - LTORG -* Function 'call' page table -@@PGT1 DS 0F - DC A(@@PG1) - DS 0F - EJECT -* external function '___try' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC '___try' -@@@TRY PDPPRLG CINDEX=2,FRAME=96,BASER=12,ENTRY=YES - B @@FEN2 - LTORG -@@FEN2 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG2 EQU * - LR 11,1 - L 10,=A(@@PGT2) -* Function '___try' code - MVC 88(4,13),0(11) - LA 2,4(,11) ==> r1 - ST 2,92(13) ==> r1 - LA 1,88(,13) - L 15,=A(@@3) - BALR 14,15 -* Function '___try' epilogue - PDPEPIL -* Function '___try' literal pool - DS 0D - LTORG -* Function '___try' page table -@@PGT2 DS 0F - DC A(@@PG2) - DS 0F - EJECT -* external function '___tryrc' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '___tryrc' -@@@TRYRC PDPPRLG CINDEX=3,FRAME=88,BASER=12,ENTRY=YES - B @@FEN3 - LTORG -@@FEN3 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG3 EQU * - LR 11,1 - L 10,=A(@@PGT3) -* Function '___tryrc' code - L 2,=F'-1' ==> rc - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - LTR 15,15 ==> crt - BE @@L12 - L 2,376(15) ==> rc,crttryrc -@@L12 EQU * - LR 15,2 ==> rc -* Function '___tryrc' epilogue - PDPEPIL -* Function '___tryrc' literal pool - DS 0D - LTORG -* Function '___tryrc' page table -@@PGT3 DS 0F - DC A(@@PG3) - END diff --git a/src/crent370/clib/@@abrpt.c b/src/crent370/clib/@@abrpt.c deleted file mode 100644 index 162ada6..0000000 --- a/src/crent370/clib/@@abrpt.c +++ /dev/null @@ -1,384 +0,0 @@ -#include -#include -#include -#include "clibstae.h" - -typedef struct { - unsigned u[2]; -} PARAM; - -__asm__("\n&FUNC SETC 'get_offset'"); -static void -get_offset(SDWA *sdwa, char *buf) -{ - unsigned *psw = (unsigned*)sdwa->SDWANXT1; - unsigned *np = (unsigned*)sdwa->SDWAGR13; - unsigned *ep; - unsigned len; - unsigned offset; - unsigned char *cp; - - *buf = 0; - if (np < (unsigned*)8192) goto quit; - - np = (unsigned*)np[1]; /* prev save area */ - ep = (unsigned*)np[4]; /* R15 */ - offset = ((unsigned)psw - (unsigned)ep); - -#if 0 - wtof("psw %08X, ep %08X, offset %08X", psw, ep, offset); -#endif - - if (ep > psw) goto quit; /* can't be right */ - if ((ep[0] >> 8) == 0x0047F0F0) { - cp = (unsigned char*)ep; - if (cp[4] > cp[3]) goto quit; /* that doesn't look right */ - - len = cp[4]; - if (len > 40) len = 40; /* keep it reasonable */ - - sprintf(buf, "epname %-*.*s offset %08X", - len, len, &cp[5], offset); - } - -quit: - return; -} - -__asm__("\n&FUNC SETC 'get_addr'"); -static void -get_addr(unsigned addr, char *buf) -{ - int rc; - int i; - int j; - int pos; - int pos2; - unsigned *np; - char *cp; - char hex[12]; - -#if 0 - /* force a bad address to test failed() recovery */ - if (!addr) addr = 0x00654320; -#endif - - /* preload "default" values */ - strcpy(buf, - "........ ........ ........ ........ *................*"); - - pos = 0; - pos2 = 37; - np = (unsigned*)addr; /* unsigned pointer to mem */ - cp = (char*)addr; /* character pointer to mem */ - - for(i=0; i < 4; i++, np++, pos+=9) { - sprintf(hex, "%08X", *np); - memcpy(&buf[pos], hex, 8); - - for(j=0; j < 4; j++, cp++, pos2++) { - if (isgraph(*cp)) { - buf[pos2] = *cp; - } - } - } - -quit: - return; -} - -__asm__("\n&FUNC SETC 'get_epname'"); -static void -get_epname(unsigned addr, char *buf) -{ - unsigned *ep = (unsigned*)addr; - unsigned len; - - *buf = 0; - if ((ep[0] >> 8) == 0x0047F0F0) { - unsigned char *cp = (unsigned char*)ep; - if (cp[4] > cp[3]) goto quit; /* that doesn't look right */ - - len = cp[4]; - if (len > 40) len = 40; /* keep it reasonable */ - - sprintf(buf, "%-*.*s", len, len, &cp[5]); - } - -quit: - return; -} - -__asm__("\n&FUNC SETC 'dump_regs'"); -static int -dump_regs(SDWA *sdwa) -{ - int i; - unsigned *n; - char buf[80]; - - for(i=0, n=&sdwa->SDWAGR00; i<16; i++, n++) { - try(get_addr, *n, buf); - - wtof("R%02d:%08X:%s", i, *n, buf); - } - - return 0; -} - -__asm__("\n&FUNC SETC 'get_sa_prev'"); -static int -get_sa_prev(unsigned *n, unsigned **prev) -{ - /* wtof("%s stack=%08X", __func__, n); */ - if (n[1] >= 0x00002000 && n[1] < 0x00FF0000) { - *prev = (unsigned*)n[1]; - } - /* wtof("%s prev=%08X", __func__, *prev); */ - return 0; -} - -__asm__("\n&FUNC SETC 'get_sa_next'"); -static int -get_sa_next(unsigned *n, unsigned **next) -{ - /* wtof("%s stack=%08X", __func__, n); */ - if (n[2] >= 0x00002000 && n[2] < 0x00FF0000) { - *next = (unsigned*)n[2]; - } - /* wtof("%s next=%08X", __func__, *next); */ - return 0; -} - -__asm__("\n&FUNC SETC 'dump_sa'"); -static int -dump_sa(SDWA *sdwa) -{ - unsigned *psa = 0; /* low core == PSA */ - unsigned *tcb = (unsigned*)psa[0x21c/4]; /* TCB == PSATOLD */ - unsigned *fsa = (unsigned*)(tcb[0x70/4] & 0x00FFFFFF); /* first save area for TCB */ - unsigned *ppa = (unsigned*)(fsa[2]); /* A(@PPA) */ - int i; - unsigned *n; - unsigned *prev; - unsigned *next; - char buf[80]; - -#if 0 - if (sdwa->SDWAGR13 < 0x00002000 || sdwa->SDWAGR13 > 0x00FF0000) { - wtof("Invalid stack pointer"); - goto quit; - } -#endif - n = (unsigned*)sdwa->SDWAGR13; - - for(prev=0, try(get_sa_prev, n, &prev); prev ; prev=0, try(get_sa_prev, n, &prev)) { - n = prev; - wtof("------------------------------------------------"); - try(get_epname, n[4], buf); - if (buf[0]) wtof("%s", buf); - try(get_addr, n, buf); - wtof("DSA:%08X:%s", n, buf); - try(get_addr, n[3], buf); - wtof("R14:%08X:%s", n[3], buf); - try(get_addr, n[4], buf); - wtof("R15:%08X:%s", n[4], buf); - try(get_addr, n[5], buf); - wtof("R00:%08X:%s", n[5], buf); - try(get_addr, n[6], buf); - wtof("R01:%08X:%s", n[6], buf); - if (n == ppa) goto quit; /* stop at A(@PPA) */ - } - - wtof("------------------------------------------------"); - wtof("Traceback interrupted, Forward from PPA %08X", ppa); - wtof("------------------------------------------------"); - - for(next=ppa; next ; next=0, try(get_sa_next, n, &next)) { - n = next; - wtof("------------------------------------------------"); - try(get_epname, n[4], buf); - if (buf[0]) wtof("%s", buf); - try(get_addr, n, buf); - wtof("DSA:%08X:%s", n, buf); - try(get_addr, n[3], buf); - wtof("R14:%08X:%s", n[3], buf); - try(get_addr, n[4], buf); - wtof("R15:%08X:%s", n[4], buf); - try(get_addr, n[5], buf); - wtof("R00:%08X:%s", n[5], buf); - try(get_addr, n[6], buf); - wtof("R01:%08X:%s", n[6], buf); - } - -quit: - return 0; -} - -__asm__("\n&FUNC SETC 'suppress_dump'"); -static int -suppress_dump(SDWA *sdwa) -{ - wtof("suppress dump requested"); - sdwa->SDWACMPF &= (0XFF - SDWAREQ); /* turn off dump flag */ - return 0; -} - -__asm__("\n&FUNC SETC 'snap_dump'"); -static int -snap_dump(SDWA *sdwa) -{ - int rc; - - wtof("snap dump requested"); - - /* open SNAP DCB for output */ - __asm__( "OPEN (SNAPDCB,(OUTPUT)) Open SNAP DCB\n\t" -" LR\t%0,15" : "=r" (rc)); - if (rc) { - wtof("OPEN for SNAP DD failed, rc=%d", rc); - goto quit; - } - - __asm__( "LA\t2,SNAPDCB\n\tSNAP DCB=(2),SDATA=ALL,PDATA=ALL" - : : : "0", "1", "2", "14", "15"); - - __asm__( "CLOSE SNAPDCB Close the SNAP DCB"); - - sdwa->SDWACMPF &= (0XFF - SDWAREQ); /* turn off dump flag */ - -quit: - return 0; -} - -__asm__("\n" -"SNAPDCB DCB DDNAME=SNAP,DSORG=PS,LRECL=125,BLKSIZE=1632, @\n" -" RECFM=VBA,MACRF=(W)"); - -__asm__("\n&FUNC SETC 'system_dump'"); -static int -system_dump(SDWA *sdwa) -{ - wtof("system_dump requested"); - goto quit; - - sdwa->SDWACMPF &= (0XFF - SDWAREQ); /* turn off dump flag */ - -quit: - return 0; -} - -__asm__("\n&FUNC SETC 'recovery'"); -static int -recovery(SDWA *sdwa, void *udata) -{ - PARAM *param = (PARAM*)udata; - int dump = DUMP_DEFAULT; - unsigned *psa = 0; /* low core == PSA */ - void *tcb = (void*)psa[0x21c/4]; /* TCB == PSATOLD */ - char *p; - int i; - unsigned abcode; - unsigned epa; - unsigned ilc; - unsigned cc; - unsigned psw[2]; - char epname[12]; - char abend[24]; - char buf[80]; - -#if 0 - wtof("Enter recovery(), dump option=%d", dump); -#endif - - if (param && param->u[1]) { - dump = (int)param->u[1]; -#if 0 - wtof("dump option from SDWAPARM %08X=%d", param, dump); -#endif - } - - abcode = *(unsigned*)&sdwa->SDWACMPF; - if (abcode & 0x00FFF000) { - /* system abend */ - abcode = (abcode & 0x00FFF000) >> 12; - sprintf(abend, "S%03X", abcode); - } - else { - abcode = (abcode & 0x00000FFF); - sprintf(abend, "U%04D", abcode); - } - - __asm__("MVC\t0(8,%0),0(%1)" : : "r" (psw), "r" (&sdwa->SDWAEMK1)); - epa = sdwa->SDWAEPA; - if (sdwa->SDWANAME[0] <= ' ') { - sprintf(epname, "%08X", sdwa->SDWAEPA); - } - else { - sprintf(epname, "%-8.8s", sdwa->SDWANAME); - for(i=0; i < 8; i++) { - if (epname[i]==' ') { - epname[i]=0; - break; - } - } - } - - try(get_offset, sdwa, buf); - wtof("ABEND %s detected for module %s %s TCB=%08X", - abend, epname, buf, tcb); - - ilc = (sdwa->SDWAPMKP & SDWAILP) >> 5; - cc = (sdwa->SDWAINT1 & SDWACC1) >> 4; - wtof("PSW:%08X %08X KEY(%u) MODE(%s) ILC(%u) CC(%u)", - psw[0], psw[1], (sdwa->SDWAMWP1 & SDWAKEY1) >> 4, - (sdwa->SDWAMWP1 & SDWAPGM1) ? "PROB" : "SUP", ilc, cc); - - psw[1] &= 0x00FFFFFF; /* remove high byte noise */ - if (psw[1] > ilc) psw[1]-=ilc; /* back up instruction length */ - try(get_addr, psw[1], buf); - wtof(">>>:%08X:%s", psw[1], buf); - - dump_regs(sdwa); - dump_sa(sdwa); - - switch(dump) { - case DUMP_SUPPRESS: - suppress_dump(sdwa); - break; - case DUMP_DEFAULT: - /* nothing to do */ - break; - case DUMP_SNAP: - snap_dump(sdwa); - break; - case DUMP_SDUMP: - system_dump(sdwa); - break; - } - - /* set RC=0, RETRY=NULL, RETREGS=NO */ - SETRP(sdwa,0,0,0); - -#if 0 - wtof("Exit recovery()"); -#endif - return 0; /* 0=continue with abend, 4=continue with retry */ -} - -int -__abrpt(ESTAE_OP estae_op, DUMP_OP dump_op) -{ - int rc = -1; - int dump = (int)dump_op; - - switch(estae_op) { - case ESTAE_CREATE: - case ESTAE_OVERLAY: - case ESTAE_DELETE: - rc = __estae(estae_op, recovery, (void*)dump); - break; - } - - return rc; -} diff --git a/src/crent370/clib/@@abrpt.o b/src/crent370/clib/@@abrpt.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@abrpt.s b/src/crent370/clib/@@abrpt.s deleted file mode 100644 index d6dd294..0000000 --- a/src/crent370/clib/@@abrpt.s +++ /dev/null @@ -1,1040 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@abrpt.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'get_offset' -* Program text area - DS 0F - EJECT -* static function 'get_offset' prologue -* frame base=88, local stack=0, call args=24 -&FUNC SETC 'get_offset' -@@0 PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=NO - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'get_offset' code - L 2,0(11) ==> sdwa - L 4,4(11) ==> buf - L 3,108(2) ==> psw,SDWANXT1 - L 2,76(2) ==> np,SDWAGR13 - MVI 0(4),0 ==> buf - L 5,=F'8191' - CLR 2,5 ==> np - BNH @@L1 - L 2,4(2) ==> np - L 15,16(2) ==> ep - LR 5,3 ==> offset,psw - SR 5,15 ==> offset,ep - CLR 15,3 ==> ep,psw - BH @@L1 - L 2,0(15) ==> ep - SRL 2,8 - L 6,=F'4714736' - CLR 2,6 - BNE @@L1 - LR 2,15 ==> cp,ep - CLC 4(1,15),3(15) - BH @@L1 - SLR 3,3 ==> len - IC 3,4(15) ==> len - LA 6,40(0,0) - CLR 3,6 ==> len - BNH @@L7 - LR 3,6 ==> len -@@L7 EQU * - ST 4,88(13) ==> buf - MVC 92(4,13),=A(@@LC0) - ST 3,96(13) ==> len - ST 3,100(13) ==> len - A 2,=F'5' - ST 2,104(13) - ST 5,108(13) ==> offset - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 -@@L3 EQU * -@@L1 EQU * -* Function 'get_offset' epilogue - PDPEPIL -* Function 'get_offset' literal pool - DS 0D - LTORG -* Function 'get_offset' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'epname %-*.*s offset %08X' - DC X'0' - -&FUNC SETC 'get_addr' - DS 0F - EJECT -* static function 'get_addr' prologue -* frame base=88, local stack=24, call args=16 -&FUNC SETC 'get_addr' -@@1 PDPPRLG CINDEX=1,FRAME=128,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'get_addr' code - L 8,4(11) ==> buf - ST 8,88(13) ==> buf - MVC 92(4,13),=A(@@LC1) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - MVC 120(4,13),=F'0' ==> pos - LA 5,37(0,0) ==> pos2 - L 6,0(11) ==> np,addr - LR 4,6 ==> cp,np - SLR 9,9 ==> i - L 7,=V(@@ISBUF) -@@L19 EQU * - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC2) - MVC 96(4,13),0(6) ==> np - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - L 2,120(13) ==> pos - AR 2,8 ==> buf - ST 2,88(13) - LA 2,104(,13) - ST 2,92(13) - MVC 96(4,13),=F'8' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - SLR 15,15 ==> j -@@L18 EQU * - SLR 2,2 - IC 2,0(4) ==> cp - L 3,0(7) ==> __isbuf - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'16' - CH 2,=H'0' - BE @@L15 - IC 2,0(4) ==> cp - STC 2,0(5,8) ==> pos2 -@@L15 EQU * - A 15,=F'1' ==> j - A 4,=F'1' ==> cp - A 5,=F'1' ==> pos2 - LA 2,3(0,0) - CR 15,2 ==> j - BNH @@L18 - A 9,=F'1' ==> i - A 6,=F'4' ==> np - L 2,120(13) ==> pos - A 2,=F'9' - ST 2,120(13) ==> pos - LA 2,3(0,0) - CR 9,2 ==> i - BNH @@L19 -@@L20 EQU * -* Function 'get_addr' epilogue - PDPEPIL -* Function 'get_addr' literal pool - DS 0D - LTORG -* Function 'get_addr' page table -@@PGT1 DS 0F - DC A(@@PG1) -@@LC1 EQU * - DC C'........ ........ ........ ........ *...........' - DC C'.....*' - DC X'0' -@@LC2 EQU * - DC C'%08X' - DC X'0' - -&FUNC SETC 'get_epname' - DS 0F - EJECT -* static function 'get_epname' prologue -* frame base=88, local stack=0, call args=24 -&FUNC SETC 'get_epname' -@@2 PDPPRLG CINDEX=2,FRAME=112,BASER=12,ENTRY=NO - B @@FEN2 - LTORG -@@FEN2 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG2 EQU * - LR 11,1 - L 10,=A(@@PGT2) -* Function 'get_epname' code - L 15,0(11) ==> addr - L 3,4(11) ==> buf - MVI 0(3),0 ==> buf - L 2,0(15) ==> addr - SRL 2,8 - L 4,=F'4714736' - CLR 2,4 - BNE @@L25 - LR 2,15 ==> cp,addr - CLC 4(1,15),3(15) - BH @@L25 - SLR 15,15 ==> len - IC 15,4(2) ==> len - LA 4,40(0,0) - CLR 15,4 ==> len - BNH @@L29 - LR 15,4 ==> len -@@L29 EQU * - ST 3,88(13) ==> buf - MVC 92(4,13),=A(@@LC3) - ST 15,96(13) ==> len - ST 15,100(13) ==> len - A 2,=F'5' - ST 2,104(13) - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 -@@L28 EQU * -@@L25 EQU * -* Function 'get_epname' epilogue - PDPEPIL -* Function 'get_epname' literal pool - DS 0D - LTORG -* Function 'get_epname' page table -@@PGT2 DS 0F - DC A(@@PG2) -@@LC3 EQU * - DC C'%-*.*s' - DC X'0' - -&FUNC SETC 'dump_regs' - DS 0F - EJECT -* static function 'dump_regs' prologue -* frame base=88, local stack=80, call args=16 -&FUNC SETC 'dump_regs' -@@3 PDPPRLG CINDEX=3,FRAME=184,BASER=12,ENTRY=NO - B @@FEN3 - LTORG -@@FEN3 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG3 EQU * - LR 11,1 - L 10,=A(@@PGT3) -* Function 'dump_regs' code - SLR 3,3 ==> i - L 2,0(11) ==> n,sdwa - A 2,=F'24' ==> n - LA 4,104(,13) -@@L35 EQU * - MVC 88(4,13),=A(@@1) - MVC 92(4,13),0(2) ==> n - ST 4,96(13) - LA 1,88(,13) - L 15,=V(@@@TRY) - BALR 14,15 - MVC 88(4,13),=A(@@LC4) - ST 3,92(13) ==> i - MVC 96(4,13),0(2) ==> n - ST 4,100(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - A 3,=F'1' ==> i - A 2,=F'4' ==> n - LA 5,15(0,0) - CR 3,5 ==> i - BNH @@L35 - SLR 15,15 -* Function 'dump_regs' epilogue - PDPEPIL -* Function 'dump_regs' literal pool - DS 0D - LTORG -* Function 'dump_regs' page table -@@PGT3 DS 0F - DC A(@@PG3) -@@LC4 EQU * - DC C'R%02d:%08X:%s' - DC X'0' - -&FUNC SETC 'get_sa_prev' - DS 0F - EJECT -* static function 'get_sa_prev' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'get_sa_prev' -@@4 PDPPRLG CINDEX=4,FRAME=88,BASER=12,ENTRY=NO - B @@FEN4 - LTORG -@@FEN4 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG4 EQU * - LR 11,1 - L 10,=A(@@PGT4) -* Function 'get_sa_prev' code - L 15,0(11) ==> n - L 2,4(15) - A 2,=F'-8192' - L 3,=F'16703487' - CLR 2,3 - BH @@L39 - L 2,4(11) ==> prev - MVC 0(4,2),4(15) ==> prev -@@L39 EQU * - SLR 15,15 -* Function 'get_sa_prev' epilogue - PDPEPIL -* Function 'get_sa_prev' literal pool - DS 0D - LTORG -* Function 'get_sa_prev' page table -@@PGT4 DS 0F - DC A(@@PG4) - -&FUNC SETC 'get_sa_next' - DS 0F - EJECT -* static function 'get_sa_next' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'get_sa_next' -@@5 PDPPRLG CINDEX=5,FRAME=88,BASER=12,ENTRY=NO - B @@FEN5 - LTORG -@@FEN5 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG5 EQU * - LR 11,1 - L 10,=A(@@PGT5) -* Function 'get_sa_next' code - L 15,0(11) ==> n - L 2,8(15) - A 2,=F'-8192' - L 3,=F'16703487' - CLR 2,3 - BH @@L41 - L 2,4(11) ==> next - MVC 0(4,2),8(15) ==> next -@@L41 EQU * - SLR 15,15 -* Function 'get_sa_next' epilogue - PDPEPIL -* Function 'get_sa_next' literal pool - DS 0D - LTORG -* Function 'get_sa_next' page table -@@PGT5 DS 0F - DC A(@@PG5) - -&FUNC SETC 'dump_sa' - DS 0F - EJECT -* static function 'dump_sa' prologue -* frame base=88, local stack=88, call args=16 -&FUNC SETC 'dump_sa' -@@6 PDPPRLG CINDEX=6,FRAME=192,BASER=12,ENTRY=NO - B @@FEN6 - LTORG -@@FEN6 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG6 EQU * - LR 11,1 - L 10,=A(@@PGT6) -* Function 'dump_sa' code - SLR 3,3 ==> psa - L 2,540(3) ==> tcb - L 2,112(2) ==> fsa - N 2,=F'16777215' ==> fsa - L 4,8(2) ==> ppa - L 2,0(11) ==> sdwa - L 2,76(2) ==> n,SDWAGR13 - ST 3,184(13) ==> psa - MVC 88(4,13),=A(@@4) - ST 2,92(13) ==> n - LA 2,184(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@@TRY) - BALR 14,15 - L 2,184(13) - LTR 2,2 - BE @@L58 - LA 5,104(,13) - LR 3,5 -@@L50 EQU * - L 2,184(13) ==> n - MVC 88(4,13),=A(@@LC5) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@2) - MVC 92(4,13),16(2) - ST 5,96(13) - LA 1,88(,13) - L 15,=V(@@@TRY) - BALR 14,15 - CLI 104(13),0 ==> buf - BE @@L47 - MVC 88(4,13),=A(@@LC6) - ST 5,92(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L47 EQU * - MVC 88(4,13),=A(@@1) - ST 2,92(13) ==> n - ST 3,96(13) - LA 1,88(,13) - L 15,=V(@@@TRY) - BALR 14,15 - MVC 88(4,13),=A(@@LC7) - ST 2,92(13) ==> n - ST 3,96(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@1) - MVC 92(4,13),12(2) - ST 3,96(13) - LA 1,88(,13) - L 15,=V(@@@TRY) - BALR 14,15 - MVC 88(4,13),=A(@@LC8) - MVC 92(4,13),12(2) - ST 3,96(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@1) - MVC 92(4,13),16(2) - ST 3,96(13) - LA 1,88(,13) - L 15,=V(@@@TRY) - BALR 14,15 - MVC 88(4,13),=A(@@LC9) - MVC 92(4,13),16(2) - ST 3,96(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@1) - MVC 92(4,13),20(2) - ST 3,96(13) - LA 1,88(,13) - L 15,=V(@@@TRY) - BALR 14,15 - MVC 88(4,13),=A(@@LC10) - MVC 92(4,13),20(2) - ST 3,96(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@1) - MVC 92(4,13),24(2) - ST 3,96(13) - LA 1,88(,13) - L 15,=V(@@@TRY) - BALR 14,15 - MVC 88(4,13),=A(@@LC11) - MVC 92(4,13),24(2) - ST 3,96(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - CLR 2,4 ==> n,ppa - BE @@L49 - MVC 184(4,13),=F'0' - MVC 88(4,13),=A(@@4) - ST 2,92(13) ==> n - LA 2,184(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@@TRY) - BALR 14,15 - L 2,184(13) - LTR 2,2 - BNE @@L50 -@@L58 EQU * - MVC 88(4,13),=A(@@LC5) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC12) - ST 4,92(13) ==> ppa - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC5) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - ST 4,188(13) ==> ppa - LTR 4,4 - BE @@L49 - LA 4,104(,13) - LR 3,4 -@@L56 EQU * - L 2,188(13) ==> n - MVC 88(4,13),=A(@@LC5) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@2) - MVC 92(4,13),16(2) - ST 4,96(13) - LA 1,88(,13) - L 15,=V(@@@TRY) - BALR 14,15 - CLI 104(13),0 ==> buf - BE @@L55 - MVC 88(4,13),=A(@@LC6) - ST 4,92(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L55 EQU * - MVC 88(4,13),=A(@@1) - ST 2,92(13) ==> n - ST 3,96(13) - LA 1,88(,13) - L 15,=V(@@@TRY) - BALR 14,15 - MVC 88(4,13),=A(@@LC7) - ST 2,92(13) ==> n - ST 3,96(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@1) - MVC 92(4,13),12(2) - ST 3,96(13) - LA 1,88(,13) - L 15,=V(@@@TRY) - BALR 14,15 - MVC 88(4,13),=A(@@LC8) - MVC 92(4,13),12(2) - ST 3,96(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@1) - MVC 92(4,13),16(2) - ST 3,96(13) - LA 1,88(,13) - L 15,=V(@@@TRY) - BALR 14,15 - MVC 88(4,13),=A(@@LC9) - MVC 92(4,13),16(2) - ST 3,96(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@1) - MVC 92(4,13),20(2) - ST 3,96(13) - LA 1,88(,13) - L 15,=V(@@@TRY) - BALR 14,15 - MVC 88(4,13),=A(@@LC10) - MVC 92(4,13),20(2) - ST 3,96(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@1) - MVC 92(4,13),24(2) - ST 3,96(13) - LA 1,88(,13) - L 15,=V(@@@TRY) - BALR 14,15 - MVC 88(4,13),=A(@@LC11) - MVC 92(4,13),24(2) - ST 3,96(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 188(4,13),=F'0' - MVC 88(4,13),=A(@@5) - ST 2,92(13) ==> n - LA 2,188(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@@TRY) - BALR 14,15 - L 2,188(13) - LTR 2,2 - BNE @@L56 -@@L49 EQU * - SLR 15,15 -* Function 'dump_sa' epilogue - PDPEPIL -* Function 'dump_sa' literal pool - DS 0D - LTORG -* Function 'dump_sa' page table -@@PGT6 DS 0F - DC A(@@PG6) -@@LC5 EQU * - DC C'------------------------------------------------' - DC X'0' -@@LC6 EQU * - DC C'%s' - DC X'0' -@@LC7 EQU * - DC C'DSA:%08X:%s' - DC X'0' -@@LC8 EQU * - DC C'R14:%08X:%s' - DC X'0' -@@LC9 EQU * - DC C'R15:%08X:%s' - DC X'0' -@@LC10 EQU * - DC C'R00:%08X:%s' - DC X'0' -@@LC11 EQU * - DC C'R01:%08X:%s' - DC X'0' -@@LC12 EQU * - DC C'Traceback interrupted, Forward from PPA %08X' - DC X'0' - -&FUNC SETC 'suppress_dump' - DS 0F - EJECT -* static function 'suppress_dump' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'suppress_dump' -@@7 PDPPRLG CINDEX=7,FRAME=96,BASER=12,ENTRY=NO - B @@FEN7 - LTORG -@@FEN7 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG7 EQU * - LR 11,1 - L 10,=A(@@PGT7) -* Function 'suppress_dump' code - L 2,0(11) ==> sdwa - MVC 88(4,13),=A(@@LC13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - NI 4(2),127 ==> .SDWACMPF - SLR 15,15 -* Function 'suppress_dump' epilogue - PDPEPIL -* Function 'suppress_dump' literal pool - DS 0D - LTORG -* Function 'suppress_dump' page table -@@PGT7 DS 0F - DC A(@@PG7) -@@LC13 EQU * - DC C'suppress dump requested' - DC X'0' - -&FUNC SETC 'snap_dump' - DS 0F - EJECT -* static function 'snap_dump' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'snap_dump' -@@8 PDPPRLG CINDEX=8,FRAME=96,BASER=12,ENTRY=NO - B @@FEN8 - LTORG -@@FEN8 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG8 EQU * - LR 11,1 - L 10,=A(@@PGT8) -* Function 'snap_dump' code - L 3,0(11) ==> sdwa - MVC 88(4,13),=A(@@LC14) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - OPEN (SNAPDCB,(OUTPUT)) Open SNAP DCB - LR 2,15 ==> rc - LTR 2,2 ==> rc - BE @@L62 - MVC 88(4,13),=A(@@LC15) - ST 2,92(13) ==> rc - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - B @@L63 -@@L62 EQU * - LA 2,SNAPDCB - SNAP DCB=(2),SDATA=ALL,PDATA=ALL - CLOSE SNAPDCB Close the SNAP DCB - NI 4(3),127 ==> .SDWACMPF -@@L63 EQU * - SLR 15,15 -* Function 'snap_dump' epilogue - PDPEPIL -* Function 'snap_dump' literal pool - DS 0D - LTORG -* Function 'snap_dump' page table -@@PGT8 DS 0F - DC A(@@PG8) -@@LC14 EQU * - DC C'snap dump requested' - DC X'0' -@@LC15 EQU * - DC C'OPEN for SNAP DD failed, rc=%d' - DC X'0' - -SNAPDCB DCB DDNAME=SNAP,DSORG=PS,LRECL=125,BLKSIZE=1632, @ - RECFM=VBA,MACRF=(W) - -&FUNC SETC 'system_dump' - DS 0F - EJECT -* static function 'system_dump' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'system_dump' -@@9 PDPPRLG CINDEX=9,FRAME=96,BASER=12,ENTRY=NO - B @@FEN9 - LTORG -@@FEN9 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG9 EQU * - LR 11,1 - L 10,=A(@@PGT9) -* Function 'system_dump' code - MVC 88(4,13),=A(@@LC16) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L65 EQU * - SLR 15,15 -* Function 'system_dump' epilogue - PDPEPIL -* Function 'system_dump' literal pool - DS 0D - LTORG -* Function 'system_dump' page table -@@PGT9 DS 0F - DC A(@@PG9) -@@LC16 EQU * - DC C'system_dump requested' - DC X'0' - -&FUNC SETC 'recovery' - DS 0F - EJECT -* static function 'recovery' prologue -* frame base=88, local stack=128, call args=32 -&FUNC SETC 'recovery' -@@10 PDPPRLG CINDEX=10,FRAME=248,BASER=12,ENTRY=NO - B @@FEN10 - LTORG -@@FEN10 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG10 EQU * - LR 11,1 - L 10,=A(@@PGT10) -* Function 'recovery' code - L 5,0(11) ==> sdwa - L 3,4(11) ==> udata - LA 6,1(0,0) ==> dump - SLR 2,2 ==> psa - L 4,540(2) ==> tcb - LTR 3,3 ==> udata - BE @@L67 - L 2,4(3) ==> dump,u - LTR 2,2 ==> dump - BE @@L67 - LR 6,2 ==> dump -@@L67 EQU * - L 3,4(5) ==> abcode - LR 2,3 ==> abcode - N 2,=F'16773120' ==> abcode - LTR 2,2 ==> abcode - BE @@L68 - LR 3,2 ==> abcode - SRL 3,12 ==> abcode - LA 2,136(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC17) - B @@L91 -@@L68 EQU * - LA 2,136(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC18) - N 3,=F'4095' ==> abcode -@@L91 EQU * - ST 3,96(13) ==> abcode - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - LR 3,5 ==> sdwa - A 3,=F'104' - LA 2,240(,13) - MVC 0(8,2),0(3) - L 3,96(5) ==> epa,SDWAEPA - CLI 88(5),64 ==> .SDWANAME - BH @@L70 - LA 2,120(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC2) - ST 3,96(13) ==> epa - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - B @@L71 -@@L90 EQU * - SLR 2,2 - STC 2,120(13,3) ==> epname - B @@L71 -@@L70 EQU * - LA 2,120(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC19) - LR 2,5 ==> sdwa - A 2,=F'88' - ST 2,96(13) - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - SLR 3,3 ==> i -@@L77 EQU * - IC 2,120(13,3) ==> epname - SLL 2,24 - SRA 2,24 - C 2,=F'64' - BE @@L90 - A 3,=F'1' ==> i - LA 2,7(0,0) - CR 3,2 ==> i - BNH @@L77 -@@L71 EQU * - MVC 88(4,13),=A(@@0) - ST 5,92(13) ==> sdwa - LA 3,160(,13) - ST 3,96(13) - LA 1,88(,13) - L 15,=V(@@@TRY) - BALR 14,15 - MVC 88(4,13),=A(@@LC20) - LA 2,136(,13) - ST 2,92(13) - LA 2,120(,13) - ST 2,96(13) - ST 3,100(13) - ST 4,104(13) ==> tcb - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - IC 2,20(5) ==> .SDWAPMKP - SRL 2,5 ==> ilc - LR 4,2 ==> ilc - N 4,=F'6' ==> ilc - IC 2,106(5) ==> .SDWAINT1 - SRL 2,4 ==> cc - LR 15,2 ==> cc - N 15,=F'3' ==> cc - MVC 88(4,13),=A(@@LC21) - MVC 92(4,13),240(13) - MVC 96(4,13),244(13) ==> psw - IC 2,105(5) ==> .SDWAMWP1 - SRL 2,4 - N 2,=F'15' - ST 2,100(13) - IC 2,105(5) ==> .SDWAMWP1 - N 2,=F'1' - L 3,=A(@@LC22) - CLM 2,1,=XL1'00' - BNE @@L79 - L 3,=A(@@LC23) -@@L79 EQU * - ST 3,104(13) - ST 4,108(13) ==> ilc - ST 15,112(13) ==> cc - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LA 3,244(,13) - L 2,0(3) ==> psw - N 2,=F'16777215' - ST 2,0(3) ==> psw - CLR 2,4 ==> ilc - BNH @@L80 - SR 2,4 ==> ilc - ST 2,0(3) ==> psw -@@L80 EQU * - MVC 88(4,13),=A(@@1) - LA 3,244(,13) - MVC 92(4,13),0(3) ==> psw - LA 2,160(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@@TRY) - BALR 14,15 - MVC 88(4,13),=A(@@LC24) - MVC 92(4,13),0(3) ==> psw - ST 2,96(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - ST 5,88(13) ==> sdwa - LA 1,88(,13) - L 15,=A(@@3) - BALR 14,15 - ST 5,88(13) ==> sdwa - LA 1,88(,13) - L 15,=A(@@6) - BALR 14,15 - LA 2,1(0,0) - CR 6,2 ==> dump - BE @@L81 - BH @@L88 - LTR 6,6 ==> dump - BE @@L82 - B @@L81 -@@L88 EQU * - LA 2,2(0,0) - CLR 6,2 ==> dump - BE @@L84 - LA 2,3(0,0) - CLR 6,2 ==> dump - BE @@L85 - B @@L81 -@@L82 EQU * - ST 5,88(13) ==> sdwa - LA 1,88(,13) - L 15,=A(@@7) - BALR 14,15 - B @@L81 -@@L84 EQU * - ST 5,88(13) ==> sdwa - LA 1,88(,13) - L 15,=A(@@8) - BALR 14,15 - B @@L81 -@@L85 EQU * - ST 5,88(13) ==> sdwa - LA 1,88(,13) - L 15,=A(@@9) - BALR 14,15 -@@L81 EQU * - MVI 252(5),0 ==> .SDWARCDE - MVC 240(4,5),=F'0' ==> .SDWARTYA - SLR 15,15 -* Function 'recovery' epilogue - PDPEPIL -* Function 'recovery' literal pool - DS 0D - LTORG -* Function 'recovery' page table -@@PGT10 DS 0F - DC A(@@PG10) -@@LC17 EQU * - DC C'S%03X' - DC X'0' -@@LC18 EQU * - DC C'U%04D' - DC X'0' -@@LC19 EQU * - DC C'%-8.8s' - DC X'0' -@@LC20 EQU * - DC C'ABEND %s detected for module %s %s TCB=%08X' - DC X'0' -@@LC21 EQU * - DC C'PSW:%08X %08X KEY(%u) MODE(%s) ILC(%u) CC(%u)' - DC X'0' -@@LC22 EQU * - DC C'PROB' - DC X'0' -@@LC23 EQU * - DC C'SUP' - DC X'0' -@@LC24 EQU * - DC C'>>>:%08X:%s' - DC X'0' - DS 0F - EJECT -* external function '__abrpt' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__abrpt' -@@ABRPT PDPPRLG CINDEX=11,FRAME=104,BASER=12,ENTRY=YES - B @@FEN11 - LTORG -@@FEN11 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG11 EQU * - LR 11,1 - L 10,=A(@@PGT11) -* Function '__abrpt' code - L 2,0(11) ==> estae_op - L 15,=F'-1' ==> rc - LA 3,2(0,0) - CLR 2,3 ==> estae_op - BH @@L93 - ST 2,88(13) ==> estae_op - MVC 92(4,13),=A(@@10) - MVC 96(4,13),4(11) ==> dump_op - LA 1,88(,13) - L 15,=V(@@ESTAE) - BALR 14,15 -@@L93 EQU * -* Function '__abrpt' epilogue - PDPEPIL -* Function '__abrpt' literal pool - DS 0D - LTORG -* Function '__abrpt' page table -@@PGT11 DS 0F - DC A(@@PG11) - END diff --git a/src/crent370/clib/@@apfset.c b/src/crent370/clib/@@apfset.c deleted file mode 100644 index 1ffe85e..0000000 --- a/src/crent370/clib/@@apfset.c +++ /dev/null @@ -1,64 +0,0 @@ -#include - -static int unauth_setup(const char *name); -static int auth_pgm(const char *name); - -__asm__("\n&FUNC SETC 'clib_apf_setup'"); -int -clib_apf_setup(const char *pgm) -{ - int rc = 0; - CLIBCRT *crt = __crtget(); /* A(CLIBCRT) */ - - if (!(crt->crtopts & CRTOPTS_AUTH)) { - /* this task has not been authorized yet */ - rc = unauth_setup(pgm); - } - - return rc; -} - -__asm__("\n&FUNC SETC 'unauth_setup'"); -static int unauth_setup(const char *name) -{ - int rc = 0; - CLIBCRT *crt = __crtget(); /* A(CLIBCRT) */ - - /* this task is not currently APF authorized */ - rc = __autask(); /* APF authorize this task via SVC 244 */ - /* wtof("%s __autask() rc=%d", __func__, rc); */ - if (rc==0) { - if (crt->crtauth & CRTAUTH_ON) { - /* we want the STEPLIB APF authorized as well */ - rc = __austep(); /* APF authorize the STEPLIB */ - if (rc==0) { - if (crt->crtauth & CRTAUTH_STEPLIB) { - rc = auth_pgm(name); - } - } - } - else { - rc = auth_pgm(name); - } - } - - return rc; -} - -__asm__("\n&FUNC SETC 'auth_pgm'"); -static int auth_pgm(const char *name) -{ - int rc = 0; - - rc = clib_auth_name(name); - /* wtof("%s auth_name(%s) rc=%d", __func__, name, rc); */ - - rc = clib_identify_cthread(); - /* wtof("%s identify_cthread() rc=%d", __func__, rc); */ - - /* mark CTHREAD as an authorized entry point AC(1) */ - rc = clib_auth_name("CTHREAD"); - - return rc; -} - diff --git a/src/crent370/clib/@@apfset.o b/src/crent370/clib/@@apfset.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@apfset.s b/src/crent370/clib/@@apfset.s deleted file mode 100644 index 725a2fe..0000000 --- a/src/crent370/clib/@@apfset.s +++ /dev/null @@ -1,158 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@apfset.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'clib_apf_setup' -* Program text area - DS 0F - EJECT -* external function 'clib_apf_setup' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'clib_apf_setup' -@@APFSET PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'clib_apf_setup' code - SLR 3,3 ==> rc - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - IC 2,268(15) ==> .crtopts - N 2,=F'1' - CLM 2,1,=XL1'00' - BNE @@L2 - MVC 88(4,13),0(11) ==> pgm - LA 1,88(,13) - L 15,=A(@@6) - BALR 14,15 - LR 3,15 ==> rc -@@L2 EQU * - LR 15,3 ==> rc -* Function 'clib_apf_setup' epilogue - PDPEPIL -* Function 'clib_apf_setup' literal pool - DS 0D - LTORG -* Function 'clib_apf_setup' page table -@@PGT0 DS 0F - DC A(@@PG0) - -&FUNC SETC 'unauth_setup' - DS 0F - EJECT -* static function 'unauth_setup' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'unauth_setup' -@@6 PDPPRLG CINDEX=1,FRAME=96,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'unauth_setup' code - L 4,0(11) ==> name - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - LR 3,15 ==> crt - LA 1,88(,13) - L 15,=V(@@AUTASK) - BALR 14,15 - LTR 15,15 ==> rc - BNE @@L4 - IC 2,269(3) ==> .crtauth - N 2,=F'-128' - CLM 2,1,=XL1'00' - BE @@L5 - LA 1,88(,13) - L 15,=V(@@AUSTEP) - BALR 14,15 - LTR 15,15 ==> rc - BNE @@L4 - IC 2,269(3) ==> .crtauth - N 2,=F'64' - CLM 2,1,=XL1'00' - BE @@L4 -@@L5 EQU * - ST 4,88(13) ==> name - LA 1,88(,13) - L 15,=A(@@7) - BALR 14,15 -@@L4 EQU * -* Function 'unauth_setup' epilogue - PDPEPIL -* Function 'unauth_setup' literal pool - DS 0D - LTORG -* Function 'unauth_setup' page table -@@PGT1 DS 0F - DC A(@@PG1) - -&FUNC SETC 'auth_pgm' - DS 0F - EJECT -* static function 'auth_pgm' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'auth_pgm' -@@7 PDPPRLG CINDEX=2,FRAME=96,BASER=12,ENTRY=NO - B @@FEN2 - LTORG -@@FEN2 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG2 EQU * - LR 11,1 - L 10,=A(@@PGT2) -* Function 'auth_pgm' code - MVC 88(4,13),0(11) ==> name - LA 1,88(,13) - L 15,=V(@@AUTNAM) - BALR 14,15 - LA 1,88(,13) - L 15,=V(@@IDECTH) - BALR 14,15 - MVC 88(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(@@AUTNAM) - BALR 14,15 -* Function 'auth_pgm' epilogue - PDPEPIL -* Function 'auth_pgm' literal pool - DS 0D - LTORG -* Function 'auth_pgm' page table -@@PGT2 DS 0F - DC A(@@PG2) -@@LC0 EQU * - DC C'CTHREAD' - DC X'0' - END diff --git a/src/crent370/clib/@@aradd.c b/src/crent370/clib/@@aradd.c deleted file mode 100644 index 410a5f6..0000000 --- a/src/crent370/clib/@@aradd.c +++ /dev/null @@ -1,69 +0,0 @@ -/* @@ARADD.C -** Dynamic array -*/ -#include "clibary.h" -#include "errno.h" - -__asm__("\n&FUNC SETC 'arrayadd'"); -int -arrayadd(void * varray, void *vitem) -{ - int rc = 0; - char ***carray = varray; - ARRAY *array; - - if (!carray) { - errno = EINVAL; - rc = -1; - goto quit; - } - - if (!*carray) { - /* wtof("%s arraynew(%u)", __func__, ARRAY_DEFAULT); */ - *carray = arraynew( ARRAY_DEFAULT ); - /* wtof("%s ptr=%08X", __func__, *carray); */ - } - - if (!*carray) { - errno = ENOMEM; - rc = -1; - goto quit; - } - - array = (ARRAY *)(((char *)*carray) - sizeof(ARRAY)); - - if (memcmp(array->eye, ARRAY_EYE, 4) != 0) { - errno = EINVAL; - rc = -1; - goto quit; - } - - if (array->size <= array->count) { - unsigned oldbytes = (ARRAY_SIZE + array->size) * sizeof(void *); - unsigned newbytes = - (ARRAY_SIZE + ARRAY_DEFAULT + array->size) * sizeof(void *); - - void *vnew = calloc(1, newbytes); - /* wtof("%s calloc(1,%u) = %08X, oldbytes=%u", __func__, newbytes, vnew, oldbytes); */ - if (!vnew) { - errno = ENOMEM; - rc = -1; - goto quit; - } - - memcpy(vnew, array, oldbytes); - - free(array); - - array = vnew; - array->size += ARRAY_DEFAULT; - - vnew = (void *)((char *)vnew + sizeof(ARRAY)); - *carray = vnew; - } - - (*carray)[array->count++] = vitem; - -quit: - return rc; -} diff --git a/src/crent370/clib/@@aradd.o b/src/crent370/clib/@@aradd.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@aradd.s b/src/crent370/clib/@@aradd.s deleted file mode 100644 index 81e0dbd..0000000 --- a/src/crent370/clib/@@aradd.s +++ /dev/null @@ -1,143 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@aradd.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'arrayadd' -* Program text area - DS 0F - EJECT -* external function 'arrayadd' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'arrayadd' -@@ARADD PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'arrayadd' code - SLR 6,6 ==> rc - L 4,0(11) ==> carray,varray - LTR 4,4 ==> carray - BNE @@L2 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - B @@L10 -@@L2 EQU * - L 2,0(4) ==> carray - LTR 2,2 - BNE @@L4 - MVC 88(4,13),=F'20' - LA 1,88(,13) - L 15,=V(@@ARNEW) - BALR 14,15 - ST 15,0(4) ==> rc,carray -@@L4 EQU * - L 2,0(4) ==> carray - LTR 2,2 - BE @@L11 - L 5,0(4) ==> array,carray - A 5,=F'-12' ==> array - ST 5,88(13) ==> array - MVC 92(4,13),=A(@@LC0) - MVC 96(4,13),=F'4' - LA 1,88(,13) - L 15,=V(MEMCMP) - BALR 14,15 - LTR 15,15 ==> rc - BE @@L6 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 -@@L10 EQU * - MVC 0(4,15),=F'22' ==> rc - B @@L9 -@@L6 EQU * - L 2,4(5) ==> .size - CL 2,8(5) ==> .count - BH @@L7 - LR 3,2 ==> oldbytes - MH 3,=H'4' ==> oldbytes - A 3,=F'12' ==> oldbytes - MH 2,=H'4' ==> newbytes - A 2,=F'92' ==> newbytes - MVC 88(4,13),=F'1' - ST 2,92(13) ==> newbytes - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 2,15 ==> vnew - LTR 15,15 ==> vnew - BNE @@L8 -@@L11 EQU * - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - MVC 0(4,15),=F'12' ==> rc -@@L9 EQU * - L 6,=F'-1' ==> rc - B @@L3 -@@L8 EQU * - ST 15,88(13) ==> vnew - ST 5,92(13) ==> array - ST 3,96(13) ==> oldbytes - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - ST 5,88(13) ==> array - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - LR 5,2 ==> array,vnew - L 2,4(2) ==> .size - A 2,=F'20' - ST 2,4(5) ==> .size - LR 2,5 ==> vnew,array - A 2,=F'12' ==> vnew - ST 2,0(4) ==> vnew,carray -@@L7 EQU * - A 5,=F'8' - L 2,0(5) ==> .count - L 4,0(4) ==> carray - LR 3,2 - MH 3,=H'4' - L 7,4(11) ==> vitem - ST 7,0(3,4) - A 2,=F'1' - ST 2,0(5) ==> .count -@@L3 EQU * - LR 15,6 ==> rc -* Function 'arrayadd' epilogue - PDPEPIL -* Function 'arrayadd' literal pool - DS 0D - LTORG -* Function 'arrayadd' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'ARRY' - DC X'0' - END diff --git a/src/crent370/clib/@@aradf.c b/src/crent370/clib/@@aradf.c deleted file mode 100644 index 1e868bc..0000000 --- a/src/crent370/clib/@@aradf.c +++ /dev/null @@ -1,33 +0,0 @@ -/* @@ARADF.C -** Dynamic array -*/ -#include "clibary.h" - -__asm__("\n&FUNC SETC 'arrayaddf'"); -int -arrayaddf( void * varray, const char *fmt, ... ) -{ - int rc = -1; - va_list tlist; - int len; - char *ptr; - char buf[1024]; - - if (varray) { - va_start(tlist, fmt); - len = vsprintf(buf, fmt, tlist); - va_end(tlist); - - ptr = calloc(1, len + 1); - if (!ptr) { - rc = -1; - } - else { - strcpy(ptr, buf); - rc = arrayadd(varray, ptr); - } - } - -quit: - return rc; -} diff --git a/src/crent370/clib/@@aradf.o b/src/crent370/clib/@@aradf.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@aradf.s b/src/crent370/clib/@@aradf.s deleted file mode 100644 index 4f1f4f7..0000000 --- a/src/crent370/clib/@@aradf.s +++ /dev/null @@ -1,83 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@aradf.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'arrayaddf' -* Program text area - DS 0F - EJECT -* external function 'arrayaddf' prologue -* frame base=88, local stack=1024, call args=16 -&FUNC SETC 'arrayaddf' -@@ARADF PDPPRLG CINDEX=0,FRAME=1128,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'arrayaddf' code - L 5,0(11) ==> varray - L 4,=F'-1' ==> rc - LTR 5,5 ==> varray - BE @@L5 - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),4(11) - LA 2,8(,11) ==> tlist - ST 2,96(13) ==> tlist - LA 1,88(,13) - L 15,=V(VSPRINTF) - BALR 14,15 - MVC 88(4,13),=F'1' - A 15,=F'1' - ST 15,92(13) - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 3,15 ==> ptr - LTR 15,15 ==> ptr - BE @@L5 - ST 15,88(13) ==> ptr - LA 2,104(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - ST 5,88(13) ==> varray - ST 3,92(13) ==> ptr - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 4,15 ==> rc -@@L5 EQU * - LR 15,4 ==> rc -* Function 'arrayaddf' epilogue - PDPEPIL -* Function 'arrayaddf' literal pool - DS 0D - LTORG -* Function 'arrayaddf' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@arcou.c b/src/crent370/clib/@@arcou.c deleted file mode 100644 index a79cb6d..0000000 --- a/src/crent370/clib/@@arcou.c +++ /dev/null @@ -1,25 +0,0 @@ -/* @@ARCOU.C -** Dynamic array -*/ -#include "clibary.h" - -__asm__("\n&FUNC SETC 'arraycount'"); -unsigned -arraycount( void * varray ) -{ - unsigned count = 0; - char ***carray = varray; - ARRAY *array; - - if (carray) { - if (*carray) { - array = (ARRAY *)(((char *)*carray) - sizeof(ARRAY)); - if (memcmp(array->eye, ARRAY_EYE, 4) == 0) { - count = array->count; - } - } - } - -quit: - return count; -} diff --git a/src/crent370/clib/@@arcou.o b/src/crent370/clib/@@arcou.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@arcou.s b/src/crent370/clib/@@arcou.s deleted file mode 100644 index 73643f2..0000000 --- a/src/crent370/clib/@@arcou.s +++ /dev/null @@ -1,70 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@arcou.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'arraycount' -* Program text area - DS 0F - EJECT -* external function 'arraycount' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'arraycount' -@@ARCOU PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'arraycount' code - L 15,0(11) ==> varray - SLR 3,3 ==> count - LTR 15,15 ==> varray - BE @@L5 - L 2,0(15) ==> varray - LTR 2,2 - BE @@L5 - A 2,=F'-12' ==> array - ST 2,88(13) ==> array - MVC 92(4,13),=A(@@LC0) - MVC 96(4,13),=F'4' - LA 1,88(,13) - L 15,=V(MEMCMP) - BALR 14,15 - LTR 15,15 ==> count - BNE @@L5 - L 3,8(2) ==> count,count -@@L5 EQU * - LR 15,3 ==> count -* Function 'arraycount' epilogue - PDPEPIL -* Function 'arraycount' literal pool - DS 0D - LTORG -* Function 'arraycount' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'ARRY' - DC X'0' - END diff --git a/src/crent370/clib/@@ardel.c b/src/crent370/clib/@@ardel.c deleted file mode 100644 index 316249f..0000000 --- a/src/crent370/clib/@@ardel.c +++ /dev/null @@ -1,34 +0,0 @@ -/* @@ARDEL.C -** Dynamic array -*/ -#include "clibary.h" - -__asm__("\n&FUNC SETC 'arraydel'"); -void * -arraydel( void * varray, unsigned index ) -{ - void *vitem = NULL; - char ***carray = varray; - ARRAY *array; - - if (carray) { - if (*carray) { - array = (ARRAY *)(((char *)*carray) - sizeof(ARRAY)); - if (memcmp(array->eye, ARRAY_EYE, 4) == 0) { - if ((index > 0) && (index <= array->count)) { - index--; - vitem = (*carray)[index]; - /* now shift everything left */ - for( ; index < array->count; index++ ) { - (*carray)[index] = (*carray)[index+1]; - } - array->count--; - (*carray)[array->count] = NULL; - } - } - } - } - -quit: - return vitem; -} diff --git a/src/crent370/clib/@@ardel.o b/src/crent370/clib/@@ardel.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ardel.s b/src/crent370/clib/@@ardel.s deleted file mode 100644 index e64e050..0000000 --- a/src/crent370/clib/@@ardel.s +++ /dev/null @@ -1,100 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ardel.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'arraydel' -* Program text area - DS 0F - EJECT -* external function 'arraydel' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'arraydel' -@@ARDEL PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'arraydel' code - L 5,4(11) ==> index - SLR 7,7 ==> vitem - L 4,0(11) ==> carray,varray - LTR 4,4 ==> carray - BE @@L11 - L 2,0(4) ==> carray - LTR 2,2 - BE @@L11 - LR 6,2 ==> array - A 6,=F'-12' ==> array - ST 6,88(13) ==> array - MVC 92(4,13),=A(@@LC0) - MVC 96(4,13),=F'4' - LA 1,88(,13) - L 15,=V(MEMCMP) - BALR 14,15 - LTR 15,15 ==> vitem - BNE @@L11 - LTR 5,5 ==> index - BE @@L11 - CL 5,8(6) ==> index,count - BH @@L11 - BCTR 5,0 ==> index - L 3,0(4) ==> carray - LR 2,5 ==> index - MH 2,=H'4' - L 7,0(2,3) ==> vitem - CL 5,8(6) ==> index,count - BNL @@L13 - LA 3,4(0,0) -@@L10 EQU * - LR 2,5 ==> index - MH 2,=H'4' - A 2,0(4) ==> carray - L 8,0(3,2) - ST 8,0(2) - A 5,=F'1' ==> index - CL 5,8(6) ==> index,count - BL @@L10 -@@L13 EQU * - L 2,8(6) ==> .count - BCTR 2,0 - ST 2,8(6) ==> .count - L 3,0(4) ==> carray - MH 2,=H'4' - SLR 4,4 - ST 4,0(2,3) -@@L11 EQU * - LR 15,7 ==> vitem -* Function 'arraydel' epilogue - PDPEPIL -* Function 'arraydel' literal pool - DS 0D - LTORG -* Function 'arraydel' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'ARRY' - DC X'0' - END diff --git a/src/crent370/clib/@@areach.c b/src/crent370/clib/@@areach.c deleted file mode 100644 index 35f8ee1..0000000 --- a/src/crent370/clib/@@areach.c +++ /dev/null @@ -1,22 +0,0 @@ -/* @@ARADD.C -** Dynamic array -*/ -#include "clibary.h" - -__asm__("\n&FUNC SETC 'arrayeach'"); -int -arrayeach(void * varray, int (*fn)(unsigned index, void *item, void *udata), void *udata) -{ - int rc = 0; - char ***carray = varray; - unsigned count = arraycount(varray); - unsigned n; - - for(n=0; n < count; n++) { - rc = fn(n, (*carray)[n], udata); - if (rc) break; - } - - return rc; -} - diff --git a/src/crent370/clib/@@areach.o b/src/crent370/clib/@@areach.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@areach.s b/src/crent370/clib/@@areach.s deleted file mode 100644 index b4e19d3..0000000 --- a/src/crent370/clib/@@areach.s +++ /dev/null @@ -1,79 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@areach.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'arrayeach' -* Program text area - DS 0F - EJECT -* external function 'arrayeach' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'arrayeach' -@@AREACH PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'arrayeach' code - L 8,4(11) ==> fn - L 7,8(11) ==> udata - SLR 2,2 ==> rc - L 6,0(11) ==> carray,varray - ST 6,88(13) ==> carray - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 5,15 ==> count - LR 4,2 ==> n,rc - CLR 2,15 ==> rc,count - BNL @@L3 -@@L7 EQU * - ST 4,88(13) ==> n - L 3,0(6) ==> carray - LR 2,4 ==> n - MH 2,=H'4' - L 3,0(2,3) - ST 3,92(13) - ST 7,96(13) ==> udata - LA 1,88(,13) - LA 15,0(8) ==> fn - BALR 14,15 - LR 2,15 ==> rc - LTR 15,15 ==> rc - BNE @@L3 - A 4,=F'1' ==> n - CLR 4,5 ==> n,count - BL @@L7 -@@L3 EQU * - LR 15,2 ==> rc -* Function 'arrayeach' epilogue - PDPEPIL -* Function 'arrayeach' literal pool - DS 0D - LTORG -* Function 'arrayeach' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@arfre.c b/src/crent370/clib/@@arfre.c deleted file mode 100644 index 17613de..0000000 --- a/src/crent370/clib/@@arfre.c +++ /dev/null @@ -1,36 +0,0 @@ -/* @@ARFRE.C -** Dynamic array -*/ -#include "clibary.h" - -__asm__("\n&FUNC SETC 'arrayfree'"); -int -arrayfree( void * varray ) -{ - int rc = 0; - char ***carray = varray; - ARRAY *array; - - if (!carray) { - rc = -1; - goto quit; - } - - if (!*carray) { - rc = -1; - goto quit; - } - - array = (ARRAY *)(((char *)*carray) - sizeof(ARRAY)); - - if (memcmp(array->eye, ARRAY_EYE, 4) != 0) { - rc = -1; - goto quit; - } - - free(array); - *carray = NULL; - -quit: - return rc; -} diff --git a/src/crent370/clib/@@arfre.o b/src/crent370/clib/@@arfre.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@arfre.s b/src/crent370/clib/@@arfre.s deleted file mode 100644 index 02c0ad9..0000000 --- a/src/crent370/clib/@@arfre.s +++ /dev/null @@ -1,79 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@arfre.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'arrayfree' -* Program text area - DS 0F - EJECT -* external function 'arrayfree' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'arrayfree' -@@ARFRE PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'arrayfree' code - SLR 4,4 ==> rc - L 3,0(11) ==> carray,varray - LTR 3,3 ==> carray - BE @@L6 - L 2,0(3) ==> carray - LTR 2,2 - BE @@L6 - L 2,0(3) ==> array,carray - A 2,=F'-12' ==> array - ST 2,88(13) ==> array - MVC 92(4,13),=A(@@LC0) - MVC 96(4,13),=F'4' - LA 1,88(,13) - L 15,=V(MEMCMP) - BALR 14,15 - LTR 15,15 ==> rc - BE @@L5 -@@L6 EQU * - L 4,=F'-1' ==> rc - B @@L3 -@@L5 EQU * - ST 2,88(13) ==> array - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - MVC 0(4,3),=F'0' ==> carray -@@L3 EQU * - LR 15,4 ==> rc -* Function 'arrayfree' epilogue - PDPEPIL -* Function 'arrayfree' literal pool - DS 0D - LTORG -* Function 'arrayfree' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'ARRY' - DC X'0' - END diff --git a/src/crent370/clib/@@arget.c b/src/crent370/clib/@@arget.c deleted file mode 100644 index 5db9a1f..0000000 --- a/src/crent370/clib/@@arget.c +++ /dev/null @@ -1,27 +0,0 @@ -/* @@ARGET.C -** Dynamic array -*/ -#include "clibary.h" - -__asm__("\n&FUNC SETC 'arrayget'"); -void * -arrayget( void * varray, unsigned index ) -{ - void *vitem = NULL; - char ***carray = varray; - ARRAY *array; - - if (carray) { - if (*carray) { - array = (ARRAY *)(((char *)*carray) - sizeof(ARRAY)); - if (memcmp(array->eye, ARRAY_EYE, 4) == 0) { - if ((index > 0) && (index <= array->count)) { - vitem = (*carray)[index - 1]; - } - } - } - } - -quit: - return vitem; -} diff --git a/src/crent370/clib/@@arget.o b/src/crent370/clib/@@arget.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@arget.s b/src/crent370/clib/@@arget.s deleted file mode 100644 index 0cb2d1f..0000000 --- a/src/crent370/clib/@@arget.s +++ /dev/null @@ -1,79 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@arget.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'arrayget' -* Program text area - DS 0F - EJECT -* external function 'arrayget' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'arrayget' -@@ARGET PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'arrayget' code - L 3,0(11) ==> varray - L 4,4(11) ==> index - SLR 5,5 ==> vitem - LTR 3,3 ==> varray - BE @@L6 - L 2,0(3) ==> varray - LTR 2,2 - BE @@L6 - A 2,=F'-12' ==> array - ST 2,88(13) ==> array - MVC 92(4,13),=A(@@LC0) - MVC 96(4,13),=F'4' - LA 1,88(,13) - L 15,=V(MEMCMP) - BALR 14,15 - LTR 15,15 ==> vitem - BNE @@L6 - LTR 4,4 ==> index - BE @@L6 - CL 4,8(2) ==> index,count - BH @@L6 - LR 2,4 ==> index - MH 2,=H'4' - A 2,0(3) ==> varray - A 2,=F'-4' - L 5,0(2) ==> vitem -@@L6 EQU * - LR 15,5 ==> vitem -* Function 'arrayget' epilogue - PDPEPIL -* Function 'arrayget' literal pool - DS 0D - LTORG -* Function 'arrayget' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'ARRY' - DC X'0' - END diff --git a/src/crent370/clib/@@arnew.c b/src/crent370/clib/@@arnew.c deleted file mode 100644 index ae13554..0000000 --- a/src/crent370/clib/@@arnew.c +++ /dev/null @@ -1,26 +0,0 @@ -/* @@ARNEW.C -** Dynamic array -*/ -#include "clibary.h" - -__asm__("\n&FUNC SETC 'arraynew'"); -void * -arraynew(unsigned size) -{ - ARRAY * array; - void * vnew; - - if (!size) size = ARRAY_DEFAULT; - - vnew = calloc( size + ARRAY_SIZE, sizeof(void *)); - if (vnew) { - array = (ARRAY *)vnew; - memcpy( array->eye, ARRAY_EYE, 4 ); - array->size = size; - array->count = 0; - vnew = (void *)((char *)vnew + sizeof(ARRAY)); - } - -quit: - return vnew; -} diff --git a/src/crent370/clib/@@arnew.o b/src/crent370/clib/@@arnew.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@arnew.s b/src/crent370/clib/@@arnew.s deleted file mode 100644 index 7766a75..0000000 --- a/src/crent370/clib/@@arnew.s +++ /dev/null @@ -1,77 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@arnew.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'arraynew' -* Program text area - DS 0F - EJECT -* external function 'arraynew' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'arraynew' -@@ARNEW PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'arraynew' code - L 3,0(11) ==> size - LTR 3,3 ==> size - BNE @@L2 - LA 3,20(0,0) ==> size -@@L2 EQU * - LR 2,3 ==> size - A 2,=F'3' - ST 2,88(13) - MVC 92(4,13),=F'4' - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 2,15 ==> vnew - LTR 15,15 ==> vnew - BE @@L4 - ST 15,88(13) ==> vnew - MVC 92(4,13),=A(@@LC0) - MVC 96(4,13),=F'4' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - ST 3,4(2) ==> size,size - MVC 8(4,2),=F'0' ==> .count - A 2,=F'12' ==> vnew -@@L4 EQU * - LR 15,2 ==> vnew -* Function 'arraynew' epilogue - PDPEPIL -* Function 'arraynew' literal pool - DS 0D - LTORG -* Function 'arraynew' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'ARRY' - DC X'0' - END diff --git a/src/crent370/clib/@@arsiz.c b/src/crent370/clib/@@arsiz.c deleted file mode 100644 index 6819338..0000000 --- a/src/crent370/clib/@@arsiz.c +++ /dev/null @@ -1,25 +0,0 @@ -/* @@ARSIZ.C -** Dynamic array -*/ -#include "clibary.h" - -__asm__("\n&FUNC SETC 'arraysize'"); -unsigned -arraysize( void * varray ) -{ - unsigned size = 0; - char ***carray = varray; - ARRAY *array; - - if (carray) { - if (*carray) { - array = (ARRAY *)(((char *)*carray) - sizeof(ARRAY)); - if (memcmp(array->eye, ARRAY_EYE, 4) == 0) { - size = array->size; - } - } - } - -quit: - return size; -} diff --git a/src/crent370/clib/@@arsiz.o b/src/crent370/clib/@@arsiz.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@arsiz.s b/src/crent370/clib/@@arsiz.s deleted file mode 100644 index bd08ff3..0000000 --- a/src/crent370/clib/@@arsiz.s +++ /dev/null @@ -1,70 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@arsiz.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'arraysize' -* Program text area - DS 0F - EJECT -* external function 'arraysize' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'arraysize' -@@ARSIZ PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'arraysize' code - L 15,0(11) ==> varray - SLR 3,3 ==> size - LTR 15,15 ==> varray - BE @@L5 - L 2,0(15) ==> varray - LTR 2,2 - BE @@L5 - A 2,=F'-12' ==> array - ST 2,88(13) ==> array - MVC 92(4,13),=A(@@LC0) - MVC 96(4,13),=F'4' - LA 1,88(,13) - L 15,=V(MEMCMP) - BALR 14,15 - LTR 15,15 ==> size - BNE @@L5 - L 3,4(2) ==> size,size -@@L5 EQU * - LR 15,3 ==> size -* Function 'arraysize' epilogue - PDPEPIL -* Function 'arraysize' literal pool - DS 0D - LTORG -* Function 'arraysize' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'ARRY' - DC X'0' - END diff --git a/src/crent370/clib/@@ascb.c b/src/crent370/clib/@@ascb.c deleted file mode 100644 index c88c936..0000000 --- a/src/crent370/clib/@@ascb.c +++ /dev/null @@ -1,59 +0,0 @@ -#include -#include - -/* __ascb() get ASCB for ASID, or current ASCB if 0 */ -void *__ascb(unsigned asid) -{ - unsigned *psa = (unsigned *)0; - unsigned *cvt = (unsigned *)psa[0x10/4]; - ASVT *asvt = (ASVT *)cvt[0x22C/4]; - void *ascb = 0; - - if (!asid) { - /* get current ASCB for this address space */ - ascb = (void *)psa[0x224/4]; /* A(ASCB) */ - goto quit; - } - - if (asid < asvt->asvtmaxu) { - ascb = (void*)((unsigned)asvt->asvtenty[asid-1] & 0x7FFFFFFF); - if (ascb && memcmp(ascb, "ASCB", 4)!=0) ascb = 0; - } - -quit: - return ascb; -} - -#if 0 -__asm__("IHAPSA ,"); -__asm__("CVT DSECT=YES,LIST=YES"); -__asm__("IHAASVT ,"); -#endif - -#if 0 -#include -int main(int argc, char **argv) -{ - unsigned n; - void *ascb = 0; -#if 1 - unsigned *psa = (unsigned *)0; - unsigned *cvt = (unsigned *)psa[0x10/4]; - ASVT *asvt = (ASVT *)cvt[0x22C/4]; - - wtodumpf(asvt, sizeof(ASVT), "ASVT"); - wtodumpf(asvt->asvtenty, asvt->asvtmaxu * 4, "ASVTENTY"); -#endif - -#if 1 - for(n=1; n < asvt->asvtmaxu; n++) { - ascb = __ascb(n); - if (ascb) { - wtof("ASID(%u) ASCB(%08X)", n, ascb); - wtodumpf(ascb, 256, "ASCB"); - } - } -#endif - return 0; -} -#endif diff --git a/src/crent370/clib/@@ascb.o b/src/crent370/clib/@@ascb.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ascb.s b/src/crent370/clib/@@ascb.s deleted file mode 100644 index fe36400..0000000 --- a/src/crent370/clib/@@ascb.s +++ /dev/null @@ -1,77 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ascb.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__ascb' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__ascb' -@@ASCB PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__ascb' code - L 15,0(11) ==> asid - SLR 3,3 ==> psa - L 2,16(3) ==> cvt - L 4,556(2) ==> asvt - LTR 15,15 ==> asid - BNE @@L2 - L 3,548(3) ==> ascb - B @@L3 -@@L2 EQU * - CL 15,516(4) ==> asid,asvtmaxu - BNL @@L3 - LR 2,15 ==> asid - MH 2,=H'4' - L 3,524(4,2) ==> ascb,asvtenty - N 3,=F'2147483647' ==> ascb - LTR 3,3 ==> ascb - BE @@L3 - ST 3,88(13) ==> ascb - MVC 92(4,13),=A(@@LC0) - MVC 96(4,13),=F'4' - LA 1,88(,13) - L 15,=V(MEMCMP) - BALR 14,15 - LTR 15,15 ==> ascb - BE @@L3 - SLR 3,3 ==> ascb -@@L3 EQU * - LR 15,3 ==> ascb -* Function '__ascb' epilogue - PDPEPIL -* Function '__ascb' literal pool - DS 0D - LTORG -* Function '__ascb' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'ASCB' - DC X'0' - END diff --git a/src/crent370/clib/@@assert.c b/src/crent370/clib/@@assert.c deleted file mode 100644 index c802591..0000000 --- a/src/crent370/clib/@@assert.c +++ /dev/null @@ -1,23 +0,0 @@ -/*********************************************************************/ -/* */ -/* This Program Written by Paul Edwards. */ -/* Released to the Public Domain */ -/* */ -/*********************************************************************/ -/*********************************************************************/ -/* */ -/* assert.c - implementation of stuff in assert.h */ -/* */ -/*********************************************************************/ - -#include "assert.h" -#include "stdio.h" -#include "stdlib.h" -#include "stddef.h" - -int __assert(char *x, char *y, int z) -{ - fprintf(stderr, "assertion failed for statement %s in file %s on line %d\n", x, y, z); - abort(); - return (0); -} diff --git a/src/crent370/clib/@@assert.o b/src/crent370/clib/@@assert.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@assert.s b/src/crent370/clib/@@assert.s deleted file mode 100644 index 630d58e..0000000 --- a/src/crent370/clib/@@assert.s +++ /dev/null @@ -1,65 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@assert.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__assert' prologue -* frame base=88, local stack=0, call args=24 -&FUNC SETC '__assert' -@@ASSERT PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__assert' code - LA 1,88(,13) - L 15,=V(@@GTERR) - BALR 14,15 - MVC 88(4,13),0(15) - MVC 92(4,13),=A(@@LC0) - MVC 96(4,13),0(11) ==> x - MVC 100(4,13),4(11) ==> y - MVC 104(4,13),8(11) ==> z - LA 1,88(,13) - L 15,=V(FPRINTF) - BALR 14,15 - LA 1,88(,13) - L 15,=V(ABORT) - BALR 14,15 -* Function '__assert' epilogue - PDPEPIL -* Function '__assert' literal pool - DS 0D - LTORG -* Function '__assert' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'assertion failed for statement %s in file %s on ' - DC C'line %d' - DC X'15' - DC X'0' - END diff --git a/src/crent370/clib/@@austep.c b/src/crent370/clib/@@austep.c deleted file mode 100644 index a03cdec..0000000 --- a/src/crent370/clib/@@austep.c +++ /dev/null @@ -1,70 +0,0 @@ -/* @@AUSTEP.C - APF authorized the STEPLIB dataset */ -#include "clibcrt.h" -#include "clibauth.h" - -__asm__("\n&FUNC SETC '__austep'"); -int -__austep(void) -{ - CLIBCRT *crt = __crtget(); - volatile int rc = 0; - volatile int steplib = 0; - - /* check for APF authorization */ - __asm__("TESTAUTH\tFCTN=1\n\tST\t15,%0" : "=m" (rc)); - if (rc!=0) goto quit; - - /* we're APF authorized, fixup the STEPLIB DEB if needed */ - __asm__("\n" -" MODESET KEY=ZERO,MODE=SUP\n" -" ICM 1,15,PSATOLD-PSA(0) Get our TCB address\n" -" ICM 1,15,TCBJLB-TCB(1) Get STEPLIB DCB\n" -" LA 1,0(,1) Purify DCB address\n" -" ST 1,%0 Save STEPLIB DCB address\n" -" LTR 14,1 Save DCB address\n" -" BZ QUITON No STEPLIB\n" -" USING IHADCB,1 DECLARE IT\n" -" L 1,DCBDEBAD LOAD DEB FOR STEPLIB\n" -" N 1,=X'00FFFFFF' FIX HIGH BYTE\n" -" USING DEBBASIC,1\n" -" TM DEBFLGS1,DEBAPFIN Is STEPLIB authorized?\n" -" BNO SETAPF No, go set APF bit\n" -" SR 1,1 Yes, we're not changing STEPLIB\n" -" ST 1,%0 No STEPLIB change\n" -" B QUITON\n" -"SETAPF DS 0H\n" -" OI DEBFLGS1,DEBAPFIN TURN ON APF LIBRARY BIT\n" -#if 0 -" L 1,DEBDEBAD Get next DEB address\n" -" LA 1,0(,1) Purify DEB address\n" -" L 15,DEBDCBAD Get DCB for this next DEB\n" -" LA 15,0(,15) Purify address\n" -" CR 14,15 Same DCB as our STEPLIB?\n" -" BE SETAPF Yes, set the APF bit in this DEB\n" -#endif -" DROP 1\n" -"QUITON DS 0H\n" -" MODESET KEY=NZERO,MODE=PROB" : "=m"(steplib) - : : "0", "1", "14", "15"); - - if (steplib) { - if (crt) { - crt->crtauth |= CRTAUTH_STEPLIB; - } -#if 0 - wtof("STEPLIB is now APF authorized"); -#endif - } - -quit: - return rc; -} - -__asm__("PRINT NOGEN"); -__asm__("IHAPSA , MAP LOW STORAGE"); -__asm__("CVT DSECT=YES"); -__asm__("IKJTCB DSECT=YES"); -__asm__("DCBD DSORG=PO,DEVD=DA"); -__asm__("IEZDEB"); -__asm__("PRINT GEN"); -__asm__("CSECT"); diff --git a/src/crent370/clib/@@austep.o b/src/crent370/clib/@@austep.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@austep.s b/src/crent370/clib/@@austep.s deleted file mode 100644 index f9e4469..0000000 --- a/src/crent370/clib/@@austep.s +++ /dev/null @@ -1,97 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@austep.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__austep' -* Program text area - DS 0F - EJECT -* external function '__austep' prologue -* frame base=88, local stack=8, call args=0 -&FUNC SETC '__austep' -@@AUSTEP PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__austep' code - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - LR 3,15 ==> crt - MVC 88(4,13),=F'0' ==> rc - MVC 92(4,13),=F'0' ==> steplib - TESTAUTH FCTN=1 - ST 15,88(13) ==> rc - L 2,88(13) ==> rc - LTR 2,2 - BNE @@L3 - - MODESET KEY=ZERO,MODE=SUP - ICM 1,15,PSATOLD-PSA(0) Get our TCB address - ICM 1,15,TCBJLB-TCB(1) Get STEPLIB DCB - LA 1,0(,1) Purify DCB address - ST 1,92(13) Save STEPLIB DCB address ==> steplib - LTR 14,1 Save DCB address - BZ QUITON No STEPLIB - USING IHADCB,1 DECLARE IT - L 1,DCBDEBAD LOAD DEB FOR STEPLIB - N 1,=X'00FFFFFF' FIX HIGH BYTE - USING DEBBASIC,1 - TM DEBFLGS1,DEBAPFIN Is STEPLIB authorized? - BNO SETAPF No, go set APF bit - SR 1,1 Yes, we're not changing STEPLIB - ST 1,92(13) No STEPLIB change ==> steplib - B QUITON -SETAPF DS 0H - OI DEBFLGS1,DEBAPFIN TURN ON APF LIBRARY BIT - DROP 1 -QUITON DS 0H - MODESET KEY=NZERO,MODE=PROB - L 2,92(13) ==> steplib - LTR 2,2 - BE @@L3 - LTR 3,3 ==> crt - BE @@L3 - OI 269(3),64 ==> .crtauth -@@L3 EQU * - L 15,88(13) ==> crt,rc -* Function '__austep' epilogue - PDPEPIL -* Function '__austep' literal pool - DS 0D - LTORG -* Function '__austep' page table -@@PGT0 DS 0F - DC A(@@PG0) - PRINT NOGEN - IHAPSA , MAP LOW STORAGE - CVT DSECT=YES - IKJTCB DSECT=YES - DCBD DSORG=PO,DEVD=DA - IEZDEB - PRINT GEN - CSECT - END diff --git a/src/crent370/clib/@@autask.c b/src/crent370/clib/@@autask.c deleted file mode 100644 index 24ac8a4..0000000 --- a/src/crent370/clib/@@autask.c +++ /dev/null @@ -1,53 +0,0 @@ -/* @@AUTASK.C - set APF authorization for task */ -#include "clibcrt.h" -#include "clibauth.h" -#include "clibstae.h" - -static void authorize(void); - -__asm__("\n&FUNC SETC '__autask'"); -int -__autask(void) -{ - CLIBCRT *crt = __crtget(); - volatile int rc = 0; - - /* check for APF authorization */ - __asm__("TESTAUTH\tFCTN=1\n\tST\t15,%0" : "=m" (rc)); - /* wtof("%s TESTAUTH #1 rc=%d", __func__, rc); */ - if (rc==0) goto quit; - - /* get APF authorization */ - try(authorize,0); - - __asm__("TESTAUTH\tFCTN=1\n\tST\t15,%0" : "=m" (rc)); - /* wtof("%s TESTAUTH #2 rc=%d", __func__, rc); */ - if (rc!=0) goto quit; - - if (crt) { - /* remember that we now running APF authorized */ - crt->crtauth |= CRTAUTH_ON; - } - -quit: - return rc; -} - -__asm__("\n&FUNC SETC 'authorize'"); -static void authorize(void) -{ - __asm__( - "SR\t0,0\n\t" - "LA\t1,1\n\t" - "SVC\t244" - ); -} - -__asm__("PRINT NOGEN"); -__asm__("IHAPSA , MAP LOW STORAGE"); -__asm__("CVT DSECT=YES"); -__asm__("IKJTCB DSECT=YES"); -__asm__("DCBD DSORG=PO,DEVD=DA"); -__asm__("IEZDEB"); -__asm__("PRINT GEN"); -__asm__("CSECT"); diff --git a/src/crent370/clib/@@autask.o b/src/crent370/clib/@@autask.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@autask.s b/src/crent370/clib/@@autask.s deleted file mode 100644 index 1a160f2..0000000 --- a/src/crent370/clib/@@autask.s +++ /dev/null @@ -1,110 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@autask.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__autask' -* Program text area - DS 0F - EJECT -* external function '__autask' prologue -* frame base=88, local stack=8, call args=8 -&FUNC SETC '__autask' -@@AUTASK PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__autask' code - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - LR 3,15 ==> crt - MVC 96(4,13),=F'0' ==> rc - TESTAUTH FCTN=1 - ST 15,96(13) ==> rc - L 2,96(13) ==> rc - LTR 2,2 - BE @@L3 - MVC 88(4,13),=A(@@2) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@@TRY) - BALR 14,15 - TESTAUTH FCTN=1 - ST 15,96(13) ==> rc - L 2,96(13) ==> rc - LTR 2,2 - BNE @@L3 - LTR 3,3 ==> crt - BE @@L3 - OI 269(3),128 ==> .crtauth -@@L3 EQU * - L 15,96(13) ==> crt,rc -* Function '__autask' epilogue - PDPEPIL -* Function '__autask' literal pool - DS 0D - LTORG -* Function '__autask' page table -@@PGT0 DS 0F - DC A(@@PG0) - -&FUNC SETC 'authorize' - DS 0F - EJECT -* static function 'authorize' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'authorize' -@@2 PDPPRLG CINDEX=1,FRAME=88,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'authorize' code - SR 0,0 - LA 1,1 - SVC 244 -* Function 'authorize' epilogue - PDPEPIL -* Function 'authorize' literal pool - DS 0D - LTORG -* Function 'authorize' page table -@@PGT1 DS 0F - DC A(@@PG1) - PRINT NOGEN - IHAPSA , MAP LOW STORAGE - CVT DSECT=YES - IKJTCB DSECT=YES - DCBD DSORG=PO,DEVD=DA - IEZDEB - PRINT GEN - CSECT - END diff --git a/src/crent370/clib/@@autcde.c b/src/crent370/clib/@@autcde.c deleted file mode 100644 index 5255280..0000000 --- a/src/crent370/clib/@@autcde.c +++ /dev/null @@ -1,16 +0,0 @@ -#include - -__asm__("\n&FUNC SETC 'clib_auth_cde'"); -int -clib_auth_cde(CDE *cde) -{ - int rc = 0; - - if (cde) { - __asm__("MODESET KEY=ZERO,MODE=SUP\n" : : : "0", "1", "14", "15"); - cde->CDATTR2 |= (CDSYSLIB | CDAUTH); - __asm__("MODESET KEY=NZERO,MODE=PROB" : : : "0", "1", "14", "15"); - } - - return rc; -} diff --git a/src/crent370/clib/@@autcde.o b/src/crent370/clib/@@autcde.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@autcde.s b/src/crent370/clib/@@autcde.s deleted file mode 100644 index 0df7b65..0000000 --- a/src/crent370/clib/@@autcde.s +++ /dev/null @@ -1,57 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@autcde.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'clib_auth_cde' -* Program text area - DS 0F - EJECT -* external function 'clib_auth_cde' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'clib_auth_cde' -@@AUTCDE PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'clib_auth_cde' code - L 2,0(11) ==> cde - LTR 2,2 ==> cde - BE @@L2 - MODESET KEY=ZERO,MODE=SUP - - OI 29(2),3 ==> .CDATTR2 - MODESET KEY=NZERO,MODE=PROB -@@L2 EQU * - SLR 15,15 -* Function 'clib_auth_cde' epilogue - PDPEPIL -* Function 'clib_auth_cde' literal pool - DS 0D - LTORG -* Function 'clib_auth_cde' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@autnam.c b/src/crent370/clib/@@autnam.c deleted file mode 100644 index 0ec320f..0000000 --- a/src/crent370/clib/@@autnam.c +++ /dev/null @@ -1,21 +0,0 @@ -#include - -__asm__("\n&FUNC SETC 'clib_auth_name'"); -int -clib_auth_name(const char *name) -{ - int rc = 0; - CDE *cde = clib_find_cde(name); - - if (cde) { - /* wtodumpf(cde, sizeof(CDE), "%s %s CDE before auth_cde()", __func__, name); */ - rc = clib_auth_cde(cde); - /* wtodumpf(cde, sizeof(CDE), "%s %s CDE after auth_cde()", __func__, name); */ - } - else { - /* wtof("%s %s CDE was not found", __func__, name); */ - rc = 4; - } - - return rc; -} diff --git a/src/crent370/clib/@@autnam.o b/src/crent370/clib/@@autnam.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@autnam.s b/src/crent370/clib/@@autnam.s deleted file mode 100644 index b079ec9..0000000 --- a/src/crent370/clib/@@autnam.s +++ /dev/null @@ -1,62 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@autnam.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'clib_auth_name' -* Program text area - DS 0F - EJECT -* external function 'clib_auth_name' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'clib_auth_name' -@@AUTNAM PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'clib_auth_name' code - MVC 88(4,13),0(11) ==> name - LA 1,88(,13) - L 15,=V(@@FNDCDE) - BALR 14,15 - LTR 15,15 ==> cde - BE @@L2 - ST 15,88(13) ==> cde - LA 1,88(,13) - L 15,=V(@@AUTCDE) - BALR 14,15 - B @@L3 -@@L2 EQU * - LA 15,4(0,0) ==> rc -@@L3 EQU * -* Function 'clib_auth_name' epilogue - PDPEPIL -* Function 'clib_auth_name' literal pool - DS 0D - LTORG -* Function 'clib_auth_name' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@b64dec.c b/src/crent370/clib/@@b64dec.c deleted file mode 100644 index 3365742..0000000 --- a/src/crent370/clib/@@b64dec.c +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Base64 encoding/decoding (RFC1341) - * Copyright (c) 2005-2011, Jouni Malinen - * - * This software may be distributed under the terms of the BSD license. - * See README for more details. - */ - -#include "clibb64.h" - -#define base64_table __b64tbl - -/** - * base64_decode - Base64 decode - * @src: Data to be decoded - * @len: Length of the data to be decoded - * @out_len: Pointer to output length variable - * Returns: Allocated buffer of out_len bytes of decoded data, - * or %NULL on failure - * - * Caller is responsible for freeing the returned buffer. - */ -unsigned char * -base64_decode(const unsigned char *src, size_t len, size_t *out_len) -{ - unsigned char dtable[256], *out, *pos, block[4], tmp; - size_t i, count, olen; - int pad = 0; - - memset(dtable, 0x80, 256); - for (i = 0; i < sizeof(base64_table) - 1; i++) - dtable[base64_table[i]] = (unsigned char) i; - dtable['='] = 0; - - count = 0; - for (i = 0; i < len; i++) { - if (dtable[src[i]] != 0x80) - count++; - } - - if (count == 0 || count % 4) - return NULL; - - olen = count / 4 * 3; - pos = out = calloc(1, olen); - if (out == NULL) - return NULL; - - count = 0; - for (i = 0; i < len; i++) { - tmp = dtable[src[i]]; - if (tmp == 0x80) - continue; - - if (src[i] == '=') - pad++; - block[count] = tmp; - count++; - if (count == 4) { - *pos++ = (block[0] << 2) | (block[1] >> 4); - *pos++ = (block[1] << 4) | (block[2] >> 2); - *pos++ = (block[2] << 6) | block[3]; - count = 0; - if (pad) { - if (pad == 1) - pos--; - else if (pad == 2) - pos -= 2; - else { - /* Invalid padding */ - free(out); - return NULL; - } - break; - } - } - } - - *out_len = pos - out; - return out; -} diff --git a/src/crent370/clib/@@b64dec.o b/src/crent370/clib/@@b64dec.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@b64dec.s b/src/crent370/clib/@@b64dec.s deleted file mode 100644 index 76f69a0..0000000 --- a/src/crent370/clib/@@b64dec.s +++ /dev/null @@ -1,182 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@b64dec.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'base64_decode' prologue -* frame base=88, local stack=264, call args=16 -&FUNC SETC 'base64_decode' -@@B64DEC PDPPRLG CINDEX=0,FRAME=368,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'base64_decode' code - L 7,0(11) ==> src - L 6,4(11) ==> len - SLR 9,9 ==> pad - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=F'128' - MVC 96(4,13),=F'256' - LA 1,88(,13) - L 15,=V(MEMSET) - BALR 14,15 - LR 4,9 ==> i,pad - L 3,=V(@@B64TBL) -@@L6 EQU * - SLR 2,2 - IC 2,0(4,3) ==> __b64tbl - STC 4,104(13,2) ==> i,dtable - A 4,=F'1' ==> i - LA 2,63(0,0) - CLR 4,2 ==> i - BNH @@L6 - MVI 230(13),0 ==> dtable - SLR 4,4 ==> i - LR 3,4 ==> count,i - CLR 4,6 ==> i,len - BNL @@L32 -@@L12 EQU * - SLR 2,2 - IC 2,0(4,7) ==> i - IC 2,104(13,2) ==> dtable - CLM 2,1,=XL1'80' - BE @@L9 - A 3,=F'1' ==> count -@@L9 EQU * - A 4,=F'1' ==> i - CLR 4,6 ==> i,len - BL @@L12 -@@L32 EQU * - LTR 3,3 ==> count - BE @@L36 - LR 2,3 ==> count - N 2,=F'3' - LTR 2,2 - BNE @@L36 - LR 2,3 ==> olen,count - SRL 2,2 ==> olen - LR 3,2 ==> olen - SLL 3,1 - AR 2,3 ==> olen - MVC 88(4,13),=F'1' - ST 2,92(13) ==> olen - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - ST 15,364(13) ==> out - LR 8,15 ==> pos - LTR 15,15 ==> out - BE @@L1 - B @@L15 -@@L34 EQU * - BCTR 8,0 ==> pos - B @@L17 -@@L35 EQU * - A 8,=F'-2' ==> pos - B @@L17 -@@L15 EQU * - SLR 4,4 ==> i - LR 3,4 ==> count,i - CLR 4,6 ==> i,len - BNL @@L17 - LA 15,361(,13) -@@L28 EQU * - SLR 2,2 - IC 2,0(4,7) ==> i - IC 5,104(13,2) ==> tmp,dtable - CLM 5,1,=XL1'80' ==> tmp - BE @@L18 - IC 2,0(4,7) ==> i - CLM 2,1,=XL1'7E' - BNE @@L21 - A 9,=F'1' ==> pad -@@L21 EQU * - STC 5,360(3,13) ==> tmp,block - A 3,=F'1' ==> count - LA 2,4(0,0) - CLR 3,2 ==> count - BNE @@L18 - SLR 2,2 - IC 2,360(13) - SLL 2,2 - IC 3,0(15) ==> block - N 3,=XL4'000000FF' - SRL 3,4 - OR 3,2 - STC 3,0(8) ==> pos - A 8,=F'1' ==> pos - IC 3,0(15) ==> block - SLL 3,4 - IC 2,362(13) ==> block - N 2,=XL4'000000FF' - SRL 2,2 - OR 3,2 - STC 3,0(8) ==> pos - A 8,=F'1' ==> pos - IC 2,362(13) ==> block - SLL 2,6 - IC 3,363(13) ==> block - OR 3,2 - STC 3,0(8) ==> pos - A 8,=F'1' ==> pos - SLR 3,3 ==> count - LTR 9,9 ==> pad - BE @@L18 - LA 2,1(0,0) - CLR 9,2 ==> pad - BE @@L34 - LA 3,2(0,0) - CLR 9,3 ==> pad - BE @@L35 - MVC 88(4,13),364(13) ==> out - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L36 EQU * - SLR 15,15 ==> out - B @@L1 -@@L18 EQU * - A 4,=F'1' ==> i - CLR 4,6 ==> i,len - BL @@L28 -@@L17 EQU * - LR 3,8 ==> pos - S 3,364(13) ==> out - L 2,8(11) ==> out_len - ST 3,0(2) ==> out_len - L 15,364(13) ==> out -@@L1 EQU * -* Function 'base64_decode' epilogue - PDPEPIL -* Function 'base64_decode' literal pool - DS 0D - LTORG -* Function 'base64_decode' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@b64enc.c b/src/crent370/clib/@@b64enc.c deleted file mode 100644 index bfc24f9..0000000 --- a/src/crent370/clib/@@b64enc.c +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Base64 encoding/decoding (RFC1341) - * Copyright (c) 2005-2011, Jouni Malinen - * - * This software may be distributed under the terms of the BSD license. - * See README for more details. - */ - -#include "clibb64.h" - -#define base64_table __b64tbl - -/** - * base64_encode - Base64 encode - * @src: Data to be encoded - * @len: Length of the data to be encoded - * @out_len: Pointer to output length variable, or %NULL if not used - * Returns: Allocated buffer of out_len bytes of encoded data, - * or %NULL on failure - * - * Caller is responsible for freeing the returned buffer. Returned buffer is - * nul terminated to make it easier to use as a C string. The nul terminator is - * not included in out_len. - */ -unsigned char * -base64_encode(const unsigned char *src, size_t len, size_t *out_len) -{ - unsigned char *out, *pos; - const unsigned char *end, *in; - size_t olen; - int line_len; - - olen = len * 4 / 3 + 4; /* 3-byte blocks to 4-byte */ - olen += olen / 72; /* line feeds */ - olen++; /* nul termination */ - if (olen < len) - return NULL; /* integer overflow */ - - out = calloc(1, olen); - if (out == NULL) - return NULL; - - end = src + len; - in = src; - pos = out; - line_len = 0; - while (end - in >= 3) { - *pos++ = base64_table[in[0] >> 2]; - *pos++ = base64_table[((in[0] & 0x03) << 4) | (in[1] >> 4)]; - *pos++ = base64_table[((in[1] & 0x0f) << 2) | (in[2] >> 6)]; - *pos++ = base64_table[in[2] & 0x3f]; - in += 3; - line_len += 4; - if (line_len >= 72) { - *pos++ = '\n'; - line_len = 0; - } - } - - if (end - in) { - *pos++ = base64_table[in[0] >> 2]; - if (end - in == 1) { - *pos++ = base64_table[(in[0] & 0x03) << 4]; - *pos++ = '='; - } else { - *pos++ = base64_table[((in[0] & 0x03) << 4) | - (in[1] >> 4)]; - *pos++ = base64_table[(in[1] & 0x0f) << 2]; - } - *pos++ = '='; - line_len += 4; - } - -#if 0 - if (line_len) - *pos++ = '\n'; -#endif - - *pos = '\0'; - if (out_len) - *out_len = pos - out; - return out; -} diff --git a/src/crent370/clib/@@b64enc.o b/src/crent370/clib/@@b64enc.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@b64enc.s b/src/crent370/clib/@@b64enc.s deleted file mode 100644 index 4aa446f..0000000 --- a/src/crent370/clib/@@b64enc.s +++ /dev/null @@ -1,193 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@b64enc.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'base64_encode' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'base64_encode' -@@B64ENC PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'base64_encode' code - SLR 2,2 ==> olen - SLR 3,3 ==> olen - LR 4,2 ==> olen - LR 5,3 ==> olen - L 7,0(11) ==> src - L 6,4(11) ==> len - LR 2,6 ==> len - MH 2,=H'4' - SRDL 2,32 ==> olen - LA 8,3(0,0) - DR 2,8 ==> olen - A 3,=F'4' ==> olen - LR 4,3 ==> olen - SRDL 4,32 ==> olen - LA 2,72(0,0) - DR 4,2 ==> olen - AR 3,5 ==> olen - A 3,=F'1' ==> olen - SLR 15,15 ==> out - CLR 3,6 ==> olen,len - BL @@L1 - MVC 88(4,13),=F'1' - ST 3,92(13) ==> olen - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 9,15 ==> out - LTR 15,15 ==> out - BE @@L1 - LR 8,7 ==> end,src - AR 8,6 ==> end,len - LR 6,7 ==> in,src - LR 5,15 ==> pos,out - SLR 7,7 ==> line_len - LR 2,8 ==> end - SR 2,6 ==> in - LA 3,2(0,0) - CR 2,3 - BNH @@L14 - L 4,=V(@@B64TBL) -@@L8 EQU * - IC 2,0(6) ==> in - N 2,=XL4'000000FF' - SRL 2,2 - N 2,=XL4'000000FF' - IC 2,0(2,4) ==> __b64tbl - STC 2,0(5) ==> pos - A 5,=F'1' ==> pos - IC 3,0(6) ==> in - N 3,=F'3' - SLL 3,4 - IC 2,1(6) - N 2,=XL4'000000FF' - SRL 2,4 - N 2,=XL4'000000FF' - OR 3,2 - IC 3,0(3,4) ==> __b64tbl - STC 3,0(5) ==> pos - A 5,=F'1' ==> pos - IC 3,1(6) - N 3,=F'15' - SLL 3,2 - IC 2,2(6) - N 2,=XL4'000000FF' - SRL 2,6 - N 2,=XL4'000000FF' - OR 3,2 - IC 3,0(3,4) ==> __b64tbl - STC 3,0(5) ==> pos - A 5,=F'1' ==> pos - IC 2,2(6) - N 2,=F'63' - IC 2,0(2,4) ==> __b64tbl - STC 2,0(5) ==> pos - A 5,=F'1' ==> pos - A 6,=F'3' ==> in - A 7,=F'4' ==> line_len - LA 2,71(0,0) - CR 7,2 ==> line_len - BNH @@L4 - MVI 0(5),21 ==> pos - A 5,=F'1' ==> pos - SLR 7,7 ==> line_len -@@L4 EQU * - LR 2,8 ==> end - SR 2,6 ==> in - LA 3,2(0,0) - CR 2,3 - BH @@L8 -@@L14 EQU * - CLR 8,6 ==> end,in - BE @@L9 - L 3,=V(@@B64TBL) - IC 2,0(6) ==> in - N 2,=XL4'000000FF' - SRL 2,2 - N 2,=XL4'000000FF' - IC 2,0(2,3) ==> __b64tbl - STC 2,0(5) ==> pos - A 5,=F'1' ==> pos - LR 2,8 ==> end - SR 2,6 ==> in - LA 4,1(0,0) - CLR 2,4 - BNE @@L10 - IC 2,0(6) ==> in - N 2,=F'3' - SLL 2,4 - IC 3,0(2,3) ==> __b64tbl - STC 3,0(5) ==> pos - AR 5,4 ==> pos - MVI 0(5),126 ==> pos - AR 5,4 ==> pos - B @@L11 -@@L10 EQU * - L 4,=V(@@B64TBL) - IC 3,0(6) ==> in - N 3,=F'3' - SLL 3,4 - IC 2,1(6) - N 2,=XL4'000000FF' - SRL 2,4 - N 2,=XL4'000000FF' - OR 3,2 - IC 3,0(3,4) ==> __b64tbl - STC 3,0(5) ==> pos - A 5,=F'1' ==> pos - IC 2,1(6) - N 2,=F'15' - SLL 2,2 - IC 4,0(2,4) ==> __b64tbl - STC 4,0(5) ==> pos - A 5,=F'1' ==> pos -@@L11 EQU * - MVI 0(5),126 ==> pos - A 5,=F'1' ==> pos -@@L9 EQU * - MVI 0(5),0 ==> pos - L 8,8(11) ==> out_len - LTR 8,8 - BE @@L12 - LR 2,5 ==> pos - SR 2,9 ==> out - ST 2,0(8) -@@L12 EQU * - LR 15,9 ==> out -@@L1 EQU * -* Function 'base64_encode' epilogue - PDPEPIL -* Function 'base64_encode' literal pool - DS 0D - LTORG -* Function 'base64_encode' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@b64tbl.c b/src/crent370/clib/@@b64tbl.c deleted file mode 100644 index 22ec126..0000000 --- a/src/crent370/clib/@@b64tbl.c +++ /dev/null @@ -1,4 +0,0 @@ -#include "clibb64.h" - -const unsigned char __b64tbl[65] = - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; diff --git a/src/crent370/clib/@@b64tbl.o b/src/crent370/clib/@@b64tbl.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@b64tbl.s b/src/crent370/clib/@@b64tbl.s deleted file mode 100644 index ac6e055..0000000 --- a/src/crent370/clib/@@b64tbl.s +++ /dev/null @@ -1,28 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@b64tbl.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* X-var *@@B64TBL - ENTRY @@B64TBL -* Program text area -@@B64TBL EQU * - DC C'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv' - DC C'wxyz0123456789+/' - DC X'0' - END diff --git a/src/crent370/clib/@@bldl.c b/src/crent370/clib/@@bldl.c deleted file mode 100644 index 1076ee5..0000000 --- a/src/crent370/clib/@@bldl.c +++ /dev/null @@ -1,14 +0,0 @@ -#include - -int __bldl(BLDL *bldl, void *dcb) -{ - int rc = 0; - - if (!bldl->ff) bldl->ff = 1; - if (!bldl->ll) bldl->ll = sizeof(DE76); - - __asm__("BLDL\t(%1),(%2)\n\t" - "LR\t%0,R15" : "=r"(rc) : "r"(dcb), "r"(bldl) : "0", "1", "14", "15"); - - return rc; -} diff --git a/src/crent370/clib/@@bldl.o b/src/crent370/clib/@@bldl.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@bldl.s b/src/crent370/clib/@@bldl.s deleted file mode 100644 index 7dd0efc..0000000 --- a/src/crent370/clib/@@bldl.s +++ /dev/null @@ -1,61 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@bldl.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__bldl' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__bldl' -@@BLDL PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__bldl' code - L 3,0(11) ==> bldl - L 4,4(11) ==> dcb - LH 2,0(3) ==> .ff - CH 2,=H'0' - BNE @@L2 - MVC 0(2,3),=H'1' ==> .ff -@@L2 EQU * - LH 2,2(3) ==> .ll - CH 2,=H'0' - BNE @@L3 - MVC 2(2,3),=H'76' ==> .ll -@@L3 EQU * - BLDL (4),(3) ==> dcb,bldl - LR 2,R15 ==> rc - LR 15,2 ==> rc -* Function '__bldl' epilogue - PDPEPIL -* Function '__bldl' literal pool - DS 0D - LTORG -* Function '__bldl' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@call.c b/src/crent370/clib/@@call.c deleted file mode 100644 index 2cd4d77..0000000 --- a/src/crent370/clib/@@call.c +++ /dev/null @@ -1,19 +0,0 @@ -#include - -__asm__("\n&FUNC SETC '__call'"); -int -__call(void *func, void *plist) -{ - int rc; - - __asm__( - "LR\t15,%1 => function to call \n\t" - "LR\t1,%2 => parameter list\n\t" - "BALR\t14,15 call function\n\t" - "LR\t%0,15 save return code" - : "=r" (rc) - : "r" (func), "r" (plist) - : "0", "1", "14", "15"); - - return rc; -} diff --git a/src/crent370/clib/@@call.o b/src/crent370/clib/@@call.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@call.s b/src/crent370/clib/@@call.s deleted file mode 100644 index d81191f..0000000 --- a/src/crent370/clib/@@call.s +++ /dev/null @@ -1,55 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@call.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__call' -* Program text area - DS 0F - EJECT -* external function '__call' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__call' -@@CALL PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__call' code - L 2,0(11) ==> func - L 3,4(11) ==> plist - LR 15,2 => function to call ==> func - LR 1,3 => parameter list ==> plist - BALR 14,15 call function - LR 2,15 save return code ==> rc - LR 15,2 ==> rc -* Function '__call' epilogue - PDPEPIL -* Function '__call' literal pool - DS 0D - LTORG -* Function '__call' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@caller.c b/src/crent370/clib/@@caller.c deleted file mode 100644 index 7ab106f..0000000 --- a/src/crent370/clib/@@caller.c +++ /dev/null @@ -1,34 +0,0 @@ -/* @@CALLER.C */ - -char * -__caller(char *caller) -{ - unsigned ep; - char *p; - - if (!caller) { - caller = ""; - goto quit; - } - - caller[0] = 0; - - __asm__("DS\t0H\n" -" L 1,4(,13) => callers stack\n" -" L 1,4(,1) => callers stack\n" -" L 1,4(,1) => callers stack\n" -" L 1,16(,1) => function ep address\n" -" ST 1,0(,%0) return ep address" - : : "r"(&ep)); - - p = (char *)ep; - if (p[0]==0x47 && p[1]==0xF0) { - p += 4; - - memcpy(caller, p+1, *p); - caller[*p] = 0; - } - -quit: - return caller; -} diff --git a/src/crent370/clib/@@caller.o b/src/crent370/clib/@@caller.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@caller.s b/src/crent370/clib/@@caller.s deleted file mode 100644 index 8240756..0000000 --- a/src/crent370/clib/@@caller.s +++ /dev/null @@ -1,84 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@caller.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__caller' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__caller' -@@CALLER PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__caller' code - L 4,0(11) ==> caller - LTR 4,4 ==> caller - BNE @@L2 - L 4,=A(@@LC0) ==> caller - B @@L3 -@@L2 EQU * - MVI 0(4),0 ==> caller - LA 2,104(,13) - DS 0H - L 1,4(,13) => callers stack - L 1,4(,1) => callers stack - L 1,4(,1) => callers stack - L 1,16(,1) => function ep address - ST 1,0(,2) return ep address - L 3,104(13) ==> p - CLI 0(3),71 ==> p - BNE @@L3 - CLI 1(3),240 - BNE @@L3 - A 3,=F'4' ==> p - ST 4,88(13) ==> caller - LR 2,3 ==> p - A 2,=F'1' - ST 2,92(13) - SLR 2,2 - IC 2,0(3) ==> p - ST 2,96(13) - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - SLR 2,2 - IC 2,0(3) ==> p - SLR 3,3 - STC 3,0(2,4) -@@L3 EQU * - LR 15,4 ==> caller -* Function '__caller' epilogue - PDPEPIL -* Function '__caller' literal pool - DS 0D - LTORG -* Function '__caller' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC X'0' - END diff --git a/src/crent370/clib/@@cibdel.c b/src/crent370/clib/@@cibdel.c deleted file mode 100644 index 1ae3487..0000000 --- a/src/crent370/clib/@@cibdel.c +++ /dev/null @@ -1,17 +0,0 @@ -/* @@CIBDEL.C */ -#include "clibcib.h" - -int -__cibdel(CIB *cib) -{ - int rc = 0; - COM *com = __gtcom(); - - if (cib) { - __asm__("QEDIT ORIGIN=(%1),BLOCK=(%2)\n\tLR\t%0,15" - : "=r" (rc) : "r" (&com->comcibpt), "r" (cib)); - } - -quit: - return rc; -} diff --git a/src/crent370/clib/@@cibdel.o b/src/crent370/clib/@@cibdel.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@cibdel.s b/src/crent370/clib/@@cibdel.s deleted file mode 100644 index ea049e9..0000000 --- a/src/crent370/clib/@@cibdel.s +++ /dev/null @@ -1,59 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@cibdel.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__cibdel' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__cibdel' -@@CIBDEL PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__cibdel' code - L 3,0(11) ==> cib - SLR 2,2 ==> rc - LA 1,88(,13) - L 15,=V(@@GTCOM) - BALR 14,15 - LTR 3,3 ==> cib - BE @@L3 - LR 2,15 ==> com - A 2,=F'4' - QEDIT ORIGIN=(2),BLOCK=(3) ==> cib - LR 2,15 ==> rc -@@L3 EQU * - LR 15,2 ==> rc -* Function '__cibdel' epilogue - PDPEPIL -* Function '__cibdel' literal pool - DS 0D - LTORG -* Function '__cibdel' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@cibget.c b/src/crent370/clib/@@cibget.c deleted file mode 100644 index 7d85dd8..0000000 --- a/src/crent370/clib/@@cibget.c +++ /dev/null @@ -1,11 +0,0 @@ -/* @@CIBGET.C */ -#include "clibcib.h" - -CIB * -__cibget(void) -{ - COM *com = __gtcom(); - CIB *cib = com ? com->comcibpt : 0; - - return cib; -} diff --git a/src/crent370/clib/@@cibget.o b/src/crent370/clib/@@cibget.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@cibget.s b/src/crent370/clib/@@cibget.s deleted file mode 100644 index c4f8437..0000000 --- a/src/crent370/clib/@@cibget.s +++ /dev/null @@ -1,55 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@cibget.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__cibget' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__cibget' -@@CIBGET PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__cibget' code - LA 1,88(,13) - L 15,=V(@@GTCOM) - BALR 14,15 - SLR 2,2 ==> cib - LTR 15,15 ==> com - BE @@L3 - L 2,4(15) ==> cib,comcibpt -@@L3 EQU * - LR 15,2 ==> cib -* Function '__cibget' epilogue - PDPEPIL -* Function '__cibget' literal pool - DS 0D - LTORG -* Function '__cibget' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@cibset.c b/src/crent370/clib/@@cibset.c deleted file mode 100644 index 16f5152..0000000 --- a/src/crent370/clib/@@cibset.c +++ /dev/null @@ -1,17 +0,0 @@ -/* @@CIBSET.C */ -#include "clibcib.h" - -int -__cibset(unsigned count) -{ - int rc = 0; - COM *com = __gtcom(); - - if (count) { - __asm__("QEDIT ORIGIN=(%1),CIBCTR=(%2)\n\tLR\t%0,15" - : "=r" (rc) : "r" (&com->comcibpt), "r" (count)); - } - -quit: - return rc; -} diff --git a/src/crent370/clib/@@cibset.o b/src/crent370/clib/@@cibset.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@cibset.s b/src/crent370/clib/@@cibset.s deleted file mode 100644 index d0dce4e..0000000 --- a/src/crent370/clib/@@cibset.s +++ /dev/null @@ -1,59 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@cibset.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__cibset' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__cibset' -@@CIBSET PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__cibset' code - L 3,0(11) ==> count - SLR 2,2 ==> rc - LA 1,88(,13) - L 15,=V(@@GTCOM) - BALR 14,15 - LTR 3,3 ==> count - BE @@L3 - LR 2,15 ==> com - A 2,=F'4' - QEDIT ORIGIN=(2),CIBCTR=(3) ==> count - LR 2,15 ==> rc -@@L3 EQU * - LR 15,2 ==> rc -* Function '__cibset' epilogue - PDPEPIL -* Function '__cibset' literal pool - DS 0D - LTORG -* Function '__cibset' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@cpclos.c b/src/crent370/clib/@@cpclos.c deleted file mode 100644 index 052a4d4..0000000 --- a/src/crent370/clib/@@cpclos.c +++ /dev/null @@ -1,66 +0,0 @@ -/* @@CPCLOS.C - Close JES Checkpoint Dataset */ -#include -#include -#include -#include "clibwto.h" -#include -#include "svc99.h" -#include "clibary.h" -#include "osdcb.h" -#include "osjfcb.h" -#include "clibcp.h" /* JES Checkpoint prototypes and functions */ - -static int deallocate_checkpoint(HASPCP *fp); - -int __cpclos(HASPCP *cp) -{ - if (cp) { - DCB *dcb = cp->dcb; - unsigned plist = 0x80000000; - - if (dcb->dcboflgs & DCBOFOPN) { - __asm("CLOSE\t((%0)),MF=(E,(%1))" : : "r"(dcb), "r"(&plist)); - } - - deallocate_checkpoint(cp); - - if (cp->buf) free(cp->buf); - free(cp); - } - - return 0; -} - -__asm__("\n&FUNC SETC 'deallocate_checkpoint'"); -static int deallocate_checkpoint(HASPCP *fp) -{ - int err = 1; - unsigned count = 0; - TXT99 **txt99 = NULL; - RB99 rb99 = {0}; - - /* this DDNAME */ - err = __txddn(&txt99, fp->ddname); - if (err) goto quit; - - count = arraycount(&txt99); - if (!count) goto quit; - - /* Set high order bit to mark end of list */ - count--; - txt99[count] = (TXT99*)((unsigned)txt99[count] | 0x80000000); - - /* construct the request block for dynamic allocation */ - rb99.len = sizeof(RB99); - rb99.request = S99VRBUN; - rb99.flag1 = S99NOCNV; - rb99.txtptr = txt99; - - /* SVC 99 */ - err = __svc99(&rb99); - -quit: - if (txt99) FreeTXT99Array(&txt99); - - return err; -} diff --git a/src/crent370/clib/@@cpclos.o b/src/crent370/clib/@@cpclos.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@cpclos.s b/src/crent370/clib/@@cpclos.s deleted file mode 100644 index 411949d..0000000 --- a/src/crent370/clib/@@cpclos.s +++ /dev/null @@ -1,155 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@cpclos.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__cpclos' prologue -* frame base=88, local stack=8, call args=8 -&FUNC SETC '__cpclos' -@@CPCLOS PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__cpclos' code - L 3,0(11) ==> cp - LTR 3,3 ==> cp - BE @@L2 - L 15,16(3) ==> dcb,dcb - MVC 96(4,13),=F'-2147483648' - IC 2,48(15) ==> .dcboflgs - N 2,=F'16' - CLM 2,1,=XL1'00' - BE @@L3 - LA 2,96(,13) - CLOSE ((15)),MF=(E,(2)) ==> dcb -@@L3 EQU * - ST 3,88(13) ==> cp - LA 1,88(,13) - L 15,=A(@@6) - BALR 14,15 - L 2,236(3) ==> .buf - LTR 2,2 - BE @@L4 - ST 2,88(13) - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L4 EQU * - ST 3,88(13) ==> cp - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L2 EQU * - SLR 15,15 -* Function '__cpclos' epilogue - PDPEPIL -* Function '__cpclos' literal pool - DS 0D - LTORG -* Function '__cpclos' page table -@@PGT0 DS 0F - DC A(@@PG0) - -&FUNC SETC 'deallocate_checkpoint' - DS 0F - EJECT -* static function 'deallocate_checkpoint' prologue -* frame base=88, local stack=32, call args=8 -&FUNC SETC 'deallocate_checkpoint' -@@6 PDPPRLG CINDEX=1,FRAME=128,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'deallocate_checkpoint' code - SLR 15,15 ==> count - ST 15,120(13) ==> count - LA 4,96(,13) - LA 5,20(0,0) - LR 2,15 ==> count - LR 3,15 ==> count - MVCL 4,2 ==> count - LA 2,120(,13) - ST 2,88(13) - L 2,0(11) ==> fp - A 2,=F'8' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@TXDDN) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L7 - LA 2,120(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LTR 15,15 ==> count - BE @@L7 - BCTR 15,0 ==> count - L 4,120(13) - LR 3,15 ==> count - MH 3,=H'4' - L 2,0(3,4) - O 2,=F'-2147483648' - ST 2,0(3,4) - MVI 96(13),20 ==> .len - MVI 97(13),2 ==> .request - MVI 98(13),64 ==> .flag1 - MVC 104(4,13),120(13) ==> .txtptr - LA 2,96(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@SVC99) - BALR 14,15 - LR 3,15 ==> err -@@L7 EQU * - L 2,120(13) - LTR 2,2 - BE @@L9 - LA 2,120(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@FRTX9A) - BALR 14,15 -@@L9 EQU * - LR 15,3 ==> err -* Function 'deallocate_checkpoint' epilogue - PDPEPIL -* Function 'deallocate_checkpoint' literal pool - DS 0D - LTORG -* Function 'deallocate_checkpoint' page table -@@PGT1 DS 0F - DC A(@@PG1) - END diff --git a/src/crent370/clib/@@cpopen.c b/src/crent370/clib/@@cpopen.c deleted file mode 100644 index 01da799..0000000 --- a/src/crent370/clib/@@cpopen.c +++ /dev/null @@ -1,181 +0,0 @@ -/* @@CPOPEN.C - Open JES Checkpoint Dataset */ -#include -#include -#include -#include "clibwto.h" -#include -#include "svc99.h" -#include "clibary.h" -#include "osdcb.h" -#include "osjfcb.h" -#include "clibcp.h" /* JES Checkpoint prototypes and functions */ -#include "haspjqe.h" /* JES Job Queue Element */ -#include "haspjoe.h" /* JES Job Output Element */ - -__asm("\n" -"HASPCKPT DCB DDNAME=HASPCKPT,DSORG=PS,MACRF=(RCP), X\n" -" RECFM=U,BLKSIZE=4096\n" -"DCBLEN EQU *-HASPCKPT"); - -static int allocate_checkpoint(HASPCP *fp, const char *dataset); - -HASPCP *__cpopen(const char *dataset) -{ - int rc; - HASPCP *cp = NULL; - DCB *dcb = NULL; - unsigned openpl = 0x80000000; - unsigned work; - unsigned blocks; - char buf[4096]; - - /* Allocate a Checkpoint File Handle */ - cp = calloc(1, sizeof(HASPCP) + sizeof(DCB)); - if (!cp) { - goto quit; - } - - /* Initialize Checkpoint File Handle */ - strcpy(cp->eye, HASPCP_EYE); - dcb = (DCB*) ((char*)cp + sizeof(HASPCP)); - cp->dcb = dcb; - - /* copy model DCB into our dcb area */ - __asm("L\t1,=A(HASPCKPT) model DCB for HASPCKPT\n\t" - "MVC\t0(DCBLEN,%0),0(1) copy model to our dcb area" - : :"r"(dcb)); - - /* Get DD or DATASET allocated */ - if (toupper(dataset[0])=='D' && toupper(dataset[1])=='D' && dataset[2]==':') { - /* The dataset is "dd:SOMENAME" */ - int i; - const char *p = &dataset[3]; - - for (i=0; i < 8 && *p; i++) { - cp->ddname[i] = toupper(p[i]); - } - while(i < 8) cp->ddname[i++]=' '; - memcpy(dcb->dcbddnam, cp->ddname, 8); - } - else { - /* Allocate dataset */ - rc = allocate_checkpoint(cp, dataset); - if (rc) { - __cpclos(cp); - cp = NULL; - goto quit; - } - } - - /* open the checkpoint dataset */ - __asm("OPEN\t((%0)),MF=(E,(%1))" : : "r"(dcb), "r"(&openpl)); - if (!(dcb->dcboflgs & DCBOFOPN)) { - __cpclos(cp); - cp = NULL; - } - - /* skip over SYNC records */ - __cppoin(cp, 0x00000300); /* TTRz = record 3 */ - - /* read first record */ - __cpread(cp, buf); - - /* save in checkpoint handle */ - memcpy(&cp->hct, buf, sizeof(cp->hct)); - - /* Compute offset to first PDDB in IOT */ - work = cp->hct._NUMTGV; /* number of track groups per volume */ - work += 7; work = work >> 3;/* round to multiple of 8 */ - work *= cp->hct._NUMDA; /* times number of spool volumes */ - work += 75; /* add offset */ - work &= 0xFFFFFFFC; /* round to full word boundary */ - cp->pddb1 = work; /* offset to first PDDB */ - - /* Compute number of JQE block on checkpoint */ - work = cp->hct._MAXJOBS; /* Number of JQES */ - work++; /* plus 1 for eye catcher */ - work *= JQELNGTH; /* times length of JQE */ - work += 4095; /* prepare to round 4K */ - work >>= 12; /* divide by 4096 */ - cp->jqeblks = work; /* number of JQE blocks on checkpoint */ - - /* Compute number of JOT block in checkpoint */ - work = cp->hct._NUMJOES; /* number of JOES */ - work += 3; /* adjust length for JOT prefix */ - work *= JOESIZE; /* multiply by length of JOE */ - work += 4095; /* prepare to round 4K */ - work >>= 12; /* divide by 4096 */ - cp->jotblks; /* number of JOT blocks on checkpoint */ - - /* Allocate buffer for JOT and JQE blocks */ - blocks = cp->jotblks + cp->jqeblks; - cp->buf = calloc(1, blocks*4096); - if (!cp->buf) goto quit; - cp->buflen = blocks*4096; - - /* Read in the checkpoint blocks into our buffer */ - for (work=0; work < blocks; work++) { - __cpread(cp, &cp->buf[work*4096]); - } - - /* The first JQE is here */ - cp->jqe = (__JQE*)&cp->buf[28]; /* skip over "JES2 COLDSTART TK4- .ï.Ì...." */ - cp->jqeend = (__JQE*)&cp->buf[cp->jqeblks*4096]; - - if (cp->jotblks) { - cp->jot = (__JOT*)&cp->buf[cp->jqeblks*4096]; - cp->jotend = (__JOT*)&cp->buf[blocks*4096]; - } - -quit: - return cp; -} - -__asm__("\n&FUNC SETC 'allocate_checkpoint'"); -static int -allocate_checkpoint(HASPCP *fp, const char *dataset) -{ - int err = 1; - unsigned count = 0; - DCB *dcb = fp->dcb; - TXT99 **txt99 = NULL; - RB99 rb99 = {0}; - - /* we want the DDNAME returned to us */ - err = __txrddn(&txt99, NULL); - if (err) goto quit; - - /* allocate this dataset */ - err = __txdsn(&txt99, dataset); - if (err) goto quit; - - /* DISP=SHR */ - err = __txshr(&txt99, NULL); - if (err) goto quit; - - count = arraycount(&txt99); - if (!count) goto quit; - - /* Set high order bit to mark end of list */ - count--; - txt99[count] = (TXT99*)((unsigned)txt99[count] | 0x80000000); - - /* construct the request block for dynamic allocation */ - rb99.len = sizeof(RB99); - rb99.request = S99VRBAL; - rb99.flag1 = S99NOCNV; - rb99.txtptr = txt99; - - /* SVC 99 */ - err = __svc99(&rb99); - if (err) goto quit; - - /* return DDNAME */ - memcpy(fp->ddname, txt99[0]->text, 8); - memcpy(dcb->dcbddnam, txt99[0]->text, 8); - -quit: - if (txt99) FreeTXT99Array(&txt99); - - return err; -} diff --git a/src/crent370/clib/@@cpopen.o b/src/crent370/clib/@@cpopen.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@cpopen.s b/src/crent370/clib/@@cpopen.s deleted file mode 100644 index 577461f..0000000 --- a/src/crent370/clib/@@cpopen.s +++ /dev/null @@ -1,385 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@cpopen.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -HASPCKPT DCB DDNAME=HASPCKPT,DSORG=PS,MACRF=(RCP), X - RECFM=U,BLKSIZE=4096 -DCBLEN EQU *-HASPCKPT -* Program text area - DS 0F - EJECT -* external function '__cpopen' prologue -* frame base=88, local stack=4104, call args=16 -&FUNC SETC '__cpopen' -@@CPOPEN PDPPRLG CINDEX=0,FRAME=4208,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__cpopen' code - SLR 8,8 ==> work - SLR 9,9 ==> work - L 6,0(11) ==> dataset - L 2,=F'4200' - AR 2,13 - MVC 0(4,2),=F'-2147483648' - MVC 88(4,13),=F'1' - MVC 92(4,13),=F'360' - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 4,15 ==> cp - LTR 15,15 ==> cp - BE @@L3 - ST 15,88(13) ==> cp - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - LR 5,4 ==> dcb,cp - A 5,=F'256' ==> dcb - ST 5,16(4) ==> dcb,dcb - L 1,=A(HASPCKPT) model DCB for HASPCKPT - MVC 0(DCBLEN,5),0(1) copy model to our dcb area ==> dcb - SLR 2,2 - IC 2,0(6) ==> dataset - L 3,=V(@@TOUP) - L 3,0(3) ==> __toup - MH 2,=H'2' - LH 2,0(2,3) - CLM 2,3,=H'196' - BNE @@L4 - SLR 2,2 - IC 2,1(6) - MH 2,=H'2' - LH 2,0(2,3) - CLM 2,3,=H'196' - BNE @@L4 - CLI 2(6),122 - BNE @@L4 - LR 15,6 ==> p,dataset - A 15,=F'3' ==> p - SLR 6,6 ==> i - IC 2,0(15) ==> p - SLL 2,24 - SRA 2,24 - C 2,=F'0' - BE @@L6 - L 7,=V(@@TOUP) -@@L10 EQU * - SLR 2,2 - IC 2,0(6,15) ==> i - L 3,0(7) ==> __toup - MH 2,=H'2' - IC 3,1(2,3) - STC 3,8(4,6) ==> .ddname - A 6,=F'1' ==> i - LA 2,7(0,0) - CR 6,2 ==> i - BH @@L6 - IC 2,0(15) ==> p - SLL 2,24 - SRA 2,24 - C 2,=F'0' - BNE @@L10 -@@L6 EQU * - LA 7,7(0,0) - CR 6,7 ==> i - BH @@L27 - LA 3,8(0,0) -@@L14 EQU * - LR 2,6 ==> i - AR 2,4 ==> cp - LA 7,64(0,0) - STC 7,0(3,2) ==> .ddname - A 6,=F'1' ==> i - LA 2,7(0,0) - CR 6,2 ==> i - BNH @@L14 -@@L27 EQU * - LR 2,5 ==> dcb - A 2,=F'40' - ST 2,88(13) - LR 2,4 ==> cp - A 2,=F'8' - ST 2,92(13) - MVC 96(4,13),=F'8' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - B @@L15 -@@L4 EQU * - ST 4,88(13) ==> cp - ST 6,92(13) ==> dataset - LA 1,88(,13) - L 15,=A(@@6) - BALR 14,15 - LTR 15,15 ==> rc - BE @@L15 - ST 4,88(13) ==> cp - LA 1,88(,13) - L 15,=V(@@CPCLOS) - BALR 14,15 - SLR 4,4 ==> cp - B @@L3 -@@L15 EQU * - L 2,=F'4200' - AR 2,13 - OPEN ((5)),MF=(E,(2)) ==> dcb - IC 2,48(5) ==> .dcboflgs - N 2,=F'16' - CLM 2,1,=XL1'00' - BNE @@L17 - ST 4,88(13) ==> cp - LA 1,88(,13) - L 15,=V(@@CPCLOS) - BALR 14,15 - SLR 4,4 ==> cp -@@L17 EQU * - ST 4,88(13) ==> cp - MVC 92(4,13),=F'768' - LA 1,88(,13) - L 15,=V(@@CPPOIN) - BALR 14,15 - ST 4,88(13) ==> cp - LA 3,104(,13) - ST 3,92(13) - LA 1,88(,13) - L 15,=V(@@CPREAD) - BALR 14,15 - LR 2,4 ==> cp - A 2,=F'20' - ST 2,88(13) - ST 3,92(13) - MVC 96(4,13),=F'204' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - LH 3,206(4) ==> ._NUMTGV - N 3,=XL4'0000FFFF' - A 3,=F'7' ==> work - SRL 3,3 ==> work - SLR 9,9 ==> work - IC 9,210(4) ==> work,_NUMDA - MR 8,3 ==> work - LR 3,9 ==> work - A 3,=F'75' ==> work - N 3,=F'-4' ==> work - ST 3,224(4) ==> work,pddb1 - LH 3,198(4) ==> ._MAXJOBS - N 3,=XL4'0000FFFF' - A 3,=F'1' ==> work - LR 2,3 ==> work - SLL 2,3 - SR 2,3 ==> work - LR 3,2 ==> work - SLL 3,2 ==> work - A 3,=F'4095' ==> work - SRL 3,12 ==> work - STH 3,228(4) ==> work,jqeblks - LH 5,230(4) ==> .jotblks - N 5,=XL4'0000FFFF' - LH 2,228(4) ==> .jqeblks - N 2,=XL4'0000FFFF' - AR 5,2 ==> blocks - MVC 88(4,13),=F'1' - LR 2,5 ==> blocks - MH 2,=H'4096' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - ST 15,236(4) ==> rc,buf - LTR 15,15 ==> rc - BE @@L3 - ST 2,232(4) ==> .buflen - SLR 3,3 ==> work - CLR 3,5 ==> work,blocks - BNL @@L29 -@@L23 EQU * - ST 4,88(13) ==> cp - LR 2,3 ==> work - MH 2,=H'4096' - A 2,236(4) ==> .buf - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@CPREAD) - BALR 14,15 - A 3,=F'1' ==> work - CLR 3,5 ==> work,blocks - BL @@L23 -@@L29 EQU * - L 2,236(4) ==> .buf - A 2,=F'28' - ST 2,240(4) ==> .jqe - LH 2,228(4) ==> .jqeblks - N 2,=XL4'0000FFFF' - MH 2,=H'4096' - LR 3,2 - A 3,236(4) ==> .buf - ST 3,244(4) ==> .jqeend - LH 2,230(4) ==> .jotblks - CH 2,=H'0' - BE @@L3 - ST 3,248(4) ==> .jot - LR 2,5 ==> blocks - MH 2,=H'4096' - A 2,236(4) ==> .buf - ST 2,252(4) ==> .jotend -@@L3 EQU * - LR 15,4 ==> cp -* Function '__cpopen' epilogue - PDPEPIL -* Function '__cpopen' literal pool - DS 0D - LTORG -* Function '__cpopen' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'HASPCP' - DC X'0' - -&FUNC SETC 'allocate_checkpoint' - DS 0F - EJECT -* static function 'allocate_checkpoint' prologue -* frame base=88, local stack=32, call args=16 -&FUNC SETC 'allocate_checkpoint' -@@6 PDPPRLG CINDEX=1,FRAME=136,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'allocate_checkpoint' code - L 6,0(11) ==> fp - SLR 15,15 ==> count - L 7,16(6) ==> dcb,dcb - ST 15,128(13) ==> count - LA 4,104(,13) - LA 5,20(0,0) - LR 2,15 ==> count - LR 3,15 ==> count - MVCL 4,2 ==> count - LA 2,128(,13) - ST 2,88(13) - ST 15,92(13) ==> count - LA 1,88(,13) - L 15,=V(@@TXRDDN) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L32 - LA 2,128(,13) - ST 2,88(13) - MVC 92(4,13),4(11) ==> dataset - LA 1,88(,13) - L 15,=V(@@TXDSN) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L32 - LA 2,128(,13) - ST 2,88(13) - ST 15,92(13) ==> err - LA 1,88(,13) - L 15,=V(@@TXSHR) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L32 - LA 2,128(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LTR 15,15 ==> count - BE @@L32 - BCTR 15,0 ==> count - L 4,128(13) - LR 3,15 ==> count - MH 3,=H'4' - L 2,0(3,4) - O 2,=F'-2147483648' - ST 2,0(3,4) - MVI 104(13),20 ==> .len - MVI 105(13),1 ==> .request - MVI 106(13),64 ==> .flag1 - MVC 112(4,13),128(13) ==> .txtptr - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@SVC99) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L32 - LR 2,6 ==> fp - A 2,=F'8' - ST 2,88(13) - L 2,128(13) - L 2,0(2) - A 2,=F'6' - ST 2,92(13) - MVC 96(4,13),=F'8' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - LR 2,7 ==> dcb - A 2,=F'40' - ST 2,88(13) - L 2,128(13) - L 2,0(2) - A 2,=F'6' - ST 2,92(13) - MVC 96(4,13),=F'8' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 -@@L32 EQU * - L 2,128(13) - LTR 2,2 - BE @@L37 - LA 2,128(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@FRTX9A) - BALR 14,15 -@@L37 EQU * - LR 15,3 ==> err -* Function 'allocate_checkpoint' epilogue - PDPEPIL -* Function 'allocate_checkpoint' literal pool - DS 0D - LTORG -* Function 'allocate_checkpoint' page table -@@PGT1 DS 0F - DC A(@@PG1) - END diff --git a/src/crent370/clib/@@cppoin.c b/src/crent370/clib/@@cppoin.c deleted file mode 100644 index 068eee5..0000000 --- a/src/crent370/clib/@@cppoin.c +++ /dev/null @@ -1,24 +0,0 @@ -/* @@CPPOIN.C - Point JES Checkpoint Dataset */ -#include -#include -#include -#include "clibwto.h" -#include "osdcb.h" -#include "osjfcb.h" -#include "clibcp.h" /* JES Checkpoint prototypes and functions */ - -int __cppoin(HASPCP *cp, unsigned TTRz) -{ - int rc = -1; - - if (cp) { - DCB *dcb = cp->dcb; - - if (dcb->dcboflgs & DCBOFOPN) { - __asm("POINT\t(%0),(%1)" : : "r"(dcb), "r"(&TTRz)); - rc = 0; - } - } - - return rc; -} diff --git a/src/crent370/clib/@@cppoin.o b/src/crent370/clib/@@cppoin.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@cppoin.s b/src/crent370/clib/@@cppoin.s deleted file mode 100644 index 1554598..0000000 --- a/src/crent370/clib/@@cppoin.s +++ /dev/null @@ -1,59 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@cppoin.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__cppoin' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__cppoin' -@@CPPOIN PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__cppoin' code - L 2,0(11) ==> cp - L 15,=F'-1' ==> rc - LTR 2,2 ==> cp - BE @@L2 - L 3,16(2) ==> dcb,dcb - IC 2,48(3) ==> .dcboflgs - N 2,=F'16' - CLM 2,1,=XL1'00' - BE @@L2 - LA 2,4(,11) - POINT (3),(2) ==> dcb - SLR 15,15 ==> rc -@@L2 EQU * -* Function '__cppoin' epilogue - PDPEPIL -* Function '__cppoin' literal pool - DS 0D - LTORG -* Function '__cppoin' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@cpread.c b/src/crent370/clib/@@cpread.c deleted file mode 100644 index 20bc47d..0000000 --- a/src/crent370/clib/@@cpread.c +++ /dev/null @@ -1,27 +0,0 @@ -/* @@CPREAD.C - Read JES Checkpoint Dataset */ -#include -#include -#include -#include "clibwto.h" -#include "osdcb.h" -#include "osjfcb.h" -#include "clibcp.h" /* JES Checkpoint prototypes and functions */ - -int __cpread(HASPCP *cp, void *buf4k) -{ - int rc = -1; - - if (cp) { - DCB *dcb = cp->dcb; - unsigned decb[4] = {0}; - - if (dcb->dcboflgs & DCBOFOPN) { - __asm("READ (%0),SF,(%1),(%2),4096,MF=E READ FIRST RECORD\n\t" - "CHECK (%0)" : : "r"(decb), "r"(dcb), "r"(buf4k)); - rc = 0; - } - } - - return rc; -} - diff --git a/src/crent370/clib/@@cpread.o b/src/crent370/clib/@@cpread.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@cpread.s b/src/crent370/clib/@@cpread.s deleted file mode 100644 index 49859da..0000000 --- a/src/crent370/clib/@@cpread.s +++ /dev/null @@ -1,66 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@cpread.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__cpread' prologue -* frame base=88, local stack=16, call args=0 -&FUNC SETC '__cpread' -@@CPREAD PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__cpread' code - L 2,0(11) ==> cp - L 7,4(11) ==> buf4k - L 15,=F'-1' ==> rc - LTR 2,2 ==> cp - BE @@L2 - L 6,16(2) ==> dcb,dcb - LA 4,88(,13) - LA 5,16(0,0) - SLR 2,2 - LR 3,2 - MVCL 4,2 - IC 2,48(6) ==> .dcboflgs - N 2,=F'16' - CLM 2,1,=XL1'00' - BE @@L2 - LA 2,88(,13) - READ (2),SF,(6),(7),4096,MF=E READ FIRST RECORD ==> dcb,buf4k - CHECK (2) - SLR 15,15 ==> rc -@@L2 EQU * -* Function '__cpread' epilogue - PDPEPIL -* Function '__cpread' literal pool - DS 0D - LTORG -* Function '__cpread' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@crtget.c b/src/crent370/clib/@@crtget.c deleted file mode 100644 index 17851a7..0000000 --- a/src/crent370/clib/@@crtget.c +++ /dev/null @@ -1,47 +0,0 @@ -#define __CRTGET__ -#define CLIB_C -#include -#include -#include "clib.h" -#include "clibppa.h" -#include "clibary.h" -#include "cliblock.h" - -CLIBCRT * -__CRTGET(void) -{ - int locked = 0; - unsigned *psa = 0; /* low core == PSA */ - void *tcb = (void*)psa[0x21c/4]; /* TCB == PSATOLD */ - CLIBPPA *ppa = __PPAGET(); /* Pgm Props Anchor */ - CLIBCRT *crt = (CLIBCRT *)0; /* CLIBCRT or NULL */ - unsigned count = 0; - unsigned n; - - if (!ppa) goto quit; - - locked = lock(ppa,1); /* 1=read only (shared) */ - if (locked!=0) goto quit; - - count = arraycou(&ppa->ppacrt); - - for(n=0;n < count; n++) { - if (ppa->ppacrt[n]->crttcb == tcb) { - crt = ppa->ppacrt[n]; - break; - } - } - - if (locked==0) { - unlock(ppa,1); - } - -quit: - if (!crt) { - wtof("%s CRT for TCB(%08X) was not found in PPA(%08X)", __func__, tcb, ppa); - if (ppa && count) { - wtodumpf(ppa->ppacrt, count * 4, "PPACRT"); - } - } - return crt; -} diff --git a/src/crent370/clib/@@crtget.o b/src/crent370/clib/@@crtget.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@crtget.s b/src/crent370/clib/@@crtget.s deleted file mode 100644 index 11e41de..0000000 --- a/src/crent370/clib/@@crtget.s +++ /dev/null @@ -1,129 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@crtget.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@6 EQU * - DC C'__CRTGET' - DC X'0' - DS 0F - EJECT -* external function '__CRTGET' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__CRTGET' -@@CRTGET PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__CRTGET' code - SLR 5,5 ==> locked - L 9,540(5) ==> tcb - LA 1,88(,13) - L 15,=V(@@PPAGET) - BALR 14,15 - LR 4,15 ==> ppa - LR 7,5 ==> crt,locked - LR 8,5 ==> count,crt - LTR 15,15 ==> ppa - BE @@L3 - ST 15,88(13) ==> ppa - MVC 92(4,13),=F'1' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 5,15 ==> locked - LTR 15,15 ==> locked - BNE @@L3 - LR 2,4 ==> ppa - A 2,=F'12' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 8,15 ==> count - LR 3,7 ==> n,crt - CLR 7,15 ==> crt,count - BNL @@L6 - L 6,12(4) ==> .ppacrt -@@L10 EQU * - LR 2,3 ==> n - MH 2,=H'4' - L 15,0(2,6) ==> crt - L 2,8(15) ==> .crttcb - CLR 2,9 ==> tcb - BNE @@L7 - LR 7,15 ==> crt - B @@L6 -@@L7 EQU * - A 3,=F'1' ==> n - CLR 3,8 ==> n,count - BL @@L10 -@@L6 EQU * - LTR 5,5 ==> locked - BNE @@L3 - ST 4,88(13) ==> ppa - MVC 92(4,13),=F'1' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L3 EQU * - LTR 7,7 ==> crt - BNE @@L12 - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@6) - ST 9,96(13) ==> tcb - ST 4,100(13) ==> ppa - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LTR 4,4 ==> ppa - BE @@L12 - LTR 8,8 ==> count - BE @@L12 - MVC 88(4,13),12(4) ==> .ppacrt - LR 2,8 ==> count - MH 2,=H'4' - ST 2,92(13) - MVC 96(4,13),=A(@@LC1) - LA 1,88(,13) - L 15,=V(WTODUMPF) - BALR 14,15 -@@L12 EQU * - LR 15,7 ==> crt -* Function '__CRTGET' epilogue - PDPEPIL -* Function '__CRTGET' literal pool - DS 0D - LTORG -* Function '__CRTGET' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s CRT for TCB(%08X) was not found in PPA(%08X)' - DC X'0' -@@LC1 EQU * - DC C'PPACRT' - DC X'0' - END diff --git a/src/crent370/clib/@@crtres.c b/src/crent370/clib/@@crtres.c deleted file mode 100644 index 2dce70e..0000000 --- a/src/crent370/clib/@@crtres.c +++ /dev/null @@ -1,44 +0,0 @@ -#define __CRTRES__ -#define CLIB_C -#include -#include -#include "clib.h" -#include "clibppa.h" -#include "clibary.h" -#include "cliblock.h" - -int -__CRTRES(void) -{ - int rc = -1; - int locked = 0; - unsigned *psa = 0; /* low core == PSA */ - unsigned *tcb = (unsigned*)psa[0x21c/4]; /* TCB == PSATOLD */ - CLIBPPA *ppa = __PPAGET(); /* Pgm Props Anchor */ - CLIBCRT *crt = (CLIBCRT *)0; /* CLIBCRT or NULL */ - unsigned count; - unsigned n; - - if (!ppa) goto quit; - - locked = lock(ppa,0); - if (locked!=0) goto quit; - - count = arraycou(&ppa->ppacrt); - for(n=0;n < count; n++) { - crt = ppa->ppacrt[n]; - if (crt && crt->crttcb == (void*)tcb) { - arraydel(&ppa->ppacrt, n+1); - free(crt); - rc = 0; - break; - } - } - - if (locked==0) { - unlock(ppa,0); - } - -quit: - return rc; -} diff --git a/src/crent370/clib/@@crtres.o b/src/crent370/clib/@@crtres.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@crtres.s b/src/crent370/clib/@@crtres.s deleted file mode 100644 index 14b3084..0000000 --- a/src/crent370/clib/@@crtres.s +++ /dev/null @@ -1,111 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@crtres.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__CRTRES' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC '__CRTRES' -@@CRTRES PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__CRTRES' code - L 8,=F'-1' ==> rc - SLR 6,6 ==> locked - L 7,540(6) ==> tcb - LA 1,88(,13) - L 15,=V(@@PPAGET) - BALR 14,15 - LR 5,15 ==> ppa - LTR 15,15 ==> ppa - BE @@L3 - ST 15,88(13) ==> ppa - ST 6,92(13) ==> locked - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 6,15 ==> locked - LTR 15,15 ==> locked - BNE @@L3 - LR 2,5 ==> ppa - A 2,=F'12' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 4,6 ==> n,locked - CLR 6,15 ==> locked,count - BNL @@L6 -@@L10 EQU * - L 3,12(5) ==> .ppacrt - LR 2,4 ==> n - MH 2,=H'4' - L 3,0(2,3) ==> crt - LTR 3,3 ==> crt - BE @@L7 - L 2,8(3) ==> .crttcb - CLR 2,7 ==> tcb - BNE @@L7 - LR 2,5 ==> ppa - A 2,=F'12' - ST 2,88(13) - LR 2,4 ==> n - A 2,=F'1' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@ARDEL) - BALR 14,15 - ST 3,88(13) ==> crt - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - SLR 8,8 ==> rc - B @@L6 -@@L7 EQU * - A 4,=F'1' ==> n - CLR 4,15 ==> n,count - BL @@L10 -@@L6 EQU * - LTR 6,6 ==> locked - BNE @@L3 - ST 5,88(13) ==> ppa - ST 6,92(13) ==> locked - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L3 EQU * - LR 15,8 ==> rc -* Function '__CRTRES' epilogue - PDPEPIL -* Function '__CRTRES' literal pool - DS 0D - LTORG -* Function '__CRTRES' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@crtset.c b/src/crent370/clib/@@crtset.c deleted file mode 100644 index c01c985..0000000 --- a/src/crent370/clib/@@crtset.c +++ /dev/null @@ -1,67 +0,0 @@ -#define __CRTSET__ -#define CLIB_C -#include -#include -#include "clib.h" -#include "clibppa.h" -#include "clibary.h" -#include "cliblock.h" - -int -__CRTSET(void) -{ - int rc = -1; - int locked = 0; - unsigned *psa = 0; /* low core == PSA */ - unsigned *tcb = (unsigned*)psa[0x21c/4]; /* TCB == PSATOLD */ - unsigned *otcb = (unsigned*)tcb[0x84/4]; /* OTCB == TCBOTC */ - unsigned *jscb = (unsigned*)tcb[0xB4/4]; /* JSCB == TCBJSCB */ - CLIBPPA *ppa = __PPAGET(); /* Pgm Prop Anchor */ - CLIBCRT *crt = (CLIBCRT *)0; /* CLIBCRT or NULL */ - CLIBGRT *grt = (CLIBGRT *)0; - - if (!ppa) goto quit; - - locked = lock(ppa,0); - if (locked!=0) goto quit; - - crt = calloc(1, sizeof(CLIBCRT)); - if (crt) { - unsigned count = arraycou(&ppa->ppacrt); - unsigned n; - - for(n=0;n < count; n++) { - if (ppa->ppacrt[n]->crttcb == (void*)otcb) { - CLIBCRT *ocrt = ppa->ppacrt[n]; - - if (ocrt) { - grt = ocrt->crtgrt; - } - break; - } - } - - memcpy(crt->crteye, "CLIBCRT ", 8); - crt->crttcb = tcb; - crt->crtgrt = grt; -#if 0 /* GETTZOFF() is not working, replaced with CVTTZ value */ - crt->crttzoff = GETTZOFF(); -#else - do { - int *cvt = *(int**)16; /* get CVT pointer from PSA */ - crt->crttzoff = (int)(cvt[0x130/4] * 1.0485765); /* convert CVTTZ to seconds from UTC */ - } while(0); -#endif - crt->crtuserl = sizeof(CLIBCRT); - crt->crtauth = *((char*)jscb + 0xEC); /* JSCBAUTH byte */ - - rc = arrayadd(&ppa->ppacrt, crt); - } - - if (locked==0) { - unlock(ppa,0); - } - -quit: - return rc; -} diff --git a/src/crent370/clib/@@crtset.o b/src/crent370/clib/@@crtset.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@crtset.s b/src/crent370/clib/@@crtset.s deleted file mode 100644 index 8818796..0000000 --- a/src/crent370/clib/@@crtset.s +++ /dev/null @@ -1,146 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@crtset.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__CRTSET' prologue -* frame base=88, local stack=16, call args=16 -&FUNC SETC '__CRTSET' -@@CRTSET PDPPRLG CINDEX=0,FRAME=120,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__CRTSET' code - L 2,=F'-1' ==> rc - SLR 6,6 ==> locked - L 5,540(6) ==> tcb - MVC 104(4,13),132(5) ==> otcb - MVC 108(4,13),180(5) ==> jscb - LA 1,88(,13) - L 15,=V(@@PPAGET) - BALR 14,15 - LR 7,15 ==> ppa - ST 6,112(13) ==> locked,grt - LTR 15,15 ==> ppa - BE @@L3 - ST 15,88(13) ==> ppa - ST 6,92(13) ==> locked - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 6,15 ==> locked - LTR 15,15 ==> locked - BNE @@L3 - MVC 88(4,13),=F'1' - MVC 92(4,13),=F'392' - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 8,15 ==> crt - LTR 15,15 ==> crt - BE @@L5 - LR 2,7 ==> ppa - A 2,=F'12' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 4,6 ==> n,locked - CLR 6,15 ==> locked,count - BNL @@L7 - L 9,12(7) ==> .ppacrt -@@L12 EQU * - LR 2,4 ==> n - MH 2,=H'4' - L 3,0(2,9) - L 2,8(3) ==> .crttcb - CL 2,104(13) ==> otcb - BNE @@L8 - LTR 3,3 - BE @@L7 - MVC 112(4,13),280(3) ==> grt,crtgrt - B @@L7 -@@L8 EQU * - A 4,=F'1' ==> n - CLR 4,15 ==> n,count - BL @@L12 -@@L7 EQU * - ST 8,88(13) ==> crt - MVC 92(4,13),=A(@@LC0) - MVC 96(4,13),=F'8' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - ST 5,8(8) ==> tcb,crttcb - MVC 280(4,8),112(13) ==> .crtgrt,grt - LA 2,16(0,0) - L 2,0(2) ==> cvt - L 2,304(2) - MVC 80(4,13),=XL8'4E00000080000000' - ST 2,84(,13) - XI 84(13),128 - LD 2,80(,13) - SD 2,=XL8'4E00000080000000' - MD 2,=D'1.04857649999999980039E0' - LDR 0,2 - AD 0,=XL8'4F08000000000000' - STD 0,80(,13) - L 2,84(,13) - ST 2,52(8) ==> .crttzoff - MVC 60(4,8),=F'392' ==> .crtuserl - L 2,108(13) ==> jscb - MVC 269(1,8),236(2) ==> .crtauth - LR 2,7 ==> ppa - A 2,=F'12' - ST 2,88(13) - ST 8,92(13) ==> crt - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 2,15 ==> rc -@@L5 EQU * - LTR 6,6 ==> locked - BNE @@L3 - ST 7,88(13) ==> ppa - ST 6,92(13) ==> locked - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L3 EQU * - LR 15,2 ==> rc -* Function '__CRTSET' epilogue - PDPEPIL -* Function '__CRTSET' literal pool - DS 0D - LTORG -* Function '__CRTSET' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'CLIBCRT ' - DC X'0' - END diff --git a/src/crent370/clib/@@cs.c b/src/crent370/clib/@@cs.c deleted file mode 100644 index e14498c..0000000 --- a/src/crent370/clib/@@cs.c +++ /dev/null @@ -1,22 +0,0 @@ -/* @@CS.C - compare and swap -*/ -#include "clibos.h" - -unsigned __cs(void *mem, unsigned new_value) -{ - unsigned old_value = 0; - - if (!mem) goto quit; - - __asm__("\n" -"AGAIN DS 0H\n" -" L 0,0(,%1) get current value\n" -" L 1,0(,%2) get new value\n" -" CS 0,1,0(%1) save new value in memory\n" -" BNZ AGAIN changed, try again\n" -" ST 0,%0 return value" - : "=m"(old_value) : "r"(mem), "r"(new_value)); - -quit: - return old_value; -} diff --git a/src/crent370/clib/@@cs.o b/src/crent370/clib/@@cs.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@cs.s b/src/crent370/clib/@@cs.s deleted file mode 100644 index e6d927d..0000000 --- a/src/crent370/clib/@@cs.s +++ /dev/null @@ -1,60 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@cs.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__cs' prologue -* frame base=88, local stack=8, call args=0 -&FUNC SETC '__cs' -@@CS PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__cs' code - L 15,0(11) ==> mem - L 2,4(11) ==> new_value - MVC 88(4,13),=F'0' - LTR 15,15 ==> mem - BE @@L3 - -AGAIN DS 0H - L 0,0(,15) get current value ==> mem - L 1,0(,2) get new value ==> new_value - CS 0,1,0(15) save new value in memory ==> mem - BNZ AGAIN changed, try again - ST 0,88(13) return value -@@L3 EQU * - L 15,88(13) -* Function '__cs' epilogue - PDPEPIL -* Function '__cs' literal pool - DS 0D - LTORG -* Function '__cs' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@ctcrte.c b/src/crent370/clib/@@ctcrte.c deleted file mode 100644 index dbeb3da..0000000 --- a/src/crent370/clib/@@ctcrte.c +++ /dev/null @@ -1,12 +0,0 @@ -/* @@CTCRTE.C - cthread_create() -** create a thread (subtask) instance -** returns CTHDTASK handle or NULL on error. -*/ -#include "clibthrd.h" - -__asm__("\n&FUNC SETC 'cthread_create'"); -CTHDTASK * -cthread_create(void *func, void *arg1, void *arg2) -{ - return cthread_create_ex(func,arg1,arg2,0); -} diff --git a/src/crent370/clib/@@ctcrte.o b/src/crent370/clib/@@ctcrte.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ctcrte.s b/src/crent370/clib/@@ctcrte.s deleted file mode 100644 index 2a82dad..0000000 --- a/src/crent370/clib/@@ctcrte.s +++ /dev/null @@ -1,55 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ctcrte.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'cthread_create' -* Program text area - DS 0F - EJECT -* external function 'cthread_create' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'cthread_create' -@@CTCRTE PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'cthread_create' code - MVC 88(4,13),0(11) ==> func - MVC 92(4,13),4(11) ==> arg1 - MVC 96(4,13),8(11) ==> arg2 - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@CTCRTX) - BALR 14,15 -* Function 'cthread_create' epilogue - PDPEPIL -* Function 'cthread_create' literal pool - DS 0D - LTORG -* Function 'cthread_create' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@ctcrtx.c b/src/crent370/clib/@@ctcrtx.c deleted file mode 100644 index 48a2de6..0000000 --- a/src/crent370/clib/@@ctcrtx.c +++ /dev/null @@ -1,186 +0,0 @@ -/* @@CTCRTX.C - cthread_create_ex() -** create a thread (subtask) instance with stack size -** returns CTHDTASK handle or NULL on error. -*/ -#include -#include -#include "clibthrd.h" -#include "cliblock.h" -#include "clibcrt.h" -#include "clibary.h" -#include "clibmutx.h" - -static CTHDTASK *newthread(unsigned tcb, unsigned owntcb, unsigned stacksize); -static int attach(CTHDTASK *task); -static int dummy(void *arg1, void *arg2); - -__asm__("\n&FUNC SETC 'cthread_create_ex'"); -CTHDTASK * -cthread_create_ex(void *func, void *arg1, void *arg2, unsigned stacksize) -{ - unsigned *psa = (unsigned*)0; /* MVS prefixed save area */ - unsigned tcb = psa[0x21C/4]; /* get our TCB address */ - CTHDTASK *owner = cthread_find(tcb); /* get owner thread */ - CTHDTASK *task = NULL; - int rc; - - /* wtof("%s(%08X, %08X, %08X, %u)", __func__, func, arg1, arg2, stacksize); */ - - if (!stacksize) stacksize = (64 * 1024); /* default 64K stack */ - if (!func) func = dummy; - - /* wtodumpf(func, 32, "FUNC"); */ - - if (!owner) { - /* we do this so that the main() thread will have - ** CTHDTASK handle as a parent/owner for the new thread. - */ - - /* create the owner thread handle */ - owner = newthread(tcb, 0, 0); - if (!owner) goto quit; /* should never happen */ - } - - /* we create a new task handle */ - task = newthread(0, owner->tcb, stacksize); - if (!task) goto quit; /* must be out of memory! */ - - task->func = func; /* thread function */ - task->arg1 = arg1; /* thread arg1 */ - task->arg2 = arg2; /* thread arg2 */ - - /* attach our subtask driver module. - ** we use try() to catch any abend caused by an ATTACH failure. - */ -#if 1 - rc = try(attach, task); -#else - rc = attach(task); -#endif - if (rc==0) rc = task->rc; -#if 0 /* debug code */ - if (rc==0) { - wtof("%s NEWTCB(%06X)", __func__, task->tcb); - } -#endif - if (rc) { - /* well that's unexpected */ - task->tcb = 0; /* make sure we clear the TCB address */ - cthread_delete(&task); - } - -quit: - return task; -} - -__asm__("\n&FUNC SETC 'attach'"); -static int -attach(CTHDTASK *task) -{ - unsigned work[16] = {0}; - - /* attach our subtask driver module. - ** the task->tcb is created here if the attach was a success. - */ - __asm__( - "LA\t1,0(,%2)\n\t" - "ATTACH EP=CTHREAD,ECB=(%3),DPMOD=-1,SF=(E,(%4))\n\t" - "ST\t1,%0\n\t" - "ST\t15,%1" - : "=m"(task->tcb), "=m"(task->rc) - : "r"(task), "r"(&task->termecb), "r"(work) ); - - return task->rc; -} - -__asm__("\n&FUNC SETC 'newthread'"); -static CTHDTASK * -newthread(unsigned tcb, unsigned owntcb, unsigned stacksize) -{ - CLIBGRT *grt = __grtget(); - unsigned newstack= (stacksize > 0 && stacksize < 80) ? 80 : - ((stacksize+7) & 0x000FFFF8); - CTHDTASK *task = calloc(1, sizeof(CTHDTASK) + newstack); - - if (task) { - strcpy(task->eye, CTHDTASK_EYE); - task->tcb = tcb; - task->owntcb = owntcb; - task->stacksize = newstack; - lock(&grt->grtcthrd,0); - arrayadd(&grt->grtcthrd, task); - unlock(&grt->grtcthrd,0); - } - - return task; -} - -__asm__("\n&FUNC SETC 'dummy'"); -static int -dummy(void *arg1, void *arg2) -{ - CTHDTASK *task = cthread_self(); - - wtof("dummy(arg1=%08X, arg2=%08X)\n", arg1, arg2); - wtof("CTHDTASK handle=%08X\n", task); - if (task) { - wtof("task->eye %-8.8s\n", task->eye); - wtof("task->tcb %08X\n", task->tcb); - wtof("task->owntcb %08X\n", task->owntcb); - wtof("task->termecb %08X\n", task->termecb); - wtof("task->rc %08X (%d)\n", task->rc, task->rc); - wtof("task->stacksize %08X (%d)\n", task->stacksize, task->stacksize); - wtof("task->func %08X\n", task->func); - wtof("task->arg1 %08X\n", task->arg1); - wtof("task->arg2 %08X\n", task->arg2); - } - - return -1; -} - -__asm__("\n&FUNC SETC 'cleanup_thread'"); -static void -cleanup_thread(void) -{ - int rc = 0; - CLIBCRT *crt = __crtget(); - unsigned count; - - if (!crt) goto quit; /* no thread level data, we're done */ - - if (crt->crtpush) { - /* cleanup the cthread_push() array's */ - count = arraycount(&crt->crtpush); - while(count) { - /* pop and execute in a try() wrapper */ - cthread_pop(CTHDPOP_TRY); - count--; - } - /* cthread_push() array's should be empty now */ - arrayfree(&crt->crtpush); - arrayfree(&crt->crtargs); - } - - if (crt->crtmutx) { - /* cleanup the mutex lock array */ - count = arraycount(&crt->crtmutx); - while(count) { - CLIBMUTX *x = arraydel(&crt->crtmutx, count); - if (x) mtxclup(x); - count--; - } - arrayfree(&crt->crtmutx); - } - -quit: - return; -} - -/* When a thread terminates and returns to the runtime code in @CRT0 -** a call is made to @@CTCLUP so that thread level cleanup can be done -**/ -void -__ctclup(void) -{ - try(cleanup_thread,0); -} diff --git a/src/crent370/clib/@@ctcrtx.o b/src/crent370/clib/@@ctcrtx.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ctcrtx.s b/src/crent370/clib/@@ctcrtx.s deleted file mode 100644 index 9d1f335..0000000 --- a/src/crent370/clib/@@ctcrtx.s +++ /dev/null @@ -1,503 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ctcrtx.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'cthread_create_ex' -* Program text area - DS 0F - EJECT -* external function 'cthread_create_ex' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'cthread_create_ex' -@@CTCRTX PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'cthread_create_ex' code - L 5,0(11) ==> func - L 3,12(11) ==> stacksize - SLR 2,2 ==> psa - L 4,540(2) ==> tcb - ST 4,88(13) ==> tcb - LA 1,88(,13) - L 15,=V(@@CTFIND) - BALR 14,15 - ST 2,104(13) ==> psa - LTR 3,3 ==> stacksize - BNE @@L2 - L 3,=F'65536' ==> stacksize -@@L2 EQU * - LTR 5,5 ==> func - BNE @@L3 - L 5,=A(@@2) ==> func -@@L3 EQU * - LTR 15,15 ==> owner - BNE @@L4 - ST 4,88(13) ==> tcb - ST 15,92(13) ==> owner - ST 15,96(13) ==> owner - LA 1,88(,13) - L 15,=A(@@3) - BALR 14,15 - LTR 15,15 ==> owner - BE @@L6 -@@L4 EQU * - MVC 88(4,13),=F'0' - MVC 92(4,13),8(15) ==> .tcb - ST 3,96(13) ==> stacksize - LA 1,88(,13) - L 15,=A(@@3) - BALR 14,15 - ST 15,104(13) ==> owner - LTR 15,15 - BE @@L6 - ST 5,28(15) ==> func,func - L 2,104(13) - MVC 32(4,2),4(11) ==> .arg1,arg1 - L 2,104(13) - MVC 36(4,2),8(11) ==> .arg2,arg2 - MVC 88(4,13),=A(@@4) - MVC 92(4,13),104(13) - LA 1,88(,13) - L 15,=V(@@@TRY) - BALR 14,15 - LTR 15,15 ==> rc - BNE @@L8 - L 2,104(13) - L 15,20(2) ==> rc,rc -@@L8 EQU * - LTR 15,15 ==> rc - BE @@L6 - L 2,104(13) - MVC 8(4,2),=F'0' ==> .tcb - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@CTDEL) - BALR 14,15 -@@L6 EQU * - L 15,104(13) -* Function 'cthread_create_ex' epilogue - PDPEPIL -* Function 'cthread_create_ex' literal pool - DS 0D - LTORG -* Function 'cthread_create_ex' page table -@@PGT0 DS 0F - DC A(@@PG0) - -&FUNC SETC 'attach' - DS 0F - EJECT -* static function 'attach' prologue -* frame base=88, local stack=64, call args=0 -&FUNC SETC 'attach' -@@4 PDPPRLG CINDEX=1,FRAME=152,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'attach' code - L 4,0(11) ==> task - LA 6,88(,13) - LA 7,64(0,0) - SLR 2,2 - LR 3,2 - MVCL 6,2 - LR 3,4 ==> task - A 3,=F'16' - LA 2,88(,13) - LA 1,0(,4) ==> task - ATTACH EP=CTHREAD,ECB=(3),DPMOD=-1,SF=(E,(2)) - ST 1,8(4) ==> .tcb - ST 15,20(4) ==> .rc - L 15,20(4) ==> .rc -* Function 'attach' epilogue - PDPEPIL -* Function 'attach' literal pool - DS 0D - LTORG -* Function 'attach' page table -@@PGT1 DS 0F - DC A(@@PG1) - -&FUNC SETC 'newthread' - DS 0F - EJECT -* static function 'newthread' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'newthread' -@@3 PDPPRLG CINDEX=2,FRAME=96,BASER=12,ENTRY=NO - B @@FEN2 - LTORG -@@FEN2 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG2 EQU * - LR 11,1 - L 10,=A(@@PGT2) -* Function 'newthread' code - L 3,8(11) ==> stacksize - LA 1,88(,13) - L 15,=V(@@GRTGET) - BALR 14,15 - LR 5,15 ==> grt - LR 2,3 ==> stacksize - BCTR 2,0 - LA 4,78(0,0) - CLR 2,4 - BNH @@L12 - LR 4,3 ==> newstack,stacksize - A 4,=F'7' ==> newstack - N 4,=F'1048568' ==> newstack - B @@L13 -@@L12 EQU * - LA 4,80(0,0) ==> newstack -@@L13 EQU * - MVC 88(4,13),=F'1' - LR 2,4 ==> newstack - A 2,=F'44' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 3,15 ==> task - LTR 15,15 ==> task - BE @@L14 - ST 15,88(13) ==> task - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - MVC 8(4,3),0(11) ==> .tcb,tcb - MVC 12(4,3),4(11) ==> .owntcb,owntcb - ST 4,24(3) ==> newstack,stacksize - LR 2,5 ==> grt - A 2,=F'64' - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - ST 2,88(13) - ST 3,92(13) ==> task - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L14 EQU * - LR 15,3 ==> task -* Function 'newthread' epilogue - PDPEPIL -* Function 'newthread' literal pool - DS 0D - LTORG -* Function 'newthread' page table -@@PGT2 DS 0F - DC A(@@PG2) -@@LC0 EQU * - DC C'CTHDTASK' - DC X'0' - -&FUNC SETC 'dummy' - DS 0F - EJECT -* static function 'dummy' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'dummy' -@@2 PDPPRLG CINDEX=3,FRAME=104,BASER=12,ENTRY=NO - B @@FEN3 - LTORG -@@FEN3 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG3 EQU * - LR 11,1 - L 10,=A(@@PGT3) -* Function 'dummy' code - LA 1,88(,13) - L 15,=V(@@CTSELF) - BALR 14,15 - LR 2,15 ==> task - MVC 88(4,13),=A(@@LC1) - MVC 92(4,13),0(11) ==> arg1 - MVC 96(4,13),4(11) ==> arg2 - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC2) - ST 2,92(13) ==> task - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LTR 2,2 ==> task - BE @@L16 - MVC 88(4,13),=A(@@LC3) - ST 2,92(13) ==> task - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC4) - MVC 92(4,13),8(2) ==> .tcb - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC5) - MVC 92(4,13),12(2) ==> .owntcb - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC6) - MVC 92(4,13),16(2) ==> .termecb - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC7) - MVC 92(4,13),20(2) ==> .rc - MVC 96(4,13),20(2) ==> .rc - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC8) - MVC 92(4,13),24(2) ==> .stacksize - MVC 96(4,13),24(2) ==> .stacksize - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC9) - MVC 92(4,13),28(2) ==> .func - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC10) - MVC 92(4,13),32(2) ==> .arg1 - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC11) - MVC 92(4,13),36(2) ==> .arg2 - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L16 EQU * - L 15,=F'-1' -* Function 'dummy' epilogue - PDPEPIL -* Function 'dummy' literal pool - DS 0D - LTORG -* Function 'dummy' page table -@@PGT3 DS 0F - DC A(@@PG3) -@@LC1 EQU * - DC C'dummy(arg1=%08X, arg2=%08X)' - DC X'15' - DC X'0' -@@LC2 EQU * - DC C'CTHDTASK handle=%08X' - DC X'15' - DC X'0' -@@LC3 EQU * - DC C'task->eye %-8.8s' - DC X'15' - DC X'0' -@@LC4 EQU * - DC C'task->tcb %08X' - DC X'15' - DC X'0' -@@LC5 EQU * - DC C'task->owntcb %08X' - DC X'15' - DC X'0' -@@LC6 EQU * - DC C'task->termecb %08X' - DC X'15' - DC X'0' -@@LC7 EQU * - DC C'task->rc %08X (%d)' - DC X'15' - DC X'0' -@@LC8 EQU * - DC C'task->stacksize %08X (%d)' - DC X'15' - DC X'0' -@@LC9 EQU * - DC C'task->func %08X' - DC X'15' - DC X'0' -@@LC10 EQU * - DC C'task->arg1 %08X' - DC X'15' - DC X'0' -@@LC11 EQU * - DC C'task->arg2 %08X' - DC X'15' - DC X'0' - -&FUNC SETC 'cleanup_thread' - DS 0F - EJECT -* static function 'cleanup_thread' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'cleanup_thread' -@@5 PDPPRLG CINDEX=4,FRAME=96,BASER=12,ENTRY=NO - B @@FEN4 - LTORG -@@FEN4 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG4 EQU * - LR 11,1 - L 10,=A(@@PGT4) -* Function 'cleanup_thread' code - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - LR 3,15 ==> crt - LTR 15,15 ==> crt - BE @@L17 - L 2,332(15) ==> .crtpush - LTR 2,2 - BE @@L20 - LR 2,15 ==> crt - A 2,=F'332' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 2,15 ==> count - LTR 15,15 ==> count - BE @@L32 -@@L24 EQU * - MVC 88(4,13),=F'2' - LA 1,88(,13) - L 15,=V(@@CTPOP) - BALR 14,15 - BCTR 2,0 ==> count - LTR 2,2 ==> count - BNE @@L24 -@@L32 EQU * - LR 2,3 ==> crt - A 2,=F'332' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARFRE) - BALR 14,15 - A 2,=F'4' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARFRE) - BALR 14,15 -@@L20 EQU * - L 2,340(3) ==> .crtmutx - LTR 2,2 - BE @@L17 - LR 2,3 ==> crt - A 2,=F'340' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 2,15 ==> count - LTR 15,15 ==> count - BE @@L34 - LR 4,3 ==> crt - A 4,=F'340' -@@L30 EQU * - ST 4,88(13) - ST 2,92(13) ==> count - LA 1,88(,13) - L 15,=V(@@ARDEL) - BALR 14,15 - LTR 15,15 ==> x - BE @@L29 - ST 15,88(13) ==> x - LA 1,88(,13) - L 15,=V(MTXCLUP) - BALR 14,15 -@@L29 EQU * - BCTR 2,0 ==> count - LTR 2,2 ==> count - BNE @@L30 -@@L34 EQU * - LR 2,3 ==> crt - A 2,=F'340' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARFRE) - BALR 14,15 -@@L19 EQU * -@@L17 EQU * -* Function 'cleanup_thread' epilogue - PDPEPIL -* Function 'cleanup_thread' literal pool - DS 0D - LTORG -* Function 'cleanup_thread' page table -@@PGT4 DS 0F - DC A(@@PG4) - DS 0F - EJECT -* external function '__ctclup' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC '__ctclup' -@@CTCLUP PDPPRLG CINDEX=5,FRAME=96,BASER=12,ENTRY=YES - B @@FEN5 - LTORG -@@FEN5 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG5 EQU * - LR 11,1 - L 10,=A(@@PGT5) -* Function '__ctclup' code - MVC 88(4,13),=A(@@5) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@@TRY) - BALR 14,15 -* Function '__ctclup' epilogue - PDPEPIL -* Function '__ctclup' literal pool - DS 0D - LTORG -* Function '__ctclup' page table -@@PGT5 DS 0F - DC A(@@PG5) - END diff --git a/src/crent370/clib/@@ctdel.c b/src/crent370/clib/@@ctdel.c deleted file mode 100644 index 0e05191..0000000 --- a/src/crent370/clib/@@ctdel.c +++ /dev/null @@ -1,39 +0,0 @@ -/* @@CTDEL.C - cthread_delete() -** delete a CTHDTASK handle -*/ -#include "clibthrd.h" - -__asm__("\n&FUNC SETC 'cthread_delete'"); -void -cthread_delete(CTHDTASK **task) -{ - CLIBGRT *grt = __grtget(); - CTHDTASK **array; - unsigned count; - unsigned n; - - if (!task) goto quit; - if (!*task) goto quit; - if (strcmp((*task)->eye, CTHDTASK_EYE)!=0) goto quit; - - lock(&grt->grtcthrd,0); - array = grt->grtcthrd; - count = arraycount(&array); - for(n=0; n < count; n++) { - if (!array[n]) continue; - if (array[n] == *task) { - arraydel(&grt->grtcthrd, n+1); - break; - } - } - unlock(&grt->grtcthrd,0); - - /* detach the thread */ - cthread_detach(*task); - - free(*task); - *task = 0; - -quit: - return; -} diff --git a/src/crent370/clib/@@ctdel.o b/src/crent370/clib/@@ctdel.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ctdel.s b/src/crent370/clib/@@ctdel.s deleted file mode 100644 index 77995bc..0000000 --- a/src/crent370/clib/@@ctdel.s +++ /dev/null @@ -1,128 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ctdel.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'cthread_delete' -* Program text area - DS 0F - EJECT -* external function 'cthread_delete' prologue -* frame base=88, local stack=8, call args=8 -&FUNC SETC 'cthread_delete' -@@CTDEL PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'cthread_delete' code - L 4,0(11) ==> task - LA 1,88(,13) - L 15,=V(@@GRTGET) - BALR 14,15 - LR 5,15 ==> grt - LTR 4,4 ==> task - BE @@L1 - L 2,0(4) ==> task - LTR 2,2 - BE @@L1 - ST 2,88(13) - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(STRCMP) - BALR 14,15 - LR 3,15 ==> grt - LTR 15,15 ==> grt - BNE @@L1 - LR 2,5 ==> grt - A 2,=F'64' - ST 2,88(13) - ST 15,92(13) ==> grt - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - MVC 96(4,13),0(2) ==> .grtcthrd - LA 2,96(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 6,15 ==> count - LR 15,3 ==> n,grt - CLR 3,6 ==> n,count - BNL @@L7 -@@L12 EQU * - LR 3,15 ==> n - MH 3,=H'4' - L 2,96(13) - L 2,0(3,2) - LTR 2,2 - BE @@L8 - CL 2,0(4) ==> task - BNE @@L8 - LR 2,5 ==> grt - A 2,=F'64' - ST 2,88(13) - LR 2,15 ==> n - A 2,=F'1' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@ARDEL) - BALR 14,15 - B @@L7 -@@L8 EQU * - A 15,=F'1' ==> n - CLR 15,6 ==> n,count - BL @@L12 -@@L7 EQU * - LR 2,5 ==> grt - A 2,=F'64' - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - MVC 88(4,13),0(4) ==> task - LA 1,88(,13) - L 15,=V(@@CTDET) - BALR 14,15 - MVC 88(4,13),0(4) ==> task - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - MVC 0(4,4),=F'0' ==> task -@@L3 EQU * -@@L1 EQU * -* Function 'cthread_delete' epilogue - PDPEPIL -* Function 'cthread_delete' literal pool - DS 0D - LTORG -* Function 'cthread_delete' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'CTHDTASK' - DC X'0' - END diff --git a/src/crent370/clib/@@ctdet.c b/src/crent370/clib/@@ctdet.c deleted file mode 100644 index 8075444..0000000 --- a/src/crent370/clib/@@ctdet.c +++ /dev/null @@ -1,50 +0,0 @@ -/* @@CTDET.C - cthread_detach() -** detach a thread (subtask) -*/ -#include "clibthrd.h" - -static int detach(CTHDTASK *task); - -__asm__("\n&FUNC SETC 'cthread_detach'"); -int -cthread_detach(CTHDTASK *task) -{ - int rc = 0; -#if 0 - char buf[256] = ""; - - __caller(buf); - wtof("__ctdet called by %s", buf); -#endif - if (!task) goto quit; - if (!task->tcb) goto quit; - - /* we use try() to catch any DETACH failures */ - rc = try(detach, task); - - if (rc==0) rc = task->rc; - task->tcb = 0; - -quit: - return rc; -} - -__asm__("\n&FUNC SETC 'detach'"); -static int -detach(CTHDTASK *task) -{ - void *tcb = (void*)(task->tcb); -#if 0 - wtof("Issuing DETACH for task=%08X, TCB=%08X", task, task->tcb); -#endif - __asm("DS\t0H\n\t" - "DETACH (%1),STAE=YES detach the subtask\n\t" - "ST\t15,0(,%0) save the return code" - : : "r"(&task->rc), "r"(&tcb) : "14","15","0","1" ); -#if 0 - wtof("Return from DETACH for task=%08X, TCB=%08X, RC=%d", task, task->tcb, task->rc); -#endif - task->tcb = 0; - - return task->rc; -} diff --git a/src/crent370/clib/@@ctdet.o b/src/crent370/clib/@@ctdet.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ctdet.s b/src/crent370/clib/@@ctdet.s deleted file mode 100644 index 0e6ae87..0000000 --- a/src/crent370/clib/@@ctdet.s +++ /dev/null @@ -1,102 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ctdet.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'cthread_detach' -* Program text area - DS 0F - EJECT -* external function 'cthread_detach' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'cthread_detach' -@@CTDET PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'cthread_detach' code - L 3,0(11) ==> task - SLR 15,15 ==> rc - LTR 3,3 ==> task - BE @@L3 - L 2,8(3) ==> .tcb - LTR 2,2 - BE @@L3 - MVC 88(4,13),=A(@@2) - ST 3,92(13) ==> task - LA 1,88(,13) - L 15,=V(@@@TRY) - BALR 14,15 - LTR 15,15 ==> rc - BNE @@L5 - L 15,20(3) ==> rc,rc -@@L5 EQU * - MVC 8(4,3),=F'0' ==> .tcb -@@L3 EQU * -* Function 'cthread_detach' epilogue - PDPEPIL -* Function 'cthread_detach' literal pool - DS 0D - LTORG -* Function 'cthread_detach' page table -@@PGT0 DS 0F - DC A(@@PG0) - -&FUNC SETC 'detach' - DS 0F - EJECT -* static function 'detach' prologue -* frame base=88, local stack=8, call args=0 -&FUNC SETC 'detach' -@@2 PDPPRLG CINDEX=1,FRAME=96,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'detach' code - L 4,0(11) ==> task - MVC 88(4,13),8(4) ==> .tcb - LR 3,4 ==> task - A 3,=F'20' - LA 2,88(,13) - DS 0H - DETACH (2),STAE=YES detach the subtask - ST 15,0(,3) save the return code - MVC 8(4,4),=F'0' ==> .tcb - L 15,0(3) ==> .rc -* Function 'detach' epilogue - PDPEPIL -* Function 'detach' literal pool - DS 0D - LTORG -* Function 'detach' page table -@@PGT1 DS 0F - DC A(@@PG1) - END diff --git a/src/crent370/clib/@@ctfind.c b/src/crent370/clib/@@ctfind.c deleted file mode 100644 index 7295d81..0000000 --- a/src/crent370/clib/@@ctfind.c +++ /dev/null @@ -1,34 +0,0 @@ -/* @@CTFIND.C - cthread_find() -** find thread (subtask) instance by tcb address -** returns CTHDTASK handle or NULL if not found. -*/ -#include "clibthrd.h" - -__asm__("\n&FUNC SETC 'cthread_find'"); -CTHDTASK * -cthread_find(unsigned tcb) -{ - CLIBGRT *grt = __grtget(); - CTHDTASK *task = NULL; - CTHDTASK **array; - int locked; - unsigned count; - unsigned n; - - locked = lock(&grt->grtcthrd,0); - array = grt->grtcthrd; - count = arraycount(&array); - for(n=0; n < count; n++) { - if (!array[n]) continue; - if (array[n]->tcb == tcb) { - task = array[n]; - break; - } - } - if (locked==0) { - unlock(&grt->grtcthrd,0); - } - -quit: - return task; -} diff --git a/src/crent370/clib/@@ctfind.o b/src/crent370/clib/@@ctfind.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ctfind.s b/src/crent370/clib/@@ctfind.s deleted file mode 100644 index 62c238a..0000000 --- a/src/crent370/clib/@@ctfind.s +++ /dev/null @@ -1,99 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ctfind.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'cthread_find' -* Program text area - DS 0F - EJECT -* external function 'cthread_find' prologue -* frame base=88, local stack=8, call args=8 -&FUNC SETC 'cthread_find' -@@CTFIND PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'cthread_find' code - L 9,0(11) ==> tcb - LA 1,88(,13) - L 15,=V(@@GRTGET) - BALR 14,15 - LR 8,15 ==> grt - SLR 6,6 ==> task - LR 2,15 ==> grt - A 2,=F'64' - ST 2,88(13) - ST 6,92(13) ==> task - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 7,15 ==> locked - MVC 96(4,13),0(2) ==> .grtcthrd - LA 2,96(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 4,6 ==> n,task - CLR 6,15 ==> task,count - BNL @@L3 - L 5,96(13) -@@L8 EQU * - LR 2,4 ==> n - MH 2,=H'4' - L 3,0(2,5) ==> task - LTR 3,3 ==> task - BE @@L4 - L 2,8(3) ==> .tcb - CLR 2,9 ==> tcb - BNE @@L4 - LR 6,3 ==> task - B @@L3 -@@L4 EQU * - A 4,=F'1' ==> n - CLR 4,15 ==> n,count - BL @@L8 -@@L3 EQU * - LTR 7,7 ==> locked - BNE @@L10 - LR 2,8 ==> grt - A 2,=F'64' - ST 2,88(13) - ST 7,92(13) ==> locked - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L10 EQU * - LR 15,6 ==> task -* Function 'cthread_find' epilogue - PDPEPIL -* Function 'cthread_find' literal pool - DS 0D - LTORG -* Function 'cthread_find' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@ctgtcb.c b/src/crent370/clib/@@ctgtcb.c deleted file mode 100644 index 4231e98..0000000 --- a/src/crent370/clib/@@ctgtcb.c +++ /dev/null @@ -1,23 +0,0 @@ -/* @@CTGTCB.C - cthread_get_tcb() -** get TCB address for thread -** returns TCB address as unsigned value -*/ -#include "clibthrd.h" - -__asm__("\n&FUNC SETC 'cthread_get_tcb'"); -unsigned -cthread_get_tcb(CTHDTASK *task) -{ - unsigned tcb; - - if (task) { - tcb = task->tcb; /* get task TCB address */ - } - else { - unsigned *psa = (unsigned*)0; - tcb = psa[0x21C/4]; /* get our TCB address */ - } - -quit: - return tcb; -} diff --git a/src/crent370/clib/@@ctgtcb.o b/src/crent370/clib/@@ctgtcb.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ctgtcb.s b/src/crent370/clib/@@ctgtcb.s deleted file mode 100644 index e95d91f..0000000 --- a/src/crent370/clib/@@ctgtcb.s +++ /dev/null @@ -1,57 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ctgtcb.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'cthread_get_tcb' -* Program text area - DS 0F - EJECT -* external function 'cthread_get_tcb' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'cthread_get_tcb' -@@CTGTCB PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'cthread_get_tcb' code - L 15,0(11) ==> task - LTR 15,15 ==> task - BE @@L2 - L 15,8(15) ==> tcb,tcb - B @@L4 -@@L2 EQU * - SLR 2,2 ==> psa - L 15,540(2) ==> tcb -@@L4 EQU * -* Function 'cthread_get_tcb' epilogue - PDPEPIL -* Function 'cthread_get_tcb' literal pool - DS 0D - LTORG -* Function 'cthread_get_tcb' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@ctlock.c b/src/crent370/clib/@@ctlock.c deleted file mode 100644 index 292ecb7..0000000 --- a/src/crent370/clib/@@ctlock.c +++ /dev/null @@ -1,57 +0,0 @@ -/* @@CTLOCK.C - cthread_lock(), cthread_unlock() -*/ -#include "clibthrd.h" -#include "clibenq.h" - -#define QNAME "LCTHREAD" - -/* __ctlock() rname = "string value" */ -__asm__("\n&FUNC SETC 'cthread_lock'"); -int -cthread_lock(int shared, const char *rname) -{ - int rc; - int len; - unsigned char buf[24]; - - if (!rname) { - unsigned *psa = (unsigned *)0; - unsigned tcb = psa[0x21C/4]; - unsigned *ascb = (unsigned *)psa[0x224/4]; - unsigned asid = ((ascb[0x24/4]) >> 16); - - sprintf(buf, "CTHDX.%04X.%08X", asid, tcb); - rname = buf; - } - - if (shared) { - shared = ENQ_SHR; - } - - rc = ENQ(QNAME, rname, shared); - - return rc; -} - -__asm__("\n&FUNC SETC 'cthread_unlock'"); -int -cthread_unlock(const char *rname) -{ - int rc; - int len; - unsigned char buf[24]; - - if (!rname) { - unsigned *psa = (unsigned *)0; - unsigned tcb = psa[0x21C/4]; - unsigned *ascb = (unsigned *)psa[0x224/4]; - unsigned asid = ((ascb[0x24/4]) >> 16); - - sprintf(buf, "CTHDX.%04X.%08X", asid, tcb); - rname = buf; - } - - rc = DEQ(QNAME, rname, 0); - - return rc; -} diff --git a/src/crent370/clib/@@ctlock.o b/src/crent370/clib/@@ctlock.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ctlock.s b/src/crent370/clib/@@ctlock.s deleted file mode 100644 index b22b8af..0000000 --- a/src/crent370/clib/@@ctlock.s +++ /dev/null @@ -1,131 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ctlock.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'cthread_lock' -* Program text area - DS 0F - EJECT -* external function 'cthread_lock' prologue -* frame base=88, local stack=24, call args=16 -&FUNC SETC 'cthread_lock' -@@CTLOCK PDPPRLG CINDEX=0,FRAME=128,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'cthread_lock' code - L 5,0(11) ==> shared - L 3,4(11) ==> rname - LTR 3,3 ==> rname - BNE @@L2 - L 4,540(3) ==> tcb - L 2,548(3) ==> ascb - L 2,36(2) ==> asid - SRL 2,16 ==> asid - LA 3,104(,13) ==> rname - ST 3,88(13) ==> rname - MVC 92(4,13),=A(@@LC0) - ST 2,96(13) ==> asid - ST 4,100(13) ==> tcb - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 -@@L2 EQU * - LTR 5,5 ==> shared - BE @@L3 - LA 5,4(0,0) ==> shared -@@L3 EQU * - MVC 88(4,13),=A(@@LC1) - ST 3,92(13) ==> rname - ST 5,96(13) ==> shared - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@ENQDEQ) - BALR 14,15 -* Function 'cthread_lock' epilogue - PDPEPIL -* Function 'cthread_lock' literal pool - DS 0D - LTORG -* Function 'cthread_lock' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'CTHDX.%04X.%08X' - DC X'0' -@@LC1 EQU * - DC C'LCTHREAD' - DC X'0' - -&FUNC SETC 'cthread_unlock' - DS 0F - EJECT -* external function 'cthread_unlock' prologue -* frame base=88, local stack=24, call args=16 -&FUNC SETC 'cthread_unlock' -@@CTUNLK PDPPRLG CINDEX=1,FRAME=128,BASER=12,ENTRY=YES - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'cthread_unlock' code - L 3,0(11) ==> rname - LTR 3,3 ==> rname - BNE @@L5 - L 4,540(3) ==> tcb - L 2,548(3) ==> ascb - L 2,36(2) ==> asid - SRL 2,16 ==> asid - LA 3,104(,13) ==> rname - ST 3,88(13) ==> rname - MVC 92(4,13),=A(@@LC0) - ST 2,96(13) ==> asid - ST 4,100(13) ==> tcb - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 -@@L5 EQU * - MVC 88(4,13),=A(@@LC1) - ST 3,92(13) ==> rname - MVC 96(4,13),=F'0' - MVC 100(4,13),=F'1' - LA 1,88(,13) - L 15,=V(@@ENQDEQ) - BALR 14,15 -* Function 'cthread_unlock' epilogue - PDPEPIL -* Function 'cthread_unlock' literal pool - DS 0D - LTORG -* Function 'cthread_unlock' page table -@@PGT1 DS 0F - DC A(@@PG1) - END diff --git a/src/crent370/clib/@@ctpop.c b/src/crent370/clib/@@ctpop.c deleted file mode 100644 index 48dda8c..0000000 --- a/src/crent370/clib/@@ctpop.c +++ /dev/null @@ -1,51 +0,0 @@ -/* @@CTPOP.C */ -#include -#include -#include "clibthrd.h" -#include "cliblock.h" -#include "clibcrt.h" -#include "clibary.h" -#include "clibstae.h" - -__asm__("\n&FUNC SETC 'cthread_pop'"); -int -cthread_pop(CTHDPOP type) -{ - int rc = 0; - CLIBCRT *crt = __crtget(); - int (*func)(void *) = 0; - void *arg = 0; - unsigned count; - - lock(&crt->crtpush,0); - count = arraycount(&crt->crtpush); - if (count) { - func = arraydel(&crt->crtpush,count); - arg = arraydel(&crt->crtargs,count); - } - unlock(&crt->crtpush,0); - - if (!func) goto quit; - - switch(type) { - default: - /* case CTHDPOP_NOEXEC: /* pop func, do not execute */ - break; - case CTHDPOP_EXEC: /* pop func, execute */ - rc = func(arg); - break; - case CTHDPOP_TRY: /* pop func, execute with try() */ - rc = try(func,arg); - break; - case CTHDPOP_ESTAE: /* pop func, execute with ESTAE */ - /* if something goes all wrong, capture it! */ - abendrpt(ESTAE_CREATE, DUMP_DEFAULT); - rc = func(arg); - /* remove ESTAE */ - abendrpt(ESTAE_DELETE, DUMP_DEFAULT); - break; - } - -quit: - return rc; -} diff --git a/src/crent370/clib/@@ctpop.o b/src/crent370/clib/@@ctpop.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ctpop.s b/src/crent370/clib/@@ctpop.s deleted file mode 100644 index d7d5dc9..0000000 --- a/src/crent370/clib/@@ctpop.s +++ /dev/null @@ -1,139 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ctpop.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'cthread_pop' -* Program text area - DS 0F - EJECT -* external function 'cthread_pop' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'cthread_pop' -@@CTPOP PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'cthread_pop' code - L 6,0(11) ==> type - SLR 5,5 ==> rc - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - LR 4,15 ==> crt - LR 7,5 ==> func,rc - LR 8,5 ==> arg,rc - LR 2,15 ==> crt - A 2,=F'332' - ST 2,88(13) - ST 5,92(13) ==> rc - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 3,15 ==> count - LTR 15,15 ==> count - BE @@L2 - ST 2,88(13) - ST 15,92(13) ==> count - LA 1,88(,13) - L 15,=V(@@ARDEL) - BALR 14,15 - LR 7,15 ==> func - A 2,=F'4' - ST 2,88(13) - ST 3,92(13) ==> count - LA 1,88(,13) - L 15,=V(@@ARDEL) - BALR 14,15 - LR 8,15 ==> arg -@@L2 EQU * - LR 2,4 ==> crt - A 2,=F'332' - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LTR 7,7 ==> func - BE @@L4 - LA 2,2(0,0) - CLR 6,2 ==> type - BE @@L8 - BH @@L11 - LA 2,1(0,0) - CLR 6,2 ==> type - BE @@L7 - B @@L4 -@@L11 EQU * - LA 2,3(0,0) - CLR 6,2 ==> type - BE @@L9 - B @@L4 -@@L7 EQU * - ST 8,88(13) ==> arg - LA 1,88(,13) - LA 15,0(7) ==> func - BALR 14,15 - B @@L12 -@@L8 EQU * - ST 7,88(13) ==> func - ST 8,92(13) ==> arg - LA 1,88(,13) - L 15,=V(@@@TRY) - BALR 14,15 -@@L12 EQU * - LR 5,15 ==> rc - B @@L4 -@@L9 EQU * - MVC 88(4,13),=F'0' - MVC 92(4,13),=F'1' - LA 1,88(,13) - L 15,=V(@@ABRPT) - BALR 14,15 - ST 8,88(13) ==> arg - LA 1,88(,13) - LA 15,0(7) ==> func - BALR 14,15 - LR 5,15 ==> rc - MVC 88(4,13),=F'2' - MVC 92(4,13),=F'1' - LA 1,88(,13) - L 15,=V(@@ABRPT) - BALR 14,15 -@@L4 EQU * - LR 15,5 ==> rc -* Function 'cthread_pop' epilogue - PDPEPIL -* Function 'cthread_pop' literal pool - DS 0D - LTORG -* Function 'cthread_pop' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@ctpost.c b/src/crent370/clib/@@ctpost.c deleted file mode 100644 index 8eb9cf1..0000000 --- a/src/crent370/clib/@@ctpost.c +++ /dev/null @@ -1,18 +0,0 @@ -/* @@CTPOST.C - cthread_post() -*/ -#include "clibthrd.h" - -__asm__("\n&FUNC SETC 'cthread_post'"); -int -cthread_post(ECB *ecb, unsigned code) -{ - int rc = 0; - - if (!ecb) goto quit; - - code = code & ECB_VALUE_MASK; - rc = ecb_post(ecb, code); - -quit: - return rc; -} diff --git a/src/crent370/clib/@@ctpost.o b/src/crent370/clib/@@ctpost.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ctpost.s b/src/crent370/clib/@@ctpost.s deleted file mode 100644 index 9a96350..0000000 --- a/src/crent370/clib/@@ctpost.s +++ /dev/null @@ -1,60 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ctpost.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'cthread_post' -* Program text area - DS 0F - EJECT -* external function 'cthread_post' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'cthread_post' -@@CTPOST PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'cthread_post' code - L 2,0(11) ==> ecb - SLR 15,15 ==> rc - LTR 2,2 ==> ecb - BE @@L3 - ST 2,88(13) ==> ecb - L 2,4(11) ==> code - N 2,=F'1073741823' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@ECBPST) - BALR 14,15 -@@L3 EQU * -* Function 'cthread_post' epilogue - PDPEPIL -* Function 'cthread_post' literal pool - DS 0D - LTORG -* Function 'cthread_post' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@ctpush.c b/src/crent370/clib/@@ctpush.c deleted file mode 100644 index 9103965..0000000 --- a/src/crent370/clib/@@ctpush.c +++ /dev/null @@ -1,24 +0,0 @@ -/* @@CTPUSH.C */ -#include -#include -#include "clibthrd.h" -#include "cliblock.h" -#include "clibcrt.h" -#include "clibary.h" - -__asm__("\n&FUNC SETC 'cthread_push'"); -int -cthread_push(int (*func)(void*), void *arg) -{ - int rc = -1; - CLIBCRT *crt = __crtget(); - - if (func) { - lock(&crt->crtpush,0); - rc = arrayadd(&crt->crtpush, func); - if (!rc) rc =arrayadd(&crt->crtargs, arg); - unlock(&crt->crtpush,0); - } - - return rc; -} diff --git a/src/crent370/clib/@@ctpush.o b/src/crent370/clib/@@ctpush.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ctpush.s b/src/crent370/clib/@@ctpush.s deleted file mode 100644 index 3d84ea0..0000000 --- a/src/crent370/clib/@@ctpush.s +++ /dev/null @@ -1,88 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ctpush.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'cthread_push' -* Program text area - DS 0F - EJECT -* external function 'cthread_push' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'cthread_push' -@@CTPUSH PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'cthread_push' code - L 5,0(11) ==> func - L 4,=F'-1' ==> rc - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - LR 3,15 ==> crt - LTR 5,5 ==> func - BE @@L2 - LR 2,15 ==> crt - A 2,=F'332' - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - ST 2,88(13) - ST 5,92(13) ==> func - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 4,15 ==> rc - LTR 15,15 ==> rc - BNE @@L3 - A 2,=F'4' - ST 2,88(13) - MVC 92(4,13),4(11) ==> arg - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 4,15 ==> rc -@@L3 EQU * - LR 2,3 ==> crt - A 2,=F'332' - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L2 EQU * - LR 15,4 ==> rc -* Function 'cthread_push' epilogue - PDPEPIL -* Function 'cthread_push' literal pool - DS 0D - LTORG -* Function 'cthread_push' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@ctself.c b/src/crent370/clib/@@ctself.c deleted file mode 100644 index bf2b587..0000000 --- a/src/crent370/clib/@@ctself.c +++ /dev/null @@ -1,17 +0,0 @@ -/* @@CTSELF.C - cthread_self() -** find thread (subtask) instance for this thread -** returns CTHDTASK handle or NULL if not found. -*/ -#include "clibthrd.h" - -__asm__("\n&FUNC SETC 'cthread_self'"); -CTHDTASK * -cthread_self(void) -{ - unsigned *psa = (unsigned*)0; /* MVS prefixed save area */ - unsigned tcb = psa[0x21C/4]; /* get our TCB address */ - CTHDTASK *task = cthread_find(tcb); - -quit: - return task; -} diff --git a/src/crent370/clib/@@ctself.o b/src/crent370/clib/@@ctself.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ctself.s b/src/crent370/clib/@@ctself.s deleted file mode 100644 index 89b4d08..0000000 --- a/src/crent370/clib/@@ctself.s +++ /dev/null @@ -1,54 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ctself.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'cthread_self' -* Program text area - DS 0F - EJECT -* external function 'cthread_self' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'cthread_self' -@@CTSELF PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'cthread_self' code - SLR 2,2 ==> psa - MVC 88(4,13),540(2) - LA 1,88(,13) - L 15,=V(@@CTFIND) - BALR 14,15 -@@L2 EQU * -* Function 'cthread_self' epilogue - PDPEPIL -* Function 'cthread_self' literal pool - DS 0D - LTORG -* Function 'cthread_self' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@cttwat.c b/src/crent370/clib/@@cttwat.c deleted file mode 100644 index db7c0a8..0000000 --- a/src/crent370/clib/@@cttwat.c +++ /dev/null @@ -1,23 +0,0 @@ -/* @@CTTWAT.C - cthread_timed_wait() -** -*/ -#include "clibthrd.h" -#include "clibcrt.h" - -__asm__("\n&FUNC SETC 'cthread_timed_wait'"); -int -cthread_timed_wait(unsigned *ecb, unsigned bintvl, unsigned postcode) -{ - volatile int rc = 0; /* volatile needed to bypass bug in GCC */ - - if (!ecb) goto quit; - - ecb_timed_wait(ecb, bintvl, postcode); - - /* return value of posted ECB */ - rc = *ecb & ECB_VALUE_MASK; - *ecb = 0; - -quit: - return rc; -} diff --git a/src/crent370/clib/@@cttwat.o b/src/crent370/clib/@@cttwat.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@cttwat.s b/src/crent370/clib/@@cttwat.s deleted file mode 100644 index c04846f..0000000 --- a/src/crent370/clib/@@cttwat.s +++ /dev/null @@ -1,64 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@cttwat.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'cthread_timed_wait' -* Program text area - DS 0F - EJECT -* external function 'cthread_timed_wait' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'cthread_timed_wait' -@@CTTWAT PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'cthread_timed_wait' code - L 3,0(11) ==> ecb - MVC 104(4,13),=F'0' ==> rc - LTR 3,3 ==> ecb - BE @@L3 - ST 3,88(13) ==> ecb - MVC 92(4,13),4(11) ==> bintvl - MVC 96(4,13),8(11) ==> postcode - LA 1,88(,13) - L 15,=V(@@ECBTW) - BALR 14,15 - L 2,0(3) ==> ecb - N 2,=F'1073741823' - ST 2,104(13) ==> rc - MVC 0(4,3),=F'0' ==> ecb -@@L3 EQU * - L 15,104(13) ==> rc -* Function 'cthread_timed_wait' epilogue - PDPEPIL -* Function 'cthread_timed_wait' literal pool - DS 0D - LTORG -* Function 'cthread_timed_wait' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@ctwait.c b/src/crent370/clib/@@ctwait.c deleted file mode 100644 index 8ac17dd..0000000 --- a/src/crent370/clib/@@ctwait.c +++ /dev/null @@ -1,44 +0,0 @@ -/* @@CTWAIT.C - cthread_wait() -*/ -#include "clibthrd.h" - -#if 0 -#define WTODEBUG /* define for wtof() debug messages */ -#endif - -__asm__("\n&FUNC SETC 'cthread_wait'"); -int -cthread_wait(unsigned *ecb) -{ - int rc = 0; -#ifdef WTODEBUG - wtof("cthdwait(%08X) ecb=%08X before WAIT", ecb, *ecb); -#endif - if (!ecb) goto quit; - - __asm__("WAIT\tECB=(%0)" : : "r"(ecb) : "1", "14", "15"); -#ifdef WTODEBUG - wtof("cthdwait(%08X) ecb=%08X after WAIT", ecb, *ecb); -#endif - -#if 1 - __asm__("\n" -"AGAIN DS 0H\n" -" L 0,0(,%1) get ecb value\n" -" LA 1,0 new ecb value\n" -" CS 0,1,0(%1) save new value in ecb\n" -" BNZ AGAIN ecb changed, try again\n" -" N 0,=X'3FFFFFFF'\n" -" ST 0,%0 return ecb value" - : "=m"(rc) : "r"(ecb)); -#else - rc = (int)(*ecb & 0x3FFFFFFF); - *ecb = 0; -#endif - -quit: -#ifdef WTODEBUG - wtof("cthdwait(%08X) ecb=%08X, rc=%d", ecb, *ecb, rc); -#endif - return rc; -} diff --git a/src/crent370/clib/@@ctwait.o b/src/crent370/clib/@@ctwait.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ctwait.s b/src/crent370/clib/@@ctwait.s deleted file mode 100644 index d9bc51f..0000000 --- a/src/crent370/clib/@@ctwait.s +++ /dev/null @@ -1,63 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ctwait.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'cthread_wait' -* Program text area - DS 0F - EJECT -* external function 'cthread_wait' prologue -* frame base=88, local stack=8, call args=0 -&FUNC SETC 'cthread_wait' -@@CTWAIT PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'cthread_wait' code - L 2,0(11) ==> ecb - MVC 88(4,13),=F'0' - LTR 2,2 ==> ecb - BE @@L3 - WAIT ECB=(2) ==> ecb - -AGAIN DS 0H - L 0,0(,2) get ecb value ==> ecb - LA 1,0 new ecb value - CS 0,1,0(2) save new value in ecb ==> ecb - BNZ AGAIN ecb changed, try again - N 0,=X'3FFFFFFF' - ST 0,88(13) return ecb value -@@L3 EQU * - L 15,88(13) -* Function 'cthread_wait' epilogue - PDPEPIL -* Function 'cthread_wait' literal pool - DS 0D - LTORG -* Function 'cthread_wait' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@ctx.c b/src/crent370/clib/@@ctx.c deleted file mode 100644 index c781bd2..0000000 --- a/src/crent370/clib/@@ctx.c +++ /dev/null @@ -1,39 +0,0 @@ -/* @@CTX.C - external anchor -*/ -#include "clibthrd.h" - -extern void __ctexit(int); /* entry point in @@CRT0 */ -extern CTHDTASK *__ctcrte(void *func, void *arg1, void *arg2); -extern CTHDTASK *__ctcrtx(void *func, void *arg1, void *arg2, unsigned stack); -extern void __ctdel(CTHDTASK **task); -extern CTHDTASK *__ctfind(unsigned tcb); -extern CTHDTASK *__ctself(void); -extern int __ctdet(CTHDTASK *task); -extern unsigned __ctgtcb(CTHDTASK *task); -extern int __ctpost(unsigned *ecb, unsigned code); -extern int __ctwait(unsigned *ecb); -extern int __cttwat(unsigned *ecb, unsigned bintvl, unsigned postcode); -extern int __ctpush(int (*func)(void*), void *arg); -extern int __ctpop(CTHDPOP type); - -static CTHDX anchor = { - CTHDX_EYE, /* 00 eye catcher */ - 0, /* 08 CTHDTASK array (deprecated) */ - __ctexit, /* 0C cthread_exit() */ - __ctcrte, /* 10 cthread_create() */ - __ctcrtx, /* 14 cthread_create_ex() */ - __ctdel, /* 18 cthread_delete() */ - __ctfind, /* 1C cthread_find() */ - __ctself, /* 20 cthread_self() */ - __ctdet, /* 24 cthread_detach() */ - __ctgtcb, /* 28 cthread_get_tcb() */ - __ctpost, /* 2C cthread_post() */ - __ctwait, /* 30 cthread_wait() */ - 0, /* 34 cthread_lock() (deprecated) */ - 0, /* 38 cthread_unlock() (deprecated) */ - __cttwat, /* 3C cthread_timed_wait() */ - __ctpush, /* 40 cthread_push() */ - __ctpop, /* 44 cthread_pop() */ -}; - -CTHDX *__ctx = &anchor; diff --git a/src/crent370/clib/@@ctyiel.c b/src/crent370/clib/@@ctyiel.c deleted file mode 100644 index f0f850f..0000000 --- a/src/crent370/clib/@@ctyiel.c +++ /dev/null @@ -1,12 +0,0 @@ -#include - -__asm__("\n&FUNC SETC 'cthread_yield'"); -int cthread_yield(void) -{ - ECB ecb = 0; - - /* yield CPU using timed wait of .01 seconds (1 == .01 seconds) */ - ecb_timed_wait(&ecb, 1, 0); - - return 0; -} diff --git a/src/crent370/clib/@@ctyiel.o b/src/crent370/clib/@@ctyiel.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ctyiel.s b/src/crent370/clib/@@ctyiel.s deleted file mode 100644 index cddaf14..0000000 --- a/src/crent370/clib/@@ctyiel.s +++ /dev/null @@ -1,57 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ctyiel.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'cthread_yield' -* Program text area - DS 0F - EJECT -* external function 'cthread_yield' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'cthread_yield' -@@CTYIEL PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'cthread_yield' code - MVC 104(4,13),=F'0' - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@ECBTW) - BALR 14,15 - SLR 15,15 -* Function 'cthread_yield' epilogue - PDPEPIL -* Function 'cthread_yield' literal pool - DS 0D - LTORG -* Function 'cthread_yield' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@dblcvt.c b/src/crent370/clib/@@dblcvt.c deleted file mode 100644 index 42dd454..0000000 --- a/src/crent370/clib/@@dblcvt.c +++ /dev/null @@ -1,310 +0,0 @@ -/* @@DBLCVT.C */ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -void -__dblcvt(double num, char cnvtype, size_t nwidth, int nprecision, char *result) -{ - double b,round; - int i,j,exp,pdigits,format; - char sign, work[125]; - - /* save original data & set sign */ - if ( num < 0 ) { - b = -num; - sign = '-'; - } - else { - b = num; - sign = ' '; - } - - /* - Now scale to get exponent - */ - exp = 0; - if( b > 1.0 ) { - while ((b >= 10.0) && (exp < 120)) { - ++exp; - b=b / 10.0; - } - } - else if ( b == 0.0 ) { - exp=0; - } - /* 1.0 will get exp = 0 */ - else if ( b < 1.0 ) { - while ((b < 1.0) && (exp > -120)) { - --exp; - b=b*10.0; - } - } - - if ((exp <= -120) || (exp >= 120)) { - exp = 0; - b = 0.0; - } - - /* - now decide how to print and save in FORMAT. - -1 => we need leading digits - 0 => print in exp - +1 => we have digits before dp. - */ - switch (cnvtype) { - case 'E': - case 'e': - format = 0; - break; - case 'f': - case 'F': - if ( exp >= 0 ) { - format = 1; - } - else { - format = -1; - } - break; - default: - /* Style e is used if the exponent from its - conversion is less than -4 or greater than - or equal to the precision. - */ - if ( exp >= 0 ) { - if ( nprecision > exp ) { - format=1; - } - else { - format=0; - } - } - else { - /* if ( nprecision > (-(exp+1) ) ) { */ - if ( exp >= -4) { - format=-1; - } - else { - format=0; - } - } - break; - } - - /* - Now round - */ - switch (format) { - case 0: /* we are printing in standard form */ - if (nprecision < DBL_MANT_DIG) /* we need to round */ { - j = nprecision; - } - else { - j=DBL_MANT_DIG; - } - - round = 1.0/2.0; - i = 0; - while (++i <= j) { - round = round/10.0; - } - b = b + round; - if (b >= 10.0) { - b = b/10.0; - exp = exp + 1; - } - break; - - case 1: /* we have a number > 1 */ - /* need to round at the exp + nprecisionth digit */ - if (exp + nprecision < DBL_MANT_DIG) /* we need to round */ { - j = exp + nprecision; - } - else { - j = DBL_MANT_DIG; - } - - round = 0.5; - i = 0; - while (i++ < j) { - round = round/10; - } - - b = b + round; - if (b >= 10.0) { - b = b/10.0; - exp = exp + 1; - } - break; - - case -1: /* we have a number that starts 0.xxxx */ - if (nprecision < DBL_MANT_DIG) /* we need to round */ { - j = nprecision + exp + 1; - } - else { - j = DBL_MANT_DIG; - } - - round = 5.0; - i = 0; - while (i++ < j) { - round = round/10; - } - - if (j >= 0) { - b = b + round; - } - - if (b >= 10.0) { - b = b/10.0; - exp = exp + 1; - } - - if (exp >= 0) { - format = 1; - } - break; - } - - /* - Now extract the requisite number of digits - */ - if (format==-1) { - /* - Number < 1.0 so we need to print the "0." - and the leading zeros... - */ - result[0]=sign; - result[1]='0'; - result[2]='.'; - result[3]=0x00; - while (++exp) { - --nprecision; - strcat(result,"0"); - } - i=b; - --nprecision; - work[0] = (char)('0' + i % 10); - work[1] = 0x00; - strcat(result,work); - - pdigits = nprecision; - - while (pdigits-- > 0) { - b = b - i; - b = b * 10.0; - i = b; - work[0] = (char)('0' + i % 10); - work[1] = 0x00; - strcat(result,work); - } - } - /* - Number >= 1.0 just print the first digit - */ - else if (format==+1) { - i = b; - result[0] = sign; - result[1] = '\0'; - work[0] = (char)('0' + i % 10); - work[1] = 0x00; - strcat(result,work); - nprecision = nprecision + exp; - pdigits = nprecision ; - - while (pdigits-- > 0) { - if ( ((nprecision-pdigits-1)==exp) ) { - strcat(result,"."); - } - b = b - i; - b = b * 10.0; - i = b; - work[0] = (char)('0' + i % 10); - work[1] = 0x00; - strcat(result,work); - } - } - /* - printing in standard form - */ - else { - i = b; - result[0] = sign; - result[1] = '\0'; - work[0] = (char)('0' + i % 10); - work[1] = 0x00; - strcat(result,work); - strcat(result,"."); - - pdigits = nprecision; - - while (pdigits-- > 0) { - b = b - i; - b = b * 10.0; - i = b; - work[0] = (char)('0' + i % 10); - work[1] = 0x00; - strcat(result,work); - } - } - - if (format==0) { /* exp format - put exp on end */ - work[0] = 'E'; - if ( exp < 0 ) { - exp = -exp; - work[1]= '-'; - } - else { - work[1]= '+'; - } - work[2] = (char)('0' + (exp/10) % 10); - work[3] = (char)('0' + exp % 10); - work[4] = 0x00; - strcat(result, work); - } - else { - /* get rid of trailing zeros for g specifier */ - if (cnvtype == 'G' || cnvtype == 'g') { - char *p; - - p = strchr(result, '.'); - if (p != NULL) { - p++; - p = p + strlen(p) - 1; - while (*p != '.' && *p == '0') { - *p = '\0'; - p--; - } - if (*p == '.') { - *p = '\0'; - } - } - } - } - - /* printf(" Final Answer = <%s> fprintf gives=%g\n", - result,num); */ - /* - do we need to pad - */ - if(result[0] == ' ') { - strcpy(work,result+1); - } - else { - strcpy(work,result); - } - pdigits=nwidth-strlen(work); - result[0]= 0x00; - while(pdigits>0) { - strcat(result," "); - pdigits--; - } - strcat(result,work); - return; -} diff --git a/src/crent370/clib/@@dblcvt.o b/src/crent370/clib/@@dblcvt.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@dblcvt.s b/src/crent370/clib/@@dblcvt.s deleted file mode 100644 index 20be782..0000000 --- a/src/crent370/clib/@@dblcvt.s +++ /dev/null @@ -1,656 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@dblcvt.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__dblcvt' prologue -* frame base=88, local stack=200, call args=8 -&FUNC SETC '__dblcvt' -@@DBLCVT PDPPRLG CINDEX=0,FRAME=296,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__dblcvt' code - SLR 2,2 - SLR 3,3 - ST 2,232(13) - ST 3,4+232(13) - ST 2,240(13) - ST 3,4+240(13) - ST 2,248(13) - ST 3,4+248(13) - ST 2,256(13) - ST 3,4+256(13) - ST 2,264(13) - ST 3,4+264(13) - LR 8,2 ==> i - LR 9,3 ==> i - ST 2,272(13) ==> i - ST 3,4+272(13) ==> i - ST 2,280(13) ==> i - ST 3,4+280(13) ==> i - ST 2,288(13) ==> i - ST 3,4+288(13) ==> i - LD 0,0(11) ==> num - MVC 224(1,13),11(11) ==> cnvtype - LTDR 0,0 ==> num - BNL @@L2 - LCDR 0,0 ==> num - STD 0,80(,13) - LM 4,5,80(13) ==> b - LA 15,96(0,0) ==> sign - B @@L4 -@@L2 EQU * - STD 0,80(,13) ==> num - LM 4,5,80(13) ==> b - LA 15,64(0,0) ==> sign -@@L4 EQU * - SLR 7,7 ==> exp - STM 4,5,80(13) ==> b - LD 0,80(,13) - CD 0,=D'1.0E0' - BNH @@L5 - CD 0,=D'1.0E1' - BL @@L13 -@@L12 EQU * - A 7,=F'1' ==> exp - STM 4,5,80(13) ==> b - LD 2,80(,13) - DD 2,=D'1.0E1' - STD 2,80(,13) - LM 4,5,80(13) ==> b - CD 2,=D'1.0E1' - BL @@L13 - LA 2,119(0,0) - CR 7,2 ==> exp - BNH @@L12 - B @@L13 -@@L5 EQU * - STM 4,5,80(13) ==> b - LD 0,80(,13) - LTDR 0,0 - BNE @@L14 - SLR 7,7 ==> exp - B @@L13 -@@L14 EQU * - CD 0,=D'1.0E0' - BNL @@L13 - BNL @@L13 - L 2,=F'-120' - CR 7,2 ==> exp - BNH @@L13 -@@L24 EQU * - BCTR 7,0 ==> exp - STM 4,5,80(13) ==> b - LD 0,80(,13) - MD 0,=D'1.0E1' - STD 0,80(,13) - LM 4,5,80(13) ==> b - CD 0,=D'1.0E0' - BNL @@L13 - L 2,=F'-120' - CR 7,2 ==> exp - BH @@L24 -@@L13 EQU * - LR 2,7 ==> exp - A 2,=F'119' - LA 3,238(0,0) - CLR 2,3 - BNH @@L25 - SLR 7,7 ==> exp - LM 4,5,=D'0.0E0' ==> b -@@L25 EQU * - SLR 2,2 ==> cnvtype - IC 2,224(13) ==> cnvtype - LA 6,134(0,0) - CR 2,6 ==> cnvtype - BE @@L30 - BH @@L41 - LA 3,133(0,0) - CLR 2,3 ==> cnvtype - BE @@L131 - B @@L33 -@@L41 EQU * - LA 6,197(0,0) - CLR 2,6 ==> cnvtype - BE @@L131 - LA 3,198(0,0) - CR 2,3 ==> cnvtype - BNE @@L33 -@@L30 EQU * - MVC 228(4,13),=F'1' ==> format - LTR 7,7 ==> exp - BNL @@L26 - MVC 228(4,13),=F'-1' ==> format - B @@L26 -@@L33 EQU * - LTR 7,7 ==> exp - BL @@L34 - MVC 228(4,13),=F'1' ==> format - L 6,16(11) ==> nprecision - CR 6,7 ==> exp - BH @@L26 - B @@L131 -@@L34 EQU * - MVC 228(4,13),=F'-1' ==> format - L 2,=F'-4' - CR 7,2 ==> exp - BNL @@L26 -@@L131 EQU * - MVC 228(4,13),=F'0' ==> format -@@L26 EQU * - L 3,228(13) ==> format - LTR 3,3 - BE @@L43 - BH @@L74 - L 6,=F'-1' - CLR 3,6 - BE @@L61 - B @@L42 -@@L74 EQU * - L 3,228(13) ==> format - LA 2,1(0,0) - CLR 3,2 - BE @@L52 - B @@L42 -@@L43 EQU * - L 3,16(11) ==> j,nprecision - LA 6,13(0,0) - CR 3,6 ==> j - BNH @@L45 - LA 3,14(0,0) ==> j -@@L45 EQU * - LD 0,=D'5.0E-1' ==> round - LA 6,1(0,0) ==> i - CR 6,3 ==> i,j - BH @@L119 -@@L49 EQU * - DD 0,=D'1.0E1' ==> round - A 6,=F'1' ==> i - CR 6,3 ==> i,j - BNH @@L49 - B @@L119 -@@L52 EQU * - L 2,16(11) ==> j,nprecision - AR 2,7 ==> j,exp - LR 3,2 ==> j - LA 6,13(0,0) - CR 2,6 ==> j - BNH @@L54 - LA 3,14(0,0) ==> j -@@L54 EQU * - LD 0,=D'5.0E-1' ==> round - LA 6,1(0,0) ==> i - LTR 3,3 ==> j - BNH @@L119 -@@L58 EQU * - DD 0,=D'1.0E1' ==> round - LR 2,6 ==> i - A 6,=F'1' ==> i - CR 2,3 ==> i,j - BL @@L58 -@@L119 EQU * - STM 4,5,80(13) ==> b - LD 2,80(,13) - ADR 2,0 ==> round - STD 2,80(,13) - LM 4,5,80(13) ==> b - CD 2,=D'1.0E1' - BL @@L42 - DD 2,=D'1.0E1' - STD 2,80(,13) - LM 4,5,80(13) ==> b - A 7,=F'1' ==> exp - B @@L42 -@@L61 EQU * - L 3,16(11) ==> nprecision - LA 2,13(0,0) - CR 3,2 - BH @@L62 - AR 3,7 ==> j,exp - A 3,=F'1' ==> j - B @@L63 -@@L62 EQU * - LA 3,14(0,0) ==> j -@@L63 EQU * - LD 0,=D'5.0E0' ==> round - LA 6,1(0,0) ==> i - LTR 3,3 ==> j - BNH @@L121 -@@L67 EQU * - DD 0,=D'1.0E1' ==> round - LR 2,6 ==> i - A 6,=F'1' ==> i - CR 2,3 ==> i,j - BL @@L67 -@@L121 EQU * - LTR 3,3 ==> j - BL @@L68 - STM 4,5,80(13) ==> b - LD 2,80(,13) - ADR 2,0 ==> round - STD 2,80(,13) - LM 4,5,80(13) ==> b -@@L68 EQU * - STM 4,5,80(13) ==> b - LD 0,80(,13) - CD 0,=D'1.0E1' - BL @@L69 - DD 0,=D'1.0E1' - STD 0,80(,13) - LM 4,5,80(13) ==> b - A 7,=F'1' ==> exp -@@L69 EQU * - LTR 7,7 ==> exp - BL @@L42 - MVC 228(4,13),=F'1' ==> format -@@L42 EQU * - L 3,228(13) ==> format - L 2,=F'-1' - CLR 3,2 - BNE @@L75 - L 6,20(11) ==> result - STC 15,0(6) ==> sign - MVI 1(6),240 - MVI 2(6),75 - MVI 3(6),0 - A 7,=F'1' ==> exp - BE @@L123 -@@L79 EQU * - L 8,16(11) ==> nprecision - BCTR 8,0 - ST 8,16(11) ==> nprecision - MVC 88(4,13),20(11) ==> result - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(STRCAT) - BALR 14,15 - A 7,=F'1' ==> exp - BNE @@L79 -@@L123 EQU * - STM 4,5,80(13) ==> b - LD 2,80(,13) - LDR 0,2 - AD 0,=XL8'4F08000000000000' - STD 0,80(,13) - L 6,84(,13) ==> i - L 2,16(11) ==> nprecision - BCTR 2,0 - ST 2,16(11) ==> nprecision - ST 6,232(13) ==> i - L 8,232(13) - L 9,4+232(13) - SRDA 8,32 - LA 15,10(0,0) - DR 8,15 - LA 2,240(,8) - STC 2,96(13) ==> work - MVI 97(13),0 ==> work - MVC 88(4,13),20(11) ==> result - LA 2,96(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(STRCAT) - BALR 14,15 - L 3,16(11) ==> pdigits,nprecision - BCTR 3,0 ==> pdigits - L 2,16(11) ==> nprecision - LTR 2,2 - BNH @@L84 -@@L83 EQU * - MVC 80(4,13),=XL8'4E00000080000000' - ST 6,84(,13) ==> i - XI 84(13),128 - LD 0,80(,13) - SD 0,=XL8'4E00000080000000' - STM 4,5,80(13) ==> b - LD 2,80(,13) - SDR 2,0 - MD 2,=D'1.0E1' - STD 2,80(,13) - LM 4,5,80(13) ==> b - LDR 0,2 - AD 0,=XL8'4F08000000000000' - STD 0,80(,13) - L 6,84(,13) ==> i - ST 6,240(13) ==> i - L 8,240(13) - L 9,4+240(13) - SRDA 8,32 - LA 15,10(0,0) - DR 8,15 - ST 8,240(13) - ST 9,4+240(13) - LA 2,240(,8) - STC 2,96(13) ==> work - MVI 97(13),0 ==> work - MVC 88(4,13),20(11) ==> result - LA 2,96(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(STRCAT) - BALR 14,15 - LR 2,3 ==> pdigits - BCTR 3,0 ==> pdigits - LTR 2,2 ==> pdigits - BNH @@L84 - B @@L83 -@@L75 EQU * - L 3,228(13) ==> format - LA 2,1(0,0) - CLR 3,2 - BNE @@L85 - STM 4,5,80(13) ==> b - LD 2,80(,13) - LDR 0,2 - AD 0,=XL8'4F08000000000000' - STD 0,80(,13) - L 6,84(,13) ==> i - L 2,20(11) ==> result - STC 15,0(2) ==> sign - MVI 1(2),0 - ST 6,248(13) ==> i - L 8,248(13) - L 9,4+248(13) - SRDA 8,32 - LA 15,10(0,0) - DR 8,15 - LA 2,240(,8) - STC 2,96(13) ==> work - MVI 97(13),0 ==> work - MVC 88(4,13),20(11) ==> result - LA 2,96(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(STRCAT) - BALR 14,15 - L 3,16(11) ==> pdigits,nprecision - AR 3,7 ==> pdigits,exp - ST 3,16(11) ==> pdigits,nprecision - BCTR 3,0 ==> pdigits - L 2,16(11) ==> nprecision - LTR 2,2 - BNH @@L84 -@@L90 EQU * - L 2,16(11) ==> nprecision - SR 2,3 ==> pdigits - BCTR 2,0 - CLR 2,7 ==> exp - BNE @@L89 - MVC 88(4,13),20(11) ==> result - MVC 92(4,13),=A(@@LC1) - LA 1,88(,13) - L 15,=V(STRCAT) - BALR 14,15 -@@L89 EQU * - MVC 80(4,13),=XL8'4E00000080000000' - ST 6,84(,13) ==> i - XI 84(13),128 - LD 0,80(,13) - SD 0,=XL8'4E00000080000000' - STM 4,5,80(13) ==> b - LD 2,80(,13) - SDR 2,0 - MD 2,=D'1.0E1' - STD 2,80(,13) - LM 4,5,80(13) ==> b - LDR 0,2 - AD 0,=XL8'4F08000000000000' - STD 0,80(,13) - L 6,84(,13) ==> i - ST 6,256(13) ==> i - L 8,256(13) - L 9,4+256(13) - SRDA 8,32 - LA 15,10(0,0) - DR 8,15 - ST 8,256(13) - ST 9,4+256(13) - LA 2,240(,8) - STC 2,96(13) ==> work - MVI 97(13),0 ==> work - MVC 88(4,13),20(11) ==> result - LA 2,96(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(STRCAT) - BALR 14,15 - LR 2,3 ==> pdigits - BCTR 3,0 ==> pdigits - LTR 2,2 ==> pdigits - BNH @@L84 - B @@L90 -@@L85 EQU * - STM 4,5,80(13) ==> b - LD 2,80(,13) - LDR 0,2 - AD 0,=XL8'4F08000000000000' - STD 0,80(,13) - L 6,84(,13) ==> i - L 2,20(11) ==> result - STC 15,0(2) ==> sign - MVI 1(2),0 - ST 6,264(13) ==> i - L 2,264(13) - L 3,4+264(13) - SRDA 2,32 - LA 15,10(0,0) - DR 2,15 - ST 2,264(13) - ST 3,4+264(13) - IC 3,267(13) - LA 2,240(,3) - STC 2,96(13) ==> work - MVI 97(13),0 ==> work - MVC 88(4,13),20(11) ==> result - LA 2,96(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(STRCAT) - BALR 14,15 - MVC 88(4,13),20(11) ==> result - MVC 92(4,13),=A(@@LC1) - LA 1,88(,13) - L 15,=V(STRCAT) - BALR 14,15 - L 3,16(11) ==> pdigits,nprecision - BCTR 3,0 ==> pdigits - L 15,16(11) ==> nprecision - LTR 15,15 - BNH @@L84 -@@L95 EQU * - MVC 80(4,13),=XL8'4E00000080000000' - ST 6,84(,13) ==> i - XI 84(13),128 - LD 0,80(,13) - SD 0,=XL8'4E00000080000000' - STM 4,5,80(13) ==> b - LD 2,80(,13) - SDR 2,0 - MD 2,=D'1.0E1' - STD 2,80(,13) - LM 4,5,80(13) ==> b - LDR 0,2 - AD 0,=XL8'4F08000000000000' - STD 0,80(,13) - L 6,84(,13) ==> i - LR 8,6 ==> i - SRDA 8,32 ==> i - LA 2,10(0,0) - DR 8,2 ==> i - LA 2,240(,8) - STC 2,96(13) ==> work - MVI 97(13),0 ==> work - MVC 88(4,13),20(11) ==> result - LA 2,96(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(STRCAT) - BALR 14,15 - LR 2,3 ==> pdigits - BCTR 3,0 ==> pdigits - LTR 2,2 ==> pdigits - BH @@L95 -@@L84 EQU * - L 3,228(13) ==> format - LTR 3,3 - BNE @@L96 - MVI 96(13),197 ==> work - LTR 7,7 ==> exp - BNL @@L97 - LCR 7,7 ==> exp - MVI 97(13),96 ==> work - B @@L98 -@@L97 EQU * - MVI 97(13),78 ==> work -@@L98 EQU * - ST 7,272(13) ==> exp - L 4,272(13) - L 5,4+272(13) - SRDA 4,32 - LA 6,10(0,0) - DR 4,6 - ST 4,272(13) - ST 5,4+272(13) - MVC 280(4,13),276(13) - L 8,280(13) - L 9,4+280(13) - SRDA 8,32 - DR 8,6 - L 2,=F'-16' - LA 3,0(2,8) - STC 3,98(13) ==> work - ST 7,288(13) ==> exp - L 4,288(13) - L 5,4+288(13) - SRDA 4,32 - DR 4,6 - LA 2,0(2,4) - STC 2,99(13) ==> work - MVI 100(13),0 ==> work - MVC 88(4,13),20(11) ==> result - LA 2,96(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(STRCAT) - BALR 14,15 - B @@L99 -@@L96 EQU * - IC 8,224(13) ==> cnvtype - CLM 8,1,=XL1'C7' - BE @@L101 - CLM 8,1,=XL1'87' - BNE @@L99 -@@L101 EQU * - MVC 88(4,13),20(11) ==> result - MVC 92(4,13),=F'75' - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LR 2,15 ==> p - LTR 15,15 ==> p - BE @@L99 - A 2,=F'1' ==> p - ST 2,88(13) ==> p - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - AR 2,15 ==> p - BCTR 2,0 ==> p - CLI 0(2),240 ==> p - BNE @@L128 -@@L106 EQU * - MVI 0(2),0 ==> p - BCTR 2,0 ==> p - CLI 0(2),240 ==> p - BE @@L106 -@@L128 EQU * - CLI 0(2),75 ==> p - BNE @@L99 - MVI 0(2),0 ==> p -@@L99 EQU * - L 9,20(11) ==> result - CLI 0(9),64 - BNE @@L108 - LA 2,96(,13) - ST 2,88(13) - LR 2,9 - A 2,=F'1' - ST 2,92(13) - B @@L133 -@@L108 EQU * - LA 2,96(,13) - ST 2,88(13) - MVC 92(4,13),20(11) ==> result -@@L133 EQU * - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - LA 2,96(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - L 3,12(11) ==> pdigits,nwidth - SR 3,15 ==> pdigits,p - L 15,20(11) ==> result - MVI 0(15),0 - BNH @@L130 -@@L113 EQU * - MVC 88(4,13),20(11) ==> result - MVC 92(4,13),=A(@@LC2) - LA 1,88(,13) - L 15,=V(STRCAT) - BALR 14,15 - BCTR 3,0 ==> pdigits - LTR 3,3 ==> pdigits - BH @@L113 -@@L130 EQU * - MVC 88(4,13),20(11) ==> result - LA 2,96(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(STRCAT) - BALR 14,15 -* Function '__dblcvt' epilogue - PDPEPIL -* Function '__dblcvt' literal pool - DS 0D - LTORG -* Function '__dblcvt' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'0' - DC X'0' -@@LC1 EQU * - DC C'.' - DC X'0' -@@LC2 EQU * - DC C' ' - DC X'0' - END diff --git a/src/crent370/clib/@@dec.c b/src/crent370/clib/@@dec.c deleted file mode 100644 index e73c5b8..0000000 --- a/src/crent370/clib/@@dec.c +++ /dev/null @@ -1,29 +0,0 @@ -/* @@DEC.C - decrement signed value via compare and swap -*/ -#include "clibos.h" - -int __dec(void *mem) -{ - int old_value = 0; - - if (!mem) goto quit; - - __asm__("\n" -"AGAIN DS 0H\n" -" L 0,0(,%1) get current value\n" -" LR 1,0 copy for new value\n" -" C 1,=F'-2147483648' min value?\n" -" BNE DECIT no, decrement\n" -" L 1,=F'2147483647' reset to max signed value\n" -" B SWAPIT\n" -"DECIT DS 0H\n" -" S 1,=F'1' decrement new value\n" -"SWAPIT DS 0H\n" -" CS 0,1,0(%1) save new value in memory\n" -" BNZ AGAIN changed, try again\n" -" ST 0,%0 return value" - : "=m"(old_value) : "r"(mem)); - -quit: - return old_value; -} diff --git a/src/crent370/clib/@@dec.o b/src/crent370/clib/@@dec.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@dec.s b/src/crent370/clib/@@dec.s deleted file mode 100644 index 12aa813..0000000 --- a/src/crent370/clib/@@dec.s +++ /dev/null @@ -1,66 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@dec.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__dec' prologue -* frame base=88, local stack=8, call args=0 -&FUNC SETC '__dec' -@@DEC PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__dec' code - L 15,0(11) ==> mem - MVC 88(4,13),=F'0' - LTR 15,15 ==> mem - BE @@L3 - -AGAIN DS 0H - L 0,0(,15) get current value ==> mem - LR 1,0 copy for new value - C 1,=F'-2147483648' min value? - BNE DECIT no, decrement - L 1,=F'2147483647' reset to max signed value - B SWAPIT -DECIT DS 0H - S 1,=F'1' decrement new value -SWAPIT DS 0H - CS 0,1,0(15) save new value in memory ==> mem - BNZ AGAIN changed, try again - ST 0,88(13) return value -@@L3 EQU * - L 15,88(13) -* Function '__dec' epilogue - PDPEPIL -* Function '__dec' literal pool - DS 0D - LTORG -* Function '__dec' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@delete.c b/src/crent370/clib/@@delete.c deleted file mode 100644 index f22f580..0000000 --- a/src/crent370/clib/@@delete.c +++ /dev/null @@ -1,30 +0,0 @@ -#include -#include - -__asm__("\n&FUNC SETC '__delete'"); -int __delete(const char *module) -{ - int rc = 0; - unsigned char name[12] = {0}; - int i; - - if (!module || *module <= ' ') goto quit; - - for(i=0; i < 8; i++) { - if (*module) { - name[i] = toupper(*module); - module++; - } - else { - name[i] = ' '; - } - } - - /* delete module from memory */ -__asm__( "DELETE EPLOC=(%1)\n\t" - "LR\t%0,15 save return code" - : "=r"(rc) : "r"(name) : "0", "1", "14", "15"); - -quit: - return rc; -} diff --git a/src/crent370/clib/@@delete.o b/src/crent370/clib/@@delete.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@delete.s b/src/crent370/clib/@@delete.s deleted file mode 100644 index f08a5bd..0000000 --- a/src/crent370/clib/@@delete.s +++ /dev/null @@ -1,86 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@delete.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__delete' -* Program text area - DS 0F - EJECT -* external function '__delete' prologue -* frame base=88, local stack=16, call args=0 -&FUNC SETC '__delete' -@@DELETE PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__delete' code - L 6,0(11) ==> module - SLR 7,7 ==> rc - LA 4,88(,13) - LA 5,12(0,0) - LR 2,7 ==> rc - LR 3,7 ==> rc - MVCL 4,2 ==> rc - LTR 6,6 ==> module - BE @@L4 - CLI 0(6),64 ==> module - BNH @@L4 - LR 15,7 ==> i,rc - L 4,=V(@@TOUP) -@@L11 EQU * - IC 2,0(6) ==> module - CLM 2,1,=XL1'00' - BE @@L9 - SLR 2,2 - IC 2,0(6) ==> module - L 3,0(4) ==> __toup - MH 2,=H'2' - IC 3,1(2,3) - STC 3,88(13,15) ==> name - A 6,=F'1' ==> module - B @@L7 -@@L9 EQU * - LA 2,64(0,0) - STC 2,88(13,15) ==> name -@@L7 EQU * - A 15,=F'1' ==> i - LA 2,7(0,0) - CR 15,2 ==> i - BNH @@L11 - LA 2,88(,13) - DELETE EPLOC=(2) - LR 7,15 save return code ==> rc -@@L4 EQU * - LR 15,7 ==> rc -* Function '__delete' epilogue - PDPEPIL -* Function '__delete' literal pool - DS 0D - LTORG -* Function '__delete' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@doperm.c b/src/crent370/clib/@@doperm.c deleted file mode 100644 index fb4f715..0000000 --- a/src/crent370/clib/@@doperm.c +++ /dev/null @@ -1,3 +0,0 @@ -/* @@DOPERM.C - global variable */ -int -__doperm = 0; /* are we doing the permanent datasets? */ diff --git a/src/crent370/clib/@@doperm.o b/src/crent370/clib/@@doperm.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@doperm.s b/src/crent370/clib/@@doperm.s deleted file mode 100644 index c5270bd..0000000 --- a/src/crent370/clib/@@doperm.s +++ /dev/null @@ -1,27 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@doperm.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* X-var __doperm - ENTRY @@DOPERM -* Program data area - DS 0F -@@DOPERM EQU * - DC F'0' - END diff --git a/src/crent370/clib/@@dscbav.c b/src/crent370/clib/@@dscbav.c deleted file mode 100644 index 5b8d6c1..0000000 --- a/src/crent370/clib/@@dscbav.c +++ /dev/null @@ -1,45 +0,0 @@ -/* @@DSCBAV.C -/* -/* Data Set Control Block access routines - */ -#include "clibdscb.h" -#include "clibstr.h" - -#define SEEK 0xC0800000 - -typedef struct { - unsigned flags; - void *p1; - void *p2; - void *p3; -} PARMS; - -int -__dscbav(const char cchhr[5], const char vol[6], DSCB *dscb) -{ - int rc; - PARMS parms; - char addr[6]; - char volser[7]; - - strcpyp(addr, sizeof(addr)-1, (void*)cchhr, ' '); - addr[sizeof(addr)-1] = 0; - - strcpyp(volser, sizeof(volser)-1, (void*)vol, ' '); - volser[sizeof(volser)-1] = 0; - - parms.flags = SEEK; - parms.p1 = addr; - parms.p2 = volser; - parms.p3 = dscb; - - __asm__( - "LR\t1,%1\n\t" - "SVC\t27 OBTAIN\n\t" - "LR\t%0,15" - : "=r" (rc) - : "r" (&parms) - : "0", "1", "15" ); - - return rc; -} diff --git a/src/crent370/clib/@@dscbav.o b/src/crent370/clib/@@dscbav.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@dscbav.s b/src/crent370/clib/@@dscbav.s deleted file mode 100644 index 116a031..0000000 --- a/src/crent370/clib/@@dscbav.s +++ /dev/null @@ -1,73 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@dscbav.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__dscbav' prologue -* frame base=88, local stack=32, call args=16 -&FUNC SETC '__dscbav' -@@DSCBAV PDPPRLG CINDEX=0,FRAME=136,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__dscbav' code - LA 3,120(,13) - ST 3,88(13) - MVC 92(4,13),=F'5' - MVC 96(4,13),0(11) ==> cchhr - MVC 100(4,13),=F'64' - LA 1,88(,13) - L 15,=V(STRCPYP) - BALR 14,15 - MVI 125(13),0 ==> addr - LA 2,128(,13) - ST 2,88(13) - MVC 92(4,13),=F'6' - MVC 96(4,13),4(11) ==> vol - MVC 100(4,13),=F'64' - LA 1,88(,13) - L 15,=V(STRCPYP) - BALR 14,15 - MVI 134(13),0 ==> volser - MVC 104(4,13),=F'-1065353216' ==> .flags - ST 3,108(13) ==> .p1 - ST 2,112(13) ==> .p2 - MVC 116(4,13),8(11) ==> .p3,dscb - LA 2,104(,13) - LR 1,2 - SVC 27 OBTAIN - LR 2,15 ==> rc - LR 15,2 ==> rc -* Function '__dscbav' epilogue - PDPEPIL -* Function '__dscbav' literal pool - DS 0D - LTORG -* Function '__dscbav' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@dscbdv.c b/src/crent370/clib/@@dscbdv.c deleted file mode 100644 index 5b1d0bb..0000000 --- a/src/crent370/clib/@@dscbdv.c +++ /dev/null @@ -1,56 +0,0 @@ -/* @@DSCBDV.C */ -/* -/* Data Set Control Block access routines -*/ -#include -#include "clibdscb.h" -#include "clibstr.h" - -#define SEARCH 0xC1000000 - -typedef struct { - unsigned flags; - void *p1; - void *p2; - void *p3; -} PARMS; - -int -__dscbdv(const char dsn[44], const char vol[6], DSCB *dscb) -{ - int rc; - char dataset[45]; - char volser[7]; - PARMS parms; - - strcpyp(dataset, sizeof(dataset)-1, (void*)dsn, ' '); - dataset[sizeof(dataset)-1] = 0; - - strcpyp(volser, sizeof(volser)-1, (void*)vol, ' '); - volser[sizeof(volser)-1] = 0; - - parms.flags = SEARCH; - parms.p1 = dataset; - parms.p2 = volser; - parms.p3 = dscb; - - __asm__( - "LR\t1,%1\n\t" - "SVC\t27\n\t" - "LR\t%0,15" - : "=r" (rc) - : "r" (&parms) - : "0", "1", "15" ); - - return rc; -} - - __asm__( - "LOCATE INDAB READ CATALOG ENTRY FOR DATA SET A.B\n" -"* INTO VIRTUAL STORAGE AREA NAMED LOCAREA.\n" -"* LOCAREA MAY ALSO CONTAIN A 3-BYTE\n" -"* TTR OR A 6-BYTE SERIAL NUMBER\n" -"INDAB CAMLST NAME,AB,,LOCAREA\n" -"AB DC CL44'A.B'\n" -"LOCAREA DS 0D\n" -" DS 265C\n"); diff --git a/src/crent370/clib/@@dscbdv.o b/src/crent370/clib/@@dscbdv.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@dscbdv.s b/src/crent370/clib/@@dscbdv.s deleted file mode 100644 index 524920b..0000000 --- a/src/crent370/clib/@@dscbdv.s +++ /dev/null @@ -1,82 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@dscbdv.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__dscbdv' prologue -* frame base=88, local stack=72, call args=16 -&FUNC SETC '__dscbdv' -@@DSCBDV PDPPRLG CINDEX=0,FRAME=176,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__dscbdv' code - LA 3,104(,13) - ST 3,88(13) - MVC 92(4,13),=F'44' - MVC 96(4,13),0(11) ==> dsn - MVC 100(4,13),=F'64' - LA 1,88(,13) - L 15,=V(STRCPYP) - BALR 14,15 - MVI 148(13),0 ==> dataset - LA 2,152(,13) - ST 2,88(13) - MVC 92(4,13),=F'6' - MVC 96(4,13),4(11) ==> vol - MVC 100(4,13),=F'64' - LA 1,88(,13) - L 15,=V(STRCPYP) - BALR 14,15 - MVI 158(13),0 ==> volser - MVC 160(4,13),=F'-1056964608' ==> .flags - ST 3,164(13) ==> .p1 - ST 2,168(13) ==> .p2 - MVC 172(4,13),8(11) ==> .p3,dscb - LA 2,160(,13) - LR 1,2 - SVC 27 - LR 2,15 ==> rc - LR 15,2 ==> rc -* Function '__dscbdv' epilogue - PDPEPIL -* Function '__dscbdv' literal pool - DS 0D - LTORG -* Function '__dscbdv' page table -@@PGT0 DS 0F - DC A(@@PG0) - LOCATE INDAB READ CATALOG ENTRY FOR DATA SET A.B -* INTO VIRTUAL STORAGE AREA NAMED LOCAREA. -* LOCAREA MAY ALSO CONTAIN A 3-BYTE -* TTR OR A 6-BYTE SERIAL NUMBER -INDAB CAMLST NAME,AB,,LOCAREA -AB DC CL44'A.B' -LOCAREA DS 0D - DS 265C - - END diff --git a/src/crent370/clib/@@dscbv.c b/src/crent370/clib/@@dscbv.c deleted file mode 100644 index 3f169fe..0000000 --- a/src/crent370/clib/@@dscbv.c +++ /dev/null @@ -1,46 +0,0 @@ -/* @@DSCBV.C -/* -/* Data Set Control Block access routines -*/ -#include "clibdscb.h" -#include "clibstr.h" - -#define SEARCH 0xC1000000 -#define VTOCDSN "\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04" \ - "\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04" \ - "\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04" \ - "\x04\x04\x04\x04\x04\x04\x04\x04\x04\x04" \ - "\x04\x04\x04\x04" - -typedef struct { - unsigned flags; - void *p1; - void *p2; - void *p3; -} PARMS; - -int -__dscbv(const char vol[6], DSCB *dscb) -{ - int rc; - PARMS parms; - char volser[7]; - - strcpyp(volser, sizeof(volser)-1, (void*)vol, ' '); - volser[sizeof(volser)-1] = 0; - - parms.flags = SEARCH; - parms.p1 = VTOCDSN; - parms.p2 = volser; - parms.p3 = dscb; - - __asm__( - "LR\t1,%1\n\t" - "SVC\t27\n\t" - "LR\t%0,15" - : "=r" (rc) - : "r" (&parms) - : "0", "1", "15" ); - - return rc; -} diff --git a/src/crent370/clib/@@dscbv.o b/src/crent370/clib/@@dscbv.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@dscbv.s b/src/crent370/clib/@@dscbv.s deleted file mode 100644 index 7a4cfae..0000000 --- a/src/crent370/clib/@@dscbv.s +++ /dev/null @@ -1,110 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@dscbv.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__dscbv' prologue -* frame base=88, local stack=24, call args=16 -&FUNC SETC '__dscbv' -@@DSCBV PDPPRLG CINDEX=0,FRAME=128,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__dscbv' code - LA 2,120(,13) - ST 2,88(13) - MVC 92(4,13),=F'6' - MVC 96(4,13),0(11) ==> vol - MVC 100(4,13),=F'64' - LA 1,88(,13) - L 15,=V(STRCPYP) - BALR 14,15 - MVI 126(13),0 ==> volser - MVC 104(4,13),=F'-1056964608' ==> .flags - MVC 108(4,13),=A(@@LC0) ==> .p1 - ST 2,112(13) ==> .p2 - MVC 116(4,13),4(11) ==> .p3,dscb - LA 2,104(,13) - LR 1,2 - SVC 27 - LR 2,15 ==> rc - LR 15,2 ==> rc -* Function '__dscbv' epilogue - PDPEPIL -* Function '__dscbv' literal pool - DS 0D - LTORG -* Function '__dscbv' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'4' - DC X'0' - END diff --git a/src/crent370/clib/@@ecbpst.c b/src/crent370/clib/@@ecbpst.c deleted file mode 100644 index 09cbf77..0000000 --- a/src/crent370/clib/@@ecbpst.c +++ /dev/null @@ -1,27 +0,0 @@ -#include -#include - -__asm__("\n&FUNC SETC 'ecb_post'"); -int -ecb_post(ECB *ecb, unsigned postcode) -{ -#if 0 - unsigned *psa = 0; /* low core == PSA */ - unsigned *tcb = (unsigned*)psa[0x21c/4]; /* TCB == PSATOLD */ - - wtof("%s(%08X,%08X) TCB(%08X)", __func__, ecb, postcode, tcb); - if (ecb) { - wtof("%s *ecb = %08X", __func__, *ecb); - if ((unsigned)*ecb & 0x80000000) { - wtodumpf((void*) ((unsigned)*ecb & 0x00FFFFFF), 32, "PRB"); - } - } - else { - wtof("%s NULL ECB pointer", __func__); - wto_traceback(NULL); - } -#endif - __asm__("POST (%0),(%1)" : : "r"(ecb), "r"(postcode) : "1", "14", "15"); - - return 0; -} diff --git a/src/crent370/clib/@@ecbpst.o b/src/crent370/clib/@@ecbpst.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ecbpst.s b/src/crent370/clib/@@ecbpst.s deleted file mode 100644 index 292d5f1..0000000 --- a/src/crent370/clib/@@ecbpst.s +++ /dev/null @@ -1,52 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ecbpst.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'ecb_post' -* Program text area - DS 0F - EJECT -* external function 'ecb_post' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'ecb_post' -@@ECBPST PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ecb_post' code - L 3,0(11) ==> ecb - L 2,4(11) ==> postcode - POST (3),(2) ==> ecb,postcode - SLR 15,15 -* Function 'ecb_post' epilogue - PDPEPIL -* Function 'ecb_post' literal pool - DS 0D - LTORG -* Function 'ecb_post' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@ecbtw.c b/src/crent370/clib/@@ecbtw.c deleted file mode 100644 index e159504..0000000 --- a/src/crent370/clib/@@ecbtw.c +++ /dev/null @@ -1,12 +0,0 @@ -/* @@ECBTW.C - ecb_timed_wait() -*/ -#include - -__asm__("\n&FUNC SETC 'ecb_timed_wait'"); -int -ecb_timed_wait(ECB *ecb, unsigned bintvl, unsigned postcode) -{ - ECB *ecblist[1] = {(void*)((unsigned)ecb | 0x80000000)}; - - return ecb_timed_waitlist(ecblist, ecb, bintvl, postcode); -} diff --git a/src/crent370/clib/@@ecbtw.o b/src/crent370/clib/@@ecbtw.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ecbtw.s b/src/crent370/clib/@@ecbtw.s deleted file mode 100644 index 2c9c76b..0000000 --- a/src/crent370/clib/@@ecbtw.s +++ /dev/null @@ -1,60 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ecbtw.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'ecb_timed_wait' -* Program text area - DS 0F - EJECT -* external function 'ecb_timed_wait' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'ecb_timed_wait' -@@ECBTW PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ecb_timed_wait' code - L 3,0(11) ==> ecb - LR 2,3 ==> ecb - O 2,=F'-2147483648' - ST 2,104(13) - LA 2,104(,13) - ST 2,88(13) - ST 3,92(13) ==> ecb - MVC 96(4,13),4(11) ==> bintvl - MVC 100(4,13),8(11) ==> postcode - LA 1,88(,13) - L 15,=V(@@ECBTWL) - BALR 14,15 -* Function 'ecb_timed_wait' epilogue - PDPEPIL -* Function 'ecb_timed_wait' literal pool - DS 0D - LTORG -* Function 'ecb_timed_wait' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@ecbtwa.c b/src/crent370/clib/@@ecbtwa.c deleted file mode 100644 index 3cc2e8b..0000000 --- a/src/crent370/clib/@@ecbtwa.c +++ /dev/null @@ -1,34 +0,0 @@ -#include - -#define ECB_MAX 256 - -__asm__("\n&FUNC SETC 'ecb_timed_waitarray'"); -int -ecb_timed_waitarray(ECB **ecbarray, ECB *timeout_ecb, unsigned bintvl, unsigned postcode) -{ - int rc = 0; - unsigned count; - unsigned n; - unsigned i; - ECB *ecblist[ECB_MAX]; - - if (!ecbarray) goto quit; - - count = array_count(&ecbarray); - for(n=0, i=0; n < count; n++) { - if (ecbarray[n]) { - ecblist[i] = ecbarray[n]; - i++; - if (i >= ECB_MAX) break; - } - } - - if (i) { - ecblist[i-1] = (void*)((unsigned)ecblist[i-1] | 0x80000000); - - rc = ecb_timed_waitlist(ecblist, timeout_ecb, bintvl, postcode); - } - -quit: - return rc; -} diff --git a/src/crent370/clib/@@ecbtwa.o b/src/crent370/clib/@@ecbtwa.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ecbtwa.s b/src/crent370/clib/@@ecbtwa.s deleted file mode 100644 index 178940f..0000000 --- a/src/crent370/clib/@@ecbtwa.s +++ /dev/null @@ -1,97 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ecbtwa.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'ecb_timed_waitarray' -* Program text area - DS 0F - EJECT -* external function 'ecb_timed_waitarray' prologue -* frame base=88, local stack=1024, call args=16 -&FUNC SETC 'ecb_timed_waitarray' -@@ECBTWA PDPPRLG CINDEX=0,FRAME=1128,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ecb_timed_waitarray' code - SLR 7,7 ==> rc - L 2,0(11) - LTR 2,2 - BE @@L3 - ST 11,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 4,7 ==> n,rc - LR 5,7 ==> i,rc - CLR 7,15 ==> rc,count - BNL @@L5 - L 6,0(11) -@@L10 EQU * - LR 2,4 ==> n - MH 2,=H'4' - L 3,0(2,6) - LTR 3,3 - BE @@L6 - LR 2,5 ==> i - MH 2,=H'4' - ST 3,104(13,2) ==> ecblist - A 5,=F'1' ==> i - LA 2,255(0,0) - CLR 5,2 ==> i - BH @@L5 -@@L6 EQU * - A 4,=F'1' ==> n - CLR 4,15 ==> n,count - BL @@L10 -@@L5 EQU * - LTR 5,5 ==> i - BE @@L3 - LR 2,5 ==> i - MH 2,=H'4' - LA 3,104(,13) - AR 2,3 - A 2,=F'-4' - OC 0(4,2),=F'-2147483648' ==> ecblist - ST 3,88(13) - MVC 92(4,13),4(11) ==> timeout_ecb - MVC 96(4,13),8(11) ==> bintvl - MVC 100(4,13),12(11) ==> postcode - LA 1,88(,13) - L 15,=V(@@ECBTWL) - BALR 14,15 - LR 7,15 ==> rc -@@L3 EQU * - LR 15,7 ==> rc -* Function 'ecb_timed_waitarray' epilogue - PDPEPIL -* Function 'ecb_timed_waitarray' literal pool - DS 0D - LTORG -* Function 'ecb_timed_waitarray' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@ecbtwl.c b/src/crent370/clib/@@ecbtwl.c deleted file mode 100644 index 59f54dd..0000000 --- a/src/crent370/clib/@@ecbtwl.c +++ /dev/null @@ -1,146 +0,0 @@ -#include - -__asm__("\n&FUNC SETC 'ecb_timed_waitlist'"); -int -ecb_timed_waitlist(ECB **waitlist, ECB *timeout_ecb, unsigned bintvl, unsigned postcode) -{ - unsigned *psa = 0; /* low core == PSA */ - unsigned *tcb = (unsigned*)psa[0x21c/4]; /* TCB == PSATOLD */ - unsigned *fsa = (unsigned*)(tcb[0x70/4] & 0x00FFFFFF); - /* FSA == TCB first save area address */ - unsigned save = fsa[0]; - unsigned plist[4]; /* parameter list for postexit plist */ - int rc; -#if 0 - wtof("%s(%08X,%08X,%u,%08X) TCB(%08X) SAVE(%08X)", - __func__, waitlist, timeout_ecb, bintvl, postcode, tcb, save); -#endif - if (!timeout_ecb) timeout_ecb = waitlist[0]; - - /* build parameter list for our EXITDRVR routine */ -#if 0 - plist[0] = (unsigned)ecb_post; -#else - plist[0] = 0; -#endif - plist[1] = (unsigned)timeout_ecb; - plist[2] = (unsigned)postcode & 0X3FFFFFFF; - __asm__("L\t0,76(,13) get NAB\n\t" - "ST\t0,0(,%0) save in plist" - : : "r"(&plist[3]) : "0"); - - /* save the plist address in TCB first save area "next" so the EXITDRVR can find it */ - fsa[0] = (unsigned)plist; - -#if 0 - /* debugging */ - if (waitlist) { - int i; - for(i=0; waitlist[i]; i++) { - wtof("%s waitlist[%d]=%08X %08X", __func__, i, waitlist[i], *waitlist[i]); - if ((unsigned)waitlist[i] & 0x80000000) break; - } - } - - wtof("%s issuing STIMER REAL BINTVL(%u)", __func__, bintvl); -#endif - __asm__("L\t0,=A(EXITDRVR)\n\tSTIMER REAL,(0),BINTVL=(%0),ERRET=SAVERC\n" - "SAVERC\tST\t15,0(,%1)" - : : "r"(&bintvl), "r"(&rc) : "1", "14", "15"); -#if 0 - wtof("%s STIMER REAL RC=%d",__func__, rc); - /* debugging */ - wtof("%s WAIT ECBLIST=(%08X) TCB(%06X)", __func__, waitlist, tcb); -#endif - - /* wait for ECB post */ - __asm__("WAIT ECBLIST=(%0)" : : "r"(waitlist)); - -#if 0 - wtof("%s RUNNING TCB(%06X)", __func__, tcb); - - /* timer exit has not run yet */ - wtof("%s issuing TTIMER CANCEL", __func__); -#endif - - /* cancel the timer exit */ - __asm__("TTIMER CANCEL"); - - /* restore fsa value */ - fsa[0] = save; - -quit: - return 0; -} - -/* EXITDRVR called by STIMER REAL */ -__asm__("\n" -"EXITDRVR DS 0H\n" -" SAVE (14,12),,'EXITDRVR STIMER REAL'\n" -" LA 12,0(,15)\n" -" USING EXITDRVR,12\n" -"*\n" -" LA 11,0 A(PSA)\n" -" L 11,X'21C'(,11) A(TCB) from PSATOLD\n" -" L 11,X'70'(,11) TCBFSAB first save area\n" -" L 11,0(,11) A(PLIST) from save area\n" -" LTR 11,11 do we have a plist?\n" -" BNZ CHKFUNC yes, continue\n" -" B RETURN\n" -); -__asm__("\n" -" USING PLIST,11\n" -"CHKFUNC DS 0H\n" -"*\n" -"* Check function address\n" -" CLC FUNC,=F'0' do we have a function to call\n" -" BE POSTIT no, try posting ECB directly\n" -"*\n" -"* Chain stack with callers save area\n" -" L 1,STACKNEW => stack for function\n" -" ST 13,4(,1) ... chain stack areas\n" -" ST 1,8(,13) ... chain stack areas\n" -" LR 13,1 new stack\n" -); -__asm__("\n" -" USING STACK,13\n" -"*\n" -"* Set next available byte in stack\n" -" LA 0,STACKNAB next available byte in stack\n" -" ST 0,SAVENAB next available byte in stack\n" -"*\n" -"* Call thread function\n" -" L 15,FUNC get function address from plist\n" -" LA 1,ECB => parameters for function\n" -" BALR 14,15 call function\n" -"*\n" -"* Get callers save area\n" -" L 13,SAVEAREA+4 switch back to callers stack\n" -"RETURN DS 0H\n" -" RETURN (14,12)\n" -"*\n" -"POSTIT DS 0H\n" -" ICM 1,B'1111',ECB\n" -" BZ RETURN no ECB address\n" -" L 0,POSTCODE vale to post to ECB\n" -" POST (1),(0) \n" -" B RETURN\n" -" LTORG ,"); - -__asm__("\n" -"STACK DSECT\n" -"SAVEAREA DS 18F 00 (0) callers registers go here\n" -"SAVELWS DS A 48 (72) PL/I Language Work Space N/A\n" -"SAVENAB DS A 4C (76) next available byte -------+\n" -" DS 0D |\n" -"STACKNAB DS 0X 50 stack next available byte <-----+\n" -"*"); - -__asm__("\n" -"PLIST DSECT\n" -"FUNC DS A 00 C exit function address\n" -"ECB DS A 04 arg1 for C exit\n" -"POSTCODE DS F 08 arg2 for C exit\n" -"STACKNEW DS A 0C new stack for C exit\n" -" COPY CLIBCRT\n" -" CSECT ,"); diff --git a/src/crent370/clib/@@ecbtwl.o b/src/crent370/clib/@@ecbtwl.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ecbtwl.s b/src/crent370/clib/@@ecbtwl.s deleted file mode 100644 index f09af98..0000000 --- a/src/crent370/clib/@@ecbtwl.s +++ /dev/null @@ -1,147 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ecbtwl.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'ecb_timed_waitlist' -* Program text area - DS 0F - EJECT -* external function 'ecb_timed_waitlist' prologue -* frame base=88, local stack=24, call args=0 -&FUNC SETC 'ecb_timed_waitlist' -@@ECBTWL PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ecb_timed_waitlist' code - L 5,0(11) ==> waitlist - L 3,4(11) ==> timeout_ecb - SLR 2,2 ==> psa - L 2,540(2) ==> tcb - L 4,112(2) ==> fsa - N 4,=F'16777215' ==> fsa - L 6,0(4) ==> save,fsa - LTR 3,3 ==> timeout_ecb - BNE @@L2 - L 3,0(5) ==> timeout_ecb,waitlist -@@L2 EQU * - MVC 88(4,13),=F'0' ==> plist - ST 3,92(13) ==> timeout_ecb,plist - L 2,12(11) ==> postcode - N 2,=F'1073741823' - ST 2,96(13) ==> plist - LA 2,100(,13) - L 0,76(,13) get NAB - ST 0,0(,2) save in plist - LA 2,88(,13) - ST 2,0(4) ==> fsa - LA 3,8(,11) - LA 2,104(,13) - L 0,=A(EXITDRVR) - STIMER REAL,(0),BINTVL=(3),ERRET=SAVERC -SAVERC ST 15,0(,2) - WAIT ECBLIST=(5) ==> waitlist - TTIMER CANCEL - ST 6,0(4) ==> save,fsa -@@L3 EQU * - SLR 15,15 -* Function 'ecb_timed_waitlist' epilogue - PDPEPIL -* Function 'ecb_timed_waitlist' literal pool - DS 0D - LTORG -* Function 'ecb_timed_waitlist' page table -@@PGT0 DS 0F - DC A(@@PG0) - -EXITDRVR DS 0H - SAVE (14,12),,'EXITDRVR STIMER REAL' - LA 12,0(,15) - USING EXITDRVR,12 -* - LA 11,0 A(PSA) - L 11,X'21C'(,11) A(TCB) from PSATOLD - L 11,X'70'(,11) TCBFSAB first save area - L 11,0(,11) A(PLIST) from save area - LTR 11,11 do we have a plist? - BNZ CHKFUNC yes, continue - B RETURN - - - USING PLIST,11 -CHKFUNC DS 0H -* -* Check function address - CLC FUNC,=F'0' do we have a function to call - BE POSTIT no, try posting ECB directly -* -* Chain stack with callers save area - L 1,STACKNEW => stack for function - ST 13,4(,1) ... chain stack areas - ST 1,8(,13) ... chain stack areas - LR 13,1 new stack - - - USING STACK,13 -* -* Set next available byte in stack - LA 0,STACKNAB next available byte in stack - ST 0,SAVENAB next available byte in stack -* -* Call thread function - L 15,FUNC get function address from plist - LA 1,ECB => parameters for function - BALR 14,15 call function -* -* Get callers save area - L 13,SAVEAREA+4 switch back to callers stack -RETURN DS 0H - RETURN (14,12) -* -POSTIT DS 0H - ICM 1,B'1111',ECB - BZ RETURN no ECB address - L 0,POSTCODE vale to post to ECB - POST (1),(0) - B RETURN - LTORG , - -STACK DSECT -SAVEAREA DS 18F 00 (0) callers registers go here -SAVELWS DS A 48 (72) PL/I Language Work Space N/A -SAVENAB DS A 4C (76) next available byte -------+ - DS 0D | -STACKNAB DS 0X 50 stack next available byte <-----+ -* - -PLIST DSECT -FUNC DS A 00 C exit function address -ECB DS A 04 arg1 for C exit -POSTCODE DS F 08 arg2 for C exit -STACKNEW DS A 0C new stack for C exit - COPY CLIBCRT - CSECT , - END diff --git a/src/crent370/clib/@@ecbwa.c b/src/crent370/clib/@@ecbwa.c deleted file mode 100644 index cf7f267..0000000 --- a/src/crent370/clib/@@ecbwa.c +++ /dev/null @@ -1,37 +0,0 @@ -/* @@ECBWA.C - ecb_waitarray() -*/ -#include - -#define ECB_MAX 256 - -__asm__("\n&FUNC SETC 'ecb_waitarray'"); -int -ecb_waitarray(ECB **ecbarray) -{ - int rc = 0; - unsigned count; - unsigned n; - unsigned i; - ECB *ecblist[ECB_MAX]; - - if (!ecbarray) goto quit; - - count = array_count(&ecbarray); - for(n=0, i=0; n < count; n++) { - if (ecbarray[n]) { - ecblist[i] = ecbarray[n]; - i++; - if (i >= ECB_MAX) break; - } - } - - if (i) { - ecblist[i-1] = (void*)((unsigned)ecblist[i-1] | 0x80000000); - - /* wait for ECB post */ - rc = ecb_waitlist(ecblist); - } - -quit: - return rc; -} diff --git a/src/crent370/clib/@@ecbwa.o b/src/crent370/clib/@@ecbwa.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ecbwa.s b/src/crent370/clib/@@ecbwa.s deleted file mode 100644 index f92f05a..0000000 --- a/src/crent370/clib/@@ecbwa.s +++ /dev/null @@ -1,94 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ecbwa.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'ecb_waitarray' -* Program text area - DS 0F - EJECT -* external function 'ecb_waitarray' prologue -* frame base=88, local stack=1024, call args=8 -&FUNC SETC 'ecb_waitarray' -@@ECBWA PDPPRLG CINDEX=0,FRAME=1120,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ecb_waitarray' code - SLR 7,7 ==> rc - L 2,0(11) - LTR 2,2 - BE @@L3 - ST 11,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 4,7 ==> n,rc - LR 5,7 ==> i,rc - CLR 7,15 ==> rc,count - BNL @@L5 - L 6,0(11) -@@L10 EQU * - LR 2,4 ==> n - MH 2,=H'4' - L 3,0(2,6) - LTR 3,3 - BE @@L6 - LR 2,5 ==> i - MH 2,=H'4' - ST 3,96(13,2) ==> ecblist - A 5,=F'1' ==> i - LA 2,255(0,0) - CLR 5,2 ==> i - BH @@L5 -@@L6 EQU * - A 4,=F'1' ==> n - CLR 4,15 ==> n,count - BL @@L10 -@@L5 EQU * - LTR 5,5 ==> i - BE @@L3 - LR 2,5 ==> i - MH 2,=H'4' - LA 3,96(,13) - AR 2,3 - A 2,=F'-4' - OC 0(4,2),=F'-2147483648' ==> ecblist - ST 3,88(13) - LA 1,88(,13) - L 15,=V(@@ECBWL) - BALR 14,15 - LR 7,15 ==> rc -@@L3 EQU * - LR 15,7 ==> rc -* Function 'ecb_waitarray' epilogue - PDPEPIL -* Function 'ecb_waitarray' literal pool - DS 0D - LTORG -* Function 'ecb_waitarray' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@ecbwl.c b/src/crent370/clib/@@ecbwl.c deleted file mode 100644 index 6593d3a..0000000 --- a/src/crent370/clib/@@ecbwl.c +++ /dev/null @@ -1,13 +0,0 @@ -/* @@ECBWL.C - ecb_waitlist() -*/ -#include - -__asm__("\n&FUNC SETC 'ecb_waitlist'"); -int -ecb_waitlist(ECB **ecblist) -{ - /* wait for ECB post */ - __asm__("WAIT ECBLIST=(%0)" : : "r"(ecblist) : "0", "1", "14", "15"); - - return 0; -} diff --git a/src/crent370/clib/@@ecbwl.o b/src/crent370/clib/@@ecbwl.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ecbwl.s b/src/crent370/clib/@@ecbwl.s deleted file mode 100644 index 6c9d9c8..0000000 --- a/src/crent370/clib/@@ecbwl.s +++ /dev/null @@ -1,51 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ecbwl.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'ecb_waitlist' -* Program text area - DS 0F - EJECT -* external function 'ecb_waitlist' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'ecb_waitlist' -@@ECBWL PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ecb_waitlist' code - L 2,0(11) ==> ecblist - WAIT ECBLIST=(2) ==> ecblist - SLR 15,15 -* Function 'ecb_waitlist' epilogue - PDPEPIL -* Function 'ecb_waitlist' literal pool - DS 0D - LTORG -* Function 'ecb_waitlist' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@ecbwt.c b/src/crent370/clib/@@ecbwt.c deleted file mode 100644 index d0e41e4..0000000 --- a/src/crent370/clib/@@ecbwt.c +++ /dev/null @@ -1,12 +0,0 @@ -/* @@ECBWT.C - ecb_wait() -*/ -#include - -__asm__("\n&FUNC SETC 'ecb_wait'"); -int -ecb_wait(ECB *ecb) -{ - __asm__("WAIT\tECB=(%0)" : : "r"(ecb) : "1", "14", "15"); - - return 0; -} diff --git a/src/crent370/clib/@@ecbwt.o b/src/crent370/clib/@@ecbwt.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ecbwt.s b/src/crent370/clib/@@ecbwt.s deleted file mode 100644 index fe31f18..0000000 --- a/src/crent370/clib/@@ecbwt.s +++ /dev/null @@ -1,51 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ecbwt.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'ecb_wait' -* Program text area - DS 0F - EJECT -* external function 'ecb_wait' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'ecb_wait' -@@ECBWT PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ecb_wait' code - L 2,0(11) ==> ecb - WAIT ECB=(2) ==> ecb - SLR 15,15 -* Function 'ecb_wait' epilogue - PDPEPIL -* Function 'ecb_wait' literal pool - DS 0D - LTORG -* Function 'ecb_wait' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@enqdeq.c b/src/crent370/clib/@@enqdeq.c deleted file mode 100644 index 3ccb75c..0000000 --- a/src/crent370/clib/@@enqdeq.c +++ /dev/null @@ -1,57 +0,0 @@ -#include "enqpl.h" -#include "clibenq.h" - -int -__enqdeq(const char *qn, const char *rn, unsigned options, int deq) -{ - ENQPL pl = {0}; - int err = 1; - int len; - char qname[8]; - - if (!qn || !rn) goto quit; - - len = strlen(rn); - if (!len) goto quit; - - pl.end = ENQ_END_LAST | ENQ_END_OLD; - pl.len = (unsigned char)len; - - for(len=0; len<8 && qn[len]; len++) { - qname[len] = qn[len]; - } - while(len < 8) qname[len++] = ' '; - pl.qname = qname; - - pl.rname = (char*)rn; - - switch(options & ENQ_SCOPE) { - case ENQ_SYSTEMS: pl.opt |= ENQ_OPT_SYSTEMS; break; - case ENQ_SYSTEM: pl.opt |= ENQ_OPT_SYSTEM; break; - default: break; /* default is STEP */ - } - - if (deq) { - pl.opt = ENQ_OPT_HAVE; - __asm__( "DS 0H Request DEQ\n" - " LA 1,%0\n" - " SVC 48 DEQ" : : "m"(pl) : "0", "1", "15"); - } - else { - if (options & ENQ_SHR) pl.opt |= ENQ_OPT_SHARED; - switch(options & ENQ_RET) { - case ENQ_TEST: pl.opt |= ENQ_OPT_TEST; break; - case ENQ_USE: pl.opt |= ENQ_OPT_USE; break; - case ENQ_CHNG: pl.opt |= ENQ_OPT_CHNG; break; - default: pl.opt |= ENQ_OPT_HAVE; break; - } - __asm__( "DS 0H Request ENQ\n" - " LA 1,%0\n" - " SVC 56 ENQ" : : "m"(pl) : "0", "1", "15"); - } - - err = pl.rc; - -quit: - return err; -} diff --git a/src/crent370/clib/@@enqdeq.o b/src/crent370/clib/@@enqdeq.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@enqdeq.s b/src/crent370/clib/@@enqdeq.s deleted file mode 100644 index 3297b58..0000000 --- a/src/crent370/clib/@@enqdeq.s +++ /dev/null @@ -1,163 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@enqdeq.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__enqdeq' prologue -* frame base=88, local stack=24, call args=8 -&FUNC SETC '__enqdeq' -@@ENQDEQ PDPPRLG CINDEX=0,FRAME=120,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__enqdeq' code - L 6,0(11) ==> qn - L 7,4(11) ==> rn - L 8,8(11) ==> options - LA 4,96(,13) - LA 5,12(0,0) - SLR 2,2 - LR 3,2 - MVCL 4,2 - LA 2,1(0,0) ==> err - LTR 6,6 ==> qn - BE @@L4 - LTR 7,7 ==> rn - BE @@L4 - ST 7,88(13) ==> rn - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LTR 15,15 ==> len - BE @@L4 - MVI 96(13),192 ==> .end - STC 15,97(13) ==> len,len - SLR 15,15 ==> len - IC 2,0(6) ==> qn - SLL 2,24 - SRA 2,24 - C 2,=F'0' - BE @@L7 - LA 3,112(,13) -@@L11 EQU * - IC 2,0(15,6) ==> len - STC 2,0(3,15) ==> qname - A 15,=F'1' ==> len - LA 2,7(0,0) - CR 15,2 ==> len - BH @@L7 - IC 2,0(15,6) ==> len - SLL 2,24 - SRA 2,24 - C 2,=F'0' - BNE @@L11 -@@L7 EQU * - LA 3,7(0,0) - CR 15,3 ==> len - BH @@L33 - LA 2,112(,13) -@@L15 EQU * - LA 3,64(0,0) - STC 3,0(2,15) ==> qname - A 15,=F'1' ==> len - LA 3,7(0,0) - CR 15,3 ==> len - BNH @@L15 -@@L33 EQU * - LA 2,112(,13) - ST 2,100(13) ==> .qname - ST 7,104(13) ==> rn,rname - LR 2,8 ==> options - N 2,=F'3' - LA 3,1(0,0) - CLR 2,3 - BE @@L18 - LA 3,2(0,0) - CLR 2,3 - BNE @@L16 - OI 98(13),72 ==> .opt - B @@L16 -@@L18 EQU * - OI 98(13),64 ==> .opt -@@L16 EQU * - L 2,12(11) ==> deq - LTR 2,2 ==> deq - BE @@L21 - MVI 98(13),1 ==> .opt - DS 0H Request DEQ - LA 1,96(13) ==> pl - SVC 48 DEQ - B @@L22 -@@L21 EQU * - LR 2,8 ==> options - N 2,=F'4' - LTR 2,2 - BE @@L23 - OI 98(13),128 ==> .opt -@@L23 EQU * - LR 2,8 ==> options - N 2,=F'240' - LA 3,64(0,0) - CLR 2,3 - BE @@L26 - BH @@L30 - LA 3,32(0,0) - CLR 2,3 - BE @@L27 - B @@L28 -@@L30 EQU * - LA 3,128(0,0) - CLR 2,3 - BNE @@L28 - OI 98(13),7 ==> .opt - B @@L24 -@@L26 EQU * - OI 98(13),3 ==> .opt - B @@L24 -@@L27 EQU * - OI 98(13),2 ==> .opt - B @@L24 -@@L28 EQU * - OI 98(13),1 ==> .opt -@@L24 EQU * - DS 0H Request ENQ - LA 1,96(13) ==> pl - SVC 56 ENQ -@@L22 EQU * - SLR 2,2 ==> err - IC 2,99(13) ==> err,rc -@@L4 EQU * - LR 15,2 ==> err -* Function '__enqdeq' epilogue - PDPEPIL -* Function '__enqdeq' literal pool - DS 0D - LTORG -* Function '__enqdeq' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@envvar.c b/src/crent370/clib/@@envvar.c deleted file mode 100644 index 9d5e516..0000000 --- a/src/crent370/clib/@@envvar.c +++ /dev/null @@ -1,5 +0,0 @@ -/* @@ENVVAR.C */ -#include "clibenv.h" - -__ENVVAR **__envvar = (__ENVVAR**)0; -int __envsiz = 0; diff --git a/src/crent370/clib/@@envvar.o b/src/crent370/clib/@@envvar.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@envvar.s b/src/crent370/clib/@@envvar.s deleted file mode 100644 index 63bc665..0000000 --- a/src/crent370/clib/@@envvar.s +++ /dev/null @@ -1,32 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@envvar.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* X-var __envvar - ENTRY @@ENVVAR -* Program data area - DS 0F -@@ENVVAR EQU * - DC F'0' -* X-var __envsiz - ENTRY @@ENVSIZ - DS 0F -@@ENVSIZ EQU * - DC F'0' - END diff --git a/src/crent370/clib/@@errno.c b/src/crent370/clib/@@errno.c deleted file mode 100644 index a5782e5..0000000 --- a/src/crent370/clib/@@errno.c +++ /dev/null @@ -1,20 +0,0 @@ -/* @@ERRNO.C */ -#include "errno.h" -#include "clibcrt.h" - -static int static_errno = 0; - -int *__errno(void) -{ - CLIBCRT *crt = __crtget(); - int *perr; - - if (crt) { - perr = &crt->crterrno; - } - else { - perr = &static_errno; - } - - return perr; -} diff --git a/src/crent370/clib/@@errno.o b/src/crent370/clib/@@errno.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@errno.s b/src/crent370/clib/@@errno.s deleted file mode 100644 index d73d1eb..0000000 --- a/src/crent370/clib/@@errno.s +++ /dev/null @@ -1,60 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@errno.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program data area - DS 0F -@@2 EQU * - DC F'0' -* Program text area - DS 0F - EJECT -* external function '__errno' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__errno' -@@ERRNO PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__errno' code - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - LR 2,15 ==> perr,crt - A 2,=F'272' ==> perr - LTR 15,15 ==> crt - BNE @@L3 - L 2,=A(@@2) ==> perr -@@L3 EQU * - LR 15,2 ==> perr -* Function '__errno' epilogue - PDPEPIL -* Function '__errno' literal pool - DS 0D - LTORG -* Function '__errno' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@estae.c b/src/crent370/clib/@@estae.c deleted file mode 100644 index e8846c6..0000000 --- a/src/crent370/clib/@@estae.c +++ /dev/null @@ -1,197 +0,0 @@ -/* @@ESTAE.C -** Create, Overlay, or Delete an ESTAE -** -** The recovery routine will call a C recovery routine. -** The C recovery routine should alter the SDWA for any -** retry that is desired. -** -** Up to 10 levels of ESTAE recovery routines can be created. -** -** Note: do not compile this code with any C optimization -** otherwise the function pointer address in the param array -** will always be zero! -*/ -#include "stdio.h" -#include "clibstae.h" -#include "clibcrt.h" - -typedef struct { - unsigned u[2]; -} PARAM; - -__asm__("\n&FUNC SETC 'required'"); -static unsigned -required(void *fp) -{ - unsigned np = (unsigned) fp; - - if (!np) { - fprintf(stderr, - "estae() a function pointer is required for " - "ESTAE CREATE or OVERLAY\n"); - } - - return np; -} - -int -__estae(ESTAE_OP op, void *fp, void *udata) -{ - CLIBCRT *crt = __crtget(); - int rc = -1; - unsigned work[4]; - unsigned np; - volatile PARAM *param; - volatile PARAM *p; - -#if 0 - printf("Enter estae(%d,%08X,%08X)\n", op, fp, udata); -#endif - if (!crt) goto quit; - param = (PARAM*)crt->crtestpl; - - if (op==ESTAE_CREATE ??!??! op==ESTAE_OVERLAY) { - np = required(fp); - if (!np) goto quit; - } - - switch(op) { - case ESTAE_CREATE: - if (crt->crtestct>=10) goto quit; - p = ¶m[crt->crtestct]; - p->u[0] = (unsigned) np; /* C function pointer */ - p->u[1] = (unsigned) udata;/* user data */ -#if 0 - printf("p=%08X, param0=%08X, param1=%08X\n", p, p->u[0], p->u[1]); - printf("np=%08X, udata=%08X\n", np, udata); -#endif - __asm__( - "LA\t2,RECOVERY\n\t" - "LR\t3,%1 recovery parameter list\n\t" - "LR\t1,%2 macro parameter list\n\t" - "XC\t0(16,1),0(1) clear macro parameter list\n\t" - "ESTAE (2),CT,PARAM=(3),PURGE=NONE,ASYNCH=YES,TERM=YES, X\n\t" - " MF=(E,(1))\n\t" - "LR\t%0,15" - : "=r"(rc): "r"(p), "r"(work) : "0", "1", "2", "3", "14", "15"); - if (rc==0) crt->crtestct++; - break; - case ESTAE_OVERLAY: - if (crt->crtestct>0) crt->crtestct--; - p = ¶m[crt->crtestct]; - p->u[0] = (unsigned) np; /* C function pointer */ - p->u[1] = (unsigned) udata;/* user data */ - __asm__( - "LA\t2,RECOVERY\n\t" - "LR\t3,%1 recovery parameter list\n\t" - "LR\t1,%2 macro parameter list\n\t" - "XC\t0(16,1),0(1) clear macro parameter list\n\t" - "ESTAE (2),OV,PARAM=(3),PURGE=NONE,ASYNCH=YES,TERM=YES, X\n\t" - " MF=(E,(1))\n\t" - "LR\t%0,15" - : "=r"(rc): "r"(p), "r"(work) : "0", "1", "2", "3", "14", "15"); - crt->crtestct++; - break; - case ESTAE_DELETE: - if (crt->crtestct>0) crt->crtestct--; - __asm__( - "ESTAE 0\n\t" - "LR\t%0,15" - : "=r" (rc): : "0", "1", "14", "15"); - break; - } - -quit: -#if 0 - printf("Exit estae(), rc=%d\n", rc); -#endif - return rc; -} - -/* our default RETRY routine, S0C1 ABEND */ -__asm__("\n" -"RETRY DS 0H\n" -#if 0 -" ESTAE 0 REMOVE THE ESTAE\n" -#endif -" DC H'0' INVALID OPERATION CODE -> S0C1-1"); - -/* our RECOVERY routine, percolates the ABEND if we don't have an SDWA */ -__asm__("\n" -"RECOVERY DS 0H\n" -" USING RECOVERY,15\n" -#if 0 -" LR 3,0\n" -" WTO 'In RECOVERY'\n" -" LR 0,3\n" -#endif -" CH 0,=H'12' Q.SDWA?\n" -" BNE HAVESDWA YES, continue\n" -" SR 15,15 NO, percolate ABEND\n" -" BR 14 RETURN TO RTM=PERCOLATE BY DEFAULT\n" -" LTORG ,\n" -" DROP 15"); - -/* We have an SDWA, calls the C function */ -__asm__("\n" -"HAVESDWA DS 0H\n" -" STM 14,12,12(13) SAVE REGISTERS\n" -" LA 12,0(,15) Establish base register\n" -" USING RECOVERY,12\n" -" LR 3,1 SAVE POINTER TO SDWA\n" -" USING SDWA,3 MAP SYSTEM DIAGNOSTIC SAVE AREA"); -#if 0 -__asm__( "WTO 'In assembler RECOVERY'"); -#endif -/* Allocate a new stack */ -__asm__( "GETMAIN RU,LV=STACKLEN,SP=124\n" -" ST 13,4(1) chain prev save area\n" -" ST 1,8(13) chain next save area\n" -" LR 13,1 => our stack\n" -" USING STACK,13"); -#if 0 -__asm__( "WTO 'New stack allocated, calling C function'"); -#endif -/* Update next available byte in stack */ -__asm__( "LA 1,MAINSTK stack for called functions\n" -" ST 1,SAVENAB next available byte in stack"); - -__asm__( "L 2,SDWAPARM get parameter address"); - -/* Create parameter list and call C function */ -__asm__( "ST 3,ARG0 SDWA address\n" -" ST 2,ARG1 udata address\n" -" LA 1,PARMLIST => C function parameter list\n" -" L 15,0(,2) => C function to call\n" -" BALR 14,15 call C function\n" -" LR 2,15 => save return code"); -#if 0 -__asm__( "WTO 'Returned from C function'"); -#endif -/* Release stack storage */ -__asm__( "LR 1,13 => storage to release\n" -" L 13,4(13) => RTM save area\n" -" FREEMAIN RU,LV=STACKLEN,A=(1),SP=124"); -#if 0 -__asm__( "WTO 'Returning to RTM'"); -#endif -/* Tell RTM to retry */ -__asm__( "LR 15,2 restore return code\n" -" DROP 3\n" -" LM 14,12,12(13) LOAD REGISTERS\n" -" BR 14 RETURN TO RTM"); -__asm__( "IHASDWA GENERATE SDWA DSECT\n" -"STACK DSECT\n" -"SAVEAREA DS 18F 00 (0) callers registers go here\n" -"SAVELWS DS A 48 (72) PL/I Language Work Space N/A\n" -"SAVENAB DS A 4C (76) next available byte -------+\n" -"* our stack variables |\n" -"PARMLIST DS 0F plist for C recovery function |\n" -"ARG0 DS A => SDWA |\n" -"ARG1 DS A => udata |\n" -"* end of our stack variables |\n" -"* start of C function stack area |\n" -" DS 0D |\n" -"MAINSTK DS 8192F 32K bytes <-----------------------+\n" -"MAINLEN EQU *-MAINSTK\n" -"STACKLEN EQU *-STACK"); diff --git a/src/crent370/clib/@@estae.o b/src/crent370/clib/@@estae.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@estae.s b/src/crent370/clib/@@estae.s deleted file mode 100644 index 93712f8..0000000 --- a/src/crent370/clib/@@estae.s +++ /dev/null @@ -1,231 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@estae.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'required' -* Program text area - DS 0F - EJECT -* static function 'required' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'required' -@@2 PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=NO - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'required' code - L 2,0(11) ==> np,fp - LTR 2,2 ==> np - BNE @@L2 - LA 1,88(,13) - L 15,=V(@@GTERR) - BALR 14,15 - MVC 88(4,13),0(15) ==> np - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(FPRINTF) - BALR 14,15 -@@L2 EQU * - LR 15,2 ==> np -* Function 'required' epilogue - PDPEPIL -* Function 'required' literal pool - DS 0D - LTORG -* Function 'required' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'estae() a function pointer is required for ESTAE' - DC C' CREATE or OVERLAY' - DC X'15' - DC X'0' - DS 0F - EJECT -* external function '__estae' prologue -* frame base=88, local stack=16, call args=8 -&FUNC SETC '__estae' -@@ESTAE PDPPRLG CINDEX=1,FRAME=112,BASER=12,ENTRY=YES - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function '__estae' code - L 2,0(11) ==> op - L 7,8(11) ==> udata - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - LR 6,15 ==> crt - L 4,=F'-1' ==> rc - LTR 15,15 ==> crt - BE @@L5 - LR 5,15 ==> param,crt - A 5,=F'188' ==> param - LA 8,1(0,0) - CLR 2,8 ==> op - BH @@L6 - MVC 88(4,13),4(11) ==> fp - LA 1,88(,13) - L 15,=A(@@2) - BALR 14,15 - LR 3,15 ==> np - LTR 15,15 ==> np - BE @@L5 -@@L6 EQU * - LA 8,1(0,0) - CLR 2,8 ==> op - BE @@L12 - BL @@L9 - LA 3,2(0,0) - CLR 2,3 ==> op - BE @@L14 - B @@L5 -@@L9 EQU * - L 2,184(6) ==> .crtestct - LA 8,9(0,0) - CR 2,8 - BH @@L5 - MH 2,=H'8' - AR 5,2 ==> p - ST 3,0(5) ==> np,u - ST 7,4(5) ==> udata,u - LA 4,96(,13) - LA 2,RECOVERY - LR 3,5 recovery parameter list ==> p - LR 1,4 macro parameter list - XC 0(16,1),0(1) clear macro parameter list - ESTAE (2),CT,PARAM=(3),PURGE=NONE,ASYNCH=YES,TERM=YES, X - MF=(E,(1)) - LR 4,15 ==> rc - LTR 4,4 ==> rc - BNE @@L5 - B @@L18 -@@L12 EQU * - L 2,184(6) ==> .crtestct - LTR 2,2 - BNH @@L13 - BCTR 2,0 - ST 2,184(6) ==> .crtestct -@@L13 EQU * - L 2,184(6) ==> .crtestct - SLL 2,3 - AR 5,2 ==> p - ST 3,0(5) ==> np,u - ST 7,4(5) ==> udata,u - LA 4,96(,13) - LA 2,RECOVERY - LR 3,5 recovery parameter list ==> p - LR 1,4 macro parameter list - XC 0(16,1),0(1) clear macro parameter list - ESTAE (2),OV,PARAM=(3),PURGE=NONE,ASYNCH=YES,TERM=YES, X - MF=(E,(1)) - LR 4,15 ==> rc -@@L18 EQU * - L 2,184(6) ==> .crtestct - A 2,=F'1' - ST 2,184(6) ==> .crtestct - B @@L5 -@@L14 EQU * - L 2,184(6) ==> .crtestct - LTR 2,2 - BNH @@L15 - BCTR 2,0 - ST 2,184(6) ==> .crtestct -@@L15 EQU * - ESTAE 0 - LR 4,15 ==> rc -@@L5 EQU * - LR 15,4 ==> rc -* Function '__estae' epilogue - PDPEPIL -* Function '__estae' literal pool - DS 0D - LTORG -* Function '__estae' page table -@@PGT1 DS 0F - DC A(@@PG1) - -RETRY DS 0H - DC H'0' INVALID OPERATION CODE -> S0C1-1 - -RECOVERY DS 0H - USING RECOVERY,15 - CH 0,=H'12' Q.SDWA? - BNE HAVESDWA YES, continue - SR 15,15 NO, percolate ABEND - BR 14 RETURN TO RTM=PERCOLATE BY DEFAULT - LTORG , - DROP 15 - -HAVESDWA DS 0H - STM 14,12,12(13) SAVE REGISTERS - LA 12,0(,15) Establish base register - USING RECOVERY,12 - LR 3,1 SAVE POINTER TO SDWA - USING SDWA,3 MAP SYSTEM DIAGNOSTIC SAVE AREA - GETMAIN RU,LV=STACKLEN,SP=124 - ST 13,4(1) chain prev save area - ST 1,8(13) chain next save area - LR 13,1 => our stack - USING STACK,13 - LA 1,MAINSTK stack for called functions - ST 1,SAVENAB next available byte in stack - L 2,SDWAPARM get parameter address - ST 3,ARG0 SDWA address - ST 2,ARG1 udata address - LA 1,PARMLIST => C function parameter list - L 15,0(,2) => C function to call - BALR 14,15 call C function - LR 2,15 => save return code - LR 1,13 => storage to release - L 13,4(13) => RTM save area - FREEMAIN RU,LV=STACKLEN,A=(1),SP=124 - LR 15,2 restore return code - DROP 3 - LM 14,12,12(13) LOAD REGISTERS - BR 14 RETURN TO RTM - IHASDWA GENERATE SDWA DSECT -STACK DSECT -SAVEAREA DS 18F 00 (0) callers registers go here -SAVELWS DS A 48 (72) PL/I Language Work Space N/A -SAVENAB DS A 4C (76) next available byte -------+ -* our stack variables | -PARMLIST DS 0F plist for C recovery function | -ARG0 DS A => SDWA | -ARG1 DS A => udata | -* end of our stack variables | -* start of C function stack area | - DS 0D | -MAINSTK DS 8192F 32K bytes <-----------------------+ -MAINLEN EQU *-MAINSTK -STACKLEN EQU *-STACK - END diff --git a/src/crent370/clib/@@examin.c b/src/crent370/clib/@@examin.c deleted file mode 100644 index f9b6cf4..0000000 --- a/src/crent370/clib/@@examin.c +++ /dev/null @@ -1,364 +0,0 @@ -/* @@EXAMIN.C */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define unused(x) ((void)(x)) -#define outch(ch) ((fq == NULL) ? *s++ = (char)ch : putc(ch, fq)) -#define inch() ((fp == NULL) ? \ - (ch = (unsigned char)*s++) : (ch = getc(fp))) - -static const char DIGITS[] = "0123456789ABCDEF"; -static const char digits[] = "0123456789abcdef"; - -extern void -__dblcvt(double num, char cnvtype, size_t nwidth, int nprecision, char *result); - -int -__examin(const char **formt, FILE *fq, char *s, va_list *arg, int chcount) -{ - int extraCh = 0; - int flagMinus = 0; - int flagPlus = 0; - int flagSpace = 0; - int flagHash = 0; - int flagZero = 0; - int width = 0; - int precision = -1; - int half = 0; - int lng = 0; - int specifier = 0; - int fin; - long lvalue; - short hvalue; - int ivalue; - unsigned ulvalue; - double vdbl; - char *svalue; - char work[80]; - int x; - int y; - int rem; - const char *format; - int base; - int fillCh; - int neg; - int length; - size_t slen; - /* support for long long (64 bit values ) */ - __64 value64; - __64 rem64; - __64 div64; - __64 base64; - - unused(chcount); - format = *formt; - - /* processing flags */ - fin = 0; - while (!fin) { - switch (*format) { - case '-': flagMinus = 1; - break; - case '+': flagPlus = 1; - break; - case ' ': flagSpace = 1; - break; - case '#': flagHash = 1; - break; - case '0': flagZero = 1; - break; - case '*': width = va_arg(*arg, int); - if (width < 0) - { - flagMinus = 1; - width = -width; - } - break; - default: fin = 1; - break; - } - - if (!fin) { - format++; - } - else { - if (flagSpace && flagPlus) { - flagSpace = 0; - } - if (flagMinus) { - flagZero = 0; - } - } - } - - /* processing width */ - if (isdigit((unsigned char)*format)) { - while (isdigit((unsigned char)*format)) { - width = width * 10 + (*format - '0'); - format++; - } - } - - /* processing precision */ - if (*format == '.') { - format++; - if (*format == '*') { - precision = va_arg(*arg, int); - format++; - } - else { - precision = 0; - while (isdigit((unsigned char)*format)) { - precision = precision * 10 + (*format - '0'); - format++; - } - } - } - - /* processing h/l/L */ - if (*format == 'h') { - /* all environments should promote shorts to ints, - so we should be able to ignore the 'h' specifier. - It will create problems otherwise. */ - /* half = 1; */ - } - else if (*format == 'l') { - lng = 1; - if (*(format+1) == 'l') { - lng = 2; - format++; - } - } - else if (*format == 'L') { - lng = 1; - if (*(format+1) == 'L') { - lng = 2; - format++; - } - } - else { - format--; - } - format++; - - /* processing specifier */ - specifier = *format; - - if (strchr("dxXuiop", specifier) != NULL && specifier != 0) { - if (precision < 0) { - precision = 1; - } - - if (lng==1) { - lvalue = va_arg(*arg, long); - } - else if (lng==2) { - lvalue = va_arg(*arg, long); - value64.u32[0] = (uint32_t)lvalue; - lvalue = va_arg(*arg, long); - value64.u32[1] = (uint32_t)lvalue; - } - else if (half) { - /* short is promoted to int, so use int */ - hvalue = va_arg(*arg, int); - if (specifier == 'u') lvalue = (unsigned short)hvalue; - else lvalue = hvalue; - } - else { - ivalue = va_arg(*arg, int); - if (specifier == 'u') lvalue = (unsigned int)ivalue; - else lvalue = ivalue; - } - - ulvalue = (unsigned long)lvalue; - if ((lvalue < 0) && ((specifier == 'd') || (specifier == 'i'))) { - neg = 1; - ulvalue = -lvalue; - } - else { - neg = 0; - } - - if ((specifier == 'X') || (specifier == 'x') || (specifier == 'p')) { - base = 16; - } - else if (specifier == 'o') { - base = 8; - } - else { - base = 10; - } - - if (specifier == 'p') { - precision = 8; - } - - x = 0; - if (lng==2) { - /* 64 bit variables */ - __64_from_i32(&base64, base); - neg = 0; /* __64 values are unsigned */ - while (!(__64_is_zero(&value64))) { - __64_divmod(&value64, &base64, &div64, &rem64); - rem = __64_to_i32(&rem64); - - if ((specifier == 'X') || (specifier == 'p')) { - work[x] = DIGITS[rem]; /* uppercase digits */ - } - else { - work[x] = digits[rem]; /* lowercase digits */ - } - x++; - __64_copy(&div64, &value64); - } - } - else { - /* 32 bit variables */ - while (ulvalue > 0) { - rem = (int)(ulvalue % base); - if ((specifier == 'X') || (specifier == 'p')) { - work[x] = DIGITS[rem]; /* uppercase digits */ - } - else { - work[x] = digits[rem]; /* lowercase digits */ - } - x++; - ulvalue = ulvalue / base; - } - } - - while (x < precision) { - work[x] = '0'; - x++; - } - - if (neg) { - work[x++] = '-'; - } - else if (flagPlus) { - work[x++] = '+'; - } - else if (flagSpace) { - work[x++] = ' '; - } - - if (flagZero) { - fillCh = '0'; - } - else { - fillCh = ' '; - } - - y = x; - if (!flagMinus) { - while (y < width) { - outch(fillCh); - extraCh++; - y++; - } - } - - if (flagHash && (toupper((unsigned char)specifier) == 'X')) { - outch('0'); - outch('x'); - extraCh += 2; - } - - x--; - while (x >= 0) { - outch(work[x]); - extraCh++; - x--; - } - - if (flagMinus) { - while (y < width) { - outch(fillCh); - extraCh++; - y++; - } - } - } - else if (strchr("eEgGfF", specifier) != NULL && specifier != 0) { - if (precision < 0) { - precision = 6; - } - - vdbl = va_arg(*arg, double); - __dblcvt(vdbl, specifier, width, precision, work); /* 'e','f' etc. */ - slen = strlen(work); - if ((flagSpace || flagPlus) && (work[0] != '-')) { - slen++; - memmove(work + 1, work, slen); - if (flagSpace) { - work[0] = ' '; - } - else if (flagPlus) { - work[0] = '+'; - } - } - - if (fq == NULL) { - memcpy(s, work, slen); - s += slen; - } - else { - fputs(work, fq); - } - extraCh += slen; - } - else if (specifier == 's') { - svalue = va_arg(*arg, char *); - fillCh = ' '; - if (precision > 0) { - char *p; - - p = memchr(svalue, '\0', precision); - if (p != NULL) { - length = (int)(p - svalue); - } - else { - length = precision; - } - } - else if (precision < 0) { - length = strlen(svalue); - } - else { - length = 0; - } - - if (!flagMinus) { - if (length < width) { - extraCh += (width - length); - for (x = 0; x < (width - length); x++) { - outch(fillCh); - } - } - } - - for (x = 0; x < length; x++) { - outch(svalue[x]); - } - - extraCh += length; - if (flagMinus) { - if (length < width) { - extraCh += (width - length); - for (x = 0; x < (width - length); x++) { - outch(fillCh); - } - } - } - } - *formt = format; - return (extraCh); -} diff --git a/src/crent370/clib/@@examin.o b/src/crent370/clib/@@examin.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@examin.s b/src/crent370/clib/@@examin.s deleted file mode 100644 index 9ce04f2..0000000 --- a/src/crent370/clib/@@examin.s +++ /dev/null @@ -1,865 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@examin.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@2 EQU * - DC C'0123456789ABCDEF' - DC X'0' -@@3 EQU * - DC C'0123456789abcdef' - DC X'0' - DS 0F - EJECT -* external function '__examin' prologue -* frame base=88, local stack=176, call args=24 -&FUNC SETC '__examin' -@@EXAMIN PDPPRLG CINDEX=0,FRAME=288,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__examin' code - SLR 2,2 - SLR 3,3 - ST 2,264(13) - ST 3,4+264(13) - L 6,12(11) ==> arg - MVC 224(4,13),=F'0' ==> extraCh - MVC 228(4,13),224(13) ==> flagMinus,extraCh - MVC 232(4,13),224(13) ==> flagPlus,extraCh - MVC 236(4,13),224(13) ==> flagSpace,extraCh - MVC 240(4,13),224(13) ==> flagHash,extraCh - MVC 244(4,13),224(13) ==> flagZero,extraCh - MVC 248(4,13),224(13) ==> width,extraCh - MVC 252(4,13),=F'-1' ==> precision - MVC 256(4,13),224(13) ==> lng,extraCh - L 3,0(11) ==> formt - L 4,0(3) ==> format - SLR 3,3 ==> fin -@@L21 EQU * - SLR 2,2 - IC 2,0(4) ==> format - LA 5,92(0,0) - CR 2,5 - BE @@L11 - BH @@L15 - LA 7,64(0,0) - CLR 2,7 - BE @@L8 - LA 15,78(0,0) - CLR 2,15 - BE @@L7 - B @@L13 -@@L15 EQU * - LA 5,123(0,0) - CR 2,5 - BE @@L9 - BH @@L16 - LA 7,96(0,0) - CLR 2,7 - BE @@L6 - B @@L13 -@@L16 EQU * - LA 15,240(0,0) - CLR 2,15 - BE @@L10 - B @@L13 -@@L6 EQU * - MVC 228(4,13),=F'1' ==> flagMinus - B @@L5 -@@L7 EQU * - MVC 232(4,13),=F'1' ==> flagPlus - B @@L5 -@@L8 EQU * - MVC 236(4,13),=F'1' ==> flagSpace - B @@L5 -@@L9 EQU * - MVC 240(4,13),=F'1' ==> flagHash - B @@L5 -@@L10 EQU * - MVC 244(4,13),=F'1' ==> flagZero - B @@L5 -@@L11 EQU * - L 2,0(6) ==> arg - A 2,=F'4' - ST 2,0(6) ==> arg - A 2,=F'-4' - MVC 248(4,13),0(2) ==> width - L 2,248(13) ==> width - LTR 2,2 - BNL @@L5 - MVC 228(4,13),=F'1' ==> flagMinus - LCR 2,2 - ST 2,248(13) ==> width - B @@L5 -@@L13 EQU * - LA 3,1(0,0) ==> fin -@@L5 EQU * - LTR 3,3 ==> fin - BNE @@L17 - A 4,=F'1' ==> format - B @@L2 -@@L17 EQU * - L 5,236(13) ==> flagSpace - LTR 5,5 - BE @@L19 - L 7,232(13) ==> flagPlus - LTR 7,7 - BE @@L19 - MVC 236(4,13),=F'0' ==> flagSpace -@@L19 EQU * - L 15,228(13) ==> flagMinus - LTR 15,15 - BE @@L2 - MVC 244(4,13),=F'0' ==> flagZero -@@L2 EQU * - LTR 3,3 ==> fin - BE @@L21 - SLR 2,2 - IC 2,0(4) ==> format - LR 15,2 - L 3,=V(@@ISBUF) - L 3,0(3) ==> __isbuf - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'8' - CH 2,=H'0' - BE @@L22 -@@L26 EQU * - L 2,248(13) ==> width - SLL 2,3 - A 2,248(13) ==> width - A 2,248(13) ==> width - AR 2,15 - A 2,=F'-240' - ST 2,248(13) ==> width - A 4,=F'1' ==> format - SLR 15,15 - IC 15,0(4) ==> format - LR 2,15 - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'8' - CH 2,=H'0' - BNE @@L26 -@@L22 EQU * - CLI 0(4),75 ==> format - BNE @@L27 - A 4,=F'1' ==> format - CLI 0(4),92 ==> format - BNE @@L28 - L 2,0(6) ==> arg - A 2,=F'4' - ST 2,0(6) ==> arg - A 2,=F'-4' - MVC 252(4,13),0(2) ==> precision - A 4,=F'1' ==> format - B @@L27 -@@L28 EQU * - MVC 252(4,13),=F'0' ==> precision - SLR 2,2 - IC 2,0(4) ==> format - LR 5,2 - L 3,=V(@@ISBUF) - L 3,0(3) ==> __isbuf - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'8' - CH 2,=H'0' - BE @@L27 -@@L33 EQU * - L 2,252(13) ==> precision - SLL 2,3 - A 2,252(13) ==> precision - A 2,252(13) ==> precision - AR 2,5 - A 2,=F'-240' - ST 2,252(13) ==> precision - A 4,=F'1' ==> format - SLR 5,5 - IC 5,0(4) ==> format - LR 2,5 - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'8' - CH 2,=H'0' - BNE @@L33 -@@L27 EQU * - IC 2,0(4) ==> format - CLM 2,1,=XL1'88' - BE @@L35 - CLM 2,1,=XL1'93' - BNE @@L36 - MVC 256(4,13),=F'1' ==> lng - CLI 1(4),147 - BNE @@L35 - B @@L179 -@@L36 EQU * - CLI 0(4),211 ==> format - BNE @@L39 - MVC 256(4,13),=F'1' ==> lng - CLI 1(4),211 - BNE @@L35 -@@L179 EQU * - MVC 256(4,13),=F'2' ==> lng - A 4,=F'1' ==> format - B @@L35 -@@L39 EQU * - BCTR 4,0 ==> format -@@L35 EQU * - A 4,=F'1' ==> format - SLR 7,7 ==> specifier - IC 7,0(4) ==> specifier,format - MVC 88(4,13),=A(@@LC0) - ST 7,92(13) ==> specifier - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LTR 15,15 ==> rem - L 14,=A(@@L42) - BER 14 - LTR 7,7 ==> specifier - L 14,=A(@@L42) - BER 14 - L 2,252(13) ==> precision - LTR 2,2 - BNL @@L43 - MVC 252(4,13),=F'1' ==> precision -@@L43 EQU * - L 5,256(13) ==> lng - LA 3,1(0,0) - CLR 5,3 - BE @@L48 - L 2,256(13) ==> lng - LA 15,2(0,0) - CLR 2,15 - BNE @@L46 - L 2,0(6) ==> arg - A 2,=F'4' - ST 2,0(6) ==> arg - A 2,=F'-4' - MVC 192(4,13),0(2) - L 2,0(6) ==> arg - A 2,=F'4' - ST 2,0(6) ==> arg - A 2,=F'-4' - L 2,0(2) ==> lvalue - ST 2,196(13) ==> lvalue,u32 - B @@L45 -@@L46 EQU * - SLR 3,3 - LTR 3,3 - BE @@L48 - L 2,0(6) ==> arg - A 2,=F'4' - ST 2,0(6) ==> arg - A 2,=F'-4' - L 3,0(2) - SLL 3,16 ==> hvalue - SRA 3,16 ==> hvalue - LR 2,3 ==> hvalue - N 2,=XL4'0000FFFF' - LA 5,164(0,0) - CLR 7,5 ==> specifier - BE @@L45 - LR 2,3 ==> lvalue,hvalue - SLL 2,16 ==> lvalue - SRA 2,16 ==> lvalue - B @@L45 -@@L48 EQU * - L 2,0(6) ==> arg - A 2,=F'4' - ST 2,0(6) ==> arg - A 2,=F'-4' - L 2,0(2) ==> lvalue -@@L45 EQU * - LR 6,2 ==> ulvalue,lvalue - LTR 2,2 ==> ulvalue - BNL @@L54 - LA 15,132(0,0) - CLR 7,15 ==> specifier - BE @@L55 - LA 3,137(0,0) - CLR 7,3 ==> specifier - BNE @@L54 -@@L55 EQU * - MVC 260(4,13),=F'1' ==> neg - LCR 6,2 ==> ulvalue,lvalue - B @@L56 -@@L54 EQU * - MVC 260(4,13),=F'0' ==> neg -@@L56 EQU * - LA 5,231(0,0) - CLR 7,5 ==> specifier - BE @@L58 - LA 15,167(0,0) - CLR 7,15 ==> specifier - BE @@L58 - LA 2,151(0,0) - CLR 7,2 ==> specifier - BNE @@L57 -@@L58 EQU * - MVC 280(4,13),=F'16' ==> base - B @@L59 -@@L57 EQU * - MVC 280(4,13),=F'8' ==> base - LA 3,150(0,0) - CLR 7,3 ==> specifier - BE @@L59 - MVC 280(4,13),=F'10' ==> base -@@L59 EQU * - LA 5,151(0,0) - CLR 7,5 ==> specifier - BNE @@L62 - MVC 252(4,13),=F'8' ==> precision -@@L62 EQU * - SLR 5,5 ==> x - L 2,256(13) ==> lng - LA 15,2(0,0) - CLR 2,15 - BNE @@L63 - LA 2,200(,13) - ST 2,88(13) - MVC 92(4,13),280(13) ==> base - LA 1,88(,13) - L 15,=V(@@64FI32) - BALR 14,15 - ST 5,260(13) ==> x,neg - B @@L64 -@@L70 EQU * - LA 2,192(,13) - ST 2,88(13) - LA 2,200(,13) - ST 2,92(13) - LA 2,208(,13) - ST 2,96(13) - LA 2,216(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@64DMOD) - BALR 14,15 - LA 2,216(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64TI32) - BALR 14,15 - LA 3,231(0,0) - CLR 7,3 ==> specifier - BE @@L68 - LA 2,151(0,0) - CLR 7,2 ==> specifier - BNE @@L67 -@@L68 EQU * - L 2,=A(@@2) - B @@L180 -@@L67 EQU * - L 2,=A(@@3) -@@L180 EQU * - IC 2,0(15,2) ==> digits - STC 2,112(13,5) ==> work - A 5,=F'1' ==> x - LA 2,208(,13) - ST 2,88(13) - LA 2,192(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@64COPY) - BALR 14,15 -@@L64 EQU * - LA 2,192(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64IS0) - BALR 14,15 - LTR 15,15 ==> rem - BNE @@L71 - B @@L70 -@@L63 EQU * - LTR 6,6 ==> ulvalue - BE @@L71 - MVC 272(4,13),280(13) ==> base -@@L84 EQU * - ST 6,264(13) ==> ulvalue - L 3,280(13) ==> base - CLR 3,6 - BH @@L77 - LA 15,1(0,0) - CLR 3,15 - BE @@L75 - L 2,264(13) - L 3,4+264(13) - SRDL 2,32 - D 2,280(13) ==> base - ST 2,264(13) - ST 3,4+264(13) - B @@L77 -@@L75 EQU * - MVC 264(4,13),=F'0' -@@L77 EQU * - L 15,264(13) ==> rem - LA 3,231(0,0) - CLR 7,3 ==> specifier - BE @@L79 - LA 2,151(0,0) - CLR 7,2 ==> specifier - BNE @@L78 -@@L79 EQU * - L 2,=A(@@2) - B @@L181 -@@L78 EQU * - L 2,=A(@@3) -@@L181 EQU * - IC 2,0(15,2) ==> digits - STC 2,112(13,5) ==> work - A 5,=F'1' ==> x - LR 8,6 ==> ulvalue - SLR 9,9 ==> ulvalue - L 3,280(13) ==> base - CLR 3,6 - BH @@L83 - LA 15,1(0,0) - CLR 3,15 - BE @@L81 - SRDL 8,32 ==> ulvalue - DR 8,3 ==> ulvalue - B @@L83 -@@L81 EQU * - LR 9,6 ==> ulvalue -@@L83 EQU * - LR 6,9 ==> ulvalue - LTR 9,9 ==> ulvalue - BNE @@L84 -@@L71 EQU * - C 5,252(13) ==> x,precision - BNL @@L170 -@@L88 EQU * - L 2,=F'-16' - STC 2,112(13,5) ==> work - A 5,=F'1' ==> x - C 5,252(13) ==> x,precision - BL @@L88 -@@L170 EQU * - L 3,260(13) ==> neg - LTR 3,3 - BE @@L89 - LA 15,96(0,0) - STC 15,112(5,13) ==> work - B @@L182 -@@L89 EQU * - L 2,232(13) ==> flagPlus - LTR 2,2 - BE @@L91 - LA 3,78(0,0) - STC 3,112(5,13) ==> work - B @@L182 -@@L91 EQU * - L 15,236(13) ==> flagSpace - LTR 15,15 - BE @@L90 - LA 2,64(0,0) - STC 2,112(5,13) ==> work -@@L182 EQU * - A 5,=F'1' ==> x -@@L90 EQU * - LA 8,240(0,0) ==> fillCh - L 3,244(13) ==> flagZero - LTR 3,3 - BNE @@L95 - LA 8,64(0,0) ==> fillCh -@@L95 EQU * - LR 6,5 ==> y,x - L 15,228(13) ==> flagMinus - LTR 15,15 - BNE @@L96 - C 5,248(13) ==> x,width - BNL @@L96 -@@L102 EQU * - L 2,4(11) ==> fq - LTR 2,2 - BNE @@L100 - L 3,8(11) ==> s - STC 8,0(3) ==> fillCh - A 3,=F'1' - ST 3,8(11) ==> s - B @@L101 -@@L100 EQU * - ST 8,88(13) ==> fillCh - MVC 92(4,13),4(11) ==> fq - LA 1,88(,13) - L 15,=V(FPUTC) - BALR 14,15 -@@L101 EQU * - L 15,224(13) ==> extraCh - A 15,=F'1' - ST 15,224(13) ==> extraCh - A 6,=F'1' ==> y - C 6,248(13) ==> y,width - BL @@L102 -@@L96 EQU * - L 2,240(13) ==> flagHash - LTR 2,2 - BE @@L103 - L 2,=V(@@TOUP) - L 3,0(2) ==> __toup - LR 2,7 ==> specifier - SLL 2,1 - LH 2,0(2,3) - CLM 2,3,=H'231' - BNE @@L103 - L 3,4(11) ==> fq - LTR 3,3 - BNE @@L104 - L 7,8(11) ==> s - MVI 0(7),240 - A 7,=F'1' - ST 7,8(11) ==> s - B @@L105 -@@L104 EQU * - MVC 88(4,13),=F'240' - MVC 92(4,13),4(11) ==> fq - LA 1,88(,13) - L 15,=V(FPUTC) - BALR 14,15 -@@L105 EQU * - L 15,4(11) ==> fq - LTR 15,15 - BNE @@L106 - L 2,8(11) ==> s - MVI 0(2),167 - A 2,=F'1' - ST 2,8(11) ==> s - B @@L107 -@@L106 EQU * - MVC 88(4,13),=F'167' - MVC 92(4,13),4(11) ==> fq - LA 1,88(,13) - L 15,=V(FPUTC) - BALR 14,15 -@@L107 EQU * - L 3,224(13) ==> extraCh - A 3,=F'2' - ST 3,224(13) ==> extraCh -@@L103 EQU * - BCTR 5,0 ==> x - LTR 5,5 ==> x - BL @@L173 -@@L113 EQU * - L 7,4(11) ==> fq - LTR 7,7 - BNE @@L111 - IC 2,112(13,5) ==> work - L 15,8(11) ==> s - STC 2,0(15) - A 15,=F'1' - ST 15,8(11) ==> s - B @@L112 -@@L111 EQU * - SLR 2,2 - IC 2,112(13,5) ==> work - ST 2,88(13) - MVC 92(4,13),4(11) ==> fq - LA 1,88(,13) - L 15,=V(FPUTC) - BALR 14,15 -@@L112 EQU * - L 3,224(13) ==> extraCh - A 3,=F'1' - ST 3,224(13) ==> extraCh - BCTR 5,0 ==> x - LTR 5,5 ==> x - BNL @@L113 -@@L173 EQU * - L 5,228(13) ==> flagMinus - LTR 5,5 - L 14,=A(@@L121) - BER 14 - C 6,248(13) ==> y,width - L 14,=A(@@L121) - BNLR 14 -@@L120 EQU * - L 7,4(11) ==> fq - LTR 7,7 - BNE @@L118 - L 15,8(11) ==> s - STC 8,0(15) ==> fillCh - A 15,=F'1' - ST 15,8(11) ==> s - B @@L119 -@@L118 EQU * - ST 8,88(13) ==> fillCh - MVC 92(4,13),4(11) ==> fq - LA 1,88(,13) - L 15,=V(FPUTC) - BALR 14,15 -@@L119 EQU * - L 2,224(13) ==> extraCh - A 2,=F'1' - ST 2,224(13) ==> extraCh - A 6,=F'1' ==> y - C 6,248(13) ==> y,width - L 14,=A(@@L121) - BNLR 14 - B @@L120 -@@L42 EQU * - MVC 88(4,13),=A(@@LC1) - ST 7,92(13) ==> specifier - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LTR 15,15 ==> rem - BE @@L122 - LTR 7,7 ==> specifier - BE @@L122 - L 3,252(13) ==> precision - LTR 3,3 - BNL @@L123 - MVC 252(4,13),=F'6' ==> precision -@@L123 EQU * - L 2,0(6) ==> arg - A 2,=F'8' - ST 2,0(6) ==> arg - A 2,=F'-8' - MVC 88(8,13),0(2) - LR 2,7 - N 2,=XL4'000000FF' ==> specifier - ST 2,96(13) ==> specifier - MVC 100(4,13),248(13) ==> width - MVC 104(4,13),252(13) ==> precision - LA 2,112(,13) - ST 2,108(13) - LA 1,88(,13) - L 15,=V(@@DBLCVT) - BALR 14,15 - ST 2,88(13) - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 3,15 ==> slen - L 5,236(13) ==> flagSpace - LTR 5,5 - BNE @@L125 - L 7,232(13) ==> flagPlus - LTR 7,7 - BE @@L124 -@@L125 EQU * - CLI 112(13),96 ==> work - BE @@L124 - A 3,=F'1' ==> slen - LA 2,113(,13) - ST 2,88(13) - LA 2,112(,13) - ST 2,92(13) - ST 3,96(13) ==> slen - LA 1,88(,13) - L 15,=V(MEMMOVE) - BALR 14,15 - L 15,236(13) ==> flagSpace - LTR 15,15 - BE @@L126 - MVI 112(13),64 ==> work - B @@L124 -@@L126 EQU * - L 2,232(13) ==> flagPlus - LTR 2,2 - BE @@L124 - MVI 112(13),78 ==> work -@@L124 EQU * - L 5,4(11) ==> fq - LTR 5,5 - BNE @@L129 - MVC 88(4,13),8(11) ==> s - LA 2,112(,13) - ST 2,92(13) - ST 3,96(13) ==> slen - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - B @@L130 -@@L129 EQU * - LA 2,112(,13) - ST 2,88(13) - MVC 92(4,13),4(11) ==> fq - LA 1,88(,13) - L 15,=V(FPUTS) - BALR 14,15 -@@L130 EQU * - A 3,224(13) ==> slen,extraCh - ST 3,224(13) ==> slen,extraCh - L 14,=A(@@L121) - BR 14 -@@L122 EQU * - LA 15,162(0,0) - CR 7,15 ==> specifier - L 14,=A(@@L121) - BNER 14 - L 2,0(6) ==> arg - A 2,=F'4' - ST 2,0(6) ==> arg - A 2,=F'-4' - L 6,0(2) ==> svalue - LA 8,64(0,0) ==> fillCh - L 2,252(13) ==> precision - LTR 2,2 - BNH @@L133 - ST 6,88(13) ==> svalue - MVC 92(4,13),=F'0' - ST 2,96(13) - LA 1,88(,13) - L 15,=V(MEMCHR) - BALR 14,15 - LR 3,15 ==> length,p - SR 3,6 ==> length,svalue - LTR 15,15 ==> p - BNE @@L136 - L 3,252(13) ==> length,precision - B @@L136 -@@L133 EQU * - L 3,252(13) ==> precision - LTR 3,3 - BNL @@L137 - ST 6,88(13) ==> svalue - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 3,15 ==> length - B @@L136 -@@L137 EQU * - SLR 3,3 ==> length -@@L136 EQU * - L 5,228(13) ==> flagMinus - LTR 5,5 - BNE @@L139 - C 3,248(13) ==> length,width - BNL @@L139 - L 2,248(13) ==> width - SR 2,3 ==> length - L 7,224(13) ==> extraCh - AR 7,2 - ST 7,224(13) ==> extraCh - CR 5,2 ==> x - BNL @@L139 - L 2,248(13) ==> width - SR 2,3 ==> length -@@L147 EQU * - L 15,4(11) ==> fq - LTR 15,15 - BNE @@L145 - L 7,8(11) ==> s - STC 8,0(7) ==> fillCh - A 7,=F'1' - ST 7,8(11) ==> s - B @@L143 -@@L145 EQU * - ST 8,88(13) ==> fillCh - MVC 92(4,13),4(11) ==> fq - LA 1,88(,13) - L 15,=V(FPUTC) - BALR 14,15 -@@L143 EQU * - A 5,=F'1' ==> x - CR 5,2 ==> x - BL @@L147 -@@L139 EQU * - SLR 5,5 ==> x - CR 5,3 ==> x,length - BNL @@L177 -@@L154 EQU * - L 15,4(11) ==> fq - LTR 15,15 - BNE @@L152 - IC 7,0(5,6) ==> x - L 2,8(11) ==> s - STC 7,0(2) - A 2,=F'1' - ST 2,8(11) ==> s - B @@L150 -@@L152 EQU * - SLR 2,2 - IC 2,0(5,6) ==> x - ST 2,88(13) - MVC 92(4,13),4(11) ==> fq - LA 1,88(,13) - L 15,=V(FPUTC) - BALR 14,15 -@@L150 EQU * - A 5,=F'1' ==> x - CR 5,3 ==> x,length - BL @@L154 -@@L177 EQU * - L 15,224(13) ==> extraCh - AR 15,3 ==> length - ST 15,224(13) ==> extraCh - L 2,228(13) ==> flagMinus - LTR 2,2 - BE @@L121 - C 3,248(13) ==> length,width - BNL @@L121 - L 2,248(13) ==> width - SR 2,3 ==> length - AR 15,2 - ST 15,224(13) ==> extraCh - SLR 5,5 ==> x - CR 5,2 ==> x - BNL @@L121 - L 2,248(13) ==> width - SR 2,3 ==> length -@@L163 EQU * - L 3,4(11) ==> fq - LTR 3,3 - BNE @@L161 - L 7,8(11) ==> s - STC 8,0(7) ==> fillCh - A 7,=F'1' - ST 7,8(11) ==> s - B @@L159 -@@L161 EQU * - ST 8,88(13) ==> fillCh - MVC 92(4,13),4(11) ==> fq - LA 1,88(,13) - L 15,=V(FPUTC) - BALR 14,15 -@@L159 EQU * - A 5,=F'1' ==> x - CR 5,2 ==> x - BL @@L163 -@@L121 EQU * - L 15,0(11) ==> formt - ST 4,0(15) ==> format - L 15,224(13) ==> extraCh -* Function '__examin' epilogue - PDPEPIL -* Function '__examin' literal pool - DS 0D - LTORG -* Function '__examin' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'dxXuiop' - DC X'0' -@@LC1 EQU * - DC C'eEgGfF' - DC X'0' - END diff --git a/src/crent370/clib/@@exit.c b/src/crent370/clib/@@exit.c deleted file mode 100644 index 2350870..0000000 --- a/src/crent370/clib/@@exit.c +++ /dev/null @@ -1,110 +0,0 @@ -/* @@EXIT.C */ -#include "stdio.h" -#include "stdlib.h" -#include "string.h" -#include "stddef.h" -#include "clibcrt.h" -#include "clibary.h" - -extern void __exita(int status); - -void -__exit(int status) -{ - CLIBGRT *grt = __grtget(); - FILE *fp; - unsigned count; - void (*func)(int,void*); - - if (!grt) goto quit; - - if (grt->grtexit) { - /* call atexit()/on_exit() functions */ - count = arraycount(&grt->grtexit); - /* we process the functions on a last in first out bases */ - while(count > 0) { - count--; - func = grt->grtexit[count]; - if (func) { - func(status,grt->grtexita[count]); - } - grt->grtexit[count] = 0; - grt->grtexita[count] = 0; - } - arrayfree(&grt->grtexit); - arrayfree(&grt->grtexita); - } - - if (grt->grtfile) { - /* close all open files */ - count = arraycount(&grt->grtfile); - while(count > 0) { - count--; - fp = grt->grtfile[count]; - if (!fp) continue; - - fclose(fp); - if (fp == stdin) { - stdin = 0; - continue; - } - if (fp == stdout) { - stdout = 0; - continue; - } - if (fp == stderr) { - stderr = 0; - continue; - } - } - arrayfree(&grt->grtfile); - } - - if (grt->grtenv) { - /* free environment variables */ - count = arraycount(&grt->grtenv); - while(count > 0) { - count--; - if (grt->grtenv[count]) { - free(grt->grtenv[count]); - grt->grtenv[count] = 0; - } - } - arrayfree(&grt->grtenv); - } - - if (grt->grtwsa) { - /* free writable static areas */ - count = arraycount(&grt->grtwsa); - while(count > 0) { - count--; - if (grt->grtwsa[count]) { - free(grt->grtwsa[count]); - grt->grtwsa[count] = 0; - } - } - arrayfree(&grt->grtwsa); - } - - if (grt->grtdevtb) { - /* free device table */ - count = arraycount(&grt->grtdevtb); - while(count > 0) { - count--; - if (grt->grtdevtb[count]) { - free(grt->grtdevtb[count]); - grt->grtdevtb[count] = 0; - } - } - arrayfree(&grt->grtdevtb); - } - - if (grt->grtptrs) { - /* the pointers in this array belong to the caller, so no free() */ - arrayfree(&grt->grtptrs); - } - -quit: - __exita(status); - return; -} diff --git a/src/crent370/clib/@@exit.o b/src/crent370/clib/@@exit.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@exit.s b/src/crent370/clib/@@exit.s deleted file mode 100644 index 71c2ed0..0000000 --- a/src/crent370/clib/@@exit.s +++ /dev/null @@ -1,296 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@exit.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__exit' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC '__exit' -@@EXIT PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__exit' code - L 6,0(11) ==> status - LA 1,88(,13) - L 15,=V(@@GRTGET) - BALR 14,15 - LR 5,15 ==> grt - LTR 15,15 ==> grt - BE @@L3 - L 2,16(15) ==> .grtexit - LTR 2,2 - BE @@L4 - LR 2,15 ==> grt - A 2,=F'16' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 4,15 ==> count - LTR 15,15 ==> count - BE @@L39 -@@L9 EQU * - BCTR 4,0 ==> count - L 2,16(5) ==> .grtexit - LR 15,4 ==> count - MH 15,=H'4' - L 3,0(15,2) ==> func - LTR 3,3 ==> func - BE @@L8 - ST 6,88(13) ==> status - L 2,20(5) ==> .grtexita - L 2,0(15,2) - ST 2,92(13) - LA 1,88(,13) - LA 15,0(3) ==> func - BALR 14,15 -@@L8 EQU * - L 2,16(5) ==> .grtexit - LR 3,4 ==> count - MH 3,=H'4' - SLR 7,7 - ST 7,0(3,2) - L 2,20(5) ==> .grtexita - ST 7,0(3,2) - LTR 4,4 ==> count - BNE @@L9 -@@L39 EQU * - LR 2,5 ==> grt - A 2,=F'16' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARFRE) - BALR 14,15 - A 2,=F'4' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARFRE) - BALR 14,15 -@@L4 EQU * - L 2,24(5) ==> .grtfile - LTR 2,2 - BE @@L10 - LR 2,5 ==> grt - A 2,=F'24' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 4,15 ==> count - LTR 15,15 ==> count - BE @@L41 -@@L18 EQU * - BCTR 4,0 ==> count - L 3,24(5) ==> .grtfile - LR 2,4 ==> count - MH 2,=H'4' - L 2,0(2,3) ==> fp - LTR 2,2 ==> fp - BE @@L11 - ST 2,88(13) ==> fp - LA 1,88(,13) - L 15,=V(FCLOSE) - BALR 14,15 - LA 1,88(,13) - L 15,=V(@@GTIN) - BALR 14,15 - CL 2,0(15) ==> fp,grt - BNE @@L15 - LA 1,88(,13) - L 15,=V(@@GTIN) - BALR 14,15 - B @@L48 -@@L15 EQU * - LA 1,88(,13) - L 15,=V(@@GTOUT) - BALR 14,15 - CL 2,0(15) ==> fp,grt - BNE @@L16 - LA 1,88(,13) - L 15,=V(@@GTOUT) - BALR 14,15 - B @@L48 -@@L16 EQU * - LA 1,88(,13) - L 15,=V(@@GTERR) - BALR 14,15 - CL 2,0(15) ==> fp,grt - BNE @@L11 - LA 1,88(,13) - L 15,=V(@@GTERR) - BALR 14,15 -@@L48 EQU * - MVC 0(4,15),=F'0' ==> grt -@@L11 EQU * - LTR 4,4 ==> count - BNE @@L18 -@@L41 EQU * - LR 2,5 ==> grt - A 2,=F'24' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARFRE) - BALR 14,15 -@@L10 EQU * - L 2,32(5) ==> .grtenv - LTR 2,2 - BE @@L19 - LR 2,5 ==> grt - A 2,=F'32' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 4,15 ==> count - LTR 15,15 ==> count - BE @@L43 -@@L24 EQU * - BCTR 4,0 ==> count - L 2,32(5) ==> .grtenv - LR 3,4 ==> count - MH 3,=H'4' - L 2,0(3,2) - LTR 2,2 - BE @@L20 - ST 2,88(13) - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - L 2,32(5) ==> .grtenv - SLR 7,7 - ST 7,0(3,2) -@@L20 EQU * - LTR 4,4 ==> count - BNE @@L24 -@@L43 EQU * - LR 2,5 ==> grt - A 2,=F'32' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARFRE) - BALR 14,15 -@@L19 EQU * - L 2,68(5) ==> .grtwsa - LTR 2,2 - BE @@L25 - LR 2,5 ==> grt - A 2,=F'68' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 4,15 ==> count - LTR 15,15 ==> count - BE @@L45 -@@L30 EQU * - BCTR 4,0 ==> count - L 2,68(5) ==> .grtwsa - LR 3,4 ==> count - MH 3,=H'4' - L 2,0(3,2) - LTR 2,2 - BE @@L26 - ST 2,88(13) - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - L 2,68(5) ==> .grtwsa - SLR 7,7 - ST 7,0(3,2) -@@L26 EQU * - LTR 4,4 ==> count - BNE @@L30 -@@L45 EQU * - LR 2,5 ==> grt - A 2,=F'68' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARFRE) - BALR 14,15 -@@L25 EQU * - L 2,72(5) ==> .grtdevtb - LTR 2,2 - BE @@L31 - LR 2,5 ==> grt - A 2,=F'72' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 4,15 ==> count - LTR 15,15 ==> count - BE @@L47 -@@L36 EQU * - BCTR 4,0 ==> count - L 2,72(5) ==> .grtdevtb - LR 3,4 ==> count - MH 3,=H'4' - L 2,0(3,2) - LTR 2,2 - BE @@L32 - ST 2,88(13) - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - L 2,72(5) ==> .grtdevtb - SLR 7,7 - ST 7,0(3,2) -@@L32 EQU * - LTR 4,4 ==> count - BNE @@L36 -@@L47 EQU * - LR 2,5 ==> grt - A 2,=F'72' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARFRE) - BALR 14,15 -@@L31 EQU * - L 2,76(5) ==> .grtptrs - LTR 2,2 - BE @@L3 - LR 2,5 ==> grt - A 2,=F'76' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARFRE) - BALR 14,15 -@@L3 EQU * - ST 6,88(13) ==> status - LA 1,88(,13) - L 15,=V(@@EXITA) - BALR 14,15 -* Function '__exit' epilogue - PDPEPIL -* Function '__exit' literal pool - DS 0D - LTORG -* Function '__exit' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@fdclr.c b/src/crent370/clib/@@fdclr.c deleted file mode 100644 index a4745bd..0000000 --- a/src/crent370/clib/@@fdclr.c +++ /dev/null @@ -1,49 +0,0 @@ -/* @@FDCLR.C - dynamic deallocation */ -#include - -struct rb { - char len; /* length of request block, always 20 */ - char verb; /* dynamic allocation function requested */ - char flag1; - char flag2; - short error_reason; /* returned */ - short info_reason; /* returned */ - void *tu_list; /* list of pointers to text units */ - int reserved; - char moreflags[4]; /* extraflags */ -}; - -struct tu { - short key; /* key defining what this text unit is */ - short numparms; /* number of parms that follow */ - short parm1_len; - char parm1[98]; - /* parm2_len etc would theoretically follow, but we - /* can't define them, because the length of 98 is probably - not correct in the first place */ -}; - -int -__fdclr(char *ddname) -{ - int err = 0; - void *tu_list[10]; - struct rb rb; - struct tu tu[10]; - - memset(&rb, 0x00, sizeof rb); - rb.len = 20; - rb.verb = 0x02; /* unallocate */ - rb.tu_list = tu_list; - - tu_list[0] = &tu[0]; - tu[0].key = 0x0001; /* ddname */ - tu[0].numparms = 1; - tu[0].parm1_len = strlen(ddname); - strcpy(tu[0].parm1, ddname); - - tu_list[1] = (void *)0x80000000; - - err = __svc99(&rb); - return err; -} diff --git a/src/crent370/clib/@@fdclr.o b/src/crent370/clib/@@fdclr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@fdclr.s b/src/crent370/clib/@@fdclr.s deleted file mode 100644 index c55ed22..0000000 --- a/src/crent370/clib/@@fdclr.s +++ /dev/null @@ -1,78 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@fdclr.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__fdclr' prologue -* frame base=88, local stack=1104, call args=16 -&FUNC SETC '__fdclr' -@@FDCLR PDPPRLG CINDEX=0,FRAME=1208,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__fdclr' code - L 3,0(11) ==> ddname - LA 4,144(,13) - ST 4,88(13) - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'20' - LA 1,88(,13) - L 15,=V(MEMSET) - BALR 14,15 - MVI 144(13),20 ==> .len - MVI 145(13),2 ==> .verb - LA 2,104(,13) - ST 2,152(13) ==> .tu_list - LA 2,168(,13) - ST 2,104(13) ==> tu_list - MVC 168(2,13),=H'1' ==> .key - MVC 170(2,13),=H'1' ==> .numparms - ST 3,88(13) ==> ddname - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - STH 15,172(13) ==> err,parm1_len - LA 2,174(,13) - ST 2,88(13) - ST 3,92(13) ==> ddname - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - MVC 108(4,13),=F'-2147483648' ==> tu_list - ST 4,88(13) - LA 1,88(,13) - L 15,=V(@@SVC99) - BALR 14,15 -* Function '__fdclr' epilogue - PDPEPIL -* Function '__fdclr' literal pool - DS 0D - LTORG -* Function '__fdclr' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@fflush.c b/src/crent370/clib/@@fflush.c deleted file mode 100644 index 3283954..0000000 --- a/src/crent370/clib/@@fflush.c +++ /dev/null @@ -1,165 +0,0 @@ -/* @@FFLUSH.C - caller should already hold lock on file handle */ -#include -#include -#include -#include -#include - -#define begwrite(fp, len) (lenwrite = (len), dptr = (fp)->asmbuf) -#define finwrite(fp) (__awrite((fp)->dcb, &dptr, &lenwrite)) - -static int fixflush(FILE *fp, int fill); -static int varflush(FILE *fp); -static int tso_putline(char *buf, unsigned len); - -int -__fflush(FILE *fp) -{ - DCB *dcb = fp->dcb; - int err = 0; - unsigned char *dptr; - size_t lenwrite; - int fill; - - if (fp->flags & _FILE_FLAG_RECORD) goto quit; /* not using buffer */ - if (!(fp->flags & _FILE_FLAG_WRITE)) goto quit; /* not in WRITE mode */ - if (fp->upto == fp->buf) goto quit; /* empty buffer */ - - /* This is new code to support TSO terminals */ - if (dcb->dcbdevt == DCBDVTRM) { - /* DCB refers to terminal */ - DECB decb = {0}; - size_t len; - - /* calculate length of data in buffer */ - len = fp->upto - fp->buf; - - err = tso_putline(fp->buf, len); - goto reset; - } - - - switch(fp->recfm & _FILE_RECFM_TYPE) { - case _FILE_RECFM_F: /* RECFM=F.. */ - case _FILE_RECFM_U: /* RECFM=U */ - if (fp->flags & _FILE_FLAG_BINARY) { - fill = 0; - } - else { - fill = ' '; - } - err = fixflush(fp, fill); - break; - case _FILE_RECFM_V: /* RECFM=V.. */ - err = varflush(fp); - break; - } - -reset: - /* reset buffer */ - fp->upto = fp->buf; - fp->filepos = 0; - -quit: - return err; -} - -__asm__("\n&FUNC SETC 'fixflush'"); -static int -fixflush(FILE *fp, int fill) -{ - int err = 0; - unsigned char *dptr; - size_t lenwrite; - size_t len; - - /* calculate length of data in buffer */ - len = fp->upto - fp->buf; - - /* fill and copy data to internal buffer */ - if ((fp->recfm & _FILE_RECFM_TYPE)==_FILE_RECFM_U) { - /* RECFM=U, no fill, just copy */ - begwrite(fp, len); - memcpy(dptr, fp->buf, len); - } - else { - /* RECFM=F, fill and copy */ - begwrite(fp, fp->lrecl); - memset(dptr, fill, fp->lrecl); - memcpy(dptr, fp->buf, len); - len = fp->lrecl; - } - - /* write buffer to disk */ - err = finwrite(fp); - -quit: - return err; -} - -__asm__("\n&FUNC SETC 'varflush'"); -static int -varflush(FILE *fp) -{ - int err = 0; - unsigned char *dptr; - size_t lenwrite; - size_t len; - size_t rdwlen; - - /* calculate length of data in buffer */ - len = fp->upto - fp->buf; - - rdwlen = len+4; - begwrite(fp, rdwlen); - /* copy data to internal buffer */ - memcpy(dptr+4, fp->buf, len); - - /* calculate the RDW */ - dptr[0] = (unsigned char) (rdwlen >> 8); - dptr[1] = (unsigned char) (rdwlen & 0xFF); - dptr[2] = 0; - dptr[3] = 0; - - /* write buffer to disk */ - err = finwrite(fp); - - // wtof("@@fflush:%s: dptr=0x%08X lenwrite=%u err=%d", __func__, dptr, lenwrite, err); - // wtodumpf(dptr, lenwrite, "dptr"); - -quit: - return err; -} - -static int -tso_putline(char *buf, unsigned len) -{ - unsigned r0 = 0; - unsigned r1 = 0; - - // wtof("%s: enter", __func__); - if (!len) goto quit; - - // wtodumpf(buf, len, "@@fflush.c:%s: buf", __func__); - -#define TPUT_WAIT 0x00 -#define TPUT_NOWAIT 0x10 -#define TPUT_HOLD 0x08 -#define TPUT_BREAKIN 0x04 -#define TPUT_CONTROL 0x02 -#define TPUT_ASIS 0x01 -#define TPUT_EDIT 0x00 -#define TPUT_FULLSCR (TPUT_CONTROL|TPUT_ASIS) - - r0 = len & 0xFFFF; - r1 = (TPUT_WAIT | TPUT_HOLD) << 24 | (unsigned) buf & 0x00FFFFFF; - - __asm__( - "LR\t0,%0 buffer length\n\t" - "LR\t1,%1 flags and buffer address\n\t" - "TPUT\t(1),(0),R" : : "r"(r0), "r"(r1) ); - -quit: - // wtof("%s: exit rc=%d", __func__, 0); - return 0; -} diff --git a/src/crent370/clib/@@fflush.o b/src/crent370/clib/@@fflush.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@fflush.s b/src/crent370/clib/@@fflush.s deleted file mode 100644 index ed5a7f3..0000000 --- a/src/crent370/clib/@@fflush.s +++ /dev/null @@ -1,278 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@fflush.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__fflush' prologue -* frame base=88, local stack=32, call args=8 -&FUNC SETC '__fflush' -@@FFLUSH PDPPRLG CINDEX=0,FRAME=128,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__fflush' code - L 6,0(11) ==> fp - L 4,8(6) ==> dcb,dcb - SLR 15,15 ==> err - LH 3,40(6) ==> .flags - LR 2,3 - N 2,=F'512' - CH 2,=H'0' - BNE @@L3 - LR 2,3 - N 2,=F'4096' - CH 2,=H'0' - BE @@L3 - L 2,32(6) ==> .upto - CL 2,28(6) ==> .buf - BE @@L3 - CLI 17(4),79 ==> .dcbdevt - BNE @@L6 - LA 4,96(,13) - LA 5,32(0,0) - LR 2,15 ==> err - LR 3,15 ==> err - MVCL 4,2 ==> err - L 2,32(6) ==> len,upto - S 2,28(6) ==> len,buf - MVC 88(4,13),28(6) ==> .buf - ST 2,92(13) ==> len - LA 1,88(,13) - L 15,=A(@@2) - BALR 14,15 - B @@L7 -@@L6 EQU * - IC 2,42(6) ==> .recfm - N 2,=F'192' - LA 3,128(0,0) - CR 2,3 - BE @@L10 - BH @@L16 - LA 3,64(0,0) - CLR 2,3 - BE @@L13 - B @@L7 -@@L16 EQU * - LA 3,192(0,0) - CLR 2,3 - BNE @@L7 -@@L10 EQU * - LH 2,40(6) ==> .flags - N 2,=F'1024' - BCTR 2,0 - N 2,=XL4'0000FFFF' ==> fill - SRL 2,15 ==> fill - SLL 2,6 ==> fill - ST 6,88(13) ==> fp - ST 2,92(13) ==> fill - LA 1,88(,13) - L 15,=A(@@3) - BALR 14,15 - B @@L7 -@@L13 EQU * - ST 6,88(13) ==> fp - LA 1,88(,13) - L 15,=A(@@4) - BALR 14,15 -@@L7 EQU * - MVC 32(4,6),28(6) ==> .upto,buf - MVC 24(4,6),=F'0' ==> .filepos -@@L3 EQU * -* Function '__fflush' epilogue - PDPEPIL -* Function '__fflush' literal pool - DS 0D - LTORG -* Function '__fflush' page table -@@PGT0 DS 0F - DC A(@@PG0) - -&FUNC SETC 'fixflush' - DS 0F - EJECT -* static function 'fixflush' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'fixflush' -@@3 PDPPRLG CINDEX=1,FRAME=112,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'fixflush' code - L 4,0(11) ==> fp - L 6,4(11) ==> fill - L 5,32(4) ==> len,upto - S 5,28(4) ==> len,buf - IC 2,42(4) ==> .recfm - N 2,=F'-64' - CLM 2,1,=XL1'C0' - BNE @@L18 - ST 5,108(13) ==> len - MVC 104(4,13),12(4) ==> .asmbuf - MVC 88(4,13),104(13) - B @@L22 -@@L18 EQU * - LH 3,16(4) ==> .lrecl - N 3,=XL4'0000FFFF' - ST 3,108(13) ==> n - MVC 104(4,13),12(4) ==> .asmbuf - L 2,104(13) ==> s - -*** MEMSET *** - LR 14,2 => target (s) ==> s - LR 15,3 => length (n) ==> n - SLR 0,0 => source (NULL) - LR 1,6 fill character ==> fill - SLL 1,24 move fill to high byte - MVCL 14,0 Set target to fill character - ST 2,88(13) ==> s -@@L22 EQU * - MVC 92(4,13),28(4) ==> .buf - ST 5,96(13) ==> len - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - MVC 88(4,13),8(4) ==> .dcb - LA 2,104(,13) - ST 2,92(13) - LA 2,108(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@AWRITE) - BALR 14,15 -@@L21 EQU * -* Function 'fixflush' epilogue - PDPEPIL -* Function 'fixflush' literal pool - DS 0D - LTORG -* Function 'fixflush' page table -@@PGT1 DS 0F - DC A(@@PG1) - -&FUNC SETC 'varflush' - DS 0F - EJECT -* static function 'varflush' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'varflush' -@@4 PDPPRLG CINDEX=2,FRAME=112,BASER=12,ENTRY=NO - B @@FEN2 - LTORG -@@FEN2 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG2 EQU * - LR 11,1 - L 10,=A(@@PGT2) -* Function 'varflush' code - L 5,0(11) ==> fp - SLR 6,6 ==> err - L 3,32(5) ==> len,upto - S 3,28(5) ==> len,buf - LR 4,3 ==> rdwlen,len - A 4,=F'4' ==> rdwlen - ST 4,108(13) ==> rdwlen - MVC 104(4,13),12(5) ==> .asmbuf - L 2,104(13) - A 2,=F'4' - ST 2,88(13) - MVC 92(4,13),28(5) ==> .buf - ST 3,96(13) ==> len - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - LR 3,4 ==> rdwlen - SRL 3,8 - L 2,104(13) - STC 3,0(2) - L 2,104(13) - STC 4,1(2) ==> rdwlen - L 2,104(13) - STC 6,2(2) ==> err - L 2,104(13) - STC 6,3(2) ==> err - MVC 88(4,13),8(5) ==> .dcb - LA 2,104(,13) - ST 2,92(13) - LA 2,108(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@AWRITE) - BALR 14,15 -@@L24 EQU * -* Function 'varflush' epilogue - PDPEPIL -* Function 'varflush' literal pool - DS 0D - LTORG -* Function 'varflush' page table -@@PGT2 DS 0F - DC A(@@PG2) - DS 0F - EJECT -* static function 'tso_putline' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'tso_putline' -@@2 PDPPRLG CINDEX=3,FRAME=88,BASER=12,ENTRY=NO - B @@FEN3 - LTORG -@@FEN3 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG3 EQU * - LR 11,1 - L 10,=A(@@PGT3) -* Function 'tso_putline' code - L 3,4(11) ==> len - LTR 3,3 ==> len - BE @@L27 - N 3,=F'65535' ==> r0 - L 2,0(11) ==> r1,buf - N 2,=F'16777215' ==> r1 - O 2,=F'134217728' ==> r1 - LR 0,3 buffer length ==> r0 - LR 1,2 flags and buffer address ==> r1 - TPUT (1),(0),R -@@L27 EQU * - SLR 15,15 -* Function 'tso_putline' epilogue - PDPEPIL -* Function 'tso_putline' literal pool - DS 0D - LTORG -* Function 'tso_putline' page table -@@PGT3 DS 0F - DC A(@@PG3) - END diff --git a/src/crent370/clib/@@fgetc.c b/src/crent370/clib/@@fgetc.c deleted file mode 100644 index 1ef869e..0000000 --- a/src/crent370/clib/@@fgetc.c +++ /dev/null @@ -1,161 +0,0 @@ -/* @@FGETC.C - caller should already have lock on file handle */ -#include -#include -#include -#include -#include -#include - -static unsigned char *tso_getline(unsigned char *buf, size_t len); - -int -__fgetc(FILE *fp) -{ - DCB *dcb = fp->dcb; - int c = EOF; - size_t lenread; - size_t read; - unsigned char *dptr; - - if (fp->flags & (_FILE_FLAG_EOF |_FILE_FLAG_RECORD)) goto quit; - - if (fp->ungetch != -1) { - c = (int)fp->ungetch; - fp->ungetch = -1; - goto quit; - } - - if (fp->upto < fp->endbuf) goto dogetc; - - /* This is new code to support TSO terminals */ - if (dcb->dcbdevt == DCBDVTRM) { - dptr = tso_getline(fp->asmbuf, fp->lrecl-1); - - read = strlen(dptr); - // wtof("%s: dptr=\"%s\"", __func__, dptr); - /* on "normal" terminals and end user could hit control-d - * character to indicate EOF. TSO has no such method - * so we'll look for a "magic" sequence to emulate EOF. - */ - if (strcmp(dptr, "/*")==0) goto quit; - if (strcmp(dptr, "//")==0) goto quit; - if (strcmp(dptr, "")==0) goto quit; - if (strcmp(dptr, "")==0) goto quit; - goto success; - } - - do { - /* read one record from dataset */ - if (__aread(fp->dcb, &dptr, &lenread) != 0) { - /* end of file */ - fp->flags |= _FILE_FLAG_EOF; - goto quit; - } - - switch (fp->recfm & _FILE_RECFM_TYPE) { - case _FILE_RECFM_F: - read = fp->lrecl; - break; - case _FILE_RECFM_V: - read = (dptr[0] << 8) | dptr[1]; - dptr += 4; /* skip over RDW */ - read -= 4; /* adjust for size of RDW */ - break; - case _FILE_RECFM_U: - read = lenread; - break; - default: - /* should never happen! */ - fp->flags |= _FILE_FLAG_EOF; - goto quit; - } - } while (read < 0); - -success: - /* successful read of dataset */ - if (read > 0) { - if (!(fp->flags & _FILE_FLAG_BINARY)) { - /* get rid of any trailing NULs in text mode */ - unsigned char *p = memchr(dptr, '\0', read); - - if (p) { - read = p - dptr; - } - } - - /* copy to buffer */ - memcpy(fp->buf, dptr, read); - } - - fp->upto = fp->buf; - fp->endbuf = fp->buf + read; - - /* dataset records do not have newline record delititers - ** so we need to add a newline for text streams. - */ - if (!(fp->flags & _FILE_FLAG_BINARY)) { - /* add newline to text stream */ - *fp->endbuf++ = '\n'; - } - -dogetc: - /* return character from file handle buffer */ - c = (int)*fp->upto++; - - /* increment our relative file position */ - fp->filepos++; - -quit: - return c; -} - -static unsigned char * -tso_getline(unsigned char *buf, size_t len) -{ - unsigned r0 = 0; - unsigned r1 = 0; - - if (!buf) goto quit; - if (!len) goto quit; - -#define TGET_WAIT 0x80 -#define TGET_NOWAIT 0x90 -#define TGET_ASIS 0x01 -#define TGET_EDIT 0x00 - - r0 = len; - r1 = (TGET_WAIT | TGET_EDIT) << 24 | (unsigned)buf & 0x00FFFFFF; - - __asm__( - "LR\t0,%0 buffer length\n\t" - "LR\t1,%1 flags and buffer address\n\t" - "TGET\t(1),(0),R" : : "r"(r0), "r"(r1) ); - - buf[len-1] = 0; - // wtodumpf(buf, len, "%s: buf 1", __func__); - - /* since TSO has an unformatted screen area - * a user can type anyplace and cause a huge amount of - * leading spaces before the text they entered. - * so the goal here is to remove that leading space - * from the input. - */ - for(len=0; (isspace(buf[len])); len++); - strcpy(buf, &buf[len]); - - /* remove trailing spaces */ - len = strlen(buf); - // wtodumpf(buf, len+1, "%s: buf 2", __func__); - while( len > 0 ) { - len--; - - if (!isspace(buf[len])) break; - - buf[len] = 0; - } - - // wtodumpf(buf, len+1, "%s: buf 3", __func__); - -quit: - return buf; -} diff --git a/src/crent370/clib/@@fgetc.o b/src/crent370/clib/@@fgetc.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@fgetc.s b/src/crent370/clib/@@fgetc.s deleted file mode 100644 index e192303..0000000 --- a/src/crent370/clib/@@fgetc.s +++ /dev/null @@ -1,305 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@fgetc.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__fgetc' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__fgetc' -@@FGETC PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__fgetc' code - L 4,0(11) ==> fp - L 3,8(4) ==> dcb,dcb - L 5,=F'-1' ==> c - LH 2,40(4) ==> .flags - N 2,=F'513' - CH 2,=H'0' - BNE @@L3 - L 2,20(4) ==> c,ungetch - CLR 2,5 ==> c - BE @@L4 - LR 5,2 ==> c - MVC 20(4,4),=F'-1' ==> .ungetch - B @@L3 -@@L4 EQU * - L 2,32(4) ==> .upto - CL 2,36(4) ==> .endbuf - BL @@L6 - CLI 17(3),79 ==> .dcbdevt - BNE @@L7 - MVC 88(4,13),12(4) ==> .asmbuf - LH 2,16(4) ==> .lrecl - N 2,=XL4'0000FFFF' - BCTR 2,0 - ST 2,92(13) - LA 1,88(,13) - L 15,=A(@@2) - BALR 14,15 - ST 15,104(13) ==> read - ST 15,88(13) - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 3,15 ==> read - MVC 88(4,13),104(13) - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(STRCMP) - BALR 14,15 - LTR 15,15 ==> read - BE @@L3 - MVC 88(4,13),104(13) - MVC 92(4,13),=A(@@LC1) - LA 1,88(,13) - L 15,=V(STRCMP) - BALR 14,15 - LTR 15,15 ==> read - BE @@L3 - MVC 88(4,13),104(13) - MVC 92(4,13),=A(@@LC2) - LA 1,88(,13) - L 15,=V(STRCMP) - BALR 14,15 - LTR 15,15 ==> read - BE @@L3 - MVC 88(4,13),104(13) - MVC 92(4,13),=A(@@LC3) - LA 1,88(,13) - L 15,=V(STRCMP) - BALR 14,15 - LTR 15,15 ==> read - BE @@L3 - B @@L12 -@@L7 EQU * - MVC 88(4,13),8(4) ==> .dcb - LA 2,104(,13) - ST 2,92(13) - LA 2,108(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@AREAD) - BALR 14,15 - LTR 15,15 ==> read - BNE @@L19 - IC 2,42(4) ==> .recfm - N 2,=F'192' - LA 3,128(0,0) - CR 2,3 - BE @@L16 - BH @@L21 - LA 6,64(0,0) - CLR 2,6 - BE @@L17 - B @@L19 -@@L21 EQU * - LA 3,192(0,0) - CLR 2,3 - BE @@L18 - B @@L19 -@@L16 EQU * - LH 3,16(4) ==> .lrecl - N 3,=XL4'0000FFFF' - B @@L12 -@@L17 EQU * - L 3,104(13) - SLR 2,2 - IC 2,0(3) - SLL 2,8 - SLR 5,5 - IC 5,1(3) - LR 3,5 - OR 3,2 ==> read - L 2,104(13) - A 2,=F'4' - ST 2,104(13) - A 3,=F'-4' ==> read - B @@L12 -@@L18 EQU * - L 3,108(13) ==> read - B @@L12 -@@L19 EQU * - OC 40(2,4),=H'1' ==> .flags - B @@L3 -@@L12 EQU * - LTR 3,3 ==> read - BE @@L22 - LH 2,40(4) ==> .flags - N 2,=F'1024' - CH 2,=H'0' - BNE @@L23 - MVC 88(4,13),104(13) - MVC 92(4,13),=F'0' - ST 3,96(13) ==> read - LA 1,88(,13) - L 15,=V(MEMCHR) - BALR 14,15 - LTR 15,15 ==> p - BE @@L23 - LR 3,15 ==> read,p - S 3,104(13) ==> read -@@L23 EQU * - MVC 88(4,13),28(4) ==> .buf - MVC 92(4,13),104(13) - ST 3,96(13) ==> read - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 -@@L22 EQU * - MVC 32(4,4),28(4) ==> .upto,buf - LR 2,3 ==> read - A 2,28(4) ==> .buf - ST 2,36(4) ==> .endbuf - LH 2,40(4) ==> .flags - N 2,=F'1024' - CH 2,=H'0' - BNE @@L6 - LR 3,4 ==> fp - A 3,=F'36' - L 2,0(3) ==> .endbuf - MVI 0(2),21 - A 2,=F'1' - ST 2,0(3) ==> .endbuf -@@L6 EQU * - LR 2,4 ==> fp - A 2,=F'32' - L 3,0(2) ==> .upto - SLR 5,5 ==> c - IC 5,0(3) ==> c - A 3,=F'1' - ST 3,0(2) ==> .upto - L 2,24(4) ==> .filepos - A 2,=F'1' - ST 2,24(4) ==> .filepos -@@L3 EQU * - LR 15,5 ==> c -* Function '__fgetc' epilogue - PDPEPIL -* Function '__fgetc' literal pool - DS 0D - LTORG -* Function '__fgetc' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'/*' - DC X'0' -@@LC1 EQU * - DC C'//' - DC X'0' -@@LC2 EQU * - DC C'' - DC X'0' -@@LC3 EQU * - DC C'' - DC X'0' - DS 0F - EJECT -* static function 'tso_getline' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'tso_getline' -@@2 PDPPRLG CINDEX=1,FRAME=96,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'tso_getline' code - L 4,0(11) ==> buf - L 3,4(11) ==> len - LTR 4,4 ==> buf - BE @@L28 - LTR 3,3 ==> len - BE @@L28 - LR 2,4 ==> r1,buf - N 2,=F'16777215' ==> r1 - O 2,=F'-2147483648' ==> r1 - LR 0,3 buffer length ==> len - LR 1,2 flags and buffer address ==> r1 - TGET (1),(0),R - LR 2,4 ==> buf - AR 2,3 ==> len - BCTR 2,0 - MVI 0(2),0 - SLR 3,3 ==> len - B @@L30 -@@L34 EQU * - A 3,=F'1' ==> len -@@L30 EQU * - SLR 2,2 - IC 2,0(3,4) ==> len - ST 2,88(13) - LA 1,88(,13) - L 15,=V(ISSPACE) - BALR 14,15 - LTR 15,15 ==> len - BNE @@L34 - ST 4,88(13) ==> buf - LR 2,4 ==> buf - AR 2,3 ==> len - ST 2,92(13) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - ST 4,88(13) ==> buf - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 3,15 ==> len - LTR 15,15 ==> len - BE @@L28 -@@L39 EQU * - BCTR 3,0 ==> len - SLR 2,2 - IC 2,0(3,4) ==> len - ST 2,88(13) - LA 1,88(,13) - L 15,=V(ISSPACE) - BALR 14,15 - LTR 15,15 ==> len - BE @@L28 - SLR 2,2 - STC 2,0(3,4) ==> len - LTR 3,3 ==> len - BNE @@L39 -@@L28 EQU * - LR 15,4 ==> buf -* Function 'tso_getline' epilogue - PDPEPIL -* Function 'tso_getline' literal pool - DS 0D - LTORG -* Function 'tso_getline' page table -@@PGT1 DS 0F - DC A(@@PG1) - END diff --git a/src/crent370/clib/@@fgets.c b/src/crent370/clib/@@fgets.c deleted file mode 100644 index f24a433..0000000 --- a/src/crent370/clib/@@fgets.c +++ /dev/null @@ -1,33 +0,0 @@ -/* @@FGETS.C */ -#include -#include - -char * -__fgets(char *s, int n, FILE *fp) -{ - int cnt; - int c; - - if (fp->flags & (_FILE_FLAG_EOF | _FILE_FLAG_RECORD)) { - s = (char *)0; - goto quit; - } - - for(n--, cnt = 0; cnt < n; ) { - c = __fgetc(fp); - if (c == EOF) break; - s[cnt++] = c; - if (c == '\n') break; - } - - if ((cnt == 0) && (c == EOF)) { - /* end of file */ - s = (char*)0; - goto quit; - } - - s[cnt] = '\0'; - -quit: - return s; -} diff --git a/src/crent370/clib/@@fgets.o b/src/crent370/clib/@@fgets.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@fgets.s b/src/crent370/clib/@@fgets.s deleted file mode 100644 index 058b70b..0000000 --- a/src/crent370/clib/@@fgets.s +++ /dev/null @@ -1,86 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@fgets.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__fgets' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC '__fgets' -@@FGETS PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__fgets' code - L 4,0(11) ==> s - L 3,4(11) ==> n - L 5,8(11) ==> fp - LH 2,40(5) ==> .flags - N 2,=F'513' - CH 2,=H'0' - BNE @@L13 - BCTR 3,0 ==> n - SLR 2,2 ==> cnt - CR 2,3 ==> cnt,n - BNL @@L5 -@@L10 EQU * - ST 5,88(13) ==> fp - LA 1,88(,13) - L 15,=V(@@FGETC) - BALR 14,15 - L 6,=F'-1' - CLR 15,6 ==> c - BE @@L5 - STC 15,0(2,4) ==> c,cnt - A 2,=F'1' ==> cnt - LA 6,21(0,0) - CR 15,6 ==> c - BE @@L5 - CR 2,3 ==> cnt,n - BL @@L10 -@@L5 EQU * - LTR 2,2 ==> cnt - BNE @@L11 - L 3,=F'-1' - CLR 15,3 ==> c - BNE @@L11 -@@L13 EQU * - SLR 4,4 ==> s - B @@L3 -@@L11 EQU * - SLR 6,6 - STC 6,0(2,4) ==> cnt -@@L3 EQU * - LR 15,4 ==> s -* Function '__fgets' epilogue - PDPEPIL -* Function '__fgets' literal pool - DS 0D - LTORG -* Function '__fgets' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@fildef.c b/src/crent370/clib/@@fildef.c deleted file mode 100644 index d86aa48..0000000 --- a/src/crent370/clib/@@fildef.c +++ /dev/null @@ -1,132 +0,0 @@ -/* @@FILDEF.C - dynamic allocation */ -#include -#include - -/* - filedef dynamically allocates a file (via SVC 99) on MVS-like - environments. -*/ - -struct rb { - char len; /* length of request block, always 20 */ - char verb; /* dynamic allocation function requested */ - char flag1; - char flag2; - short error_reason; /* returned */ - short info_reason; /* returned */ - void *tu_list; /* list of pointers to text units */ - int reserved; - char moreflags[4]; /* extraflags */ -}; - -struct tu { - short key; /* key defining what this text unit is */ - short numparms; /* number of parms that follow */ - short parm1_len; - char parm1[98]; - /* parm2_len etc would theoretically follow, but we - /* can't define them, because the length of 98 is probably - not correct in the first place */ -}; - -int -__fildef(char *fdddname, char *fnm, int mymode, int modeType) -{ - int err = 0; - void *tu_list[10]; - struct rb rb; - struct tu tu[10]; - - memset(&rb, 0x00, sizeof rb); - rb.len = 20; - rb.verb = 0x01; /* allocate */ - rb.flag1 = 0x40; /* S99NOCNV */ - rb.tu_list = tu_list; - - if (fdddname[0]) { - tu_list[0] = &tu[0]; - tu[0].key = 0x0001; /* ddname */ - tu[0].numparms = 1; - tu[0].parm1_len = strlen(fdddname); - strcpy(tu[0].parm1, fdddname); - } - else { - tu_list[0] = &tu[0]; - tu[0].key = 0x0055; /* DALRTDDN */ - tu[0].numparms = 1; - tu[0].parm1_len = 8; - memset(tu[0].parm1, 0, 8); - } - - tu_list[1] = &tu[1]; - tu[1].key = 0x0002; /* dsname */ - tu[1].numparms = 1; - tu[1].parm1_len = strlen(fnm); - strcpy(tu[1].parm1, fnm); - - tu_list[2] = &tu[2]; - tu[2].key = 0x0004; /* disp */ - tu[2].numparms = 1; - tu[2].parm1_len = 1; - tu[2].parm1[0] = 0x08; /* SHR */ - - tu_list[3] = 0; - tu_list[4] = 0; - tu_list[5] = (void *)0x80000000; - - err = __svc99(&rb); - - /* if we had an error, then for datasets open for write, - try allocating a new dataset (this will be the normal - situation - it is abnormal to find the dataset already - pre-allocated */ - if (err) { - /* if open for write */ - if ( mymode ) { - tu[2].parm1[0] = 0x04; /* NEW */ - /* Note that the operating system, e.g. PDOS, - may override the RECFM, e.g. to make everything - RECFM=U - */ - - /* if binary */ - if (modeType == 5) { - /* F80, which is default */ - /* That seems like a strange default. Regardless, - we should be using RECFM=U, BLKSIZE=6233 for - output binary files */ - } - else { - /* V255 */ - tu_list[3] = &tu[3]; - tu[3].key = 0x49; /* RECFM */ - tu[3].numparms = 1; - tu[3].parm1_len = 1; - tu[3].parm1[0] = 0x40; /* V */ - - tu_list[4] = &tu[4]; - tu[4].key = 0x42; /* LRECL */ - tu[4].numparms = 1; - tu[4].parm1_len = 2; - tu[4].parm1[0] = 0; /* LRECL = 255 */ - tu[4].parm1[1] = 255; - } - } - err = __svc99(&rb); - } - - if (err) { - if (rb.error_reason != 0) { - errno = rb.error_reason; - } - } - -quit: - if (fdddname[0]==0 && err==0 && tu[0].key == 0x0055) { - /* return DDNAME to caller */ - memcpy(fdddname, tu[0].parm1, 8); - fdddname[8] = 0; - } - - return err; -} diff --git a/src/crent370/clib/@@fildef.o b/src/crent370/clib/@@fildef.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@fildef.s b/src/crent370/clib/@@fildef.s deleted file mode 100644 index 80fe25f..0000000 --- a/src/crent370/clib/@@fildef.s +++ /dev/null @@ -1,185 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@fildef.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__fildef' prologue -* frame base=88, local stack=1104, call args=16 -&FUNC SETC '__fildef' -@@FILDEF PDPPRLG CINDEX=0,FRAME=1208,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__fildef' code - L 4,0(11) ==> fdddname - L 3,4(11) ==> fnm - LA 2,144(,13) - ST 2,88(13) - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'20' - LA 1,88(,13) - L 15,=V(MEMSET) - BALR 14,15 - MVI 144(13),20 ==> .len - MVI 145(13),1 ==> .verb - MVI 146(13),64 ==> .flag1 - LA 2,104(,13) - ST 2,152(13) ==> .tu_list - IC 2,0(4) ==> fdddname - CLM 2,1,=XL1'00' - BE @@L2 - LA 2,168(,13) - ST 2,104(13) ==> tu_list - MVC 168(2,13),=H'1' ==> .key - MVC 170(2,13),=H'1' ==> .numparms - ST 4,88(13) ==> fdddname - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - STH 15,172(13) ==> err,parm1_len - LA 2,174(,13) - ST 2,88(13) - ST 4,92(13) ==> fdddname - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - B @@L3 -@@L2 EQU * - LA 2,168(,13) - ST 2,104(13) ==> tu_list - MVC 168(2,13),=H'85' ==> .key - MVC 170(2,13),=H'1' ==> .numparms - MVC 172(2,13),=H'8' ==> .parm1_len - LA 2,174(,13) - ST 2,88(13) - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'8' - LA 1,88(,13) - L 15,=V(MEMSET) - BALR 14,15 -@@L3 EQU * - LA 2,272(,13) - ST 2,108(13) ==> tu_list - MVC 272(2,13),=H'2' ==> .key - MVC 274(2,13),=H'1' ==> .numparms - ST 3,88(13) ==> fnm - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - STH 15,276(13) ==> err,parm1_len - LA 2,278(,13) - ST 2,88(13) - ST 3,92(13) ==> fnm - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - LA 2,376(,13) - ST 2,112(13) ==> tu_list - MVC 376(2,13),=H'4' ==> .key - MVC 378(2,13),=H'1' ==> .numparms - MVC 380(2,13),=H'1' ==> .parm1_len - MVI 382(13),8 ==> .parm1 - MVC 116(4,13),=F'0' ==> tu_list - MVC 120(4,13),=F'0' ==> tu_list - MVC 124(4,13),=F'-2147483648' ==> tu_list - LA 2,144(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@SVC99) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BE @@L4 - L 2,8(11) ==> mymode - LTR 2,2 ==> mymode - BE @@L5 - MVI 382(13),4 ==> .parm1 - L 2,12(11) ==> modeType - LA 3,5(0,0) - CLR 2,3 ==> modeType - BE @@L5 - LA 2,480(,13) - ST 2,116(13) ==> tu_list - MVC 480(2,13),=H'73' ==> .key - MVC 482(2,13),=H'1' ==> .numparms - MVC 484(2,13),=H'1' ==> .parm1_len - MVI 486(13),64 ==> .parm1 - LA 2,584(,13) - ST 2,120(13) ==> tu_list - MVC 584(2,13),=H'66' ==> .key - MVC 586(2,13),=H'1' ==> .numparms - MVC 588(2,13),=H'2' ==> .parm1_len - MVI 590(13),0 ==> .parm1 - MVI 591(13),255 ==> .parm1 -@@L5 EQU * - LA 2,144(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@SVC99) - BALR 14,15 - LR 3,15 ==> err -@@L4 EQU * - LTR 3,3 ==> err - BE @@L10 - LH 2,148(13) ==> .error_reason - CH 2,=H'0' - BE @@L10 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - LH 2,148(13) ==> .error_reason - SLL 2,16 - SRA 2,16 - ST 2,0(15) ==> err -@@L10 EQU * - IC 2,0(4) ==> fdddname - CLM 2,1,=XL1'00' - BNE @@L11 - LTR 3,3 ==> err - BNE @@L11 - LH 2,168(13) ==> .key - CLM 2,3,=H'85' - BNE @@L11 - ST 4,88(13) ==> fdddname - LA 2,174(,13) - ST 2,92(13) - MVC 96(4,13),=F'8' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - STC 3,8(4) ==> err -@@L11 EQU * - LR 15,3 ==> err -* Function '__fildef' epilogue - PDPEPIL -* Function '__fildef' literal pool - DS 0D - LTORG -* Function '__fildef' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@finden.c b/src/crent370/clib/@@finden.c deleted file mode 100644 index 1f8ac47..0000000 --- a/src/crent370/clib/@@finden.c +++ /dev/null @@ -1,45 +0,0 @@ -/* @@FINDEN.C */ -#include -#include -#include -#include -#include "clibenv.h" -#include "clibcrt.h" -#include "cliblock.h" - -char * -__findenv(const char *name, int *index, int nocase) -{ - CLIBGRT *grt = __grtget(); - int empty = -1; - __ENVVAR *envvar; - int i; - - if (name && grt->grtenv) { - unsigned count = arraycount(&grt->grtenv); - for(i=0; i < count; i++) { - envvar = grt->grtenv[i]; - if (!envvar) { - if (empty < 0) empty = i; - continue; - } - if (!envvar->name) continue; - - if (nocase) { - if (stricmp(envvar->name, name)==0) { - if (index) *index = i; - return envvar->value; - } - } - else { - if (strcmp(envvar->name, name)==0) { - if (index) *index = i; - return envvar->value; - } - } - } - } - - if (index) *index = empty; - return NULL; -} diff --git a/src/crent370/clib/@@finden.o b/src/crent370/clib/@@finden.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@finden.s b/src/crent370/clib/@@finden.s deleted file mode 100644 index bc819a9..0000000 --- a/src/crent370/clib/@@finden.s +++ /dev/null @@ -1,118 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@finden.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__findenv' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC '__findenv' -@@FINDEN PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__findenv' code - L 6,0(11) ==> name - L 8,4(11) ==> index - LA 1,88(,13) - L 15,=V(@@GRTGET) - BALR 14,15 - LR 5,15 ==> grt - L 9,=F'-1' ==> empty - LTR 6,6 ==> name - BE @@L2 - L 2,32(15) ==> .grtenv - LTR 2,2 - BE @@L2 - LR 2,15 ==> grt - A 2,=F'32' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 7,15 ==> count - SLR 4,4 ==> i - CLR 4,15 ==> i,count - BNL @@L2 -@@L16 EQU * - L 3,32(5) ==> .grtenv - LR 2,4 ==> i - MH 2,=H'4' - L 3,0(2,3) ==> envvar - LTR 3,3 ==> envvar - BNE @@L7 - LTR 9,9 ==> empty - BNL @@L5 - LR 9,4 ==> empty,i - B @@L5 -@@L7 EQU * - L 2,0(3) ==> .name - LTR 2,2 - BE @@L5 - L 15,8(11) ==> nocase - LTR 15,15 - BE @@L10 - ST 2,88(13) - ST 6,92(13) ==> name - LA 1,88(,13) - L 15,=V(STRICMP) - BALR 14,15 - B @@L21 -@@L10 EQU * - MVC 88(4,13),0(3) ==> .name - ST 6,92(13) ==> name - LA 1,88(,13) - L 15,=V(STRCMP) - BALR 14,15 -@@L21 EQU * - LTR 15,15 ==> grt - BNE @@L5 - LTR 8,8 ==> index - BE @@L15 - ST 4,0(8) ==> i,index -@@L15 EQU * - L 15,4(3) ==> grt,value - B @@L1 -@@L5 EQU * - A 4,=F'1' ==> i - CLR 4,7 ==> i,count - BL @@L16 -@@L2 EQU * - LTR 8,8 ==> index - BE @@L17 - ST 9,0(8) ==> empty,index -@@L17 EQU * - SLR 15,15 ==> grt -@@L1 EQU * -* Function '__findenv' epilogue - PDPEPIL -* Function '__findenv' literal pool - DS 0D - LTORG -* Function '__findenv' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@fmtisp.c b/src/crent370/clib/@@fmtisp.c deleted file mode 100644 index 6638178..0000000 --- a/src/crent370/clib/@@fmtisp.c +++ /dev/null @@ -1,84 +0,0 @@ -/* @@FMTISP.C */ -#include -#include -#include -#include -#include "cliblist.h" - -static int cvtdate(int century, unsigned char *date, struct tm *tm); - -int -__fmtisp(PDSLIST *pdslist, ISPFSTAT *ispfstat) -{ - int rc = -1; - ISPFDATA *data = pdslist ? (ISPFDATA*)pdslist->udata : 0; - ISPFSTAT *stat = ispfstat; - int i; - struct tm tm; - - if (!data) goto quit; - if (!stat) goto quit; - - memset(stat, 0, sizeof(ISPFSTAT)); - - for(i=0; i < 8 && pdslist->name[i] > ' '; i++) { - stat->name[i] = pdslist->name[i]; - } - sprintf(stat->ttr, "%06X", (*(unsigned *)pdslist->ttr) >> 8); - - /* get size of PDS user data */ - rc = (pdslist->idc & PDSLIST_IDC_UDATA) * 2; - - /* do we have statistics? */ - if (!rc) goto quit; /* nope, we're done, return rc=0 */ - - /* format ISPF (like) statistics */ - sprintf(stat->ver, "%02u.%02u", data->ver, data->mod); - if (cvtdate(data->crecent, data->creydd, &tm)==0) { - /* format creation date */ - sprintf(stat->created, "%02u-%02u-%02u", - tm.tm_year % 100, tm.tm_mon + 1, tm.tm_mday); - } - - if (cvtdate(data->modcent, data->modydd, &tm)==0) { - /* format changed date */ - sprintf(stat->changed, "%02u-%02u-%02u %02X:%02X:%02X", - tm.tm_year % 100, tm.tm_mon + 1, tm.tm_mday, - data->modhm[0], data->modhm[1], data->seconds); - } - - sprintf(stat->init, "%u", data->initlines); - sprintf(stat->size, "%u", data->curlines); - sprintf(stat->mod, "%u", data->modlines); - for(i=0; i < 8 && data->userid[i] > ' '; i++) { - stat->userid[i] = data->userid[i]; - } - /* return rc=0 */ - rc = 0; - -quit: - return rc; -} - -static int -cvtdate(int century, unsigned char *date, struct tm *tm) -{ - memset(tm, 0, sizeof(struct tm)); - - /* extract year from packed date */ - tm->tm_year = ((date[0] & 0xF0) >> 4); - tm->tm_year *= 10; - tm->tm_year += (date[0] & 0x0F); - if (century) tm->tm_year += 100; - - /* extract julian days from packed date */ - tm->tm_mday = ((date[1] & 0xF0) >> 4); - tm->tm_mday *= 10; - tm->tm_mday += (date[1] & 0x0F); - tm->tm_mday *= 10; - tm->tm_mday += ((date[2] & 0xF0) >> 4); - - if (mktime(tm) < 0) return -1; - - return 0; -} diff --git a/src/crent370/clib/@@fmtisp.o b/src/crent370/clib/@@fmtisp.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@fmtisp.s b/src/crent370/clib/@@fmtisp.s deleted file mode 100644 index 061a83b..0000000 --- a/src/crent370/clib/@@fmtisp.s +++ /dev/null @@ -1,332 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@fmtisp.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__fmtisp' prologue -* frame base=88, local stack=48, call args=32 -&FUNC SETC '__fmtisp' -@@FMTISP PDPPRLG CINDEX=0,FRAME=168,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__fmtisp' code - SLR 8,8 - SLR 9,9 - ST 8,160(13) - ST 9,4+160(13) - L 4,0(11) ==> pdslist - L 15,=F'-1' ==> rc - LR 6,4 ==> data,pdslist - A 6,=F'12' ==> data - LTR 4,4 ==> pdslist - BNE @@L3 - SLR 6,6 ==> data -@@L3 EQU * - L 5,4(11) ==> stat,ispfstat - LTR 6,6 ==> data - BE @@L5 - LTR 5,5 ==> stat - BE @@L5 - SLR 3,3 ==> c - LA 2,76(0,0) ==> n - -*** MEMSET *** - LR 14,5 => target (s) ==> stat - LR 15,2 => length (n) ==> n - SLR 0,0 => source (NULL) - LR 1,3 fill character ==> c - SLL 1,24 move fill to high byte - MVCL 14,0 Set target to fill character - CLI 0(4),64 ==> .name - BNH @@L9 -@@L13 EQU * - IC 2,0(3,4) ==> .name - STC 2,0(3,5) ==> .name - A 3,=F'1' ==> i - LA 2,7(0,0) - CR 3,2 ==> i - BH @@L9 - IC 2,0(3,4) ==> .name - CLM 2,1,=XL1'40' - BH @@L13 -@@L9 EQU * - LR 2,5 ==> stat - A 2,=F'9' - ST 2,88(13) - MVC 92(4,13),=A(@@LC0) - L 2,8(4) - SRL 2,8 - ST 2,96(13) - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - IC 15,11(4) ==> .idc - N 15,=F'31' ==> rc - MH 15,=H'2' ==> rc - LTR 15,15 ==> rc - BE @@L5 - LR 2,5 ==> stat - A 2,=F'16' - ST 2,88(13) - MVC 92(4,13),=A(@@LC1) - SLR 2,2 - IC 2,0(6) ==> .ver - ST 2,96(13) - SLR 2,2 - IC 2,1(6) ==> .mod - ST 2,100(13) - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - SLR 2,2 - IC 2,4(6) ==> .crecent - ST 2,88(13) - LR 2,6 ==> data - A 2,=F'5' - ST 2,92(13) - LA 2,120(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=A(@@2) - BALR 14,15 - LTR 15,15 ==> rc - BNE @@L15 - LR 2,5 ==> stat - A 2,=F'22' - ST 2,88(13) - MVC 92(4,13),=A(@@LC2) - L 8,140(13) ==> .tm_year - SRDA 8,32 - LA 3,100(0,0) - DR 8,3 - ST 8,96(13) - L 2,136(13) ==> .tm_mon - A 2,=F'1' - ST 2,100(13) - MVC 104(4,13),132(13) ==> .tm_mday - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 -@@L15 EQU * - SLR 2,2 - IC 2,8(6) ==> .modcent - ST 2,88(13) - LR 2,6 ==> data - A 2,=F'9' - ST 2,92(13) - LA 2,120(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=A(@@2) - BALR 14,15 - LTR 15,15 ==> rc - BNE @@L16 - LR 2,5 ==> stat - A 2,=F'31' - ST 2,88(13) - MVC 92(4,13),=A(@@LC3) - MVC 160(4,13),140(13) ==> .tm_year - L 2,160(13) - L 3,4+160(13) - SRDA 2,32 - LA 4,100(0,0) - DR 2,4 - ST 2,160(13) - ST 3,4+160(13) - MVC 96(4,13),160(13) - L 2,136(13) ==> .tm_mon - A 2,=F'1' - ST 2,100(13) - MVC 104(4,13),132(13) ==> .tm_mday - SLR 2,2 - IC 2,12(6) ==> .modhm - ST 2,108(13) - SLR 2,2 - IC 2,13(6) ==> .modhm - ST 2,112(13) - SLR 2,2 - IC 2,3(6) ==> .seconds - ST 2,116(13) - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 -@@L16 EQU * - LR 2,5 ==> stat - A 2,=F'49' - ST 2,88(13) - MVC 92(4,13),=A(@@LC4) - LH 2,16(6) ==> .initlines - N 2,=XL4'0000FFFF' - ST 2,96(13) - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - LR 2,5 ==> stat - A 2,=F'55' - ST 2,88(13) - MVC 92(4,13),=A(@@LC4) - LH 2,14(6) ==> .curlines - N 2,=XL4'0000FFFF' - ST 2,96(13) - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - LR 2,5 ==> stat - A 2,=F'61' - ST 2,88(13) - MVC 92(4,13),=A(@@LC4) - LH 2,18(6) ==> .modlines - N 2,=XL4'0000FFFF' - ST 2,96(13) - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - SLR 3,3 ==> i - CLI 20(6),64 ==> .userid - BNH @@L18 -@@L22 EQU * - IC 2,20(6,3) ==> .userid - STC 2,67(3,5) ==> .userid - A 3,=F'1' ==> i - LA 4,7(0,0) - CR 3,4 ==> i - BH @@L18 - IC 2,20(6,3) ==> .userid - CLM 2,1,=XL1'40' - BH @@L22 -@@L18 EQU * - SLR 15,15 ==> rc -@@L5 EQU * -* Function '__fmtisp' epilogue - PDPEPIL -* Function '__fmtisp' literal pool - DS 0D - LTORG -* Function '__fmtisp' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%06X' - DC X'0' -@@LC1 EQU * - DC C'%02u.%02u' - DC X'0' -@@LC2 EQU * - DC C'%02u-%02u-%02u' - DC X'0' -@@LC3 EQU * - DC C'%02u-%02u-%02u %02X:%02X:%02X' - DC X'0' -@@LC4 EQU * - DC C'%u' - DC X'0' - DS 0F - EJECT -* static function 'cvtdate' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'cvtdate' -@@2 PDPPRLG CINDEX=1,FRAME=96,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'cvtdate' code - L 5,4(11) ==> date - L 4,8(11) ==> tm - SLR 3,3 ==> c - LA 2,36(0,0) ==> n - -*** MEMSET *** - LR 14,4 => target (s) ==> tm - LR 15,2 => length (n) ==> n - SLR 0,0 => source (NULL) - LR 1,3 fill character ==> c - SLL 1,24 move fill to high byte - MVCL 14,0 Set target to fill character - IC 3,0(5) ==> date - N 3,=XL4'000000FF' - SRL 3,4 - N 3,=XL4'000000FF' - LR 2,3 - SLL 2,3 - AR 2,3 - AR 2,3 - ST 2,20(4) ==> .tm_year - IC 2,0(5) ==> date - N 2,=F'15' - A 2,20(4) ==> .tm_year - ST 2,20(4) ==> .tm_year - L 2,0(11) ==> century - LTR 2,2 ==> century - BE @@L27 - L 2,20(4) ==> .tm_year - A 2,=F'100' - ST 2,20(4) ==> .tm_year -@@L27 EQU * - IC 3,1(5) - N 3,=XL4'000000FF' - SRL 3,4 - N 3,=XL4'000000FF' - LR 2,3 - SLL 2,3 - AR 2,3 - AR 2,3 - ST 2,12(4) ==> .tm_mday - IC 3,1(5) - N 3,=F'15' - AR 3,2 - LR 2,3 - SLL 2,3 - AR 2,3 - AR 2,3 - ST 2,12(4) ==> .tm_mday - IC 2,2(5) - N 2,=XL4'000000FF' - SRL 2,4 - N 2,=XL4'000000FF' - A 2,12(4) ==> .tm_mday - ST 2,12(4) ==> .tm_mday - ST 4,88(13) ==> tm - LA 1,88(,13) - L 15,=V(MKTIME) - BALR 14,15 - SLR 15,15 -* Function 'cvtdate' epilogue - PDPEPIL -* Function 'cvtdate' literal pool - DS 0D - LTORG -* Function 'cvtdate' page table -@@PGT1 DS 0F - DC A(@@PG1) - END diff --git a/src/crent370/clib/@@fmtloa.c b/src/crent370/clib/@@fmtloa.c deleted file mode 100644 index 4ea8d29..0000000 --- a/src/crent370/clib/@@fmtloa.c +++ /dev/null @@ -1,141 +0,0 @@ -/* @@FMTLOA.C */ -#include -#include -#include -#include -#include "cliblist.h" -#include "clibwto.h" - -int -__fmtloa(PDSLIST *pdslist, LOADSTAT *loadstat) -{ - int rc = -1; - LOADDATA *data = pdslist ? (LOADDATA*)pdslist->udata : 0; - LOADSTAT *stat = loadstat; - LOADS01 *s01 = 0; /* scatter */ - LOADS02 *s02 = 0; /* alias */ - LOADS03 *s03 = 0; /* SSI */ - LOADS04 *s04 = 0; /* APF */ - const char *ne = "NE"; - const char *ol = "OL"; - const char *pg = "PG"; - const char *rf = "RF"; - const char *rn = "RN"; - const char *ru = "RU"; - const char *ov = "OV"; - const char *ts = "TS"; - int i; - struct tm tm; - - if (!data) goto quit; - if (!stat) goto quit; - - memset(stat, 0, sizeof(LOADSTAT)); - - for(i=0; i < 8 && pdslist->name[i] > ' '; i++) { - stat->name[i] = pdslist->name[i]; - } - sprintf(stat->ttr, "%06X", (*(unsigned *)pdslist->ttr) >> 8); - - /* get size of PDS user data */ - rc = (pdslist->idc & PDSLIST_IDC_UDATA) * 2; - - /* do we have statistics? */ - if (!rc) goto quit; /* nope, we're done, return rc=0 */ -#if 0 - wtodumpf(data, rc, "%s LOADDATA", stat->name); -#endif - if (data->loadatr1 & LOADSCTR) { - s01 = (LOADS01*)data->loadbcend; -#if 0 - wtof("LOADSCTR %08X", s01); -#endif - } - if (pdslist->idc & PDSLIST_IDC_ALIAS) { - if (s01) { - s02 = (LOADS02*)s01->load01nd; - } - else { - s02 = (LOADS02*)data->loadbcend; - } -#if 0 - wtof("ALIAS %08X", s02); -#endif - } - if (data->loadftb1 & LOADSSI) { - if (s02) { - s03 = (LOADS03*)s02->load02nd; - } - else if (s01) { - s03 = (LOADS03*)s01->load01nd; - } - else { - s03 = (LOADS03*)data->loadbcend; - } - /* align to half word */ - s03 = (LOADS03*)(((unsigned)s03 + 1) & 0x7FFFFFFE); -#if 0 - wtof("SSI %08X", s03); -#endif - } - if (data->loadftb1 & LOADAPFLG) { - if (s03) { - s04 = (LOADS04*)s03->load03nd; - } - else if (s02) { - s04 = (LOADS04*)s02->load02nd; - } - else if (s01) { - s04 = (LOADS04*)s01->load01nd; - } - else { - s04 = (LOADS04*)data->loadbcend; - } -#if 0 - wtof("APF %08X", s04); -#endif - } - - /* format LOAD statistics */ - sprintf(stat->size, "%02X%02X%02X", - data->loadstor[0], data->loadstor[1], data->loadstor[2]); - - if (s02) { - for(i=0; i < 8 && s02->loadmnm[i] > ' '; i++) { - stat->aliasof[i] = s02->loadmnm[i]; - } - } - - if (s04) { - sprintf(stat->ac, "%02X", s04->loadapfac); - } - else { - sprintf(stat->ac, "00"); - } - - sprintf(stat->ep, "%02X%02X%02X", - data->loadepa[0], data->loadepa[1], data->loadepa[2]); - - if (data->loadatr1 & LOADEXEC) ne = " "; - if (!(data->loadatr1 & LOADLOAD)) ol = " "; - if (!(data->loadftb1 & LOADPAGA)) pg = " "; - if (!(data->loadatr2 & LOADREFR)) rf = " "; - if (!(data->loadatr1 & LOADRENT)) rn = " "; - if (!(data->loadatr1 & LOADREUS)) ru = " "; - if (!(data->loadatr1 & LOADOVLY)) ov = " "; - if (!(data->loadatr1 & LOADTEST)) ts = " "; - sprintf(stat->attr, "%s %s %s %s %s %s %s %s", - ne, ol, pg, rf, rn, ru, ov, ts); - - if (s03) { - sprintf(stat->ssi, "%02X%02X%02X%02X", - s03->loadchlvl, s03->loadssifb, - s03->loadmbrsn[0], s03->loadmbrsn[1]); - } - - /* return rc=0 */ - rc = 0; - -quit: - return rc; -} diff --git a/src/crent370/clib/@@fmtloa.o b/src/crent370/clib/@@fmtloa.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@fmtloa.s b/src/crent370/clib/@@fmtloa.s deleted file mode 100644 index cf0192f..0000000 --- a/src/crent370/clib/@@fmtloa.s +++ /dev/null @@ -1,365 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@fmtloa.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__fmtloa' prologue -* frame base=88, local stack=72, call args=40 -&FUNC SETC '__fmtloa' -@@FMTLOA PDPPRLG CINDEX=0,FRAME=200,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__fmtloa' code - L 3,0(11) ==> pdslist - L 15,=F'-1' ==> rc - LR 4,3 ==> data,pdslist - A 4,=F'12' ==> data - LTR 3,3 ==> pdslist - BNE @@L3 - SLR 4,4 ==> data -@@L3 EQU * - L 5,4(11) ==> stat,loadstat - SLR 6,6 ==> s02 - LR 8,6 ==> s01,s02 - LR 7,6 ==> s03,s02 - LR 9,6 ==> s04,s03 - MVC 168(4,13),=A(@@LC0) ==> ne - MVC 172(4,13),=A(@@LC1) ==> ol - MVC 176(4,13),=A(@@LC2) ==> pg - MVC 180(4,13),=A(@@LC3) ==> rf - MVC 184(4,13),=A(@@LC4) ==> rn - MVC 188(4,13),=A(@@LC5) ==> ru - MVC 192(4,13),=A(@@LC6) ==> ov - MVC 196(4,13),=A(@@LC7) ==> ts - LTR 4,4 ==> data - BE @@L5 - LTR 5,5 ==> stat - BE @@L5 - LA 2,75(0,0) ==> n - -*** MEMSET *** - LR 14,5 => target (s) ==> stat - LR 15,2 => length (n) ==> n - SLR 0,0 => source (NULL) - LR 1,6 fill character ==> s03 - SLL 1,24 move fill to high byte - MVCL 14,0 Set target to fill character - LR 15,6 ==> i,s03 - CLI 0(3),64 ==> .name - BNH @@L9 -@@L13 EQU * - IC 2,0(15,3) ==> .name - STC 2,0(15,5) ==> .name - A 15,=F'1' ==> i - LA 2,7(0,0) - CR 15,2 ==> i - BH @@L9 - IC 2,0(15,3) ==> .name - CLM 2,1,=XL1'40' - BH @@L13 -@@L9 EQU * - LR 2,5 ==> stat - A 2,=F'9' - ST 2,88(13) - MVC 92(4,13),=A(@@LC8) - L 2,8(3) - SRL 2,8 - ST 2,96(13) - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - IC 15,11(3) ==> .idc - N 15,=F'31' ==> rc - MH 15,=H'2' ==> rc - LTR 15,15 ==> rc - BE @@L5 - IC 2,8(4) ==> .loadatr1 - N 2,=F'4' - CLM 2,1,=XL1'00' - BE @@L15 - LR 8,4 ==> s01,data - A 8,=F'21' ==> s01 -@@L15 EQU * - IC 2,11(3) ==> .idc - N 2,=F'-128' - CLM 2,1,=XL1'00' - BE @@L16 - LR 6,8 ==> s02,s01 - A 6,=F'8' ==> s02 - LTR 8,8 ==> s01 - BNE @@L16 - LR 6,4 ==> s02,data - A 6,=F'21' ==> s02 -@@L16 EQU * - IC 2,18(4) ==> .loadftb1 - N 2,=F'16' - CLM 2,1,=XL1'00' - BE @@L19 - LR 7,6 ==> s03,s02 - A 7,=F'11' ==> s03 - LTR 6,6 ==> s02 - BNE @@L21 - LR 7,8 ==> s03,s01 - A 7,=F'8' ==> s03 - LTR 8,8 ==> s01 - BNE @@L21 - LR 7,4 ==> s03,data - A 7,=F'21' ==> s03 -@@L21 EQU * - A 7,=F'1' ==> s03 - N 7,=F'2147483646' ==> s03 -@@L19 EQU * - IC 2,18(4) ==> .loadftb1 - N 2,=F'8' - CLM 2,1,=XL1'00' - BE @@L24 - LR 9,7 ==> s04,s03 - A 9,=F'4' ==> s04 - LTR 7,7 ==> s03 - BNE @@L24 - LR 9,6 ==> s04,s02 - A 9,=F'11' ==> s04 - LTR 6,6 ==> s02 - BNE @@L24 - LR 9,8 ==> s04,s01 - A 9,=F'8' ==> s04 - LTR 8,8 ==> s01 - BNE @@L24 - LR 9,4 ==> s04,data - A 9,=F'21' ==> s04 -@@L24 EQU * - LR 2,5 ==> stat - A 2,=F'16' - ST 2,88(13) - MVC 92(4,13),=A(@@LC9) - SLR 2,2 - IC 2,10(4) ==> .loadstor - ST 2,96(13) - SLR 2,2 - IC 2,11(4) ==> .loadstor - ST 2,100(13) - SLR 2,2 - IC 2,12(4) ==> .loadstor - ST 2,104(13) - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - LTR 6,6 ==> s02 - BE @@L31 - SLR 15,15 ==> i - CLI 3(6),64 ==> .loadmnm - BNH @@L31 -@@L37 EQU * - IC 2,3(15,6) ==> .loadmnm - STC 2,23(15,5) ==> .aliasof - A 15,=F'1' ==> i - LA 2,7(0,0) - CR 15,2 ==> i - BH @@L31 - IC 2,3(15,6) ==> .loadmnm - CLM 2,1,=XL1'40' - BH @@L37 -@@L31 EQU * - LTR 9,9 ==> s04 - BE @@L38 - LR 2,5 ==> stat - A 2,=F'32' - ST 2,88(13) - MVC 92(4,13),=A(@@LC10) - SLR 2,2 - IC 2,1(9) ==> .loadapfac - ST 2,96(13) - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - B @@L39 -@@L38 EQU * - LR 2,5 ==> stat - A 2,=F'32' - ST 2,88(13) - MVC 92(4,13),=A(@@LC11) - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 -@@L39 EQU * - LR 2,5 ==> stat - A 2,=F'35' - ST 2,88(13) - MVC 92(4,13),=A(@@LC9) - SLR 2,2 - IC 2,15(4) ==> .loadepa - ST 2,96(13) - SLR 2,2 - IC 2,16(4) ==> .loadepa - ST 2,100(13) - SLR 2,2 - IC 2,17(4) ==> .loadepa - ST 2,104(13) - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - IC 2,8(4) ==> .loadatr1 - N 2,=F'2' - CLM 2,1,=XL1'00' - BE @@L40 - MVC 168(4,13),=A(@@LC12) ==> ne -@@L40 EQU * - IC 2,8(4) ==> .loadatr1 - N 2,=F'8' - CLM 2,1,=XL1'00' - BNE @@L41 - MVC 172(4,13),=A(@@LC12) ==> ol -@@L41 EQU * - IC 2,18(4) ==> .loadftb1 - N 2,=F'32' - CLM 2,1,=XL1'00' - BNE @@L42 - MVC 176(4,13),=A(@@LC12) ==> pg -@@L42 EQU * - IC 2,9(4) ==> .loadatr2 - N 2,=F'1' - CLM 2,1,=XL1'00' - BNE @@L43 - MVC 180(4,13),=A(@@LC12) ==> rf -@@L43 EQU * - IC 2,8(4) ==> .loadatr1 - N 2,=F'-128' - CLM 2,1,=XL1'00' - BNE @@L44 - MVC 184(4,13),=A(@@LC12) ==> rn -@@L44 EQU * - IC 2,8(4) ==> .loadatr1 - N 2,=F'64' - CLM 2,1,=XL1'00' - BNE @@L45 - MVC 188(4,13),=A(@@LC12) ==> ru -@@L45 EQU * - IC 2,8(4) ==> .loadatr1 - N 2,=F'32' - CLM 2,1,=XL1'00' - BNE @@L46 - MVC 192(4,13),=A(@@LC12) ==> ov -@@L46 EQU * - IC 2,8(4) ==> .loadatr1 - N 2,=F'16' - CLM 2,1,=XL1'00' - BNE @@L47 - MVC 196(4,13),=A(@@LC12) ==> ts -@@L47 EQU * - LR 2,5 ==> stat - A 2,=F'42' - ST 2,88(13) - MVC 92(4,13),=A(@@LC13) - MVC 96(4,13),168(13) ==> ne - MVC 100(4,13),172(13) ==> ol - MVC 104(4,13),176(13) ==> pg - MVC 108(4,13),180(13) ==> rf - MVC 112(4,13),184(13) ==> rn - MVC 116(4,13),188(13) ==> ru - MVC 120(4,13),192(13) ==> ov - MVC 124(4,13),196(13) ==> ts - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - LTR 7,7 ==> s03 - BE @@L48 - A 2,=F'24' - ST 2,88(13) - MVC 92(4,13),=A(@@LC14) - SLR 2,2 - IC 2,0(7) ==> .loadchlvl - ST 2,96(13) - SLR 2,2 - IC 2,1(7) ==> .loadssifb - ST 2,100(13) - SLR 2,2 - IC 2,2(7) ==> .loadmbrsn - ST 2,104(13) - SLR 2,2 - IC 2,3(7) ==> .loadmbrsn - ST 2,108(13) - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 -@@L48 EQU * - SLR 15,15 ==> rc -@@L5 EQU * -* Function '__fmtloa' epilogue - PDPEPIL -* Function '__fmtloa' literal pool - DS 0D - LTORG -* Function '__fmtloa' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'NE' - DC X'0' -@@LC1 EQU * - DC C'OL' - DC X'0' -@@LC2 EQU * - DC C'PG' - DC X'0' -@@LC3 EQU * - DC C'RF' - DC X'0' -@@LC4 EQU * - DC C'RN' - DC X'0' -@@LC5 EQU * - DC C'RU' - DC X'0' -@@LC6 EQU * - DC C'OV' - DC X'0' -@@LC7 EQU * - DC C'TS' - DC X'0' -@@LC8 EQU * - DC C'%06X' - DC X'0' -@@LC9 EQU * - DC C'%02X%02X%02X' - DC X'0' -@@LC10 EQU * - DC C'%02X' - DC X'0' -@@LC11 EQU * - DC C'00' - DC X'0' -@@LC12 EQU * - DC C' ' - DC X'0' -@@LC13 EQU * - DC C'%s %s %s %s %s %s %s %s' - DC X'0' -@@LC14 EQU * - DC C'%02X%02X%02X%02X' - DC X'0' - END diff --git a/src/crent370/clib/@@fndcde.c b/src/crent370/clib/@@fndcde.c deleted file mode 100644 index 3b29a70..0000000 --- a/src/crent370/clib/@@fndcde.c +++ /dev/null @@ -1,27 +0,0 @@ -#include - -__asm__("\n&FUNC SETC 'clib_find_cde'"); -CDE * -clib_find_cde(const char *name) -{ - unsigned *psa = 0; /* low core == PSA */ - unsigned *tcb = (unsigned*)psa[0x21c/4]; /* TCB == PSATOLD */ - unsigned *jstcb = (unsigned*)tcb[0x7c/4]; /* JSTCB == TCBJSTCB */ - CDE *cde = (CDE*)jstcb[0x2c/4]; /* CDE == TCBJPQ */ - int i; - char temp[9] = " "; - - for(i=0; i < 8 && name[i]; i++) { - temp[i] = name[i]; - } - - while(cde) { - if (memcmp(cde->CDNAME, temp, 8)==0) { - return cde; - break; - } - cde = cde->CDCHAIN; - } - - return NULL; -} diff --git a/src/crent370/clib/@@fndcde.o b/src/crent370/clib/@@fndcde.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@fndcde.s b/src/crent370/clib/@@fndcde.s deleted file mode 100644 index 0b627a6..0000000 --- a/src/crent370/clib/@@fndcde.s +++ /dev/null @@ -1,96 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@fndcde.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'clib_find_cde' -* Program text area - DS 0F - EJECT -* external function 'clib_find_cde' prologue -* frame base=88, local stack=16, call args=16 -&FUNC SETC 'clib_find_cde' -@@FNDCDE PDPPRLG CINDEX=0,FRAME=120,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'clib_find_cde' code - L 15,0(11) ==> name - SLR 3,3 ==> psa - L 2,540(3) ==> tcb - L 2,124(2) ==> jstcb - L 4,44(2) ==> cde - L 2,=A(@@LC0) - MVC 104(9,13),0(2) ==> temp - IC 2,0(15) ==> name - SLL 2,24 - SRA 2,24 - C 2,=F'0' - BE @@L3 -@@L7 EQU * - IC 2,0(3,15) ==> i - STC 2,104(13,3) ==> temp - A 3,=F'1' ==> i - LA 2,7(0,0) - CR 3,2 ==> i - BH @@L3 - IC 2,0(3,15) ==> i - CLM 2,1,=XL1'00' - BNE @@L7 -@@L3 EQU * - LTR 4,4 ==> cde - BE @@L15 - LA 3,104(,13) -@@L12 EQU * - LR 2,4 ==> cde - A 2,=F'8' - ST 2,88(13) - ST 3,92(13) - MVC 96(4,13),=F'8' - LA 1,88(,13) - L 15,=V(MEMCMP) - BALR 14,15 - LR 2,4 ==> cde - LTR 15,15 ==> cde - BE @@L1 - L 4,0(4) ==> cde,CDCHAIN - LTR 4,4 ==> cde - BNE @@L12 -@@L15 EQU * - SLR 2,2 ==> cde -@@L1 EQU * - LR 15,2 ==> cde -* Function 'clib_find_cde' epilogue - PDPEPIL -* Function 'clib_find_cde' literal pool - DS 0D - LTORG -* Function 'clib_find_cde' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C' ' - DC X'0' - END diff --git a/src/crent370/clib/@@fpfree.c b/src/crent370/clib/@@fpfree.c deleted file mode 100644 index 24ba835..0000000 --- a/src/crent370/clib/@@fpfree.c +++ /dev/null @@ -1,52 +0,0 @@ -/* @@FPFREE.C */ -#include -#include -#include -#include -#include -#include "svc99.h" -#include "clibary.h" - -int -__fpfree(FILE *fp) -{ - int err = 1; - unsigned count = 0; - TXT99 **txt99 = NULL; - RB99 rb99 = {0}; - - // wtof("%s: fp=%p fp->ddname=\"%s\"", __func__, fp, fp->ddname); - - /* this DDNAME */ - err = __txddn(&txt99, fp->ddname); - // wtodumpf(txt99[0], sizeof(TXT99)+8, "%s: txt99 ddname", __func__); - if (err) goto quit; - - /* unallocate */ - err = __txunal(&txt99, NULL); - // wtodumpf(txt99[1], sizeof(TXT99), "%s: txt99 unallocate", __func__); - if (err) goto quit; - - count = arraycount(&txt99); - if (!count) goto quit; - - /* Set high order bit to mark end of list */ - count--; - txt99[count] = (TXT99*)((unsigned)txt99[count] | 0x80000000); - - /* construct the request block for dynamic allocation */ - rb99.len = sizeof(RB99); - rb99.request = S99VRBUN; - rb99.flag1 = 0; // S99NOCNV; - rb99.txtptr = txt99; - - /* SVC 99 */ - err = __svc99(&rb99); - // wtof("%s: __svc99() err=%d %p", __func__, err, err); - // wtodumpf(&rb99, sizeof(rb99), "%s: RB99", __func__); - -quit: - if (txt99) FreeTXT99Array(&txt99); - - return err; -} diff --git a/src/crent370/clib/@@fpfree.o b/src/crent370/clib/@@fpfree.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@fpfree.s b/src/crent370/clib/@@fpfree.s deleted file mode 100644 index 01b63bd..0000000 --- a/src/crent370/clib/@@fpfree.s +++ /dev/null @@ -1,108 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@fpfree.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__fpfree' prologue -* frame base=88, local stack=32, call args=8 -&FUNC SETC '__fpfree' -@@FPFREE PDPPRLG CINDEX=0,FRAME=128,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__fpfree' code - SLR 15,15 ==> count - ST 15,120(13) ==> count - LA 4,96(,13) - LA 5,20(0,0) - LR 2,15 ==> count - LR 3,15 ==> count - MVCL 4,2 ==> count - LA 2,120(,13) - ST 2,88(13) - L 2,0(11) ==> fp - A 2,=F'43' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@TXDDN) - BALR 14,15 - LR 5,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LA 2,120(,13) - ST 2,88(13) - ST 15,92(13) ==> err - LA 1,88(,13) - L 15,=V(@@TXUNAL) - BALR 14,15 - LR 5,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LA 2,120(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LTR 15,15 ==> count - BE @@L3 - BCTR 15,0 ==> count - L 4,120(13) - LR 3,15 ==> count - MH 3,=H'4' - L 2,0(3,4) - O 2,=F'-2147483648' - ST 2,0(3,4) - MVI 96(13),20 ==> .len - MVI 97(13),2 ==> .request - STC 5,98(13) ==> err,flag1 - MVC 104(4,13),120(13) ==> .txtptr - LA 2,96(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@SVC99) - BALR 14,15 - LR 5,15 ==> err -@@L3 EQU * - L 2,120(13) - LTR 2,2 - BE @@L6 - LA 2,120(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@FRTX9A) - BALR 14,15 -@@L6 EQU * - LR 15,5 ==> err -* Function '__fpfree' epilogue - PDPEPIL -* Function '__fpfree' literal pool - DS 0D - LTORG -* Function '__fpfree' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@fpmode.c b/src/crent370/clib/@@fpmode.c deleted file mode 100644 index f29825b..0000000 --- a/src/crent370/clib/@@fpmode.c +++ /dev/null @@ -1,64 +0,0 @@ -/* @@FPMODE.C */ -#include -#include -#include -#include - -int -__fpmode(FILE *fp, const char *mode) -{ - int err = 1; - int i; - int j; - - /* mode="(r|w)[b][+][,][record]" */ - /* no support for READ+WRITE, so error in that case */ - memset(fp->mode, 0, sizeof(fp->mode)); - for(i=0;i < sizeof(fp->mode) && *mode; i++, mode++) { - fp->mode[i] = tolower(*mode); - switch (fp->mode[i]) { - case 'a': - if (fp->flags & _FILE_FLAG_READ) goto quit; - fp->flags |= _FILE_FLAG_WRITE; - fp->flags |= _FILE_FLAG_APPEND; - break; - case 'b': - fp->flags |= _FILE_FLAG_BINARY; - break; - case 'r': - if (fp->flags & _FILE_FLAG_WRITE) goto quit; - if (fp->flags & _FILE_FLAG_APPEND) goto quit; - fp->flags |= _FILE_FLAG_READ; - break; - case 'w': - if (fp->flags & _FILE_FLAG_READ) goto quit; - fp->flags |= _FILE_FLAG_WRITE; - break; - case '+': - goto quit; - case ',': - /* copy remaining mode string to file handle mode */ - for(j=i; j < sizeof(fp->mode) && *mode; j++) { - fp->mode[j] = tolower(*mode++); - } - if (strstr(&fp->mode[i],"record")) { - /* wtof("__fpmode found record"); */ - fp->flags |= _FILE_FLAG_RECORD; - } - if (strstr(&fp->mode[i],"bsam")) { - /* wtof("__fpmode found bsam"); */ - fp->flags |= _FILE_FLAG_BSAM; - } - goto check; - } - } - -check: - if ((fp->flags & _FILE_FLAG_READ) || (fp->flags & _FILE_FLAG_WRITE)) { - /* success */ - err = 0; - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@fpmode.o b/src/crent370/clib/@@fpmode.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@fpmode.s b/src/crent370/clib/@@fpmode.s deleted file mode 100644 index 911b489..0000000 --- a/src/crent370/clib/@@fpmode.s +++ /dev/null @@ -1,205 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@fpmode.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__fpmode' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC '__fpmode' -@@FPMODE PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__fpmode' code - L 6,0(11) ==> fp - L 5,4(11) ==> mode - LA 7,1(0,0) ==> err - LR 4,6 ==> s,fp - A 4,=F'106' ==> s - SLR 3,3 ==> c - LA 2,86(0,0) ==> n - -*** MEMSET *** - LR 14,4 => target (s) ==> s - LR 15,2 => length (n) ==> n - SLR 0,0 => source (NULL) - LR 1,3 fill character ==> c - SLL 1,24 move fill to high byte - MVCL 14,0 Set target to fill character - LR 4,3 ==> i,c - IC 2,0(5) ==> mode - CLM 2,1,=XL1'00' - BE @@L28 -@@L33 EQU * - SLR 2,2 - IC 2,0(5) ==> mode - L 3,=V(@@TOLOW) - L 3,0(3) ==> __tolow - MH 2,=H'2' - IC 3,1(2,3) - STC 3,106(6,4) ==> .mode - SLR 2,2 - IC 2,106(6,4) ==> .mode - LA 3,129(0,0) - CR 2,3 - BE @@L9 - BH @@L31 - LA 3,78(0,0) - CLR 2,3 - BE @@L11 - LA 3,107(0,0) - CLR 2,3 - BE @@L19 - B @@L5 -@@L31 EQU * - LA 3,153(0,0) - CR 2,3 - BE @@L13 - BH @@L32 - LA 3,130(0,0) - CLR 2,3 - BE @@L12 - B @@L5 -@@L32 EQU * - LA 3,166(0,0) - CLR 2,3 - BE @@L16 - B @@L5 -@@L9 EQU * - LH 3,40(6) ==> .flags - LR 2,3 - N 2,=F'8192' - O 3,=F'6144' - CH 2,=H'0' - BE @@L37 - B @@L11 -@@L12 EQU * - OC 40(2,6),=H'1024' ==> .flags - B @@L5 -@@L13 EQU * - LH 3,40(6) ==> .flags - LR 2,3 - N 2,=F'4096' - CH 2,=H'0' - BNE @@L11 - LR 2,3 - N 2,=F'2048' - O 3,=F'8192' - CH 2,=H'0' - BE @@L37 - B @@L11 -@@L16 EQU * - LH 3,40(6) ==> .flags - LR 2,3 - N 2,=F'8192' - CH 2,=H'0' - BNE @@L11 - O 3,=F'4096' -@@L37 EQU * - STH 3,40(6) ==> .flags - B @@L5 -@@L19 EQU * - LR 15,4 ==> j,i - LA 2,85(0,0) - CLR 4,2 ==> i - BH @@L21 - IC 2,0(5) ==> mode - CLM 2,1,=XL1'00' - BE @@L21 - L 8,=V(@@TOLOW) -@@L25 EQU * - SLR 2,2 - IC 2,0(5) ==> mode - L 3,0(8) ==> __tolow - MH 2,=H'2' - IC 3,1(2,3) - STC 3,106(6,15) ==> .mode - A 5,=F'1' ==> mode - A 15,=F'1' ==> j - LA 3,85(0,0) - CLR 15,3 ==> j - BH @@L21 - IC 2,0(5) ==> mode - CLM 2,1,=XL1'00' - BNE @@L25 -@@L21 EQU * - LR 2,6 ==> fp - AR 2,4 ==> i - A 2,=F'106' - ST 2,88(13) - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(STRSTR) - BALR 14,15 - LTR 15,15 ==> err - BE @@L26 - OC 40(2,6),=H'512' ==> .flags -@@L26 EQU * - LR 2,6 ==> fp - AR 2,4 ==> i - A 2,=F'106' - ST 2,88(13) - MVC 92(4,13),=A(@@LC1) - LA 1,88(,13) - L 15,=V(STRSTR) - BALR 14,15 - LTR 15,15 ==> err - BE @@L28 - OC 40(2,6),=H'256' ==> .flags - B @@L28 -@@L5 EQU * - A 4,=F'1' ==> i - A 5,=F'1' ==> mode - LA 2,85(0,0) - CLR 4,2 ==> i - BH @@L28 - IC 2,0(5) ==> mode - CLM 2,1,=XL1'00' - BNE @@L33 -@@L28 EQU * - L 2,40(6) - N 2,=F'805306368' - LTR 2,2 - BE @@L11 - SLR 7,7 ==> err -@@L11 EQU * - LR 15,7 ==> err -* Function '__fpmode' epilogue - PDPEPIL -* Function '__fpmode' literal pool - DS 0D - LTORG -* Function '__fpmode' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'record' - DC X'0' -@@LC1 EQU * - DC C'bsam' - DC X'0' - END diff --git a/src/crent370/clib/@@fpnew.c b/src/crent370/clib/@@fpnew.c deleted file mode 100644 index 84381b4..0000000 --- a/src/crent370/clib/@@fpnew.c +++ /dev/null @@ -1,167 +0,0 @@ -/* @@FPNEW.C */ -#include -#include -#include -#include -#include -#include "svc99.h" -#include "clibary.h" - -int -__fpnew(FILE *fp) -{ - int err = 1; - unsigned count = 0; - char *recfm = getenv("DATASET_RECFM"); - char *lrecl = getenv("DATASET_LRECL"); - char *blksize= getenv("DATASET_BLKSIZE"); - char *space = getenv("DATASET_SPACE"); - char *p = 0; - char *t; - TXT99 **txt99 = NULL; - RB99 rb99 = {0}; - char temp[sizeof(fp->mode)+1]; - - // wtof("%s: enter", __func__); - - memset(temp, 0, sizeof(temp)); - strcpy(temp, fp->mode); - - /* we want to convert our mode string "w,record,name=(val1,val2),..." - * to something like "w;record;name=val1,val2;..." - */ - // wtof("%s: fp->mode=\"%s\"", __func__, fp->mode); - for(p=temp; *p; p++) { - if (*p=='(') { - if (*(p-1) != '=') { - /* convert "TRK(n,n)" to "TRK=n,n" - * or "nnnn(n,n)" to "nnnn=n,n" */ - *p = '='; - } - else { - /* convert "name=(val1,val2)..." to "name=val1,val2..." */ - strcpy(p, p+1); - } - for(p++;*p; p++) { - if (*p==')') { - strcpy(p,p+1); - break; - } - } - } - - if (*p==',') *p = ';'; - else *p = toupper(*p); - } - // wtof("%s: mode=\"%s\"", __func__, temp); - - for(p=strtok(temp, ";"); p; p=strtok(NULL, ";")) { - if (strstr(p, "RECFM=")) recfm = p+6; - else if (strstr(p, "LRECL=")) lrecl = p+6; - else if (strstr(p, "BLKSIZE=")) blksize = p+8; - else if (strstr(p, "SPACE=")) space = p+6; - } - -#if 0 /* debugging */ - wtof("%s: recfm=\"%s\"", __func__, recfm); - wtof("%s: lrecl=\"%s\"", __func__, lrecl); - wtof("%s: blksize=\"%s\"", __func__, blksize); - wtof("%s: space=\"%s\"", __func__, space); -#endif - - /* we want the DDNAME returned to us */ - err = __txrddn(&txt99, NULL); - if (err) goto quit; - - /* allocate this dataset */ - err = __txdsn(&txt99, fp->dataset); - if (err) goto quit; - - /* DISP=NEW */ - err = __txnew(&txt99, NULL); - if (err) goto quit; - - /* DISP=,CATALOG */ - err = __txcat(&txt99, NULL); - if (err) goto quit; - - /* DSORG=PS */ - err = __txorg(&txt99, "PS"); - if (err) goto quit; - - /* get record format */ - if (!recfm) recfm = "V"; - err = __txrecf(&txt99, recfm); - if (err) goto quit; - - /* get logical record length */ - if (!lrecl) lrecl = "255"; - err = __txlrec(&txt99, lrecl); - // wtof("%s: __txlrec(&txt99, \"%s\") err=%d", __func__, lrecl, err); - if (err) goto quit; - - if (strchr(recfm, 'B')) { - /* get optional block size */ - if (blksize) { - err = __txbksz(&txt99, blksize); - // wtof("%s: __txbksz(&txt99, \"%s\") err=%d", __func__, blksize, err); - if (err) goto quit; - } - } - - /* get optional space "[CYL|TRK],pri[,sec]," or "blksize,pri[,sec]," */ - if (space) { - if (memcmp(space, "CYL=", 4)==0) { - /* CYLINDERS */ - err = __txcyl(&txt99, NULL); - // wtof("%s: __txcyl(&txt99, NULL) err=%d", __func__, err); - space += 4; - } - else if (memcmp(space, "TRK=", 4)==0) { - /* TRACKS */ - err = __txtrk(&txt99, NULL); - // wtof("%s: __txtrk(&txt99, NULL) err=%d", __func__, err); - space += 4; - } - else { - /* BLOCKS */ - char *x = strchr(space, '='); - if (x) *x = 0; - err = __txblk(&txt99, space); - // wtof("%s: __txblk(&txt99, \"%s\") err=%d", __func__, space, err); - if (x) space = x+1; - } - - while(*space && !isdigit(*space)) space++; - err = __txspac(&txt99, space); /* "pri[,sec]" */ - // wtof("%s: __txspac(&txt99, \"%s\") err=%d", __func__, space, err); - if (err) goto quit; - } - - count = arraycount(&txt99); - if (!count) goto quit; - - /* Set high order bit to mark end of list */ - count--; - txt99[count] = (TXT99*)((unsigned)txt99[count] | 0x80000000); - - /* construct the request block for dynamic allocation */ - rb99.len = sizeof(RB99); - rb99.request = S99VRBAL; - rb99.flag1 = S99NOCNV; - rb99.txtptr = txt99; - - /* SVC 99 */ - err = __svc99(&rb99); - if (err) goto quit; - - /* return DDNAME */ - memcpy(fp->ddname, txt99[0]->text, 8); - fp->flags |= _FILE_FLAG_DYNAMIC; - -quit: - if (txt99) FreeTXT99Array(&txt99); - - // wtof("%s: exit err=%d", __func__, err); - return err; -} diff --git a/src/crent370/clib/@@fpnew.o b/src/crent370/clib/@@fpnew.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@fpnew.s b/src/crent370/clib/@@fpnew.s deleted file mode 100644 index 69e3580..0000000 --- a/src/crent370/clib/@@fpnew.s +++ /dev/null @@ -1,493 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@fpnew.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__fpnew' prologue -* frame base=88, local stack=120, call args=16 -&FUNC SETC '__fpnew' -@@FPNEW PDPPRLG CINDEX=0,FRAME=224,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__fpnew' code - SLR 6,6 ==> count - MVC 88(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(GETENV) - BALR 14,15 - LR 7,15 ==> recfm - MVC 88(4,13),=A(@@LC1) - LA 1,88(,13) - L 15,=V(GETENV) - BALR 14,15 - LR 8,15 ==> lrecl - MVC 88(4,13),=A(@@LC2) - LA 1,88(,13) - L 15,=V(GETENV) - BALR 14,15 - ST 15,220(13) ==> blksize - MVC 88(4,13),=A(@@LC3) - LA 1,88(,13) - L 15,=V(GETENV) - BALR 14,15 - LR 9,15 ==> space - ST 6,216(13) ==> count - LA 4,104(,13) - LA 5,20(0,0) - LR 2,6 ==> count - LR 3,6 ==> count - MVCL 4,2 ==> count - LA 3,128(,13) ==> s - LA 2,87(0,0) ==> n - -*** MEMSET *** - LR 14,3 => target (s) ==> s - LR 15,2 => length (n) ==> n - SLR 0,0 => source (NULL) - LR 1,6 fill character ==> count - SLL 1,24 move fill to high byte - MVCL 14,0 Set target to fill character - ST 3,88(13) ==> s - L 2,0(11) ==> fp - A 2,=F'106' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - LR 4,3 ==> p,s - IC 2,0(3) ==> p - CLM 2,1,=XL1'00' - BE @@L61 -@@L18 EQU * - CLI 0(4),77 ==> p - BNE @@L7 - LR 2,4 ==> p - BCTR 2,0 - CLI 0(2),126 - BE @@L8 - MVI 0(4),126 ==> p - B @@L9 -@@L66 EQU * - ST 4,88(13) ==> p - LR 2,4 ==> p - A 2,=F'1' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - B @@L7 -@@L8 EQU * - ST 4,88(13) ==> p - LR 2,4 ==> p - A 2,=F'1' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 -@@L9 EQU * - A 4,=F'1' ==> p - IC 2,0(4) ==> p - CLM 2,1,=XL1'00' - BE @@L7 -@@L15 EQU * - CLI 0(4),93 ==> p - BE @@L66 - A 4,=F'1' ==> p - IC 2,0(4) ==> p - CLM 2,1,=XL1'00' - BNE @@L15 -@@L7 EQU * - CLI 0(4),107 ==> p - BNE @@L16 - MVI 0(4),94 ==> p - B @@L5 -@@L16 EQU * - SLR 2,2 - IC 2,0(4) ==> p - L 3,=V(@@TOUP) - L 3,0(3) ==> __toup - MH 2,=H'2' - IC 3,1(2,3) - STC 3,0(4) ==> p -@@L5 EQU * - A 4,=F'1' ==> p - IC 2,0(4) ==> p - CLM 2,1,=XL1'00' - BNE @@L18 -@@L61 EQU * - LA 2,128(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC4) - LA 1,88(,13) - L 15,=V(STRTOK) - BALR 14,15 - LR 4,15 ==> p - LTR 15,15 ==> p - BE @@L64 -@@L30 EQU * - ST 4,88(13) ==> p - MVC 92(4,13),=A(@@LC5) - LA 1,88(,13) - L 15,=V(STRSTR) - BALR 14,15 - LTR 15,15 ==> recfm - BE @@L23 - LR 7,4 ==> recfm,p - A 7,=F'6' ==> recfm - B @@L21 -@@L23 EQU * - ST 4,88(13) ==> p - MVC 92(4,13),=A(@@LC6) - LA 1,88(,13) - L 15,=V(STRSTR) - BALR 14,15 - LTR 15,15 ==> recfm - BE @@L25 - LR 8,4 ==> lrecl,p - A 8,=F'6' ==> lrecl - B @@L21 -@@L25 EQU * - ST 4,88(13) ==> p - MVC 92(4,13),=A(@@LC7) - LA 1,88(,13) - L 15,=V(STRSTR) - BALR 14,15 - LTR 15,15 ==> recfm - BE @@L27 - A 4,=F'8' ==> p - ST 4,220(13) ==> p,blksize - B @@L21 -@@L27 EQU * - ST 4,88(13) ==> p - MVC 92(4,13),=A(@@LC8) - LA 1,88(,13) - L 15,=V(STRSTR) - BALR 14,15 - LTR 15,15 ==> recfm - BE @@L21 - LR 9,4 ==> space,p - A 9,=F'6' ==> space -@@L21 EQU * - MVC 88(4,13),=F'0' - MVC 92(4,13),=A(@@LC4) - LA 1,88(,13) - L 15,=V(STRTOK) - BALR 14,15 - LR 4,15 ==> p - LTR 15,15 ==> p - BNE @@L30 -@@L64 EQU * - LA 2,216(,13) - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@TXRDDN) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L32 - LA 2,216(,13) - ST 2,88(13) - L 2,0(11) ==> fp - A 2,=F'61' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@TXDSN) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L32 - LA 2,216(,13) - ST 2,88(13) - ST 15,92(13) ==> err - LA 1,88(,13) - L 15,=V(@@TXNEW) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L32 - LA 2,216(,13) - ST 2,88(13) - ST 15,92(13) ==> err - LA 1,88(,13) - L 15,=V(@@TXCAT) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L32 - LA 2,216(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC9) - LA 1,88(,13) - L 15,=V(@@TXORG) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L32 - LTR 7,7 ==> recfm - BNE @@L37 - L 7,=A(@@LC10) ==> recfm -@@L37 EQU * - LA 2,216(,13) - ST 2,88(13) - ST 7,92(13) ==> recfm - LA 1,88(,13) - L 15,=V(@@TXRECF) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L32 - LTR 8,8 ==> lrecl - BNE @@L39 - L 8,=A(@@LC11) ==> lrecl -@@L39 EQU * - LA 2,216(,13) - ST 2,88(13) - ST 8,92(13) ==> lrecl - LA 1,88(,13) - L 15,=V(@@TXLREC) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L32 - ST 7,88(13) ==> recfm - MVC 92(4,13),=F'194' - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LTR 15,15 ==> recfm - BE @@L41 - L 2,220(13) ==> blksize - LTR 2,2 - BE @@L41 - LA 2,216(,13) - ST 2,88(13) - MVC 92(4,13),220(13) ==> blksize - LA 1,88(,13) - L 15,=V(@@TXBKSZ) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L32 -@@L41 EQU * - LTR 9,9 ==> space - BE @@L44 - ST 9,88(13) ==> space - MVC 92(4,13),=A(@@LC12) - MVC 96(4,13),=F'4' - LA 1,88(,13) - L 15,=V(MEMCMP) - BALR 14,15 - LTR 15,15 ==> recfm - BNE @@L45 - LA 2,216(,13) - ST 2,88(13) - ST 15,92(13) ==> recfm - LA 1,88(,13) - L 15,=V(@@TXCYL) - BALR 14,15 - B @@L67 -@@L45 EQU * - ST 9,88(13) ==> space - MVC 92(4,13),=A(@@LC13) - MVC 96(4,13),=F'4' - LA 1,88(,13) - L 15,=V(MEMCMP) - BALR 14,15 - LTR 15,15 ==> recfm - BNE @@L47 - LA 2,216(,13) - ST 2,88(13) - ST 15,92(13) ==> recfm - LA 1,88(,13) - L 15,=V(@@TXTRK) - BALR 14,15 -@@L67 EQU * - A 9,=F'4' ==> space - B @@L46 -@@L47 EQU * - ST 9,88(13) ==> space - MVC 92(4,13),=F'126' - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LR 3,15 ==> x - LTR 15,15 ==> x - BE @@L49 - MVI 0(15),0 ==> x -@@L49 EQU * - LA 2,216(,13) - ST 2,88(13) - ST 9,92(13) ==> space - LA 1,88(,13) - L 15,=V(@@TXBLK) - BALR 14,15 - LTR 3,3 ==> x - BE @@L46 - LR 9,3 ==> space,x - A 9,=F'1' ==> space -@@L46 EQU * - IC 2,0(9) ==> space - CLM 2,1,=XL1'00' - BE @@L52 - SLR 2,2 - IC 2,0(9) ==> space - L 3,=V(@@ISBUF) - LR 4,3 - L 3,0(3) ==> __isbuf - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'8' - CH 2,=H'0' - BNE @@L52 -@@L55 EQU * - A 9,=F'1' ==> space - IC 2,0(9) ==> space - CLM 2,1,=XL1'00' - BE @@L52 - SLR 2,2 - IC 2,0(9) ==> space - L 3,0(4) ==> __isbuf - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'8' - CH 2,=H'0' - BE @@L55 -@@L52 EQU * - LA 2,216(,13) - ST 2,88(13) - ST 9,92(13) ==> space - LA 1,88(,13) - L 15,=V(@@TXSPAC) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L32 -@@L44 EQU * - LA 2,216(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 6,15 ==> count - LTR 15,15 ==> count - BE @@L32 - BCTR 6,0 ==> count - L 4,216(13) - LR 3,6 ==> count - MH 3,=H'4' - L 2,0(3,4) - O 2,=F'-2147483648' - ST 2,0(3,4) - MVI 104(13),20 ==> .len - MVI 105(13),1 ==> .request - MVI 106(13),64 ==> .flag1 - MVC 112(4,13),216(13) ==> .txtptr - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@SVC99) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L32 - L 2,0(11) ==> fp - A 2,=F'43' - ST 2,88(13) - L 2,216(13) - L 2,0(2) - A 2,=F'6' - ST 2,92(13) - MVC 96(4,13),=F'8' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - L 2,0(11) ==> fp - OC 40(2,2),=H'-32768' ==> .flags -@@L32 EQU * - L 2,216(13) - LTR 2,2 - BE @@L59 - LA 2,216(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@FRTX9A) - BALR 14,15 -@@L59 EQU * - LR 15,3 ==> err -* Function '__fpnew' epilogue - PDPEPIL -* Function '__fpnew' literal pool - DS 0D - LTORG -* Function '__fpnew' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'DATASET_RECFM' - DC X'0' -@@LC1 EQU * - DC C'DATASET_LRECL' - DC X'0' -@@LC2 EQU * - DC C'DATASET_BLKSIZE' - DC X'0' -@@LC3 EQU * - DC C'DATASET_SPACE' - DC X'0' -@@LC4 EQU * - DC C';' - DC X'0' -@@LC5 EQU * - DC C'RECFM=' - DC X'0' -@@LC6 EQU * - DC C'LRECL=' - DC X'0' -@@LC7 EQU * - DC C'BLKSIZE=' - DC X'0' -@@LC8 EQU * - DC C'SPACE=' - DC X'0' -@@LC9 EQU * - DC C'PS' - DC X'0' -@@LC10 EQU * - DC C'V' - DC X'0' -@@LC11 EQU * - DC C'255' - DC X'0' -@@LC12 EQU * - DC C'CYL=' - DC X'0' -@@LC13 EQU * - DC C'TRK=' - DC X'0' - END diff --git a/src/crent370/clib/@@fpold.c b/src/crent370/clib/@@fpold.c deleted file mode 100644 index 3647ff9..0000000 --- a/src/crent370/clib/@@fpold.c +++ /dev/null @@ -1,55 +0,0 @@ -/* @@FPOLD.C */ -#include -#include -#include -#include -#include -#include "svc99.h" -#include "clibary.h" - -int -__fpold(FILE *fp) -{ - int err = 1; - unsigned count = 0; - TXT99 **txt99 = NULL; - RB99 rb99 = {0}; - - /* we want the DDNAME returned to us */ - err = __txrddn(&txt99, NULL); - if (err) goto quit; - - /* allocate this dataset */ - err = __txdsn(&txt99, fp->dataset); - if (err) goto quit; - - /* DISP=OLD */ - err = __txold(&txt99, NULL); - if (err) goto quit; - - count = arraycount(&txt99); - if (!count) goto quit; - - /* Set high order bit to mark end of list */ - count--; - txt99[count] = (TXT99*)((unsigned)txt99[count] | 0x80000000); - - /* construct the request block for dynamic allocation */ - rb99.len = sizeof(RB99); - rb99.request = S99VRBAL; - rb99.flag1 = S99NOCNV; - rb99.txtptr = txt99; - - /* SVC 99 */ - err = __svc99(&rb99); - if (err) goto quit; - - /* return DDNAME */ - memcpy(fp->ddname, txt99[0]->text, 8); - fp->flags |= _FILE_FLAG_DYNAMIC; - -quit: - if (txt99) FreeTXT99Array(&txt99); - - return err; -} diff --git a/src/crent370/clib/@@fpold.o b/src/crent370/clib/@@fpold.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@fpold.s b/src/crent370/clib/@@fpold.s deleted file mode 100644 index ae0814b..0000000 --- a/src/crent370/clib/@@fpold.s +++ /dev/null @@ -1,132 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@fpold.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__fpold' prologue -* frame base=88, local stack=32, call args=16 -&FUNC SETC '__fpold' -@@FPOLD PDPPRLG CINDEX=0,FRAME=136,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__fpold' code - L 6,0(11) ==> fp - SLR 15,15 ==> count - ST 15,128(13) ==> count - LA 4,104(,13) - LA 5,20(0,0) - LR 2,15 ==> count - LR 3,15 ==> count - MVCL 4,2 ==> count - LA 2,128(,13) - ST 2,88(13) - ST 15,92(13) ==> count - LA 1,88(,13) - L 15,=V(@@TXRDDN) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LA 2,128(,13) - ST 2,88(13) - LR 2,6 ==> fp - A 2,=F'61' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@TXDSN) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LA 2,128(,13) - ST 2,88(13) - ST 15,92(13) ==> err - LA 1,88(,13) - L 15,=V(@@TXOLD) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LA 2,128(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LTR 15,15 ==> count - BE @@L3 - BCTR 15,0 ==> count - L 4,128(13) - LR 3,15 ==> count - MH 3,=H'4' - L 2,0(3,4) - O 2,=F'-2147483648' - ST 2,0(3,4) - MVI 104(13),20 ==> .len - MVI 105(13),1 ==> .request - MVI 106(13),64 ==> .flag1 - MVC 112(4,13),128(13) ==> .txtptr - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@SVC99) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LR 2,6 ==> fp - A 2,=F'43' - ST 2,88(13) - L 2,128(13) - L 2,0(2) - A 2,=F'6' - ST 2,92(13) - MVC 96(4,13),=F'8' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - OC 40(2,6),=H'-32768' ==> .flags -@@L3 EQU * - L 2,128(13) - LTR 2,2 - BE @@L8 - LA 2,128(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@FRTX9A) - BALR 14,15 -@@L8 EQU * - LR 15,3 ==> err -* Function '__fpold' epilogue - PDPEPIL -* Function '__fpold' literal pool - DS 0D - LTORG -* Function '__fpold' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@fpopen.c b/src/crent370/clib/@@fpopen.c deleted file mode 100644 index 2e6aad2..0000000 --- a/src/crent370/clib/@@fpopen.c +++ /dev/null @@ -1,118 +0,0 @@ -/* @@FPOPEN.C */ -#include -#include -#include -#include -#include -#include "osdcb.h" -#include "osjfcb.h" - -__asm__("\n&FUNC SETC '__fpopen'"); -int -__fpopen(FILE *fp) -{ - int err = 1; - int i = 0; - int mode = 0; /* 0==read, 1==write */ - int recfm = 0; /* 0==fixed, 1==variable, 2==undefined */ - int lrecl = 0; - int blksize = 0; - DCB *dcb = 0; - void *asmbuf = 0; - char *pmember= 0; - JFCB *j = 0; - char ddname[8] = {0}; - char member[8] = {0}; - JFCB jfcb = {0}; - - if (!fp) goto quit; - if (!fp->ddname[0]) goto quit; - - for(i=0;i<8 && fp->ddname[i]; i++) { - ddname[i] = fp->ddname[i]; - } - for(;i<8; i++) ddname[i] = ' '; - - if (fp->flags & _FILE_FLAG_WRITE) mode = mode + 1; - if (fp->flags & _FILE_FLAG_BSAM) mode = mode + 8; - - if (fp->member[0] > ' ') { - for(i=0;i<8 && fp->member[i];i++) { - member[i] = fp->member[i]; - } - for(;i<8;i++) { - member[i] = ' '; - } - pmember = member; - } - - switch(fp->recfm & _FILE_RECFM_TYPE) { - case _FILE_RECFM_F: /* ... FIXED RECORD LENGTH */ - recfm = 0; - break; - case _FILE_RECFM_V: /* ... VARIABLE RECORD LENGTH */ - recfm = 1; - break; - case _FILE_RECFM_U: /* ... UNDEFINED RECORD LENGTH */ - recfm = 2; - break; - } - - lrecl = fp->lrecl; - blksize = fp->blksize; - - /* open dataset */ - fp->dcb = __aopen(ddname, &mode, &recfm, &lrecl, - &blksize, &asmbuf, pmember); - - if ((int)fp->dcb < 0) goto quit; - - /* success */ - fp->flags |= _FILE_FLAG_OPEN; - fp->asmbuf = asmbuf; - fp->ungetch = -1; - - /* get the recfm, lrecl, and blksize from the DCB */ - dcb = fp->dcb; - fp->recfm = dcb->dcbrecfm; - fp->lrecl = dcb->dcblrecl; - fp->blksize = dcb->dcbblksi; - - if (!(fp->flags & _FILE_FLAG_RECORD)) { - /* not record oriented i/o */ - /* allocate file handle data buffer */ - switch(fp->recfm & _FILE_RECFM_TYPE) { - case _FILE_RECFM_F: i = fp->lrecl; break; - case _FILE_RECFM_V: i = fp->lrecl - 4; break; - case _FILE_RECFM_U: i = fp->blksize; break; - } - fp->buf = calloc(1, i + 8); - if (!fp->buf) goto quit; - - if (fp->flags & _FILE_FLAG_WRITE) { - /* set file handle buffer pointers */ - fp->upto = fp->buf; - fp->endbuf = fp->buf + i; - } - } - - /* read JFCB to get the dataset name */ - err = __rdjfcb(fp->dcb, &jfcb); - if (err) goto quit; -#if 0 - wtodumpf(&jfcb, sizeof(jfcb), "__fpopen:jscb"); -#endif - if (jfcb.jfcbdsnm[0] > ' ') { - for(i=0; i < 44 && jfcb.jfcbdsnm[i] > ' '; i++) { - fp->dataset[i] = jfcb.jfcbdsnm[i]; - } - fp->dataset[i] = 0; - } -#if 0 - wtof("__fpopen: jfcb.jfcdsrg1=0x%02X dcb->dcbdsrg1=0x%02X", - jfcb.jfcdsrg1, dcb->dcbdsrg1); -#endif - -quit: - return err; -} diff --git a/src/crent370/clib/@@fpopen.o b/src/crent370/clib/@@fpopen.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@fpopen.s b/src/crent370/clib/@@fpopen.s deleted file mode 100644 index 0d9f7c6..0000000 --- a/src/crent370/clib/@@fpopen.s +++ /dev/null @@ -1,285 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@fpopen.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__fpopen' -* Program text area - DS 0F - EJECT -* external function '__fpopen' prologue -* frame base=88, local stack=216, call args=32 -&FUNC SETC '__fpopen' -@@FPOPEN PDPPRLG CINDEX=0,FRAME=336,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__fpopen' code - L 7,0(11) ==> fp - LA 8,1(0,0) ==> err - SLR 6,6 ==> i - ST 6,312(13) ==> i - ST 6,316(13) ==> i - ST 6,320(13) ==> i - ST 6,324(13) ==> i - ST 6,328(13) ==> i - LR 15,6 ==> pmember,i - MVC 296(8,13),=F'0' - MVC 304(8,13),=F'0' - LA 4,120(,13) - LA 5,176(0,0) - LR 2,6 ==> i - LR 3,6 ==> i - MVCL 4,2 ==> i - LTR 7,7 ==> fp - BE @@L3 - IC 2,43(7) ==> .ddname - SLL 2,24 - SRA 2,24 - C 2,=F'0' - BE @@L3 - LA 3,296(,13) -@@L10 EQU * - IC 2,43(7,6) ==> .ddname - STC 2,0(3,6) ==> ddname - A 6,=F'1' ==> i - LA 2,7(0,0) - CR 6,2 ==> i - BH @@L6 - IC 2,43(7,6) ==> .ddname - SLL 2,24 - SRA 2,24 - C 2,=F'0' - BNE @@L10 -@@L6 EQU * - LA 3,7(0,0) - CR 6,3 ==> i - BH @@L58 - LA 2,296(,13) -@@L15 EQU * - LA 3,64(0,0) - STC 3,0(2,6) ==> ddname - A 6,=F'1' ==> i - LA 3,7(0,0) - CR 6,3 ==> i - BNH @@L15 -@@L58 EQU * - LH 2,40(7) ==> .flags - N 2,=F'4096' - CH 2,=H'0' - BE @@L16 - L 2,312(13) - A 2,=F'1' - ST 2,312(13) -@@L16 EQU * - LH 2,40(7) ==> .flags - N 2,=F'256' - CH 2,=H'0' - BE @@L17 - L 2,312(13) - A 2,=F'8' - ST 2,312(13) -@@L17 EQU * - IC 2,52(7) ==> .member - CLM 2,1,=XL1'40' - BNH @@L18 - SLR 6,6 ==> i - SLL 2,24 - SRA 2,24 - C 2,=F'0' - BE @@L20 - LA 3,304(,13) -@@L24 EQU * - IC 2,52(7,6) ==> .member - STC 2,0(3,6) ==> member - A 6,=F'1' ==> i - LA 2,7(0,0) - CR 6,2 ==> i - BH @@L20 - IC 2,52(7,6) ==> .member - SLL 2,24 - SRA 2,24 - C 2,=F'0' - BNE @@L24 -@@L20 EQU * - LA 3,7(0,0) - CR 6,3 ==> i - BH @@L61 - LA 2,304(,13) -@@L29 EQU * - LA 3,64(0,0) - STC 3,0(2,6) ==> member - A 6,=F'1' ==> i - LA 3,7(0,0) - CR 6,3 ==> i - BNH @@L29 -@@L61 EQU * - LA 15,304(,13) ==> pmember -@@L18 EQU * - IC 2,42(7) ==> .recfm - N 2,=F'192' - LA 3,128(0,0) - CR 2,3 - BE @@L31 - BH @@L36 - LA 3,64(0,0) - CLR 2,3 - BE @@L32 - B @@L30 -@@L36 EQU * - LA 3,192(0,0) - CLR 2,3 - BE @@L33 - B @@L30 -@@L31 EQU * - MVC 316(4,13),=F'0' - B @@L30 -@@L32 EQU * - MVC 316(4,13),=F'1' - B @@L30 -@@L33 EQU * - MVC 316(4,13),=F'2' -@@L30 EQU * - LH 2,16(7) ==> .lrecl - N 2,=XL4'0000FFFF' - ST 2,320(13) - LH 2,18(7) ==> .blksize - N 2,=XL4'0000FFFF' - ST 2,324(13) - LA 2,296(,13) - ST 2,88(13) - LA 2,312(,13) - ST 2,92(13) - LA 2,316(,13) - ST 2,96(13) - LA 2,320(,13) - ST 2,100(13) - LA 2,324(,13) - ST 2,104(13) - LA 2,328(,13) - ST 2,108(13) - ST 15,112(13) ==> pmember - LA 1,88(,13) - L 15,=V(@@AOPEN) - BALR 14,15 - ST 15,8(7) ==> err,dcb - LTR 15,15 ==> err - BL @@L3 - LH 3,40(7) ==> .flags - O 3,=F'16384' - STH 3,40(7) ==> .flags - MVC 12(4,7),328(13) ==> .asmbuf - MVC 20(4,7),=F'-1' ==> .ungetch - MVC 42(1,7),36(15) ==> .recfm,dcbrecfm - MVC 16(2,7),82(15) ==> .lrecl,dcblrecl - MVC 18(2,7),62(15) ==> .blksize,dcbblksi - N 3,=F'512' - CH 3,=H'0' - BNE @@L38 - IC 2,42(7) ==> .recfm - N 2,=F'192' - LA 3,128(0,0) - CR 2,3 - BE @@L40 - BH @@L45 - LA 3,64(0,0) - CLR 2,3 - BE @@L41 - B @@L39 -@@L45 EQU * - LA 3,192(0,0) - CLR 2,3 - BE @@L42 - B @@L39 -@@L40 EQU * - LH 6,16(7) ==> .lrecl - B @@L63 -@@L41 EQU * - LH 6,16(7) ==> .lrecl - N 6,=XL4'0000FFFF' - A 6,=F'-4' ==> i - B @@L39 -@@L42 EQU * - LH 6,18(7) ==> .blksize -@@L63 EQU * - N 6,=XL4'0000FFFF' -@@L39 EQU * - MVC 88(4,13),=F'1' - LR 2,6 ==> i - A 2,=F'8' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - ST 15,28(7) ==> err,buf - LTR 15,15 ==> err - BE @@L3 - LH 2,40(7) ==> .flags - N 2,=F'4096' - CH 2,=H'0' - BE @@L38 - ST 15,32(7) ==> err,upto - LR 2,6 ==> i - AR 2,15 - ST 2,36(7) ==> .endbuf -@@L38 EQU * - MVC 88(4,13),8(7) ==> .dcb - LA 2,120(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@RDJFCB) - BALR 14,15 - LR 8,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - CLI 120(13),64 ==> .jfcbdsnm - BNH @@L3 - LR 6,15 ==> i,err - CLI 0(2),64 ==> .jfcbdsnm - BNH @@L51 -@@L55 EQU * - IC 2,120(13,6) ==> .jfcbdsnm - STC 2,61(7,6) ==> .dataset - A 6,=F'1' ==> i - LA 3,43(0,0) - CR 6,3 ==> i - BH @@L51 - IC 2,120(13,6) ==> .jfcbdsnm - CLM 2,1,=XL1'40' - BH @@L55 -@@L51 EQU * - SLR 2,2 - STC 2,61(7,6) ==> .dataset -@@L3 EQU * - LR 15,8 ==> err -* Function '__fpopen' epilogue - PDPEPIL -* Function '__fpopen' literal pool - DS 0D - LTORG -* Function '__fpopen' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@fpshr.c b/src/crent370/clib/@@fpshr.c deleted file mode 100644 index f73d73d..0000000 --- a/src/crent370/clib/@@fpshr.c +++ /dev/null @@ -1,55 +0,0 @@ -/* @@FPSHR.C */ -#include -#include -#include -#include -#include -#include "svc99.h" -#include "clibary.h" - -int -__fpshr(FILE *fp) -{ - int err = 1; - unsigned count = 0; - TXT99 **txt99 = NULL; - RB99 rb99 = {0}; - - /* we want the DDNAME returned to us */ - err = __txrddn(&txt99, NULL); - if (err) goto quit; - - /* allocate this dataset */ - err = __txdsn(&txt99, fp->dataset); - if (err) goto quit; - - /* DISP=SHR */ - err = __txshr(&txt99, NULL); - if (err) goto quit; - - count = arraycount(&txt99); - if (!count) goto quit; - - /* Set high order bit to mark end of list */ - count--; - txt99[count] = (TXT99*)((unsigned)txt99[count] | 0x80000000); - - /* construct the request block for dynamic allocation */ - rb99.len = sizeof(RB99); - rb99.request = S99VRBAL; - rb99.flag1 = S99NOCNV; - rb99.txtptr = txt99; - - /* SVC 99 */ - err = __svc99(&rb99); - if (err) goto quit; - - /* return DDNAME */ - memcpy(fp->ddname, txt99[0]->text, 8); - fp->flags |= _FILE_FLAG_DYNAMIC; - -quit: - if (txt99) FreeTXT99Array(&txt99); - - return err; -} diff --git a/src/crent370/clib/@@fpshr.o b/src/crent370/clib/@@fpshr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@fpshr.s b/src/crent370/clib/@@fpshr.s deleted file mode 100644 index 0570d87..0000000 --- a/src/crent370/clib/@@fpshr.s +++ /dev/null @@ -1,132 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@fpshr.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__fpshr' prologue -* frame base=88, local stack=32, call args=16 -&FUNC SETC '__fpshr' -@@FPSHR PDPPRLG CINDEX=0,FRAME=136,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__fpshr' code - L 6,0(11) ==> fp - SLR 15,15 ==> count - ST 15,128(13) ==> count - LA 4,104(,13) - LA 5,20(0,0) - LR 2,15 ==> count - LR 3,15 ==> count - MVCL 4,2 ==> count - LA 2,128(,13) - ST 2,88(13) - ST 15,92(13) ==> count - LA 1,88(,13) - L 15,=V(@@TXRDDN) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LA 2,128(,13) - ST 2,88(13) - LR 2,6 ==> fp - A 2,=F'61' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@TXDSN) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LA 2,128(,13) - ST 2,88(13) - ST 15,92(13) ==> err - LA 1,88(,13) - L 15,=V(@@TXSHR) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LA 2,128(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LTR 15,15 ==> count - BE @@L3 - BCTR 15,0 ==> count - L 4,128(13) - LR 3,15 ==> count - MH 3,=H'4' - L 2,0(3,4) - O 2,=F'-2147483648' - ST 2,0(3,4) - MVI 104(13),20 ==> .len - MVI 105(13),1 ==> .request - MVI 106(13),64 ==> .flag1 - MVC 112(4,13),128(13) ==> .txtptr - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@SVC99) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LR 2,6 ==> fp - A 2,=F'43' - ST 2,88(13) - L 2,128(13) - L 2,0(2) - A 2,=F'6' - ST 2,92(13) - MVC 96(4,13),=F'8' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - OC 40(2,6),=H'-32768' ==> .flags -@@L3 EQU * - L 2,128(13) - LTR 2,2 - BE @@L8 - LA 2,128(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@FRTX9A) - BALR 14,15 -@@L8 EQU * - LR 15,3 ==> err -* Function '__fpshr' epilogue - PDPEPIL -* Function '__fpshr' literal pool - DS 0D - LTORG -* Function '__fpshr' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@fpstar.c b/src/crent370/clib/@@fpstar.c deleted file mode 100644 index 298900c..0000000 --- a/src/crent370/clib/@@fpstar.c +++ /dev/null @@ -1,147 +0,0 @@ -/* @@FPSTAR.C */ -#include -#include -#include -#include -#include -#include "svc99.h" -#include "clibary.h" -#include "clib.h" - -int -__fpstar(FILE *fp) -{ - CLIBPPA *ppa = __ppaget(); - int err = 1; - unsigned count = 0; - char *recfm = 0; - char *lrecl = 0; - char *blksize= 0; - char *p = 0; - TXT99 **txt99 = NULL; - RB99 rb99 = {0}; - char temp[sizeof(fp->mode)+1]; - - /* we want the DDNAME returned to us */ - err = __txrddn(&txt99, NULL); - if (err) goto quit; - - /* if we're running under TSO foreground */ - if (ppa->ppaflag & PPAFLAG_TSOFG) { - /* allocate terminal */ - err = __txterm(&txt99, NULL); - if (err) goto quit; - - /* permanent */ - err = __txperm(&txt99, NULL); - if (err) goto quit; - - /* DISP=SHR */ - err = __txshr(&txt99, NULL); - if (err) goto quit; - - /* DSORG=PS */ - err = __txorg(&txt99, "PS"); - if (err) goto quit; - - /* RECFM=V */ - recfm = getenv("TERMINAL_RECFM"); - if (!recfm) recfm = "V"; - err = __txrecf(&txt99, recfm); - if (err) goto quit; - - /* LRECL=4000 */ - lrecl = getenv("TERMINAL_LRECL"); - if (!lrecl) lrecl = "4000"; - err = __txlrec(&txt99, lrecl); - if (err) goto quit; - - if (strchr(recfm, 'B')) { - /* BLKSIZE=? */ - blksize = getenv("TERMINAL_BLKSIZE"); - if (blksize) { - err = __txbksz(&txt99, blksize); - if (err) goto quit; - } - } - } - else { - /* allocate SYSOUT dataset */ - p = getenv("SYSOUT_CLASS"); - err = __txsyso(&txt99, p); - if (err) goto quit; - - /* DSORG=PS */ - err = __txorg(&txt99, "PS"); - if (err) goto quit; - - /* get record format */ - p = strstr(fp->mode, "recfm="); - if (!p) p = strstr(fp->mode,"recfm("); - if (p) { - strcpy(temp,p+6); - recfm = strtok(temp, " ,)"); - } - if (!recfm) recfm = getenv("SYSOUT_RECFM"); - if (!recfm) recfm = "V"; - err = __txrecf(&txt99, recfm); - if (err) goto quit; - - /* get logical record length */ - p = strstr(fp->mode, "lrecl="); - if (!p) p = strstr(fp->mode, "lrecl("); - if (p) { - strcpy(temp,p+6); - lrecl = strtok(temp, " ,)"); - } - if (!lrecl) lrecl = getenv("SYSOUT_LRECL"); - if (!lrecl) lrecl = "255"; - err = __txlrec(&txt99, lrecl); - if (err) goto quit; - - if (strchr(recfm, 'B')) { - /* get optional block size */ - p = strstr(fp->mode, "blksize="); - if (!p) p = strstr(fp->mode, "blksize("); - if (p) { - strcpy(temp,p+8); - blksize = strtok(temp, " ,)"); - } - if (!blksize) blksize = getenv("SYSOUT_BLKSIZE"); - if (blksize) { - err = __txbksz(&txt99, blksize); - if (err) goto quit; - } - } - } - - count = arraycount(&txt99); - if (!count) goto quit; - - /* Set high order bit to mark end of list */ - count--; - txt99[count] = (TXT99*)((unsigned)txt99[count] | 0x80000000); - - /* construct the request block for dynamic allocation */ - rb99.len = sizeof(RB99); - rb99.request = S99VRBAL; - rb99.flag1 = S99NOCNV; - rb99.txtptr = txt99; - - /* SVC 99 */ - err = __svc99(&rb99); - if (err) goto quit; - - /* return DDNAME */ - memcpy(fp->ddname, txt99[0]->text, 8); - fp->flags |= _FILE_FLAG_DYNAMIC; - /* if we're running under TSO foreground */ - if (ppa->ppaflag & PPAFLAG_TSOFG) { - fp->flags |= _FILE_FLAG_TERM; - } - -quit: - if (txt99) FreeTXT99Array(&txt99); - - return err; -} diff --git a/src/crent370/clib/@@fpstar.o b/src/crent370/clib/@@fpstar.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@fpstar.s b/src/crent370/clib/@@fpstar.s deleted file mode 100644 index 42c10c7..0000000 --- a/src/crent370/clib/@@fpstar.s +++ /dev/null @@ -1,458 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@fpstar.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__fpstar' prologue -* frame base=88, local stack=120, call args=16 -&FUNC SETC '__fpstar' -@@FPSTAR PDPPRLG CINDEX=0,FRAME=224,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__fpstar' code - L 9,0(11) ==> fp - LA 1,88(,13) - L 15,=V(@@PPAGET) - BALR 14,15 - ST 15,220(13) ==> ppa - SLR 15,15 ==> count - LR 7,15 ==> recfm,count - LR 6,15 ==> lrecl,count - LR 8,15 ==> blksize,count - ST 15,216(13) ==> count - LA 4,104(,13) - LA 5,20(0,0) - LR 2,15 ==> count - LR 3,15 ==> count - MVCL 4,2 ==> count - LA 2,216(,13) - ST 2,88(13) - ST 15,92(13) ==> count - LA 1,88(,13) - L 15,=V(@@TXRDDN) - BALR 14,15 - LR 4,15 ==> err - LTR 15,15 ==> err - L 14,=A(@@L3) - BNER 14 - L 3,220(13) ==> ppa - IC 2,32(3) ==> .ppaflag - N 2,=F'-128' - CLM 2,1,=XL1'00' - BE @@L4 - LA 2,216(,13) - ST 2,88(13) - ST 15,92(13) ==> err - LA 1,88(,13) - L 15,=V(@@TXTERM) - BALR 14,15 - LR 4,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LA 2,216(,13) - ST 2,88(13) - ST 15,92(13) ==> err - LA 1,88(,13) - L 15,=V(@@TXPERM) - BALR 14,15 - LR 4,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LA 2,216(,13) - ST 2,88(13) - ST 15,92(13) ==> err - LA 1,88(,13) - L 15,=V(@@TXSHR) - BALR 14,15 - LR 4,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LA 2,216(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(@@TXORG) - BALR 14,15 - LR 4,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - MVC 88(4,13),=A(@@LC1) - LA 1,88(,13) - L 15,=V(GETENV) - BALR 14,15 - LR 7,15 ==> recfm - LTR 15,15 ==> recfm - BNE @@L9 - L 7,=A(@@LC2) ==> recfm -@@L9 EQU * - LA 2,216(,13) - ST 2,88(13) - ST 7,92(13) ==> recfm - LA 1,88(,13) - L 15,=V(@@TXRECF) - BALR 14,15 - LR 4,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - MVC 88(4,13),=A(@@LC3) - LA 1,88(,13) - L 15,=V(GETENV) - BALR 14,15 - LR 6,15 ==> lrecl - LTR 15,15 ==> lrecl - BNE @@L11 - L 6,=A(@@LC4) ==> lrecl -@@L11 EQU * - LA 2,216(,13) - ST 2,88(13) - ST 6,92(13) ==> lrecl - LA 1,88(,13) - L 15,=V(@@TXLREC) - BALR 14,15 - LR 4,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - ST 7,88(13) ==> recfm - MVC 92(4,13),=F'194' - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LTR 15,15 ==> ppa - BE @@L16 - MVC 88(4,13),=A(@@LC5) - B @@L40 -@@L4 EQU * - MVC 88(4,13),=A(@@LC6) - LA 1,88(,13) - L 15,=V(GETENV) - BALR 14,15 - LA 2,216(,13) - ST 2,88(13) - ST 15,92(13) ==> p - LA 1,88(,13) - L 15,=V(@@TXSYSO) - BALR 14,15 - LR 4,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LA 2,216(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(@@TXORG) - BALR 14,15 - LR 4,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LR 2,9 ==> fp - A 2,=F'106' - ST 2,88(13) - MVC 92(4,13),=A(@@LC7) - LA 1,88(,13) - L 15,=V(STRSTR) - BALR 14,15 - LTR 15,15 ==> p - BNE @@L19 - ST 2,88(13) - MVC 92(4,13),=A(@@LC8) - LA 1,88(,13) - L 15,=V(STRSTR) - BALR 14,15 -@@L19 EQU * - LTR 15,15 ==> p - BE @@L20 - LA 3,128(,13) - ST 3,88(13) - LR 2,15 ==> p - A 2,=F'6' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - ST 3,88(13) - MVC 92(4,13),=A(@@LC9) - LA 1,88(,13) - L 15,=V(STRTOK) - BALR 14,15 - LR 7,15 ==> recfm -@@L20 EQU * - LTR 7,7 ==> recfm - BNE @@L21 - MVC 88(4,13),=A(@@LC10) - LA 1,88(,13) - L 15,=V(GETENV) - BALR 14,15 - LR 7,15 ==> recfm -@@L21 EQU * - LTR 7,7 ==> recfm - BNE @@L22 - L 7,=A(@@LC2) ==> recfm -@@L22 EQU * - LA 2,216(,13) - ST 2,88(13) - ST 7,92(13) ==> recfm - LA 1,88(,13) - L 15,=V(@@TXRECF) - BALR 14,15 - LR 4,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LR 2,9 ==> fp - A 2,=F'106' - ST 2,88(13) - MVC 92(4,13),=A(@@LC11) - LA 1,88(,13) - L 15,=V(STRSTR) - BALR 14,15 - LTR 15,15 ==> p - BNE @@L24 - ST 2,88(13) - MVC 92(4,13),=A(@@LC12) - LA 1,88(,13) - L 15,=V(STRSTR) - BALR 14,15 -@@L24 EQU * - LTR 15,15 ==> p - BE @@L25 - LA 3,128(,13) - ST 3,88(13) - LR 2,15 ==> p - A 2,=F'6' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - ST 3,88(13) - MVC 92(4,13),=A(@@LC9) - LA 1,88(,13) - L 15,=V(STRTOK) - BALR 14,15 - LR 6,15 ==> lrecl -@@L25 EQU * - LTR 6,6 ==> lrecl - BNE @@L26 - MVC 88(4,13),=A(@@LC13) - LA 1,88(,13) - L 15,=V(GETENV) - BALR 14,15 - LR 6,15 ==> lrecl -@@L26 EQU * - LTR 6,6 ==> lrecl - BNE @@L27 - L 6,=A(@@LC14) ==> lrecl -@@L27 EQU * - LA 2,216(,13) - ST 2,88(13) - ST 6,92(13) ==> lrecl - LA 1,88(,13) - L 15,=V(@@TXLREC) - BALR 14,15 - LR 4,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - ST 7,88(13) ==> recfm - MVC 92(4,13),=F'194' - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LTR 15,15 ==> ppa - BE @@L16 - LR 2,9 ==> fp - A 2,=F'106' - ST 2,88(13) - MVC 92(4,13),=A(@@LC15) - LA 1,88(,13) - L 15,=V(STRSTR) - BALR 14,15 - LTR 15,15 ==> p - BNE @@L30 - ST 2,88(13) - MVC 92(4,13),=A(@@LC16) - LA 1,88(,13) - L 15,=V(STRSTR) - BALR 14,15 -@@L30 EQU * - LTR 15,15 ==> p - BE @@L31 - LA 3,128(,13) - ST 3,88(13) - LR 2,15 ==> p - A 2,=F'8' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - ST 3,88(13) - MVC 92(4,13),=A(@@LC9) - LA 1,88(,13) - L 15,=V(STRTOK) - BALR 14,15 - LR 8,15 ==> blksize -@@L31 EQU * - LTR 8,8 ==> blksize - BNE @@L32 - MVC 88(4,13),=A(@@LC17) -@@L40 EQU * - LA 1,88(,13) - L 15,=V(GETENV) - BALR 14,15 - LR 8,15 ==> blksize -@@L32 EQU * - LTR 8,8 ==> blksize - BE @@L16 - LA 2,216(,13) - ST 2,88(13) - ST 8,92(13) ==> blksize - LA 1,88(,13) - L 15,=V(@@TXBKSZ) - BALR 14,15 - LR 4,15 ==> err - LTR 15,15 ==> err - BNE @@L3 -@@L16 EQU * - LA 2,216(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LTR 15,15 ==> count - BE @@L3 - BCTR 15,0 ==> count - L 4,216(13) - LR 3,15 ==> count - MH 3,=H'4' - L 2,0(3,4) - O 2,=F'-2147483648' - ST 2,0(3,4) - MVI 104(13),20 ==> .len - MVI 105(13),1 ==> .request - MVI 106(13),64 ==> .flag1 - MVC 112(4,13),216(13) ==> .txtptr - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@SVC99) - BALR 14,15 - LR 4,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LR 2,9 ==> fp - A 2,=F'43' - ST 2,88(13) - L 2,216(13) - L 2,0(2) - A 2,=F'6' - ST 2,92(13) - MVC 96(4,13),=F'8' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - LH 3,40(9) ==> .flags - O 3,=F'-32768' - STH 3,40(9) ==> .flags - L 5,220(13) ==> ppa - IC 2,32(5) ==> .ppaflag - N 2,=F'-128' - CLM 2,1,=XL1'00' - BE @@L3 - O 3,=F'128' - STH 3,40(9) ==> .flags -@@L3 EQU * - L 2,216(13) - LTR 2,2 - BE @@L38 - LA 2,216(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@FRTX9A) - BALR 14,15 -@@L38 EQU * - LR 15,4 ==> err -* Function '__fpstar' epilogue - PDPEPIL -* Function '__fpstar' literal pool - DS 0D - LTORG -* Function '__fpstar' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'PS' - DC X'0' -@@LC1 EQU * - DC C'TERMINAL_RECFM' - DC X'0' -@@LC2 EQU * - DC C'V' - DC X'0' -@@LC3 EQU * - DC C'TERMINAL_LRECL' - DC X'0' -@@LC4 EQU * - DC C'4000' - DC X'0' -@@LC5 EQU * - DC C'TERMINAL_BLKSIZE' - DC X'0' -@@LC6 EQU * - DC C'SYSOUT_CLASS' - DC X'0' -@@LC7 EQU * - DC C'recfm=' - DC X'0' -@@LC8 EQU * - DC C'recfm(' - DC X'0' -@@LC9 EQU * - DC C' ,)' - DC X'0' -@@LC10 EQU * - DC C'SYSOUT_RECFM' - DC X'0' -@@LC11 EQU * - DC C'lrecl=' - DC X'0' -@@LC12 EQU * - DC C'lrecl(' - DC X'0' -@@LC13 EQU * - DC C'SYSOUT_LRECL' - DC X'0' -@@LC14 EQU * - DC C'255' - DC X'0' -@@LC15 EQU * - DC C'blksize=' - DC X'0' -@@LC16 EQU * - DC C'blksize(' - DC X'0' -@@LC17 EQU * - DC C'SYSOUT_BLKSIZE' - DC X'0' - END diff --git a/src/crent370/clib/@@fptmp.c b/src/crent370/clib/@@fptmp.c deleted file mode 100644 index a8d7f8c..0000000 --- a/src/crent370/clib/@@fptmp.c +++ /dev/null @@ -1,148 +0,0 @@ -/* @@FPTMP.C */ -#include -#include -#include -#include -#include -#include "svc99.h" -#include "clibary.h" - -int -__fptmp(FILE *fp) -{ - int err = 1; - unsigned count = 0; - char *recfm = 0; - char *lrecl = 0; - char *space = 0; - char *p = 0; - TXT99 **txt99 = NULL; - RB99 rb99 = {0}; - char temp[sizeof(fp->mode)+1]; - - /* we want the DDNAME returned to us */ - err = __txrddn(&txt99, NULL); - if (err) goto quit; - - /* allocate this dataset */ - err = __txdsn(&txt99, fp->dataset); - if (err) goto quit; - - /* DISP=NEW */ - err = __txnew(&txt99, NULL); - if (err) goto quit; - - /* DISP=,CATALOG */ - err = __txcat(&txt99, NULL); - if (err) goto quit; - - /* DSORG=PS */ - err = __txorg(&txt99, "PS"); - if (err) goto quit; - - /* get record format */ - p = strstr(fp->mode, "recfm="); - if (!p) p = strstr(fp->mode,"recfm("); - if (p) { - strcpy(temp,p+6); - recfm = strtok(temp, " ,)"); - } - if (!recfm) recfm = getenv("TEMP_RECFM"); - if (!recfm) recfm = "V"; - err = __txrecf(&txt99, recfm); - if (err) goto quit; - - /* get logical record length */ - p = strstr(fp->mode, "lrecl="); - if (!p) p = strstr(fp->mode,"lrecl("); - if (p) { - strcpy(temp,p+6); - lrecl = strtok(temp, " ,)"); - } - if (!lrecl) lrecl = getenv("TEMP_LRECL"); - if (!lrecl) lrecl = "255"; - err = __txlrec(&txt99, lrecl); - if (err) goto quit; - - if (strchr(recfm, 'B')) { - /* get optional block size */ - p = strstr(fp->mode, "blksize="); - if (!p) p = strstr(fp->mode,"blksize("); - if (p) { - strcpy(temp,p+8); - recfm = strtok(temp, " ,)"); - } - if (!p) p = getenv("TEMP_BLKSIZE"); - if (p) { - err = __txbksz(&txt99, p); - if (err) goto quit; - } - } - - /* get optional space "[CYL|TRK](pri[,sec])" or "blksize(pri[,sec])" */ - p = strstr(fp->mode, "space="); - if (p) { - strcpy(temp,p+6); - p = strchr(temp, '('); - if (p) { - p = strchr(p, ')'); - if (p) { - space = temp; - p++; /* skip over the ')' */ - *p=0; /* terminate the string here */ - } - } - } - if (!space) space = getenv("TEMP_SPACE"); - if (space) { - char *x = strchr(space,'('); - if (x) { - if (memcmp(space, "CYL", 3)==0) { - /* CYLINDERS */ - err = __txcyl(&txt99, NULL); - } - else if (memcmp(space, "TRK", 3)==0) { - /* TRACKS */ - err = __txtrk(&txt99, NULL); - } - else { - /* BLOCKS */ - err = __txblk(&txt99, p); - } - space = x+1; - } - while(*space && !isdigit(*space)) space++; - err = __txspac(&txt99, space); /* "pri[,sec]" */ - if (err) goto quit; - } - - /* we want temp dataset allocated to VIO */ - err = __txunit(&txt99, "VIO"); - if (err) goto quit; - - count = arraycount(&txt99); - if (!count) goto quit; - - /* Set high order bit to mark end of list */ - count--; - txt99[count] = (TXT99*)((unsigned)txt99[count] | 0x80000000); - - /* construct the request block for dynamic allocation */ - rb99.len = sizeof(RB99); - rb99.request = S99VRBAL; - rb99.flag1 = S99NOCNV; - rb99.txtptr = txt99; - - /* SVC 99 */ - err = __svc99(&rb99); - if (err) goto quit; - - /* return DDNAME */ - memcpy(fp->ddname, txt99[0]->text, 8); - fp->flags |= _FILE_FLAG_DYNAMIC; - -quit: - if (txt99) FreeTXT99Array(&txt99); - - return err; -} diff --git a/src/crent370/clib/@@fptmp.o b/src/crent370/clib/@@fptmp.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@fptmp.s b/src/crent370/clib/@@fptmp.s deleted file mode 100644 index eda6784..0000000 --- a/src/crent370/clib/@@fptmp.s +++ /dev/null @@ -1,527 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@fptmp.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__fptmp' prologue -* frame base=88, local stack=120, call args=16 -&FUNC SETC '__fptmp' -@@FPTMP PDPPRLG CINDEX=0,FRAME=224,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__fptmp' code - L 9,0(11) ==> fp - SLR 15,15 ==> count - LR 6,15 ==> recfm,count - LR 7,15 ==> lrecl,count - LR 8,15 ==> space,count - ST 15,216(13) ==> count - LA 4,104(,13) - LA 5,20(0,0) - LR 2,15 ==> count - LR 3,15 ==> count - MVCL 4,2 ==> count - LA 2,216(,13) - ST 2,88(13) - ST 15,92(13) ==> count - LA 1,88(,13) - L 15,=V(@@TXRDDN) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - L 14,=A(@@L3) - BNER 14 - LA 2,216(,13) - ST 2,88(13) - LR 2,9 ==> fp - A 2,=F'61' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@TXDSN) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - L 14,=A(@@L3) - BNER 14 - LA 2,216(,13) - ST 2,88(13) - ST 15,92(13) ==> err - LA 1,88(,13) - L 15,=V(@@TXNEW) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - L 14,=A(@@L3) - BNER 14 - LA 2,216(,13) - ST 2,88(13) - ST 15,92(13) ==> err - LA 1,88(,13) - L 15,=V(@@TXCAT) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - L 14,=A(@@L3) - BNER 14 - LA 2,216(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(@@TXORG) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - L 14,=A(@@L3) - BNER 14 - LR 2,9 ==> fp - A 2,=F'106' - ST 2,88(13) - MVC 92(4,13),=A(@@LC1) - LA 1,88(,13) - L 15,=V(STRSTR) - BALR 14,15 - LR 4,15 ==> p - LTR 15,15 ==> p - BNE @@L8 - ST 2,88(13) - MVC 92(4,13),=A(@@LC2) - LA 1,88(,13) - L 15,=V(STRSTR) - BALR 14,15 - LR 4,15 ==> p -@@L8 EQU * - LTR 4,4 ==> p - BE @@L9 - LA 3,128(,13) - ST 3,88(13) - LR 2,4 ==> p - A 2,=F'6' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - ST 3,88(13) - MVC 92(4,13),=A(@@LC3) - LA 1,88(,13) - L 15,=V(STRTOK) - BALR 14,15 - LR 6,15 ==> recfm -@@L9 EQU * - LTR 6,6 ==> recfm - BNE @@L10 - MVC 88(4,13),=A(@@LC4) - LA 1,88(,13) - L 15,=V(GETENV) - BALR 14,15 - LR 6,15 ==> recfm -@@L10 EQU * - LTR 6,6 ==> recfm - BNE @@L11 - L 6,=A(@@LC5) ==> recfm -@@L11 EQU * - LA 2,216(,13) - ST 2,88(13) - ST 6,92(13) ==> recfm - LA 1,88(,13) - L 15,=V(@@TXRECF) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - L 14,=A(@@L3) - BNER 14 - LR 2,9 ==> fp - A 2,=F'106' - ST 2,88(13) - MVC 92(4,13),=A(@@LC6) - LA 1,88(,13) - L 15,=V(STRSTR) - BALR 14,15 - LR 4,15 ==> p - LTR 15,15 ==> p - BNE @@L13 - ST 2,88(13) - MVC 92(4,13),=A(@@LC7) - LA 1,88(,13) - L 15,=V(STRSTR) - BALR 14,15 - LR 4,15 ==> p -@@L13 EQU * - LTR 4,4 ==> p - BE @@L14 - LA 3,128(,13) - ST 3,88(13) - LR 2,4 ==> p - A 2,=F'6' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - ST 3,88(13) - MVC 92(4,13),=A(@@LC3) - LA 1,88(,13) - L 15,=V(STRTOK) - BALR 14,15 - LR 7,15 ==> lrecl -@@L14 EQU * - LTR 7,7 ==> lrecl - BNE @@L15 - MVC 88(4,13),=A(@@LC8) - LA 1,88(,13) - L 15,=V(GETENV) - BALR 14,15 - LR 7,15 ==> lrecl -@@L15 EQU * - LTR 7,7 ==> lrecl - BNE @@L16 - L 7,=A(@@LC9) ==> lrecl -@@L16 EQU * - LA 2,216(,13) - ST 2,88(13) - ST 7,92(13) ==> lrecl - LA 1,88(,13) - L 15,=V(@@TXLREC) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - ST 6,88(13) ==> recfm - MVC 92(4,13),=F'194' - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LTR 15,15 ==> err - BE @@L18 - LR 2,9 ==> fp - A 2,=F'106' - ST 2,88(13) - MVC 92(4,13),=A(@@LC10) - LA 1,88(,13) - L 15,=V(STRSTR) - BALR 14,15 - LR 4,15 ==> p - LTR 15,15 ==> p - BNE @@L19 - ST 2,88(13) - MVC 92(4,13),=A(@@LC11) - LA 1,88(,13) - L 15,=V(STRSTR) - BALR 14,15 - LR 4,15 ==> p -@@L19 EQU * - LTR 4,4 ==> p - BE @@L20 - LA 3,128(,13) - ST 3,88(13) - LR 2,4 ==> p - A 2,=F'8' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - ST 3,88(13) - MVC 92(4,13),=A(@@LC3) - LA 1,88(,13) - L 15,=V(STRTOK) - BALR 14,15 -@@L20 EQU * - LTR 4,4 ==> p - BNE @@L21 - MVC 88(4,13),=A(@@LC12) - LA 1,88(,13) - L 15,=V(GETENV) - BALR 14,15 - LR 4,15 ==> p -@@L21 EQU * - LTR 4,4 ==> p - BE @@L18 - LA 2,216(,13) - ST 2,88(13) - ST 4,92(13) ==> p - LA 1,88(,13) - L 15,=V(@@TXBKSZ) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L3 -@@L18 EQU * - LR 2,9 ==> fp - A 2,=F'106' - ST 2,88(13) - MVC 92(4,13),=A(@@LC13) - LA 1,88(,13) - L 15,=V(STRSTR) - BALR 14,15 - LR 4,15 ==> p - LTR 15,15 ==> p - BE @@L24 - LA 3,128(,13) ==> space - ST 3,88(13) ==> space - LR 2,15 ==> p - A 2,=F'6' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - ST 3,88(13) ==> space - MVC 92(4,13),=F'77' - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LR 4,15 ==> p - LTR 15,15 ==> p - BE @@L24 - ST 15,88(13) ==> p - MVC 92(4,13),=F'93' - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LR 4,15 ==> p - LTR 15,15 ==> p - BE @@L24 - LR 8,3 ==> space - A 4,=F'1' ==> p - MVI 0(4),0 ==> p -@@L24 EQU * - LTR 8,8 ==> space - BNE @@L27 - MVC 88(4,13),=A(@@LC14) - LA 1,88(,13) - L 15,=V(GETENV) - BALR 14,15 - LR 8,15 ==> space -@@L27 EQU * - LTR 8,8 ==> space - BE @@L28 - ST 8,88(13) ==> space - MVC 92(4,13),=F'77' - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LR 3,15 ==> x - LTR 15,15 ==> x - BE @@L29 - ST 8,88(13) ==> space - MVC 92(4,13),=A(@@LC15) - MVC 96(4,13),=F'3' - LA 1,88(,13) - L 15,=V(MEMCMP) - BALR 14,15 - LTR 15,15 ==> err - BNE @@L30 - LA 2,216(,13) - ST 2,88(13) - ST 15,92(13) ==> err - LA 1,88(,13) - L 15,=V(@@TXCYL) - BALR 14,15 - B @@L31 -@@L30 EQU * - ST 8,88(13) ==> space - MVC 92(4,13),=A(@@LC16) - MVC 96(4,13),=F'3' - LA 1,88(,13) - L 15,=V(MEMCMP) - BALR 14,15 - LTR 15,15 ==> err - BNE @@L32 - LA 2,216(,13) - ST 2,88(13) - ST 15,92(13) ==> err - LA 1,88(,13) - L 15,=V(@@TXTRK) - BALR 14,15 - B @@L31 -@@L32 EQU * - LA 2,216(,13) - ST 2,88(13) - ST 4,92(13) ==> p - LA 1,88(,13) - L 15,=V(@@TXBLK) - BALR 14,15 -@@L31 EQU * - LR 8,3 ==> space,x - A 8,=F'1' ==> space -@@L29 EQU * - IC 2,0(8) ==> space - CLM 2,1,=XL1'00' - BE @@L35 - SLR 2,2 - IC 2,0(8) ==> space - L 3,=V(@@ISBUF) - LR 4,3 - L 3,0(3) ==> __isbuf - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'8' - CH 2,=H'0' - BNE @@L35 -@@L38 EQU * - A 8,=F'1' ==> space - IC 2,0(8) ==> space - CLM 2,1,=XL1'00' - BE @@L35 - SLR 2,2 - IC 2,0(8) ==> space - L 3,0(4) ==> __isbuf - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'8' - CH 2,=H'0' - BE @@L38 -@@L35 EQU * - LA 2,216(,13) - ST 2,88(13) - ST 8,92(13) ==> space - LA 1,88(,13) - L 15,=V(@@TXSPAC) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L3 -@@L28 EQU * - LA 2,216(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC17) - LA 1,88(,13) - L 15,=V(@@TXUNIT) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LA 2,216(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LTR 15,15 ==> count - BE @@L3 - BCTR 15,0 ==> count - L 4,216(13) - LR 3,15 ==> count - MH 3,=H'4' - L 2,0(3,4) - O 2,=F'-2147483648' - ST 2,0(3,4) - MVI 104(13),20 ==> .len - MVI 105(13),1 ==> .request - MVI 106(13),64 ==> .flag1 - MVC 112(4,13),216(13) ==> .txtptr - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@SVC99) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LR 2,9 ==> fp - A 2,=F'43' - ST 2,88(13) - L 2,216(13) - L 2,0(2) - A 2,=F'6' - ST 2,92(13) - MVC 96(4,13),=F'8' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - OC 40(2,9),=H'-32768' ==> .flags -@@L3 EQU * - L 2,216(13) - LTR 2,2 - BE @@L43 - LA 2,216(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@FRTX9A) - BALR 14,15 -@@L43 EQU * - LR 15,3 ==> err -* Function '__fptmp' epilogue - PDPEPIL -* Function '__fptmp' literal pool - DS 0D - LTORG -* Function '__fptmp' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'PS' - DC X'0' -@@LC1 EQU * - DC C'recfm=' - DC X'0' -@@LC2 EQU * - DC C'recfm(' - DC X'0' -@@LC3 EQU * - DC C' ,)' - DC X'0' -@@LC4 EQU * - DC C'TEMP_RECFM' - DC X'0' -@@LC5 EQU * - DC C'V' - DC X'0' -@@LC6 EQU * - DC C'lrecl=' - DC X'0' -@@LC7 EQU * - DC C'lrecl(' - DC X'0' -@@LC8 EQU * - DC C'TEMP_LRECL' - DC X'0' -@@LC9 EQU * - DC C'255' - DC X'0' -@@LC10 EQU * - DC C'blksize=' - DC X'0' -@@LC11 EQU * - DC C'blksize(' - DC X'0' -@@LC12 EQU * - DC C'TEMP_BLKSIZE' - DC X'0' -@@LC13 EQU * - DC C'space=' - DC X'0' -@@LC14 EQU * - DC C'TEMP_SPACE' - DC X'0' -@@LC15 EQU * - DC C'CYL' - DC X'0' -@@LC16 EQU * - DC C'TRK' - DC X'0' -@@LC17 EQU * - DC C'VIO' - DC X'0' - END diff --git a/src/crent370/clib/@@fputc.c b/src/crent370/clib/@@fputc.c deleted file mode 100644 index 7a14880..0000000 --- a/src/crent370/clib/@@fputc.c +++ /dev/null @@ -1,37 +0,0 @@ -/* @@FPUTC.C - caller should hold lock on file handle */ -#include - -int -__fputc(int c, FILE *fp) -{ - int rc = c; - - if (!(fp->flags & _FILE_FLAG_WRITE)) goto quit; /* not in WRITE mode */ - if (fp->flags & _FILE_FLAG_RECORD) goto quit; /* in record mode */ - - /* is this a text file? */ - if (!(fp->flags & _FILE_FLAG_BINARY)) { - /* yes, is this character a newline? */ - if (c == '\n') { - /* yes, flush buffer to disk */ - fp->filepos++; - if (__fflush(fp)) rc = EOF; - goto quit; - } - } - - /* if buffer is full flush buffer to disk */ - if (fp->upto == fp->endbuf) { - if (__fflush(fp)) { - rc = EOF; - goto quit; - } - } - - /* otherwise we copy the character to the buffer */ - *fp->upto++ = (unsigned char)c; - fp->filepos++; - -quit: - return rc; -} diff --git a/src/crent370/clib/@@fputc.o b/src/crent370/clib/@@fputc.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@fputc.s b/src/crent370/clib/@@fputc.s deleted file mode 100644 index 36cf660..0000000 --- a/src/crent370/clib/@@fputc.s +++ /dev/null @@ -1,100 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@fputc.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__fputc' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC '__fputc' -@@FPUTC PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__fputc' code - L 6,0(11) ==> c - L 4,4(11) ==> fp - LR 5,6 ==> rc,c - LH 3,40(4) ==> .flags - LR 2,3 - N 2,=F'4096' - CH 2,=H'0' - BE @@L3 - LR 2,3 - N 2,=F'512' - CH 2,=H'0' - BNE @@L3 - LR 2,3 - N 2,=F'1024' - CH 2,=H'0' - BNE @@L5 - LA 2,21(0,0) - CLR 6,2 ==> rc - BNE @@L5 - L 2,24(4) ==> .filepos - A 2,=F'1' - ST 2,24(4) ==> .filepos - ST 4,88(13) ==> fp - LA 1,88(,13) - L 15,=V(@@FFLUSH) - BALR 14,15 - LTR 15,15 ==> rc - BE @@L3 - B @@L10 -@@L5 EQU * - L 2,32(4) ==> .upto - CL 2,36(4) ==> .endbuf - BNE @@L8 - ST 4,88(13) ==> fp - LA 1,88(,13) - L 15,=V(@@FFLUSH) - BALR 14,15 - LTR 15,15 ==> rc - BE @@L8 -@@L10 EQU * - L 5,=F'-1' ==> rc - B @@L3 -@@L8 EQU * - LR 2,4 ==> fp - A 2,=F'32' - L 3,0(2) ==> .upto - STC 6,0(3) ==> c - A 3,=F'1' - ST 3,0(2) ==> .upto - L 2,24(4) ==> .filepos - A 2,=F'1' - ST 2,24(4) ==> .filepos -@@L3 EQU * - LR 15,5 ==> rc -* Function '__fputc' epilogue - PDPEPIL -* Function '__fputc' literal pool - DS 0D - LTORG -* Function '__fputc' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@fputs.c b/src/crent370/clib/@@fputs.c deleted file mode 100644 index 6d257b1..0000000 --- a/src/crent370/clib/@@fputs.c +++ /dev/null @@ -1,24 +0,0 @@ -/* @@FPUTS.C - caller should hold lock on file handle */ -#include - -int -__fputs(const char *s, FILE *fp) -{ - int i; - - if (fp->flags & _FILE_FLAG_RECORD) { - /* not allowed in record mode */ - i = EOF; - goto quit; - } - - for(i=0; s[i]; i++) { - if (__fputc(s[i],fp)==EOF) { - i = EOF; - break; - } - } - -quit: - return i; -} diff --git a/src/crent370/clib/@@fputs.o b/src/crent370/clib/@@fputs.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@fputs.s b/src/crent370/clib/@@fputs.s deleted file mode 100644 index 13d1b03..0000000 --- a/src/crent370/clib/@@fputs.s +++ /dev/null @@ -1,79 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@fputs.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__fputs' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC '__fputs' -@@FPUTS PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__fputs' code - L 4,0(11) ==> s - L 5,4(11) ==> fp - LH 2,40(5) ==> .flags - N 2,=F'512' - L 3,=F'-1' ==> i - CH 2,=H'0' - BNE @@L3 - B @@L2 -@@L11 EQU * - LR 3,15 ==> i - B @@L3 -@@L2 EQU * - SLR 3,3 ==> i - IC 2,0(4) ==> s - CLM 2,1,=XL1'00' - BE @@L3 -@@L9 EQU * - SLR 2,2 - IC 2,0(3,4) ==> i - ST 2,88(13) - ST 5,92(13) ==> fp - LA 1,88(,13) - L 15,=V(@@FPUTC) - BALR 14,15 - L 2,=F'-1' - CLR 15,2 ==> i - BE @@L11 - A 3,=F'1' ==> i - IC 2,0(3,4) ==> i - CLM 2,1,=XL1'00' - BNE @@L9 -@@L3 EQU * - LR 15,3 ==> i -* Function '__fputs' epilogue - PDPEPIL -* Function '__fputs' literal pool - DS 0D - LTORG -* Function '__fputs' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@fread.c b/src/crent370/clib/@@fread.c deleted file mode 100644 index ec08d62..0000000 --- a/src/crent370/clib/@@fread.c +++ /dev/null @@ -1,50 +0,0 @@ -/* @@FREAD.C - caller should hold lock on file handle */ -#include -#include -#include -#include - -size_t -__fread(void *ptr, size_t size, size_t nmemb, FILE *fp) -{ - unsigned char *p = (unsigned char*)ptr; - size_t lenread = 0; - size_t i = nmemb; - size_t j; - int c; - unsigned char *dptr; - - if (fp->flags & _FILE_FLAG_EOF) { - i = 0; - goto quit; - } - - if (fp->flags & _FILE_FLAG_RECORD) { - size *= nmemb; - i = __aread(fp->dcb, &dptr, &lenread); - if (i != 0) { - /* read error or eof */ - fp->flags |= _FILE_FLAG_EOF; - i = 0; - goto quit; - } - /* success, return data */ - i = nmemb; - if (size > lenread) size = lenread; - memcpy(ptr, dptr, size); - fp->filepos += 1; /* count records read */ - goto quit; - } - - /* slower but accurate implementation */ - for(i=0; i < nmemb; i++) { - for(j=0; j < size; j++) { - c = __fgetc(fp); - if (c==EOF) goto quit; - *p++ = (unsigned char)c; - } - } - -quit: - return i; -} diff --git a/src/crent370/clib/@@fread.o b/src/crent370/clib/@@fread.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@fread.s b/src/crent370/clib/@@fread.s deleted file mode 100644 index d165056..0000000 --- a/src/crent370/clib/@@fread.s +++ /dev/null @@ -1,121 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@fread.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__fread' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__fread' -@@FREAD PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__fread' code - SLR 8,8 ==> nmemb - SLR 9,9 ==> nmemb - L 4,4(11) ==> size - L 7,8(11) ==> nmemb - L 6,12(11) ==> fp - L 3,0(11) ==> p,ptr - MVC 108(4,13),=F'0' - LH 2,40(6) ==> .flags - N 2,=F'1' - SLR 5,5 ==> i - CH 2,=H'0' - BNE @@L3 - LH 2,40(6) ==> .flags - N 2,=F'512' - CH 2,=H'0' - BE @@L4 - LR 9,7 ==> nmemb - MR 8,4 ==> nmemb,size - LR 4,9 ==> size,nmemb - MVC 88(4,13),8(6) ==> .dcb - LA 2,104(,13) - ST 2,92(13) - LA 2,108(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@AREAD) - BALR 14,15 - LTR 15,15 ==> i - BE @@L5 - OC 40(2,6),=H'1' ==> .flags - SLR 5,5 ==> i - B @@L3 -@@L5 EQU * - LR 5,7 ==> i,nmemb - CL 9,108(13) ==> size - BNH @@L6 - L 4,108(13) ==> size -@@L6 EQU * - MVC 88(4,13),0(11) ==> ptr - MVC 92(4,13),104(13) - ST 4,96(13) ==> size - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - L 2,24(6) ==> .filepos - A 2,=F'1' - ST 2,24(6) ==> .filepos - B @@L3 -@@L4 EQU * - SLR 5,5 ==> i - CLR 5,7 ==> i,nmemb - BNL @@L3 -@@L17 EQU * - SLR 2,2 ==> j - CLR 2,4 ==> j,size - BNL @@L20 -@@L16 EQU * - ST 6,88(13) ==> fp - LA 1,88(,13) - L 15,=V(@@FGETC) - BALR 14,15 - L 8,=F'-1' - CLR 15,8 ==> c - BE @@L3 - STC 15,0(3) ==> c,p - A 3,=F'1' ==> p - A 2,=F'1' ==> j - CLR 2,4 ==> j,size - BL @@L16 -@@L20 EQU * - A 5,=F'1' ==> i - CLR 5,7 ==> i,nmemb - BL @@L17 -@@L3 EQU * - LR 15,5 ==> i -* Function '__fread' epilogue - PDPEPIL -* Function '__fread' literal pool - DS 0D - LTORG -* Function '__fread' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@freeds.c b/src/crent370/clib/@@freeds.c deleted file mode 100644 index 3cd95c6..0000000 --- a/src/crent370/clib/@@freeds.c +++ /dev/null @@ -1,29 +0,0 @@ -/* @@FREEDS.C - free array created by __listds() */ -#include -#include -#include -#include -#include -#include -#include "clibary.h" /* dynamic array prototypes */ -#include "cliblist.h" /* __listc() */ - -void -__freeds(DSLIST ***dslist) -{ - if (dslist && *dslist) { - unsigned count = arraycount(dslist); - unsigned n; - - if (count) { - DSLIST **list = *dslist; - for(n=0; n < count; n++) { - if (!list[n]) continue; - free(list[n]); - list[n] = 0; - } - } - arrayfree(dslist); - *dslist = 0; - } -} diff --git a/src/crent370/clib/@@freeds.o b/src/crent370/clib/@@freeds.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@freeds.s b/src/crent370/clib/@@freeds.s deleted file mode 100644 index abf423d..0000000 --- a/src/crent370/clib/@@freeds.s +++ /dev/null @@ -1,86 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@freeds.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__freeds' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC '__freeds' -@@FREEDS PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__freeds' code - L 6,0(11) ==> dslist - LTR 6,6 ==> dslist - BE @@L1 - L 2,0(6) ==> dslist - LTR 2,2 - BE @@L1 - ST 6,88(13) ==> dslist - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 5,15 ==> count - LTR 15,15 ==> count - BE @@L3 - L 7,0(6) ==> list,dslist - SLR 4,4 ==> n - CLR 4,15 ==> n,count - BNL @@L3 -@@L9 EQU * - LR 3,4 ==> n - MH 3,=H'4' - L 2,0(3,7) - LTR 2,2 - BE @@L6 - ST 2,88(13) - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - SLR 2,2 - ST 2,0(3,7) -@@L6 EQU * - A 4,=F'1' ==> n - CLR 4,5 ==> n,count - BL @@L9 -@@L3 EQU * - ST 6,88(13) ==> dslist - LA 1,88(,13) - L 15,=V(@@ARFRE) - BALR 14,15 - MVC 0(4,6),=F'0' ==> dslist -@@L1 EQU * -* Function '__freeds' epilogue - PDPEPIL -* Function '__freeds' literal pool - DS 0D - LTORG -* Function '__freeds' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@freepd.c b/src/crent370/clib/@@freepd.c deleted file mode 100644 index 3bf519f..0000000 --- a/src/crent370/clib/@@freepd.c +++ /dev/null @@ -1,29 +0,0 @@ -/* @@FREEPD.C - free array created by __listpd() */ -#include -#include -#include -#include -#include -#include -#include "clibary.h" /* dynamic array prototypes */ -#include "cliblist.h" /* __listpd() */ - -void -__freepd(PDSLIST ***pdslist) -{ - if (pdslist && *pdslist) { - unsigned count = __arcou(pdslist); - unsigned n; - - if (count) { - PDSLIST **list = *pdslist; - for(n=0; n < count; n++) { - if (!list[n]) continue; - free(list[n]); - list[n] = 0; - } - } - __arfre(pdslist); - *pdslist = 0; - } -} diff --git a/src/crent370/clib/@@freepd.o b/src/crent370/clib/@@freepd.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@freepd.s b/src/crent370/clib/@@freepd.s deleted file mode 100644 index d834047..0000000 --- a/src/crent370/clib/@@freepd.s +++ /dev/null @@ -1,86 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@freepd.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__freepd' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC '__freepd' -@@FREEPD PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__freepd' code - L 6,0(11) ==> pdslist - LTR 6,6 ==> pdslist - BE @@L1 - L 2,0(6) ==> pdslist - LTR 2,2 - BE @@L1 - ST 6,88(13) ==> pdslist - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 5,15 ==> count - LTR 15,15 ==> count - BE @@L3 - L 7,0(6) ==> list,pdslist - SLR 4,4 ==> n - CLR 4,15 ==> n,count - BNL @@L3 -@@L9 EQU * - LR 3,4 ==> n - MH 3,=H'4' - L 2,0(3,7) - LTR 2,2 - BE @@L6 - ST 2,88(13) - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - SLR 2,2 - ST 2,0(3,7) -@@L6 EQU * - A 4,=F'1' ==> n - CLR 4,5 ==> n,count - BL @@L9 -@@L3 EQU * - ST 6,88(13) ==> pdslist - LA 1,88(,13) - L 15,=V(@@ARFRE) - BALR 14,15 - MVC 0(4,6),=F'0' ==> pdslist -@@L1 EQU * -* Function '__freepd' epilogue - PDPEPIL -* Function '__freepd' literal pool - DS 0D - LTORG -* Function '__freepd' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@freevl.c b/src/crent370/clib/@@freevl.c deleted file mode 100644 index 34d15bf..0000000 --- a/src/crent370/clib/@@freevl.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "clibary.h" -#include "cliblist.h" - -void __freevl(VOLLIST ***pppvollist) -{ - VOLLIST **vollist; - unsigned n, count; - - if (!pppvollist) goto quit; - - vollist = *pppvollist; - if (!vollist) goto quit; - - count = array_count(&vollist); - for(n=count; n > 0; n--) { - VOLLIST *v = array_del(&vollist, n); - - if (!v) continue; - if (v->comment) { - free(v->comment); - v->comment = NULL; - } - free(v); - } - - array_free(&vollist); - *pppvollist = NULL; - -quit: - return; -} diff --git a/src/crent370/clib/@@freevl.o b/src/crent370/clib/@@freevl.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@freevl.s b/src/crent370/clib/@@freevl.s deleted file mode 100644 index f4e522e..0000000 --- a/src/crent370/clib/@@freevl.s +++ /dev/null @@ -1,97 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@freevl.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__freevl' prologue -* frame base=88, local stack=8, call args=8 -&FUNC SETC '__freevl' -@@FREEVL PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__freevl' code - L 4,0(11) ==> pppvollist - LTR 4,4 ==> pppvollist - BE @@L1 - MVC 96(4,13),0(4) ==> pppvollist - L 2,96(13) - LTR 2,2 - BE @@L1 - LA 2,96(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 3,15 ==> n - LTR 15,15 ==> n - BE @@L13 -@@L11 EQU * - LA 2,96(,13) - ST 2,88(13) - ST 3,92(13) ==> n - LA 1,88(,13) - L 15,=V(@@ARDEL) - BALR 14,15 - LR 2,15 ==> v - LTR 15,15 ==> v - BE @@L7 - L 15,36(15) ==> .comment - LTR 15,15 - BE @@L10 - ST 15,88(13) - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - MVC 36(4,2),=F'0' ==> .comment -@@L10 EQU * - ST 2,88(13) ==> v - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L7 EQU * - BCTR 3,0 ==> n - LTR 3,3 ==> n - BNE @@L11 -@@L13 EQU * - LA 2,96(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARFRE) - BALR 14,15 - MVC 0(4,4),=F'0' ==> pppvollist -@@L3 EQU * -@@L1 EQU * -* Function '__freevl' epilogue - PDPEPIL -* Function '__freevl' literal pool - DS 0D - LTORG -* Function '__freevl' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@frtx99.c b/src/crent370/clib/@@frtx99.c deleted file mode 100644 index 85be53b..0000000 --- a/src/crent370/clib/@@frtx99.c +++ /dev/null @@ -1,14 +0,0 @@ -/* @@FRTX99.C */ -#include -#include -#include -#include "svc99.h" - -void -__frtx99(TXT99 **txt99) -{ - if (txt99 && *txt99) { - free(*txt99); - *txt99 = NULL; - } -} diff --git a/src/crent370/clib/@@frtx99.o b/src/crent370/clib/@@frtx99.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@frtx99.s b/src/crent370/clib/@@frtx99.s deleted file mode 100644 index 717a7f9..0000000 --- a/src/crent370/clib/@@frtx99.s +++ /dev/null @@ -1,58 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@frtx99.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__frtx99' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC '__frtx99' -@@FRTX99 PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__frtx99' code - L 2,0(11) ==> txt99 - LTR 2,2 ==> txt99 - BE @@L1 - L 15,0(2) ==> txt99 - LTR 15,15 - BE @@L1 - ST 15,88(13) - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - MVC 0(4,2),=F'0' ==> txt99 -@@L1 EQU * -* Function '__frtx99' epilogue - PDPEPIL -* Function '__frtx99' literal pool - DS 0D - LTORG -* Function '__frtx99' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@frtx9a.c b/src/crent370/clib/@@frtx9a.c deleted file mode 100644 index e592d41..0000000 --- a/src/crent370/clib/@@frtx9a.c +++ /dev/null @@ -1,21 +0,0 @@ -/* @@FRTX9A.C */ -#include -#include -#include -#include "svc99.h" -#include "clibary.h" - -void -__frtx9a(TXT99 ***txt99) -{ - if (txt99 && *txt99) { - TXT99 **p = *txt99; - unsigned count = arraycount(&p); - unsigned n; - - for( n=0; n < count; n++ ) { - FreeTXT99(&p[n]); - } - arrayfree(txt99); - } -} diff --git a/src/crent370/clib/@@frtx9a.o b/src/crent370/clib/@@frtx9a.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@frtx9a.s b/src/crent370/clib/@@frtx9a.s deleted file mode 100644 index 8f21126..0000000 --- a/src/crent370/clib/@@frtx9a.s +++ /dev/null @@ -1,79 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@frtx9a.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__frtx9a' prologue -* frame base=88, local stack=8, call args=8 -&FUNC SETC '__frtx9a' -@@FRTX9A PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__frtx9a' code - L 5,0(11) ==> txt99 - LTR 5,5 ==> txt99 - BE @@L1 - L 2,0(5) ==> txt99 - LTR 2,2 - BE @@L1 - ST 2,96(13) - LA 2,96(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 4,15 ==> count - SLR 3,3 ==> n - CLR 3,15 ==> n,count - BNL @@L9 -@@L7 EQU * - LR 2,3 ==> n - MH 2,=H'4' - A 2,96(13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@FRTX99) - BALR 14,15 - A 3,=F'1' ==> n - CLR 3,4 ==> n,count - BL @@L7 -@@L9 EQU * - ST 5,88(13) ==> txt99 - LA 1,88(,13) - L 15,=V(@@ARFRE) - BALR 14,15 -@@L1 EQU * -* Function '__frtx9a' epilogue - PDPEPIL -* Function '__frtx9a' literal pool - DS 0D - LTORG -* Function '__frtx9a' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@fseek.c b/src/crent370/clib/@@fseek.c deleted file mode 100644 index 06280a8..0000000 --- a/src/crent370/clib/@@fseek.c +++ /dev/null @@ -1,102 +0,0 @@ -/* @@FSEEK.C - caller should hold lock on file handle */ -#include - -int -__fseek(FILE *fp, long int offset, int whence) -{ - long oldpos; - long newpos; - char fnm[FILENAME_MAX]; - long int x; - size_t y; - char buf[1000]; - - /* *any* seek will clear the error and eof indicators */ - fp->flags &= 0xFFFF - _FILE_FLAG_ERROR; - fp->flags &= 0xFFFF - _FILE_FLAG_EOF; - - /* get current offset in this stream */ - oldpos = fp->filepos; - if (fp->flags & _FILE_FLAG_WRITE) { - __fflush(fp); - } - - if (whence == SEEK_SET) { - newpos = offset; - } - else if (whence == SEEK_CUR) { - newpos = oldpos + offset; - } - - if (whence == SEEK_END) { - /* read until end of file or error */ - while (__fread(buf, sizeof(buf), 1, fp) == 1) { - /* do nothing */ - } - goto quit; - } - - /* if we're in read mode */ - if (fp->flags & _FILE_FLAG_READ) { - if (fp->flags & _FILE_FLAG_RECORD) { - /* record mode, newpos is desired record number */ - if (newpos == fp->filepos) { - fp->upto = fp->buf; - goto quit; - } - } - else { - /* calculate RBA for start and end of buffer */ - long start = oldpos - (fp->upto - fp->buf); - long end = oldpos + (fp->endbuf - fp->upto); - - /* is newpos within the current buffer? */ - if ((newpos >= start) && (newpos < end)) { - /* yes, reposition and we're done */ - fp->upto = fp->buf + (size_t)(newpos - oldpos); - goto quit; - } - } - } - - if (newpos < oldpos) { - /* we need to reopen the file */ - if (fp->member[0] > ' ') { - sprintf(fnm, "dd:%s(%s)", fp->ddname, fp->member); - } - else { - sprintf(fnm, "dd:%s", fp->ddname); - } - if (__reopen(fnm, fp->mode, fp) == NULL) goto quit; - oldpos = 0; - } - - if (fp->flags & _FILE_FLAG_RECORD) { - /* record mode, newpos is desired record number */ - for(x=oldpos; x < newpos; x++) { - __fread(buf, sizeof(buf), 1, fp); - } - goto quit; - } - else { - /* byte stream mode, newpos is desired byte offset in file */ - int c; - for(x=oldpos; x < newpos; x++) { - c = __fgetc(fp); - if (c==EOF) { - fp->flags |= (_FILE_FLAG_ERROR + _FILE_FLAG_EOF); - goto quit; - } - } - } - -quit: - if (fp->flags & _FILE_FLAG_ERROR) { - /* well that's not good, something went wrong */ - return (-1); - } - - /* success */ - fp->ungetch = -1; /* discard the unget character */ - return (0); -} diff --git a/src/crent370/clib/@@fseek.o b/src/crent370/clib/@@fseek.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@fseek.s b/src/crent370/clib/@@fseek.s deleted file mode 100644 index e4bf75c..0000000 --- a/src/crent370/clib/@@fseek.s +++ /dev/null @@ -1,211 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@fseek.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__fseek' prologue -* frame base=88, local stack=1264, call args=16 -&FUNC SETC '__fseek' -@@FSEEK PDPPRLG CINDEX=0,FRAME=1368,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__fseek' code - L 4,0(11) ==> fp - L 7,4(11) ==> offset - L 3,8(11) ==> whence - LH 2,40(4) ==> .flags - LR 5,2 - N 5,=F'-4' - STH 5,40(4) ==> .flags - L 5,24(4) ==> oldpos,filepos - N 2,=F'4096' - CH 2,=H'0' - BE @@L2 - ST 4,88(13) ==> fp - LA 1,88(,13) - L 15,=V(@@FFLUSH) - BALR 14,15 -@@L2 EQU * - LTR 3,3 ==> whence - BNE @@L3 - LR 6,7 ==> newpos,offset - B @@L4 -@@L3 EQU * - LA 2,1(0,0) - CLR 3,2 ==> whence - BNE @@L4 - LR 6,5 ==> newpos,oldpos - AR 6,7 ==> newpos,offset -@@L4 EQU * - LA 2,2(0,0) - CLR 3,2 ==> whence - BNE @@L6 - LA 2,368(,13) -@@L7 EQU * - ST 2,88(13) - MVC 92(4,13),=F'1000' - MVC 96(4,13),=F'1' - ST 4,100(13) ==> fp - LA 1,88(,13) - L 15,=V(@@FREAD) - BALR 14,15 - LA 3,1(0,0) - CLR 15,3 ==> c - BNE @@L10 - B @@L7 -@@L6 EQU * - LH 3,40(4) ==> .flags - LR 2,3 - N 2,=F'8192' - CH 2,=H'0' - BE @@L11 - LR 2,3 - N 2,=F'512' - CH 2,=H'0' - BE @@L12 - CL 6,24(4) ==> newpos,filepos - BNE @@L11 - MVC 32(4,4),28(4) ==> .upto,buf - B @@L10 -@@L12 EQU * - L 2,32(4) ==> .upto - S 2,28(4) ==> .buf - LR 3,5 ==> start,oldpos - SR 3,2 ==> start - L 2,36(4) ==> .endbuf - S 2,32(4) ==> .upto - AR 2,5 ==> end,oldpos - CR 6,3 ==> newpos,start - BL @@L11 - CR 6,2 ==> newpos,end - BNL @@L11 - LR 2,6 ==> newpos - SR 2,5 ==> oldpos - A 2,28(4) ==> .buf - ST 2,32(4) ==> .upto - B @@L10 -@@L11 EQU * - CR 6,5 ==> newpos,oldpos - BNL @@L16 - CLI 52(4),64 ==> .member - BNH @@L17 - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC0) - LR 2,4 ==> fp - A 2,=F'43' - ST 2,96(13) - A 2,=F'9' - ST 2,100(13) - B @@L37 -@@L36 EQU * - OC 40(2,4),=H'3' ==> .flags - B @@L10 -@@L17 EQU * - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC1) - LR 2,4 ==> fp - A 2,=F'43' - ST 2,96(13) -@@L37 EQU * - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - LA 2,104(,13) - ST 2,88(13) - LR 2,4 ==> fp - A 2,=F'106' - ST 2,92(13) - ST 4,96(13) ==> fp - LA 1,88(,13) - L 15,=V(@@REOPEN) - BALR 14,15 - LTR 15,15 ==> c - BE @@L10 - SLR 5,5 ==> oldpos -@@L16 EQU * - LH 2,40(4) ==> .flags - N 2,=F'512' - CH 2,=H'0' - BE @@L20 - LR 2,5 ==> x,oldpos - CR 5,6 ==> x,newpos - BNL @@L10 - LA 3,368(,13) -@@L25 EQU * - ST 3,88(13) - MVC 92(4,13),=F'1000' - MVC 96(4,13),=F'1' - ST 4,100(13) ==> fp - LA 1,88(,13) - L 15,=V(@@FREAD) - BALR 14,15 - A 2,=F'1' ==> x - CR 2,6 ==> x,newpos - BNL @@L10 - B @@L25 -@@L20 EQU * - LR 2,5 ==> x,oldpos - CR 5,6 ==> x,newpos - BNL @@L10 -@@L32 EQU * - ST 4,88(13) ==> fp - LA 1,88(,13) - L 15,=V(@@FGETC) - BALR 14,15 - L 5,=F'-1' - CR 15,5 ==> c - BE @@L36 - A 2,=F'1' ==> x - CR 2,6 ==> x,newpos - BL @@L32 -@@L10 EQU * - LH 2,40(4) ==> .flags - N 2,=F'2' - L 15,=F'-1' ==> c - CH 2,=H'0' - BNE @@L1 - MVC 20(4,4),=F'-1' ==> .ungetch - SLR 15,15 ==> c -@@L1 EQU * -* Function '__fseek' epilogue - PDPEPIL -* Function '__fseek' literal pool - DS 0D - LTORG -* Function '__fseek' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'dd:%s(%s)' - DC X'0' -@@LC1 EQU * - DC C'dd:%s' - DC X'0' - END diff --git a/src/crent370/clib/@@fwrite.c b/src/crent370/clib/@@fwrite.c deleted file mode 100644 index c7a63d9..0000000 --- a/src/crent370/clib/@@fwrite.c +++ /dev/null @@ -1,41 +0,0 @@ -/* @@FWRITE.C - caller should hold lock on file handle */ -#include -#include -#include -#include - -#define begwrite(fp, len) (lenwrite = (len), dptr = (fp)->asmbuf) -#define finwrite(fp) (__awrite((fp)->dcb, &dptr, &lenwrite)) - -size_t -__fwrite(const void *vptr, size_t size, size_t nmemb, FILE *fp) -{ - unsigned char *ptr = (unsigned char *)vptr; - size_t i = 0; - size_t j; - unsigned char *dptr; - size_t lenwrite; - - if (fp->flags & _FILE_FLAG_RECORD) { - /* use record oriented i/o */ - size *= nmemb; - begwrite(fp, size); - memcpy(dptr, ptr, size); - if (finwrite(fp)) goto quit; - fp->filepos += 1; /* count record written */ - i = 1; - goto quit; - } - - /* slower but accurate implementation */ - for(i=0; i < nmemb; i++) { - for(j=0; j < size; j++) { - if (__fputc(*ptr++, fp)==EOF) { - goto quit; - } - } - } - -quit: - return i; -} diff --git a/src/crent370/clib/@@fwrite.o b/src/crent370/clib/@@fwrite.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@fwrite.s b/src/crent370/clib/@@fwrite.s deleted file mode 100644 index 9dc5f0c..0000000 --- a/src/crent370/clib/@@fwrite.s +++ /dev/null @@ -1,110 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@fwrite.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__fwrite' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__fwrite' -@@FWRITE PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__fwrite' code - SLR 8,8 ==> nmemb - SLR 9,9 ==> nmemb - L 6,4(11) ==> size - L 7,12(11) ==> fp - L 4,0(11) ==> ptr,vptr - SLR 5,5 ==> i - LH 2,40(7) ==> .flags - N 2,=F'512' - CH 2,=H'0' - BE @@L2 - L 9,8(11) ==> nmemb - MR 8,6 ==> nmemb,size - ST 9,108(13) ==> nmemb - MVC 104(4,13),12(7) ==> .asmbuf - MVC 88(4,13),104(13) - ST 4,92(13) ==> ptr - ST 9,96(13) ==> nmemb - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - MVC 88(4,13),8(7) ==> .dcb - LA 2,104(,13) - ST 2,92(13) - LA 2,108(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@AWRITE) - BALR 14,15 - LTR 15,15 ==> i - BNE @@L4 - L 2,24(7) ==> .filepos - A 2,=F'1' - ST 2,24(7) ==> .filepos - LA 5,1(0,0) ==> i - B @@L4 -@@L2 EQU * - SLR 5,5 ==> i - CL 5,8(11) ==> i,nmemb - BNL @@L4 -@@L15 EQU * - SLR 3,3 ==> j - CLR 3,6 ==> j,size - BNL @@L18 -@@L14 EQU * - SLR 2,2 - IC 2,0(4) ==> ptr - ST 2,88(13) - A 4,=F'1' ==> ptr - ST 7,92(13) ==> fp - LA 1,88(,13) - L 15,=V(@@FPUTC) - BALR 14,15 - L 2,=F'-1' - CLR 15,2 ==> i - BE @@L4 - A 3,=F'1' ==> j - CLR 3,6 ==> j,size - BL @@L14 -@@L18 EQU * - A 5,=F'1' ==> i - CL 5,8(11) ==> i,nmemb - BL @@L15 -@@L4 EQU * - LR 15,5 ==> i -* Function '__fwrite' epilogue - PDPEPIL -* Function '__fwrite' literal pool - DS 0D - LTORG -* Function '__fwrite' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@get@er.c b/src/crent370/clib/@@get@er.c deleted file mode 100644 index f49e2a4..0000000 --- a/src/crent370/clib/@@get@er.c +++ /dev/null @@ -1,19 +0,0 @@ -/*********************************************************************/ -/* */ -/* This Program Written by Paul Edwards. */ -/* Released to the Public Domain */ -/* */ -/*********************************************************************/ -/*********************************************************************/ -/* */ -/* errno.c - implementation of stuff in errno.h */ -/* */ -/*********************************************************************/ - -#include "stddef.h" - -int __errno = 0; - -__PDPCLIB_API__ int *__get_errno() - { return(&__errno); } - diff --git a/src/crent370/clib/@@get@er.o b/src/crent370/clib/@@get@er.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@get@er.s b/src/crent370/clib/@@get@er.s deleted file mode 100644 index ceac5d8..0000000 --- a/src/crent370/clib/@@get@er.s +++ /dev/null @@ -1,53 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@get@er.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* X-var __errno - ENTRY @@ERRNO -* Program data area - DS 0F -@@ERRNO EQU * - DC F'0' -* Program text area - DS 0F - EJECT -* external function '__get_errno' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__get_errno' -@@GET@ER PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__get_errno' code - L 15,=A(@@ERRNO) -* Function '__get_errno' epilogue - PDPEPIL -* Function '__get_errno' literal pool - DS 0D - LTORG -* Function '__get_errno' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@getpso.c b/src/crent370/clib/@@getpso.c deleted file mode 100644 index 432cc58..0000000 --- a/src/crent370/clib/@@getpso.c +++ /dev/null @@ -1,31 +0,0 @@ -#include - -/* returns the address of the Process SYSOUT control block */ -__PSO *__getpso(void) -{ - __PSO *pso = 0; - - __asm("L\t15,PSATOLD-PSA OUR TCB ADDRESS\n\t" - "L\t15,TCBJSCB-TCB(,15) JSCB ADDRESS\n\t" - "USING IEZJSCB,15\n\t" - "L\t15,JSCBACT ACTIVE JSCB ADDRESS\n\t" - "L\t15,JSCBSSIB SSIB ADDRESS\n\t" - "DROP\t15\n\t" - "L\t15,SSIBSUSE-SSIB(,15) SJB ADDRESS\n\t" - "L\t15,SJBPSOP-SJBDSECT(,15) PSO ADDRESS\n\t" - "ST\t15,0(,%0)" : : "r"(&pso)); - - return pso; -} - __asm("PRINT NOGEN"); - __asm("IEFJSSOB (SO),CONTIG=NO\n\t" - "CSECT ,"); - __asm("$TQE"); - __asm("$CMB"); - __asm("$PSO"); - __asm("$SJB"); - __asm("$PDDB"); - __asm("IEZJSCB"); - __asm("IEFJSSIB"); - __asm("IKJTCB"); - __asm("IHAPSA"); diff --git a/src/crent370/clib/@@getpso.o b/src/crent370/clib/@@getpso.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@getpso.s b/src/crent370/clib/@@getpso.s deleted file mode 100644 index 5232604..0000000 --- a/src/crent370/clib/@@getpso.s +++ /dev/null @@ -1,70 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@getpso.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__getpso' prologue -* frame base=88, local stack=8, call args=0 -&FUNC SETC '__getpso' -@@GETPSO PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__getpso' code - MVC 88(4,13),=F'0' - LA 2,88(,13) - L 15,PSATOLD-PSA OUR TCB ADDRESS - L 15,TCBJSCB-TCB(,15) JSCB ADDRESS - USING IEZJSCB,15 - L 15,JSCBACT ACTIVE JSCB ADDRESS - L 15,JSCBSSIB SSIB ADDRESS - DROP 15 - L 15,SSIBSUSE-SSIB(,15) SJB ADDRESS - L 15,SJBPSOP-SJBDSECT(,15) PSO ADDRESS - ST 15,0(,2) - L 15,88(13) -* Function '__getpso' epilogue - PDPEPIL -* Function '__getpso' literal pool - DS 0D - LTORG -* Function '__getpso' page table -@@PGT0 DS 0F - DC A(@@PG0) - PRINT NOGEN - IEFJSSOB (SO),CONTIG=NO - CSECT , - $TQE - $CMB - $PSO - $SJB - $PDDB - IEZJSCB - IEFJSSIB - IKJTCB - IHAPSA - END diff --git a/src/crent370/clib/@@grtget.c b/src/crent370/clib/@@grtget.c deleted file mode 100644 index 80b74dd..0000000 --- a/src/crent370/clib/@@grtget.c +++ /dev/null @@ -1,12 +0,0 @@ -/* @@GRTGET.C */ -#define CLIB_C -#include "clib.h" - -CLIBGRT * -__grtget(void) -{ - CLIBCRT *crt = __crtget(); - CLIBGRT *grt = crt ? crt->crtgrt : 0; - - return grt; -} diff --git a/src/crent370/clib/@@grtget.o b/src/crent370/clib/@@grtget.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@grtget.s b/src/crent370/clib/@@grtget.s deleted file mode 100644 index e2e087d..0000000 --- a/src/crent370/clib/@@grtget.s +++ /dev/null @@ -1,55 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@grtget.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__grtget' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__grtget' -@@GRTGET PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__grtget' code - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - SLR 2,2 ==> grt - LTR 15,15 ==> crt - BE @@L3 - L 2,280(15) ==> grt,crtgrt -@@L3 EQU * - LR 15,2 ==> grt -* Function '__grtget' epilogue - PDPEPIL -* Function '__grtget' literal pool - DS 0D - LTORG -* Function '__grtget' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@grtres.c b/src/crent370/clib/@@grtres.c deleted file mode 100644 index c45d222..0000000 --- a/src/crent370/clib/@@grtres.c +++ /dev/null @@ -1,30 +0,0 @@ -#define CLIB_C -#include -#include -#include "clib.h" -#include "clibppa.h" - -int -__grtres(void) -{ - int rc = -1; - CLIBCRT *crt = __crtget(); - CLIBPPA *ppa = __PPAGET(); - - if (crt) { - CLIBGRT *grt = crt->crtgrt; - if (grt) { - if (memcmp(grt->grteye, "CLIBGRT ", 8)==0) { - memset(grt->grteye, 0, sizeof(grt->grteye)); - free(grt); - rc = 0; - } - if (rc==0 && ppa) { - if (ppa->ppagrt == grt) ppa->ppagrt = 0; - } - } - } - -quit: - return rc; -} diff --git a/src/crent370/clib/@@grtres.o b/src/crent370/clib/@@grtres.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@grtres.s b/src/crent370/clib/@@grtres.s deleted file mode 100644 index 1f02ca7..0000000 --- a/src/crent370/clib/@@grtres.s +++ /dev/null @@ -1,97 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@grtres.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__grtres' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__grtres' -@@GRTRES PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__grtres' code - L 6,=F'-1' ==> rc - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - LR 2,15 ==> crt - LA 1,88(,13) - L 15,=V(@@PPAGET) - BALR 14,15 - LR 5,15 ==> ppa - LTR 2,2 ==> crt - BE @@L8 - L 4,280(2) ==> grt,crtgrt - LTR 4,4 ==> grt - BE @@L8 - ST 4,88(13) ==> grt - MVC 92(4,13),=A(@@LC0) - MVC 96(4,13),=F'8' - LA 1,88(,13) - L 15,=V(MEMCMP) - BALR 14,15 - LR 3,15 ==> crt - LTR 15,15 ==> crt - BNE @@L4 - LA 2,8(0,0) ==> n - -*** MEMSET *** - LR 14,4 => target (s) ==> grt - LR 15,2 => length (n) ==> n - SLR 0,0 => source (NULL) - LR 1,3 fill character ==> crt - SLL 1,24 move fill to high byte - MVCL 14,0 Set target to fill character - ST 4,88(13) ==> grt - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - LR 6,3 ==> rc,crt -@@L4 EQU * - LTR 6,6 ==> rc - BNE @@L8 - LTR 5,5 ==> ppa - BE @@L8 - L 2,16(5) ==> .ppagrt - CLR 2,4 ==> grt - BNE @@L8 - ST 6,16(5) ==> rc,ppagrt -@@L8 EQU * - LR 15,6 ==> rc -* Function '__grtres' epilogue - PDPEPIL -* Function '__grtres' literal pool - DS 0D - LTORG -* Function '__grtres' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'CLIBGRT ' - DC X'0' - END diff --git a/src/crent370/clib/@@grtset.c b/src/crent370/clib/@@grtset.c deleted file mode 100644 index 006b270..0000000 --- a/src/crent370/clib/@@grtset.c +++ /dev/null @@ -1,31 +0,0 @@ -#define CLIB_C -#include -#include -#include "clib.h" -#include "clibppa.h" -#include "clibary.h" -#include "cliblock.h" - -int -__grtset(void) -{ - int rc = -1; - CLIBCRT *crt = __crtget(); - - if (crt) { - CLIBPPA *ppa = __PPAGET(); - if (ppa) { - CLIBGRT *grt = calloc(1, sizeof(CLIBGRT)); - if (grt) { - memcpy(grt->grteye, "CLIBGRT ", 8); - grt->grtclibl = sizeof(CLIBGRT); - crt->crtgrt = grt; - ppa->ppagrt = grt; - rc = 0; - } - } - } - -quit: - return rc; -} diff --git a/src/crent370/clib/@@grtset.o b/src/crent370/clib/@@grtset.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@grtset.s b/src/crent370/clib/@@grtset.s deleted file mode 100644 index 0c59638..0000000 --- a/src/crent370/clib/@@grtset.s +++ /dev/null @@ -1,82 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@grtset.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__grtset' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__grtset' -@@GRTSET PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__grtset' code - L 5,=F'-1' ==> rc - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - LR 3,15 ==> crt - LTR 15,15 ==> crt - BE @@L5 - LA 1,88(,13) - L 15,=V(@@PPAGET) - BALR 14,15 - LR 4,15 ==> ppa - LTR 15,15 ==> ppa - BE @@L5 - MVC 88(4,13),=F'1' - MVC 92(4,13),=F'80' - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 2,15 ==> crt - LTR 15,15 ==> crt - BE @@L5 - ST 15,88(13) ==> crt - MVC 92(4,13),=A(@@LC0) - MVC 96(4,13),=F'8' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - MVC 8(2,2),=H'80' ==> .grtclibl - ST 2,280(3) ==> crt,crtgrt - ST 2,16(4) ==> crt,ppagrt - SLR 5,5 ==> rc -@@L5 EQU * - LR 15,5 ==> rc -* Function '__grtset' epilogue - PDPEPIL -* Function '__grtset' literal pool - DS 0D - LTORG -* Function '__grtset' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'CLIBGRT ' - DC X'0' - END diff --git a/src/crent370/clib/@@gtcom.c b/src/crent370/clib/@@gtcom.c deleted file mode 100644 index bbf22c9..0000000 --- a/src/crent370/clib/@@gtcom.c +++ /dev/null @@ -1,18 +0,0 @@ -#include "clibcib.h" -#include "clibcrt.h" - -COM * -__gtcom(void) -{ - CLIBGRT *grt = __grtget(); - COM *com = grt->grtcom; - unsigned work[3] = {0}; - - if (!com) { - __asm__("EXTRACT (%0),FIELDS=COMM,MF=(E,(%1))" : : - "r" (&grt->grtcom), "r"(work) : "1", "14", "15"); - return grt->grtcom; - } - - return com; -} diff --git a/src/crent370/clib/@@gtcom.o b/src/crent370/clib/@@gtcom.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@gtcom.s b/src/crent370/clib/@@gtcom.s deleted file mode 100644 index fee3046..0000000 --- a/src/crent370/clib/@@gtcom.s +++ /dev/null @@ -1,64 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@gtcom.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__gtcom' prologue -* frame base=88, local stack=16, call args=0 -&FUNC SETC '__gtcom' -@@GTCOM PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__gtcom' code - LA 1,88(,13) - L 15,=V(@@GRTGET) - BALR 14,15 - LR 6,15 ==> grt - L 15,48(15) ==> com,grtcom - LA 4,88(,13) - LA 5,12(0,0) - SLR 2,2 - LR 3,2 - MVCL 4,2 - LTR 15,15 ==> com - BNE @@L1 - LR 3,6 ==> grt - A 3,=F'48' - LA 2,88(,13) - EXTRACT (3),FIELDS=COMM,MF=(E,(2)) - L 15,0(3) ==> com,grtcom -@@L1 EQU * -* Function '__gtcom' epilogue - PDPEPIL -* Function '__gtcom' literal pool - DS 0D - LTORG -* Function '__gtcom' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@gterr.c b/src/crent370/clib/@@gterr.c deleted file mode 100644 index 57f8a4f..0000000 --- a/src/crent370/clib/@@gterr.c +++ /dev/null @@ -1,11 +0,0 @@ -/* @@GTERR.C */ -#include -#include "clibcrt.h" - -FILE ** -__gterr(void) -{ - CLIBGRT *grt = __grtget(); - - return((FILE**)&grt->grterr); -} diff --git a/src/crent370/clib/@@gterr.o b/src/crent370/clib/@@gterr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@gterr.s b/src/crent370/clib/@@gterr.s deleted file mode 100644 index 5cb56b9..0000000 --- a/src/crent370/clib/@@gterr.s +++ /dev/null @@ -1,50 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@gterr.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__gterr' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__gterr' -@@GTERR PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__gterr' code - LA 1,88(,13) - L 15,=V(@@GRTGET) - BALR 14,15 - A 15,=F'44' ==> grt -* Function '__gterr' epilogue - PDPEPIL -* Function '__gterr' literal pool - DS 0D - LTORG -* Function '__gterr' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@gtin.c b/src/crent370/clib/@@gtin.c deleted file mode 100644 index f9bda50..0000000 --- a/src/crent370/clib/@@gtin.c +++ /dev/null @@ -1,10 +0,0 @@ -/* @@GTIN.C */ -#include -#include "clibcrt.h" - -FILE **__gtin(void) -{ - CLIBGRT *grt = __grtget(); - - return((FILE**)&grt->grtin); -} diff --git a/src/crent370/clib/@@gtin.o b/src/crent370/clib/@@gtin.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@gtin.s b/src/crent370/clib/@@gtin.s deleted file mode 100644 index 9680335..0000000 --- a/src/crent370/clib/@@gtin.s +++ /dev/null @@ -1,50 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@gtin.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__gtin' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__gtin' -@@GTIN PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__gtin' code - LA 1,88(,13) - L 15,=V(@@GRTGET) - BALR 14,15 - A 15,=F'36' ==> grt -* Function '__gtin' epilogue - PDPEPIL -* Function '__gtin' literal pool - DS 0D - LTORG -* Function '__gtin' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@gtout.c b/src/crent370/clib/@@gtout.c deleted file mode 100644 index 67ca423..0000000 --- a/src/crent370/clib/@@gtout.c +++ /dev/null @@ -1,11 +0,0 @@ -/* @@GTOUT.C */ -#include -#include "clibcrt.h" - -FILE ** -__gtout(void) -{ - CLIBGRT *grt = __grtget(); - - return((FILE**)&grt->grtout); -} diff --git a/src/crent370/clib/@@gtout.o b/src/crent370/clib/@@gtout.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@gtout.s b/src/crent370/clib/@@gtout.s deleted file mode 100644 index 0bf3fa5..0000000 --- a/src/crent370/clib/@@gtout.s +++ /dev/null @@ -1,50 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@gtout.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__gtout' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__gtout' -@@GTOUT PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__gtout' code - LA 1,88(,13) - L 15,=V(@@GRTGET) - BALR 14,15 - A 15,=F'40' ==> grt -* Function '__gtout' epilogue - PDPEPIL -* Function '__gtout' literal pool - DS 0D - LTORG -* Function '__gtout' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@idecth.c b/src/crent370/clib/@@idecth.c deleted file mode 100644 index f59cba0..0000000 --- a/src/crent370/clib/@@idecth.c +++ /dev/null @@ -1,19 +0,0 @@ -#include - -__asm__("\n&FUNC SETC 'clib_identify_cthread'"); -int -clib_identify_cthread(void) -{ - int rc = 0; - - /* CTHREAD does not already exist, identify it now */ - /* wtof("%s preparing to IDENTIFY CTHREAD", __func__); */ - - __asm__("L 1,=V(CTHREAD) A(thread driver routine)\n\t" - "LA 0,=CL8'CTHREAD'\n\t" - "IDENTIFY EPLOC=(0),ENTRY=(1)\n\t" - "ST 15,0(,%0)\n" : : "r" (&rc): "0", "1", "14", "15"); - __asm__("\n*\n"); - - return rc; -} diff --git a/src/crent370/clib/@@idecth.o b/src/crent370/clib/@@idecth.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@idecth.s b/src/crent370/clib/@@idecth.s deleted file mode 100644 index aaab2cd..0000000 --- a/src/crent370/clib/@@idecth.s +++ /dev/null @@ -1,59 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@idecth.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'clib_identify_cthread' -* Program text area - DS 0F - EJECT -* external function 'clib_identify_cthread' prologue -* frame base=88, local stack=8, call args=0 -&FUNC SETC 'clib_identify_cthread' -@@IDECTH PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'clib_identify_cthread' code - MVC 88(4,13),=F'0' - LA 2,88(,13) - L 1,=V(CTHREAD) A(thread driver routine) - LA 0,=CL8'CTHREAD' - IDENTIFY EPLOC=(0),ENTRY=(1) - ST 15,0(,2) - - -* - - SLR 15,15 -* Function 'clib_identify_cthread' epilogue - PDPEPIL -* Function 'clib_identify_cthread' literal pool - DS 0D - LTORG -* Function 'clib_identify_cthread' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@inaton.c b/src/crent370/clib/@@inaton.c deleted file mode 100644 index 4b838c3..0000000 --- a/src/crent370/clib/@@inaton.c +++ /dev/null @@ -1,53 +0,0 @@ -#include - -/* inet_aton() - converts IPV4 string to in_addr_t struct */ -/* returns 0 for success, otherwise invalid parms or IPV4 string */ -int inet_aton(const char *cp, in_addr_t *inp) -{ - int rc = -1; - char *next; - unsigned x; - - while (cp && inp) { - x = strtoul(cp, &next, 0); - if (!next[0]) { - inp->s_addr = x; - rc = 0; - break; - } - inp->s_addr = x << 24; - if (next[0]=='.') { - x = strtoul(&next[1], &next, 0); - if (x > 0x00FFFFFF) break; - if (!next[0]) { - inp->s_addr |= x; - rc = 0; - break; - } - else { - inp->s_addr |= x << 16; - } - } - if (next[0]=='.') { - x = strtoul(&next[1], &next, 0); - if (x > 0x0000FFFF) break; - if (!next[0]) { - inp->s_addr |= x; - rc = 0; - break; - } - else { - inp->s_addr |= x << 8; - } - } - if (next[0]=='.') { - x = strtoul(&next[1], &next, 0); - if (x > 0xFF) break; - inp->s_addr |= x; - } - rc = 0; - break; - } - - return rc; -} diff --git a/src/crent370/clib/@@inaton.o b/src/crent370/clib/@@inaton.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@inaton.s b/src/crent370/clib/@@inaton.s deleted file mode 100644 index b115f11..0000000 --- a/src/crent370/clib/@@inaton.s +++ /dev/null @@ -1,135 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@inaton.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'inet_aton' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'inet_aton' -@@INATON PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'inet_aton' code - L 2,0(11) ==> cp - L 3,4(11) ==> inp - L 4,=F'-1' ==> rc - LTR 2,2 ==> cp - BE @@L3 - LTR 3,3 ==> inp - BE @@L3 - ST 2,88(13) ==> cp - LA 2,104(,13) - ST 2,92(13) - MVC 96(4,13),=F'0' - LA 1,88(,13) - L 15,=V(STRTOUL) - BALR 14,15 - L 2,104(13) - IC 2,0(2) - CLM 2,1,=XL1'00' - BE @@L19 - LR 2,15 ==> x - SLL 2,24 - ST 2,0(3) ==> .s_addr - L 2,104(13) - CLI 0(2),75 - BNE @@L7 - A 2,=F'1' - ST 2,88(13) - LA 2,104(,13) - ST 2,92(13) - MVC 96(4,13),=F'0' - LA 1,88(,13) - L 15,=V(STRTOUL) - BALR 14,15 - L 2,=F'16777215' - CLR 15,2 ==> x - BH @@L3 - L 2,104(13) - IC 2,0(2) - CLM 2,1,=XL1'00' - BE @@L20 - LR 2,15 ==> x - SLL 2,16 - O 2,0(3) ==> .s_addr - ST 2,0(3) ==> .s_addr -@@L7 EQU * - L 2,104(13) - CLI 0(2),75 - BNE @@L11 - A 2,=F'1' - ST 2,88(13) - LA 2,104(,13) - ST 2,92(13) - MVC 96(4,13),=F'0' - LA 1,88(,13) - L 15,=V(STRTOUL) - BALR 14,15 - L 2,=F'65535' - CLR 15,2 ==> x - BH @@L3 - L 2,104(13) - IC 2,0(2) - CLM 2,1,=XL1'00' - BE @@L20 - LR 2,15 ==> x - SLL 2,8 - O 2,0(3) ==> .s_addr - ST 2,0(3) ==> .s_addr -@@L11 EQU * - L 2,104(13) - CLI 0(2),75 - BNE @@L15 - A 2,=F'1' - ST 2,88(13) - LA 2,104(,13) - ST 2,92(13) - MVC 96(4,13),=F'0' - LA 1,88(,13) - L 15,=V(STRTOUL) - BALR 14,15 - LA 2,255(0,0) - CLR 15,2 ==> x - BH @@L3 -@@L20 EQU * - O 15,0(3) ==> x,s_addr -@@L19 EQU * - ST 15,0(3) ==> x,s_addr -@@L15 EQU * - SLR 4,4 ==> rc -@@L3 EQU * - LR 15,4 ==> rc -* Function 'inet_aton' epilogue - PDPEPIL -* Function 'inet_aton' literal pool - DS 0D - LTORG -* Function 'inet_aton' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@inc.c b/src/crent370/clib/@@inc.c deleted file mode 100644 index 27834fe..0000000 --- a/src/crent370/clib/@@inc.c +++ /dev/null @@ -1,29 +0,0 @@ -/* @@INC.C - increment signed value via compare and swap -*/ -#include "clibos.h" - -int __inc(void *mem) -{ - int old_value = 0; - - if (!mem) goto quit; - - __asm__("\n" -"AGAIN DS 0H\n" -" L 0,0(,%1) get current value\n" -" LR 1,0 copy for new value\n" -" C 1,=F'2147483647' max value?\n" -" BNE INCIT no, bump it up\n" -" SR 1,1 reset to zero\n" -" B SWAPIT\n" -"INCIT DS 0H\n" -" A 1,=F'1' increment new value\n" -"SWAPIT DS 0H\n" -" CS 0,1,0(%1) save new value in memory\n" -" BNZ AGAIN changed, try again\n" -" ST 0,%0 return value" - : "=m"(old_value) : "r"(mem)); - -quit: - return old_value; -} diff --git a/src/crent370/clib/@@inc.o b/src/crent370/clib/@@inc.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@inc.s b/src/crent370/clib/@@inc.s deleted file mode 100644 index 57666d7..0000000 --- a/src/crent370/clib/@@inc.s +++ /dev/null @@ -1,66 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@inc.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__inc' prologue -* frame base=88, local stack=8, call args=0 -&FUNC SETC '__inc' -@@INC PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__inc' code - L 15,0(11) ==> mem - MVC 88(4,13),=F'0' - LTR 15,15 ==> mem - BE @@L3 - -AGAIN DS 0H - L 0,0(,15) get current value ==> mem - LR 1,0 copy for new value - C 1,=F'2147483647' max value? - BNE INCIT no, bump it up - SR 1,1 reset to zero - B SWAPIT -INCIT DS 0H - A 1,=F'1' increment new value -SWAPIT DS 0H - CS 0,1,0(15) save new value in memory ==> mem - BNZ AGAIN changed, try again - ST 0,88(13) return value -@@L3 EQU * - L 15,88(13) -* Function '__inc' epilogue - PDPEPIL -* Function '__inc' literal pool - DS 0D - LTORG -* Function '__inc' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@isauth.c b/src/crent370/clib/@@isauth.c deleted file mode 100644 index 33751bc..0000000 --- a/src/crent370/clib/@@isauth.c +++ /dev/null @@ -1,19 +0,0 @@ -/* @@ISAUTH.C */ -#include "clibauth.h" - -int -__isauth(void) -{ - int rc = 0; - - /* check for APF authorization */ - __asm__("TESTAUTH\tFCTN=1,STATE=NO,KEY=NO,RBLEVEL=1\n\tST\t15,%0" : "=m" (rc)); - if (rc==0) { - rc = 1; - } - else { - rc = 0; - } - - return rc; -} diff --git a/src/crent370/clib/@@isauth.o b/src/crent370/clib/@@isauth.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@isauth.s b/src/crent370/clib/@@isauth.s deleted file mode 100644 index c96e3da..0000000 --- a/src/crent370/clib/@@isauth.s +++ /dev/null @@ -1,54 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@isauth.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__isauth' prologue -* frame base=88, local stack=8, call args=0 -&FUNC SETC '__isauth' -@@ISAUTH PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__isauth' code - MVC 88(4,13),=F'0' - TESTAUTH FCTN=1,STATE=NO,KEY=NO,RBLEVEL=1 - ST 15,88(13) - L 3,88(13) - LPR 2,3 - BCTR 2,0 - SRL 2,31 - LR 15,2 -* Function '__isauth' epilogue - PDPEPIL -* Function '__isauth' literal pool - DS 0D - LTORG -* Function '__isauth' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@isbuf.c b/src/crent370/clib/@@isbuf.c deleted file mode 100644 index ceaeca4..0000000 --- a/src/crent370/clib/@@isbuf.c +++ /dev/null @@ -1,265 +0,0 @@ -/* @@ISBUF.C */ -#include - -static unsigned short -__isbufR[257] = { - 0x0000U, /* EOF */ - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0104U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0104U, - 0x0104U, - 0x0104U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0104U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0000U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0000U, - 0x0000U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0004U, - 0x0000U, - 0x0004U, - 0x0140U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x00D0U, - 0x00D0U, - 0x00D0U, - 0x00D0U, - 0x00D0U, - 0x00D0U, - 0x00D0U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x00D0U, - 0x00D0U, - 0x00D0U, - 0x00D0U, - 0x00D0U, - 0x00D0U, - 0x00D0U, - 0x00D0U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x00D0U, - 0x00D0U, - 0x00D0U, - 0x00D0U, - 0x00D0U, - 0x00D0U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x00D0U, - 0x00D0U, - 0x00D0U, - 0x00D0U, - 0x00D0U, - 0x00D0U, - 0x00D0U, - 0x0000U, - 0x0473U, - 0x0473U, - 0x0473U, - 0x0473U, - 0x0473U, - 0x0473U, - 0x0073U, - 0x0073U, - 0x0073U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0073U, - 0x0073U, - 0x0073U, - 0x0073U, - 0x0073U, - 0x0073U, - 0x0073U, - 0x0073U, - 0x0073U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x00D0U, - 0x0073U, - 0x0073U, - 0x0073U, - 0x0073U, - 0x0073U, - 0x0073U, - 0x0073U, - 0x0073U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x00D0U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x00D0U, - 0x0000U, - 0x0000U, - 0x00D0U, - 0x0653U, - 0x0653U, - 0x0653U, - 0x0653U, - 0x0653U, - 0x0653U, - 0x0253U, - 0x0253U, - 0x0253U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x00D0U, - 0x0253U, - 0x0253U, - 0x0253U, - 0x0253U, - 0x0253U, - 0x0253U, - 0x0253U, - 0x0253U, - 0x0253U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x00D0U, - 0x0000U, - 0x0253U, - 0x0253U, - 0x0253U, - 0x0253U, - 0x0253U, - 0x0253U, - 0x0253U, - 0x0253U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0459U, - 0x0459U, - 0x0459U, - 0x0459U, - 0x0459U, - 0x0459U, - 0x0459U, - 0x0459U, - 0x0459U, - 0x0459U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U, - 0x0000U -}; - -unsigned short *__isbuf = &__isbufR[1]; diff --git a/src/crent370/clib/@@isbuf.o b/src/crent370/clib/@@isbuf.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@isbuf.s b/src/crent370/clib/@@isbuf.s deleted file mode 100644 index 27f6fb4..0000000 --- a/src/crent370/clib/@@isbuf.s +++ /dev/null @@ -1,286 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@isbuf.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program data area - DS 0H -@@0 EQU * - DC X'0000' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0104' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0104' - DC X'0104' - DC X'0104' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0104' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0000' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0000' - DC X'0000' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0004' - DC X'0000' - DC X'0004' - DC X'0140' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'00D0' - DC X'00D0' - DC X'00D0' - DC X'00D0' - DC X'00D0' - DC X'00D0' - DC X'00D0' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'00D0' - DC X'00D0' - DC X'00D0' - DC X'00D0' - DC X'00D0' - DC X'00D0' - DC X'00D0' - DC X'00D0' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'00D0' - DC X'00D0' - DC X'00D0' - DC X'00D0' - DC X'00D0' - DC X'00D0' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'00D0' - DC X'00D0' - DC X'00D0' - DC X'00D0' - DC X'00D0' - DC X'00D0' - DC X'00D0' - DC X'0000' - DC X'0473' - DC X'0473' - DC X'0473' - DC X'0473' - DC X'0473' - DC X'0473' - DC X'0073' - DC X'0073' - DC X'0073' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0073' - DC X'0073' - DC X'0073' - DC X'0073' - DC X'0073' - DC X'0073' - DC X'0073' - DC X'0073' - DC X'0073' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'00D0' - DC X'0073' - DC X'0073' - DC X'0073' - DC X'0073' - DC X'0073' - DC X'0073' - DC X'0073' - DC X'0073' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'00D0' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'00D0' - DC X'0000' - DC X'0000' - DC X'00D0' - DC X'0653' - DC X'0653' - DC X'0653' - DC X'0653' - DC X'0653' - DC X'0653' - DC X'0253' - DC X'0253' - DC X'0253' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'00D0' - DC X'0253' - DC X'0253' - DC X'0253' - DC X'0253' - DC X'0253' - DC X'0253' - DC X'0253' - DC X'0253' - DC X'0253' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'00D0' - DC X'0000' - DC X'0253' - DC X'0253' - DC X'0253' - DC X'0253' - DC X'0253' - DC X'0253' - DC X'0253' - DC X'0253' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0459' - DC X'0459' - DC X'0459' - DC X'0459' - DC X'0459' - DC X'0459' - DC X'0459' - DC X'0459' - DC X'0459' - DC X'0459' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' - DC X'0000' -* X-var __isbuf - ENTRY @@ISBUF - DS 0F -@@ISBUF EQU * - DC A(@@0+2) - END diff --git a/src/crent370/clib/@@isleap.c b/src/crent370/clib/@@isleap.c deleted file mode 100644 index ea7698f..0000000 --- a/src/crent370/clib/@@isleap.c +++ /dev/null @@ -1,32 +0,0 @@ -/* @@ISLEAP.C */ -#include "time.h" -#include "stdarg.h" -#include "stdio.h" -#include "stddef.h" -#include "mvssupa.h" - -/* scalar date routines -- public domain by Ray Gardner -** These will work over the range 1-01-01 thru 14699-12-31 -** The functions written by Ray are isleap, months_to_days, -** years_to_days, ymd_to_scalar, scalar_to_ymd. -** modified slightly by Paul Edwards -*/ - -extern int __isleap(unsigned yr); -extern unsigned __mtd(unsigned month); -extern long __ytd(unsigned yr); -extern long __ymdts(unsigned yr, unsigned mo, unsigned day); -extern void __stymd(long scalar, - unsigned *pyr, unsigned *pmo, unsigned *pday); - -#define isleap(y) __isleap(y) -#define months_to_days(m) __mtd(m) -#define years_to_days(y) __ytd(y) -#define ymd_to_scalar(y,m,d) __ymdts((y),(m),(d)) -#define scalar_to_ymd(s,y,m,d) __stymd((s),(y),(m),(d)) - -int -__isleap(unsigned yr) -{ - return yr % 400 == 0 || (yr % 4 == 0 && yr % 100 != 0); -} diff --git a/src/crent370/clib/@@isleap.o b/src/crent370/clib/@@isleap.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@isleap.s b/src/crent370/clib/@@isleap.s deleted file mode 100644 index 6db72d0..0000000 --- a/src/crent370/clib/@@isleap.s +++ /dev/null @@ -1,71 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@isleap.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__isleap' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__isleap' -@@ISLEAP PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__isleap' code - SLR 2,2 ==> yr - SLR 3,3 ==> yr - LR 4,2 ==> yr - LR 5,3 ==> yr - L 6,0(11) ==> yr - SLR 15,15 - LR 2,6 ==> yr - SRDL 2,32 ==> yr - LA 7,400(0,0) - DR 2,7 ==> yr - LTR 2,2 - BE @@L3 - LR 2,6 ==> yr - N 2,=F'3' - LTR 2,2 - BNE @@L2 - LR 4,6 ==> yr - SRDL 4,32 ==> yr - LA 2,100(0,0) - DR 4,2 ==> yr - LTR 4,4 - BE @@L2 -@@L3 EQU * - LA 15,1(0,0) -@@L2 EQU * -* Function '__isleap' epilogue - PDPEPIL -* Function '__isleap' literal pool - DS 0D - LTORG -* Function '__isleap' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@ispexe.c b/src/crent370/clib/@@ispexe.c deleted file mode 100644 index bce64ba..0000000 --- a/src/crent370/clib/@@ispexe.c +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include -#include -#include -#include -#include /* dynamic array prototypes */ -#include /* ISPF prototypes */ -#include /* __link() */ -#include /* tsocmd() */ -#include /* CPPL typedef */ -#include /* ECT typedef */ - -int ispexec(const char *fmt, ...) -{ - int rc = 20; - va_list list; - char buf[256]; - - va_start(list, fmt); - vsprintf(buf, fmt, list); - va_end(list); - - rc = tsocmdf("ISPEXEC", buf); - return rc; -} diff --git a/src/crent370/clib/@@ispexe.o b/src/crent370/clib/@@ispexe.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ispexe.s b/src/crent370/clib/@@ispexe.s deleted file mode 100644 index 0fbd5d8..0000000 --- a/src/crent370/clib/@@ispexe.s +++ /dev/null @@ -1,62 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ispexe.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'ispexec' prologue -* frame base=88, local stack=256, call args=16 -&FUNC SETC 'ispexec' -@@ISPEXE PDPPRLG CINDEX=0,FRAME=360,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ispexec' code - LA 3,104(,13) - ST 3,88(13) - MVC 92(4,13),0(11) - LA 2,4(,11) ==> list - ST 2,96(13) ==> list - LA 1,88(,13) - L 15,=V(VSPRINTF) - BALR 14,15 - MVC 88(4,13),=A(@@LC0) - ST 3,92(13) - LA 1,88(,13) - L 15,=V(TSOCMDF) - BALR 14,15 -* Function 'ispexec' epilogue - PDPEPIL -* Function 'ispexec' literal pool - DS 0D - LTORG -* Function 'ispexec' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'ISPEXEC' - DC X'0' - END diff --git a/src/crent370/clib/@@isplnk.c b/src/crent370/clib/@@isplnk.c deleted file mode 100644 index 04d9abc..0000000 --- a/src/crent370/clib/@@isplnk.c +++ /dev/null @@ -1,44 +0,0 @@ -#include -#include -#include -#include -#include -#include /* dynamic array prototypes */ -#include /* ISPF prototypes */ -#include /* __link() */ -#include /* tsocmd() */ -#include /* CPPL typedef */ -#include /* ECT typedef */ - -int isplink(const char *service_name, ...) -{ - int rc = 20; - int i; - void *r1; - unsigned *u; - - if (!service_name) { - wtof("%s: Missing service name.", __func__); - goto quit; - } - - /* on entry, R11 points to service_name (parameter list) */ - __asm__("ST\t11,%0" : "=m"(r1)); - - /* make sure we have a parameter address with a high order bit set */ - for(i=0, u=r1; i < 20; i++) { - if (u[i] & 0x80000000) break; - } - if (i==20) { - /* we didn't see the end of the parameters */ - wtof("%s: Missing hit order bit in plist.", __func__); - goto quit; - } - - __asm__("LR\t1,11 parameter list\n\t" - "L\t15,=V(ISPLINK)\n\t" - "BALR\t14,15 call ISPLINK\n\t" - "ST\t15,%0 save return code" : "=m"(rc) ); -quit: - return rc; -} diff --git a/src/crent370/clib/@@isplnk.o b/src/crent370/clib/@@isplnk.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@isplnk.s b/src/crent370/clib/@@isplnk.s deleted file mode 100644 index 2143555..0000000 --- a/src/crent370/clib/@@isplnk.s +++ /dev/null @@ -1,94 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@isplnk.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@6 EQU * - DC C'isplink' - DC X'0' - DS 0F - EJECT -* external function 'isplink' prologue -* frame base=88, local stack=8, call args=8 -&FUNC SETC 'isplink' -@@ISPLNK PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'isplink' code - MVC 100(4,13),=F'20' - L 2,0(11) ==> service_name - LTR 2,2 ==> service_name - BNE @@L2 - MVC 88(4,13),=A(@@LC0) - B @@L12 -@@L2 EQU * - ST 11,96(13) - SLR 15,15 ==> i - L 3,96(13) ==> u -@@L9 EQU * - LR 2,15 ==> i - MH 2,=H'4' - L 2,0(2,3) - N 2,=F'-2147483648' - LTR 2,2 - BNE @@L5 - A 15,=F'1' ==> i - LA 2,19(0,0) - CR 15,2 ==> i - BNH @@L9 -@@L5 EQU * - LA 2,20(0,0) - CLR 15,2 ==> i - BNE @@L10 - MVC 88(4,13),=A(@@LC1) -@@L12 EQU * - MVC 92(4,13),=A(@@6) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - B @@L3 -@@L10 EQU * - LR 1,11 parameter list - L 15,=V(ISPLINK) - BALR 14,15 call ISPLINK - ST 15,100(13) save return code -@@L3 EQU * - L 15,100(13) -* Function 'isplink' epilogue - PDPEPIL -* Function 'isplink' literal pool - DS 0D - LTORG -* Function 'isplink' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s: Missing service name.' - DC X'0' -@@LC1 EQU * - DC C'%s: Missing hit order bit in plist.' - DC X'0' - END diff --git a/src/crent370/clib/@@ispsel.c b/src/crent370/clib/@@ispsel.c deleted file mode 100644 index bdb73bf..0000000 --- a/src/crent370/clib/@@ispsel.c +++ /dev/null @@ -1,26 +0,0 @@ -#include -#include -#include -#include -#include -#include /* dynamic array prototypes */ -#include /* ISPF prototypes */ -#include /* __link() */ -#include /* tsocmd() */ -#include /* CPPL typedef */ -#include /* ECT typedef */ - -int isp_select(const char *fmt, ...) -{ - int rc = 20; - va_list list; - char buf[256]; - int len; - - va_start(list, fmt); - len = vsprintf(buf, fmt, list); - va_end(list); - - rc = isplink("SELECT ", &len, ISP_LAST(buf)); - return rc; -} diff --git a/src/crent370/clib/@@ispsel.o b/src/crent370/clib/@@ispsel.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ispsel.s b/src/crent370/clib/@@ispsel.s deleted file mode 100644 index 943da56..0000000 --- a/src/crent370/clib/@@ispsel.s +++ /dev/null @@ -1,66 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ispsel.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'isp_select' prologue -* frame base=88, local stack=264, call args=16 -&FUNC SETC 'isp_select' -@@ISPSEL PDPPRLG CINDEX=0,FRAME=368,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'isp_select' code - LA 3,104(,13) - ST 3,88(13) - MVC 92(4,13),0(11) - LA 2,4(,11) ==> list - ST 2,96(13) ==> list - LA 1,88(,13) - L 15,=V(VSPRINTF) - BALR 14,15 - ST 15,360(13) ==> rc - MVC 88(4,13),=A(@@LC0) - LA 2,360(,13) - ST 2,92(13) - O 3,=F'-2147483648' - ST 3,96(13) - LA 1,88(,13) - L 15,=V(@@ISPLNK) - BALR 14,15 -* Function 'isp_select' epilogue - PDPEPIL -* Function 'isp_select' literal pool - DS 0D - LTORG -* Function 'isp_select' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'SELECT ' - DC X'0' - END diff --git a/src/crent370/clib/@@issup.c b/src/crent370/clib/@@issup.c deleted file mode 100644 index 07de989..0000000 --- a/src/crent370/clib/@@issup.c +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__issup'"); -int __issup(void) -{ - int rc = 0; - - /* check for SUPERVISOR mode */ - __asm__("TESTAUTH\tFCTN=0,STATE=YES,KEY=NO,RBLEVEL=1\n\tST\t15,0(,%0)" : : "r"(&rc)); - if (rc==0) { - return 1; /* currently in SUPERVISOR mode */ - } - - return 0; /* not in SUPERVISOR mode */ -} diff --git a/src/crent370/clib/@@issup.o b/src/crent370/clib/@@issup.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@issup.s b/src/crent370/clib/@@issup.s deleted file mode 100644 index d6f7098..0000000 --- a/src/crent370/clib/@@issup.s +++ /dev/null @@ -1,56 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@issup.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__issup' -* Program text area - DS 0F - EJECT -* external function '__issup' prologue -* frame base=88, local stack=8, call args=0 -&FUNC SETC '__issup' -@@ISSUP PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__issup' code - MVC 88(4,13),=F'0' - LA 2,88(,13) - TESTAUTH FCTN=0,STATE=YES,KEY=NO,RBLEVEL=1 - ST 15,0(,2) - L 2,88(13) - LPR 15,2 - BCTR 15,0 - SRL 15,31 -* Function '__issup' epilogue - PDPEPIL -* Function '__issup' literal pool - DS 0D - LTORG -* Function '__issup' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@jobid.c b/src/crent370/clib/@@jobid.c deleted file mode 100644 index fb8b143..0000000 --- a/src/crent370/clib/@@jobid.c +++ /dev/null @@ -1,23 +0,0 @@ -#include "clibssib.h" - -const char *__jobid(void) -{ - const char *jobid; - - __asm("L\t15,PSATOLD-PSA OUR TCB ADDRESS\n\t" - "L\t15,TCBJSCB-TCB(,15) JSCB ADDRESS\n\t" - "USING IEZJSCB,15\n\t" - "L\t15,JSCBACT ACTIVE JSCB ADDRESS\n\t" - "L\t15,JSCBSSIB SSIB ADDRESS\n\t" - "DROP\t15\n\t" - "LA\t15,SSIBJBID-SSIB(,15) JOB ID\n\t" - "ST\t15,%0" : "=m"(jobid)); - - return jobid; -} - - __asm("PRINT NOGEN"); - __asm("IEZJSCB"); - __asm("IKJTCB"); - __asm("IHAPSA"); - __asm("IEFJSSIB"); diff --git a/src/crent370/clib/@@jobid.o b/src/crent370/clib/@@jobid.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@jobid.s b/src/crent370/clib/@@jobid.s deleted file mode 100644 index 8b6b19c..0000000 --- a/src/crent370/clib/@@jobid.s +++ /dev/null @@ -1,60 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@jobid.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__jobid' prologue -* frame base=88, local stack=8, call args=0 -&FUNC SETC '__jobid' -@@JOBID PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__jobid' code - L 15,PSATOLD-PSA OUR TCB ADDRESS - L 15,TCBJSCB-TCB(,15) JSCB ADDRESS - USING IEZJSCB,15 - L 15,JSCBACT ACTIVE JSCB ADDRESS - L 15,JSCBSSIB SSIB ADDRESS - DROP 15 - LA 15,SSIBJBID-SSIB(,15) JOB ID - ST 15,88(13) - L 15,88(13) -* Function '__jobid' epilogue - PDPEPIL -* Function '__jobid' literal pool - DS 0D - LTORG -* Function '__jobid' page table -@@PGT0 DS 0F - DC A(@@PG0) - PRINT NOGEN - IEZJSCB - IKJTCB - IHAPSA - IEFJSSIB - END diff --git a/src/crent370/clib/@@jobnam.c b/src/crent370/clib/@@jobnam.c deleted file mode 100644 index 0b893a3..0000000 --- a/src/crent370/clib/@@jobnam.c +++ /dev/null @@ -1,19 +0,0 @@ -#include "clibtiot.h" - -const char *__jobname(void) -{ - const TIOT *tiot; - const char *jobname; - - __asm("L\t15,PSATOLD-PSA OUR TCB ADDRESS\n\t" - "L\t15,TCBTIO-TCB(,15) TIOT ADDRESS\n\t" - "ST\t15,%0" : "=m"(tiot)); - - jobname = (const char*) tiot->TIOCNJOB; - - return jobname; -} - __asm("PRINT NOGEN"); - __asm("IKJTCB"); - __asm("IHAPSA"); - __asm("PRINT GEN"); diff --git a/src/crent370/clib/@@jobnam.o b/src/crent370/clib/@@jobnam.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@jobnam.s b/src/crent370/clib/@@jobnam.s deleted file mode 100644 index c8e5da5..0000000 --- a/src/crent370/clib/@@jobnam.s +++ /dev/null @@ -1,54 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@jobnam.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__jobname' prologue -* frame base=88, local stack=8, call args=0 -&FUNC SETC '__jobname' -@@JOBNAM PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__jobname' code - L 15,PSATOLD-PSA OUR TCB ADDRESS - L 15,TCBTIO-TCB(,15) TIOT ADDRESS - ST 15,88(13) - L 15,88(13) -* Function '__jobname' epilogue - PDPEPIL -* Function '__jobname' literal pool - DS 0D - LTORG -* Function '__jobname' page table -@@PGT0 DS 0F - DC A(@@PG0) - PRINT NOGEN - IKJTCB - IHAPSA - PRINT GEN - END diff --git a/src/crent370/clib/@@jpaget.c b/src/crent370/clib/@@jpaget.c deleted file mode 100644 index 897bc88..0000000 --- a/src/crent370/clib/@@jpaget.c +++ /dev/null @@ -1,23 +0,0 @@ -#define __JPAGET__ -#include "clibcrt.h" -#include "clibjpa.h" - -CLIBJPA * -__JPAGET(void) -{ - unsigned *psa = 0; /* low core == PSA */ - unsigned *tcb = (unsigned*)psa[0x21c/4]; /* TCB == PSATOLD */ - unsigned *jstcb = (unsigned*)tcb[0x7c/4]; /* JSTCB == TCBJSTCB */ - CDE *cde = (CDE*)jstcb[0x2c/4]; /* CDE == TCBJPQ */ - CLIBJPA *jpa = (CLIBJPA*)0; /* A(@@JPA) or NULL */ - - while(cde) { - if (memcmp(cde->CDNAME, "@@CLIB ", 8)==0) { - jpa = (CLIBJPA*)cde->CDENTPT; - break; - } - cde = cde->CDCHAIN; - } - - return jpa; -} diff --git a/src/crent370/clib/@@jpaget.o b/src/crent370/clib/@@jpaget.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@jpaget.s b/src/crent370/clib/@@jpaget.s deleted file mode 100644 index 77f72f6..0000000 --- a/src/crent370/clib/@@jpaget.s +++ /dev/null @@ -1,75 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@jpaget.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__JPAGET' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__JPAGET' -@@JPAGET PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__JPAGET' code - SLR 2,2 ==> psa - L 3,540(2) ==> tcb - L 3,124(3) ==> jstcb - L 3,44(3) ==> cde - LR 4,2 ==> jpa,psa - LTR 3,3 ==> cde - BE @@L3 -@@L6 EQU * - LR 2,3 ==> cde - A 2,=F'8' - ST 2,88(13) - MVC 92(4,13),=A(@@LC0) - MVC 96(4,13),=F'8' - LA 1,88(,13) - L 15,=V(MEMCMP) - BALR 14,15 - LTR 15,15 ==> jpa - BNE @@L5 - L 4,16(3) ==> jpa,CDENTPT - B @@L3 -@@L5 EQU * - L 3,0(3) ==> cde,CDCHAIN - LTR 3,3 ==> cde - BNE @@L6 -@@L3 EQU * - LR 15,4 ==> jpa -* Function '__JPAGET' epilogue - PDPEPIL -* Function '__JPAGET' literal pool - DS 0D - LTORG -* Function '__JPAGET' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'@@CLIB ' - DC X'0' - END diff --git a/src/crent370/clib/@@jsclos.c b/src/crent370/clib/@@jsclos.c deleted file mode 100644 index caa7448..0000000 --- a/src/crent370/clib/@@jsclos.c +++ /dev/null @@ -1,66 +0,0 @@ -/* @@JSCLOS.C - Close JES Spool Dataset */ -#include -#include -#include -#include "clibwto.h" -#include -#include "svc99.h" -#include "clibary.h" -#include "osdcb.h" -#include "osjfcb.h" -#include "clibjes2.h" /* JES Spool prototypes and functions */ - -static int deallocate_spool(HASPJS *fp); - -int __jsclos(HASPJS *js) -{ - if (js) { - DCB *dcb = js->dcb; - unsigned plist = 0x80000000; - - if (dcb->dcboflgs & DCBOFOPN) { - __asm("CLOSE\t((%0)),MF=(E,(%1))" : : "r"(dcb), "r"(&plist)); - } - - deallocate_spool(js); - - free(js); - } - - return 0; -} - -__asm__("\n&FUNC SETC 'deallocate_spool'"); -static int deallocate_spool(HASPJS *fp) -{ - int err = 1; - unsigned count = 0; - TXT99 **txt99 = NULL; - RB99 rb99 = {0}; - - /* this DDNAME */ - err = __txddn(&txt99, fp->ddname); - if (err) goto quit; - - count = arraycount(&txt99); - if (!count) goto quit; - - /* Set high order bit to mark end of list */ - count--; - txt99[count] = (TXT99*)((unsigned)txt99[count] | 0x80000000); - - /* construct the request block for dynamic allocation */ - rb99.len = sizeof(RB99); - rb99.request = S99VRBUN; - rb99.flag1 = S99NOCNV; - rb99.txtptr = txt99; - - /* SVC 99 */ - err = __svc99(&rb99); - -quit: - if (txt99) FreeTXT99Array(&txt99); - - return err; -} - diff --git a/src/crent370/clib/@@jsclos.o b/src/crent370/clib/@@jsclos.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@jsclos.s b/src/crent370/clib/@@jsclos.s deleted file mode 100644 index 28e16ed..0000000 --- a/src/crent370/clib/@@jsclos.s +++ /dev/null @@ -1,147 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@jsclos.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__jsclos' prologue -* frame base=88, local stack=8, call args=8 -&FUNC SETC '__jsclos' -@@JSCLOS PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__jsclos' code - L 3,0(11) ==> js - LTR 3,3 ==> js - BE @@L2 - L 15,16(3) ==> dcb,dcb - MVC 96(4,13),=F'-2147483648' - IC 2,48(15) ==> .dcboflgs - N 2,=F'16' - CLM 2,1,=XL1'00' - BE @@L3 - LA 2,96(,13) - CLOSE ((15)),MF=(E,(2)) ==> dcb -@@L3 EQU * - ST 3,88(13) ==> js - LA 1,88(,13) - L 15,=A(@@6) - BALR 14,15 - ST 3,88(13) ==> js - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L2 EQU * - SLR 15,15 -* Function '__jsclos' epilogue - PDPEPIL -* Function '__jsclos' literal pool - DS 0D - LTORG -* Function '__jsclos' page table -@@PGT0 DS 0F - DC A(@@PG0) - -&FUNC SETC 'deallocate_spool' - DS 0F - EJECT -* static function 'deallocate_spool' prologue -* frame base=88, local stack=32, call args=8 -&FUNC SETC 'deallocate_spool' -@@6 PDPPRLG CINDEX=1,FRAME=128,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'deallocate_spool' code - SLR 15,15 ==> count - ST 15,120(13) ==> count - LA 4,96(,13) - LA 5,20(0,0) - LR 2,15 ==> count - LR 3,15 ==> count - MVCL 4,2 ==> count - LA 2,120(,13) - ST 2,88(13) - L 2,0(11) ==> fp - A 2,=F'8' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@TXDDN) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L6 - LA 2,120(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LTR 15,15 ==> count - BE @@L6 - BCTR 15,0 ==> count - L 4,120(13) - LR 3,15 ==> count - MH 3,=H'4' - L 2,0(3,4) - O 2,=F'-2147483648' - ST 2,0(3,4) - MVI 96(13),20 ==> .len - MVI 97(13),2 ==> .request - MVI 98(13),64 ==> .flag1 - MVC 104(4,13),120(13) ==> .txtptr - LA 2,96(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@SVC99) - BALR 14,15 - LR 3,15 ==> err -@@L6 EQU * - L 2,120(13) - LTR 2,2 - BE @@L8 - LA 2,120(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@FRTX9A) - BALR 14,15 -@@L8 EQU * - LR 15,3 ==> err -* Function 'deallocate_spool' epilogue - PDPEPIL -* Function 'deallocate_spool' literal pool - DS 0D - LTORG -* Function 'deallocate_spool' page table -@@PGT1 DS 0F - DC A(@@PG1) - END diff --git a/src/crent370/clib/@@jsopen.c b/src/crent370/clib/@@jsopen.c deleted file mode 100644 index fbf64ee..0000000 --- a/src/crent370/clib/@@jsopen.c +++ /dev/null @@ -1,141 +0,0 @@ -/* @@JSOPEN.C - Open JES Spool Dataset(s) */ -#include -#include -#include -#include "clibwto.h" -#include -#include "svc99.h" -#include "clibary.h" -#include "osdcb.h" -#include "osjfcb.h" -#include "clibjes2.h" /* JES Spool prototypes and functions */ - -__asm("\n" -"HASPACE DCB DDNAME=HASPACE1,DSORG=DA,MACRF=(RIC),OPTCD=A, X\n" -" RECFM=F\n" -"DCBLEN EQU *-HASPACE"); -__asm("DCBD\tDSORG=DA\n\t" - "CSECT ,"); - -static int allocate_spool(HASPJS *fp, const char *dataset); - -HASPJS *__jsopen(const char *dataset) -{ - int rc; - HASPJS *js = NULL; - DCB *dcb = NULL; - unsigned openpl = 0x80000000; - int i; - unsigned work; - unsigned blocks; - char devinfo[20] = {0}; - char buf[4096]; - - /* Allocate a Spool File Handle */ - js = calloc(1, sizeof(HASPJS) + sizeof(DCB)); - if (!js) { - goto quit; - } - - /* Initialize Checkpoint File Handle */ - strcpy(js->eye, HASPJS_EYE); - dcb = (DCB*) ((char*)js + sizeof(HASPJS)); - js->dcb = dcb; - - /* copy model DCB into our dcb area */ - __asm("L\t1,=A(HASPACE) model DCB for HASPACE\n\t" - "MVC\t0(DCBLEN,%0),0(1) copy model to our dcb area" - : :"r"(dcb)); - - /* Get DD or DATASET allocated */ - if (toupper(dataset[0])=='D' && toupper(dataset[1])=='D' && dataset[2]==':') { - /* The dataset is "dd:SOMENAME" */ - int i; - const char *p = &dataset[3]; - - for (i=0; i < 8 && *p; i++) { - js->ddname[i] = toupper(p[i]); - } - while(i < 8) js->ddname[i++]=' '; - memcpy(dcb->dcbddnam, js->ddname, 8); - } - else { - /* Allocate dataset */ - rc = allocate_spool(js, dataset); - if (rc) { - __jsclos(js); - js = NULL; - goto quit; - } - } - - /* open the checkpoint dataset */ - __asm("OPEN\t((%0)),MF=(E,(%1))" : : "r"(dcb), "r"(&openpl)); - if (!(dcb->dcboflgs & DCBOFOPN)) { - __jsclos(js); - js = NULL; - } -#if 0 - wtof("DCB=%08X, dcbdevt=%02X", dcb, dcb->dcbdevt); - wtodumpf(dcb, sizeof(DCB), "DCB"); -#endif - - /* get spool device info */ - __asm("DEVTYPE (%0),((%1),20),DEVTAB" : :"r"(js->ddname), "r"(devinfo)); -#if 0 - wtodumpf(devinfo, sizeof(devinfo), "devinfo"); -#endif - js->trkcyl = *(unsigned short *)&devinfo[10]; - -quit: - return js; -} - -__asm__("\n&FUNC SETC 'allocate_spool'"); -static int -allocate_spool(HASPJS *fp, const char *dataset) -{ - int err = 1; - unsigned count = 0; - DCB *dcb = fp->dcb; - TXT99 **txt99 = NULL; - RB99 rb99 = {0}; - - /* we want the DDNAME returned to us */ - err = __txrddn(&txt99, NULL); - if (err) goto quit; - - /* allocate this dataset */ - err = __txdsn(&txt99, dataset); - if (err) goto quit; - - /* DISP=SHR */ - err = __txshr(&txt99, NULL); - if (err) goto quit; - - count = arraycount(&txt99); - if (!count) goto quit; - - /* Set high order bit to mark end of list */ - count--; - txt99[count] = (TXT99*)((unsigned)txt99[count] | 0x80000000); - - /* construct the request block for dynamic allocation */ - rb99.len = sizeof(RB99); - rb99.request = S99VRBAL; - rb99.flag1 = S99NOCNV; - rb99.txtptr = txt99; - - /* SVC 99 */ - err = __svc99(&rb99); - if (err) goto quit; - - /* return DDNAME */ - memcpy(fp->ddname, txt99[0]->text, 8); - memcpy(dcb->dcbddnam, txt99[0]->text, 8); - -quit: - if (txt99) FreeTXT99Array(&txt99); - - return err; -} diff --git a/src/crent370/clib/@@jsopen.o b/src/crent370/clib/@@jsopen.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@jsopen.s b/src/crent370/clib/@@jsopen.s deleted file mode 100644 index 8585cfd..0000000 --- a/src/crent370/clib/@@jsopen.s +++ /dev/null @@ -1,307 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@jsopen.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -HASPACE DCB DDNAME=HASPACE1,DSORG=DA,MACRF=(RIC),OPTCD=A, X - RECFM=F -DCBLEN EQU *-HASPACE - DCBD DSORG=DA - CSECT , -* Program text area - DS 0F - EJECT -* external function '__jsopen' prologue -* frame base=88, local stack=4128, call args=16 -&FUNC SETC '__jsopen' -@@JSOPEN PDPPRLG CINDEX=0,FRAME=4232,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__jsopen' code - L 7,0(11) ==> dataset - SLR 6,6 ==> js - L 2,=F'4224' - AR 2,13 - MVC 0(4,2),=F'-2147483648' - LA 4,104(,13) - LA 5,20(0,0) - LR 2,6 ==> js - LR 3,6 ==> js - MVCL 4,2 ==> js - MVC 88(4,13),=F'1' - MVC 92(4,13),=F'128' - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 6,15 ==> js - LTR 15,15 ==> js - BE @@L3 - ST 15,88(13) ==> js - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - LR 4,6 ==> dcb,js - A 4,=F'24' ==> dcb - ST 4,16(6) ==> dcb,dcb - L 1,=A(HASPACE) model DCB for HASPACE - MVC 0(DCBLEN,4),0(1) copy model to our dcb area ==> dcb - SLR 2,2 - IC 2,0(7) ==> dataset - L 3,=V(@@TOUP) - L 3,0(3) ==> __toup - MH 2,=H'2' - LH 2,0(2,3) - CLM 2,3,=H'196' - BNE @@L4 - SLR 2,2 - IC 2,1(7) - MH 2,=H'2' - LH 2,0(2,3) - CLM 2,3,=H'196' - BNE @@L4 - CLI 2(7),122 - BNE @@L4 - A 7,=F'3' ==> p - SLR 5,5 ==> i - IC 2,0(7) ==> p - SLL 2,24 - SRA 2,24 - C 2,=F'0' - BE @@L6 - L 15,=V(@@TOUP) -@@L10 EQU * - SLR 2,2 - IC 2,0(5,7) ==> i - L 3,0(15) ==> __toup - MH 2,=H'2' - IC 3,1(2,3) - STC 3,8(6,5) ==> .ddname - A 5,=F'1' ==> i - LA 2,7(0,0) - CR 5,2 ==> i - BH @@L6 - IC 2,0(7) ==> p - SLL 2,24 - SRA 2,24 - C 2,=F'0' - BNE @@L10 -@@L6 EQU * - LA 7,7(0,0) - CR 5,7 ==> i - BH @@L20 - LA 3,8(0,0) -@@L14 EQU * - LR 2,5 ==> i - AR 2,6 ==> js - LA 7,64(0,0) - STC 7,0(3,2) ==> .ddname - A 5,=F'1' ==> i - LA 2,7(0,0) - CR 5,2 ==> i - BNH @@L14 -@@L20 EQU * - LR 2,4 ==> dcb - A 2,=F'40' - ST 2,88(13) - LR 2,6 ==> js - A 2,=F'8' - ST 2,92(13) - MVC 96(4,13),=F'8' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - B @@L15 -@@L4 EQU * - ST 6,88(13) ==> js - ST 7,92(13) ==> dataset - LA 1,88(,13) - L 15,=A(@@6) - BALR 14,15 - LTR 15,15 ==> rc - BE @@L15 - ST 6,88(13) ==> js - LA 1,88(,13) - L 15,=V(@@JSCLOS) - BALR 14,15 - SLR 6,6 ==> js - B @@L3 -@@L15 EQU * - L 2,=F'4224' - AR 2,13 - OPEN ((4)),MF=(E,(2)) ==> dcb - IC 2,48(4) ==> .dcboflgs - N 2,=F'16' - CLM 2,1,=XL1'00' - BNE @@L17 - ST 6,88(13) ==> js - LA 1,88(,13) - L 15,=V(@@JSCLOS) - BALR 14,15 - SLR 6,6 ==> js -@@L17 EQU * - LR 2,6 ==> js - A 2,=F'8' - LA 3,104(,13) - DEVTYPE (2),((3),20),DEVTAB - LH 2,114(13) - N 2,=XL4'0000FFFF' - ST 2,20(6) ==> .trkcyl -@@L3 EQU * - LR 15,6 ==> js -* Function '__jsopen' epilogue - PDPEPIL -* Function '__jsopen' literal pool - DS 0D - LTORG -* Function '__jsopen' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'HASPJS' - DC X'0' - -&FUNC SETC 'allocate_spool' - DS 0F - EJECT -* static function 'allocate_spool' prologue -* frame base=88, local stack=32, call args=16 -&FUNC SETC 'allocate_spool' -@@6 PDPPRLG CINDEX=1,FRAME=136,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'allocate_spool' code - L 6,0(11) ==> fp - SLR 15,15 ==> count - L 7,16(6) ==> dcb,dcb - ST 15,128(13) ==> count - LA 4,104(,13) - LA 5,20(0,0) - LR 2,15 ==> count - LR 3,15 ==> count - MVCL 4,2 ==> count - LA 2,128(,13) - ST 2,88(13) - ST 15,92(13) ==> count - LA 1,88(,13) - L 15,=V(@@TXRDDN) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L23 - LA 2,128(,13) - ST 2,88(13) - MVC 92(4,13),4(11) ==> dataset - LA 1,88(,13) - L 15,=V(@@TXDSN) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L23 - LA 2,128(,13) - ST 2,88(13) - ST 15,92(13) ==> err - LA 1,88(,13) - L 15,=V(@@TXSHR) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L23 - LA 2,128(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LTR 15,15 ==> count - BE @@L23 - BCTR 15,0 ==> count - L 4,128(13) - LR 3,15 ==> count - MH 3,=H'4' - L 2,0(3,4) - O 2,=F'-2147483648' - ST 2,0(3,4) - MVI 104(13),20 ==> .len - MVI 105(13),1 ==> .request - MVI 106(13),64 ==> .flag1 - MVC 112(4,13),128(13) ==> .txtptr - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@SVC99) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L23 - LR 2,6 ==> fp - A 2,=F'8' - ST 2,88(13) - L 2,128(13) - L 2,0(2) - A 2,=F'6' - ST 2,92(13) - MVC 96(4,13),=F'8' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - LR 2,7 ==> dcb - A 2,=F'40' - ST 2,88(13) - L 2,128(13) - L 2,0(2) - A 2,=F'6' - ST 2,92(13) - MVC 96(4,13),=F'8' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 -@@L23 EQU * - L 2,128(13) - LTR 2,2 - BE @@L28 - LA 2,128(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@FRTX9A) - BALR 14,15 -@@L28 EQU * - LR 15,3 ==> err -* Function 'allocate_spool' epilogue - PDPEPIL -* Function 'allocate_spool' literal pool - DS 0D - LTORG -* Function 'allocate_spool' page table -@@PGT1 DS 0F - DC A(@@PG1) - END diff --git a/src/crent370/clib/@@jsrd4.c b/src/crent370/clib/@@jsrd4.c deleted file mode 100644 index 4552bb9..0000000 --- a/src/crent370/clib/@@jsrd4.c +++ /dev/null @@ -1,78 +0,0 @@ -/* @@JSRD4.C - Read JES Spool Dataset using unsigned int MTTR value */ -#include -#include -#include -#include "clibwto.h" -#include -#include "svc99.h" -#include "clibary.h" -#include "osdcb.h" -#include "osjfcb.h" -#include "clibjes2.h" /* JES Spool prototypes and functions */ - -#if 0 -__asm("READ HDECB2,DI,HASPACE,,0,0,QCDAD,MF=L"); -#endif -int __jsrd4(HASPJS *js, unsigned mttr, void *buf4k, unsigned buflen) -{ - int rc = -1; - DCB *dcb; - unsigned char *p = buf4k; - unsigned work = mttr; - unsigned cc = 0; - unsigned hh = 0; - unsigned decb[8] = {0}; - unsigned char block[8] = ""; - - if (!js) goto quit; - - dcb = js->dcb; - if (!dcb) goto quit; - - dcb->dcbblksi = (unsigned short) buflen; - - __asm("XC\t0(8,%4),0(%4) Initialize MBBCCHHR to zero\n\t" - "LR\t1,%0 Load MTTR value\n\t" - "STC\t1,7(%4) Save R value\n\t" - "SRL\t1,8 Shift TT value\n\t" - "N\t1,=F'65535' Keep just the TT value\n\t" - "SR\t0,0 Prepare for divide\n\t" - "DR\t0,%1 Divide by trks per cyl\n\t" - "ST\t0,0(,%2) Store head number\n\t" - "ST\t1,0(,%3) Store cylinder number\n\t" - "MVC\t3(2,%4),2(%3) Copy cylinder number\n\t" - "MVC\t5(2,%4),2(%2) Copy head number" - : :"r"(mttr), "r"(js->trkcyl), "r"(&hh), "r"(&cc), "r"(block)); -#if 0 - wtof("mttr=%08X, trkcyl=%u, cc=%u, hh=%u", mttr, js->trkcyl, cc, hh); - wtodumpf(block, 8, "mbbcchhr"); -#endif - - rc = 0; - __asm("USING\tIHADCB,%0 ADDRESSING FOR DCB DSECT\n\t" - "MVC\tDCBSYNAD+1(3),=AL3(SYNAD) SET SYNAD ADDR IN DCB\n\t" - "DROP\t%0 DROP ADDRESSING FOR DCB\n\t" - "LR\t10,%5 R10 => rc\n\t" - "READ\t(%1),DI,(%0),(%2),(%3),,(%4),MF=E\n\t" - "CHECK\t(%1)\n\t" - "B\tQUIT" - : :"r"(js->dcb), "r"(decb), "r"(buf4k), "r"(buflen), "r"(block), "r"(&rc) : "10"); - - __asm("\n" - "SYNAD SYNADAF ACSMETH=BDAM DECODE ERROR CAUSE\n" - " L 1,128(,1) Get DECB address\n" - " L 0,0(,1) Get DECB ECB value\n" - " ST 0,0(,10) Save ECB value as return code\n" - " SYNADRLS , RELEASE WORK AREA\n" - " BR 14 RETURN TO OP SYS\n" - "QUIT DS 0H" : : :"10"); - -quit: -#if 0 - wtof("__jsrd4() rc=%08X, (%d)", rc, rc); -#endif - return rc; -} -__asm("DCBD DSORG=DA,DEVD=DA\n\t" - "CSECT\t,"); - diff --git a/src/crent370/clib/@@jsrd4.o b/src/crent370/clib/@@jsrd4.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@jsrd4.s b/src/crent370/clib/@@jsrd4.s deleted file mode 100644 index 901725e..0000000 --- a/src/crent370/clib/@@jsrd4.s +++ /dev/null @@ -1,108 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@jsrd4.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__jsrd4' prologue -* frame base=88, local stack=56, call args=0 -&FUNC SETC '__jsrd4' -@@JSRD4 PDPPRLG CINDEX=0,FRAME=144,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__jsrd4' code - L 15,0(11) ==> js - L 7,4(11) ==> mttr - L 8,8(11) ==> buf4k - L 6,12(11) ==> buflen - MVC 136(4,13),=F'-1' - MVC 124(4,13),=F'0' - MVC 120(4,13),=F'0' - LA 4,88(,13) - LA 5,32(0,0) - SLR 2,2 - LR 3,2 - MVCL 4,2 - L 2,=A(@@LC0) - MVC 128(8,13),0(2) - LTR 15,15 ==> js - BE @@L3 - L 2,16(15) ==> dcb,dcb - LTR 2,2 ==> dcb - BE @@L3 - STH 6,62(2) ==> buflen,dcbblksi - L 5,20(15) ==> .trkcyl - LA 4,120(,13) - LA 3,124(,13) - LA 2,128(,13) - XC 0(8,2),0(2) Initialize MBBCCHHR to zero - LR 1,7 Load MTTR value ==> mttr - STC 1,7(2) Save R value - SRL 1,8 Shift TT value - N 1,=F'65535' Keep just the TT value - SR 0,0 Prepare for divide - DR 0,5 Divide by trks per cyl - ST 0,0(,4) Store head number - ST 1,0(,3) Store cylinder number - MVC 3(2,2),2(3) Copy cylinder number - MVC 5(2,2),2(4) Copy head number - MVC 136(4,13),=F'0' - L 5,16(15) ==> .dcb - LA 4,88(,13) - LA 3,128(,13) - LA 2,136(,13) - USING IHADCB,5 ADDRESSING FOR DCB DSECT - MVC DCBSYNAD+1(3),=AL3(SYNAD) SET SYNAD ADDR IN DCB - DROP 5 DROP ADDRESSING FOR DCB - LR 10,2 R10 => rc - READ (4),DI,(5),(8),(6),,(3),MF=E ==> buf4k,buflen - CHECK (4) - B QUIT - -SYNAD SYNADAF ACSMETH=BDAM DECODE ERROR CAUSE - L 1,128(,1) Get DECB address - L 0,0(,1) Get DECB ECB value - ST 0,0(,10) Save ECB value as return code - SYNADRLS , RELEASE WORK AREA - BR 14 RETURN TO OP SYS -QUIT DS 0H -@@L3 EQU * - L 15,136(13) -* Function '__jsrd4' epilogue - PDPEPIL -* Function '__jsrd4' literal pool - DS 0D - LTORG -* Function '__jsrd4' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC X'0' - DC 7X'00' - DCBD DSORG=DA,DEVD=DA - CSECT , - END diff --git a/src/crent370/clib/@@link.c b/src/crent370/clib/@@link.c deleted file mode 100644 index 672eb43..0000000 --- a/src/crent370/clib/@@link.c +++ /dev/null @@ -1,53 +0,0 @@ -/* __link() - Link to an external program */ -#include "cliblink.h" -#include "ctype.h" - -int __link(const char *pgm, void *dcb, void *r1, int *prc) -{ - int rc = -1; - int i; - char program[12]; /* UPPER case pgm name */ - unsigned plist[3]; /* LINK SVC parameter list */ - - /* sanity check, we really need an external program name */ - if (!pgm) goto quit; - if (!pgm[0]) goto quit; - - // wtof("%s: pgm=\"%s\" dcb=%p", __func__, pgm, dcb); - - /* fold pgm to upper case */ - for(i=0; i < 8 && pgm[i]; i++) { - program[i] = toupper(pgm[i]); - } - /* pad program name with spaces */ - while (i < 8) program[i++] = ' '; - /* add a 0 byte to program name */ - program[8] = 0; - - // wtof("%s: program=\"%s\"", __func__, program); - - /* build the LINK SVC parameter list */ - plist[0] = (unsigned)program; /* address of entry point name */ - plist[1] = (unsigned)dcb; /* DCB address or NULL */ - - /* finish the LINK SVC parameter list and issue the LINK SVC */ - __asm( - "OI\t4(%1),X'80' extended plist for error ret address\n\t" - "LA\t0,ERRET => error return address\n\t" - "ST\t0,8(0,%1) save in LINK SVC parameter list\n\t" - "LR\t1,%2 => linked program parameter list\n\t" - "LR\t15,%1 => LINK SVC parameter list\n\t" - "SVC\t6 LINK SVC\n\t" - "B\tDONE normal return, return to caller\n" -"ERRET\tDS\t0H\n\t" - "L\t15,=F'-1' indicate failure\n" -"DONE\tDS\t0H\n\t" - "LR\t%0,15 save return code" - :"=r"(rc) - :"r"(plist), "r"(r1)); - -quit: - if (prc) *prc = rc; /* give return code to caller */ - - return rc; /* -1==failure, otherwise pgm return code */ -} diff --git a/src/crent370/clib/@@link.o b/src/crent370/clib/@@link.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@link.s b/src/crent370/clib/@@link.s deleted file mode 100644 index c8cadea..0000000 --- a/src/crent370/clib/@@link.s +++ /dev/null @@ -1,109 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@link.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__link' prologue -* frame base=88, local stack=32, call args=0 -&FUNC SETC '__link' -@@LINK PDPPRLG CINDEX=0,FRAME=120,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__link' code - L 3,0(11) ==> pgm - L 6,8(11) ==> r1 - L 5,12(11) ==> prc - L 15,=F'-1' ==> rc - LTR 3,3 ==> pgm - BE @@L3 - IC 2,0(3) ==> pgm - SLL 2,24 - SRA 2,24 - C 2,=F'0' - BE @@L3 - SLR 15,15 ==> i - L 2,=V(@@TOUP) - L 4,0(2) ==> __toup -@@L10 EQU * - SLR 2,2 - IC 2,0(15,3) ==> i - MH 2,=H'2' - IC 2,1(2,4) - STC 2,88(13,15) ==> program - A 15,=F'1' ==> i - LA 2,7(0,0) - CR 15,2 ==> i - BH @@L6 - IC 2,0(15,3) ==> i - SLL 2,24 - SRA 2,24 - C 2,=F'0' - BNE @@L10 -@@L6 EQU * - LA 3,7(0,0) - CR 15,3 ==> i - BH @@L18 - LA 2,88(,13) -@@L14 EQU * - LA 3,64(0,0) - STC 3,0(2,15) ==> program - A 15,=F'1' ==> i - LA 3,7(0,0) - CR 15,3 ==> i - BNH @@L14 -@@L18 EQU * - MVI 96(13),0 ==> program - LA 2,88(,13) - ST 2,104(13) ==> plist - MVC 108(4,13),4(11) ==> plist,dcb - LA 2,104(,13) - OI 4(2),X'80' extended plist for error ret address - LA 0,ERRET => error return address - ST 0,8(0,2) save in LINK SVC parameter list - LR 1,6 => linked program parameter list ==> r1 - LR 15,2 => LINK SVC parameter list - SVC 6 LINK SVC - B DONE normal return, return to caller -ERRET DS 0H - L 15,=F'-1' indicate failure -DONE DS 0H - LR 15,15 save return code ==> rc -@@L3 EQU * - LTR 5,5 ==> prc - BE @@L15 - ST 15,0(5) ==> rc,prc -@@L15 EQU * -* Function '__link' epilogue - PDPEPIL -* Function '__link' literal pool - DS 0D - LTORG -* Function '__link' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@linkds.c b/src/crent370/clib/@@linkds.c deleted file mode 100644 index 8bd7a59..0000000 --- a/src/crent370/clib/@@linkds.c +++ /dev/null @@ -1,39 +0,0 @@ -/* __linkds() - Link to an external program with estae recovery, dump suppressed */ -#include "cliblink.h" -#include "clibstae.h" - -/* returns 0 otherwise abend code, linked pgm rc returned in prc */ -__asm__("\n&FUNC SETC 'trylink'"); -static int trylink(const char *pgm, void *dcb, void *r1, int *prc) -{ - int rc = 0; /* try() return code */ - - // wtof("%s: pgm=\"%s\"", __func__, pgm); - - /* create ESTAE for abend report, suppress the dump */ - abendrpt(ESTAE_CREATE, DUMP_SUPPRESS); - - /* LINK of pgm, rc==0 success */ - rc = __link(pgm, dcb, r1, prc); - - /* remove the ESTAE */ - abendrpt(ESTAE_DELETE, DUMP_DEFAULT); - - return rc; -} - -/* returns 0 otherwise abend code, linked pgm rc returned in prc */ -int __linkds(const char *pgm, void *dcb, void *r1, int *prc) -{ - int rc = 0; /* try() return code */ - - // wtof("%s: pgm=\"%s\"", __func__, pgm); - - /* try LINK of pgm, rc==0 success, otherwise abend code in rc */ - rc = try(trylink, pgm, dcb, r1, prc); - - return rc; -} - - - diff --git a/src/crent370/clib/@@linkds.o b/src/crent370/clib/@@linkds.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@linkds.s b/src/crent370/clib/@@linkds.s deleted file mode 100644 index 4021c3c..0000000 --- a/src/crent370/clib/@@linkds.s +++ /dev/null @@ -1,100 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@linkds.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'trylink' -* Program text area - DS 0F - EJECT -* static function 'trylink' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'trylink' -@@0 PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=NO - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'trylink' code - SLR 2,2 ==> rc - ST 2,88(13) ==> rc - ST 2,92(13) ==> rc - LA 1,88(,13) - L 15,=V(@@ABRPT) - BALR 14,15 - MVC 88(4,13),0(11) ==> pgm - MVC 92(4,13),4(11) ==> dcb - MVC 96(4,13),8(11) ==> r1 - MVC 100(4,13),12(11) ==> prc - LA 1,88(,13) - L 15,=V(@@LINK) - BALR 14,15 - LR 2,15 ==> rc - MVC 88(4,13),=F'2' - MVC 92(4,13),=F'1' - LA 1,88(,13) - L 15,=V(@@ABRPT) - BALR 14,15 - LR 15,2 ==> rc -* Function 'trylink' epilogue - PDPEPIL -* Function 'trylink' literal pool - DS 0D - LTORG -* Function 'trylink' page table -@@PGT0 DS 0F - DC A(@@PG0) - DS 0F - EJECT -* external function '__linkds' prologue -* frame base=88, local stack=0, call args=24 -&FUNC SETC '__linkds' -@@LINKDS PDPPRLG CINDEX=1,FRAME=112,BASER=12,ENTRY=YES - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function '__linkds' code - MVC 88(4,13),=A(@@0) - MVC 92(4,13),0(11) ==> pgm - MVC 96(4,13),4(11) ==> dcb - MVC 100(4,13),8(11) ==> r1 - MVC 104(4,13),12(11) ==> prc - LA 1,88(,13) - L 15,=V(@@@TRY) - BALR 14,15 -* Function '__linkds' epilogue - PDPEPIL -* Function '__linkds' literal pool - DS 0D - LTORG -* Function '__linkds' page table -@@PGT1 DS 0F - DC A(@@PG1) - END diff --git a/src/crent370/clib/@@linkt.c b/src/crent370/clib/@@linkt.c deleted file mode 100644 index 28763a3..0000000 --- a/src/crent370/clib/@@linkt.c +++ /dev/null @@ -1,15 +0,0 @@ -/* __linkt() - Link to an external program with estae recovery via try() */ -#include "cliblink.h" -#include "clibstae.h" - -/* returns 0 otherwise abend code, linked pgm rc returned in prc */ -int __linkt(const char *pgm, void *dcb, void *r1, int *prc) -{ - int rc = 0; /* try() return code */ - - /* try LINK of pgm, rc==0 success, otherwise abend code in rc */ - rc = try(__link, pgm, dcb, r1, prc); - - return rc; -} - diff --git a/src/crent370/clib/@@linkt.o b/src/crent370/clib/@@linkt.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@linkt.s b/src/crent370/clib/@@linkt.s deleted file mode 100644 index 1aff0b3..0000000 --- a/src/crent370/clib/@@linkt.s +++ /dev/null @@ -1,54 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@linkt.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__linkt' prologue -* frame base=88, local stack=0, call args=24 -&FUNC SETC '__linkt' -@@LINKT PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__linkt' code - MVC 88(4,13),=V(@@LINK) - MVC 92(4,13),0(11) ==> pgm - MVC 96(4,13),4(11) ==> dcb - MVC 100(4,13),8(11) ==> r1 - MVC 104(4,13),12(11) ==> prc - LA 1,88(,13) - L 15,=V(@@@TRY) - BALR 14,15 -* Function '__linkt' epilogue - PDPEPIL -* Function '__linkt' literal pool - DS 0D - LTORG -* Function '__linkt' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@listc.c b/src/crent370/clib/@@listc.c deleted file mode 100644 index de1722a..0000000 --- a/src/crent370/clib/@@listc.c +++ /dev/null @@ -1,107 +0,0 @@ -/* @@LISTC.C */ -#include -#include -#include -#include "cliblist.h" -#include "cliblock.h" - -int -__listc(const char *level, const char *option, - int (*prt)(void *udata, const char *fmt, ...), - void *udata) -{ - unsigned *psa = (unsigned *)0; - void *ascb = (void *)psa[0x224/4]; - int ret = -1; - FILE *fp = 0; - char *p = 0; - char ddname[12] = {0}; - char dataset[45] = {0}; - char buf[256] = {0}; - - /* allocate a temp dataset */ - tmpnam(dataset); - fp = fopen(dataset, "wb,recfm=vb,lrecl=133,blksize=32760"); - if (!fp) { - wtof("Unable to allocate tmpfile"); - goto quit; - } - - /* turn off the dynamic allocation flag */ - fp->flags &= 0xFFFF - _FILE_FLAG_DYNAMIC; - - /* save the DD and dataset names */ - strcpy(ddname, fp->ddname); - strcpy(dataset, fp->dataset); - - /* close the temp file, the dd for the temp dataset remains allocated */ - fclose(fp); - fp = 0; - - /* envoke IDCAMS LISTC LEVEL with output sent to the temp dataset */ - if (!option) option = ""; - - lock(ascb,LOCK_EXC); - ret = idcams(" LISTC LEVEL('%s') OUTFILE(%s) %s", level, ddname, option); - unlock(ascb,LOCK_EXC); - - /* reopen the temp dataset by the saved DD name */ - sprintf(buf, "DD:%s", ddname); - fp = fopen(buf, "r,record"); - if (!fp) { - ret = -1; - wtof("unable to reopen temp file"); - remove(dataset); - goto quit; - } -#if 0 - wtof("fp->flags %04X", fp->flags); - wtof("fp->mode %s", fp->mode); -#endif - - /* read record from the temp dataset and call the callers prt function */ - do { -#if 0 - p = fgets(buf, sizeof(buf), fp); - if (p) { - prt(udata, "%s", p); - } -#else - /* we're using fread() for the temp file which we opened with - ** mode="r,record" to bypass the "stream" oriented access for - ** reading data. the theory is this *should* be a little - ** faster, however we have to deal with any RDW in this case. - */ - p = 0; - memset(buf, 0, sizeof(buf)); - ret = fread(buf, 1, sizeof(buf)-1, fp); - if (ret > 0) { - /* wtodumpf(buf, ret, "%s", __func__); */ - p = buf; - if ((fp->recfm & _FILE_RECFM_TYPE)==_FILE_RECFM_V) { - /* RECFM=V has RDW when open in record mode - ** so we need to get the real length and skip the RDW - */ - ret = *(unsigned short*)p; - p += 4; - } - /* do sanity check and truncate if needed */ - if (ret >= sizeof(buf)) ret = sizeof(buf)-1; - buf[ret] = 0; - - /* give record (string) to supplied callback function */ - prt(udata, "%s", p); - } -#endif - } while(p); - - /* restore the DYNAMIC flag in the temp dataset file handle */ - fp->flags |= _FILE_FLAG_DYNAMIC; - - /* now close the temp dataset and deallocate the DD, deletes the dataset */ - fclose(fp); - ret = 0; - -quit: - return (ret); -} diff --git a/src/crent370/clib/@@listc.o b/src/crent370/clib/@@listc.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@listc.s b/src/crent370/clib/@@listc.s deleted file mode 100644 index 470e057..0000000 --- a/src/crent370/clib/@@listc.s +++ /dev/null @@ -1,230 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@listc.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__listc' prologue -* frame base=88, local stack=328, call args=16 -&FUNC SETC '__listc' -@@LISTC PDPPRLG CINDEX=0,FRAME=432,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__listc' code - SLR 2,2 ==> psa - MVC 424(4,13),548(2) ==> ascb - L 9,=F'-1' ==> ret - LR 8,2 ==> fp,psa - LA 4,104(,13) - LA 5,12(0,0) - LR 3,2 ==> fp - MVCL 4,2 ==> fp - LA 2,120(,13) - LR 6,2 - LA 7,45(0,0) - LR 4,8 ==> fp - LR 5,8 ==> fp - MVCL 6,4 ==> fp - LA 6,168(,13) - LA 7,256(0,0) - LR 4,8 ==> fp - LR 5,8 ==> fp - MVCL 6,4 ==> fp - ST 2,88(13) - LA 1,88(,13) - L 15,=V(TMPNAM) - BALR 14,15 - ST 2,88(13) - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(FOPEN) - BALR 14,15 - LR 8,15 ==> fp - LTR 15,15 ==> fp - BNE @@L2 - MVC 88(4,13),=A(@@LC1) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - B @@L3 -@@L2 EQU * - NC 40(2,15),=H'32767' ==> .flags - LA 2,104(,13) - ST 2,88(13) - LR 2,15 ==> fp - A 2,=F'43' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - LA 2,120(,13) - ST 2,88(13) - LR 2,8 ==> fp - A 2,=F'61' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - ST 8,88(13) ==> fp - LA 1,88(,13) - L 15,=V(FCLOSE) - BALR 14,15 - L 2,4(11) ==> option - LTR 2,2 - BNE @@L4 - MVC 4(4,11),=A(@@LC2) ==> option -@@L4 EQU * - MVC 88(4,13),424(13) ==> ascb - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - MVC 88(4,13),=A(@@LC3) - MVC 92(4,13),0(11) ==> level - LA 3,104(,13) - ST 3,96(13) - MVC 100(4,13),4(11) ==> option - LA 1,88(,13) - L 15,=V(IDCAMS) - BALR 14,15 - MVC 88(4,13),424(13) ==> ascb - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LA 2,168(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC4) - ST 3,96(13) - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - ST 2,88(13) - MVC 92(4,13),=A(@@LC5) - LA 1,88(,13) - L 15,=V(FOPEN) - BALR 14,15 - LR 8,15 ==> fp - LTR 15,15 ==> fp - BNE @@L5 - L 9,=F'-1' ==> ret - MVC 88(4,13),=A(@@LC6) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LA 2,120(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(REMOVE) - BALR 14,15 - B @@L3 -@@L5 EQU * - LA 4,168(,13) ==> p -@@L6 EQU * - SLR 3,3 ==> p - ST 4,88(13) ==> p - ST 3,92(13) ==> p - MVC 96(4,13),=F'256' - LA 1,88(,13) - L 15,=V(MEMSET) - BALR 14,15 - ST 4,88(13) ==> p - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'255' - ST 8,100(13) ==> fp - LA 1,88(,13) - L 15,=V(FREAD) - BALR 14,15 - LR 9,15 ==> ret - LTR 15,15 ==> ret - BNH @@L8 - LR 3,4 ==> p - IC 2,42(8) ==> .recfm - N 2,=F'-64' - CLM 2,1,=XL1'40' - BNE @@L10 - LH 9,0(4) ==> p - N 9,=XL4'0000FFFF' - LA 3,172(,13) ==> p -@@L10 EQU * - LA 2,255(0,0) - CLR 9,2 ==> ret - BNH @@L11 - LR 9,2 ==> ret -@@L11 EQU * - SLR 2,2 - STC 2,168(9,13) ==> buf - MVC 88(4,13),12(11) ==> udata - MVC 92(4,13),=A(@@LC7) - ST 3,96(13) ==> p - L 2,8(11) ==> prt - LA 1,88(,13) - LA 15,0(2) - BALR 14,15 -@@L8 EQU * - LTR 3,3 ==> p - BNE @@L6 - OC 40(2,8),=H'-32768' ==> .flags - ST 8,88(13) ==> fp - LA 1,88(,13) - L 15,=V(FCLOSE) - BALR 14,15 - SLR 9,9 ==> ret -@@L3 EQU * - LR 15,9 ==> ret -* Function '__listc' epilogue - PDPEPIL -* Function '__listc' literal pool - DS 0D - LTORG -* Function '__listc' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'wb,recfm=vb,lrecl=133,blksize=32760' - DC X'0' -@@LC1 EQU * - DC C'Unable to allocate tmpfile' - DC X'0' -@@LC2 EQU * - DC X'0' -@@LC3 EQU * - DC C' LISTC LEVEL(''%s'') OUTFILE(%s) %s' - DC X'0' -@@LC4 EQU * - DC C'DD:%s' - DC X'0' -@@LC5 EQU * - DC C'r,record' - DC X'0' -@@LC6 EQU * - DC C'unable to reopen temp file' - DC X'0' -@@LC7 EQU * - DC C'%s' - DC X'0' - END diff --git a/src/crent370/clib/@@listds.c b/src/crent370/clib/@@listds.c deleted file mode 100644 index 196d35e..0000000 --- a/src/crent370/clib/@@listds.c +++ /dev/null @@ -1,205 +0,0 @@ -/* @@LISTDS.C - create DSLIST array */ -#include -#include -#include -#include -#include -#include -#include "clibary.h" /* dynamic array prototypes */ -#include "clibdscb.h" /* DSCB structs and prototypes */ -#include "cliblist.h" /* __listc() */ -#include "clibstr.h" /* __patmat() */ - -static int parse(void *vdata, const char *fmt, ...); - -typedef struct { - const char *level; /* "HLQ.TEST" */ - const char *option; /* NULL or "NONVSAM VOLUME" */ - const char *filter; /* dataset name pattern "HLQ.TEST.*DATA" */ - DSLIST **array; /* dynamic array of DSLIST records */ - char dsn[45]; /* dataset name */ - char volser[7]; /* dataset volser */ - char buf[256]; /* work buffer for parsing */ - DSCB dscb; /* DSCB buffer */ -} UDATA; - -DSLIST ** -__listds(const char *level, const char *option, const char *filter) -{ - int rc = 0; - UDATA udata = {0}; - - udata.level = level; - udata.option = option; - udata.filter = filter; - - rc = __listc(level, option, parse, &udata); - - return udata.array; -} - -static int -parse(void *vdata, const char *fmt, ...) -{ - int rc = 0; - UDATA *udata = vdata; - char *buf = udata->buf; - DSCB *dscb = &udata->dscb; - DSCB1 *dscb1 = &dscb->dscb1; - DSLIST *dslist = 0; - struct tm tm = {0}; - char *p; - va_list arg; - - /* format the record passed to us by __listc() */ - va_start(arg, fmt); - vsprintf(buf, fmt, arg); - va_end(arg); - - if (buf[0]=='1') goto quit; /* skip page headers */ - - /* parse the formatted record looking for keywords */ - p = strtok(buf, " -\n"); - if (!p) goto quit; - - /* skip carriage control characters */ - if (isdigit(*p)) { - p++; - if (*p==0) p = strtok(NULL, " -\n"); - } - - if (udata->dsn[0]) goto check_vol; /* we already have a dataset */ - - if (stricmp(p, "NONVSAM")==0 || - stricmp(p, "PAGESPACE")==0 || - stricmp(p, "CLUSTER")==0 || - stricmp(p, "USERCATALOG")==0) { - /* get next parm */ - p = strtok(NULL, " -\n"); - if (!p) goto quit; - - /* make sure name does not start with a number */ - if (isdigit(*p)) goto quit; - - if (udata->filter) { - /* match dataset name against filter pattern */ - if (!__patmat(p, udata->filter)) goto quit; - } - - /* save dataset name */ - strcpy(udata->dsn, p); - udata->volser[0] = 0; - goto quit; - } - -check_vol: - if (!udata->dsn[0]) goto quit; /* no dataset, we're finished */ - - if (stricmp(p, "VOLSER")==0) { - /* get next parm */ - p = strtok(NULL, " -\n"); - if (!p) { - udata->dsn[0] = 0; - goto quit; - } - - /* save volser for this dataset */ - strcpy(udata->volser, p); - } - - if (!udata->volser[0]) goto quit; /* no volser, we're finished */ - - /* allocate DSLIST record for dataset */ - dslist = calloc(1, sizeof(DSLIST)); - if (!dslist) { - udata->dsn[0] = 0; - udata->volser[0] = 0; - goto quit; - } - - /* build DSLIST record */ - strcpy(dslist->dsn, udata->dsn); - udata->dsn[0] = 0; - strcpy(dslist->volser, udata->volser); - udata->volser[0] = 0; - - /* if the dataset is cataloged on the SYSRES volume "******" */ - if (strcmp(dslist->volser, "******")==0) { - /* get volser for dataset */ - LOCWORK workarea = {0}; - - rc = __locate(dslist->dsn, &workarea); - if (rc==0) { - memcpy(dslist->volser, workarea.volser, sizeof(dslist->volser)); - } - } - /* get DSCB info for dataset + volser */ - rc = __dscbdv(dslist->dsn, dslist->volser, dscb); -#if 0 - wtof("%s __dscbdv(\"%s\",\"%s\",...) rc=%d", __func__, dslist->dsn, dslist->volser, rc); -#endif - if (rc) goto done; /* failed, but keep the DSLIST record */ - - /* wtof("%s dsn=\"%s\", dsind=%02X", __func__, dslist->dsn, dscb1->dsind); */ - - /* extract values from DSCB for this dataset */ - p = 0; - switch(dscb1->dsorg1 & 0x7F) { - case DSGIS: p = "IS"; break; - case DSGPS: p = "PS"; break; - case DSGDA: p = "DA"; break; - case DSGPO: p = "PO"; break; - } - if (dscb1->dsorg2 == ORGAM) p = "VS"; - if (p) strcpy(dslist->dsorg, p); - - p = 0; - switch (dscb1->recfm & 0xC0) { - case RECFF: p = "F"; break; - case RECFV: p = "V"; break; - case RECFU: p = "U"; break; - } - if (p) strcat(dslist->recfm,p); - if (dscb1->recfm & RECFB) strcat(dslist->recfm, "B"); - if (dscb1->recfm & RECFS) strcat(dslist->recfm, "S"); - if (dscb1->recfm & RECFA) strcat(dslist->recfm, "A"); - if (dscb1->recfm & RECMC) strcat(dslist->recfm, "M"); - - dslist->extents = dscb1->noepv; - dslist->lrecl = dscb1->lrecl; - dslist->blksize = dscb1->blksz; - - dslist->cryear = 1900 + dscb1->credt[0]; - if (dslist->cryear < 1980) { - dslist->cryear += 100; - } - dslist->crjday = *(unsigned short*)&dscb1->credt[1]; - tm.tm_year = dslist->cryear - 1900; - tm.tm_mday = dslist->crjday; - mktime(&tm); - dslist->crmon = tm.tm_mon + 1; - dslist->crday = tm.tm_mday; - - dslist->rfyear = 1900 + dscb1->refd[0]; - if (dslist->rfyear < 1980) { - dslist->rfyear += 100; - } - dslist->rfjday = *(unsigned short *)&dscb1->refd[1]; - memset(&tm, 0, sizeof(tm)); - tm.tm_year = dslist->rfyear - 1900; - tm.tm_mday = dslist->rfjday; - mktime(&tm); - dslist->rfmon = tm.tm_mon + 1; - dslist->rfday = tm.tm_mday; - -done: - /* add DSLIST record to array */ - rc = arrayadd(&udata->array, dslist); - if (rc) { - free(dslist); - goto quit; - } - -quit: - return 0; -} diff --git a/src/crent370/clib/@@listds.o b/src/crent370/clib/@@listds.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@listds.s b/src/crent370/clib/@@listds.s deleted file mode 100644 index 7b0312c..0000000 --- a/src/crent370/clib/@@listds.s +++ /dev/null @@ -1,587 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@listds.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__listds' prologue -* frame base=88, local stack=472, call args=16 -&FUNC SETC '__listds' -@@LISTDS PDPPRLG CINDEX=0,FRAME=576,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__listds' code - L 3,0(11) ==> level - L 4,4(11) ==> option - SLR 2,2 ==> rc - LA 8,104(,13) - LA 9,472(0,0) - LR 6,2 ==> rc - LR 7,2 ==> rc - MVCL 8,6 ==> rc - ST 3,104(13) ==> level,level - ST 4,108(13) ==> option,option - MVC 112(4,13),8(11) ==> .filter,filter - ST 3,88(13) ==> level - ST 4,92(13) ==> option - MVC 96(4,13),=A(@@2) - LA 2,104(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@LISTC) - BALR 14,15 - L 15,116(13) ==> .array -* Function '__listds' epilogue - PDPEPIL -* Function '__listds' literal pool - DS 0D - LTORG -* Function '__listds' page table -@@PGT0 DS 0F - DC A(@@PG0) - DS 0F - EJECT -* static function 'parse' prologue -* frame base=88, local stack=336, call args=16 -&FUNC SETC 'parse' -@@2 PDPPRLG CINDEX=1,FRAME=440,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'parse' code - L 7,0(11) ==> udata,vdata - LR 6,7 ==> buf,udata - A 6,=F'68' ==> buf - LR 9,7 ==> dscb1,udata - A 9,=F'324' ==> dscb1 - ST 9,416(13) ==> dscb1,dscb - SLR 8,8 ==> dslist - LA 4,104(,13) - LA 5,36(0,0) - LR 2,8 ==> dslist - LR 3,8 ==> dslist - MVCL 4,2 ==> dslist - ST 6,88(13) ==> buf - MVC 92(4,13),4(11) - LA 2,8(,11) ==> arg - ST 2,96(13) ==> arg - LA 1,88(,13) - L 15,=V(VSPRINTF) - BALR 14,15 - CLI 0(6),241 ==> buf - L 14,=A(@@L4) - BER 14 - ST 6,88(13) ==> buf - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(STRTOK) - BALR 14,15 - LR 4,15 ==> p - LTR 15,15 ==> p - L 14,=A(@@L4) - BER 14 - SLR 2,2 - IC 2,0(15) ==> p - L 3,=V(@@ISBUF) - L 3,0(3) ==> __isbuf - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'8' - CH 2,=H'0' - BE @@L6 - A 4,=F'1' ==> p - IC 2,0(4) ==> p - CLM 2,1,=XL1'00' - BNE @@L6 - ST 8,88(13) ==> dslist - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(STRTOK) - BALR 14,15 - LR 4,15 ==> p -@@L6 EQU * - IC 2,16(7) ==> .dsn - CLM 2,1,=XL1'00' - BNE @@L9 - ST 4,88(13) ==> p - MVC 92(4,13),=A(@@LC1) - LA 1,88(,13) - L 15,=V(STRICMP) - BALR 14,15 - LTR 15,15 ==> p - BE @@L11 - ST 4,88(13) ==> p - MVC 92(4,13),=A(@@LC2) - LA 1,88(,13) - L 15,=V(STRICMP) - BALR 14,15 - LTR 15,15 ==> p - BE @@L11 - ST 4,88(13) ==> p - MVC 92(4,13),=A(@@LC3) - LA 1,88(,13) - L 15,=V(STRICMP) - BALR 14,15 - LTR 15,15 ==> p - BE @@L11 - ST 4,88(13) ==> p - MVC 92(4,13),=A(@@LC4) - LA 1,88(,13) - L 15,=V(STRICMP) - BALR 14,15 - LTR 15,15 ==> p - BNE @@L9 -@@L11 EQU * - MVC 88(4,13),=F'0' - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(STRTOK) - BALR 14,15 - LR 4,15 ==> p - LTR 15,15 ==> p - L 14,=A(@@L4) - BER 14 - SLR 2,2 - IC 2,0(15) ==> p - L 3,=V(@@ISBUF) - L 3,0(3) ==> __isbuf - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'8' - CH 2,=H'0' - L 14,=A(@@L4) - BNER 14 - L 2,8(7) ==> .filter - LTR 2,2 - BE @@L14 - ST 15,88(13) ==> p - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@PATMAT) - BALR 14,15 - LTR 15,15 ==> p - L 14,=A(@@L4) - BER 14 -@@L14 EQU * - LR 2,7 ==> udata - A 2,=F'16' - ST 2,88(13) - ST 4,92(13) ==> p - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - MVI 61(7),0 ==> .volser - L 14,=A(@@L4) - BR 14 -@@L9 EQU * - IC 2,16(7) ==> .dsn - CLM 2,1,=XL1'00' - L 14,=A(@@L4) - BER 14 - ST 4,88(13) ==> p - MVC 92(4,13),=A(@@LC5) - LA 1,88(,13) - L 15,=V(STRICMP) - BALR 14,15 - LTR 15,15 ==> p - BNE @@L17 - ST 15,88(13) ==> p - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(STRTOK) - BALR 14,15 - LTR 15,15 ==> p - BNE @@L18 - STC 15,16(7) ==> p,dsn - L 14,=A(@@L4) - BR 14 -@@L18 EQU * - LR 2,7 ==> udata - A 2,=F'61' - ST 2,88(13) - ST 15,92(13) ==> p - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 -@@L17 EQU * - IC 2,61(7) ==> .volser - CLM 2,1,=XL1'00' - BE @@L4 - MVC 88(4,13),=F'1' - MVC 92(4,13),=F'80' - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 8,15 ==> dslist - LTR 15,15 ==> dslist - BNE @@L20 - STC 15,16(7) ==> dslist,dsn - STC 15,61(7) ==> dslist,volser - B @@L4 -@@L20 EQU * - ST 15,88(13) ==> dslist - LR 2,7 ==> udata - A 2,=F'16' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - MVI 0(2),0 ==> .dsn - LR 6,8 ==> dslist - A 6,=F'45' - ST 6,88(13) - A 2,=F'45' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - MVI 0(2),0 ==> .volser - ST 6,88(13) - MVC 92(4,13),=A(@@LC6) - LA 1,88(,13) - L 15,=V(STRCMP) - BALR 14,15 - LTR 15,15 ==> p - BNE @@L21 - LA 2,144(,13) - ST 2,424(13) - MVC 428(4,13),=F'268' - ST 15,432(13) ==> p - ST 15,436(13) ==> p - L 4,424(13) - L 5,4+424(13) - L 2,432(13) - L 3,4+432(13) - MVCL 4,2 - ST 8,88(13) ==> dslist - LA 3,144(,13) - ST 3,92(13) - LA 1,88(,13) - L 15,=V(@@LOCATE) - BALR 14,15 - LTR 15,15 ==> rc - BNE @@L21 - ST 6,88(13) - LA 2,150(,13) - ST 2,92(13) - MVC 96(4,13),=F'7' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 -@@L21 EQU * - ST 8,88(13) ==> dslist - LR 2,8 ==> dslist - A 2,=F'45' - ST 2,92(13) - MVC 96(4,13),416(13) ==> dscb - LA 1,88(,13) - L 15,=V(@@DSCBDV) - BALR 14,15 - LTR 15,15 ==> rc - BNE @@L24 - LR 4,15 ==> p,rc - IC 2,38(9) ==> .dsorg1 - N 2,=F'127' - LA 5,32(0,0) - CR 2,5 - BE @@L28 - BH @@L32 - LA 3,2(0,0) - CLR 2,3 - BE @@L29 - B @@L25 -@@L32 EQU * - LA 5,64(0,0) - CLR 2,5 - BE @@L27 - LA 3,128(0,0) - CLR 2,3 - BNE @@L25 - L 4,=A(@@LC7) ==> p - B @@L25 -@@L27 EQU * - L 4,=A(@@LC8) ==> p - B @@L25 -@@L28 EQU * - L 4,=A(@@LC9) ==> p - B @@L25 -@@L29 EQU * - L 4,=A(@@LC10) ==> p -@@L25 EQU * - CLI 39(9),8 ==> .dsorg2 - BNE @@L33 - L 4,=A(@@LC11) ==> p -@@L33 EQU * - LTR 4,4 ==> p - BE @@L34 - LR 2,8 ==> dslist - A 2,=F'52' - ST 2,88(13) - ST 4,92(13) ==> p - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 -@@L34 EQU * - SLR 4,4 ==> p - IC 2,40(9) ==> .recfm - N 2,=F'192' - LA 5,128(0,0) - CR 2,5 - BE @@L36 - BH @@L41 - LA 3,64(0,0) - CLR 2,3 - BE @@L37 - B @@L35 -@@L41 EQU * - LA 5,192(0,0) - CLR 2,5 - BE @@L38 - B @@L35 -@@L36 EQU * - L 4,=A(@@LC12) ==> p - B @@L35 -@@L37 EQU * - L 4,=A(@@LC13) ==> p - B @@L35 -@@L38 EQU * - L 4,=A(@@LC14) ==> p -@@L35 EQU * - LTR 4,4 ==> p - BE @@L42 - LR 2,8 ==> dslist - A 2,=F'57' - ST 2,88(13) - ST 4,92(13) ==> p - LA 1,88(,13) - L 15,=V(STRCAT) - BALR 14,15 -@@L42 EQU * - IC 2,40(9) ==> .recfm - N 2,=F'16' - CLM 2,1,=XL1'00' - BE @@L43 - LR 2,8 ==> dslist - A 2,=F'57' - ST 2,88(13) - MVC 92(4,13),=A(@@LC15) - LA 1,88(,13) - L 15,=V(STRCAT) - BALR 14,15 -@@L43 EQU * - IC 2,40(9) ==> .recfm - N 2,=F'8' - CLM 2,1,=XL1'00' - BE @@L44 - LR 2,8 ==> dslist - A 2,=F'57' - ST 2,88(13) - MVC 92(4,13),=A(@@LC16) - LA 1,88(,13) - L 15,=V(STRCAT) - BALR 14,15 -@@L44 EQU * - IC 2,40(9) ==> .recfm - N 2,=F'4' - CLM 2,1,=XL1'00' - BE @@L45 - LR 2,8 ==> dslist - A 2,=F'57' - ST 2,88(13) - MVC 92(4,13),=A(@@LC17) - LA 1,88(,13) - L 15,=V(STRCAT) - BALR 14,15 -@@L45 EQU * - IC 2,40(9) ==> .recfm - N 2,=F'2' - CLM 2,1,=XL1'00' - BE @@L46 - LR 2,8 ==> dslist - A 2,=F'57' - ST 2,88(13) - MVC 92(4,13),=A(@@LC18) - LA 1,88(,13) - L 15,=V(STRCAT) - BALR 14,15 -@@L46 EQU * - SLR 2,2 - IC 2,15(9) ==> .noepv - STH 2,62(8) ==> .extents - MVC 64(2,8),44(9) ==> .lrecl - MVC 66(2,8),42(9) ==> .blksize,blksz - SLR 2,2 - IC 2,9(9) ==> .credt - AH 2,=H'1900' - STH 2,68(8) ==> .cryear - CLM 2,3,=H'1979' - BH @@L47 - AH 2,=H'100' - STH 2,68(8) ==> .cryear -@@L47 EQU * - MVC 70(2,8),10(9) ==> .crjday - LH 2,68(8) ==> .cryear - N 2,=XL4'0000FFFF' - A 2,=F'-1900' - ST 2,124(13) ==> .tm_year - LH 2,70(8) ==> .crjday - N 2,=XL4'0000FFFF' - ST 2,116(13) ==> .tm_mday - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(MKTIME) - BALR 14,15 - IC 3,123(13) ==> .tm_mon - LA 2,1(,3) - STC 2,72(8) ==> .crmon - MVC 73(1,8),119(13) ==> .crday,tm_mday - SLR 2,2 - IC 2,31(9) ==> .refd - AH 2,=H'1900' - STH 2,74(8) ==> .rfyear - CLM 2,3,=H'1979' - BH @@L48 - AH 2,=H'100' - STH 2,74(8) ==> .rfyear -@@L48 EQU * - MVC 76(2,8),32(9) ==> .rfjday - LA 4,104(,13) ==> s - SLR 3,3 ==> c - LA 2,36(0,0) ==> n - -*** MEMSET *** - LR 14,4 => target (s) ==> s - LR 15,2 => length (n) ==> n - SLR 0,0 => source (NULL) - LR 1,3 fill character ==> c - SLL 1,24 move fill to high byte - MVCL 14,0 Set target to fill character - LH 2,74(8) ==> .rfyear - N 2,=XL4'0000FFFF' - A 2,=F'-1900' - ST 2,124(13) ==> .tm_year - LH 2,76(8) ==> .rfjday - N 2,=XL4'0000FFFF' - ST 2,116(13) ==> .tm_mday - ST 4,88(13) ==> s - LA 1,88(,13) - L 15,=V(MKTIME) - BALR 14,15 - IC 4,123(13) ==> .tm_mon - LA 2,1(,4) - STC 2,78(8) ==> .rfmon - MVC 79(1,8),119(13) ==> .rfday,tm_mday -@@L24 EQU * - LR 2,7 ==> udata - A 2,=F'12' - ST 2,88(13) - ST 8,92(13) ==> dslist - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LTR 15,15 ==> rc - BE @@L4 - ST 8,88(13) ==> dslist - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L4 EQU * - SLR 15,15 -* Function 'parse' epilogue - PDPEPIL -* Function 'parse' literal pool - DS 0D - LTORG -* Function 'parse' page table -@@PGT1 DS 0F - DC A(@@PG1) -@@LC0 EQU * - DC C' -' - DC X'15' - DC X'0' -@@LC1 EQU * - DC C'NONVSAM' - DC X'0' -@@LC2 EQU * - DC C'PAGESPACE' - DC X'0' -@@LC3 EQU * - DC C'CLUSTER' - DC X'0' -@@LC4 EQU * - DC C'USERCATALOG' - DC X'0' -@@LC5 EQU * - DC C'VOLSER' - DC X'0' -@@LC6 EQU * - DC C'******' - DC X'0' -@@LC7 EQU * - DC C'IS' - DC X'0' -@@LC8 EQU * - DC C'PS' - DC X'0' -@@LC9 EQU * - DC C'DA' - DC X'0' -@@LC10 EQU * - DC C'PO' - DC X'0' -@@LC11 EQU * - DC C'VS' - DC X'0' -@@LC12 EQU * - DC C'F' - DC X'0' -@@LC13 EQU * - DC C'V' - DC X'0' -@@LC14 EQU * - DC C'U' - DC X'0' -@@LC15 EQU * - DC C'B' - DC X'0' -@@LC16 EQU * - DC C'S' - DC X'0' -@@LC17 EQU * - DC C'A' - DC X'0' -@@LC18 EQU * - DC C'M' - DC X'0' - END diff --git a/src/crent370/clib/@@listpd.c b/src/crent370/clib/@@listpd.c deleted file mode 100644 index a890e8f..0000000 --- a/src/crent370/clib/@@listpd.c +++ /dev/null @@ -1,64 +0,0 @@ -/* @@LISTPD.C - create PDSLIST array */ -#include -#include -#include -#include -#include -#include -#include "clibary.h" /* dynamic array prototypes */ -#include "cliblist.h" /* __listpd() */ -#include "clibstr.h" /* __patmat() */ - -PDSLIST ** -__listpd(const char *dataset, const char *filter) -{ - int rc = 0; - FILE *fp = 0; - PDSLIST **array = 0; - PDSLIST *pdslist; - int len; - unsigned pos; - unsigned size; - char buf[256]; - char member[12]; - - fp = fopen(dataset, "r,record"); - if (!fp) goto quit; - - do { - len = fread(buf, 1, sizeof(buf), fp); - if (len <= 0) goto quit; - - len = *(unsigned short *)buf; - for(pos = 2; pos < len; pos += size) { - if (memcmp(&buf[pos], "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF", 8)==0) { - /* logical end of directory */ - goto quit; - } - size = 12; /* member,ttr,c = 8+3+1 */ - size += ((buf[pos+11] & 0x1F) * 2); /* + size of user data */ - - if (filter) { - memcpy(member, &buf[pos], 8); - member[8] = 0; - strtok(member, " "); - if (!__patmat(member, filter)) continue; - } - - pdslist = calloc(1, size); - pdslist = calloc(1, size); - if (!pdslist) goto quit; - - memcpy(pdslist, &buf[pos], size); - rc = arrayadd(&array, pdslist); - if (rc) { - free(pdslist); - goto quit; - } - } - } while(!feof(fp)); - -quit: - if (fp) fclose(fp); - return array; -} diff --git a/src/crent370/clib/@@listpd.o b/src/crent370/clib/@@listpd.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@listpd.s b/src/crent370/clib/@@listpd.s deleted file mode 100644 index 877c5e2..0000000 --- a/src/crent370/clib/@@listpd.s +++ /dev/null @@ -1,180 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@listpd.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__listpd' prologue -* frame base=88, local stack=280, call args=16 -&FUNC SETC '__listpd' -@@LISTPD PDPPRLG CINDEX=0,FRAME=384,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__listpd' code - MVC 376(4,13),=F'0' - MVC 88(4,13),0(11) ==> dataset - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(FOPEN) - BALR 14,15 - LR 8,15 ==> fp - LTR 15,15 ==> fp - BE @@L3 -@@L4 EQU * - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'256' - ST 8,100(13) ==> fp - LA 1,88(,13) - L 15,=V(FREAD) - BALR 14,15 - LTR 15,15 ==> len - BNH @@L3 - LH 6,104(13) - N 6,=XL4'0000FFFF' - LA 5,2(0,0) ==> pos - CLR 5,6 ==> pos,len - BNL @@L21 - LA 9,104(,13) - LA 7,360(,13) -@@L17 EQU * - LR 3,9 - AR 3,5 ==> pos - ST 3,88(13) - MVC 92(4,13),=A(@@LC1) - MVC 96(4,13),=F'8' - LA 1,88(,13) - L 15,=V(MEMCMP) - BALR 14,15 - LTR 15,15 ==> fp - BE @@L3 - IC 2,11(9,5) ==> buf - N 2,=F'31' - MH 2,=H'2' - LR 4,2 ==> size - A 4,=F'12' ==> size - L 2,4(11) ==> filter - LTR 2,2 - BE @@L13 - ST 7,88(13) - ST 3,92(13) - MVC 96(4,13),=F'8' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - MVI 368(13),0 ==> member - ST 7,88(13) - MVC 92(4,13),=A(@@LC2) - LA 1,88(,13) - L 15,=V(STRTOK) - BALR 14,15 - ST 7,88(13) - MVC 92(4,13),4(11) ==> filter - LA 1,88(,13) - L 15,=V(@@PATMAT) - BALR 14,15 - LTR 15,15 ==> fp - BE @@L10 -@@L13 EQU * - MVC 88(4,13),=F'1' - ST 4,92(13) ==> size - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - MVC 88(4,13),=F'1' - ST 4,92(13) ==> size - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 3,15 ==> fp - LTR 15,15 ==> fp - BE @@L3 - ST 15,88(13) ==> fp - LA 2,104(,13) - AR 2,5 ==> pos - ST 2,92(13) - ST 4,96(13) ==> size - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - LA 2,376(,13) - ST 2,88(13) - ST 3,92(13) ==> fp - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LTR 15,15 ==> rc - BE @@L10 - ST 3,88(13) ==> fp - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - B @@L3 -@@L10 EQU * - AR 5,4 ==> pos,size - CLR 5,6 ==> pos,len - BL @@L17 -@@L21 EQU * - LH 2,40(8) ==> .flags - N 2,=F'1' - CH 2,=H'0' - BE @@L4 -@@L3 EQU * - LTR 8,8 ==> fp - BE @@L19 - ST 8,88(13) ==> fp - LA 1,88(,13) - L 15,=V(FCLOSE) - BALR 14,15 -@@L19 EQU * - L 15,376(13) -* Function '__listpd' epilogue - PDPEPIL -* Function '__listpd' literal pool - DS 0D - LTORG -* Function '__listpd' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'r,record' - DC X'0' -@@LC1 EQU * - DC X'FF' - DC X'FF' - DC X'FF' - DC X'FF' - DC X'FF' - DC X'FF' - DC X'FF' - DC X'FF' - DC X'0' -@@LC2 EQU * - DC C' ' - DC X'0' - END diff --git a/src/crent370/clib/@@listvl.c b/src/crent370/clib/@@listvl.c deleted file mode 100644 index 1e24c73..0000000 --- a/src/crent370/clib/@@listvl.c +++ /dev/null @@ -1,285 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include "clibary.h" /* dynamic array prototypes */ -#include "clibdscb.h" /* DSCB structs and prototypes */ -#include "cliblist.h" /* __listc() */ -#include "clibstr.h" /* __patmat() */ -#include "iecvucb.h" /* UCBDASD */ -#include "cvt.h" /* CVT */ - -static int in_vollist(VOLLIST **vollist, const char *vol); -static FILE *open_vatlst(const char *vatlst); -static int get_comment(char *buf, VOLLIST **vollist); -static int get_lspace(VOLLIST *vol); -static unsigned get_dasdtype(UCBDASD *ucbdasd); - -/* __listvl() - return list of volumes matching filter or ALL if -** filter is NULL. -** if dolspace is not zero then request volume free space information. -** if vatlst is specified the comments from the vatlst is returned. -** Note: if vatlst is a member name then SYS1.PARMLIB(vatlst) will -** be opened otherwise vatlst should be a dataset(member) name for -** the vatlst dataset or NULL. -*/ -VOLLIST **__listvl( const char *filter, int dolspace, const char *vatlst) -{ - VOLLIST **vollist = NULL; - VOLLIST *vol = NULL; - CVT *cvt = CVTPTR; - UCBLIST *ucblist = cvt->cvtilk2; /* get ptr to list of UCB's */ - UCBDASD *ucbdasd; - int i; - - // wtof("%s: start", __func__); - // wtof("%s: cvt=%p ucblist=%p", __func__, cvt, ucblist); - // wtodumpf(ucblist, 8192, "%s: ucblist", __func__); - - /* scan list of UCB's */ - for(i=0; ucblist->ucb[i] != UCBEOL; i++) { - /* Get UCB address from list */ - unsigned ucbaddr = ucblist->ucb[i]; - ucbdasd = (UCBDASD*)(ucbaddr); - if (!ucbdasd) continue; /* skip NULL UCB address */ - - // wtodumpf(ucbdasd, sizeof(UCBDASD), "%s: ucbdasd", __func__); - - /* Make sure this is a DASD UCB */ - if (!(ucbdasd->ucbtype[2] == UCBTYPEDA)) { - // wtof("%s: NOT DASD continue", __func__); - continue; /* NOT DASD */ - } - if (ucbdasd->ucbtype[3] == UCBTYPE2321) { - // wtof("%s: IS 2321 continue", __func__); - continue; /* skip 2321 data cell */ - } - - /* Make sure this volume is ONLINE */ - if (!(ucbdasd->ucbstat & UCBONLI)) { - // wtof("%s: NOT ONLINE continue", __func__); - continue; /* NOT ONLINE */ - } - - /* filter volser is needed */ - if (filter && *filter) { - char volser[7]; - - memcpy(volser, ucbdasd->ucbvol, 6); - volser[6] = 0; - if (!__patmat(volser, filter)) continue; - } - - /* Skip if we've already processsed this UCB */ - if (in_vollist(vollist, ucbdasd->ucbvol)) { - // wtof("%s: in_vollist() continue", __func__); - continue; /* skip if in vollist */ - } - - /* Build vollist entry */ - vol = (VOLLIST*) calloc(1, sizeof(VOLLIST)); - if (!vol) { - wtof("%s: out of memory", __func__); - break; - } - - /* add vol to vollist array */ - array_add(&vollist, vol); - - /* populate UCB info for this volume */ - memcpy(vol->volser, ucbdasd->ucbvol, 6); - - /* map UCB flags to vollist flags */ - if (ucbdasd->ucbstat & UCBONLI) vol->status |= VOLLIST_STATUS_ONLI; - if (ucbdasd->ucbstat & UCBRESV) vol->status |= VOLLIST_STATUS_RESV; - if (ucbdasd->ucbstat & UCBPRES) vol->status |= VOLLIST_STATUS_PRES; - if (ucbdasd->ucbstab & UCBSTABPRV) vol->status |= VOLLIST_STATUS_PRV; - if (ucbdasd->ucbstab & UCBSTABPUB) vol->status |= VOLLIST_STATUS_PUB; - if (ucbdasd->ucbstab & UCBSTABSTR) vol->status |= VOLLIST_STATUS_STG; - - /* save this UCB address */ - vol->ucbdasd = ucbdasd; - - /* get channel and device values */ - vol->cuu = ucbdasd->ucbchan; - vol->dasdtype = get_dasdtype(ucbdasd); - - if (dolspace) { - get_lspace(vol); - } - } - - while (vatlst && *vatlst) { - FILE *fp = open_vatlst(vatlst); - char *p = NULL; - char buf[256] = {0}; - - if (!fp) break; - - /* read VATLST records and get comments for our vollist */ - for(p=fgets(buf, sizeof(buf), fp); p; p=fgets(buf, sizeof(buf), fp)) { - get_comment(buf, vollist); - memset(buf, 0, sizeof(buf)); - } - - fclose(fp); - break; - } - -quit: - // wtof("%s: exit vollist=%p", __func__, vollist); - return vollist; -} - -static unsigned get_dasdtype(UCBDASD *ucbdasd) -{ - unsigned dasdtype = 0; - - switch(ucbdasd->ucbtype[3]) { - case 0x01: dasdtype = 0x2311; break; - case 0x06: dasdtype = 0x2305; break; /* 2305-1 */ - case 0x07: dasdtype = 0x2305; break; /* 2305-2 */ - case 0x08: dasdtype = 0x2314; break; - case 0x09: dasdtype = 0x3330; break; - case 0x0A: dasdtype = 0x3340; break; - case 0x0B: dasdtype = 0x3350; break; - case 0x0C: dasdtype = 0x3375; break; - case 0x0D: dasdtype = 0x3330; break; /* 3330-1 */ - case 0x0E: dasdtype = 0x3380; break; - case 0x0F: dasdtype = 0x3390; break; - } - - return dasdtype; -} - -static int get_lspace(VOLLIST *vol) -{ - int rc = 0; - UCBDASD *ucbdasd = vol->ucbdasd; - struct parmarea { - char space_eq[6]; /* "SPACE=" */ - char free_tot_cyl[4]; - char free_tot_cylz; - char free_tot_trk[4]; - char free_tot_trkz; - char free_extents[4]; - char free_extentsz; - char max_contig_cyl[4]; - char max_contig_cylz; - char max_contig_trk[4]; - char max_contig_trkz; - } parmarea; - - __asm__("LR\t0,%1\tUCB address in R0\n\t" - "LR\t1,%2\tLSPACE parameter area in R1\n\t" - "SVC\t78\t Issue SVC 78 LSPACE\n\t" - "ST\t15,%0\tSave LSPACE RC" - : "=m"(rc) - : "r" (ucbdasd), "r" (&parmarea) ); - - // wtof("@@listvl:%s: LSPACE RC=%d", __func__, rc); - - if (!rc) { - parmarea.free_tot_cylz = 0; - parmarea.free_tot_trkz = 0; - parmarea.free_extentsz = 0; - parmarea.max_contig_cylz = 0; - parmarea.max_contig_trkz = 0; - - // wtodumpf(&parmarea, sizeof(parmarea), "@@listvl:%s: parmarea", __func__); - - vol->freecyls = atoi(parmarea.free_tot_cyl); - vol->freetrks = atoi(parmarea.free_tot_trk); - vol->freeexts = atoi(parmarea.free_extents); - vol->maxfreecyls = atoi(parmarea.max_contig_cyl); - vol->maxfreetrks = atoi(parmarea.max_contig_trk); - } - else { - wtof("@@listvl:%s: LSPACE RC=%d", __func__, rc); - } - -quit: - return rc; -} - -static int get_comment(char *buf, VOLLIST **vollist) -{ - int rc = 0; - unsigned n, count = array_count(&vollist); - struct record { - char volser[6]; - char filler1[33]; - char comment[40]; - char filler2; - } *rec = (struct record*)buf; - char volpat[7]; - - rec->filler1[0] = 0; /* zero terminate volser */ - rec->filler2 = 0; /* zero terminate comment */ - - strncpy(volpat, rec->volser, sizeof(volpat)-1); - volpat[sizeof(volpat)-1] = 0; - strtok(volpat, " "); - - // wtodumpf(rec, sizeof(struct record), "@@listvl:%s: record", __func__); - - for(n=0; n < count; n++) { - VOLLIST *v = vollist[n]; - - if (!v) continue; - if (!v->comment) { - if (__patmat(v->volser, volpat)) { - v->comment = strdup(rec->comment); - } - } - } - - return rc; -} - - -static FILE *open_vatlst(const char *vatlst) -{ - FILE *fp = NULL; - int len = strlen(vatlst); - char dsn[56]; - - if (!len) goto quit; - - strncpy(dsn, vatlst, sizeof(dsn)); - dsn[sizeof(dsn)-1] = 0; - - if (len > 8) goto do_dataset; - if (strchr(vatlst, '.')) goto do_dataset; - if (strchr(vatlst, '(')) goto do_dataset; - - sprintf(dsn, "SYS1.PARMLIB(%s)", vatlst); - -do_dataset: - fp = fopen(dsn, "r"); - - if (!fp) wtof("@@listvl:%s: unable to open \"%s\"", __func__); - -quit: - return fp; -} - -/* in_vollist() - returns 1 if vol is in vollist array, otherwise 0 */ -static int in_vollist(VOLLIST **vollist, const char *vol) -{ - int found = 0; - unsigned n, count = array_count(&vollist); - - for(n=0; n < count; n++) { - VOLLIST *v = vollist[n]; - if (memcmp(v->volser, vol, 6)==0) { - found = 1; - break; - } - } - - return found; -} - diff --git a/src/crent370/clib/@@listvl.o b/src/crent370/clib/@@listvl.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@listvl.s b/src/crent370/clib/@@listvl.s deleted file mode 100644 index 634087e..0000000 --- a/src/crent370/clib/@@listvl.s +++ /dev/null @@ -1,657 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@listvl.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@2 EQU * - DC C'__listvl' - DC X'0' - DS 0F - EJECT -* external function '__listvl' prologue -* frame base=88, local stack=272, call args=16 -&FUNC SETC '__listvl' -@@LISTVL PDPPRLG CINDEX=0,FRAME=376,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__listvl' code - L 8,0(11) ==> filter - L 9,4(11) ==> dolspace - L 7,8(11) ==> vatlst - MVC 368(4,13),=F'0' - LA 2,16(0,0) - L 2,0(2) ==> cvt - L 5,40(2) ==> ucblist,cvtilk2 - SLR 6,6 ==> i - LH 2,0(5) ==> .ucb - CLM 2,3,=H'-1' - BE @@L3 -@@L21 EQU * - LR 2,6 ==> i - MH 2,=H'2' - LH 4,0(2,5) ==> .ucb - N 4,=XL4'0000FFFF' - LTR 4,4 ==> ucbdasd - BE @@L4 - CLI 18(4),32 ==> .ucbtype - BNE @@L4 - CLI 19(4),5 ==> .ucbtype - BE @@L4 - IC 2,3(4) ==> .ucbstat - N 2,=F'-128' - CLM 2,1,=XL1'00' - BE @@L4 - LTR 8,8 ==> filter - BE @@L10 - IC 2,0(8) ==> filter - CLM 2,1,=XL1'00' - BE @@L10 - LA 2,104(,13) - ST 2,88(13) - LR 3,4 ==> ucbdasd - A 3,=F'28' - ST 3,92(13) - MVC 96(4,13),=F'6' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - MVI 110(13),0 ==> volser - ST 2,88(13) - ST 8,92(13) ==> filter - LA 1,88(,13) - L 15,=V(@@PATMAT) - BALR 14,15 - LTR 15,15 ==> fp - BE @@L4 -@@L10 EQU * - MVC 88(4,13),368(13) - LR 2,4 ==> ucbdasd - A 2,=F'28' - ST 2,92(13) - LA 1,88(,13) - L 15,=A(@@3) - BALR 14,15 - LTR 15,15 ==> fp - BNE @@L4 - MVC 88(4,13),=F'1' - MVC 92(4,13),=F'40' - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 3,15 ==> vol - LTR 15,15 ==> vol - BNE @@L13 - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@2) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - B @@L3 -@@L13 EQU * - LA 2,368(,13) - ST 2,88(13) - ST 15,92(13) ==> vol - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - ST 3,88(13) ==> vol - LR 2,4 ==> ucbdasd - A 2,=F'28' - ST 2,92(13) - MVC 96(4,13),=F'6' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - IC 2,3(4) ==> .ucbstat - N 2,=F'-128' - CLM 2,1,=XL1'00' - BE @@L14 - OI 7(3),128 ==> .status -@@L14 EQU * - IC 2,3(4) ==> .ucbstat - N 2,=F'32' - CLM 2,1,=XL1'00' - BE @@L15 - OI 7(3),64 ==> .status -@@L15 EQU * - IC 2,3(4) ==> .ucbstat - N 2,=F'4' - CLM 2,1,=XL1'00' - BE @@L16 - OI 7(3),32 ==> .status -@@L16 EQU * - IC 2,34(4) ==> .ucbstab - N 2,=F'16' - CLM 2,1,=XL1'00' - BE @@L17 - OI 7(3),8 ==> .status -@@L17 EQU * - IC 2,34(4) ==> .ucbstab - N 2,=F'8' - CLM 2,1,=XL1'00' - BE @@L18 - OI 7(3),4 ==> .status -@@L18 EQU * - IC 2,34(4) ==> .ucbstab - N 2,=F'4' - CLM 2,1,=XL1'00' - BE @@L19 - OI 7(3),2 ==> .status -@@L19 EQU * - ST 4,8(3) ==> ucbdasd,ucbdasd - MVC 12(2,3),4(4) ==> .cuu,ucbchan - ST 4,88(13) ==> ucbdasd - LA 1,88(,13) - L 15,=A(@@4) - BALR 14,15 - STH 15,14(3) ==> fp,dasdtype - LTR 9,9 ==> dolspace - BE @@L4 - ST 3,88(13) ==> vol - LA 1,88(,13) - L 15,=A(@@5) - BALR 14,15 -@@L4 EQU * - A 6,=F'1' ==> i - LR 2,6 ==> i - MH 2,=H'2' - LH 2,0(2,5) ==> .ucb - CLM 2,3,=H'-1' - BNE @@L21 -@@L3 EQU * - LTR 7,7 ==> vatlst - BE @@L34 - IC 2,0(7) ==> vatlst - CLM 2,1,=XL1'00' - BE @@L34 - ST 7,88(13) ==> vatlst - LA 1,88(,13) - L 15,=A(@@6) - BALR 14,15 - LR 6,15 ==> fp - SLR 15,15 ==> p - LA 7,112(,13) - LR 4,7 - LA 5,256(0,0) - LR 2,15 ==> p - LR 3,15 ==> p - MVCL 4,2 ==> p - LTR 6,6 ==> fp - BE @@L34 - ST 7,88(13) - MVC 92(4,13),=F'256' - ST 6,96(13) ==> fp - LA 1,88(,13) - L 15,=V(FGETS) - BALR 14,15 - LTR 15,15 ==> p - BE @@L38 - LA 2,112(,13) ==> s - SLR 4,4 ==> c - LA 3,256(0,0) ==> n -@@L32 EQU * - ST 2,88(13) ==> s - MVC 92(4,13),368(13) - LA 1,88(,13) - L 15,=A(@@7) - BALR 14,15 - -*** MEMSET *** - LR 14,2 => target (s) ==> s - LR 15,3 => length (n) ==> n - SLR 0,0 => source (NULL) - LR 1,4 fill character ==> c - SLL 1,24 move fill to high byte - MVCL 14,0 Set target to fill character - ST 2,88(13) ==> s - ST 3,92(13) ==> n - ST 6,96(13) ==> fp - LA 1,88(,13) - L 15,=V(FGETS) - BALR 14,15 - LTR 15,15 ==> p - BNE @@L32 -@@L38 EQU * - ST 6,88(13) ==> fp - LA 1,88(,13) - L 15,=V(FCLOSE) - BALR 14,15 -@@L34 EQU * - L 15,368(13) -* Function '__listvl' epilogue - PDPEPIL -* Function '__listvl' literal pool - DS 0D - LTORG -* Function '__listvl' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s: out of memory' - DC X'0' - DS 0F - EJECT -* static function 'get_dasdtype' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'get_dasdtype' -@@4 PDPPRLG CINDEX=1,FRAME=88,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'get_dasdtype' code - SLR 15,15 ==> dasdtype - L 2,0(11) ==> ucbdasd - SLR 3,3 - IC 3,19(2) ==> .ucbtype - LA 2,15(0,0) - CLR 3,2 - BH @@L40 - MH 3,=H'4' - L 2,=A(@@L52) - L 14,0(3,2) - BR 14 - DS 0F - DS 0F - DS 0F - LTORG - DS 0F -@@L52 EQU * - DC A(@@L40) - DC A(@@L41) - DC A(@@L40) - DC A(@@L40) - DC A(@@L40) - DC A(@@L40) - DC A(@@L43) - DC A(@@L43) - DC A(@@L44) - DC A(@@L49) - DC A(@@L46) - DC A(@@L47) - DC A(@@L48) - DC A(@@L49) - DC A(@@L50) - DC A(@@L51) -@@L41 EQU * - L 15,=F'8977' ==> dasdtype - B @@L40 -@@L43 EQU * - L 15,=F'8965' ==> dasdtype - B @@L40 -@@L44 EQU * - L 15,=F'8980' ==> dasdtype - B @@L40 -@@L46 EQU * - L 15,=F'13120' ==> dasdtype - B @@L40 -@@L47 EQU * - L 15,=F'13136' ==> dasdtype - B @@L40 -@@L48 EQU * - L 15,=F'13173' ==> dasdtype - B @@L40 -@@L49 EQU * - L 15,=F'13104' ==> dasdtype - B @@L40 -@@L50 EQU * - L 15,=F'13184' ==> dasdtype - B @@L40 -@@L51 EQU * - L 15,=F'13200' ==> dasdtype -@@L40 EQU * -* Function 'get_dasdtype' epilogue - PDPEPIL -* Function 'get_dasdtype' literal pool - DS 0D - LTORG -* Function 'get_dasdtype' page table -@@PGT1 DS 0F - DC A(@@PG1) -@@8 EQU * - DC C'get_lspace' - DC X'0' - DS 0F - EJECT -* static function 'get_lspace' prologue -* frame base=88, local stack=40, call args=16 -&FUNC SETC 'get_lspace' -@@5 PDPPRLG CINDEX=2,FRAME=144,BASER=12,ENTRY=NO - B @@FEN2 - LTORG -@@FEN2 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG2 EQU * - LR 11,1 - L 10,=A(@@PGT2) -* Function 'get_lspace' code - L 4,0(11) ==> vol - MVC 136(4,13),=F'0' - L 3,8(4) ==> ucbdasd,ucbdasd - LA 2,104(,13) - LR 0,3 UCB address in R0 ==> ucbdasd - LR 1,2 LSPACE parameter area in R1 - SVC 78 Issue SVC 78 LSPACE - ST 15,136(13) Save LSPACE RC - L 2,136(13) - LTR 2,2 - BNE @@L55 - STC 2,114(13) ==> .free_tot_cylz - STC 2,119(13) ==> .free_tot_trkz - STC 2,124(13) ==> .free_extentsz - STC 2,129(13) ==> .max_contig_cylz - STC 2,134(13) ==> .max_contig_trkz - LA 2,110(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(ATOI) - BALR 14,15 - ST 15,16(4) ==> .freecyls - LA 2,115(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(ATOI) - BALR 14,15 - ST 15,20(4) ==> .freetrks - LA 2,120(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(ATOI) - BALR 14,15 - ST 15,24(4) ==> .freeexts - LA 2,125(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(ATOI) - BALR 14,15 - ST 15,28(4) ==> .maxfreecyls - LA 2,130(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(ATOI) - BALR 14,15 - ST 15,32(4) ==> .maxfreetrks - B @@L57 -@@L55 EQU * - MVC 88(4,13),=A(@@LC1) - MVC 92(4,13),=A(@@8) - MVC 96(4,13),136(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L57 EQU * - L 15,136(13) -* Function 'get_lspace' epilogue - PDPEPIL -* Function 'get_lspace' literal pool - DS 0D - LTORG -* Function 'get_lspace' page table -@@PGT2 DS 0F - DC A(@@PG2) -@@LC1 EQU * - DC C'@@listvl:%s: LSPACE RC=%d' - DC X'0' - DS 0F - EJECT -* static function 'get_comment' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'get_comment' -@@7 PDPPRLG CINDEX=3,FRAME=112,BASER=12,ENTRY=NO - B @@FEN3 - LTORG -@@FEN3 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG3 EQU * - LR 11,1 - L 10,=A(@@PGT3) -* Function 'get_comment' code - SLR 7,7 ==> rc - LA 2,4(,11) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 6,15 ==> count - L 5,0(11) ==> rec,buf - STC 7,6(5) ==> rc,filler1 - STC 7,79(5) ==> rc,filler2 - LA 2,104(,13) - ST 2,88(13) - ST 5,92(13) ==> rec - MVC 96(4,13),=F'6' - LA 1,88(,13) - L 15,=V(STRNCPY) - BALR 14,15 - STC 7,110(13) ==> rc,volpat - ST 2,88(13) - MVC 92(4,13),=A(@@LC2) - LA 1,88(,13) - L 15,=V(STRTOK) - BALR 14,15 - LR 4,7 ==> n,rc - CLR 7,6 ==> rc,count - BNL @@L68 -@@L66 EQU * - LR 3,4 ==> n - MH 3,=H'4' - L 2,4(11) - L 3,0(3,2) ==> v - LTR 3,3 ==> v - BE @@L61 - L 2,36(3) ==> .comment - LTR 2,2 - BNE @@L61 - ST 3,88(13) ==> v - LA 2,104(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@PATMAT) - BALR 14,15 - LTR 15,15 ==> count - BE @@L61 - LR 2,5 ==> rec - A 2,=F'39' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(STRDUP) - BALR 14,15 - ST 15,36(3) ==> count,comment -@@L61 EQU * - A 4,=F'1' ==> n - CLR 4,6 ==> n,count - BL @@L66 -@@L68 EQU * - LR 15,7 ==> rc -* Function 'get_comment' epilogue - PDPEPIL -* Function 'get_comment' literal pool - DS 0D - LTORG -* Function 'get_comment' page table -@@PGT3 DS 0F - DC A(@@PG3) -@@LC2 EQU * - DC C' ' - DC X'0' -@@9 EQU * - DC C'open_vatlst' - DC X'0' - DS 0F - EJECT -* static function 'open_vatlst' prologue -* frame base=88, local stack=56, call args=16 -&FUNC SETC 'open_vatlst' -@@6 PDPPRLG CINDEX=4,FRAME=160,BASER=12,ENTRY=NO - B @@FEN4 - LTORG -@@FEN4 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG4 EQU * - LR 11,1 - L 10,=A(@@PGT4) -* Function 'open_vatlst' code - L 4,0(11) ==> vatlst - SLR 3,3 ==> fp - ST 4,88(13) ==> vatlst - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 2,15 ==> len - LTR 15,15 ==> len - BE @@L71 - LA 5,104(,13) - ST 5,88(13) - ST 4,92(13) ==> vatlst - MVC 96(4,13),=F'56' - LA 1,88(,13) - L 15,=V(STRNCPY) - BALR 14,15 - STC 3,159(13) ==> fp,dsn - LA 3,8(0,0) - CR 2,3 ==> len - BH @@L73 - ST 4,88(13) ==> vatlst - MVC 92(4,13),=F'75' - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LTR 15,15 ==> len - BNE @@L73 - ST 4,88(13) ==> vatlst - MVC 92(4,13),=F'77' - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LTR 15,15 ==> len - BNE @@L73 - ST 5,88(13) - MVC 92(4,13),=A(@@LC3) - ST 4,96(13) ==> vatlst - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 -@@L73 EQU * - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC4) - LA 1,88(,13) - L 15,=V(FOPEN) - BALR 14,15 - LR 3,15 ==> fp - LTR 15,15 ==> fp - BNE @@L71 - MVC 88(4,13),=A(@@LC5) - MVC 92(4,13),=A(@@9) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L71 EQU * - LR 15,3 ==> fp -* Function 'open_vatlst' epilogue - PDPEPIL -* Function 'open_vatlst' literal pool - DS 0D - LTORG -* Function 'open_vatlst' page table -@@PGT4 DS 0F - DC A(@@PG4) -@@LC3 EQU * - DC C'SYS1.PARMLIB(%s)' - DC X'0' -@@LC4 EQU * - DC C'r' - DC X'0' -@@LC5 EQU * - DC C'@@listvl:%s: unable to open "%s"' - DC X'0' - DS 0F - EJECT -* static function 'in_vollist' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'in_vollist' -@@3 PDPPRLG CINDEX=5,FRAME=104,BASER=12,ENTRY=NO - B @@FEN5 - LTORG -@@FEN5 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG5 EQU * - LR 11,1 - L 10,=A(@@PGT5) -* Function 'in_vollist' code - L 7,4(11) ==> vol - SLR 6,6 ==> found - ST 11,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 5,15 ==> count - LR 4,6 ==> n,found - CLR 6,15 ==> found,count - BNL @@L79 -@@L83 EQU * - LR 2,4 ==> n - MH 2,=H'4' - L 3,0(11) - L 2,0(2,3) - ST 2,88(13) - ST 7,92(13) ==> vol - MVC 96(4,13),=F'6' - LA 1,88(,13) - L 15,=V(MEMCMP) - BALR 14,15 - LTR 15,15 ==> count - BNE @@L80 - LA 6,1(0,0) ==> found - B @@L79 -@@L80 EQU * - A 4,=F'1' ==> n - CLR 4,5 ==> n,count - BL @@L83 -@@L79 EQU * - LR 15,6 ==> found -* Function 'in_vollist' epilogue - PDPEPIL -* Function 'in_vollist' literal pool - DS 0D - LTORG -* Function 'in_vollist' page table -@@PGT5 DS 0F - DC A(@@PG5) - END diff --git a/src/crent370/clib/@@lk.c b/src/crent370/clib/@@lk.c deleted file mode 100644 index f93041c..0000000 --- a/src/crent370/clib/@@lk.c +++ /dev/null @@ -1,20 +0,0 @@ -#include "clibenq.h" -#include "cliblock.h" -#include "clibio.h" - -__asm__("\n&FUNC SETC 'lock'"); -int -lock(void *thing, int read) -{ - unsigned opts = ENQ_HAVE; - char rname[LOCKRNAMESZ]; -#if 0 - wtof("Function \"%s\" called lock() with %08X pointer", - __caller(0), thing); -#endif - if (read) opts |= ENQ_SHR; - - sprintf(rname, LOCKRNAME, thing); - - return ENQ(LOCKQNAME, rname, opts); -} diff --git a/src/crent370/clib/@@lk.o b/src/crent370/clib/@@lk.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@lk.s b/src/crent370/clib/@@lk.s deleted file mode 100644 index e8c6a27..0000000 --- a/src/crent370/clib/@@lk.s +++ /dev/null @@ -1,73 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@lk.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'lock' -* Program text area - DS 0F - EJECT -* external function 'lock' prologue -* frame base=88, local stack=24, call args=16 -&FUNC SETC 'lock' -@@LK PDPPRLG CINDEX=0,FRAME=128,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'lock' code - L 3,4(11) ==> read - LPR 2,3 ==> opts - LCR 2,2 ==> opts - SRL 2,31 ==> opts - SLL 2,2 ==> opts - LA 3,104(,13) - ST 3,88(13) - MVC 92(4,13),=A(@@LC0) - MVC 96(4,13),0(11) ==> thing - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - MVC 88(4,13),=A(@@LC1) - ST 3,92(13) - ST 2,96(13) ==> opts - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@ENQDEQ) - BALR 14,15 -* Function 'lock' epilogue - PDPEPIL -* Function 'lock' literal pool - DS 0D - LTORG -* Function 'lock' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'LOCK.%08X' - DC X'0' -@@LC1 EQU * - DC C'CLIBLOCK' - DC X'0' - END diff --git a/src/crent370/clib/@@lkrn.c b/src/crent370/clib/@@lkrn.c deleted file mode 100644 index 416d5b0..0000000 --- a/src/crent370/clib/@@lkrn.c +++ /dev/null @@ -1,13 +0,0 @@ -#include "clibenq.h" -#include "cliblock.h" -#include "clibio.h" - -int -__lkrn(const char *rname, int read) -{ - unsigned opts = ENQ_HAVE; - - if (read) opts |= ENQ_SHR; - - return ENQ(LOCKQNAME, rname, opts); -} diff --git a/src/crent370/clib/@@lkrn.o b/src/crent370/clib/@@lkrn.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@lkrn.s b/src/crent370/clib/@@lkrn.s deleted file mode 100644 index a0ee189..0000000 --- a/src/crent370/clib/@@lkrn.s +++ /dev/null @@ -1,61 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@lkrn.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__lkrn' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__lkrn' -@@LKRN PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__lkrn' code - L 3,4(11) ==> read - LPR 2,3 ==> opts - LCR 2,2 ==> opts - SRL 2,31 ==> opts - SLL 2,2 ==> opts - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),0(11) ==> rname - ST 2,96(13) ==> opts - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@ENQDEQ) - BALR 14,15 -* Function '__lkrn' epilogue - PDPEPIL -* Function '__lkrn' literal pool - DS 0D - LTORG -* Function '__lkrn' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'CLIBLOCK' - DC X'0' - END diff --git a/src/crent370/clib/@@lkrnf.c b/src/crent370/clib/@@lkrnf.c deleted file mode 100644 index 5d6eff0..0000000 --- a/src/crent370/clib/@@lkrnf.c +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include "clibenq.h" -#include "cliblock.h" -#include "clibio.h" - -int -__lkrnf(const char *fmt, int read, ...) -{ - va_list list; - char rname[256]; - - va_start(list,read); - vsprintf(rname, fmt, list); - va_end(list); - - return __lkrn(rname, read); -} diff --git a/src/crent370/clib/@@lkrnf.o b/src/crent370/clib/@@lkrnf.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@lkrnf.s b/src/crent370/clib/@@lkrnf.s deleted file mode 100644 index 0a7ff84..0000000 --- a/src/crent370/clib/@@lkrnf.s +++ /dev/null @@ -1,59 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@lkrnf.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__lkrnf' prologue -* frame base=88, local stack=256, call args=16 -&FUNC SETC '__lkrnf' -@@LKRNF PDPPRLG CINDEX=0,FRAME=360,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__lkrnf' code - LA 3,104(,13) - ST 3,88(13) - MVC 92(4,13),0(11) ==> fmt - LA 2,8(,11) ==> list - ST 2,96(13) ==> list - LA 1,88(,13) - L 15,=V(VSPRINTF) - BALR 14,15 - ST 3,88(13) - MVC 92(4,13),4(11) - LA 1,88(,13) - L 15,=V(@@LKRN) - BALR 14,15 -* Function '__lkrnf' epilogue - PDPEPIL -* Function '__lkrnf' literal pool - DS 0D - LTORG -* Function '__lkrnf' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@lkrnte.c b/src/crent370/clib/@@lkrnte.c deleted file mode 100644 index 99dfd5c..0000000 --- a/src/crent370/clib/@@lkrnte.c +++ /dev/null @@ -1,13 +0,0 @@ -#include "clibenq.h" -#include "cliblock.h" - -int -__lkrnte(const char *rname, int read) -{ - unsigned opts = ENQ_TEST; - - if (read) opts |= ENQ_SHR; - - return ENQ(LOCKQNAME, rname, opts); - /* 0==resource is not locked */ -} diff --git a/src/crent370/clib/@@lkrnte.o b/src/crent370/clib/@@lkrnte.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@lkrnte.s b/src/crent370/clib/@@lkrnte.s deleted file mode 100644 index 46e4ab8..0000000 --- a/src/crent370/clib/@@lkrnte.s +++ /dev/null @@ -1,62 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@lkrnte.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__lkrnte' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__lkrnte' -@@LKRNTE PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__lkrnte' code - LA 15,128(0,0) ==> opts - L 2,4(11) ==> read - LTR 2,2 ==> read - BE @@L2 - LA 15,132(0,0) ==> opts -@@L2 EQU * - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),0(11) ==> rname - ST 15,96(13) ==> opts - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@ENQDEQ) - BALR 14,15 -* Function '__lkrnte' epilogue - PDPEPIL -* Function '__lkrnte' literal pool - DS 0D - LTORG -* Function '__lkrnte' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'CLIBLOCK' - DC X'0' - END diff --git a/src/crent370/clib/@@lkrntf.c b/src/crent370/clib/@@lkrntf.c deleted file mode 100644 index 6ecb985..0000000 --- a/src/crent370/clib/@@lkrntf.c +++ /dev/null @@ -1,16 +0,0 @@ -#include -#include "clibenq.h" -#include "cliblock.h" - -int -__lkuntf(const char *fmt, int read, ...) -{ - va_list list; - char rname[256]; - - va_start(list, read); - vsprintf(rname, fmt, list); - va_end(list); - - return __lkuntr(rname, read); -} diff --git a/src/crent370/clib/@@lkrntf.o b/src/crent370/clib/@@lkrntf.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@lkrntf.s b/src/crent370/clib/@@lkrntf.s deleted file mode 100644 index b4d6bbf..0000000 --- a/src/crent370/clib/@@lkrntf.s +++ /dev/null @@ -1,59 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@lkrntf.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__lkuntf' prologue -* frame base=88, local stack=256, call args=16 -&FUNC SETC '__lkuntf' -@@LKUNTF PDPPRLG CINDEX=0,FRAME=360,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__lkuntf' code - LA 3,104(,13) - ST 3,88(13) - MVC 92(4,13),0(11) ==> fmt - LA 2,8(,11) ==> list - ST 2,96(13) ==> list - LA 1,88(,13) - L 15,=V(VSPRINTF) - BALR 14,15 - ST 3,88(13) - MVC 92(4,13),4(11) - LA 1,88(,13) - L 15,=V(@@LKUNTR) - BALR 14,15 -* Function '__lkuntf' epilogue - PDPEPIL -* Function '__lkuntf' literal pool - DS 0D - LTORG -* Function '__lkuntf' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@lkrntr.c b/src/crent370/clib/@@lkrntr.c deleted file mode 100644 index f854909..0000000 --- a/src/crent370/clib/@@lkrntr.c +++ /dev/null @@ -1,12 +0,0 @@ -#include "clibenq.h" -#include "cliblock.h" - -int -__lkuntr(const char *rname, int read) -{ - unsigned opts = ENQ_USE; - - if (read) opts |= ENQ_SHR; - - return ENQ(LOCKQNAME, rname, opts); -} diff --git a/src/crent370/clib/@@lkrntr.o b/src/crent370/clib/@@lkrntr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@lkrntr.s b/src/crent370/clib/@@lkrntr.s deleted file mode 100644 index 1dbff29..0000000 --- a/src/crent370/clib/@@lkrntr.s +++ /dev/null @@ -1,62 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@lkrntr.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__lkuntr' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__lkuntr' -@@LKUNTR PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__lkuntr' code - LA 15,64(0,0) ==> opts - L 2,4(11) ==> read - LTR 2,2 ==> read - BE @@L2 - LA 15,68(0,0) ==> opts -@@L2 EQU * - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),0(11) ==> rname - ST 15,96(13) ==> opts - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@ENQDEQ) - BALR 14,15 -* Function '__lkuntr' epilogue - PDPEPIL -* Function '__lkuntr' literal pool - DS 0D - LTORG -* Function '__lkuntr' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'CLIBLOCK' - DC X'0' - END diff --git a/src/crent370/clib/@@lkrnuf.c b/src/crent370/clib/@@lkrnuf.c deleted file mode 100644 index f2ccd2b..0000000 --- a/src/crent370/clib/@@lkrnuf.c +++ /dev/null @@ -1,16 +0,0 @@ -#include -#include "clibenq.h" -#include "cliblock.h" - -int -__lkrnuf(const char *fmt, int read, ...) -{ - va_list list; - char rname[256]; - - va_start(list, read); - vsprintf(rname, fmt, list); - va_end(list); - - return __lkrnun(rname, read); -} diff --git a/src/crent370/clib/@@lkrnuf.o b/src/crent370/clib/@@lkrnuf.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@lkrnuf.s b/src/crent370/clib/@@lkrnuf.s deleted file mode 100644 index 46675d1..0000000 --- a/src/crent370/clib/@@lkrnuf.s +++ /dev/null @@ -1,59 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@lkrnuf.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__lkrnuf' prologue -* frame base=88, local stack=256, call args=16 -&FUNC SETC '__lkrnuf' -@@LKRNUF PDPPRLG CINDEX=0,FRAME=360,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__lkrnuf' code - LA 3,104(,13) - ST 3,88(13) - MVC 92(4,13),0(11) ==> fmt - LA 2,8(,11) ==> list - ST 2,96(13) ==> list - LA 1,88(,13) - L 15,=V(VSPRINTF) - BALR 14,15 - ST 3,88(13) - MVC 92(4,13),4(11) - LA 1,88(,13) - L 15,=V(@@LKRNUN) - BALR 14,15 -* Function '__lkrnuf' epilogue - PDPEPIL -* Function '__lkrnuf' literal pool - DS 0D - LTORG -* Function '__lkrnuf' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@lkrnun.c b/src/crent370/clib/@@lkrnun.c deleted file mode 100644 index 6ee4b3d..0000000 --- a/src/crent370/clib/@@lkrnun.c +++ /dev/null @@ -1,10 +0,0 @@ -#include "clibenq.h" -#include "cliblock.h" - -int -__lkrnun(const char *rname, int read) -{ - unsigned opts = ENQ_HAVE; - - return DEQ(LOCKQNAME, rname, opts); -} diff --git a/src/crent370/clib/@@lkrnun.o b/src/crent370/clib/@@lkrnun.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@lkrnun.s b/src/crent370/clib/@@lkrnun.s deleted file mode 100644 index 7ac5831..0000000 --- a/src/crent370/clib/@@lkrnun.s +++ /dev/null @@ -1,56 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@lkrnun.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__lkrnun' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__lkrnun' -@@LKRNUN PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__lkrnun' code - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),0(11) ==> rname - MVC 96(4,13),=F'0' - MVC 100(4,13),=F'1' - LA 1,88(,13) - L 15,=V(@@ENQDEQ) - BALR 14,15 -* Function '__lkrnun' epilogue - PDPEPIL -* Function '__lkrnun' literal pool - DS 0D - LTORG -* Function '__lkrnun' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'CLIBLOCK' - DC X'0' - END diff --git a/src/crent370/clib/@@lkrtef.c b/src/crent370/clib/@@lkrtef.c deleted file mode 100644 index 277a046..0000000 --- a/src/crent370/clib/@@lkrtef.c +++ /dev/null @@ -1,16 +0,0 @@ -#include -#include "clibenq.h" -#include "cliblock.h" - -int -__lkrtef(const char *fmt, int read, ...) -{ - va_list list; - char rname[256]; - - va_start(list, read); - vsprintf(rname, fmt, list); - va_end(list); - - return testlock_res(rname, read); -} diff --git a/src/crent370/clib/@@lkrtef.o b/src/crent370/clib/@@lkrtef.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@lkrtef.s b/src/crent370/clib/@@lkrtef.s deleted file mode 100644 index c9d17ea..0000000 --- a/src/crent370/clib/@@lkrtef.s +++ /dev/null @@ -1,59 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@lkrtef.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__lkrtef' prologue -* frame base=88, local stack=256, call args=16 -&FUNC SETC '__lkrtef' -@@LKRTEF PDPPRLG CINDEX=0,FRAME=360,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__lkrtef' code - LA 3,104(,13) - ST 3,88(13) - MVC 92(4,13),0(11) ==> fmt - LA 2,8(,11) ==> list - ST 2,96(13) ==> list - LA 1,88(,13) - L 15,=V(VSPRINTF) - BALR 14,15 - ST 3,88(13) - MVC 92(4,13),4(11) - LA 1,88(,13) - L 15,=V(@@LKRNTE) - BALR 14,15 -* Function '__lkrtef' epilogue - PDPEPIL -* Function '__lkrtef' literal pool - DS 0D - LTORG -* Function '__lkrtef' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@lktest.c b/src/crent370/clib/@@lktest.c deleted file mode 100644 index 5270c45..0000000 --- a/src/crent370/clib/@@lktest.c +++ /dev/null @@ -1,17 +0,0 @@ -#include "clibenq.h" -#include "cliblock.h" - -__asm__("\n&FUNC SETC 'testlock'"); -int -testlock(void *thing, int read) -{ - unsigned opts = ENQ_TEST; - char rname[LOCKRNAMESZ]; - - if (read) opts |= ENQ_SHR; - - sprintf(rname, LOCKRNAME, thing); - - return ENQ(LOCKQNAME, rname, opts); - /* 0==resource is not locked */ -} diff --git a/src/crent370/clib/@@lktest.o b/src/crent370/clib/@@lktest.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@lktest.s b/src/crent370/clib/@@lktest.s deleted file mode 100644 index 1b49956..0000000 --- a/src/crent370/clib/@@lktest.s +++ /dev/null @@ -1,74 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@lktest.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'testlock' -* Program text area - DS 0F - EJECT -* external function 'testlock' prologue -* frame base=88, local stack=24, call args=16 -&FUNC SETC 'testlock' -@@LKTEST PDPPRLG CINDEX=0,FRAME=128,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'testlock' code - LA 3,128(0,0) ==> opts - L 2,4(11) ==> read - LTR 2,2 ==> read - BE @@L2 - LA 3,132(0,0) ==> opts -@@L2 EQU * - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC0) - MVC 96(4,13),0(11) ==> thing - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - MVC 88(4,13),=A(@@LC1) - ST 2,92(13) - ST 3,96(13) ==> opts - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@ENQDEQ) - BALR 14,15 -* Function 'testlock' epilogue - PDPEPIL -* Function 'testlock' literal pool - DS 0D - LTORG -* Function 'testlock' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'LOCK.%08X' - DC X'0' -@@LC1 EQU * - DC C'CLIBLOCK' - DC X'0' - END diff --git a/src/crent370/clib/@@lktry.c b/src/crent370/clib/@@lktry.c deleted file mode 100644 index 242263c..0000000 --- a/src/crent370/clib/@@lktry.c +++ /dev/null @@ -1,17 +0,0 @@ -#include "clibenq.h" -#include "cliblock.h" - -__asm__("\n&FUNC SETC 'trylock'"); -int -trylock(void *thing, int read) -{ - unsigned opts = ENQ_USE; - char rname[LOCKRNAMESZ]; - - if (read) opts |= ENQ_SHR; - - sprintf(rname, LOCKRNAME, thing); - - return ENQ(LOCKQNAME, rname, opts); - /* 0==resource locked */ -} diff --git a/src/crent370/clib/@@lktry.o b/src/crent370/clib/@@lktry.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@lktry.s b/src/crent370/clib/@@lktry.s deleted file mode 100644 index 2da1661..0000000 --- a/src/crent370/clib/@@lktry.s +++ /dev/null @@ -1,74 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@lktry.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'trylock' -* Program text area - DS 0F - EJECT -* external function 'trylock' prologue -* frame base=88, local stack=24, call args=16 -&FUNC SETC 'trylock' -@@LKTRY PDPPRLG CINDEX=0,FRAME=128,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'trylock' code - LA 3,64(0,0) ==> opts - L 2,4(11) ==> read - LTR 2,2 ==> read - BE @@L2 - LA 3,68(0,0) ==> opts -@@L2 EQU * - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC0) - MVC 96(4,13),0(11) ==> thing - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - MVC 88(4,13),=A(@@LC1) - ST 2,92(13) - ST 3,96(13) ==> opts - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@ENQDEQ) - BALR 14,15 -* Function 'trylock' epilogue - PDPEPIL -* Function 'trylock' literal pool - DS 0D - LTORG -* Function 'trylock' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'LOCK.%08X' - DC X'0' -@@LC1 EQU * - DC C'CLIBLOCK' - DC X'0' - END diff --git a/src/crent370/clib/@@lkunlk.c b/src/crent370/clib/@@lkunlk.c deleted file mode 100644 index 7de5871..0000000 --- a/src/crent370/clib/@@lkunlk.c +++ /dev/null @@ -1,14 +0,0 @@ -#include "clibenq.h" -#include "cliblock.h" - -__asm__("\n&FUNC SETC 'unlock'"); -int -unlock(void *thing, int read) -{ - unsigned opts = ENQ_HAVE; - char rname[LOCKRNAMESZ]; - - sprintf(rname, LOCKRNAME, thing); - - return DEQ(LOCKQNAME, rname, opts); -} diff --git a/src/crent370/clib/@@lkunlk.o b/src/crent370/clib/@@lkunlk.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@lkunlk.s b/src/crent370/clib/@@lkunlk.s deleted file mode 100644 index 8111359..0000000 --- a/src/crent370/clib/@@lkunlk.s +++ /dev/null @@ -1,68 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@lkunlk.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'unlock' -* Program text area - DS 0F - EJECT -* external function 'unlock' prologue -* frame base=88, local stack=24, call args=16 -&FUNC SETC 'unlock' -@@LKUNLK PDPPRLG CINDEX=0,FRAME=128,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'unlock' code - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC0) - MVC 96(4,13),0(11) ==> thing - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - MVC 88(4,13),=A(@@LC1) - ST 2,92(13) - MVC 96(4,13),=F'0' - MVC 100(4,13),=F'1' - LA 1,88(,13) - L 15,=V(@@ENQDEQ) - BALR 14,15 -* Function 'unlock' epilogue - PDPEPIL -* Function 'unlock' literal pool - DS 0D - LTORG -* Function 'unlock' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'LOCK.%08X' - DC X'0' -@@LC1 EQU * - DC C'CLIBLOCK' - DC X'0' - END diff --git a/src/crent370/clib/@@lkuntf.c b/src/crent370/clib/@@lkuntf.c deleted file mode 100644 index 3cf6be8..0000000 --- a/src/crent370/clib/@@lkuntf.c +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include -#include "clibenq.h" -#include "cliblock.h" - -int -__lkuntf(const char *fmt, int read, ...) -{ - va_list list; - char rname[256]; - - va_start(list, read); - vsprintf(rname, fmt, list); - va_end(list); - - return trylock_res(rname, read); -} diff --git a/src/crent370/clib/@@lkuntf.o b/src/crent370/clib/@@lkuntf.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@lkuntf.s b/src/crent370/clib/@@lkuntf.s deleted file mode 100644 index 3408e75..0000000 --- a/src/crent370/clib/@@lkuntf.s +++ /dev/null @@ -1,59 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@lkuntf.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__lkuntf' prologue -* frame base=88, local stack=256, call args=16 -&FUNC SETC '__lkuntf' -@@LKUNTF PDPPRLG CINDEX=0,FRAME=360,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__lkuntf' code - LA 3,104(,13) - ST 3,88(13) - MVC 92(4,13),0(11) ==> fmt - LA 2,8(,11) ==> list - ST 2,96(13) ==> list - LA 1,88(,13) - L 15,=V(VSPRINTF) - BALR 14,15 - ST 3,88(13) - MVC 92(4,13),4(11) - LA 1,88(,13) - L 15,=V(@@LKUNTR) - BALR 14,15 -* Function '__lkuntf' epilogue - PDPEPIL -* Function '__lkuntf' literal pool - DS 0D - LTORG -* Function '__lkuntf' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@lkuntr.c b/src/crent370/clib/@@lkuntr.c deleted file mode 100644 index 8b63686..0000000 --- a/src/crent370/clib/@@lkuntr.c +++ /dev/null @@ -1,13 +0,0 @@ -#include "clibenq.h" -#include "cliblock.h" - -int -__lkuntr(const char *rname, int read) -{ - unsigned opts = ENQ_USE; - - if (read) opts |= ENQ_SHR; - - return ENQ(LOCKQNAME, rname, opts); - /* 0==resource is not locked */ -} diff --git a/src/crent370/clib/@@lkuntr.o b/src/crent370/clib/@@lkuntr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@lkuntr.s b/src/crent370/clib/@@lkuntr.s deleted file mode 100644 index ebd6936..0000000 --- a/src/crent370/clib/@@lkuntr.s +++ /dev/null @@ -1,62 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@lkuntr.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__lkuntr' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__lkuntr' -@@LKUNTR PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__lkuntr' code - LA 15,64(0,0) ==> opts - L 2,4(11) ==> read - LTR 2,2 ==> read - BE @@L2 - LA 15,68(0,0) ==> opts -@@L2 EQU * - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),0(11) ==> rname - ST 15,96(13) ==> opts - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@ENQDEQ) - BALR 14,15 -* Function '__lkuntr' epilogue - PDPEPIL -* Function '__lkuntr' literal pool - DS 0D - LTORG -* Function '__lkuntr' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'CLIBLOCK' - DC X'0' - END diff --git a/src/crent370/clib/@@load.c b/src/crent370/clib/@@load.c deleted file mode 100644 index 3f50638..0000000 --- a/src/crent370/clib/@@load.c +++ /dev/null @@ -1,97 +0,0 @@ -#include -#include - -__asm__("\n&FUNC SETC '__load'"); -void *__load(void *dcb, const char *module, unsigned *size, char *ac) -{ - void *epa = 0; - unsigned work = 0; - BLDL bldl = {0}; - int rc; - int i; - - if (!module || *module <= ' ') goto quit; - - /* prepare BLDL area */ - for(i=0; i < sizeof(bldl.de76[0].name); i++) { - if (*module) { - bldl.de76[0].name[i] = toupper(*module); - module++; - } - else { - bldl.de76[0].name[i] = ' '; - } - } - - /* find module in dcb */ - rc = __bldl(&bldl, dcb); -#if 0 - wtof("%s __bldl() rc=%d", __func__, rc); - wtodumpf(&bldl, sizeof(BLDL), "%s BLDL", __func__); -#endif - if (rc) goto quit; - - /* load module into memory */ -__asm__( "LOAD DE=(%2),DCB=(%3),ERRET=LOADFAIL\n\t" - "LR\t%0,0 Success, save EPA\n\t" - "LR\t%1,1 Success, save AC and Size\n\t" - "B\tLOADDONE\n" -"LOADFAIL DS\t0H\n\t" - "XR\t%0,%0 Failed, no EPA\n\t" - "XR\t%1,%1 Failed, no AC or Size\n" -"LOADDONE DS\t0H" - : "=r"(epa), "=r"(work) : "r"(bldl.de76), "r"(dcb) : "0", "1", "14", "15"); - - /* did we load okay? */ - if (epa) { - /* yes, return additional info */ - if (size) *size = (work & 0x00FFFFFF) << 3; /* convert double words to bytes */ - if (ac) *ac = (work >> 24); - } - -quit: - return epa; -} - -#if 0 -int main(int argc, char **argv) -{ - const char *name = "SVCMAIN"; - void *epa; - void *lpa = 0; - unsigned size = 0; - char ac = 0; - void *dcb = 0; - CDE *cde; - - /* get the steplib DCB */ - dcb = __steplb(); - wtof("%s STEPLIB %08X", __func__, dcb); - - wtof("%s LOAD %s", __func__, name); - epa = __load(dcb, name, &size, &ac); - wtof("%s epa %08X", __func__, epa); - if (epa) { - wtof("%s size %u bytes", __func__, size); - wtof("%s ac %02X", __func__, ac); - - cde = clib_find_cde(name); - wtof("%s CDE %08X", __func__, cde); - if (cde) { - wtodumpf(cde, sizeof(CDE), "CDE"); - wtodumpf(cde->xtlst, sizeof(XTLST), "XTLST"); - size = cde->xtlst->xtlmsbla & 0x00FFFFFF; - lpa = cde->xtlst->xtlmsbaa & 0x00FFFFFF; - } - - if (lpa) { - wtodumpf(lpa, size, "LOAD POINT ADDRESS"); - } - else { - wtodumpf(epa, size, "ENTRY POINT ADDRESS"); - } - } - - return 0; -} -#endif diff --git a/src/crent370/clib/@@load.o b/src/crent370/clib/@@load.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@load.s b/src/crent370/clib/@@load.s deleted file mode 100644 index e6f6005..0000000 --- a/src/crent370/clib/@@load.s +++ /dev/null @@ -1,117 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@load.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__load' -* Program text area - DS 0F - EJECT -* external function '__load' prologue -* frame base=88, local stack=80, call args=8 -&FUNC SETC '__load' -@@LOAD PDPPRLG CINDEX=0,FRAME=176,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__load' code - L 7,0(11) ==> dcb - L 15,4(11) ==> module - L 8,8(11) ==> size - L 9,12(11) ==> ac - SLR 6,6 ==> epa - LA 4,96(,13) - LA 5,80(0,0) - LR 2,6 ==> epa - LR 3,6 ==> epa - MVCL 4,2 ==> epa - LTR 15,15 ==> module - BE @@L4 - CLI 0(15),64 ==> module - BNH @@L4 - LR 4,6 ==> i,epa - L 5,=V(@@TOUP) -@@L11 EQU * - IC 2,0(15) ==> module - CLM 2,1,=XL1'00' - BE @@L9 - SLR 2,2 - IC 2,0(15) ==> module - L 3,0(5) ==> __toup - MH 2,=H'2' - IC 3,1(2,3) - STC 3,100(4,13) ==> .name - A 15,=F'1' ==> module - B @@L7 -@@L9 EQU * - LA 2,64(0,0) - STC 2,100(4,13) ==> .name -@@L7 EQU * - A 4,=F'1' ==> i - LA 2,7(0,0) - CLR 4,2 ==> i - BNH @@L11 - LA 2,96(,13) - ST 2,88(13) - ST 7,92(13) ==> dcb - LA 1,88(,13) - L 15,=V(@@BLDL) - BALR 14,15 - LTR 15,15 ==> rc - BNE @@L4 - LA 2,100(,13) - LOAD DE=(2),DCB=(7),ERRET=LOADFAIL ==> dcb - LR 6,0 Success, save EPA ==> epa - LR 3,1 Success, save AC and Size ==> work - B LOADDONE -LOADFAIL DS 0H - XR 6,6 Failed, no EPA ==> epa - XR 3,3 Failed, no AC or Size ==> work -LOADDONE DS 0H - LTR 6,6 ==> epa - BE @@L4 - LTR 8,8 ==> size - BE @@L14 - LR 2,3 ==> work - SLL 2,3 - N 2,=F'134217720' - ST 2,0(8) ==> size -@@L14 EQU * - LTR 9,9 ==> ac - BE @@L4 - LR 2,3 ==> work - SRL 2,24 - STC 2,0(9) ==> ac -@@L4 EQU * - LR 15,6 ==> epa -* Function '__load' epilogue - PDPEPIL -* Function '__load' literal pool - DS 0D - LTORG -* Function '__load' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@loadhi.c b/src/crent370/clib/@@loadhi.c deleted file mode 100644 index 49e5cb0..0000000 --- a/src/crent370/clib/@@loadhi.c +++ /dev/null @@ -1,265 +0,0 @@ -#include -#include -#include -#include - -static int super_loadhi(const char *module, void **anchor, void **epa); -static int relocate_load(FILE *fp, unsigned lowlp, unsigned highlp); -static int process_rldr(unsigned char *buf, unsigned lowlp, unsigned highlp); -static unsigned fetch(unsigned address, unsigned size); -static int store(unsigned address, unsigned value, unsigned size); - -/* load a module into high memory (CSA) */ -__asm__("\n&FUNC SETC '__loadhi'"); -int __loadhi(const char *module, void **lpa, void **epa, unsigned *sz) -{ - void *highep = 0; /* relocated entry point address */ - void *highlp = 0; /* relocated load point address */ - void *lowep = 0; /* low entry point address */ - void *lowlp = 0; /* low load point address */ - unsigned size = 0; /* size of module */ - unsigned offep = 0; /* offset of entry point */ - FILE *fp; /* file handle */ - CDE *cde; - void *dcb; - char member[12] = " "; - char filename[56] = {0}; - int i; - char *p; - - for(i=0; i < 8 && module[i]; i++) { - member[i] = toupper(module[i]); - } - - /* we only load from the task STEPLIB, so grab the STEPLIB DCB */ - dcb = __steplb(); - - /* load module into low storage (private area) */ - lowep = __load(dcb, member, 0, 0); - if (!lowep) { - wtof("%s unable to LOAD \"%s\" into private storage", __func__, member); - goto quit; - } - - /* get the CDE for this load module */ - cde = clib_find_cde(member); - if (!cde) { - wtof("%s CDE not found for \"%s\"", __func__, member); - goto quit; - } - - /* get the load point address */ - size = cde->xtlst->xtlmsbla & 0x00FFFFFF; - lowlp = (void*)cde->xtlst->xtlmsbaa; - - /* calculate offset of entry point */ - offep = (unsigned)lowep - (unsigned)lowlp; - - /* allocate CSA memory for module */ - highlp = getmain(size, 241); - if (!highlp) { - wtof("%s unable to allocate storage for %u bytes from subpool 241", __func__, size); - goto quit; - } - - /* copy the module to the getmain'd storage */ - memcpy(highlp, lowlp, size); - - /* note: After the memcpy, the highlp storage has incorrect adcons - ** values since the lowlp module was loaded by the system routines. - ** So we'll have to obtain the relocation info from the - ** load module dataset (STEPLIB) and correct the adcon values - ** in the highlp storage. - */ - - /* the load module will be read from the STEPLIB dataset to extract the RLD records */ - strcpy(filename, "DD:STEPLIB("); - strcat(filename, member); - strcat(filename, ")"); - fp = fopen(filename, "rb"); - if (!fp) { - wtof("%s unable to open \"%s\" for reading", __func__, filename); - goto quit; - } -#if 0 - wtodumpf(lowlp, size, member); -#endif - /* relocate the lowlp adcons to the highlp adcons */ - relocate_load(fp, (unsigned)lowlp, (unsigned)highlp); - - /* calculate high entry point address */ - highep = (void*)((unsigned)highlp + offep); - -quit: - /* cleanup resources we used */ - if (fp) fclose(fp); - if (lowep) __delete(module); - - if (highep) { - /* success */ - if (lpa) *lpa = highlp; - if (epa) *epa = highep; - if (sz) *sz = size; - return 0; - } - else { - /* failure */ - if (highlp) freemain(highlp); - return 4; - } -} - -__asm__("\n&FUNC SETC 'relocate_load'"); -static int -relocate_load(FILE *fp, unsigned lowlp, unsigned highlp) -{ - int rc = 0; - size_t read = 0; - unsigned char *dptr = NULL; - MMOD *mmod = NULL; - int loadtext= 0; - - /* read each record from the load module */ - for(;;) { - /* we use __aread() for record oriented i/o */ - if (__aread(fp->dcb, &dptr, &read) != 0) { - /* end of file */ - fp->flags |= _FILE_FLAG_EOF; - break; - } - - if (loadtext) { - loadtext = 0; - continue; - } - - mmod = (MMOD*)dptr; - - /* check for control record that are always followed by a text record */ - if ((mmod->id & MMOD_ID_CTL) == MMOD_ID_CTL) { - /* next record will be a text record */ - loadtext = 1; - } - - /* process RLD records we've read */ - if ((mmod->id & MMOD_ID_RLD) == MMOD_ID_RLD) { - process_rldr(dptr, lowlp, highlp); - } - } - - return rc; -} - -static __inline unsigned fetch(unsigned address, unsigned size) -{ - unsigned value = 0; - unsigned n; - - for(n = 0; n < size; n++) { - value <<= 8; - value |= (unsigned) (*(unsigned char *)(address+n)); - } - -#if 0 - wtof("FETCH(%08X,%u) VALUE(%08X)", address, size, value); -#endif - return value; -} - -static __inline int store(unsigned address, unsigned value, unsigned size) -{ - char *addr = (char *)address; - char *val = (char *)(((unsigned)&value + sizeof(unsigned)) - size); - - memcpy(addr, val, size); - - return 0; -} - -__asm__("\n&FUNC SETC 'process_rldr'"); -static int -process_rldr(unsigned char *buf, unsigned lowlp, unsigned highlp) -{ - int rc = 0; - unsigned count = 0; - MMRLDR *rldr; - MMRLD *rld; - MMRLDF *rldf; - unsigned address; - unsigned value; - unsigned size; - unsigned offset; - - /* map the buffer contents */ - rldr = (MMRLDR*)buf; - rld = (MMRLD*)rldr->data; - rldf = rld->mmrldf; - -#if 0 - wtof("%s lowlp=%08X, highlp=%08X", __func__, lowlp, highlp); - wtodumpf(rldr, 256, "RLDR"); -#endif - while(count < rldr->rldcnt) { -#if 0 - wtodumpf(rld, sizeof(MMRLD), "RLD"); - wtodumpf(rldf, sizeof(MMRLDF), "RLDF"); -#endif - if (rldf->flag & RLD_FLAG_UNRES) { - /* don't process unresolved relocation entries */ - goto next; - } - - /* get the size of the target address */ - offset = GET3(rldf->address); /* offset of adcon in storage */ -#if 0 - wtof("%s offset=%08X", __func__, offset); -#endif - size = rldf->flag & RLD_FLAG_LL; - if (size == RLD_FLAG_LL2) { - size = 2; - } - else if (size == RLD_FLAG_LL3) { - size = 3; - } - else if (size == RLD_FLAG_LL4) { - size = 4; - } - else { - /* should never happen, but just in case */ - goto next; - } - - /* get current relocated value from module in memory (lowlp) */ - address = lowlp + offset; /* address of adcon in private area (lowlp) */ - /* wtof("%s fetch(%08X,%u)", __func__, address, size); */ - value = fetch(address, size); /* fetch the current adcon value */ - /* wtof("%s fetch(%08X,%u) rc=%08X", __func__, address, size, value); */ - - /* remove the relocation value from the adcon value (lowlp) */ - value -= lowlp; -#if 0 - wtof("%s RLD VALUE(%08X)", __func__, value); -#endif - /* adjust the adcon value in the CSA storage (highlp) */ - value += highlp; /* new adcon value */ - address = highlp + offset; /* address of adcon in CSA */ - /* wtof("%s store(%08X,%08X,%u)", __func__, address, value, size); */ - store(address, value, size); /* store adcon with relocated value */ - -next: - /* get next RLD entry from record */ - buf = (unsigned char*)rldf; - if (rldf->flag & RLD_FLAG_SAME) { - count += sizeof(MMRLDF); - rldf = (MMRLDF*)(buf + sizeof(MMRLDF)); - } - else { - count += sizeof(MMRLD); - rld = (MMRLD*)(buf + sizeof(MMRLDF)); - rldf = rld->mmrldf; - } - } - -quit: - return rc; -} diff --git a/src/crent370/clib/@@loadhi.o b/src/crent370/clib/@@loadhi.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@loadhi.s b/src/crent370/clib/@@loadhi.s deleted file mode 100644 index c158fba..0000000 --- a/src/crent370/clib/@@loadhi.s +++ /dev/null @@ -1,447 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@loadhi.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__loadhi' -* Program text area -@@6 EQU * - DC C'__loadhi' - DC X'0' - DS 0F - EJECT -* external function '__loadhi' prologue -* frame base=88, local stack=80, call args=16 -&FUNC SETC '__loadhi' -@@LOADHI PDPPRLG CINDEX=0,FRAME=184,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__loadhi' code - L 7,0(11) ==> module - SLR 6,6 ==> highlp - ST 6,176(13) ==> highlp,highep - ST 6,180(13) ==> highlp,size - L 2,=A(@@LC0) - MVC 104(9,13),0(2) ==> member - LA 4,113(,13) - LA 5,3(0,0) - LR 2,6 ==> highlp - LR 3,6 ==> highlp - MVCL 4,2 ==> highlp - LA 4,120(,13) - LA 5,56(0,0) - LR 2,6 ==> highlp - LR 3,6 ==> highlp - MVCL 4,2 ==> highlp - LR 3,6 ==> i,highlp - IC 2,0(7) ==> module - SLL 2,24 - SRA 2,24 - C 2,=F'0' - BE @@L3 - L 2,=V(@@TOUP) - L 4,0(2) ==> __toup -@@L7 EQU * - SLR 2,2 - IC 2,0(3,7) ==> i - MH 2,=H'2' - IC 2,1(2,4) - STC 2,104(13,3) ==> member - A 3,=F'1' ==> i - LA 2,7(0,0) - CR 3,2 ==> i - BH @@L3 - IC 2,0(3,7) ==> i - CLM 2,1,=XL1'00' - BNE @@L7 -@@L3 EQU * - LA 1,88(,13) - L 15,=V(@@STEPLB) - BALR 14,15 - ST 15,88(13) ==> dcb - LA 2,104(,13) - ST 2,92(13) - MVC 96(4,13),=F'0' - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LOAD) - BALR 14,15 - LR 5,15 ==> lowep - LTR 15,15 ==> lowep - BNE @@L8 - MVC 88(4,13),=A(@@LC1) - B @@L23 -@@L8 EQU * - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@FNDCDE) - BALR 14,15 - LTR 15,15 ==> cde - BNE @@L10 - MVC 88(4,13),=A(@@LC2) -@@L23 EQU * - MVC 92(4,13),=A(@@6) - ST 2,96(13) - B @@L22 -@@L10 EQU * - L 2,20(15) ==> .xtlst - L 3,8(2) ==> .xtlmsbla - N 3,=F'16777215' - ST 3,180(13) ==> size - L 3,12(2) ==> lowlp,xtlmsbaa - LR 9,5 ==> offep,lowep - SR 9,3 ==> offep,lowlp - MVC 88(4,13),180(13) ==> size - MVC 92(4,13),=F'241' - LA 1,88(,13) - L 15,=V(GETMAIN) - BALR 14,15 - LR 6,15 ==> highlp - LTR 15,15 ==> highlp - BNE @@L11 - MVC 88(4,13),=A(@@LC3) - MVC 92(4,13),=A(@@6) - MVC 96(4,13),180(13) ==> size - B @@L22 -@@L11 EQU * - ST 15,88(13) ==> highlp - ST 3,92(13) ==> lowlp - MVC 96(4,13),180(13) ==> size - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - LA 4,120(,13) - ST 4,88(13) - MVC 92(4,13),=A(@@LC4) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - ST 4,88(13) - LA 2,104(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(STRCAT) - BALR 14,15 - ST 4,88(13) - MVC 92(4,13),=A(@@LC5) - LA 1,88(,13) - L 15,=V(STRCAT) - BALR 14,15 - ST 4,88(13) - MVC 92(4,13),=A(@@LC6) - LA 1,88(,13) - L 15,=V(FOPEN) - BALR 14,15 - LR 8,15 ==> fp - LTR 15,15 ==> fp - BNE @@L12 - MVC 88(4,13),=A(@@LC7) - MVC 92(4,13),=A(@@6) - ST 4,96(13) -@@L22 EQU * - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - B @@L9 -@@L12 EQU * - ST 15,88(13) ==> fp - ST 3,92(13) ==> lowlp - ST 6,96(13) ==> highlp - LA 1,88(,13) - L 15,=A(@@7) - BALR 14,15 - AR 9,6 ==> offep,highlp - ST 9,176(13) ==> offep,highep -@@L9 EQU * - LTR 8,8 ==> fp - BE @@L13 - ST 8,88(13) ==> fp - LA 1,88(,13) - L 15,=V(FCLOSE) - BALR 14,15 -@@L13 EQU * - LTR 5,5 ==> lowep - BE @@L14 - ST 7,88(13) ==> module - LA 1,88(,13) - L 15,=V(@@DELETE) - BALR 14,15 -@@L14 EQU * - L 2,176(13) ==> highep - LTR 2,2 - BE @@L15 - L 3,4(11) ==> lpa - LTR 3,3 - BE @@L16 - ST 6,0(3) ==> highlp -@@L16 EQU * - L 2,8(11) ==> epa - LTR 2,2 - BE @@L17 - MVC 0(4,2),176(13) ==> highep -@@L17 EQU * - L 3,12(11) ==> sz - LTR 3,3 - BE @@L18 - MVC 0(4,3),180(13) ==> size -@@L18 EQU * - SLR 15,15 ==> dcb - B @@L1 -@@L15 EQU * - LTR 6,6 ==> highlp - BE @@L20 - ST 6,88(13) ==> highlp - LA 1,88(,13) - L 15,=V(FREEMAIN) - BALR 14,15 -@@L20 EQU * - LA 15,4(0,0) ==> dcb -@@L1 EQU * -* Function '__loadhi' epilogue - PDPEPIL -* Function '__loadhi' literal pool - DS 0D - LTORG -* Function '__loadhi' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C' ' - DC X'0' - DC 3X'00' -@@LC1 EQU * - DC C'%s unable to LOAD "%s" into private storage' - DC X'0' -@@LC2 EQU * - DC C'%s CDE not found for "%s"' - DC X'0' -@@LC3 EQU * - DC C'%s unable to allocate storage for %u bytes from ' - DC C'subpool 241' - DC X'0' -@@LC4 EQU * - DC C'DD:STEPLIB(' - DC X'0' -@@LC5 EQU * - DC C')' - DC X'0' -@@LC6 EQU * - DC C'rb' - DC X'0' -@@LC7 EQU * - DC C'%s unable to open "%s" for reading' - DC X'0' - -&FUNC SETC 'relocate_load' - DS 0F - EJECT -* static function 'relocate_load' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'relocate_load' -@@7 PDPPRLG CINDEX=1,FRAME=112,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'relocate_load' code - L 3,0(11) ==> fp - L 7,4(11) ==> lowlp - L 6,8(11) ==> highlp - SLR 5,5 ==> rc - ST 5,108(13) ==> rc - ST 5,104(13) ==> rc - LR 4,5 ==> loadtext,rc -@@L25 EQU * - MVC 88(4,13),8(3) ==> .dcb - LA 2,104(,13) - ST 2,92(13) - LA 2,108(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@AREAD) - BALR 14,15 - LTR 15,15 ==> rc - BNE @@L32 - LTR 4,4 ==> loadtext - BE @@L29 - LR 4,15 ==> loadtext,rc - B @@L25 -@@L29 EQU * - L 15,104(13) ==> mmod - IC 2,0(15) ==> .id - N 2,=F'1' - CLM 2,1,=XL1'00' - BE @@L30 - LA 4,1(0,0) ==> loadtext -@@L30 EQU * - IC 2,0(15) ==> .id - N 2,=F'2' - CLM 2,1,=XL1'00' - BE @@L25 - MVC 88(4,13),104(13) - ST 7,92(13) ==> lowlp - ST 6,96(13) ==> highlp - LA 1,88(,13) - L 15,=A(@@8) - BALR 14,15 - B @@L25 -@@L32 EQU * - OC 40(2,3),=H'1' ==> .flags - LR 15,5 ==> rc -* Function 'relocate_load' epilogue - PDPEPIL -* Function 'relocate_load' literal pool - DS 0D - LTORG -* Function 'relocate_load' page table -@@PGT1 DS 0F - DC A(@@PG1) - -&FUNC SETC 'process_rldr' - DS 0F - EJECT -* static function 'process_rldr' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'process_rldr' -@@8 PDPPRLG CINDEX=2,FRAME=112,BASER=12,ENTRY=NO - B @@FEN2 - LTORG -@@FEN2 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG2 EQU * - LR 11,1 - L 10,=A(@@PGT2) -* Function 'process_rldr' code - SLR 8,8 ==> count - L 9,0(11) ==> rldr,buf - LR 4,9 ==> rldf,rldr - A 4,=F'20' ==> rldf - LH 2,6(9) ==> .rldcnt - N 2,=XL4'0000FFFF' - CLR 8,2 ==> count - BNL @@L57 -@@L54 EQU * - IC 2,0(4) ==> .flag - N 2,=F'-128' - CLM 2,1,=XL1'00' - BNE @@L38 - SLR 2,2 - IC 2,1(4) - SLL 2,16 - SLR 3,3 - IC 3,2(4) - SLL 3,8 - OR 2,3 - SLR 3,3 - IC 3,3(4) - OR 2,3 - ST 2,108(13) ==> offset - IC 5,0(4) ==> .flag - N 5,=F'12' ==> size - LA 2,4(0,0) - CLR 5,2 ==> size - BNE @@L39 - LA 5,2(0,0) ==> size - B @@L40 -@@L39 EQU * - LA 3,8(0,0) - CLR 5,3 ==> size - BNE @@L41 - LA 5,3(0,0) ==> size - B @@L40 -@@L41 EQU * - LA 2,12(0,0) - CLR 5,2 ==> size - BNE @@L38 - LA 5,4(0,0) ==> size -@@L40 EQU * - L 7,4(11) ==> address,lowlp - A 7,108(13) ==> address,offset - LR 6,5 ==> size - SLR 3,3 ==> value - LR 15,3 ==> n,value - CLR 3,5 ==> value,size - BNL @@L59 -@@L49 EQU * - SLL 3,8 ==> value - SLR 2,2 - IC 2,0(15,7) ==> n - OR 3,2 ==> value - A 15,=F'1' ==> n - CLR 15,6 ==> n,size - BL @@L49 -@@L59 EQU * - LR 2,3 ==> value - S 2,4(11) ==> value,lowlp - A 2,8(11) ==> value,highlp - L 3,8(11) ==> address,highlp - A 3,108(13) ==> address,offset - ST 2,104(13) ==> value - LR 2,13 ==> val - SR 2,5 ==> val,size - A 2,=F'108' ==> val - ST 3,88(13) ==> address - ST 2,92(13) ==> val - ST 5,96(13) ==> size - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 -@@L38 EQU * - IC 2,0(4) ==> .flag - N 2,=F'1' - CLM 2,1,=XL1'00' - BE @@L52 - A 8,=F'4' ==> count - A 4,=F'4' ==> rldf - B @@L34 -@@L52 EQU * - A 8,=F'8' ==> count - A 4,=F'8' ==> rldf -@@L34 EQU * - LH 2,6(9) ==> .rldcnt - N 2,=XL4'0000FFFF' - CLR 8,2 ==> count - BL @@L54 -@@L57 EQU * -@@L55 EQU * - SLR 15,15 -* Function 'process_rldr' epilogue - PDPEPIL -* Function 'process_rldr' literal pool - DS 0D - LTORG -* Function 'process_rldr' page table -@@PGT2 DS 0F - DC A(@@PG2) - END diff --git a/src/crent370/clib/@@locate.c b/src/crent370/clib/@@locate.c deleted file mode 100644 index 5dcc334..0000000 --- a/src/crent370/clib/@@locate.c +++ /dev/null @@ -1,54 +0,0 @@ -/* @@LOCATE.C */ -/* -/* Locate Data Set By Name -/* If dataset is found (rc==0) volser is returned in the &workarea[6] -*/ -#include -#include "clibdscb.h" -#include "clibstr.h" - -#define LOCATE 0x44000000 - -typedef struct { - unsigned flags; - void *p1; - void *p2; - void *p3; -} PARMS; - -int -__locate(const char dsn[44], LOCWORK *workarea) -{ - int rc; - char dataset[45]; - PARMS parms; - - strcpyp(dataset, sizeof(dataset)-1, (void*)dsn, ' '); - dataset[sizeof(dataset)-1] = 0; - - parms.flags = LOCATE; - parms.p1 = dataset; /* dataset name */ - parms.p2 = NULL; /* volser */ - parms.p3 = workarea; /* locate work area */ - - __asm__( - "LR\t1,%1\n\t" - "SVC\t26\n\t" - "LR\t%0,15" - : "=r" (rc) - : "r" (&parms) - : "0", "1", "15" ); - - return rc; -} -#if 0 - __asm__( - "LOCATE INDAB READ CATALOG ENTRY FOR DATA SET A.B\n" -"* INTO VIRTUAL STORAGE AREA NAMED LOCAREA.\n" -"* LOCAREA MAY ALSO CONTAIN A 3-BYTE\n" -"* TTR OR A 6-BYTE SERIAL NUMBER\n" -"INDAB CAMLST NAME,AB,,LOCAREA\n" -"AB DC CL44'A.B'\n" -"LOCAREA DS 0D\n" -" DS 265C\n"); -#endif diff --git a/src/crent370/clib/@@locate.o b/src/crent370/clib/@@locate.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@locate.s b/src/crent370/clib/@@locate.s deleted file mode 100644 index 9f7e788..0000000 --- a/src/crent370/clib/@@locate.s +++ /dev/null @@ -1,64 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@locate.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__locate' prologue -* frame base=88, local stack=64, call args=16 -&FUNC SETC '__locate' -@@LOCATE PDPPRLG CINDEX=0,FRAME=168,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__locate' code - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=F'44' - MVC 96(4,13),0(11) ==> dsn - MVC 100(4,13),=F'64' - LA 1,88(,13) - L 15,=V(STRCPYP) - BALR 14,15 - MVI 148(13),0 ==> dataset - MVC 152(4,13),=F'1140850688' ==> .flags - ST 2,156(13) ==> .p1 - MVC 160(4,13),=F'0' ==> .p2 - MVC 164(4,13),4(11) ==> .p3,workarea - LA 2,152(,13) - LR 1,2 - SVC 26 - LR 2,15 ==> rc - LR 15,2 ==> rc -* Function '__locate' epilogue - PDPEPIL -* Function '__locate' literal pool - DS 0D - LTORG -* Function '__locate' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@longj.c b/src/crent370/clib/@@longj.c deleted file mode 100644 index 62f7184..0000000 --- a/src/crent370/clib/@@longj.c +++ /dev/null @@ -1,4 +0,0 @@ -#include "setjmp.h" -#include "stddef.h" - -int __longj(void *); diff --git a/src/crent370/clib/@@longj.o b/src/crent370/clib/@@longj.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@longj.s b/src/crent370/clib/@@longj.s deleted file mode 100644 index 9be6644..0000000 --- a/src/crent370/clib/@@longj.s +++ /dev/null @@ -1,21 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@longj.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - END diff --git a/src/crent370/clib/@@mtd.c b/src/crent370/clib/@@mtd.c deleted file mode 100644 index 4dcf9fe..0000000 --- a/src/crent370/clib/@@mtd.c +++ /dev/null @@ -1,32 +0,0 @@ -/* @@MTD.C */ -#include "time.h" -#include "stdarg.h" -#include "stdio.h" -#include "stddef.h" -#include "mvssupa.h" - -/* scalar date routines -- public domain by Ray Gardner -** These will work over the range 1-01-01 thru 14699-12-31 -** The functions written by Ray are isleap, months_to_days, -** years_to_days, ymd_to_scalar, scalar_to_ymd. -** modified slightly by Paul Edwards -*/ - -extern int __isleap(unsigned yr); -extern unsigned __mtd(unsigned month); -extern long __ytd(unsigned yr); -extern long __ymdts(unsigned yr, unsigned mo, unsigned day); -extern void __stymd(long scalar, - unsigned *pyr, unsigned *pmo, unsigned *pday); - -#define isleap(y) __isleap(y) -#define months_to_days(m) __mtd(m) -#define years_to_days(y) __ytd(y) -#define ymd_to_scalar(y,m,d) __ymdts((y),(m),(d)) -#define scalar_to_ymd(s,y,m,d) __stymd((s),(y),(m),(d)) - -unsigned -__mtd(unsigned month) -{ - return (month * 3057 - 3007) / 100; -} diff --git a/src/crent370/clib/@@mtd.o b/src/crent370/clib/@@mtd.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@mtd.s b/src/crent370/clib/@@mtd.s deleted file mode 100644 index 0419398..0000000 --- a/src/crent370/clib/@@mtd.s +++ /dev/null @@ -1,56 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@mtd.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__mtd' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__mtd' -@@MTD PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__mtd' code - SLR 2,2 - SLR 3,3 - L 4,0(11) ==> month - MH 4,=H'3057' - LR 2,4 - A 2,=F'-3007' - SRDL 2,32 - LA 4,100(0,0) - DR 2,4 - LR 15,3 -* Function '__mtd' epilogue - PDPEPIL -* Function '__mtd' literal pool - DS 0D - LTORG -* Function '__mtd' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@nwtx99.c b/src/crent370/clib/@@nwtx99.c deleted file mode 100644 index a4af4fa..0000000 --- a/src/crent370/clib/@@nwtx99.c +++ /dev/null @@ -1,23 +0,0 @@ -/* @@NWTX99.C */ -#include -#include -#include -#include "svc99.h" - -TXT99 * -__nwtx99(int dal, int count, int size, const char *text) -{ - int bytes = count * size; - TXT99 *txt99 = calloc(1, sizeof(TXT99) + bytes); - - if (txt99) { - txt99->dal = (unsigned short)dal; - txt99->count = (unsigned short)count; - txt99->size = (unsigned short)size; - if (text) { - memcpy(txt99->text, text, bytes); - } - } - - return txt99; -} diff --git a/src/crent370/clib/@@nwtx99.o b/src/crent370/clib/@@nwtx99.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@nwtx99.s b/src/crent370/clib/@@nwtx99.s deleted file mode 100644 index 252f529..0000000 --- a/src/crent370/clib/@@nwtx99.s +++ /dev/null @@ -1,79 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@nwtx99.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__nwtx99' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__nwtx99' -@@NWTX99 PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__nwtx99' code - SLR 4,4 ==> size - SLR 5,5 ==> size - L 6,4(11) ==> count - L 7,8(11) ==> size - L 8,12(11) ==> text - LR 5,7 ==> size - MR 4,6 ==> size,count - MVC 88(4,13),=F'1' - LR 2,5 - A 2,=F'8' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 3,15 ==> txt99 - LTR 15,15 ==> txt99 - BE @@L2 - L 2,0(11) ==> dal - STH 2,0(15) ==> .dal - STH 6,2(15) ==> count,count - STH 7,4(15) ==> size,size - LTR 8,8 ==> text - BE @@L2 - LR 2,15 ==> txt99 - A 2,=F'6' - ST 2,88(13) - ST 8,92(13) ==> text - ST 5,96(13) ==> size - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 -@@L2 EQU * - LR 15,3 ==> txt99 -* Function '__nwtx99' epilogue - PDPEPIL -* Function '__nwtx99' literal pool - DS 0D - LTORG -* Function '__nwtx99' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@nwtx9a.c b/src/crent370/clib/@@nwtx9a.c deleted file mode 100644 index fcbe73b..0000000 --- a/src/crent370/clib/@@nwtx9a.c +++ /dev/null @@ -1,48 +0,0 @@ -/* @@NWTX9A.C */ -#include -#include -#include -#include "svc99.h" - -TXT99 * -__nwtx9a(int dal, int count, char **array) -{ - int i; - int len = 0; - int bytes; - TXT99 *txt99; - struct Next { - unsigned short size; - unsigned char text[1]; - } *next; - - for(i=0; i < count; i++) { - if (array[i]) { - len += strlen(array[i]); - } - } - - bytes = (count * 2) + len; - txt99 = calloc(1, sizeof(TXT99) + bytes); - - if (txt99) { - txt99->dal = (unsigned short)dal; - txt99->count = (unsigned short)count; - - next = (struct Next *) &txt99->size; - - for(i=0; i < count; i++) { - if (array[i]) { - len = strlen(array[i]); - next->size = (unsigned short)len; - memcpy(next->text, array[i], len); - } - else { - len = 0; - } - next = (struct Next *)&next->text[len]; - } - } - - return txt99; -} diff --git a/src/crent370/clib/@@nwtx9a.o b/src/crent370/clib/@@nwtx9a.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@nwtx9a.s b/src/crent370/clib/@@nwtx9a.s deleted file mode 100644 index d5c71e9..0000000 --- a/src/crent370/clib/@@nwtx9a.s +++ /dev/null @@ -1,120 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@nwtx9a.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__nwtx9a' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__nwtx9a' -@@NWTX9A PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__nwtx9a' code - L 8,4(11) ==> count - L 9,8(11) ==> array - SLR 4,4 ==> i - LR 6,4 ==> len,i - CR 4,8 ==> i,count - BNL @@L17 -@@L7 EQU * - LR 2,4 ==> i - MH 2,=H'4' - L 2,0(2,9) - LTR 2,2 - BE @@L4 - ST 2,88(13) - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - AR 6,15 ==> len -@@L4 EQU * - A 4,=F'1' ==> i - CR 4,8 ==> i,count - BL @@L7 -@@L17 EQU * - LR 2,8 ==> bytes,count - MH 2,=H'2' ==> bytes - AR 2,6 ==> bytes,len - MVC 88(4,13),=F'1' - A 2,=F'8' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 7,15 ==> txt99 - LTR 15,15 ==> txt99 - BE @@L8 - L 2,0(11) ==> dal - STH 2,0(15) ==> .dal - STH 8,2(15) ==> count,count - LR 3,15 ==> next,txt99 - A 3,=F'4' ==> next - SLR 4,4 ==> i - CR 4,8 ==> i,count - BNL @@L8 -@@L15 EQU * - LR 5,4 ==> i - MH 5,=H'4' - L 2,0(5,9) - LTR 2,2 - BE @@L13 - ST 2,88(13) - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 6,15 ==> len - STH 15,0(3) ==> len,size - LR 2,3 ==> next - A 2,=F'2' - ST 2,88(13) - L 5,0(5,9) - ST 5,92(13) - ST 15,96(13) ==> len - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - B @@L14 -@@L13 EQU * - SLR 6,6 ==> len -@@L14 EQU * - AR 3,6 ==> next,len - A 3,=F'2' ==> next - A 4,=F'1' ==> i - CR 4,8 ==> i,count - BL @@L15 -@@L8 EQU * - LR 15,7 ==> txt99 -* Function '__nwtx9a' epilogue - PDPEPIL -* Function '__nwtx9a' literal pool - DS 0D - LTORG -* Function '__nwtx9a' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@nwtx9s.c b/src/crent370/clib/@@nwtx9s.c deleted file mode 100644 index 66eeac2..0000000 --- a/src/crent370/clib/@@nwtx9s.c +++ /dev/null @@ -1,51 +0,0 @@ -/* @NWTX9S.C */ -#include -#include -#include -#include "svc99.h" - -TXT99 * -__nwtx9s(int dal, int count, ...) -{ - va_list list; - int i; - int len; - int bytes; - char *text; - TXT99 *txt99; - struct Next { - unsigned short size; - unsigned char text[1]; - } *next; - - va_start(list, count); - for(len=0, i=0; i < count; i++) { - text = va_arg(list, char *); - if (!text) break; - len += strlen(text); - } - - bytes = (count * 2) + len; - txt99 = calloc(1, sizeof(TXT99) + bytes); - - if (txt99) { - txt99->dal = (unsigned short)dal; - txt99->count = (unsigned short)count; - - va_start(list, count); - next = (struct Next *) &txt99->size; - - while (count-- > 0) { - text = va_arg(list, char *); - if (!text) break; - - len = strlen(text); - next->size = (unsigned short)len; - memcpy(next->text, text, len); - - next = (struct Next *)&next->text[len]; - } - } - - return txt99; -} diff --git a/src/crent370/clib/@@nwtx9s.o b/src/crent370/clib/@@nwtx9s.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@nwtx9s.s b/src/crent370/clib/@@nwtx9s.s deleted file mode 100644 index 4b5a668..0000000 --- a/src/crent370/clib/@@nwtx9s.s +++ /dev/null @@ -1,126 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@nwtx9s.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__nwtx9s' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__nwtx9s' -@@NWTX9S PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__nwtx9s' code - LA 6,8(,11) ==> list - SLR 4,4 ==> len - LR 5,4 ==> i,len - C 4,4(11) ==> len - BNL @@L3 -@@L7 EQU * - A 6,=F'4' ==> list - LR 2,6 ==> list - A 2,=F'-4' - L 3,0(2) ==> text - LTR 3,3 ==> text - BE @@L3 - ST 3,88(13) ==> text - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - AR 4,15 ==> len - A 5,=F'1' ==> i - C 5,4(11) ==> i - BL @@L7 -@@L3 EQU * - L 2,4(11) ==> bytes - SLL 2,1 ==> bytes - AR 2,4 ==> bytes,len - MVC 88(4,13),=F'1' - A 2,=F'8' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 7,15 ==> txt99 - LTR 15,15 ==> txt99 - BE @@L8 - L 2,0(11) ==> dal - STH 2,0(15) ==> .dal - MVC 2(2,15),6(11) ==> .count,count - LA 6,8(,11) ==> list - LR 5,15 ==> next,txt99 - A 5,=F'4' ==> next - LA 2,4(,11) - L 3,0(2) ==> count - LR 4,3 - BCTR 3,0 - ST 3,0(2) ==> count - LTR 4,4 - BNH @@L8 - LR 8,2 -@@L13 EQU * - A 6,=F'4' ==> list - LR 2,6 ==> list - A 2,=F'-4' - L 3,0(2) ==> text - LTR 3,3 ==> text - BE @@L8 - ST 3,88(13) ==> text - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 4,15 ==> len - STH 15,0(5) ==> len,size - LR 2,5 ==> next - A 2,=F'2' - ST 2,88(13) - ST 3,92(13) ==> text - ST 15,96(13) ==> len - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - LR 2,5 ==> next - AR 2,4 ==> len - LR 5,2 ==> next - A 5,=F'2' ==> next - L 2,0(8) ==> count - LR 3,2 - BCTR 2,0 - ST 2,0(8) ==> count - LTR 3,3 - BH @@L13 -@@L8 EQU * - LR 15,7 ==> txt99 -* Function '__nwtx9s' epilogue - PDPEPIL -* Function '__nwtx9s' literal pool - DS 0D - LTORG -* Function '__nwtx9s' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@patmat.c b/src/crent370/clib/@@patmat.c deleted file mode 100644 index 8ccfdd8..0000000 --- a/src/crent370/clib/@@patmat.c +++ /dev/null @@ -1,46 +0,0 @@ -/* @@PATMAT.C - pattern match */ -#include "clibstr.h" - -int -__patmat( const char *str, const char *pat ) -{ - if ( *pat == 0 ) { - while( *str == ' ' ) str++; - if ( *str == 0 ) { - goto matched; - } - goto nomatch; - } - - if ( *pat == '*' ) { - while(*(pat+1)=='*') pat++; - if ( *(pat+1) == 0 ) { - goto matched; - } - - while(*(++str)) { - if (*str == *(pat+1) || (*(pat+1) == '?')) { - if (__patmat(str + 1, pat + 2)) { - goto matched; - } - } - } - goto nomatch; - } - - if ( *str == 0 ) { - goto nomatch; - } - - if ( (*pat == '?') || (*str == *pat) ) { - if (__patmat(str + 1, pat + 1)) { - goto matched; - } - } - -nomatch: - return 0; - -matched: - return 1; -} diff --git a/src/crent370/clib/@@patmat.o b/src/crent370/clib/@@patmat.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@patmat.s b/src/crent370/clib/@@patmat.s deleted file mode 100644 index 2fea539..0000000 --- a/src/crent370/clib/@@patmat.s +++ /dev/null @@ -1,128 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@patmat.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__patmat' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC '__patmat' -@@PATMAT PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__patmat' code - L 3,0(11) ==> str - L 4,4(11) ==> pat - IC 2,0(4) ==> pat - CLM 2,1,=XL1'00' - BNE @@L2 - CLI 0(3),64 ==> str - BNE @@L28 -@@L6 EQU * - A 3,=F'1' ==> str - CLI 0(3),64 ==> str - BE @@L6 -@@L28 EQU * - IC 2,0(3) ==> str - CLM 2,1,=XL1'00' - BE @@L8 - B @@L9 -@@L2 EQU * - CLI 0(4),92 ==> pat - BNE @@L10 - CLI 1(4),92 - BNE @@L30 -@@L14 EQU * - A 4,=F'1' ==> pat - CLI 1(4),92 - BE @@L14 -@@L30 EQU * - IC 2,1(4) - CLM 2,1,=XL1'00' - BE @@L8 - A 3,=F'1' ==> str - IC 2,0(3) ==> str - CLM 2,1,=XL1'00' - BE @@L9 -@@L22 EQU * - CLC 0(1,3),1(4) ==> str - BE @@L20 - CLI 1(4),111 - BNE @@L16 -@@L20 EQU * - LR 2,3 ==> str - A 2,=F'1' - ST 2,88(13) - LR 2,4 ==> pat - A 2,=F'2' - ST 2,92(13) - LA 1,88(,13) - L 15,=A(@@PATMAT) - BALR 14,15 - LTR 15,15 - BNE @@L8 -@@L16 EQU * - A 3,=F'1' ==> str - IC 2,0(3) ==> str - CLM 2,1,=XL1'00' - BE @@L9 - B @@L22 -@@L10 EQU * - IC 2,0(3) ==> str - CLM 2,1,=XL1'00' - BE @@L9 - CLI 0(4),111 ==> pat - BE @@L25 - CLM 2,1,0(4) ==> pat - BNE @@L9 -@@L25 EQU * - LR 2,3 ==> str - A 2,=F'1' - ST 2,88(13) - LR 2,4 ==> pat - A 2,=F'1' - ST 2,92(13) - LA 1,88(,13) - L 15,=A(@@PATMAT) - BALR 14,15 - LTR 15,15 - BNE @@L8 -@@L9 EQU * - SLR 15,15 - B @@L1 -@@L8 EQU * - LA 15,1(0,0) -@@L1 EQU * -* Function '__patmat' epilogue - PDPEPIL -* Function '__patmat' literal pool - DS 0D - LTORG -* Function '__patmat' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@perm.c b/src/crent370/clib/@@perm.c deleted file mode 100644 index 4f66dbf..0000000 --- a/src/crent370/clib/@@perm.c +++ /dev/null @@ -1,3 +0,0 @@ -/* @@PERM.C - permanent files */ -#include -FILE __perm[3] = {0,0,0}; diff --git a/src/crent370/clib/@@perm.o b/src/crent370/clib/@@perm.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@perm.s b/src/crent370/clib/@@perm.s deleted file mode 100644 index aec9d06..0000000 --- a/src/crent370/clib/@@perm.s +++ /dev/null @@ -1,32 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@perm.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* X-var __perm - ENTRY @@PERM -* Program data area - DS 0F -@@PERM EQU * - DC X'00' - DC X'00' - DC X'00' - DC 5X'00' - DC 184X'00' - DC 384X'00' - END diff --git a/src/crent370/clib/@@prob.c b/src/crent370/clib/@@prob.c deleted file mode 100644 index 59baf8e..0000000 --- a/src/crent370/clib/@@prob.c +++ /dev/null @@ -1,41 +0,0 @@ - -#include -#include -#include - -__asm__("\n&FUNC SETC '__prob'"); -int __prob(unsigned char pswkey, unsigned char *savekey) -{ - int rc = 0; - - if (!__isauth()) return EPERM; /* operation not permitted */ - - /* are we already in supervisor mode? */ - if (__issup()) { - /* yes */ - if (savekey) { - /* get current PSW key */ - __asm__("IPK\t0\n\tSTC\t2,0(,%0)" : : "r"(savekey) : "2"); - } - - /* are we to set a new PSW key? */ - if (pswkey != PSWKEYNONE) { - /* yes, set new PSW key */ - /* we'll allow for PSW key in low nibble value and shift if needed */ - if (pswkey < 0x10) pswkey = pswkey << 4; /* put key value in next higher nibble */ - - /* set new PSW key */ - __asm__("IC\t2,0(,%0)\n\tSPKA\t0(2)" : : "r"(&pswkey) : "2"); - } - - /* switch to problem mode */ - __asm__("MODESET\tMODE=PROB\n\tST\t15,0(,%0)" : : "r"(&rc) : "1", "14", "15"); - goto quit; - } - - /* we're already in problem mode, so nothing we can do */ - if (savekey) *savekey = PSWKEYNONE; /* we can't extract the PSW key while in problem mode */ - -quit: - return rc; -} diff --git a/src/crent370/clib/@@prob.o b/src/crent370/clib/@@prob.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@prob.s b/src/crent370/clib/@@prob.s deleted file mode 100644 index d510ee7..0000000 --- a/src/crent370/clib/@@prob.s +++ /dev/null @@ -1,91 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@prob.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__prob' -* Program text area - DS 0F - EJECT -* external function '__prob' prologue -* frame base=88, local stack=8, call args=0 -&FUNC SETC '__prob' -@@PROB PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__prob' code - L 3,4(11) ==> savekey - MVC 88(1,13),3(11) ==> pswkey - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@ISAUTH) - BALR 14,15 - LA 2,1(0,0) - LTR 15,15 - BE @@L1 - LA 1,88(,13) - L 15,=V(@@ISSUP) - BALR 14,15 - LTR 15,15 - BE @@L3 - LTR 3,3 ==> savekey - BE @@L4 - IPK 0 - STC 2,0(,3) ==> savekey -@@L4 EQU * - IC 2,88(13) - CLM 2,1,=XL1'FF' - BE @@L5 - CLM 2,1,=XL1'0F' - BH @@L6 - SLL 2,4 - STC 2,88(13) -@@L6 EQU * - LA 3,88(,13) - IC 2,0(,3) - SPKA 0(2) -@@L5 EQU * - LA 2,92(,13) - MODESET MODE=PROB - ST 15,0(,2) - B @@L7 -@@L3 EQU * - LTR 3,3 ==> savekey - BE @@L7 - MVI 0(3),255 ==> savekey -@@L7 EQU * - L 2,92(13) -@@L1 EQU * - LR 15,2 -* Function '__prob' epilogue - PDPEPIL -* Function '__prob' literal pool - DS 0D - LTORG -* Function '__prob' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@prtfx.c b/src/crent370/clib/@@prtfx.c deleted file mode 100644 index 991cfdd..0000000 --- a/src/crent370/clib/@@prtfx.c +++ /dev/null @@ -1,712 +0,0 @@ -/* -/////////////////////////////////////////////////////////////////////////////// -// \author (c) Marco Paland (info@paland.com) -// 2014-2018, PALANDesign Hannover, Germany -// -// \license The MIT License (MIT) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// -// \brief Tiny printf, sprintf and (v)snprintf implementation, optimized for speed on -// embedded systems with a very limited resources. These routines are thread -// safe and reentrant! -// Use this instead of the bloated standard/newlib printf cause these use -// malloc for printf (and may not be thread safe). -// -/////////////////////////////////////////////////////////////////////////////// -*/ - -#include "clibprti.h" /* CLIB private printf() internal functions */ -#include "clibio.h" /* CLIB IO routines */ - -/* internal buffer output */ -__asm__("\n&FUNC SETC '_out_buffer'"); -static void _out_buffer(char character, void* buffer, size_t idx, size_t maxlen) -{ - if (idx < maxlen) { - ((char*)buffer)[idx] = character; - } -} - -/* internal null output */ -__asm__("\n&FUNC SETC '_out_null'"); -static void _out_null(char character, void* buffer, size_t idx, size_t maxlen) -{ - (void)character; (void)buffer; (void)idx; (void)maxlen; -} - - -/* internal _putchar wrapper */ -__asm__("\n&FUNC SETC '_out_char'"); -static void _out_char(char character, void* buffer, size_t idx, size_t maxlen) -{ - (void)buffer; (void)idx; (void)maxlen; - - if (character) { - fputc(character, stdout); - } -} - -/* internal output function wrapper */ -__asm__("\n&FUNC SETC '_out_fct'"); -static void _out_fct(char character, void* buffer, size_t idx, size_t maxlen) -{ - (void)idx; (void)maxlen; - - /* buffer is the output fct pointer */ - ((out_fct_wrap_type*)buffer)->fct(character, ((out_fct_wrap_type*)buffer)->arg); -} - -/* internal strlen -// \return The length of the string (excluding the terminating 0) -*/ -__asm__("\n&FUNC SETC '_strlen'"); -static unsigned int _strlen(const char* str) -{ - const char* s; - - for (s = str; *s; ++s); - return (unsigned int)(s - str); -} - - -/* internal test if char is a digit (0-9) -// \return true if char is a digit -*/ -__asm__("\n&FUNC SETC '_is_digit'"); -static bool _is_digit(char ch) -{ - return (ch >= '0') && (ch <= '9'); -} - - -/* internal ASCII string to unsigned int conversion */ -__asm__("\n&FUNC SETC '_atoi'"); -static unsigned int _atoi(const char** str) -{ - unsigned int i = 0U; - - while (_is_digit(**str)) { - i = i * 10U + (unsigned int)(*((*str)++) - '0'); - } - return i; -} - - -/* internal itoa format */ -__asm__("\n&FUNC SETC '_ntoa_format'"); -static size_t _ntoa_format(out_fct_type out, char* buffer, size_t idx, size_t maxlen, char* buf, size_t len, bool negative, unsigned int base, unsigned int prec, unsigned int width, unsigned int flags) -{ - const size_t start_idx = idx; - size_t i; - - /* pad leading zeros */ - if (!(flags & FLAGS_LEFT)) { - while ((len < prec) && (len < PRINTF_NTOA_BUFFER_SIZE)) { - buf[len++] = '0'; - } - while ((flags & FLAGS_ZEROPAD) && (len < width) && (len < PRINTF_NTOA_BUFFER_SIZE)) { - buf[len++] = '0'; - } - } - - /* handle hash */ - if (flags & FLAGS_HASH) { - if (!(flags & FLAGS_PRECISION) && len && ((len == prec) || (len == width))) { - len--; - if (len && (base == 16U)) { - len--; - } - } - if ((base == 16U) && !(flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) { - buf[len++] = 'x'; - } - else if ((base == 16U) && (flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) { - buf[len++] = 'X'; - } - else if ((base == 2U) && (len < PRINTF_NTOA_BUFFER_SIZE)) { - buf[len++] = 'b'; - } - if (len < PRINTF_NTOA_BUFFER_SIZE) { - buf[len++] = '0'; - } - } - - /* handle sign */ - if (len && (len == width) && (negative || (flags & FLAGS_PLUS) || (flags & FLAGS_SPACE))) { - len--; - } - - if (len < PRINTF_NTOA_BUFFER_SIZE) { - if (negative) { - buf[len++] = '-'; - } - else if (flags & FLAGS_PLUS) { - buf[len++] = '+'; /* ignore the space if the '+' exists */ - } - else if (flags & FLAGS_SPACE) { - buf[len++] = ' '; - } - } - - /* pad spaces up to given width */ - if (!(flags & FLAGS_LEFT) && !(flags & FLAGS_ZEROPAD)) { - for (i = len; i < width; i++) { - out(' ', buffer, idx++, maxlen); - } - } - - /* reverse string */ - for (i = 0U; i < len; i++) { - out(buf[len - i - 1U], buffer, idx++, maxlen); - } - - /* append pad spaces up to given width */ - if (flags & FLAGS_LEFT) { - while (idx - start_idx < width) { - out(' ', buffer, idx++, maxlen); - } - } - - return idx; -} - -/* internal itoa for 'long' type */ -__asm__("\n&FUNC SETC '_ntoa_long'"); -static size_t _ntoa_long(out_fct_type out, char* buffer, size_t idx, size_t maxlen, unsigned long value, bool negative, unsigned long base, unsigned int prec, unsigned int width, unsigned int flags) -{ - char buf[PRINTF_NTOA_BUFFER_SIZE]; - size_t len = 0U; - - /* no hash for 0 values */ - if (!value) { - flags &= ~FLAGS_HASH; - } - - /* write if precision != 0 and value is != 0 */ - if (!(flags & FLAGS_PRECISION) || value) { - do { - const char digit = (char)(value % base); - - buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10; - value /= base; - } while (value && (len < PRINTF_NTOA_BUFFER_SIZE)); - } - - return _ntoa_format(out, buffer, idx, maxlen, buf, len, negative, (unsigned int)base, prec, width, flags); -} - -/* internal itoa for 'long long' type */ -#if defined(PRINTF_SUPPORT_LONG_LONG) -__asm__("\n&FUNC SETC '_ntoa_long_long'"); -static size_t _ntoa_long_long(out_fct_type out, char* buffer, size_t idx, size_t maxlen, unsigned long long value, bool negative, unsigned long long base, unsigned int prec, unsigned int width, unsigned int flags) -{ - char buf[PRINTF_NTOA_BUFFER_SIZE]; - size_t len = 0U; - - /* no hash for 0 values */ - if (!value) { - flags &= ~FLAGS_HASH; - } - - /* write if precision != 0 and value is != 0 */ - if (!(flags & FLAGS_PRECISION) || value) { - do { - const char digit = (char)(value % base); - - buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10; - value /= base; - } while (value && (len < PRINTF_NTOA_BUFFER_SIZE)); - } - - return _ntoa_format(out, buffer, idx, maxlen, buf, len, negative, (unsigned int)base, prec, width, flags); -} -#else -__asm__("\n&FUNC SETC '_ntoa_long_long'"); -static size_t _ntoa_long_long(out_fct_type out, char* buffer, size_t idx, size_t maxlen, unsigned long long value, bool negative, unsigned long long base, unsigned int prec, unsigned int width, unsigned int flags) -{ - return 0; -} -#endif /* PRINTF_SUPPORT_LONG_LONG */ - - -#if defined(PRINTF_SUPPORT_FLOAT) -__asm__("\n&FUNC SETC '_ftoa'"); -static size_t _ftoa(out_fct_type out, char* buffer, size_t idx, size_t maxlen, double value, unsigned int prec, unsigned int width, unsigned int flags) -{ - const size_t start_idx = idx; - - char buf[PRINTF_FTOA_BUFFER_SIZE]; - size_t len = 0U; - double diff = 0.0; - - /* if input is larger than thres_max, revert to exponential */ - const double thres_max = (double)0x7FFFFFFF; - - /* powers of 10 */ - static const double pow10[] = { 1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000 }; - - /* test for negative */ - bool negative = false; - - int whole; - double tmp; - unsigned long frac; - size_t i; - - if (value < 0) { - negative = true; - value = 0 - value; - } - - /* set default precision to 6, if not set explicitly */ - if (!(flags & FLAGS_PRECISION)) { - prec = 6U; - } - - /* limit precision to 9, cause a prec >= 10 can lead to overflow errors */ - while ((len < PRINTF_FTOA_BUFFER_SIZE) && (prec > 9U)) { - buf[len++] = '0'; - prec--; - } - - whole = (int)value; - tmp = (value - whole) * pow10[prec]; - frac = (unsigned long)tmp; - diff = tmp - frac; - - if (diff > 0.5) { - ++frac; - /* handle rollover, e.g. case 0.99 with prec 1 is 1.0 */ - if (frac >= pow10[prec]) { - frac = 0; - ++whole; - } - } - else if ((diff == 0.5) && ((frac == 0U) || (frac & 1U))) { - /* if halfway, round up if odd, OR if last digit is 0 */ - ++frac; - } - - /* TBD: for very large numbers switch back to native sprintf for exponentials. Anyone want to write code to replace this? - // Normal printf behavior is to print EVERY whole number digit which can be 100s of characters overflowing your buffers == bad - */ - if (value > thres_max) { - return 0U; - } - - if (prec == 0U) { - diff = value - (double)whole; - if (diff > 0.5) { - /* greater than 0.5, round up, e.g. 1.6 -> 2 */ - ++whole; - } - else if ((diff == 0.5) && (whole & 1)) { - /* exactly 0.5 and ODD, then round up */ - /* 1.5 -> 2, but 2.5 -> 2 */ - ++whole; - } - } - else { - unsigned int count = prec; - size_t start_len = len; - /* now do fractional part, as an unsigned number */ - while (len < PRINTF_FTOA_BUFFER_SIZE) { - --count; - buf[len++] = (char)('0' + (frac % 10U)); - if (!(frac /= 10U)) { - break; - } - } - - /* add extra 0s */ - while ((len < PRINTF_FTOA_BUFFER_SIZE) && (count-- > 0U)) { - buf[len++] = '0'; - } - if (len < PRINTF_FTOA_BUFFER_SIZE) { - /* add decimal */ - buf[len++] = '.'; - } - } - - if (!(flags & FLAGS_ZEROFILL)) { - /* caller does not want zero filled fraction */ - for(i=0; i < len; i++) { - if (buf[i]!='0') break; /* not a zero character, break */ - } - if (buf[i]=='.') { - /* we found only zeros and the period, reset buffer */ - len = 0; - } - else { - /* we found something other than zero */ - len = len - i; /* calculate new length without the zeros */ - memcpy(buf, &buf[i], len); /* shift the formatted values in the buffer */ - } - } - - /* do whole part, number is reversed */ - while (len < PRINTF_FTOA_BUFFER_SIZE) { - buf[len++] = (char)('0' + (whole % 10)); - if (!(whole /= 10)) { - break; - } - } - - /* pad leading zeros */ - if (!(flags & FLAGS_LEFT) && (flags & FLAGS_ZEROPAD)) { - while ((len < width) && (len < PRINTF_FTOA_BUFFER_SIZE)) { - buf[len++] = '0'; - } - } - - /* handle sign */ - if ((len == width) && (negative || (flags & FLAGS_PLUS) || (flags & FLAGS_SPACE))) { - len--; - } - if (len < PRINTF_FTOA_BUFFER_SIZE) { - if (negative) { - buf[len++] = '-'; - } - else if (flags & FLAGS_PLUS) { - buf[len++] = '+'; /* ignore the space if the '+' exists */ - } - else if (flags & FLAGS_SPACE) { - buf[len++] = ' '; - } - } - - /* pad spaces up to given width */ - if (!(flags & FLAGS_LEFT) && !(flags & FLAGS_ZEROPAD)) { - for (i = len; i < width; i++) { - out(' ', buffer, idx++, maxlen); - } - } - - /* reverse string */ - for (i = 0U; i < len; i++) { - out(buf[len - i - 1U], buffer, idx++, maxlen); - } - - /* append pad spaces up to given width */ - if (flags & FLAGS_LEFT) { - while (idx - start_idx < width) { - out(' ', buffer, idx++, maxlen); - } - } - - return idx; -} -#endif /* PRINTF_SUPPORT_FLOAT */ - -/* internal vsnprintf */ -__asm__("\n&FUNC SETC '_vsnprintf'"); -static int _vsnprintf(out_fct_type out, char* buffer, const size_t maxlen, const char* format, va_list va) -{ - unsigned int flags, width, precision, n; - size_t idx = 0U; - - if (!buffer) { - /* use null output function */ - out = _out_null; - } - - while (*format) - { - /* format specifier? %[flags][width][.precision][length] */ - if (*format != '%') { - /* no */ - out(*format, buffer, idx++, maxlen); - format++; - continue; - } - - /* yes, evaluate it */ - format++; - - /* evaluate flags */ - flags = 0U; - do { - switch (*format) { - case '0': flags |= FLAGS_ZEROPAD; format++; n = 1U; break; - case '-': flags |= FLAGS_LEFT; format++; n = 1U; break; - case '+': flags |= FLAGS_PLUS; format++; n = 1U; break; - case ' ': flags |= FLAGS_SPACE; format++; n = 1U; break; - case '#': flags |= FLAGS_HASH; format++; n = 1U; break; - default : n = 0U; break; - } - } while (n); - - /* evaluate width field */ - width = 0U; - if (_is_digit(*format)) { - width = _atoi(&format); - } - else if (*format == '*') { - const int w = va_arg(va, int); - - if (w < 0) { - flags |= FLAGS_LEFT; /* reverse padding */ - width = (unsigned int)-w; - } - else { - width = (unsigned int)w; - } - format++; - } - - /* evaluate precision field */ - precision = 0U; - if (*format == '.') { - flags |= FLAGS_PRECISION; - format++; - if (_is_digit(*format)) { - precision = _atoi(&format); - } - else if (*format == '*') { - const int prec = (int)va_arg(va, int); - precision = prec > 0 ? (unsigned int)prec : 0U; - format++; - } - } - - /* evaluate length field */ - switch (*format) { - case 'l' : - flags |= FLAGS_LONG; - format++; - if (*format == 'l') { - flags |= FLAGS_LONG_LONG; - format++; - } - break; - case 'h' : - flags |= FLAGS_SHORT; - format++; - if (*format == 'h') { - flags |= FLAGS_CHAR; - format++; - } - break; -#if defined(PRINTF_SUPPORT_PTRDIFF_T) - case 't' : - flags |= (sizeof(ptrdiff_t) == sizeof(long) ? FLAGS_LONG : FLAGS_LONG_LONG); - format++; - break; -#endif - case 'j' : - flags |= (sizeof(int) == sizeof(long) ? FLAGS_LONG : FLAGS_LONG_LONG); - format++; - break; - case 'z' : - flags |= (sizeof(size_t) == sizeof(long) ? FLAGS_LONG : FLAGS_LONG_LONG); - format++; - break; - default : - break; - } - - /* evaluate specifier */ - switch (*format) { - case 'd' : - case 'i' : - case 'u' : - case 'x' : - case 'X' : - case 'o' : - case 'b' : { - /* set the base */ - unsigned int base; - if (*format == 'x' || *format == 'X') { - base = 16U; - } - else if (*format == 'o') { - base = 8U; - } - else if (*format == 'b') { - base = 2U; - } - else { - base = 10U; - flags &= ~FLAGS_HASH; /* no hash for dec format */ - } - - /* uppercase */ - if (*format == 'X') { - flags |= FLAGS_UPPERCASE; - } - - /* no plus or space flag for u, x, X, o, b */ - if ((*format != 'i') && (*format != 'd')) { - flags &= ~(FLAGS_PLUS | FLAGS_SPACE); - } - - /* ignore '0' flag when precision is given */ - if (flags & FLAGS_PRECISION) { - flags &= ~FLAGS_ZEROPAD; - } - - /* convert the integer */ - if ((*format == 'i') || (*format == 'd')) { - /* signed */ - if (flags & FLAGS_LONG_LONG) { -#if defined(PRINTF_SUPPORT_LONG_LONG) - const long long value = va_arg(va, long long); - idx = _ntoa_long_long(out, buffer, idx, maxlen, (unsigned long long)(value > 0 ? value : 0 - value), value < 0, base, precision, width, flags); -#endif - } - else if (flags & FLAGS_LONG) { - const long value = va_arg(va, long); - idx = _ntoa_long(out, buffer, idx, maxlen, (unsigned long)(value > 0 ? value : 0 - value), value < 0, base, precision, width, flags); - } - else { - const int value = (flags & FLAGS_CHAR) ? (char)va_arg(va, int) : (flags & FLAGS_SHORT) ? (short int)va_arg(va, int) : va_arg(va, int); - idx = _ntoa_long(out, buffer, idx, maxlen, (unsigned int)(value > 0 ? value : 0 - value), value < 0, base, precision, width, flags); - } - } - else { - /* unsigned */ - if (flags & FLAGS_LONG_LONG) { -#if defined(PRINTF_SUPPORT_LONG_LONG) - idx = _ntoa_long_long(out, buffer, idx, maxlen, va_arg(va, unsigned long long), false, base, precision, width, flags); -#endif - } - else if (flags & FLAGS_LONG) { - idx = _ntoa_long(out, buffer, idx, maxlen, va_arg(va, unsigned long), false, base, precision, width, flags); - } - else { - const unsigned int value = (flags & FLAGS_CHAR) ? (unsigned char)va_arg(va, unsigned int) : (flags & FLAGS_SHORT) ? (unsigned short int)va_arg(va, unsigned int) : va_arg(va, unsigned int); - idx = _ntoa_long(out, buffer, idx, maxlen, value, false, base, precision, width, flags); - } - } - format++; - break; - } -#if defined(PRINTF_SUPPORT_FLOAT) - case 'f' : - case 'F' : - case 'g' : - case 'G' : - if (*format=='f' || *format=='F') { - /* fill fractional part with 0 up to precision count */ - flags |= FLAGS_ZEROFILL; - } - idx = _ftoa(out, buffer, idx, maxlen, va_arg(va, double), precision, width, flags); - format++; - break; -#endif /* PRINTF_SUPPORT_FLOAT */ - case 'c' : { - unsigned int l = 1U; - /* pre padding */ - if (!(flags & FLAGS_LEFT)) { - while (l++ < width) { - out(' ', buffer, idx++, maxlen); - } - } - /* char output */ - out((char)va_arg(va, int), buffer, idx++, maxlen); - /* post padding */ - if (flags & FLAGS_LEFT) { - while (l++ < width) { - out(' ', buffer, idx++, maxlen); - } - } - format++; - break; - } - - case 's' : { - char* p = va_arg(va, char*); - unsigned int l = _strlen(p); - /* pre padding */ - if (flags & FLAGS_PRECISION) { - l = (l < precision ? l : precision); - } - if (!(flags & FLAGS_LEFT)) { - while (l++ < width) { - out(' ', buffer, idx++, maxlen); - } - } - /* string output */ - while ((*p != 0) && (!(flags & FLAGS_PRECISION) || precision--)) { - out(*(p++), buffer, idx++, maxlen); - } - /* post padding */ - if (flags & FLAGS_LEFT) { - while (l++ < width) { - out(' ', buffer, idx++, maxlen); - } - } - format++; - break; - } - - case 'p' : { - width = sizeof(void*) * 2U; - flags |= FLAGS_ZEROPAD | FLAGS_UPPERCASE; -#if defined(PRINTF_SUPPORT_LONG_LONG) - const bool is_ll = sizeof(unsigned *) == sizeof(long long); - if (is_ll) { - idx = _ntoa_long_long(out, buffer, idx, maxlen, (unsigned)va_arg(va, void*), false, 16U, precision, width, flags); - } - else { -#endif - idx = _ntoa_long(out, buffer, idx, maxlen, (unsigned long)((unsigned *)va_arg(va, void*)), false, 16U, precision, width, flags); -#if defined(PRINTF_SUPPORT_LONG_LONG) - } -#endif - format++; - break; - } - - case '%' : - out('%', buffer, idx++, maxlen); - format++; - break; - - default : - out(*format, buffer, idx++, maxlen); - format++; - break; - } - } - - /* termination */ - out((char)0, buffer, idx < maxlen ? idx : maxlen - 1U, maxlen); - - /* return written chars without terminating \0 */ - return (int)idx; -} - -static struct printf_private printf_private = { - _out_buffer, - _out_null, - _out_char, - _out_fct, - _strlen, - _is_digit, - _atoi, - _ntoa_format, - _ntoa_long, - _ntoa_long_long, - _ftoa, - _vsnprintf, -}; - -struct printf_private *__prtfx = &printf_private; diff --git a/src/crent370/clib/@@prtfx.o b/src/crent370/clib/@@prtfx.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@prtfx.s b/src/crent370/clib/@@prtfx.s deleted file mode 100644 index ad658e7..0000000 --- a/src/crent370/clib/@@prtfx.s +++ /dev/null @@ -1,1930 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@prtfx.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '_out_buffer' -* Program text area - DS 0F - EJECT -* static function '_out_buffer' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '_out_buffer' -@@0 PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=NO - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '_out_buffer' code - L 3,0(11) ==> character - L 15,8(11) ==> idx - CL 15,12(11) ==> idx,maxlen - BNL @@L1 - L 2,4(11) ==> buffer - STC 3,0(15,2) ==> character,idx -@@L1 EQU * -* Function '_out_buffer' epilogue - PDPEPIL -* Function '_out_buffer' literal pool - DS 0D - LTORG -* Function '_out_buffer' page table -@@PGT0 DS 0F - DC A(@@PG0) - -&FUNC SETC '_out_null' - DS 0F - EJECT -* static function '_out_null' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '_out_null' -@@1 PDPPRLG CINDEX=1,FRAME=88,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function '_out_null' code -* Function '_out_null' epilogue - PDPEPIL -* Function '_out_null' literal pool - DS 0D - LTORG -* Function '_out_null' page table -@@PGT1 DS 0F - DC A(@@PG1) - -&FUNC SETC '_out_char' - DS 0F - EJECT -* static function '_out_char' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC '_out_char' -@@2 PDPPRLG CINDEX=2,FRAME=96,BASER=12,ENTRY=NO - B @@FEN2 - LTORG -@@FEN2 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG2 EQU * - LR 11,1 - L 10,=A(@@PGT2) -* Function '_out_char' code - IC 2,3(11) ==> character - CLM 2,1,=XL1'00' ==> character - BE @@L4 - LA 1,88(,13) - L 15,=V(@@GTOUT) - BALR 14,15 - N 2,=XL4'000000FF' ==> character - ST 2,88(13) ==> character - MVC 92(4,13),0(15) - LA 1,88(,13) - L 15,=V(FPUTC) - BALR 14,15 -@@L4 EQU * -* Function '_out_char' epilogue - PDPEPIL -* Function '_out_char' literal pool - DS 0D - LTORG -* Function '_out_char' page table -@@PGT2 DS 0F - DC A(@@PG2) - -&FUNC SETC '_out_fct' - DS 0F - EJECT -* static function '_out_fct' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC '_out_fct' -@@3 PDPPRLG CINDEX=3,FRAME=96,BASER=12,ENTRY=NO - B @@FEN3 - LTORG -@@FEN3 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG3 EQU * - LR 11,1 - L 10,=A(@@PGT3) -* Function '_out_fct' code - L 2,4(11) ==> buffer - SLR 3,3 ==> character - IC 3,3(11) ==> character - ST 3,88(13) ==> character - MVC 92(4,13),4(2) ==> .arg - L 2,0(2) ==> .fct - LA 1,88(,13) - LA 15,0(2) - BALR 14,15 -* Function '_out_fct' epilogue - PDPEPIL -* Function '_out_fct' literal pool - DS 0D - LTORG -* Function '_out_fct' page table -@@PGT3 DS 0F - DC A(@@PG3) - -&FUNC SETC '_strlen' - DS 0F - EJECT -* static function '_strlen' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '_strlen' -@@4 PDPPRLG CINDEX=4,FRAME=88,BASER=12,ENTRY=NO - B @@FEN4 - LTORG -@@FEN4 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG4 EQU * - LR 11,1 - L 10,=A(@@PGT4) -* Function '_strlen' code - L 3,0(11) ==> str - LR 15,3 ==> s,str - IC 2,0(3) ==> str - CLM 2,1,=XL1'00' - BE @@L14 -@@L12 EQU * - A 15,=F'1' ==> s - IC 2,0(15) ==> s - CLM 2,1,=XL1'00' - BNE @@L12 -@@L14 EQU * - SR 15,3 ==> str -* Function '_strlen' epilogue - PDPEPIL -* Function '_strlen' literal pool - DS 0D - LTORG -* Function '_strlen' page table -@@PGT4 DS 0F - DC A(@@PG4) - -&FUNC SETC '_is_digit' - DS 0F - EJECT -* static function '_is_digit' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '_is_digit' -@@5 PDPPRLG CINDEX=5,FRAME=88,BASER=12,ENTRY=NO - B @@FEN5 - LTORG -@@FEN5 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG5 EQU * - LR 11,1 - L 10,=A(@@PGT5) -* Function '_is_digit' code - SLR 15,15 - IC 3,3(11) ==> ch - LA 2,16(,3) - CLM 2,1,=XL1'09' - BH @@L16 - LA 15,1(0,0) -@@L16 EQU * -* Function '_is_digit' epilogue - PDPEPIL -* Function '_is_digit' literal pool - DS 0D - LTORG -* Function '_is_digit' page table -@@PGT5 DS 0F - DC A(@@PG5) - -&FUNC SETC '_atoi' - DS 0F - EJECT -* static function '_atoi' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC '_atoi' -@@6 PDPPRLG CINDEX=6,FRAME=96,BASER=12,ENTRY=NO - B @@FEN6 - LTORG -@@FEN6 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG6 EQU * - LR 11,1 - L 10,=A(@@PGT6) -* Function '_atoi' code - L 5,0(11) ==> str - SLR 4,4 ==> i - B @@L18 -@@L21 EQU * - LR 2,4 ==> i - SLL 2,3 - AR 2,4 ==> i - AR 2,4 ==> i - L 3,0(5) ==> str - SLR 4,4 - IC 4,0(3) - AR 2,4 - LR 4,2 ==> i - A 4,=F'-240' ==> i - A 3,=F'1' - ST 3,0(5) ==> str -@@L18 EQU * - L 2,0(5) ==> str - SLR 3,3 - IC 3,0(2) - ST 3,88(13) - LA 1,88(,13) - L 15,=A(@@5) - BALR 14,15 - LTR 15,15 ==> i - BNE @@L21 - LR 15,4 ==> i -* Function '_atoi' epilogue - PDPEPIL -* Function '_atoi' literal pool - DS 0D - LTORG -* Function '_atoi' page table -@@PGT6 DS 0F - DC A(@@PG6) - -&FUNC SETC '_ntoa_format' - DS 0F - EJECT -* static function '_ntoa_format' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '_ntoa_format' -@@7 PDPPRLG CINDEX=7,FRAME=112,BASER=12,ENTRY=NO - B @@FEN7 - LTORG -@@FEN7 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG7 EQU * - LR 11,1 - L 10,=A(@@PGT7) -* Function '_ntoa_format' code - L 5,8(11) ==> idx - L 9,12(11) ==> maxlen - L 6,16(11) ==> buf - L 4,20(11) ==> len - L 15,32(11) ==> prec - L 7,36(11) ==> width - L 8,40(11) ==> flags - ST 5,104(13) ==> idx,start_idx - LR 2,8 ==> flags - N 2,=F'2' - LTR 2,2 - BNE @@L23 - CLR 4,15 ==> len,prec - BNL @@L25 - LA 2,31(0,0) - CLR 4,2 ==> len - BH @@L25 -@@L28 EQU * - L 3,=F'-16' - STC 3,0(4,6) ==> len - A 4,=F'1' ==> len - CLR 4,15 ==> len,prec - BNL @@L25 - LA 2,31(0,0) - CLR 4,2 ==> len - BNH @@L28 -@@L25 EQU * - LR 2,8 ==> flags - N 2,=F'1' - LR 3,2 - LTR 2,2 - BE @@L23 - CLR 4,7 ==> len,width - BNL @@L23 - LA 2,31(0,0) - CLR 4,2 ==> len - BH @@L23 -@@L33 EQU * - L 2,=F'-16' - STC 2,0(4,6) ==> len - A 4,=F'1' ==> len - LTR 3,3 - BE @@L23 - CLR 4,7 ==> len,width - BNL @@L23 - LA 2,31(0,0) - CLR 4,2 ==> len - BNH @@L33 -@@L23 EQU * - LR 2,8 ==> flags - N 2,=F'16' - LTR 2,2 - BE @@L34 - LR 2,8 ==> flags - N 2,=F'1024' - LTR 2,2 - BNE @@L35 - LTR 4,4 ==> len - BE @@L35 - CLR 4,15 ==> len,prec - BE @@L36 - CLR 4,7 ==> len,width - BNE @@L35 -@@L36 EQU * - BCTR 4,0 ==> len - LTR 4,4 ==> len - BE @@L35 - L 15,28(11) ==> base - LA 3,16(0,0) - CLR 15,3 - BNE @@L35 - BCTR 4,0 ==> len -@@L35 EQU * - L 3,28(11) ==> base - LA 2,16(0,0) - CLR 3,2 - BNE @@L38 - LR 2,8 ==> flags - N 2,=F'32' - LTR 2,2 - BNE @@L38 - LA 15,31(0,0) - CLR 4,15 ==> len - BH @@L38 - L 2,=F'-89' - STC 2,0(4,6) ==> len - B @@L74 -@@L38 EQU * - L 15,28(11) ==> base - LA 3,16(0,0) - CLR 15,3 - BNE @@L40 - LR 2,8 ==> flags - N 2,=F'32' - LTR 2,2 - BE @@L40 - LA 2,31(0,0) - CLR 4,2 ==> len - BH @@L40 - L 3,=F'-25' - STC 3,0(4,6) ==> len - B @@L74 -@@L40 EQU * - L 2,28(11) ==> base - LA 15,2(0,0) - CLR 2,15 - BNE @@L39 - LA 3,31(0,0) - CLR 4,3 ==> len - BH @@L39 - L 15,=F'-126' - STC 15,0(4,6) ==> len -@@L74 EQU * - A 4,=F'1' ==> len -@@L39 EQU * - LA 2,31(0,0) - CLR 4,2 ==> len - BH @@L34 - L 3,=F'-16' - STC 3,0(4,6) ==> len - A 4,=F'1' ==> len -@@L34 EQU * - LTR 4,4 ==> len - BE @@L44 - CLR 4,7 ==> len,width - BNE @@L44 - L 15,24(11) ==> negative - LTR 15,15 - BNE @@L45 - LR 2,8 ==> flags - N 2,=F'12' - LTR 2,2 - BE @@L44 -@@L45 EQU * - BCTR 4,0 ==> len -@@L44 EQU * - LA 2,31(0,0) - CLR 4,2 ==> len - BH @@L46 - L 3,24(11) ==> negative - LTR 3,3 - BE @@L47 - LA 15,96(0,0) - STC 15,0(4,6) ==> len - B @@L75 -@@L47 EQU * - LR 2,8 ==> flags - N 2,=F'4' - LTR 2,2 - BE @@L49 - LA 2,78(0,0) - STC 2,0(4,6) ==> len - B @@L75 -@@L49 EQU * - LR 2,8 ==> flags - N 2,=F'8' - LTR 2,2 - BE @@L46 - LA 3,64(0,0) - STC 3,0(4,6) ==> len -@@L75 EQU * - A 4,=F'1' ==> len -@@L46 EQU * - LR 2,8 ==> flags - N 2,=F'3' - LTR 2,2 - BNE @@L52 - LR 3,4 ==> i,len - CLR 4,7 ==> len,width - BNL @@L52 -@@L57 EQU * - MVC 88(4,13),=F'64' - MVC 92(4,13),4(11) ==> buffer - ST 5,96(13) ==> idx - A 5,=F'1' ==> idx - ST 9,100(13) ==> maxlen - L 15,0(11) ==> out - LA 1,88(,13) - LA 15,0(15) - BALR 14,15 - A 3,=F'1' ==> i - CLR 3,7 ==> i,width - BL @@L57 -@@L52 EQU * - SLR 3,3 ==> i - CLR 3,4 ==> i,len - BNL @@L72 -@@L62 EQU * - LR 2,4 ==> len - SR 2,3 ==> i - AR 2,6 ==> buf - BCTR 2,0 - SLR 15,15 - IC 15,0(2) - ST 15,88(13) - MVC 92(4,13),4(11) ==> buffer - ST 5,96(13) ==> idx - A 5,=F'1' ==> idx - ST 9,100(13) ==> maxlen - L 2,0(11) ==> out - LA 1,88(,13) - LA 15,0(2) - BALR 14,15 - A 3,=F'1' ==> i - CLR 3,4 ==> i,len - BL @@L62 -@@L72 EQU * - LR 2,8 ==> flags - N 2,=F'2' - LTR 2,2 - BE @@L63 - LR 2,5 ==> idx - S 2,104(13) ==> start_idx - CLR 2,7 ==> width - BNL @@L63 -@@L67 EQU * - MVC 88(4,13),=F'64' - MVC 92(4,13),4(11) ==> buffer - ST 5,96(13) ==> idx - A 5,=F'1' ==> idx - ST 9,100(13) ==> maxlen - L 3,0(11) ==> out - LA 1,88(,13) - LA 15,0(3) - BALR 14,15 - LR 2,5 ==> idx - S 2,104(13) ==> start_idx - CLR 2,7 ==> width - BL @@L67 -@@L63 EQU * - LR 15,5 ==> idx -* Function '_ntoa_format' epilogue - PDPEPIL -* Function '_ntoa_format' literal pool - DS 0D - LTORG -* Function '_ntoa_format' page table -@@PGT7 DS 0F - DC A(@@PG7) - -&FUNC SETC '_ntoa_long' - DS 0F - EJECT -* static function '_ntoa_long' prologue -* frame base=88, local stack=40, call args=48 -&FUNC SETC '_ntoa_long' -@@8 PDPPRLG CINDEX=8,FRAME=176,BASER=12,ENTRY=NO - B @@FEN8 - LTORG -@@FEN8 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG8 EQU * - LR 11,1 - L 10,=A(@@PGT8) -* Function '_ntoa_long' code - SLR 6,6 ==> value - SLR 7,7 ==> value - L 9,16(11) ==> value - MVC 168(4,13),=F'0' ==> len - LTR 9,9 ==> value - BNE @@L77 - NC 36(4,11),=F'-17' ==> flags -@@L77 EQU * - L 2,36(11) ==> flags - N 2,=F'1024' - LTR 2,2 - BE @@L79 - LTR 9,9 ==> value - BE @@L78 -@@L79 EQU * - MVC 172(4,13),24(11) ==> base -@@L80 EQU * - LR 6,9 ==> value - L 2,24(11) ==> base - CLR 2,9 - BH @@L85 - LTR 2,2 - BL @@L84 - LA 3,1(0,0) - CLR 2,3 - BE @@L83 - SRDL 6,32 ==> value - DR 6,2 ==> value - B @@L85 -@@L83 EQU * - SLR 6,6 - B @@L85 -@@L84 EQU * - S 6,172(13) -@@L85 EQU * - LA 2,136(,13) - L 8,168(13) ==> len - AR 8,2 - L 2,168(13) ==> len - A 2,=F'1' - ST 2,168(13) ==> len - LA 15,240(,6) ==> digit - CLM 6,1,=XL1'09' ==> digit - BNH @@L87 - L 2,36(11) ==> flags - N 2,=F'32' - LA 15,183(,6) ==> digit - LTR 2,2 - BNE @@L87 - LA 15,119(,6) ==> digit -@@L87 EQU * - STC 15,0(8) ==> buf - LR 4,9 ==> value - SLR 5,5 ==> value - L 3,24(11) ==> base - CLR 3,9 - BH @@L92 - LTR 3,3 - BL @@L91 - LA 2,1(0,0) - CLR 3,2 - BE @@L90 - SRDL 4,32 ==> value - DR 4,3 ==> value - B @@L92 -@@L90 EQU * - LR 5,9 ==> value - B @@L92 -@@L91 EQU * - LA 5,1(0,0) ==> value -@@L92 EQU * - LR 9,5 ==> value - LTR 5,5 ==> value - BE @@L78 - L 2,168(13) ==> len - LA 3,31(0,0) - CLR 2,3 - BNH @@L80 -@@L78 EQU * - MVC 88(4,13),0(11) ==> out - MVC 92(4,13),4(11) ==> buffer - MVC 96(4,13),8(11) ==> idx - MVC 100(4,13),12(11) ==> maxlen - LA 2,136(,13) - ST 2,104(13) - MVC 108(4,13),168(13) ==> len - MVC 112(4,13),20(11) ==> negative - MVC 116(4,13),24(11) ==> base - MVC 120(4,13),28(11) ==> prec - MVC 124(4,13),32(11) ==> width - MVC 128(4,13),36(11) ==> flags - LA 1,88(,13) - L 15,=A(@@7) - BALR 14,15 -* Function '_ntoa_long' epilogue - PDPEPIL -* Function '_ntoa_long' literal pool - DS 0D - LTORG -* Function '_ntoa_long' page table -@@PGT8 DS 0F - DC A(@@PG8) - -&FUNC SETC '_ntoa_long_long' - DS 0F - EJECT -* static function '_ntoa_long_long' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '_ntoa_long_long' -@@9 PDPPRLG CINDEX=9,FRAME=88,BASER=12,ENTRY=NO - B @@FEN9 - LTORG -@@FEN9 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG9 EQU * - LR 11,1 - L 10,=A(@@PGT9) -* Function '_ntoa_long_long' code - SLR 15,15 -* Function '_ntoa_long_long' epilogue - PDPEPIL -* Function '_ntoa_long_long' literal pool - DS 0D - LTORG -* Function '_ntoa_long_long' page table -@@PGT9 DS 0F - DC A(@@PG9) - -&FUNC SETC '_ftoa' - DS 0F -@@11 EQU * - DC F'1091567616' - DC F'0' - DC F'1101004800' - DC F'0' - DC F'1113849856' - DC F'0' - DC F'1128169472' - DC F'0' - DC F'1143410688' - DC F'0' - DC F'1159227904' - DC F'0' - DC F'1173627904' - DC F'0' - DC F'1184405120' - DC F'0' - DC F'1197432336' - DC F'0' - DC F'1211865802' - DC F'0' - DS 0F - EJECT -* static function '_ftoa' prologue -* frame base=88, local stack=72, call args=16 -&FUNC SETC '_ftoa' -@@10 PDPPRLG CINDEX=10,FRAME=176,BASER=12,ENTRY=NO - B @@FEN10 - LTORG -@@FEN10 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG10 EQU * - LR 11,1 - L 10,=A(@@PGT10) -* Function '_ftoa' code - SLR 2,2 - SLR 3,3 - ST 2,144(13) - ST 3,4+144(13) - ST 2,152(13) - ST 3,4+152(13) - ST 2,160(13) - ST 3,4+160(13) - LR 8,2 ==> whole - LR 9,3 ==> whole - LD 4,16(11) ==> value - L 4,24(11) ==> prec - MVC 136(4,13),8(11) ==> start_idx,idx - SLR 6,6 ==> len - ST 6,140(13) ==> len,negative - LTDR 4,4 ==> value - BNL @@L97 - MVC 140(4,13),=F'1' ==> negative - LCDR 4,4 ==> value -@@L97 EQU * - L 2,32(11) ==> flags - N 2,=F'1024' - LTR 2,2 - BNE @@L99 - LA 4,6(0,0) ==> prec -@@L99 EQU * - LA 3,31(0,0) - CLR 6,3 ==> len - BH @@L101 - LA 5,9(0,0) - CLR 4,5 ==> prec - BNH @@L101 - LA 2,104(,13) -@@L104 EQU * - L 15,=F'-16' - STC 15,0(2,6) ==> buf - A 6,=F'1' ==> len - BCTR 4,0 ==> prec - LA 3,31(0,0) - CLR 6,3 ==> len - BH @@L101 - LA 5,9(0,0) - CLR 4,5 ==> prec - BH @@L104 -@@L101 EQU * - LDR 0,4 ==> value - AD 0,=XL8'4F08000000000000' - STD 0,80(,13) - L 7,84(,13) ==> whole - MVC 80(4,13),=XL8'4E00000080000000' - ST 7,84(,13) ==> whole - XI 84(13),128 - LD 0,80(,13) - SD 0,=XL8'4E00000080000000' - LDR 2,4 ==> tmp,value - SDR 2,0 ==> tmp - LR 3,4 ==> prec - MH 3,=H'8' - L 2,=A(@@11) - MD 2,0(3,2) ==> tmp,pow10 - LDR 0,2 ==> tmp - AD 0,=XL8'4F08000000000000' - STD 0,80(,13) - L 5,84(,13) ==> frac - MVC 80(4,13),=XL8'4E00000080000000' - ST 5,84(,13) ==> frac - XI 84(13),128 - LD 0,80(,13) - SD 0,=XL8'4E00000080000000' - LTR 5,5 ==> frac - BNL @@L105 - AD 0,=D'4.294967296E9' -@@L105 EQU * - SDR 2,0 ==> tmp - CD 2,=D'5.0E-1' ==> diff - BNH @@L106 - A 5,=F'1' ==> frac - MVC 80(4,13),=XL8'4E00000080000000' - ST 5,84(,13) ==> frac - XI 84(13),128 - LD 0,80(,13) - SD 0,=XL8'4E00000080000000' - LTR 5,5 ==> frac - BNL @@L109 - AD 0,=D'4.294967296E9' -@@L109 EQU * - LR 3,4 ==> prec - MH 3,=H'8' - L 2,=A(@@11) - CD 0,0(3,2) ==> pow10 - BL @@L111 - SLR 5,5 ==> frac - A 7,=F'1' ==> whole - B @@L111 -@@L106 EQU * - CD 2,=D'5.0E-1' ==> diff - BNE @@L111 - LTR 5,5 ==> frac - BE @@L114 - LR 2,5 ==> frac - N 2,=F'1' - LTR 2,2 - BE @@L111 -@@L114 EQU * - A 5,=F'1' ==> frac -@@L111 EQU * - SLR 15,15 ==> idx - CD 4,=D'2.147483647E9' ==> value - BH @@L96 - LTR 4,4 ==> prec - BNE @@L117 - MVC 80(4,13),=XL8'4E00000080000000' - ST 7,84(,13) ==> whole - XI 84(13),128 - LD 0,80(,13) - SD 0,=XL8'4E00000080000000' - SDR 4,0 ==> value - CD 4,=D'5.0E-1' ==> diff - BH @@L189 - BNE @@L123 - LR 2,7 ==> whole - N 2,=F'1' - LTR 2,2 - BE @@L123 -@@L189 EQU * - A 7,=F'1' ==> whole - B @@L123 -@@L117 EQU * - ST 4,168(13) ==> prec,count - LA 15,31(0,0) - CLR 6,15 ==> len - BH @@L125 - LA 4,104(,13) -@@L128 EQU * - L 2,168(13) ==> count - BCTR 2,0 - ST 2,168(13) ==> count - ST 5,144(13) ==> frac - L 2,144(13) - L 3,4+144(13) - SRDL 2,32 - LA 15,10(0,0) - DR 2,15 - ST 2,144(13) - ST 3,4+144(13) - IC 3,147(13) - LA 2,240(,3) - STC 2,0(4,6) ==> buf - A 6,=F'1' ==> len - ST 5,152(13) ==> frac - L 2,152(13) - L 3,4+152(13) - SRDL 2,32 - DR 2,15 - ST 2,152(13) - ST 3,4+152(13) - LR 5,3 ==> frac - L 15,156(13) - LTR 15,15 - BE @@L125 - LA 2,31(0,0) - CLR 6,2 ==> len - BNH @@L128 -@@L125 EQU * - LA 3,31(0,0) - CLR 6,3 ==> len - BH @@L130 - L 2,168(13) ==> count - LR 4,2 ==> count - BCTR 4,0 - ST 4,168(13) ==> count - LTR 2,2 ==> count - BE @@L130 - LA 4,104(,13) -@@L133 EQU * - L 5,=F'-16' - STC 5,0(4,6) ==> buf - A 6,=F'1' ==> len - LA 15,31(0,0) - CLR 6,15 ==> len - BH @@L130 - L 2,168(13) ==> count - LR 3,2 ==> count - BCTR 3,0 - ST 3,168(13) ==> count - LTR 2,2 ==> count - BNE @@L133 -@@L130 EQU * - LA 4,31(0,0) - CLR 6,4 ==> len - BH @@L123 - LA 5,75(0,0) - STC 5,104(6,13) ==> buf - A 6,=F'1' ==> len -@@L123 EQU * - L 2,32(11) ==> i,flags - N 2,=F'2048' ==> i - LTR 2,2 ==> i - BNE @@L135 - LR 3,2 ==> i - CLR 2,6 ==> i,len - BNL @@L137 -@@L141 EQU * - IC 2,104(13,3) ==> buf - CLM 2,1,=XL1'F0' - BNE @@L137 - A 3,=F'1' ==> i - CLR 3,6 ==> i,len - BL @@L141 -@@L137 EQU * - IC 2,104(13,3) ==> buf - CLM 2,1,=XL1'4B' - BNE @@L142 - SLR 6,6 ==> len - B @@L135 -@@L142 EQU * - SR 6,3 ==> len,i - LA 2,104(,13) - ST 2,88(13) - AR 2,3 ==> i - ST 2,92(13) - ST 6,96(13) ==> len - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 -@@L135 EQU * - LA 15,31(0,0) - CLR 6,15 ==> len - BH @@L145 - LA 4,104(,13) - L 15,=F'-16' -@@L148 EQU * - ST 7,160(13) ==> whole - L 2,160(13) - L 3,4+160(13) - SRDA 2,32 - LA 5,10(0,0) - DR 2,5 - ST 2,160(13) - ST 3,4+160(13) - IC 3,163(13) - LA 2,0(15,3) - STC 2,0(4,6) ==> buf - A 6,=F'1' ==> len - LR 8,7 ==> whole - SRDA 8,32 ==> whole - DR 8,5 ==> whole - LR 7,9 ==> whole - LTR 9,9 ==> whole - BE @@L145 - LA 5,31(0,0) - CLR 6,5 ==> len - BNH @@L148 -@@L145 EQU * - L 2,32(11) ==> flags - N 2,=F'3' - LA 15,1(0,0) - CLR 2,15 - BNE @@L149 - CL 6,28(11) ==> len,width - BNL @@L149 - LA 2,31(0,0) - CLR 6,2 ==> len - BH @@L149 - LA 2,104(,13) -@@L154 EQU * - L 3,=F'-16' - STC 3,0(2,6) ==> buf - A 6,=F'1' ==> len - CL 6,28(11) ==> len,width - BNL @@L149 - LA 4,31(0,0) - CLR 6,4 ==> len - BNH @@L154 -@@L149 EQU * - CL 6,28(11) ==> len,width - BNE @@L155 - L 5,140(13) ==> negative - LTR 5,5 - BNE @@L156 - L 2,32(11) ==> flags - N 2,=F'12' - LTR 2,2 - BE @@L155 -@@L156 EQU * - BCTR 6,0 ==> len -@@L155 EQU * - LA 15,31(0,0) - CLR 6,15 ==> len - BH @@L157 - L 2,140(13) ==> negative - LTR 2,2 - BE @@L158 - LA 3,96(0,0) - STC 3,104(6,13) ==> buf - B @@L190 -@@L158 EQU * - L 2,32(11) ==> flags - N 2,=F'4' - LTR 2,2 - BE @@L160 - LA 4,78(0,0) - STC 4,104(6,13) ==> buf - B @@L190 -@@L160 EQU * - L 2,32(11) ==> flags - N 2,=F'8' - LTR 2,2 - BE @@L157 - LA 5,64(0,0) - STC 5,104(6,13) ==> buf -@@L190 EQU * - A 6,=F'1' ==> len -@@L157 EQU * - L 2,32(11) ==> flags - N 2,=F'3' - LTR 2,2 - BNE @@L163 - LR 3,6 ==> i,len - CL 6,28(11) ==> len,width - BNL @@L163 -@@L168 EQU * - MVC 88(4,13),=F'64' - MVC 92(4,13),4(11) ==> buffer - MVC 96(4,13),8(11) ==> idx - L 15,8(11) ==> idx - A 15,=F'1' - ST 15,8(11) ==> idx - MVC 100(4,13),12(11) ==> maxlen - L 2,0(11) ==> out - LA 1,88(,13) - LA 15,0(2) - BALR 14,15 - A 3,=F'1' ==> i - CL 3,28(11) ==> i,width - BL @@L168 -@@L163 EQU * - SLR 3,3 ==> i - CLR 3,6 ==> i,len - BNL @@L187 -@@L173 EQU * - LR 2,6 ==> len - SR 2,3 ==> i - SLR 4,4 - IC 4,103(2,13) ==> buf - ST 4,88(13) - MVC 92(4,13),4(11) ==> buffer - MVC 96(4,13),8(11) ==> idx - L 5,8(11) ==> idx - A 5,=F'1' - ST 5,8(11) ==> idx - MVC 100(4,13),12(11) ==> maxlen - L 15,0(11) ==> out - LA 1,88(,13) - LA 15,0(15) - BALR 14,15 - A 3,=F'1' ==> i - CLR 3,6 ==> i,len - BL @@L173 -@@L187 EQU * - L 2,32(11) ==> flags - N 2,=F'2' - LTR 2,2 - BE @@L174 - L 2,8(11) ==> idx - S 2,136(13) ==> start_idx - CL 2,28(11) ==> width - BNL @@L174 -@@L178 EQU * - MVC 88(4,13),=F'64' - MVC 92(4,13),4(11) ==> buffer - MVC 96(4,13),8(11) ==> idx - L 2,8(11) ==> idx - A 2,=F'1' - ST 2,8(11) ==> idx - MVC 100(4,13),12(11) ==> maxlen - L 3,0(11) ==> out - LA 1,88(,13) - LA 15,0(3) - BALR 14,15 - L 2,8(11) ==> idx - S 2,136(13) ==> start_idx - CL 2,28(11) ==> width - BL @@L178 -@@L174 EQU * - L 15,8(11) ==> idx -@@L96 EQU * -* Function '_ftoa' epilogue - PDPEPIL -* Function '_ftoa' literal pool - DS 0D - LTORG -* Function '_ftoa' page table -@@PGT10 DS 0F - DC A(@@PG10) - -&FUNC SETC '_vsnprintf' - DS 0F - EJECT -* static function '_vsnprintf' prologue -* frame base=88, local stack=8, call args=40 -&FUNC SETC '_vsnprintf' -@@12 PDPPRLG CINDEX=11,FRAME=136,BASER=12,ENTRY=NO - B @@FEN11 - LTORG -@@FEN11 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG11 EQU * - LR 11,1 - L 10,=A(@@PGT11) -* Function '_vsnprintf' code - L 7,0(11) ==> out - L 9,8(11) ==> maxlen - L 8,16(11) ==> va - SLR 6,6 ==> idx - L 2,4(11) ==> buffer - LTR 2,2 - BNE @@L192 - L 7,=A(@@1) ==> out -@@L192 EQU * - L 2,12(11) - IC 2,0(2) - CLM 2,1,=XL1'00' - L 14,=A(@@L313) - BER 14 -@@L309 EQU * - L 12,0(,10) - L 2,12(11) - CLI 0(2),108 - L 14,=A(@@L327) - BNER 14 - L 2,12(11) - A 2,=F'1' - ST 2,12(11) - SLR 4,4 ==> flags -@@L197 EQU * - L 2,12(11) - SLR 5,5 - IC 5,0(2) - LR 2,5 - LA 15,96(0,0) - CR 5,15 - BE @@L202 - BH @@L208 - LA 3,64(0,0) - CLR 5,3 - BE @@L204 - LA 5,78(0,0) - CLR 2,5 - BE @@L203 - B @@L206 -@@L208 EQU * - LA 15,123(0,0) - CLR 5,15 - BE @@L205 - LA 3,240(0,0) - CLR 5,3 - BNE @@L206 - O 4,=F'1' ==> flags - B @@L319 -@@L202 EQU * - O 4,=F'2' ==> flags - B @@L319 -@@L203 EQU * - O 4,=F'4' ==> flags - B @@L319 -@@L204 EQU * - O 4,=F'8' ==> flags - B @@L319 -@@L205 EQU * - O 4,=F'16' ==> flags -@@L319 EQU * - L 2,12(11) - A 2,=F'1' - ST 2,12(11) - LA 2,1(0,0) ==> n - B @@L199 -@@L206 EQU * - SLR 2,2 ==> n -@@L199 EQU * - LTR 2,2 ==> n - BNE @@L197 - MVC 128(4,13),=F'0' ==> width - L 2,12(11) - SLR 5,5 - IC 5,0(2) - ST 5,88(13) - LA 1,88(,13) - L 15,=A(@@5) - BALR 14,15 - LTR 15,15 ==> width - BE @@L210 - LA 2,12(,11) - ST 2,88(13) - LA 1,88(,13) - L 15,=A(@@6) - BALR 14,15 - ST 15,128(13) ==> width - B @@L211 -@@L210 EQU * - L 2,12(11) - IC 2,0(2) - SLL 2,24 - SRA 2,24 - C 2,=F'92' - BNE @@L211 - A 8,=F'4' ==> va - LR 2,8 ==> va - A 2,=F'-4' - L 15,0(2) ==> w - LTR 15,15 ==> w - BNL @@L213 - O 4,=F'2' ==> flags - LCR 15,15 ==> w -@@L213 EQU * - ST 15,128(13) ==> w,width - L 2,12(11) - A 2,=F'1' - ST 2,12(11) -@@L211 EQU * - MVC 132(4,13),=F'0' ==> precision - L 2,12(11) - CLI 0(2),75 - BNE @@L215 - O 4,=F'1024' ==> flags - A 2,=F'1' - ST 2,12(11) - SLR 15,15 - IC 15,0(2) - ST 15,88(13) - LA 1,88(,13) - L 15,=A(@@5) - BALR 14,15 - LTR 15,15 ==> width - BE @@L216 - LA 2,12(,11) - ST 2,88(13) - LA 1,88(,13) - L 15,=A(@@6) - BALR 14,15 - ST 15,132(13) ==> precision - B @@L215 -@@L216 EQU * - L 2,12(11) - IC 2,0(2) - SLL 2,24 - SRA 2,24 - C 2,=F'92' - BNE @@L215 - A 8,=F'4' ==> va - LR 2,8 ==> va - A 2,=F'-4' - L 2,0(2) ==> prec - ST 2,132(13) ==> prec,precision - LTR 2,2 ==> prec - BH @@L220 - MVC 132(4,13),=F'0' ==> precision -@@L220 EQU * - L 2,12(11) - A 2,=F'1' - ST 2,12(11) -@@L215 EQU * - L 2,12(11) - SLR 3,3 - IC 3,0(2) - LR 2,3 - LA 5,145(0,0) - CR 3,5 - BE @@L227 - BH @@L230 - LA 15,136(0,0) - CLR 3,15 - BE @@L224 - B @@L221 -@@L230 EQU * - LA 3,147(0,0) - CLR 2,3 - BE @@L222 - LA 5,169(0,0) - CLR 2,5 - BE @@L227 - B @@L221 -@@L222 EQU * - O 4,=F'256' ==> flags - L 2,12(11) - A 2,=F'1' - ST 2,12(11) - CLI 0(2),147 - BNE @@L221 - O 4,=F'512' ==> flags - B @@L320 -@@L224 EQU * - O 4,=F'128' ==> flags - L 2,12(11) - A 2,=F'1' - ST 2,12(11) - CLI 0(2),136 - BNE @@L221 - O 4,=F'64' ==> flags - B @@L320 -@@L227 EQU * - O 4,=F'256' ==> flags - L 2,12(11) -@@L320 EQU * - A 2,=F'1' - ST 2,12(11) -@@L221 EQU * - L 2,12(11) - SLR 15,15 - IC 15,0(2) - LR 2,15 - A 2,=F'-108' - LA 3,123(0,0) - CLR 2,3 - L 14,=A(@@L307) - BHR 14 - LR 3,2 - MH 3,=H'4' - L 2,=A(@@L308) - L 14,0(3,2) - BR 14 - DS 0F - DS 0F - DS 0F - LTORG - DS 0F -@@L308 EQU * - DC A(@@L306) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L238) - DC A(@@L276) - DC A(@@L238) - DC A(@@L307) - DC A(@@L273) - DC A(@@L273) - DC A(@@L307) - DC A(@@L238) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L238) - DC A(@@L305) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L287) - DC A(@@L307) - DC A(@@L238) - DC A(@@L307) - DC A(@@L307) - DC A(@@L238) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L273) - DC A(@@L273) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L307) - DC A(@@L238) -@@L238 EQU * - L 2,12(11) - IC 2,0(2) - CLM 2,1,=XL1'A7' - BE @@L240 - CLM 2,1,=XL1'E7' - BNE @@L239 -@@L240 EQU * - LA 5,16(0,0) ==> base - B @@L241 -@@L239 EQU * - L 2,12(11) - CLI 0(2),150 - BNE @@L242 - LA 5,8(0,0) ==> base - B @@L241 -@@L242 EQU * - L 2,12(11) - CLI 0(2),130 - BNE @@L244 - LA 5,2(0,0) ==> base - B @@L241 -@@L244 EQU * - LA 5,10(0,0) ==> base - N 4,=F'-17' ==> flags -@@L241 EQU * - L 2,12(11) - CLI 0(2),231 - BNE @@L246 - O 4,=F'32' ==> flags -@@L246 EQU * - L 2,12(11) - IC 2,0(2) - CLM 2,1,=XL1'89' - BE @@L247 - CLM 2,1,=XL1'84' - BE @@L247 - N 4,=F'-13' ==> flags -@@L247 EQU * - LR 2,4 ==> flags - N 2,=F'1024' - LTR 2,2 - BE @@L248 - N 4,=F'-2' ==> flags -@@L248 EQU * - L 2,12(11) - IC 2,0(2) - CLM 2,1,=XL1'89' - BE @@L250 - CLM 2,1,=XL1'84' - BNE @@L249 -@@L250 EQU * - LR 2,4 ==> flags - N 2,=F'512' - LTR 2,2 - L 14,=A(@@L324) - BNER 14 - LR 2,4 ==> flags - N 2,=F'256' - LTR 2,2 - BE @@L253 - A 8,=F'4' ==> va - LR 2,8 ==> va - A 2,=F'-4' - L 3,0(2) ==> value - ST 7,88(13) ==> out - MVC 92(4,13),4(11) ==> buffer - ST 6,96(13) ==> idx - ST 9,100(13) ==> maxlen - LPR 2,3 ==> value - ST 2,104(13) - SRL 3,31 - B @@L322 -@@L253 EQU * - LR 2,4 ==> flags - N 2,=F'64' - LTR 2,2 - BE @@L256 - A 8,=F'4' ==> va - LR 2,8 ==> va - A 2,=F'-4' - SLR 3,3 ==> value - IC 3,3(2) ==> value - B @@L257 -@@L256 EQU * - LR 2,4 ==> flags - N 2,=F'128' - LTR 2,2 - BE @@L258 - A 8,=F'4' ==> va - LR 2,8 ==> va - A 2,=F'-4' - LH 3,2(2) ==> value - B @@L257 -@@L258 EQU * - A 8,=F'4' ==> va - LR 2,8 ==> va - A 2,=F'-4' - L 3,0(2) ==> value -@@L257 EQU * - ST 7,88(13) ==> out - MVC 92(4,13),4(11) ==> buffer - ST 6,96(13) ==> idx - ST 9,100(13) ==> maxlen - LPR 2,3 ==> value - ST 2,104(13) - LR 2,3 ==> value - SRL 2,31 - ST 2,108(13) - B @@L321 -@@L249 EQU * - LR 3,4 ==> flags - N 3,=F'512' - LTR 3,3 - L 14,=A(@@L324) - BNER 14 - LR 2,4 ==> flags - N 2,=F'256' - LTR 2,2 - BE @@L264 - ST 7,88(13) ==> out - MVC 92(4,13),4(11) ==> buffer - ST 6,96(13) ==> idx - ST 9,100(13) ==> maxlen - A 8,=F'4' ==> va - LR 2,8 ==> va - A 2,=F'-4' - MVC 104(4,13),0(2) -@@L322 EQU * - ST 3,108(13) - B @@L321 -@@L264 EQU * - LR 2,4 ==> flags - N 2,=F'64' - LTR 2,2 - BE @@L266 - A 8,=F'4' ==> va - LR 2,8 ==> va - A 2,=F'-4' - SLR 15,15 - IC 15,3(2) - LR 2,15 ==> value - B @@L267 -@@L266 EQU * - LR 2,4 ==> flags - N 2,=F'128' - LTR 2,2 - BE @@L268 - A 8,=F'4' ==> va - LR 2,8 ==> va - A 2,=F'-4' - LH 2,2(2) - N 2,=XL4'0000FFFF' - B @@L267 -@@L268 EQU * - A 8,=F'4' ==> va - LR 2,8 ==> va - A 2,=F'-4' - L 2,0(2) ==> value -@@L267 EQU * - ST 7,88(13) ==> out - MVC 92(4,13),4(11) ==> buffer - ST 6,96(13) ==> idx - ST 9,100(13) ==> maxlen - ST 2,104(13) ==> value - MVC 108(4,13),=F'0' -@@L321 EQU * - ST 5,112(13) ==> base - MVC 116(4,13),132(13) ==> precision - MVC 120(4,13),128(13) ==> width - L 14,=A(@@L328) - BR 14 -@@L273 EQU * - L 2,12(11) - IC 2,0(2) - CLM 2,1,=XL1'86' - BE @@L275 - CLM 2,1,=XL1'C6' - BNE @@L274 -@@L275 EQU * - O 4,=F'2048' ==> flags -@@L274 EQU * - ST 7,88(13) ==> out - MVC 92(4,13),4(11) ==> buffer - ST 6,96(13) ==> idx - ST 9,100(13) ==> maxlen - A 8,=F'8' ==> va - LR 2,8 ==> va - A 2,=F'-8' - MVC 104(8,13),0(2) - MVC 112(4,13),132(13) ==> precision - MVC 116(4,13),128(13) ==> width - ST 4,120(13) ==> flags - LA 1,88(,13) - L 15,=A(@@10) - BALR 14,15 - L 14,=A(@@L326) - BR 14 -@@L276 EQU * - LA 3,1(0,0) ==> l - LR 2,4 ==> flags - N 2,=F'2' - LTR 2,2 - BNE @@L277 - LR 2,3 ==> l - LA 3,2(0,0) ==> l - CL 2,128(13) ==> l,width - BNL @@L277 -@@L281 EQU * - MVC 88(4,13),=F'64' - MVC 92(4,13),4(11) ==> buffer - ST 6,96(13) ==> idx - A 6,=F'1' ==> idx - ST 9,100(13) ==> maxlen - LA 1,88(,13) - LA 15,0(7) ==> out - BALR 14,15 - LR 2,3 ==> l - A 3,=F'1' ==> l - CL 2,128(13) ==> l,width - BL @@L281 -@@L277 EQU * - A 8,=F'4' ==> va - LR 2,8 ==> va - A 2,=F'-4' - SLR 5,5 - IC 5,3(2) - ST 5,88(13) - MVC 92(4,13),4(11) ==> buffer - ST 6,96(13) ==> idx - A 6,=F'1' ==> idx - ST 9,100(13) ==> maxlen - LA 1,88(,13) - LA 15,0(7) ==> out - BALR 14,15 - LR 2,4 ==> flags - N 2,=F'2' - LTR 2,2 - L 14,=A(@@L324) - BER 14 - LR 2,3 ==> l - A 3,=F'1' ==> l - CL 2,128(13) ==> l,width - L 14,=A(@@L324) - BNLR 14 -@@L286 EQU * - MVC 88(4,13),=F'64' - MVC 92(4,13),4(11) ==> buffer - ST 6,96(13) ==> idx - A 6,=F'1' ==> idx - ST 9,100(13) ==> maxlen - LA 1,88(,13) - LA 15,0(7) ==> out - BALR 14,15 - LR 2,3 ==> l - A 3,=F'1' ==> l - CL 2,128(13) ==> l,width - BL @@L286 - L 14,=A(@@L324) - BR 14 -@@L287 EQU * - A 8,=F'4' ==> va - LR 2,8 ==> va - A 2,=F'-4' - L 3,0(2) ==> p - ST 3,88(13) ==> p - LA 1,88(,13) - L 15,=A(@@4) - BALR 14,15 - LR 5,15 ==> l - LR 2,4 ==> flags - N 2,=F'1024' - LTR 2,2 - BE @@L288 - L 2,132(13) ==> precision - CLR 2,15 ==> precision,l - BNH @@L289 - LR 2,15 ==> precision,l -@@L289 EQU * - LR 5,2 ==> l,precision -@@L288 EQU * - LR 2,4 ==> flags - N 2,=F'2' - LTR 2,2 - BNE @@L290 - LR 2,5 ==> l - A 5,=F'1' ==> l - CL 2,128(13) ==> l,width - BNL @@L290 -@@L294 EQU * - MVC 88(4,13),=F'64' - MVC 92(4,13),4(11) ==> buffer - ST 6,96(13) ==> idx - A 6,=F'1' ==> idx - ST 9,100(13) ==> maxlen - LA 1,88(,13) - LA 15,0(7) ==> out - BALR 14,15 - LR 2,5 ==> l - A 5,=F'1' ==> l - CL 2,128(13) ==> l,width - BL @@L294 -@@L290 EQU * - IC 2,0(3) ==> p - CLM 2,1,=XL1'00' - BE @@L296 - LR 2,4 ==> flags - N 2,=F'1024' - LTR 2,2 - BE @@L299 - L 15,132(13) ==> precision - BCTR 15,0 - ST 15,132(13) ==> precision - L 2,=F'-1' - CLR 15,2 - BE @@L296 -@@L299 EQU * - SLR 2,2 - IC 2,0(3) ==> p - ST 2,88(13) - A 3,=F'1' ==> p - MVC 92(4,13),4(11) ==> buffer - ST 6,96(13) ==> idx - A 6,=F'1' ==> idx - ST 9,100(13) ==> maxlen - LA 1,88(,13) - LA 15,0(7) ==> out - BALR 14,15 - IC 2,0(3) ==> p - CLM 2,1,=XL1'00' - BE @@L296 - LR 2,4 ==> flags - N 2,=F'1024' - LTR 2,2 - BE @@L299 - L 15,132(13) ==> precision - BCTR 15,0 - ST 15,132(13) ==> precision - L 2,=F'-1' - CLR 15,2 - BNE @@L299 -@@L296 EQU * - LR 2,4 ==> flags - N 2,=F'2' - LTR 2,2 - BE @@L324 - LR 2,5 ==> l - A 5,=F'1' ==> l - CL 2,128(13) ==> l,width - BNL @@L324 -@@L304 EQU * - MVC 88(4,13),=F'64' - MVC 92(4,13),4(11) ==> buffer - ST 6,96(13) ==> idx - A 6,=F'1' ==> idx - ST 9,100(13) ==> maxlen - LA 1,88(,13) - LA 15,0(7) ==> out - BALR 14,15 - LR 2,5 ==> l - A 5,=F'1' ==> l - CL 2,128(13) ==> l,width - BL @@L304 - B @@L324 -@@L305 EQU * - ST 7,88(13) ==> out - MVC 92(4,13),4(11) ==> buffer - ST 6,96(13) ==> idx - ST 9,100(13) ==> maxlen - A 8,=F'4' ==> va - LR 2,8 ==> va - A 2,=F'-4' - MVC 104(4,13),0(2) - MVC 108(4,13),=F'0' - MVC 112(4,13),=F'16' - MVC 116(4,13),132(13) ==> precision - MVC 120(4,13),=F'8' - O 4,=F'33' ==> flags -@@L328 EQU * - ST 4,124(13) ==> flags - LA 1,88(,13) - L 15,=A(@@8) - BALR 14,15 -@@L326 EQU * - LR 6,15 ==> idx - B @@L324 -@@L306 EQU * - MVC 88(4,13),=F'108' - B @@L323 -@@L307 EQU * - L 2,12(11) -@@L327 EQU * - SLR 3,3 - IC 3,0(2) - ST 3,88(13) -@@L323 EQU * - MVC 92(4,13),4(11) ==> buffer - ST 6,96(13) ==> idx - A 6,=F'1' ==> idx - ST 9,100(13) ==> maxlen - LA 1,88(,13) - LA 15,0(7) ==> out - BALR 14,15 -@@L324 EQU * - L 2,12(11) - A 2,=F'1' - ST 2,12(11) - L 2,12(11) - IC 2,0(2) - CLM 2,1,=XL1'00' - BNE @@L309 -@@L313 EQU * - MVC 88(4,13),=F'0' - MVC 92(4,13),4(11) ==> buffer - LR 2,9 ==> idx,maxlen - BCTR 2,0 ==> idx - CLR 6,9 ==> idx,maxlen - BNL @@L311 - LR 2,6 ==> idx -@@L311 EQU * - ST 2,96(13) ==> idx - ST 9,100(13) ==> maxlen - LA 1,88(,13) - LA 15,0(7) ==> out - BALR 14,15 - LR 15,6 ==> idx -* Function '_vsnprintf' epilogue - PDPEPIL -* Function '_vsnprintf' literal pool - DS 0D - LTORG -* Function '_vsnprintf' page table -@@PGT11 DS 0F - DC A(@@PG11) -* Program data area - DS 0F -@@13 EQU * - DC A(@@0) - DC A(@@1) - DC A(@@2) - DC A(@@3) - DC A(@@4) - DC A(@@5) - DC A(@@6) - DC A(@@7) - DC A(@@8) - DC A(@@9) - DC A(@@10) - DC A(@@12) -* X-var __prtfx - ENTRY @@PRTFX - DS 0F -@@PRTFX EQU * - DC A(@@13) - END diff --git a/src/crent370/clib/@@pswkey.c b/src/crent370/clib/@@pswkey.c deleted file mode 100644 index e9483c2..0000000 --- a/src/crent370/clib/@@pswkey.c +++ /dev/null @@ -1,26 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__pswkey'"); -int __pswkey(unsigned char *savekey) -{ - int rc = 0; - - if (!__auth()) return EPERM; /* operation not permitted */ - - if (__issup()) { - /* get current PSW key */ - __asm__("IPK\t0\n\tSTC\t2,0(,%0)" : : "r"(savekey) : "2"); - goto quit; - } - - /* switch to supervisor mode */ - __super(PSWKEYNONE, savekey); - - /* switch back to problem mode */ - __prob(PSWKEYNONE, (void*)0); - -quit: - return rc; -} diff --git a/src/crent370/clib/@@pswkey.o b/src/crent370/clib/@@pswkey.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@pswkey.s b/src/crent370/clib/@@pswkey.s deleted file mode 100644 index af5534c..0000000 --- a/src/crent370/clib/@@pswkey.s +++ /dev/null @@ -1,78 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@pswkey.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__pswkey' -* Program text area - DS 0F - EJECT -* external function '__pswkey' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC '__pswkey' -@@PSWKEY PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__pswkey' code - L 3,0(11) ==> savekey - LA 1,88(,13) - L 15,=V(@@AUTH) - BALR 14,15 - LA 2,1(0,0) ==> rc - LTR 15,15 ==> rc - BE @@L1 - LA 1,88(,13) - L 15,=V(@@ISSUP) - BALR 14,15 - LTR 15,15 ==> rc - BE @@L3 - IPK 0 - STC 2,0(,3) ==> savekey - B @@L4 -@@L3 EQU * - MVC 88(4,13),=F'255' - ST 3,92(13) ==> savekey - LA 1,88(,13) - L 15,=V(@@SUPER) - BALR 14,15 - MVC 88(4,13),=F'255' - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@PROB) - BALR 14,15 -@@L4 EQU * - SLR 2,2 ==> rc -@@L1 EQU * - LR 15,2 ==> rc -* Function '__pswkey' epilogue - PDPEPIL -* Function '__pswkey' literal pool - DS 0D - LTORG -* Function '__pswkey' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@rdjfcb.c b/src/crent370/clib/@@rdjfcb.c deleted file mode 100644 index 85a8e27..0000000 --- a/src/crent370/clib/@@rdjfcb.c +++ /dev/null @@ -1,32 +0,0 @@ -/* @@RDJFCB.C - read job file control block for DCB */ -#include "osjfcb.h" - -int -__rdjfcb(DCB *dcb, JFCB *jfcb) -{ - int rc = -1; - unsigned newlist = 0x87000000 | ((unsigned)jfcb & 0x00FFFFFF); - unsigned plist = 0x80000000; - unsigned exlst; - - if (!dcb) goto quit; - if (!jfcb) goto quit; - - exlst = (unsigned)dcb->dcbexlst; - dcb->dcbexlst = (void*) ((exlst & 0xFF000000) | (unsigned)&newlist); - - __asm__("RDJFCB ((%1)),MF=(E,(%2))\n" -" ST 15,%0" - : "=m"(rc) - : "r"(dcb), "r"(&plist) - : "1", "14", "15" ); - - dcb->dcbexlst = (void*)exlst; - -quit: - return rc; -} -#if 0 -__asm__("\n" -"EX1 RDJFCB (0),MF=L"); -#endif diff --git a/src/crent370/clib/@@rdjfcb.o b/src/crent370/clib/@@rdjfcb.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@rdjfcb.s b/src/crent370/clib/@@rdjfcb.s deleted file mode 100644 index cd7dc7d..0000000 --- a/src/crent370/clib/@@rdjfcb.s +++ /dev/null @@ -1,70 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@rdjfcb.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__rdjfcb' prologue -* frame base=88, local stack=16, call args=0 -&FUNC SETC '__rdjfcb' -@@RDJFCB PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__rdjfcb' code - L 5,0(11) ==> dcb - L 3,4(11) ==> jfcb - MVC 92(4,13),=F'-1' - LR 2,3 ==> jfcb - N 2,=F'16777215' - O 2,=F'-2030043136' - ST 2,88(13) - MVC 96(4,13),=F'-2147483648' - LTR 5,5 ==> dcb - BE @@L3 - LTR 3,3 ==> jfcb - BE @@L3 - L 4,36(5) ==> exlst,dcbexlst - LR 3,4 ==> exlst - N 3,=F'-16777216' - LA 2,88(,13) - OR 3,2 - ST 3,36(5) ==> .dcbexlst - LA 2,96(,13) - RDJFCB ((5)),MF=(E,(2)) ==> dcb - ST 15,92(13) - ST 4,36(5) ==> exlst,dcbexlst -@@L3 EQU * - L 15,92(13) -* Function '__rdjfcb' epilogue - PDPEPIL -* Function '__rdjfcb' literal pool - DS 0D - LTORG -* Function '__rdjfcb' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@reopen.c b/src/crent370/clib/@@reopen.c deleted file mode 100644 index 2934dc0..0000000 --- a/src/crent370/clib/@@reopen.c +++ /dev/null @@ -1,91 +0,0 @@ -/* @@REOPEN.C */ -#include -#include -#include -#include "clibcrt.h" -#include "cliblock.h" -#include "clibary.h" - -FILE * -__reopen(const char *fn, const char *mode, FILE *fp) -{ - CLIBGRT *grt = __grtget(); - int err = 1; - int dynamic = 0; - unsigned count; - FILE *f; - - if (!fp) goto quit; - if (!(fp->flags & _FILE_FLAG_OPEN)) goto quit; - - if (fp->flags & _FILE_FLAG_OPEN) { - /* flush any pending data to disk */ - fflush(fp); - } - - /* open "new" file handle */ - f = fopen(fn, mode); - if (!f) { - /* set error indicator, keep file open */ - fp->flags |= _FILE_FLAG_ERROR; - fp = NULL; /* indicate failure */ - goto quit; - } - - /* success, copy "new" file handle into "old" file handle */ - if (fp->flags & _FILE_FLAG_OPEN) __aclose(fp->dcb); - fp->dcb = f->dcb; - f->dcb = 0; - fp->asmbuf = f->asmbuf; - f->asmbuf = 0; - fp->lrecl = f->lrecl; - fp->blksize = f->blksize; - fp->filepos = f->filepos; - - if (fp->buf) free(fp->buf); - fp->buf = f->buf; - f->buf = 0; - fp->upto = f->upto; - f->upto = 0; - fp->endbuf = f->endbuf; - f->endbuf = 0; - - if (fp->flags & _FILE_FLAG_DYNAMIC) { - /* if same DDNAME, then don't free the old dd allocation */ - if (strcmp(fp->ddname, f->ddname)!=0) { - /* different DDNAME */ - /* deallocate dd for the old file handle */ - __fpfree(fp); - } - else { - dynamic = 1; /* same DD, so force dynamic flag on */ - } - } - - fp->flags = f->flags; - if (dynamic) fp->flags |= _FILE_FLAG_DYNAMIC; - f->flags = 0; - fp->recfm = f->recfm; - memcpy(fp->ddname, f->ddname, sizeof(fp->ddname)); - memcpy(fp->member, f->member, sizeof(fp->member)); - memcpy(fp->dataset, f->dataset, sizeof(fp->dataset)); - memcpy(fp->mode, f->mode, sizeof(fp->mode)); - - /* remove "new" file handle from array of open file handles */ - lock(&grt->grtfile,0); - count = arraycount(&grt->grtfile); - while(count > 0) { - count--; - if (grt->grtfile[count]==f) { - arraydel(&grt->grtfile, count+1); - break; - } - } - unlock(&grt->grtfile,0); - - /* free "new" file handle (f) storage */ - free(f); - -quit: - return (fp); -} diff --git a/src/crent370/clib/@@reopen.o b/src/crent370/clib/@@reopen.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@reopen.s b/src/crent370/clib/@@reopen.s deleted file mode 100644 index 1507b39..0000000 --- a/src/crent370/clib/@@reopen.s +++ /dev/null @@ -1,222 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@reopen.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__reopen' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__reopen' -@@REOPEN PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__reopen' code - L 3,8(11) ==> fp - LA 1,88(,13) - L 15,=V(@@GRTGET) - BALR 14,15 - LR 6,15 ==> grt - SLR 5,5 ==> dynamic - LTR 3,3 ==> fp - BE @@L3 - LH 2,40(3) ==> .flags - N 2,=F'16384' - CH 2,=H'0' - BE @@L3 - ST 3,88(13) ==> fp - LA 1,88(,13) - L 15,=V(FFLUSH) - BALR 14,15 - MVC 88(4,13),0(11) ==> fn - MVC 92(4,13),4(11) ==> mode - LA 1,88(,13) - L 15,=V(FOPEN) - BALR 14,15 - LR 4,15 ==> f - LTR 15,15 ==> f - BNE @@L6 - OC 40(2,3),=H'2' ==> .flags - LR 3,15 ==> fp,f - B @@L3 -@@L6 EQU * - LH 2,40(3) ==> .flags - N 2,=F'16384' - CH 2,=H'0' - BE @@L7 - MVC 88(4,13),8(3) ==> .dcb - LA 1,88(,13) - L 15,=V(@@ACLOSE) - BALR 14,15 -@@L7 EQU * - MVC 8(4,3),8(4) ==> .dcb - MVC 8(4,4),=F'0' ==> .dcb - MVC 12(4,3),12(4) ==> .asmbuf - MVC 12(4,4),=F'0' ==> .asmbuf - MVC 16(2,3),16(4) ==> .lrecl - MVC 18(2,3),18(4) ==> .blksize - MVC 24(4,3),24(4) ==> .filepos - L 2,28(3) ==> .buf - LTR 2,2 - BE @@L8 - ST 2,88(13) - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L8 EQU * - MVC 28(4,3),28(4) ==> .buf - MVC 28(4,4),=F'0' ==> .buf - MVC 32(4,3),32(4) ==> .upto - MVC 32(4,4),=F'0' ==> .upto - MVC 36(4,3),36(4) ==> .endbuf - MVC 36(4,4),=F'0' ==> .endbuf - LH 2,40(3) ==> .flags - N 2,=F'-32768' - CH 2,=H'0' - BE @@L9 - LR 2,3 ==> fp - A 2,=F'43' - ST 2,88(13) - LR 2,4 ==> f - A 2,=F'43' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(STRCMP) - BALR 14,15 - LTR 15,15 ==> grt - BE @@L10 - ST 3,88(13) ==> fp - LA 1,88(,13) - L 15,=V(@@FPFREE) - BALR 14,15 - B @@L9 -@@L19 EQU * - LR 2,6 ==> grt - A 2,=F'24' - ST 2,88(13) - LR 2,15 ==> count - A 2,=F'1' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@ARDEL) - BALR 14,15 - B @@L14 -@@L10 EQU * - LA 5,1(0,0) ==> dynamic -@@L9 EQU * - MVC 40(2,3),40(4) ==> .flags - LTR 5,5 ==> dynamic - BE @@L12 - OC 40(2,3),=H'-32768' ==> .flags -@@L12 EQU * - MVC 40(2,4),=H'0' ==> .flags - MVC 42(1,3),42(4) ==> .recfm - LR 2,3 ==> fp - A 2,=F'43' - ST 2,88(13) - LR 2,4 ==> f - A 2,=F'43' - ST 2,92(13) - MVC 96(4,13),=F'9' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - LR 2,3 ==> fp - A 2,=F'52' - ST 2,88(13) - LR 2,4 ==> f - A 2,=F'52' - ST 2,92(13) - MVC 96(4,13),=F'9' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - LR 2,3 ==> fp - A 2,=F'61' - ST 2,88(13) - LR 2,4 ==> f - A 2,=F'61' - ST 2,92(13) - MVC 96(4,13),=F'45' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - LR 2,3 ==> fp - A 2,=F'106' - ST 2,88(13) - LR 2,4 ==> f - A 2,=F'106' - ST 2,92(13) - MVC 96(4,13),=F'86' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - LR 2,6 ==> grt - A 2,=F'24' - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LTR 15,15 ==> count - BE @@L14 - L 5,24(6) ==> .grtfile -@@L17 EQU * - BCTR 15,0 ==> count - LR 2,15 ==> count - MH 2,=H'4' - L 2,0(2,5) - CLR 2,4 ==> f - BE @@L19 - LTR 15,15 ==> count - BNE @@L17 -@@L14 EQU * - LR 2,6 ==> grt - A 2,=F'24' - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - ST 4,88(13) ==> f - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L3 EQU * - LR 15,3 ==> fp -* Function '__reopen' epilogue - PDPEPIL -* Function '__reopen' literal pool - DS 0D - LTORG -* Function '__reopen' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@sigdfl.c b/src/crent370/clib/@@sigdfl.c deleted file mode 100644 index 735e62a..0000000 --- a/src/crent370/clib/@@sigdfl.c +++ /dev/null @@ -1,27 +0,0 @@ -/*********************************************************************/ -/* */ -/* This Program Written by Paul Edwards. */ -/* Released to the Public Domain */ -/* */ -/*********************************************************************/ -/*********************************************************************/ -/* */ -/* signal.c - implementation of stuff in signal.h */ -/* */ -/*********************************************************************/ - -#include "signal.h" -#include "stdlib.h" -#include "stddef.h" - -extern void (*__sighdl[])(int); - -__PDPCLIB_API__ void __sigdfl(int sig) -{ - __sighdl[sig] = SIG_DFL; - if (sig == SIGABRT) - { - exit(EXIT_FAILURE); - } - return; -} diff --git a/src/crent370/clib/@@sigdfl.o b/src/crent370/clib/@@sigdfl.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@sigdfl.s b/src/crent370/clib/@@sigdfl.s deleted file mode 100644 index 8f9dae8..0000000 --- a/src/crent370/clib/@@sigdfl.s +++ /dev/null @@ -1,60 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@sigdfl.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__sigdfl' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC '__sigdfl' -@@SIGDFL PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__sigdfl' code - L 4,0(11) ==> sig - LR 3,4 ==> sig - MH 3,=H'4' - L 2,=V(@@SIGHDL) - L 5,=A(@@SIGDFL) - ST 5,0(3,2) ==> __sighdl - LA 2,1(0,0) - CLR 4,2 ==> sig - BNE @@L1 - MVC 88(4,13),=F'12' - LA 1,88(,13) - L 15,=V(EXIT) - BALR 14,15 -@@L1 EQU * -* Function '__sigdfl' epilogue - PDPEPIL -* Function '__sigdfl' literal pool - DS 0D - LTORG -* Function '__sigdfl' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@sigerr.c b/src/crent370/clib/@@sigerr.c deleted file mode 100644 index 1440e8c..0000000 --- a/src/crent370/clib/@@sigerr.c +++ /dev/null @@ -1,23 +0,0 @@ -/*********************************************************************/ -/* */ -/* This Program Written by Paul Edwards. */ -/* Released to the Public Domain */ -/* */ -/*********************************************************************/ -/*********************************************************************/ -/* */ -/* signal.c - implementation of stuff in signal.h */ -/* */ -/*********************************************************************/ - -#include "signal.h" -#include "stdlib.h" -#include "stddef.h" - -extern void (*__sighdl[])(int); - -__PDPCLIB_API__ void __sigerr(int sig) -{ - (void)sig; - return; -} diff --git a/src/crent370/clib/@@sigerr.o b/src/crent370/clib/@@sigerr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@sigerr.s b/src/crent370/clib/@@sigerr.s deleted file mode 100644 index c655c3c..0000000 --- a/src/crent370/clib/@@sigerr.s +++ /dev/null @@ -1,46 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@sigerr.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__sigerr' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__sigerr' -@@SIGERR PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__sigerr' code -* Function '__sigerr' epilogue - PDPEPIL -* Function '__sigerr' literal pool - DS 0D - LTORG -* Function '__sigerr' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@sighdl.c b/src/crent370/clib/@@sighdl.c deleted file mode 100644 index f15bcf5..0000000 --- a/src/crent370/clib/@@sighdl.c +++ /dev/null @@ -1,32 +0,0 @@ -/*********************************************************************/ -/* */ -/* This Program Written by Paul Edwards. */ -/* Released to the Public Domain */ -/* */ -/*********************************************************************/ -/*********************************************************************/ -/* */ -/* signal.c - implementation of stuff in signal.h */ -/* */ -/*********************************************************************/ - -#include "signal.h" -#include "stdlib.h" -#include "stddef.h" - -static __SIGHDL static_sighdl[] = { - __sigdfl, // unused - __sigdfl, // SIGABRT - __sigdfl, // SIGFPE - __sigdfl, // SIGILL - __sigdfl, // SIGINT - __sigdfl, // SIGSEGV - __sigdfl // SIGTERM -}; - -__SIGHDL *__sighdl(void) -{ - __SIGHDL *sighdl = (__SIGHDL*) __wsaget(static_sighdl, sizeof(static_sighdl)); - - return sighdl; -} diff --git a/src/crent370/clib/@@sighdl.o b/src/crent370/clib/@@sighdl.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@sighdl.s b/src/crent370/clib/@@sighdl.s deleted file mode 100644 index 25c3d6f..0000000 --- a/src/crent370/clib/@@sighdl.s +++ /dev/null @@ -1,61 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@sighdl.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program data area - DS 0F -@@0 EQU * - DC V(@@SIGDFL) - DC V(@@SIGDFL) - DC V(@@SIGDFL) - DC V(@@SIGDFL) - DC V(@@SIGDFL) - DC V(@@SIGDFL) - DC V(@@SIGDFL) -* Program text area - DS 0F - EJECT -* external function '__sighdl' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC '__sighdl' -@@SIGHDL PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__sighdl' code - MVC 88(4,13),=A(@@0) - MVC 92(4,13),=F'28' - LA 1,88(,13) - L 15,=V(@@WSAGET) - BALR 14,15 -* Function '__sighdl' epilogue - PDPEPIL -* Function '__sighdl' literal pool - DS 0D - LTORG -* Function '__sighdl' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@sigign.c b/src/crent370/clib/@@sigign.c deleted file mode 100644 index a781348..0000000 --- a/src/crent370/clib/@@sigign.c +++ /dev/null @@ -1,23 +0,0 @@ -/*********************************************************************/ -/* */ -/* This Program Written by Paul Edwards. */ -/* Released to the Public Domain */ -/* */ -/*********************************************************************/ -/*********************************************************************/ -/* */ -/* signal.c - implementation of stuff in signal.h */ -/* */ -/*********************************************************************/ - -#include "signal.h" -#include "stdlib.h" -#include "stddef.h" - -extern void (*__sighdl[])(int); - -__PDPCLIB_API__ void __sigign(int sig) -{ - (void)sig; - return; -} diff --git a/src/crent370/clib/@@sigign.o b/src/crent370/clib/@@sigign.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@sigign.s b/src/crent370/clib/@@sigign.s deleted file mode 100644 index f94d7cb..0000000 --- a/src/crent370/clib/@@sigign.s +++ /dev/null @@ -1,46 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@sigign.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__sigign' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__sigign' -@@SIGIGN PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__sigign' code -* Function '__sigign' epilogue - PDPEPIL -* Function '__sigign' literal pool - DS 0D - LTORG -* Function '__sigign' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@sl.c b/src/crent370/clib/@@sl.c deleted file mode 100644 index e0d7005..0000000 --- a/src/crent370/clib/@@sl.c +++ /dev/null @@ -1,20 +0,0 @@ -#include "clibenq.h" -#include "cliblock.h" -#include "clibio.h" - -__asm__("\n&FUNC SETC 'syslock'"); -int -syslock(void *thing, int read) -{ - unsigned opts = ENQ_SYSTEM | ENQ_HAVE; - char rname[SYSLOCKRNAMESZ]; -#if 0 - wtof("Function \"%s\" called lock() with %08X pointer", - __caller(0), thing); -#endif - if (read) opts |= ENQ_SHR; - - sprintf(rname, SYSLOCKRNAME, thing); - - return ENQ(SYSLOCKQNAME, rname, opts); -} diff --git a/src/crent370/clib/@@sl.o b/src/crent370/clib/@@sl.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@sl.s b/src/crent370/clib/@@sl.s deleted file mode 100644 index 83c15ad..0000000 --- a/src/crent370/clib/@@sl.s +++ /dev/null @@ -1,74 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@sl.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'syslock' -* Program text area - DS 0F - EJECT -* external function 'syslock' prologue -* frame base=88, local stack=24, call args=16 -&FUNC SETC 'syslock' -@@SL PDPPRLG CINDEX=0,FRAME=128,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'syslock' code - LA 3,1(0,0) ==> opts - L 2,4(11) ==> read - LTR 2,2 ==> read - BE @@L2 - LA 3,5(0,0) ==> opts -@@L2 EQU * - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC0) - MVC 96(4,13),0(11) ==> thing - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - MVC 88(4,13),=A(@@LC1) - ST 2,92(13) - ST 3,96(13) ==> opts - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@ENQDEQ) - BALR 14,15 -* Function 'syslock' epilogue - PDPEPIL -* Function 'syslock' literal pool - DS 0D - LTORG -* Function 'syslock' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'G.LOCK.%08X' - DC X'0' -@@LC1 EQU * - DC C'CSYSLOCK' - DC X'0' - END diff --git a/src/crent370/clib/@@sltest.c b/src/crent370/clib/@@sltest.c deleted file mode 100644 index 75dc104..0000000 --- a/src/crent370/clib/@@sltest.c +++ /dev/null @@ -1,17 +0,0 @@ -#include "clibenq.h" -#include "cliblock.h" - -__asm__("\n&FUNC SETC 'systestlock'"); -int -systestlock(void *thing, int read) -{ - unsigned opts = ENQ_SYSTEM | ENQ_TEST; - char rname[SYSLOCKRNAMESZ]; - - if (read) opts |= ENQ_SHR; - - sprintf(rname, SYSLOCKRNAME, thing); - - return ENQ(SYSLOCKQNAME, rname, opts); - /* 0==resource is not locked */ -} diff --git a/src/crent370/clib/@@sltest.o b/src/crent370/clib/@@sltest.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@sltest.s b/src/crent370/clib/@@sltest.s deleted file mode 100644 index 6bf203c..0000000 --- a/src/crent370/clib/@@sltest.s +++ /dev/null @@ -1,74 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@sltest.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'systestlock' -* Program text area - DS 0F - EJECT -* external function 'systestlock' prologue -* frame base=88, local stack=24, call args=16 -&FUNC SETC 'systestlock' -@@SLTEST PDPPRLG CINDEX=0,FRAME=128,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'systestlock' code - LA 3,129(0,0) ==> opts - L 2,4(11) ==> read - LTR 2,2 ==> read - BE @@L2 - LA 3,133(0,0) ==> opts -@@L2 EQU * - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC0) - MVC 96(4,13),0(11) ==> thing - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - MVC 88(4,13),=A(@@LC1) - ST 2,92(13) - ST 3,96(13) ==> opts - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@ENQDEQ) - BALR 14,15 -* Function 'systestlock' epilogue - PDPEPIL -* Function 'systestlock' literal pool - DS 0D - LTORG -* Function 'systestlock' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'G.LOCK.%08X' - DC X'0' -@@LC1 EQU * - DC C'CSYSLOCK' - DC X'0' - END diff --git a/src/crent370/clib/@@sltry.c b/src/crent370/clib/@@sltry.c deleted file mode 100644 index 5c9eb89..0000000 --- a/src/crent370/clib/@@sltry.c +++ /dev/null @@ -1,17 +0,0 @@ -#include "clibenq.h" -#include "cliblock.h" - -__asm__("\n&FUNC SETC 'systrylock'"); -int -systrylock(void *thing, int read) -{ - unsigned opts = ENQ_SYSTEM | ENQ_USE; - char rname[SYSLOCKRNAMESZ]; - - if (read) opts |= ENQ_SHR; - - sprintf(rname, SYSLOCKRNAME, thing); - - return ENQ(SYSLOCKQNAME, rname, opts); - /* 0==resource locked */ -} diff --git a/src/crent370/clib/@@sltry.o b/src/crent370/clib/@@sltry.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@sltry.s b/src/crent370/clib/@@sltry.s deleted file mode 100644 index 3c80ebc..0000000 --- a/src/crent370/clib/@@sltry.s +++ /dev/null @@ -1,74 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@sltry.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'systrylock' -* Program text area - DS 0F - EJECT -* external function 'systrylock' prologue -* frame base=88, local stack=24, call args=16 -&FUNC SETC 'systrylock' -@@SLTRY PDPPRLG CINDEX=0,FRAME=128,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'systrylock' code - LA 3,65(0,0) ==> opts - L 2,4(11) ==> read - LTR 2,2 ==> read - BE @@L2 - LA 3,69(0,0) ==> opts -@@L2 EQU * - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC0) - MVC 96(4,13),0(11) ==> thing - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - MVC 88(4,13),=A(@@LC1) - ST 2,92(13) - ST 3,96(13) ==> opts - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@ENQDEQ) - BALR 14,15 -* Function 'systrylock' epilogue - PDPEPIL -* Function 'systrylock' literal pool - DS 0D - LTORG -* Function 'systrylock' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'G.LOCK.%08X' - DC X'0' -@@LC1 EQU * - DC C'CSYSLOCK' - DC X'0' - END diff --git a/src/crent370/clib/@@slunlk.c b/src/crent370/clib/@@slunlk.c deleted file mode 100644 index 98575ab..0000000 --- a/src/crent370/clib/@@slunlk.c +++ /dev/null @@ -1,14 +0,0 @@ -#include "clibenq.h" -#include "cliblock.h" - -__asm__("\n&FUNC SETC 'sysunlock'"); -int -sysunlock(void *thing, int read) -{ - unsigned opts = ENQ_SYSTEM | ENQ_HAVE; - char rname[SYSLOCKRNAMESZ]; - - sprintf(rname, SYSLOCKRNAME, thing); - - return DEQ(SYSLOCKQNAME, rname, opts); -} diff --git a/src/crent370/clib/@@slunlk.o b/src/crent370/clib/@@slunlk.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@slunlk.s b/src/crent370/clib/@@slunlk.s deleted file mode 100644 index bad1185..0000000 --- a/src/crent370/clib/@@slunlk.s +++ /dev/null @@ -1,69 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@slunlk.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'sysunlock' -* Program text area - DS 0F - EJECT -* external function 'sysunlock' prologue -* frame base=88, local stack=24, call args=16 -&FUNC SETC 'sysunlock' -@@SLUNLK PDPPRLG CINDEX=0,FRAME=128,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'sysunlock' code - LA 3,1(0,0) ==> opts - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC0) - MVC 96(4,13),0(11) ==> thing - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - MVC 88(4,13),=A(@@LC1) - ST 2,92(13) - ST 3,96(13) ==> opts - ST 3,100(13) ==> opts - LA 1,88(,13) - L 15,=V(@@ENQDEQ) - BALR 14,15 -* Function 'sysunlock' epilogue - PDPEPIL -* Function 'sysunlock' literal pool - DS 0D - LTORG -* Function 'sysunlock' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'G.LOCK.%08X' - DC X'0' -@@LC1 EQU * - DC C'CSYSLOCK' - DC X'0' - END diff --git a/src/crent370/clib/@@smca.c b/src/crent370/clib/@@smca.c deleted file mode 100644 index 93abf68..0000000 --- a/src/crent370/clib/@@smca.c +++ /dev/null @@ -1,16 +0,0 @@ -/* @@smca.c -** return pointer to SMF control table or NULL if it doesn't exist. -*/ -#include "clibsmf.h" -#include "cvt.h" - -SMCA * -__smca(void) -{ - unsigned *psa = (unsigned *)0; /* PSA address */ - CVT *cvt = (CVT *)psa[16/4]; /* CVT address */ - SMCA *smca = (SMCA *)cvt->cvtsmca; /* SMF control table, CVTSMCA value */ - - return smca; -} - diff --git a/src/crent370/clib/@@smca.o b/src/crent370/clib/@@smca.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@smca.s b/src/crent370/clib/@@smca.s deleted file mode 100644 index 057dc96..0000000 --- a/src/crent370/clib/@@smca.s +++ /dev/null @@ -1,49 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@smca.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__smca' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__smca' -@@SMCA PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__smca' code - SLR 2,2 ==> psa - L 2,16(2) ==> cvt - L 15,196(2) ==> smca,cvtsmca -* Function '__smca' epilogue - PDPEPIL -* Function '__smca' literal pool - DS 0D - LTORG -* Function '__smca' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@smfid.c b/src/crent370/clib/@@smfid.c deleted file mode 100644 index 14ecb72..0000000 --- a/src/crent370/clib/@@smfid.c +++ /dev/null @@ -1,21 +0,0 @@ -/* @@smfid.c -** return pointer to SMFID or NULL if SMF does not exist. -*/ -#include "clibsmf.h" - -extern const unsigned char * -__smfid(void) -{ - SMCA *smca = __smca(); /* SMF control table, CVTSMCA value */ - unsigned char *result = (unsigned char *)0; - - if (smca) { - result = smca->smcasid; /* SMFID is located in the smca->smcaasid 4 character variable */ - } - - return result; -} -#if 0 -__asm__( "IEESMCA ,\n\t" ); -#endif - diff --git a/src/crent370/clib/@@smfid.o b/src/crent370/clib/@@smfid.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@smfid.s b/src/crent370/clib/@@smfid.s deleted file mode 100644 index f60fd35..0000000 --- a/src/crent370/clib/@@smfid.s +++ /dev/null @@ -1,56 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@smfid.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__smfid' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__smfid' -@@SMFID PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__smfid' code - LA 1,88(,13) - L 15,=V(@@SMCA) - BALR 14,15 - SLR 2,2 ==> result - LTR 15,15 ==> smca - BE @@L2 - LR 2,15 ==> result,smca - A 2,=F'16' ==> result -@@L2 EQU * - LR 15,2 ==> result -* Function '__smfid' epilogue - PDPEPIL -* Function '__smfid' literal pool - DS 0D - LTORG -* Function '__smfid' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@soadd.c b/src/crent370/clib/@@soadd.c deleted file mode 100644 index f668b03..0000000 --- a/src/crent370/clib/@@soadd.c +++ /dev/null @@ -1,32 +0,0 @@ -/* @@SOADD.C */ -#include -#include -#include -#include "clibcrt.h" -#include "clibary.h" -#include "clibsock.h" -#include "cliblock.h" - -int -__soadd(int ss, void *name, void *peer) -{ - int rc = -1; - CLIBGRT *grt = __grtget(); - CLIBSOCK *s = calloc(1, sizeof(CLIBSOCK)); - - if (!s) goto quit; - - strcpy(s->eye, CLIBSOCK_EYE); - s->socket = ss; - if (name) memcpy(s->name, name, sizeof(s->name)); - if (peer) memcpy(s->peer, peer, sizeof(s->peer)); -#if 0 - wtodumpf(s, sizeof(CLIBSOCK), "__soadd()"); -#endif - lock(&grt->grtsock,0); - arrayadd(&grt->grtsock, s); - unlock(&grt->grtsock,0); - -quit: - return rc; -} diff --git a/src/crent370/clib/@@soadd.o b/src/crent370/clib/@@soadd.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@soadd.s b/src/crent370/clib/@@soadd.s deleted file mode 100644 index 08b84ec..0000000 --- a/src/crent370/clib/@@soadd.s +++ /dev/null @@ -1,110 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@soadd.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__soadd' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__soadd' -@@SOADD PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__soadd' code - L 5,4(11) ==> name - L 6,8(11) ==> peer - LA 1,88(,13) - L 15,=V(@@GRTGET) - BALR 14,15 - LR 4,15 ==> grt - MVC 88(4,13),=F'1' - MVC 92(4,13),=F'48' - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 3,15 ==> s - LTR 15,15 ==> s - BE @@L3 - ST 15,88(13) ==> s - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - MVC 8(4,3),0(11) ==> .socket,ss - LTR 5,5 ==> name - BE @@L4 - LR 2,3 ==> s - A 2,=F'16' - ST 2,88(13) - ST 5,92(13) ==> name - MVC 96(4,13),=F'16' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 -@@L4 EQU * - LTR 6,6 ==> peer - BE @@L5 - LR 2,3 ==> s - A 2,=F'32' - ST 2,88(13) - ST 6,92(13) ==> peer - MVC 96(4,13),=F'16' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 -@@L5 EQU * - LR 2,4 ==> grt - A 2,=F'28' - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - ST 2,88(13) - ST 3,92(13) ==> s - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L3 EQU * - L 15,=F'-1' -* Function '__soadd' epilogue - PDPEPIL -* Function '__soadd' literal pool - DS 0D - LTORG -* Function '__soadd' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'CLIBSOCK' - DC X'0' - END diff --git a/src/crent370/clib/@@sodel.c b/src/crent370/clib/@@sodel.c deleted file mode 100644 index 71f0137..0000000 --- a/src/crent370/clib/@@sodel.c +++ /dev/null @@ -1,33 +0,0 @@ -/* @@SODEL.C */ -#include -#include -#include -#include "clibcrt.h" -#include "clibary.h" -#include "clibsock.h" -#include "cliblock.h" - -int -__sodel(int ss) -{ - int rc = 0; - CLIBGRT *grt = __grtget(); - unsigned count; - unsigned n; - - lock(&grt->grtsock,0); - count = arraycount(&grt->grtsock); - for(n=0; n < count; n++) { - CLIBSOCK *p = grt->grtsock[n]; - if (!p) continue; - if (p->socket==ss) { - arraydel(&grt->grtsock, n+1); - free(p); - break; - } - } - unlock(&grt->grtsock,0); - -quit: - return rc; -} diff --git a/src/crent370/clib/@@sodel.o b/src/crent370/clib/@@sodel.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@sodel.s b/src/crent370/clib/@@sodel.s deleted file mode 100644 index 1e04624..0000000 --- a/src/crent370/clib/@@sodel.s +++ /dev/null @@ -1,104 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@sodel.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__sodel' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC '__sodel' -@@SODEL PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__sodel' code - L 7,0(11) ==> ss - SLR 6,6 ==> rc - LA 1,88(,13) - L 15,=V(@@GRTGET) - BALR 14,15 - LR 5,15 ==> grt - LR 2,15 ==> grt - A 2,=F'28' - ST 2,88(13) - ST 6,92(13) ==> rc - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 4,6 ==> n,rc - CLR 6,15 ==> rc,count - BNL @@L3 -@@L8 EQU * - L 3,28(5) ==> .grtsock - LR 2,4 ==> n - MH 2,=H'4' - L 3,0(2,3) ==> p - LTR 3,3 ==> p - BE @@L4 - L 2,8(3) ==> .socket - CLR 2,7 ==> ss - BNE @@L4 - LR 2,5 ==> grt - A 2,=F'28' - ST 2,88(13) - LR 2,4 ==> n - A 2,=F'1' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@ARDEL) - BALR 14,15 - ST 3,88(13) ==> p - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - B @@L3 -@@L4 EQU * - A 4,=F'1' ==> n - CLR 4,15 ==> n,count - BL @@L8 -@@L3 EQU * - LR 2,5 ==> grt - A 2,=F'28' - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L9 EQU * - LR 15,6 ==> rc -* Function '__sodel' epilogue - PDPEPIL -* Function '__sodel' literal pool - DS 0D - LTORG -* Function '__sodel' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@sofind.c b/src/crent370/clib/@@sofind.c deleted file mode 100644 index 551a803..0000000 --- a/src/crent370/clib/@@sofind.c +++ /dev/null @@ -1,33 +0,0 @@ -/* @@SOFIND.C - returns index of found socket or 0 if not found */ -#include -#include -#include -#include "clibcrt.h" -#include "clibary.h" -#include "clibsock.h" -#include "cliblock.h" - -int -__sofind(int ss, CLIBSOCK **s) -{ - int rc = 0; - CLIBGRT *grt = __grtget(); - unsigned count; - unsigned n; - - lock(&grt->grtsock,1); - count = arraycount(&grt->grtsock); - for(n=0; n < count; n++) { - CLIBSOCK *p = grt->grtsock[n]; - if (!p) continue; - if (p->socket==ss) { - if (s) *s = p; - rc = (int) n+1; - break; - } - } - unlock(&grt->grtsock,1); - -quit: - return rc; -} diff --git a/src/crent370/clib/@@sofind.o b/src/crent370/clib/@@sofind.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@sofind.s b/src/crent370/clib/@@sofind.s deleted file mode 100644 index 09cbc1d..0000000 --- a/src/crent370/clib/@@sofind.s +++ /dev/null @@ -1,98 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@sofind.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__sofind' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC '__sofind' -@@SOFIND PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__sofind' code - L 7,0(11) ==> ss - L 8,4(11) ==> s - SLR 6,6 ==> rc - LA 1,88(,13) - L 15,=V(@@GRTGET) - BALR 14,15 - LR 5,15 ==> grt - LR 2,15 ==> grt - A 2,=F'28' - ST 2,88(13) - MVC 92(4,13),=F'1' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 4,6 ==> n,rc - CLR 6,15 ==> rc,count - BNL @@L3 -@@L9 EQU * - L 3,28(5) ==> .grtsock - LR 2,4 ==> n - MH 2,=H'4' - L 3,0(2,3) ==> p - LTR 3,3 ==> p - BE @@L4 - L 2,8(3) ==> .socket - CLR 2,7 ==> ss - BNE @@L4 - LTR 8,8 ==> s - BE @@L8 - ST 3,0(8) ==> p,s -@@L8 EQU * - LR 6,4 ==> rc,n - A 6,=F'1' ==> rc - B @@L3 -@@L4 EQU * - A 4,=F'1' ==> n - CLR 4,15 ==> n,count - BL @@L9 -@@L3 EQU * - LR 2,5 ==> grt - A 2,=F'28' - ST 2,88(13) - MVC 92(4,13),=F'1' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L10 EQU * - LR 15,6 ==> rc -* Function '__sofind' epilogue - PDPEPIL -* Function '__sofind' literal pool - DS 0D - LTORG -* Function '__sofind' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@soupd.c b/src/crent370/clib/@@soupd.c deleted file mode 100644 index c6ad41c..0000000 --- a/src/crent370/clib/@@soupd.c +++ /dev/null @@ -1,28 +0,0 @@ -/* @@SOUPD.C */ -#include -#include -#include -#include "clibary.h" -#include "clibsock.h" -#include "cliblock.h" - -int -__soupd(int ss, void *name, void *peer) -{ - int rc = 0; - CLIBSOCK *s = 0; - - if (!__sofind(ss,&s)) { - /* not found, convert to add */ - rc = __soadd(ss, name, peer); - goto quit; - } -#if 0 - wtodumpf(s, sizeof(CLIBSOCK), "__soupd()"); -#endif - if (name) memcpy(s->name, name, sizeof(s->name)); - if (peer) memcpy(s->peer, peer, sizeof(s->peer)); - -quit: - return rc; -} diff --git a/src/crent370/clib/@@soupd.o b/src/crent370/clib/@@soupd.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@soupd.s b/src/crent370/clib/@@soupd.s deleted file mode 100644 index 573c653..0000000 --- a/src/crent370/clib/@@soupd.s +++ /dev/null @@ -1,91 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@soupd.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__soupd' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__soupd' -@@SOUPD PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__soupd' code - L 6,0(11) ==> ss - L 3,4(11) ==> name - L 5,8(11) ==> peer - SLR 4,4 ==> rc - ST 4,104(13) ==> rc - ST 6,88(13) ==> ss - LA 2,104(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@SOFIND) - BALR 14,15 - LTR 15,15 ==> rc - BNE @@L2 - ST 6,88(13) ==> ss - ST 3,92(13) ==> name - ST 5,96(13) ==> peer - LA 1,88(,13) - L 15,=V(@@SOADD) - BALR 14,15 - LR 4,15 ==> rc - B @@L3 -@@L2 EQU * - LTR 3,3 ==> name - BE @@L4 - L 2,104(13) - A 2,=F'16' - ST 2,88(13) - ST 3,92(13) ==> name - MVC 96(4,13),=F'16' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 -@@L4 EQU * - LTR 5,5 ==> peer - BE @@L3 - L 2,104(13) - A 2,=F'32' - ST 2,88(13) - ST 5,92(13) ==> peer - MVC 96(4,13),=F'16' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 -@@L3 EQU * - LR 15,4 ==> rc -* Function '__soupd' epilogue - PDPEPIL -* Function '__soupd' literal pool - DS 0D - LTORG -* Function '__soupd' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@ssfind.c b/src/crent370/clib/@@ssfind.c deleted file mode 100644 index aa68e71..0000000 --- a/src/crent370/clib/@@ssfind.c +++ /dev/null @@ -1,46 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC 'ssct_find'"); -SSCT *ssct_find(const char *name) -{ - unsigned *psa = (unsigned*) 0; - unsigned *cvt = (unsigned*) psa[16/4]; /* get CVT pointer from PSA */ - JESCT *jesct = (JESCT*) cvt[0x128/4]; /* get JESCT (CVTJESCT) */ - SSCT *ssct = (SSCT*) jesct->jesssct; /* get first subsystem */ - char name4[4]; - - if (!name) goto quit; /* return first subsystem */ - if (*name==0) goto quit; /* return first subsystem */ - if (*name==' ') goto quit; /* return first subsystem */ - - strcpyp(name4, sizeof(name4), (void*)name, ' '); - while(ssct) { - if (memcmp(ssct->ssctsnam, name4, sizeof(ssct->ssctsnam))==0) break; - ssct = ssct->ssctscta; - } - -quit: - return ssct; -} - -#if 0 -int main(int argc, char **argv) -{ - SSCT *ssct = ssct_find(0); - - while(ssct) { - wtodumpf(ssct, sizeof(SSCT), "SSCT"); - ssct = ssct->ssctscta; - } - - ssct = ssct_find("MSTR"); - wtodumpf(ssct, sizeof(SSCT), "MSTR"); - - ssct = ssct_find("JES2"); - wtodumpf(ssct, sizeof(SSCT), "JES2"); - - return 0; -} -#endif diff --git a/src/crent370/clib/@@ssfind.o b/src/crent370/clib/@@ssfind.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ssfind.s b/src/crent370/clib/@@ssfind.s deleted file mode 100644 index 7d441b9..0000000 --- a/src/crent370/clib/@@ssfind.s +++ /dev/null @@ -1,87 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ssfind.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'ssct_find' -* Program text area - DS 0F - EJECT -* external function 'ssct_find' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'ssct_find' -@@SSFIND PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ssct_find' code - L 15,0(11) ==> name - SLR 2,2 ==> psa - L 2,16(2) ==> cvt - L 2,296(2) ==> jesct - L 3,24(2) ==> ssct,jesssct - LTR 15,15 ==> name - BE @@L3 - IC 2,0(15) ==> name - CLM 2,1,=XL1'00' - BE @@L3 - CLM 2,1,=XL1'40' - BE @@L3 - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=F'4' - ST 15,96(13) ==> name - MVC 100(4,13),=F'64' - LA 1,88(,13) - L 15,=V(STRCPYP) - BALR 14,15 - LTR 3,3 ==> ssct - BE @@L3 - LA 4,104(,13) -@@L10 EQU * - LR 2,3 ==> ssct - A 2,=F'8' - ST 2,88(13) - ST 4,92(13) - MVC 96(4,13),=F'4' - LA 1,88(,13) - L 15,=V(MEMCMP) - BALR 14,15 - LTR 15,15 ==> ssct - BE @@L3 - L 3,4(3) ==> ssct,ssctscta - LTR 3,3 ==> ssct - BNE @@L10 -@@L3 EQU * - LR 15,3 ==> ssct -* Function 'ssct_find' epilogue - PDPEPIL -* Function 'ssct_find' literal pool - DS 0D - LTORG -* Function 'ssct_find' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@ssfree.c b/src/crent370/clib/@@ssfree.c deleted file mode 100644 index 18f5532..0000000 --- a/src/crent370/clib/@@ssfree.c +++ /dev/null @@ -1,33 +0,0 @@ -#include -#include - -__asm__("\n&FUNC SETC 'ssct_free'"); -void ssct_free(SSCT *ssct) -{ - int restore = 0; - unsigned char prevkey; - - if (!ssct) return; - - /* save current PSW key */ - __asm__("IPK\t0 get psw key in R2\n\t" - "LR\t%0,2 save psw key in register" : "=r"(prevkey) : : "2"); - - if (prevkey != PSWKEY0) { - /* we need to switch to KEY 0 */ - restore = 1; /* restore the key before we return to caller */ - - /* set PSW key 0 */ - __asm__("SLR\t2,2 PSW key 0 value\n\t" - "SPKA\t0(2) save in psw" : : : "2"); - } - - /* release the SSCT storage */ - freemain(ssct); - - if (restore) { - /* reset PSW key to callers key */ - __asm__("LR\t2,%0 get prev psw key\n\t" - "SPKA\t0(2) save in psw" : : "r"(prevkey) : "2"); - } -} diff --git a/src/crent370/clib/@@ssfree.o b/src/crent370/clib/@@ssfree.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ssfree.s b/src/crent370/clib/@@ssfree.s deleted file mode 100644 index a475ea9..0000000 --- a/src/crent370/clib/@@ssfree.s +++ /dev/null @@ -1,69 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ssfree.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'ssct_free' -* Program text area - DS 0F - EJECT -* external function 'ssct_free' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'ssct_free' -@@SSFREE PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ssct_free' code - L 15,0(11) ==> ssct - SLR 4,4 ==> restore - LTR 15,15 ==> ssct - BE @@L1 - IPK 0 get psw key in R2 - LR 3,2 save psw key in register ==> prevkey - CLM 3,1,=XL1'00' ==> prevkey - BE @@L3 - LA 4,1(0,0) ==> restore - SLR 2,2 PSW key 0 value - SPKA 0(2) save in psw -@@L3 EQU * - ST 15,88(13) ==> ssct - LA 1,88(,13) - L 15,=V(FREEMAIN) - BALR 14,15 - LTR 4,4 ==> restore - BE @@L1 - LR 2,3 get prev psw key ==> prevkey - SPKA 0(2) save in psw -@@L1 EQU * -* Function 'ssct_free' epilogue - PDPEPIL -* Function 'ssct_free' literal pool - DS 0D - LTORG -* Function 'ssct_free' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@ssib.c b/src/crent370/clib/@@ssib.c deleted file mode 100644 index 9f27b02..0000000 --- a/src/crent370/clib/@@ssib.c +++ /dev/null @@ -1,22 +0,0 @@ -#include "clibssib.h" - -SSIB *__ssib(void) -{ - SSIB *ssib; - - __asm("L\t15,PSATOLD-PSA OUR TCB ADDRESS\n\t" - "L\t15,TCBJSCB-TCB(,15) JSCB ADDRESS\n\t" - "USING IEZJSCB,15\n\t" - "L\t15,JSCBACT ACTIVE JSCB ADDRESS\n\t" - "L\t15,JSCBSSIB SSIB ADDRESS\n\t" - "DROP\t15\n\t" - "ST\t15,%0" : "=m"(ssib)); - - return ssib; -} - - __asm("PRINT NOGEN"); - __asm("IEZJSCB"); - __asm("IKJTCB"); - __asm("IHAPSA"); - __asm("IEFJSSIB"); diff --git a/src/crent370/clib/@@ssib.o b/src/crent370/clib/@@ssib.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ssib.s b/src/crent370/clib/@@ssib.s deleted file mode 100644 index f065390..0000000 --- a/src/crent370/clib/@@ssib.s +++ /dev/null @@ -1,59 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ssib.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__ssib' prologue -* frame base=88, local stack=8, call args=0 -&FUNC SETC '__ssib' -@@SSIB PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__ssib' code - L 15,PSATOLD-PSA OUR TCB ADDRESS - L 15,TCBJSCB-TCB(,15) JSCB ADDRESS - USING IEZJSCB,15 - L 15,JSCBACT ACTIVE JSCB ADDRESS - L 15,JSCBSSIB SSIB ADDRESS - DROP 15 - ST 15,88(13) - L 15,88(13) -* Function '__ssib' epilogue - PDPEPIL -* Function '__ssib' literal pool - DS 0D - LTORG -* Function '__ssib' page table -@@PGT0 DS 0F - DC A(@@PG0) - PRINT NOGEN - IEZJSCB - IKJTCB - IHAPSA - IEFJSSIB - END diff --git a/src/crent370/clib/@@ssinst.c b/src/crent370/clib/@@ssinst.c deleted file mode 100644 index 5fcb1dd..0000000 --- a/src/crent370/clib/@@ssinst.c +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include - -__asm__("\n&FUNC SETC 'ssct_install'"); -int ssct_install(SSCT *ssct, const char *after_name) -{ - unsigned *cvt = *(unsigned**)16; /* get CVT pointer from PSA */ - SSCT *after = ssct_find(after_name); - unsigned char prevkey; - - if (!after) { - after = ssct_find(0); /* get the first subsystem name */ - while(after->ssctscta) after = after->ssctscta; /* walk the chain until we find the last one */ - } - - /* save current PSW key */ - __asm__("IPK\t0 get psw key in R2\n\t" - "LR\t%0,2 save psw key in register" : "=r"(prevkey) : : "2"); - - if (prevkey != PSWKEY0) { - /* set PSW key 0 */ - __asm__("SLR\t2,2 PSW key 0 value\n\t" - "SPKA\t0(2) save in psw" : : : "2"); - } - - /* insert ssct into subsystem chain */ - ssct->ssctscta = after->ssctscta; /* ssct next = after next */ - after->ssctscta = ssct; /* after next = ssct */ - - if (prevkey != PSWKEY0) { - /* reset PSW key to callers key */ - __asm__("LR\t2,%0 get prev psw key\n\t" - "SPKA\t0(2) save in psw" : : "r"(prevkey) : "2"); - } - - return 0; -} - diff --git a/src/crent370/clib/@@ssinst.o b/src/crent370/clib/@@ssinst.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ssinst.s b/src/crent370/clib/@@ssinst.s deleted file mode 100644 index 0432df5..0000000 --- a/src/crent370/clib/@@ssinst.s +++ /dev/null @@ -1,83 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ssinst.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'ssct_install' -* Program text area - DS 0F - EJECT -* external function 'ssct_install' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'ssct_install' -@@SSINST PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ssct_install' code - L 4,0(11) ==> ssct - MVC 88(4,13),4(11) ==> after_name - LA 1,88(,13) - L 15,=V(@@SSFIND) - BALR 14,15 - LTR 15,15 ==> after - BNE @@L2 - ST 15,88(13) ==> after - LA 1,88(,13) - L 15,=V(@@SSFIND) - BALR 14,15 - L 2,4(15) ==> .ssctscta - LTR 2,2 - BE @@L2 -@@L6 EQU * - L 15,4(15) ==> after,ssctscta - L 2,4(15) ==> .ssctscta - LTR 2,2 - BNE @@L6 -@@L2 EQU * - IPK 0 get psw key in R2 - LR 3,2 save psw key in register ==> prevkey - CLM 3,1,=XL1'00' ==> prevkey - BE @@L7 - SLR 2,2 PSW key 0 value - SPKA 0(2) save in psw -@@L7 EQU * - MVC 4(4,4),4(15) ==> .ssctscta - ST 4,4(15) ==> ssct,ssctscta - CLM 3,1,=XL1'00' ==> prevkey - BE @@L8 - LR 2,3 get prev psw key ==> prevkey - SPKA 0(2) save in psw -@@L8 EQU * - SLR 15,15 -* Function 'ssct_install' epilogue - PDPEPIL -* Function 'ssct_install' literal pool - DS 0D - LTORG -* Function 'ssct_install' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@ssnew.c b/src/crent370/clib/@@ssnew.c deleted file mode 100644 index 8007cfc..0000000 --- a/src/crent370/clib/@@ssnew.c +++ /dev/null @@ -1,44 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC 'ssct_new'"); -SSCT *ssct_new(const char *name, SSVT *ssvt, void *suse) -{ - int restore = 0; - SSCT *ssct; - unsigned char prevkey; - - /* save current PSW key */ - __asm__("IPK\t0 get psw key in R2\n\t" - "LR\t%0,2 save psw key in register" : "=r"(prevkey) : : "2"); - - if (prevkey != PSWKEY0) { - /* we need to switch to KEY 0 */ - restore = 1; /* restore the key before we return to caller */ - - /* set PSW key 0 */ - __asm__("SLR\t2,2 PSW key 0 value\n\t" - "SPKA\t0(2) save in psw" : : : "2"); - } - - /* allocate SSCT in subpool 241, key 0 */ - ssct = getmain(sizeof(SSCT), 241); - if (ssct) { - /* note: our getmain clears allocated storage, so no need to clear it again */ - - memcpy(ssct->ssctid, SSCT_EYE, sizeof(ssct->ssctid)); - if (name) strcpyp(ssct->ssctsnam, sizeof(ssct->ssctsnam), (void*)name, ' '); - ssct->ssctssvt = ssvt; - ssct->ssctsuse = suse; - } - - if (restore) { - /* reset PSW key to callers key */ - __asm__("LR\t2,%0 get prev psw key\n\t" - "SPKA\t0(2) save in psw" : : "r"(prevkey) : "2"); - } - - return ssct; -} - diff --git a/src/crent370/clib/@@ssnew.o b/src/crent370/clib/@@ssnew.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ssnew.s b/src/crent370/clib/@@ssnew.s deleted file mode 100644 index 2c9a28e..0000000 --- a/src/crent370/clib/@@ssnew.s +++ /dev/null @@ -1,96 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ssnew.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'ssct_new' -* Program text area - DS 0F - EJECT -* external function 'ssct_new' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'ssct_new' -@@SSNEW PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ssct_new' code - L 6,0(11) ==> name - SLR 5,5 ==> restore - IPK 0 get psw key in R2 - LR 4,2 save psw key in register ==> prevkey - CLM 4,1,=XL1'00' ==> prevkey - BE @@L2 - LA 5,1(0,0) ==> restore - SLR 2,2 PSW key 0 value - SPKA 0(2) save in psw -@@L2 EQU * - MVC 88(4,13),=F'24' - MVC 92(4,13),=F'241' - LA 1,88(,13) - L 15,=V(GETMAIN) - BALR 14,15 - LR 3,15 ==> ssct - LTR 15,15 ==> ssct - BE @@L3 - ST 15,88(13) ==> ssct - MVC 92(4,13),=A(@@LC0) - MVC 96(4,13),=F'4' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - LTR 6,6 ==> name - BE @@L4 - LR 2,3 ==> ssct - A 2,=F'8' - ST 2,88(13) - MVC 92(4,13),=F'4' - ST 6,96(13) ==> name - MVC 100(4,13),=F'64' - LA 1,88(,13) - L 15,=V(STRCPYP) - BALR 14,15 -@@L4 EQU * - MVC 16(4,3),4(11) ==> .ssctssvt,ssvt - MVC 20(4,3),8(11) ==> .ssctsuse,suse -@@L3 EQU * - LTR 5,5 ==> restore - BE @@L5 - LR 2,4 get prev psw key ==> prevkey - SPKA 0(2) save in psw -@@L5 EQU * - LR 15,3 ==> ssct -* Function 'ssct_new' epilogue - PDPEPIL -* Function 'ssct_new' literal pool - DS 0D - LTORG -* Function 'ssct_new' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'SSCT' - DC X'0' - END diff --git a/src/crent370/clib/@@ssrem.c b/src/crent370/clib/@@ssrem.c deleted file mode 100644 index fc8a666..0000000 --- a/src/crent370/clib/@@ssrem.c +++ /dev/null @@ -1,42 +0,0 @@ -#include -#include - -__asm__("\n&FUNC SETC 'ssct_remove'"); -int ssct_remove(SSCT *ssct) -{ - unsigned *cvt = *(unsigned**)16; /* get CVT pointer from PSA */ - SSCT *inst = ssct_find(0); /* get first subsystem */ - int rc = 4; /* assume not found */ - unsigned char prevkey; - - /* save current PSW key */ - __asm__("IPK\t0 get psw key in R2\n\t" - "LR\t%0,2 save psw key in register" : "=r"(prevkey) : : "2"); - - if (prevkey != PSWKEY0) { - /* set PSW key 0 */ - __asm__("SLR\t2,2 PSW key 0 value\n\t" - "SPKA\t0(2) save in psw" : : : "2"); - } - - /* search installed subsystems */ - while(inst) { - /* is this subsystem 'next' value our subsystem pointer? */ - if (inst->ssctscta == ssct) { - /* yes, remove ssct from installed next */ - inst->ssctscta = ssct->ssctscta; /* installed->next = our subsystem->next */ - ssct->ssctscta = (SSCT*)0; /* our subsystem->next = NULL */ - rc = 0; /* indicate success */ - break; - } - inst = inst->ssctscta; - } - - if (prevkey != PSWKEY0) { - /* reset PSW key to callers key */ - __asm__("LR\t2,%0 get prev psw key\n\t" - "SPKA\t0(2) save in psw" : : "r"(prevkey) : "2"); - } - - return rc; -} diff --git a/src/crent370/clib/@@ssrem.o b/src/crent370/clib/@@ssrem.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ssrem.s b/src/crent370/clib/@@ssrem.s deleted file mode 100644 index e2907f2..0000000 --- a/src/crent370/clib/@@ssrem.s +++ /dev/null @@ -1,82 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ssrem.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'ssct_remove' -* Program text area - DS 0F - EJECT -* external function 'ssct_remove' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'ssct_remove' -@@SSREM PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ssct_remove' code - L 4,0(11) ==> ssct - MVC 88(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@SSFIND) - BALR 14,15 - LA 5,4(0,0) ==> rc - IPK 0 get psw key in R2 - LR 3,2 save psw key in register ==> prevkey - CLM 3,1,=XL1'00' ==> prevkey - BE @@L2 - SLR 2,2 PSW key 0 value - SPKA 0(2) save in psw -@@L2 EQU * - LTR 15,15 ==> inst - BE @@L4 -@@L7 EQU * - L 2,4(15) ==> .ssctscta - CLR 2,4 ==> ssct - BNE @@L6 - MVC 4(4,15),4(4) ==> .ssctscta - MVC 4(4,4),=F'0' ==> .ssctscta - SLR 5,5 ==> rc - B @@L4 -@@L6 EQU * - L 15,4(15) ==> inst,ssctscta - LTR 15,15 ==> inst - BNE @@L7 -@@L4 EQU * - CLM 3,1,=XL1'00' ==> prevkey - BE @@L8 - LR 2,3 get prev psw key ==> prevkey - SPKA 0(2) save in psw -@@L8 EQU * - LR 15,5 ==> rc -* Function 'ssct_remove' epilogue - PDPEPIL -* Function 'ssct_remove' literal pool - DS 0D - LTORG -* Function 'ssct_remove' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@ssremn.c b/src/crent370/clib/@@ssremn.c deleted file mode 100644 index e992b10..0000000 --- a/src/crent370/clib/@@ssremn.c +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include - -__asm__("\n&FUNC SETC 'ssct_remove_by_name'"); -int ssct_remove_by_name(const char *name) -{ - SSCT *ssct = ssct_find(name); /* get subsystem */ - int rc = 4; /* assume not found */ - - if (ssct) { - rc = ssct_remove(ssct); - } - - return rc; -} diff --git a/src/crent370/clib/@@ssremn.o b/src/crent370/clib/@@ssremn.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ssremn.s b/src/crent370/clib/@@ssremn.s deleted file mode 100644 index 0ef2cf3..0000000 --- a/src/crent370/clib/@@ssremn.s +++ /dev/null @@ -1,62 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ssremn.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'ssct_remove_by_name' -* Program text area - DS 0F - EJECT -* external function 'ssct_remove_by_name' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'ssct_remove_by_name' -@@SSREMN PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ssct_remove_by_name' code - MVC 88(4,13),0(11) ==> name - LA 1,88(,13) - L 15,=V(@@SSFIND) - BALR 14,15 - LA 2,4(0,0) ==> rc - LTR 15,15 ==> ssct - BE @@L2 - ST 15,88(13) ==> ssct - LA 1,88(,13) - L 15,=V(@@SSREM) - BALR 14,15 - LR 2,15 ==> rc -@@L2 EQU * - LR 15,2 ==> rc -* Function 'ssct_remove_by_name' epilogue - PDPEPIL -* Function 'ssct_remove_by_name' literal pool - DS 0D - LTORG -* Function 'ssct_remove_by_name' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@start.c b/src/crent370/clib/@@start.c deleted file mode 100644 index 2ff2c57..0000000 --- a/src/crent370/clib/@@start.c +++ /dev/null @@ -1,173 +0,0 @@ -/*********************************************************************/ -/* */ -/* This Program Written by Paul Edwards. */ -/* Modifications by Mike Rayborn for crent370 project. */ -/* */ -/*********************************************************************/ -/*********************************************************************/ -/* */ -/* start.c - startup/termination code */ -/* */ -/*********************************************************************/ - -/* Callers of C program may be from TSO or Batch. - TSO supplies the args in a struct like: - 00 length of args first byte - 01 length of args second byte - 02 always zero - 03 length of program name in args starting in byte 04 - 04 args.... - - For TSO, the length of args includes the 4 byte prefix area size. - - Batch supplies the args in a struct like: - 00 length of args first byte - 01 length of args second byte - 02 args.... - - For Batch, the args are those specified in the PARM='...' for - the EXEC statement in the JCL. - -*/ - -/*#define LIB_STDIO*/ -#include "stdio.h" -#include "stdlib.h" -#include "string.h" -#include "stddef.h" -#include "clibcrt.h" - -#define MAXPARMS 50 /* maximum number of arguments we can handle */ - -extern int main(int argc, char **argv); -extern void __exita(int status); - -int -__start(char *p, char *pgmname, int tsojbid, void **pgmr1) -{ - CLIBGRT *grt = __grtget(); - int x; - int argc; - unsigned u; - char *argv[MAXPARMS + 1]; - int rc; - int parmLen; - int progLen; - char parmbuf[310]; - - /* need to know if this is a TSO environment straight away - because it determines how the permanent files will be - opened */ - parmLen = ((unsigned int)p[0] << 8) | (unsigned int)p[1]; - if ((parmLen > 0) && (p[2] == 0)) { - grt->grtflag1 |= GRTFLAG1_TSO; - progLen = (unsigned int)p[3]; - } - - stdout = fopen("*SYSPRINT", "w"); - if (!stdout) __exita(EXIT_FAILURE); - - stderr = fopen("*SYSTERM", "w"); - if (!stderr) { - printf("SYSTERM DD not defined\n"); - fclose(stdout); - __exita(EXIT_FAILURE); - } - - stdin = fopen("dd:SYSIN", "r"); - if (!stdin) stdin = fopen("'NULLFILE'", "r"); - if (!stdin) { - fprintf(stderr, "SYSIN DD not defined\n"); - fclose(stdout); - fclose(stderr); - __exita(EXIT_FAILURE); - } - - /* load any environment variables */ - if (loadenv("dd:SYSENV")) { - /* no SYSENV DD, try ENVIRON DD */ - loadenv("dd:ENVIRON"); - } - - /* initialize time zone offset for this thread */ - tzset(); - - if (parmLen >= sizeof(parmbuf) - 2) { - parmLen = sizeof(parmbuf) - 1 - 2; - } - if (parmLen < 0) parmLen = 0; - - /* We copy the parameter into our own area because - the caller hasn't necessarily allocated room for - a terminating NUL, nor is it necessarily correct - to clobber the caller's area with NULs. */ - memset(parmbuf, 0, sizeof(parmbuf)); - if (grt->grtflag1 & GRTFLAG1_TSO) { - parmLen -= 4; - memcpy(parmbuf, p+4, parmLen); - } - else { - memcpy(parmbuf, p+2, parmLen); - } - p = parmbuf; - - if (pgmr1) { - /* save the program parameter list values (max 10 pointers) - note: the first pointer is always the raw EXEC PGM=...,PARM - or CPPL (TSO) address. - */ - for(x=0; x < 10; x++) { - u = (unsigned)pgmr1[x]; - /* add to array of pointers from caller */ - arrayadd(&grt->grtptrs, (void*)(u&0x7FFFFFFF)); - if (u&0x80000000) break; /* end of VL style address list */ - } - } - - if (grt->grtflag1 & GRTFLAG1_TSO) { - argv[0] = p; - for(x=0;x<=progLen;x++) { - if (argv[0][x]==' ') { - argv[0][x]=0; - break; - } - } - p += progLen; - } - else { /* batch or tso "call" */ - argv[0] = pgmname; - pgmname[8] = '\0'; - pgmname = strchr(pgmname, ' '); - if (pgmname) *pgmname = '\0'; - } - - while (*p == ' ') p++; - - x = 1; - if (*p) { - while(x < MAXPARMS) { - char srch = ' '; - - if (*p == '"') { - p++; - srch = '"'; - } - argv[x++] = p; - p = strchr(p, srch); - if (!p) break; - - *p = '\0'; - p++; - /* skip trailing blanks */ - while (*p == ' ') p++; - if (*p == '\0') break; - } - } - argv[x] = NULL; - argc = x; - - rc = main(argc, argv); - - __exit(rc); - return (rc); -} diff --git a/src/crent370/clib/@@start.o b/src/crent370/clib/@@start.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@start.s b/src/crent370/clib/@@start.s deleted file mode 100644 index c2c6f99..0000000 --- a/src/crent370/clib/@@start.s +++ /dev/null @@ -1,398 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@start.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__start' prologue -* frame base=88, local stack=520, call args=16 -&FUNC SETC '__start' -@@START PDPPRLG CINDEX=0,FRAME=624,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__start' code - L 4,0(11) ==> p - L 9,4(11) ==> pgmname - LA 1,88(,13) - L 15,=V(@@GRTGET) - BALR 14,15 - LR 7,15 ==> grt - SLR 6,6 ==> parmLen - IC 6,0(4) ==> parmLen,p - SLL 6,8 ==> parmLen - SLR 2,2 - IC 2,1(4) - OR 6,2 ==> parmLen - LTR 6,6 ==> parmLen - BNH @@L2 - IC 2,2(4) - CLM 2,1,=XL1'00' - BNE @@L2 - OI 10(15),64 ==> .grtflag1 - SLR 8,8 ==> progLen - IC 8,3(4) ==> progLen -@@L2 EQU * - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@LC1) - LA 1,88(,13) - L 15,=V(FOPEN) - BALR 14,15 - LR 2,15 ==> grt - LA 1,88(,13) - L 15,=V(@@GTOUT) - BALR 14,15 - ST 2,0(15) ==> grt - LA 1,88(,13) - L 15,=V(@@GTOUT) - BALR 14,15 - L 2,0(15) ==> grt - LTR 2,2 - BNE @@L3 - MVC 88(4,13),=F'12' - LA 1,88(,13) - L 15,=V(@@EXITA) - BALR 14,15 -@@L3 EQU * - MVC 88(4,13),=A(@@LC2) - MVC 92(4,13),=A(@@LC1) - LA 1,88(,13) - L 15,=V(FOPEN) - BALR 14,15 - LR 2,15 ==> grt - LA 1,88(,13) - L 15,=V(@@GTERR) - BALR 14,15 - ST 2,0(15) ==> grt - LA 1,88(,13) - L 15,=V(@@GTERR) - BALR 14,15 - L 2,0(15) ==> grt - LTR 2,2 - BNE @@L4 - MVC 88(4,13),=A(@@LC3) - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - LA 1,88(,13) - L 15,=V(@@GTOUT) - BALR 14,15 - MVC 88(4,13),0(15) ==> grt - LA 1,88(,13) - L 15,=V(FCLOSE) - BALR 14,15 - MVC 88(4,13),=F'12' - LA 1,88(,13) - L 15,=V(@@EXITA) - BALR 14,15 -@@L4 EQU * - MVC 88(4,13),=A(@@LC4) - MVC 92(4,13),=A(@@LC5) - LA 1,88(,13) - L 15,=V(FOPEN) - BALR 14,15 - LR 2,15 ==> grt - LA 1,88(,13) - L 15,=V(@@GTIN) - BALR 14,15 - ST 2,0(15) ==> grt - LA 1,88(,13) - L 15,=V(@@GTIN) - BALR 14,15 - L 2,0(15) ==> grt - LTR 2,2 - BNE @@L5 - MVC 88(4,13),=A(@@LC6) - MVC 92(4,13),=A(@@LC5) - LA 1,88(,13) - L 15,=V(FOPEN) - BALR 14,15 - LR 2,15 ==> grt - LA 1,88(,13) - L 15,=V(@@GTIN) - BALR 14,15 - ST 2,0(15) ==> grt -@@L5 EQU * - LA 1,88(,13) - L 15,=V(@@GTIN) - BALR 14,15 - L 2,0(15) ==> grt - LTR 2,2 - BNE @@L6 - LA 1,88(,13) - L 15,=V(@@GTERR) - BALR 14,15 - MVC 88(4,13),0(15) ==> grt - MVC 92(4,13),=A(@@LC7) - LA 1,88(,13) - L 15,=V(FPRINTF) - BALR 14,15 - LA 1,88(,13) - L 15,=V(@@GTOUT) - BALR 14,15 - MVC 88(4,13),0(15) ==> grt - LA 1,88(,13) - L 15,=V(FCLOSE) - BALR 14,15 - LA 1,88(,13) - L 15,=V(@@GTERR) - BALR 14,15 - MVC 88(4,13),0(15) ==> grt - LA 1,88(,13) - L 15,=V(FCLOSE) - BALR 14,15 - MVC 88(4,13),=F'12' - LA 1,88(,13) - L 15,=V(@@EXITA) - BALR 14,15 -@@L6 EQU * - MVC 88(4,13),=A(@@LC8) - LA 1,88(,13) - L 15,=V(LOADENV) - BALR 14,15 - LTR 15,15 ==> grt - BE @@L7 - MVC 88(4,13),=A(@@LC9) - LA 1,88(,13) - L 15,=V(LOADENV) - BALR 14,15 -@@L7 EQU * - LA 1,88(,13) - L 15,=V(TZSET) - BALR 14,15 - LA 2,307(0,0) - CLR 6,2 ==> parmLen - BNH @@L8 - LR 6,2 ==> parmLen -@@L8 EQU * - LTR 6,6 ==> parmLen - BNL @@L9 - SLR 6,6 ==> parmLen -@@L9 EQU * - LA 5,312(,13) ==> s - SLR 2,2 ==> c - LA 3,310(0,0) ==> n - -*** MEMSET *** - LR 14,5 => target (s) ==> s - LR 15,3 => length (n) ==> n - SLR 0,0 => source (NULL) - LR 1,2 fill character ==> c - SLL 1,24 move fill to high byte - MVCL 14,0 Set target to fill character - IC 2,10(7) ==> .grtflag1 - N 2,=F'64' - CLM 2,1,=XL1'00' - BE @@L11 - A 6,=F'-4' ==> parmLen - ST 5,88(13) ==> s - LR 2,4 ==> p - A 2,=F'4' - B @@L53 -@@L52 EQU * - SLR 6,6 - STC 6,0(3,5) ==> x - B @@L22 -@@L11 EQU * - LA 2,312(,13) - ST 2,88(13) - LR 2,4 ==> p - A 2,=F'2' -@@L53 EQU * - ST 2,92(13) - ST 6,96(13) ==> parmLen - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - LA 4,312(,13) ==> p - L 2,12(11) ==> pgmr1 - LTR 2,2 - BE @@L13 - SLR 3,3 ==> x - LR 5,7 ==> grt - A 5,=F'76' -@@L19 EQU * - LR 2,3 ==> x - MH 2,=H'4' - L 6,12(11) ==> pgmr1 - L 2,0(2,6) ==> u - ST 5,88(13) - LR 6,2 ==> u - N 6,=F'2147483647' - ST 6,92(13) - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LTR 2,2 ==> u - BL @@L13 - A 3,=F'1' ==> x - LA 2,9(0,0) - CR 3,2 ==> x - BNH @@L19 -@@L13 EQU * - IC 2,10(7) ==> .grtflag1 - N 2,=F'64' - SLL 2,24 - SRA 2,24 - C 2,=F'0' - BE @@L20 - ST 4,104(13) ==> p,argv - SLR 3,3 ==> x - CR 3,8 ==> x,progLen - BH @@L22 - LR 5,4 ==> p -@@L26 EQU * - IC 2,0(3,5) ==> x - SLL 2,24 - SRA 2,24 - C 2,=F'64' - BE @@L52 - A 3,=F'1' ==> x - CR 3,8 ==> x,progLen - BNH @@L26 -@@L22 EQU * - AR 4,8 ==> p,progLen - B @@L27 -@@L20 EQU * - ST 9,104(13) ==> pgmname,argv - MVI 8(9),0 - ST 9,88(13) ==> pgmname - MVC 92(4,13),=F'64' - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LTR 15,15 ==> pgmname - BE @@L27 - MVI 0(15),0 ==> pgmname -@@L27 EQU * - CLI 0(4),64 ==> p - BNE @@L48 -@@L32 EQU * - A 4,=F'1' ==> p - CLI 0(4),64 ==> p - BE @@L32 -@@L48 EQU * - LA 3,1(0,0) ==> x - IC 2,0(4) ==> p - CLM 2,1,=XL1'00' - BE @@L33 -@@L44 EQU * - LA 5,64(0,0) ==> srch - IC 2,0(4) ==> srch,p - CLM 2,1,=XL1'7F' ==> srch - BNE @@L37 - A 4,=F'1' ==> p - LR 5,2 ==> srch -@@L37 EQU * - LR 2,3 ==> x - MH 2,=H'4' - ST 4,104(13,2) ==> p,argv - A 3,=F'1' ==> x - ST 4,88(13) ==> p - LR 2,5 ==> srch - N 2,=XL4'000000FF' ==> srch - ST 2,92(13) ==> srch - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LR 4,15 ==> p - LTR 15,15 ==> p - BE @@L33 - MVI 0(15),0 ==> p - A 4,=F'1' ==> p - CLI 0(4),64 ==> p - BNE @@L51 -@@L42 EQU * - A 4,=F'1' ==> p - CLI 0(4),64 ==> p - BE @@L42 -@@L51 EQU * - IC 2,0(4) ==> p - SLL 2,24 - SRA 2,24 - C 2,=F'0' - BE @@L33 - LA 6,49(0,0) - CR 3,6 ==> x - BNH @@L44 -@@L33 EQU * - LR 2,3 ==> x - MH 2,=H'4' - SLR 4,4 - ST 4,104(13,2) ==> argv - ST 3,88(13) ==> x - LA 2,104(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(MAIN) - BALR 14,15 - LR 2,15 ==> rc - ST 15,88(13) ==> rc - LA 1,88(,13) - L 15,=V(@@EXIT) - BALR 14,15 - LR 15,2 ==> rc -* Function '__start' epilogue - PDPEPIL -* Function '__start' literal pool - DS 0D - LTORG -* Function '__start' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'*SYSPRINT' - DC X'0' -@@LC1 EQU * - DC C'w' - DC X'0' -@@LC2 EQU * - DC C'*SYSTERM' - DC X'0' -@@LC3 EQU * - DC C'SYSTERM DD not defined' - DC X'15' - DC X'0' -@@LC4 EQU * - DC C'dd:SYSIN' - DC X'0' -@@LC5 EQU * - DC C'r' - DC X'0' -@@LC6 EQU * - DC C'''NULLFILE''' - DC X'0' -@@LC7 EQU * - DC C'SYSIN DD not defined' - DC X'15' - DC X'0' -@@LC8 EQU * - DC C'dd:SYSENV' - DC X'0' -@@LC9 EQU * - DC C'dd:ENVIRON' - DC X'0' - END diff --git a/src/crent370/clib/@@stderr.c b/src/crent370/clib/@@stderr.c deleted file mode 100644 index 1c02f07..0000000 --- a/src/crent370/clib/@@stderr.c +++ /dev/null @@ -1,5 +0,0 @@ -/* @@STDERR.C - global variable */ -#include -extern FILE __perm[3]; - -FILE *__stderr = &__perm[2]; diff --git a/src/crent370/clib/@@stderr.o b/src/crent370/clib/@@stderr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@stderr.s b/src/crent370/clib/@@stderr.s deleted file mode 100644 index d730f1a..0000000 --- a/src/crent370/clib/@@stderr.s +++ /dev/null @@ -1,28 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@stderr.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* X-var __stderr - ENTRY @@STDERR -* Program data area - DS 0F -@@STDERR EQU * - EXTRN @@PERM - DC A(@@PERM+384) - END diff --git a/src/crent370/clib/@@stdin.c b/src/crent370/clib/@@stdin.c deleted file mode 100644 index 2f74ac6..0000000 --- a/src/crent370/clib/@@stdin.c +++ /dev/null @@ -1,5 +0,0 @@ -/* @@STDIN.C - global variable */ -#include -extern FILE __perm[3]; - -FILE *__stdin = &__perm[0]; diff --git a/src/crent370/clib/@@stdin.o b/src/crent370/clib/@@stdin.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@stdin.s b/src/crent370/clib/@@stdin.s deleted file mode 100644 index 1f8a73f..0000000 --- a/src/crent370/clib/@@stdin.s +++ /dev/null @@ -1,27 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@stdin.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* X-var __stdin - ENTRY @@STDIN -* Program data area - DS 0F -@@STDIN EQU * - DC V(@@PERM) - END diff --git a/src/crent370/clib/@@stdout.c b/src/crent370/clib/@@stdout.c deleted file mode 100644 index aa586e0..0000000 --- a/src/crent370/clib/@@stdout.c +++ /dev/null @@ -1,5 +0,0 @@ -/* @@STDOUT.C - global variable */ -#include -extern FILE __perm[3]; - -FILE *__stdout = &__perm[1]; diff --git a/src/crent370/clib/@@stdout.o b/src/crent370/clib/@@stdout.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@stdout.s b/src/crent370/clib/@@stdout.s deleted file mode 100644 index a026605..0000000 --- a/src/crent370/clib/@@stdout.s +++ /dev/null @@ -1,28 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@stdout.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* X-var __stdout - ENTRY @@STDOUT -* Program data area - DS 0F -@@STDOUT EQU * - EXTRN @@PERM - DC A(@@PERM+192) - END diff --git a/src/crent370/clib/@@steplb.c b/src/crent370/clib/@@steplb.c deleted file mode 100644 index 82e4411..0000000 --- a/src/crent370/clib/@@steplb.c +++ /dev/null @@ -1,28 +0,0 @@ -/* @@STEPLB.C - returns DCB address or NULL for STEPLIB DD */ -#include "clibos.h" - -__asm__("\n&FUNC SETC '__steplb'"); -void * -__steplb(void) -{ - void *steplib; - - __asm__("\n" -" ICM 1,15,PSATOLD-PSA(0) Get our TCB address\n" -" ICM 1,15,TCBJLB-TCB(1) Get STEPLIB DCB\n" -" LA 1,0(,1) Purify DCB address\n" -" LR %0,1 Save STEPLIB DCB address" - : "=r"(steplib) : : "1"); - - return steplib; -} - -__asm__("PRINT NOGEN"); -__asm__("IHAPSA , MAP LOW STORAGE"); -__asm__("CVT DSECT=YES"); -__asm__("IKJTCB DSECT=YES"); -__asm__("DCBD DSORG=PO,DEVD=DA"); -__asm__("IEZDEB"); -__asm__("PRINT GEN"); -__asm__("CSECT"); - diff --git a/src/crent370/clib/@@steplb.o b/src/crent370/clib/@@steplb.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@steplb.s b/src/crent370/clib/@@steplb.s deleted file mode 100644 index eaaef8b..0000000 --- a/src/crent370/clib/@@steplb.s +++ /dev/null @@ -1,61 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@steplb.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__steplb' -* Program text area - DS 0F - EJECT -* external function '__steplb' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__steplb' -@@STEPLB PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__steplb' code - - ICM 1,15,PSATOLD-PSA(0) Get our TCB address - ICM 1,15,TCBJLB-TCB(1) Get STEPLIB DCB - LA 1,0(,1) Purify DCB address - LR 15,1 Save STEPLIB DCB address ==> steplib -* Function '__steplb' epilogue - PDPEPIL -* Function '__steplb' literal pool - DS 0D - LTORG -* Function '__steplb' page table -@@PGT0 DS 0F - DC A(@@PG0) - PRINT NOGEN - IHAPSA , MAP LOW STORAGE - CVT DSECT=YES - IKJTCB DSECT=YES - DCBD DSORG=PO,DEVD=DA - IEZDEB - PRINT GEN - CSECT - END diff --git a/src/crent370/clib/@@stymd.c b/src/crent370/clib/@@stymd.c deleted file mode 100644 index fa38fdc..0000000 --- a/src/crent370/clib/@@stymd.c +++ /dev/null @@ -1,50 +0,0 @@ -/* @@STYMD.C */ -#include "time.h" -#include "stdarg.h" -#include "stdio.h" -#include "stddef.h" -#include "mvssupa.h" - -/* scalar date routines -- public domain by Ray Gardner -** These will work over the range 1-01-01 thru 14699-12-31 -** The functions written by Ray are isleap, months_to_days, -** years_to_days, ymd_to_scalar, scalar_to_ymd. -** modified slightly by Paul Edwards -*/ - -extern int __isleap(unsigned yr); -extern unsigned __mtd(unsigned month); -extern long __ytd(unsigned yr); -extern long __ymdts(unsigned yr, unsigned mo, unsigned day); -extern void __stymd(long scalar, - unsigned *pyr, unsigned *pmo, unsigned *pday); - -#define isleap(y) __isleap(y) -#define months_to_days(m) __mtd(m) -#define years_to_days(y) __ytd(y) -#define ymd_to_scalar(y,m,d) __ymdts((y),(m),(d)) -#define scalar_to_ymd(s,y,m,d) __stymd((s),(y),(m),(d)) - -void -__stymd(long scalar, unsigned *pyr, unsigned *pmo, unsigned *pday) -{ - unsigned n; /* compute inverse of years_to_days() */ - - n = (unsigned)((scalar * 400L) / 146097L); - while (years_to_days(n) < scalar) - { - n++; - } - for ( n = (unsigned)((scalar * 400L) / 146097L); years_to_days(n) < scalar; ) - n++; /* 146097 == years_to_days(400) */ - *pyr = n; - n = (unsigned)(scalar - years_to_days(n-1)); - if ( n > 59 ) { /* adjust if past February */ - n += 2; - if ( isleap(*pyr) ) - n -= n > 62 ? 1 : 2; - } - *pmo = (n * 100 + 3007) / 3057; /* inverse of months_to_days() */ - *pday = n - months_to_days(*pmo); - return; -} diff --git a/src/crent370/clib/@@stymd.o b/src/crent370/clib/@@stymd.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@stymd.s b/src/crent370/clib/@@stymd.s deleted file mode 100644 index c372429..0000000 --- a/src/crent370/clib/@@stymd.s +++ /dev/null @@ -1,130 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@stymd.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__stymd' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC '__stymd' -@@STYMD PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__stymd' code - SLR 2,2 ==> n - SLR 3,3 ==> n - LR 4,2 ==> n - LR 5,3 ==> n - LR 8,2 - LR 9,3 - L 6,0(11) ==> scalar - L 7,4(11) ==> pyr - LR 2,6 ==> scalar - MH 2,=H'400' - SRDA 2,32 ==> n - L 15,=F'146097' - DR 2,15 ==> n - B @@L2 -@@L5 EQU * - A 3,=F'1' ==> n -@@L2 EQU * - ST 3,88(13) ==> n - LA 1,88(,13) - L 15,=V(@@YTD) - BALR 14,15 - CR 15,6 ==> scalar - BL @@L5 - LR 4,6 ==> scalar - MH 4,=H'400' - SRDA 4,32 ==> n - L 2,=F'146097' - DR 4,2 ==> n - LR 3,5 ==> n - B @@L6 -@@L10 EQU * - A 3,=F'1' ==> n -@@L6 EQU * - ST 3,88(13) ==> n - LA 1,88(,13) - L 15,=V(@@YTD) - BALR 14,15 - CR 15,6 ==> scalar - BL @@L10 - ST 3,0(7) ==> n,pyr - LR 2,3 ==> n - BCTR 2,0 - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@YTD) - BALR 14,15 - LR 3,6 ==> n,scalar - SR 3,15 ==> n - LA 4,59(0,0) - CLR 3,4 ==> n - BNH @@L11 - A 3,=F'2' ==> n - MVC 88(4,13),0(7) ==> pyr - LA 1,88(,13) - L 15,=V(@@ISLEAP) - BALR 14,15 - LTR 15,15 - BE @@L11 - LR 2,3 ==> n - BCTR 2,0 ==> n - LA 15,62(0,0) - CLR 3,15 ==> n - BH @@L14 - LR 2,3 ==> n - A 2,=F'-2' ==> n -@@L14 EQU * - LR 3,2 ==> n -@@L11 EQU * - LR 2,3 ==> n - MH 2,=H'100' - LR 8,2 - A 8,=F'3007' - SRDL 8,32 - LA 2,3057(0,0) - DR 8,2 - L 2,8(11) ==> pmo - ST 9,0(2) ==> pmo - ST 9,88(13) - LA 1,88(,13) - L 15,=V(@@MTD) - BALR 14,15 - SR 3,15 - L 2,12(11) ==> pday - ST 3,0(2) ==> pday -* Function '__stymd' epilogue - PDPEPIL -* Function '__stymd' literal pool - DS 0D - LTORG -* Function '__stymd' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@sudo.c b/src/crent370/clib/@@sudo.c deleted file mode 100644 index 8e2ed0c..0000000 --- a/src/crent370/clib/@@sudo.c +++ /dev/null @@ -1,35 +0,0 @@ -#include - -__asm__("\n&FUNC SETC 'super_do'"); -int super_do(void *func, ...) -{ - int rc; - void *r1 = (void*)(&func)+4; - int sup; - - /* are we already in supervisor mode? */ - sup = __issup(); - if (!sup) { - /* no, switch to supervisor mode */ - __asm__("MODESET\tMODE=SUP\n\tLR\t%0,15" : "=r"(rc) : : "1", "14", "15"); - if (rc) goto quit; /* not likely, but just in case */ - } - - /* call the function in supervisor state */ - __asm__( - "LR\t15,%1 => function to call \n\t" - "LR\t1,%2 => parameter list\n\t" - "BALR\t14,15 call function\n\t" - "LR\t%0,15 save return code" - : "=r" (rc) - : "r" (func), "r" (r1) - : "0", "1", "14", "15"); - - if (!sup) { - /* return caller to problem state */ - __asm__("MODESET\tMODE=PROB" : : : "1", "14", "15"); - } - -quit: - return rc; -} diff --git a/src/crent370/clib/@@sudo.o b/src/crent370/clib/@@sudo.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@sudo.s b/src/crent370/clib/@@sudo.s deleted file mode 100644 index ffb6e1a..0000000 --- a/src/crent370/clib/@@sudo.s +++ /dev/null @@ -1,70 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@sudo.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'super_do' -* Program text area - DS 0F - EJECT -* external function 'super_do' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'super_do' -@@SUDO PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'super_do' code - LA 4,4(,11) ==> r1 - LA 1,88(,13) - L 15,=V(@@ISSUP) - BALR 14,15 - LR 3,15 ==> sup - LTR 15,15 ==> sup - BNE @@L2 - MODESET MODE=SUP - LR 2,15 ==> rc - LTR 2,2 ==> rc - BNE @@L4 -@@L2 EQU * - L 2,0(11) - LR 15,2 => function to call - LR 1,4 => parameter list ==> r1 - BALR 14,15 call function - LR 2,15 save return code ==> rc - LTR 3,3 ==> sup - BNE @@L4 - MODESET MODE=PROB -@@L4 EQU * - LR 15,2 ==> rc -* Function 'super_do' epilogue - PDPEPIL -* Function 'super_do' literal pool - DS 0D - LTORG -* Function 'super_do' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@sukydo.c b/src/crent370/clib/@@sukydo.c deleted file mode 100644 index de060ef..0000000 --- a/src/crent370/clib/@@sukydo.c +++ /dev/null @@ -1,57 +0,0 @@ -#include - -__asm__("\n&FUNC SETC 'super_key_do'"); -int super_key_do(unsigned char pswkey, void *func, ...) -{ - int rc; - void *r1 = (void*)(&func)+4; - int sup; - unsigned char prevkey; - - /* are we already in supervisor mode? */ - sup = __issup(); - if (!sup) { - /* no, switch to supervisor mode */ - __asm__("MODESET\tMODE=SUP switch to supervisor state\n\t" - "LR\t%0,15 save return code" : "=r"(rc) : : "1", "14", "15"); - if (rc) goto quit; /* not likely, but just in case */ - } - - /* save current PSW key */ - __asm__("IPK\t0 get psw key in R2\n\t" - "STC\t2,0(,%0) save psw key" : : "r"(&prevkey) : "2"); - - /* are we to set a new PSW key? */ - if (pswkey != PSWKEYNONE) { - /* yes, set new PSW key */ - /* we'll allow for PSW key in low nibble value and shift if needed */ - if (pswkey < 0x10) pswkey = pswkey << 4; /* put key value in next higher nibble */ - - /* set new PSW key */ - __asm__("IC\t2,0(,%0) get new psw key\n\t" - "SPKA\t0(2) save in psw" : : "r"(&pswkey) : "2"); - } - - /* call the function in supervisor state */ - __asm__( - "LR\t15,%1 => function to call \n\t" - "LR\t1,%2 => parameter list\n\t" - "BALR\t14,15 call function\n\t" - "LR\t%0,15 save return code" - : "=r" (rc) - : "r" (func), "r" (r1) - : "0", "1", "14", "15"); - - /* reset PSW key to callers key */ - __asm__("IC\t2,0(,%0) get prev psw key\n\t" - "SPKA\t0(2) save in psw" : : "r"(&prevkey) : "2"); - - if (!sup) { - /* return caller to problem state */ - __asm__("MODESET\tMODE=PROB switch to problem state" : : : "1", "14", "15"); - } - -quit: - return rc; -} - diff --git a/src/crent370/clib/@@sukydo.o b/src/crent370/clib/@@sukydo.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@sukydo.s b/src/crent370/clib/@@sukydo.s deleted file mode 100644 index 3d5b766..0000000 --- a/src/crent370/clib/@@sukydo.s +++ /dev/null @@ -1,89 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@sukydo.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'super_key_do' -* Program text area - DS 0F - EJECT -* external function 'super_key_do' prologue -* frame base=88, local stack=8, call args=0 -&FUNC SETC 'super_key_do' -@@SUKYDO PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'super_key_do' code - MVC 89(1,13),3(11) ==> pswkey - LA 6,8(,11) ==> r1 - LA 1,88(,13) - L 15,=V(@@ISSUP) - BALR 14,15 - LR 5,15 ==> sup - LTR 15,15 ==> sup - BNE @@L2 - MODESET MODE=SUP switch to supervisor state - LR 4,15 save return code ==> rc - LTR 4,4 ==> rc - BNE @@L4 -@@L2 EQU * - LA 3,88(,13) - IPK 0 get psw key in R2 - STC 2,0(,3) save psw key - IC 2,89(13) - CLM 2,1,=XL1'FF' - BE @@L5 - CLM 2,1,=XL1'0F' - BH @@L6 - SLL 2,4 - STC 2,89(13) -@@L6 EQU * - LA 3,89(,13) - IC 2,0(,3) get new psw key - SPKA 0(2) save in psw -@@L5 EQU * - L 2,4(11) - LR 15,2 => function to call - LR 1,6 => parameter list ==> r1 - BALR 14,15 call function - LR 4,15 save return code ==> rc - LA 3,88(,13) - IC 2,0(,3) get prev psw key - SPKA 0(2) save in psw - LTR 5,5 ==> sup - BNE @@L4 - MODESET MODE=PROB switch to problem state -@@L4 EQU * - LR 15,4 ==> rc -* Function 'super_key_do' epilogue - PDPEPIL -* Function 'super_key_do' literal pool - DS 0D - LTORG -* Function 'super_key_do' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@super.c b/src/crent370/clib/@@super.c deleted file mode 100644 index e62cfd4..0000000 --- a/src/crent370/clib/@@super.c +++ /dev/null @@ -1,36 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC '__super'"); -int __super(unsigned char pswkey, unsigned char *savekey) -{ - int rc = 0; - - if (!__isauth()) return EPERM; /* operation not permitted */ - - /* are we already in supervisor mode? */ - if (!__issup()) { - /* no, switch to supervisor mode */ - __asm__("MODESET\tMODE=SUP\n\tST\t15,0(,%0)" : : "r"(&rc) : "1", "14", "15"); - if (rc) goto quit; /* not likely, but just in case */ - } - - if (savekey) { - /* get current PSW key */ - __asm__("IPK\t0\n\tSTC\t2,0(,%0)" : : "r"(savekey) : "2"); - } - - /* are we to set a new PSW key? */ - if (pswkey != PSWKEYNONE) { - /* yes, set new PSW key */ - /* we'll allow for PSW key in low nibble value and shift if needed */ - if (pswkey < 0x10) pswkey = pswkey << 4; /* put key value in next higher nibble */ - - /* set new PSW key */ - __asm__("IC\t2,0(,%0)\n\tSPKA\t0(2)" : : "r"(&pswkey) : "2"); - } - -quit: - return rc; -} diff --git a/src/crent370/clib/@@super.o b/src/crent370/clib/@@super.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@super.s b/src/crent370/clib/@@super.s deleted file mode 100644 index 1df72d4..0000000 --- a/src/crent370/clib/@@super.s +++ /dev/null @@ -1,89 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@super.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC '__super' -* Program text area - DS 0F - EJECT -* external function '__super' prologue -* frame base=88, local stack=8, call args=0 -&FUNC SETC '__super' -@@SUPER PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__super' code - L 3,4(11) ==> savekey - MVC 92(1,13),3(11) ==> pswkey - MVC 88(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@ISAUTH) - BALR 14,15 - LA 2,1(0,0) - LTR 15,15 - BE @@L1 - LA 1,88(,13) - L 15,=V(@@ISSUP) - BALR 14,15 - LTR 15,15 - BNE @@L3 - LA 2,88(,13) - MODESET MODE=SUP - ST 15,0(,2) - L 2,88(13) - LTR 2,2 - BNE @@L5 -@@L3 EQU * - LTR 3,3 ==> savekey - BE @@L6 - IPK 0 - STC 2,0(,3) ==> savekey -@@L6 EQU * - IC 2,92(13) - CLM 2,1,=XL1'FF' - BE @@L5 - CLM 2,1,=XL1'0F' - BH @@L8 - SLL 2,4 - STC 2,92(13) -@@L8 EQU * - LA 3,92(,13) - IC 2,0(,3) - SPKA 0(2) -@@L5 EQU * - L 2,88(13) -@@L1 EQU * - LR 15,2 -* Function '__super' epilogue - PDPEPIL -* Function '__super' literal pool - DS 0D - LTORG -* Function '__super' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@svfmap.c b/src/crent370/clib/@@svfmap.c deleted file mode 100644 index f226546..0000000 --- a/src/crent370/clib/@@svfmap.c +++ /dev/null @@ -1,44 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC 'ssvt_funcmap'"); -int ssvt_funcmap(SSVT *ssvt, unsigned index, unsigned funcnum) -{ - int restore = 0; - unsigned char prevkey; - - if (!ssvt) return EPERM; - - /* index number must be 0 through 256 inclusive (0 disables the function) */ - if (index > 256) return EPERM; - - /* funcnum number must be 1 through 256 inclusive */ - if (!funcnum) return EPERM; - if (funcnum > 256) return EPERM; - - /* make funcnum relative to zero */ - funcnum--; - - /* save current PSW key */ - __asm__("IPK\t0 get psw key in R2\n\t" - "LR\t%0,2 save psw key in register" : "=r"(prevkey) : : "2"); - - if (prevkey != PSWKEY0) { - /* we need to switch to KEY 0 */ - restore = 1; /* restore the key before we return to caller */ - - /* set PSW key 0 */ - __asm__("SLR\t2,2 PSW key 0 value\n\t" - "SPKA\t0(2) save in psw" : : : "2"); - } - - /* update the SSVT index of the function address */ - ssvt->ssvtfcod[funcnum] = index; /* set index of function address or 0 */ - - if (restore) { - /* reset PSW key to callers key */ - __asm__("LR\t2,%0 get prev psw key\n\t" - "SPKA\t0(2) save in psw" : : "r"(prevkey) : "2"); - } -} diff --git a/src/crent370/clib/@@svfmap.o b/src/crent370/clib/@@svfmap.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@svfmap.s b/src/crent370/clib/@@svfmap.s deleted file mode 100644 index 589dd56..0000000 --- a/src/crent370/clib/@@svfmap.s +++ /dev/null @@ -1,82 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@svfmap.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'ssvt_funcmap' -* Program text area - DS 0F - EJECT -* external function 'ssvt_funcmap' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'ssvt_funcmap' -@@SVFMAP PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ssvt_funcmap' code - L 4,0(11) ==> ssvt - L 5,4(11) ==> index - L 3,8(11) ==> funcnum - SLR 6,6 ==> restore - LA 15,1(0,0) - LTR 4,4 ==> ssvt - BE @@L1 - LA 15,1(0,0) - LA 2,256(0,0) - CLR 5,2 ==> index - BH @@L1 - LA 15,1(0,0) - LTR 3,3 ==> funcnum - BE @@L1 - LA 15,1(0,0) - LA 2,256(0,0) - CLR 3,2 ==> funcnum - BH @@L1 - BCTR 3,0 ==> funcnum - IPK 0 get psw key in R2 - LR 15,2 save psw key in register ==> prevkey - CLM 15,1,=XL1'00' ==> prevkey - BE @@L6 - LA 6,1(0,0) ==> restore - SLR 2,2 PSW key 0 value - SPKA 0(2) save in psw -@@L6 EQU * - STC 5,4(3,4) ==> index,ssvtfcod - LTR 6,6 ==> restore - BE @@L7 - LR 2,15 get prev psw key ==> prevkey - SPKA 0(2) save in psw -@@L7 EQU * -@@L1 EQU * -* Function 'ssvt_funcmap' epilogue - PDPEPIL -* Function 'ssvt_funcmap' literal pool - DS 0D - LTORG -* Function 'ssvt_funcmap' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@svfree.c b/src/crent370/clib/@@svfree.c deleted file mode 100644 index a882eb0..0000000 --- a/src/crent370/clib/@@svfree.c +++ /dev/null @@ -1,33 +0,0 @@ -#include -#include - -__asm__("\n&FUNC SETC 'ssvt_free'"); -void ssvt_free(SSVT *ssvt) -{ - int restore = 0; - unsigned char prevkey; - - if (!ssvt) return; - - /* save current PSW key */ - __asm__("IPK\t0 get psw key in R2\n\t" - "LR\t%0,2 save psw key in register" : "=r"(prevkey) : : "2"); - - if (prevkey != PSWKEY0) { - /* we need to switch to KEY 0 */ - restore = 1; /* restore the key before we return to caller */ - - /* set PSW key 0 */ - __asm__("SLR\t2,2 PSW key 0 value\n\t" - "SPKA\t0(2) save in psw" : : : "2"); - } - - /* release the SSVT storage */ - freemain(ssvt); - - if (restore) { - /* reset PSW key to callers key */ - __asm__("LR\t2,%0 get prev psw key\n\t" - "SPKA\t0(2) save in psw" : : "r"(prevkey) : "2"); - } -} diff --git a/src/crent370/clib/@@svfree.o b/src/crent370/clib/@@svfree.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@svfree.s b/src/crent370/clib/@@svfree.s deleted file mode 100644 index 4964a73..0000000 --- a/src/crent370/clib/@@svfree.s +++ /dev/null @@ -1,69 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@svfree.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'ssvt_free' -* Program text area - DS 0F - EJECT -* external function 'ssvt_free' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'ssvt_free' -@@SVFREE PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ssvt_free' code - L 15,0(11) ==> ssvt - SLR 4,4 ==> restore - LTR 15,15 ==> ssvt - BE @@L1 - IPK 0 get psw key in R2 - LR 3,2 save psw key in register ==> prevkey - CLM 3,1,=XL1'00' ==> prevkey - BE @@L3 - LA 4,1(0,0) ==> restore - SLR 2,2 PSW key 0 value - SPKA 0(2) save in psw -@@L3 EQU * - ST 15,88(13) ==> ssvt - LA 1,88(,13) - L 15,=V(FREEMAIN) - BALR 14,15 - LTR 4,4 ==> restore - BE @@L1 - LR 2,3 get prev psw key ==> prevkey - SPKA 0(2) save in psw -@@L1 EQU * -* Function 'ssvt_free' epilogue - PDPEPIL -* Function 'ssvt_free' literal pool - DS 0D - LTORG -* Function 'ssvt_free' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@svnew.c b/src/crent370/clib/@@svnew.c deleted file mode 100644 index f4106d5..0000000 --- a/src/crent370/clib/@@svnew.c +++ /dev/null @@ -1,47 +0,0 @@ -#include -#include - -__asm__("\n&FUNC SETC 'ssvt_new'"); -SSVT * ssvt_new(unsigned funcmax) -{ - int restore = 0; - SSVT *ssvt; - unsigned size; - unsigned char prevkey; - - /* sanity check */ - if (funcmax > 256) return (SSVT*)0; - - /* save current PSW key */ - __asm__("IPK\t0 get psw key in R2\n\t" - "LR\t%0,2 save psw key in register" : "=r"(prevkey) : : "2"); - - if (prevkey != PSWKEY0) { - /* we need to switch to KEY 0 */ - restore = 1; /* restore the key before we return to caller */ - - /* set PSW key 0 */ - __asm__("SLR\t2,2 PSW key 0 value\n\t" - "SPKA\t0(2) save in psw" : : : "2"); - } - - /* calulate size of SSVT we need to allocate */ - size = sizeof(SSVT) + (funcmax * 4); - - /* allocate SSVT in subpool 241, key 0 */ - ssvt = getmain(size, 241); - if (ssvt) { - /* note: our getmain clears allocated storage, so no need to clear it again */ - - /* set the maximum number of functions we support */ - ssvt->ssvtfnum = funcmax; - } - - if (restore) { - /* reset PSW key to callers key */ - __asm__("LR\t2,%0 get prev psw key\n\t" - "SPKA\t0(2) save in psw" : : "r"(prevkey) : "2"); - } - - return ssvt; -} diff --git a/src/crent370/clib/@@svnew.o b/src/crent370/clib/@@svnew.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@svnew.s b/src/crent370/clib/@@svnew.s deleted file mode 100644 index 55cd73b..0000000 --- a/src/crent370/clib/@@svnew.s +++ /dev/null @@ -1,79 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@svnew.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'ssvt_new' -* Program text area - DS 0F - EJECT -* external function 'ssvt_new' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'ssvt_new' -@@SVNEW PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ssvt_new' code - L 4,0(11) ==> funcmax - SLR 5,5 ==> restore - LR 15,5 ==> ssvt,restore - LA 2,256(0,0) - CLR 4,2 ==> funcmax - BH @@L1 - IPK 0 get psw key in R2 - LR 3,2 save psw key in register ==> prevkey - CLM 3,1,=XL1'00' ==> prevkey - BE @@L3 - LA 5,1(0,0) ==> restore - SLR 2,2 PSW key 0 value - SPKA 0(2) save in psw -@@L3 EQU * - LR 2,4 ==> size,funcmax - MH 2,=H'4' ==> size - A 2,=F'260' ==> size - ST 2,88(13) ==> size - MVC 92(4,13),=F'241' - LA 1,88(,13) - L 15,=V(GETMAIN) - BALR 14,15 - LTR 15,15 ==> ssvt - BE @@L4 - STH 4,2(15) ==> funcmax,ssvtfnum -@@L4 EQU * - LTR 5,5 ==> restore - BE @@L1 - LR 2,3 get prev psw key ==> prevkey - SPKA 0(2) save in psw -@@L1 EQU * -* Function 'ssvt_new' epilogue - PDPEPIL -* Function 'ssvt_new' literal pool - DS 0D - LTORG -* Function 'ssvt_new' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@svset.c b/src/crent370/clib/@@svset.c deleted file mode 100644 index 92437c0..0000000 --- a/src/crent370/clib/@@svset.c +++ /dev/null @@ -1,41 +0,0 @@ -#include -#include -#include - -__asm__("\n&FUNC SETC 'ssvt_set'"); -int ssvt_set(SSVT *ssvt, unsigned index, void *func) -{ - int restore = 0; - unsigned char prevkey; - - if (!ssvt) return EPERM; - - /* index number must be 1 through 256 inclusive */ - if (!index) return EPERM; - if (index > 256) return EPERM; - - /* make index relative to zero */ - index--; - - /* save current PSW key */ - __asm__("IPK\t0 get psw key in R2\n\t" - "LR\t%0,2 save psw key in register" : "=r"(prevkey) : : "2"); - - if (prevkey != PSWKEY0) { - /* we need to switch to KEY 0 */ - restore = 1; /* restore the key before we return to caller */ - - /* set PSW key 0 */ - __asm__("SLR\t2,2 PSW key 0 value\n\t" - "SPKA\t0(2) save in psw" : : : "2"); - } - - /* update the SSVT function address */ - ssvt->ssvtfrtn[index] = func; /* set function address */ - - if (restore) { - /* reset PSW key to callers key */ - __asm__("LR\t2,%0 get prev psw key\n\t" - "SPKA\t0(2) save in psw" : : "r"(prevkey) : "2"); - } -} diff --git a/src/crent370/clib/@@svset.o b/src/crent370/clib/@@svset.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@svset.s b/src/crent370/clib/@@svset.s deleted file mode 100644 index bb28c8e..0000000 --- a/src/crent370/clib/@@svset.s +++ /dev/null @@ -1,80 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@svset.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'ssvt_set' -* Program text area - DS 0F - EJECT -* external function 'ssvt_set' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'ssvt_set' -@@SVSET PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ssvt_set' code - L 4,0(11) ==> ssvt - L 3,4(11) ==> index - SLR 5,5 ==> restore - LA 15,1(0,0) - LTR 4,4 ==> ssvt - BE @@L1 - LA 15,1(0,0) - LTR 3,3 ==> index - BE @@L1 - LA 15,1(0,0) - LA 2,256(0,0) - CLR 3,2 ==> index - BH @@L1 - BCTR 3,0 ==> index - IPK 0 get psw key in R2 - LR 15,2 save psw key in register ==> prevkey - CLM 15,1,=XL1'00' ==> prevkey - BE @@L5 - LA 5,1(0,0) ==> restore - SLR 2,2 PSW key 0 value - SPKA 0(2) save in psw -@@L5 EQU * - LR 2,3 ==> index - MH 2,=H'4' - L 3,8(11) ==> func - ST 3,260(4,2) ==> .ssvtfrtn - LTR 5,5 ==> restore - BE @@L6 - LR 2,15 get prev psw key ==> prevkey - SPKA 0(2) save in psw -@@L6 EQU * -@@L1 EQU * -* Function 'ssvt_set' epilogue - PDPEPIL -* Function 'ssvt_set' literal pool - DS 0D - LTORG -* Function 'ssvt_set' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@tiot.c b/src/crent370/clib/@@tiot.c deleted file mode 100644 index 238536f..0000000 --- a/src/crent370/clib/@@tiot.c +++ /dev/null @@ -1,17 +0,0 @@ -#include "clibtiot.h" - -TIOT *__tiot(void) -{ - TIOT *tiot; - - __asm("L\t15,PSATOLD-PSA OUR TCB ADDRESS\n\t" - "L\t15,TCBTIO-TCB(,15) TIOT ADDRESS\n\t" - "ST\t15,%0" : "=m"(tiot)); - - return tiot; -} - __asm("PRINT NOGEN"); - __asm("IKJTCB"); - __asm("IHAPSA"); - __asm("PRINT GEN"); - diff --git a/src/crent370/clib/@@tiot.o b/src/crent370/clib/@@tiot.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@tiot.s b/src/crent370/clib/@@tiot.s deleted file mode 100644 index 4a7ff9f..0000000 --- a/src/crent370/clib/@@tiot.s +++ /dev/null @@ -1,54 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@tiot.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__tiot' prologue -* frame base=88, local stack=8, call args=0 -&FUNC SETC '__tiot' -@@TIOT PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__tiot' code - L 15,PSATOLD-PSA OUR TCB ADDRESS - L 15,TCBTIO-TCB(,15) TIOT ADDRESS - ST 15,88(13) - L 15,88(13) -* Function '__tiot' epilogue - PDPEPIL -* Function '__tiot' literal pool - DS 0D - LTORG -* Function '__tiot' page table -@@PGT0 DS 0F - DC A(@@PG0) - PRINT NOGEN - IKJTCB - IHAPSA - PRINT GEN - END diff --git a/src/crent370/clib/@@tminit.c b/src/crent370/clib/@@tminit.c deleted file mode 100644 index 12cdad5..0000000 --- a/src/crent370/clib/@@tminit.c +++ /dev/null @@ -1,20 +0,0 @@ -#include - -__asm__("\n&FUNC SETC 'tmr_init'"); -int tmr_init(void) -{ - TMR *tmr = tmr_get(); - int lockrc; - - lockrc = lock(tmr, 0); - if (!(tmr->flags & TMR_FLAG_INIT)) { - /* not initialized yet */ - strcpy(tmr->eye, TMR_EYE); - /* init the next avail ID value */ - tmr->id = ((unsigned)rand() << 8) & 0x00FFFF00; /* pseudo random value */ - tmr->flags = TMR_FLAG_INIT; - } - if (lockrc==0) unlock(tmr, 0); - - return 0; -} diff --git a/src/crent370/clib/@@tminit.o b/src/crent370/clib/@@tminit.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@tminit.s b/src/crent370/clib/@@tminit.s deleted file mode 100644 index be987d8..0000000 --- a/src/crent370/clib/@@tminit.s +++ /dev/null @@ -1,87 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@tminit.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'tmr_init' -* Program text area - DS 0F - EJECT -* external function 'tmr_init' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'tmr_init' -@@TMINIT PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'tmr_init' code - LA 1,88(,13) - L 15,=V(@@TMRGET) - BALR 14,15 - LR 3,15 ==> tmr - ST 15,88(13) ==> tmr - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 4,15 ==> lockrc - IC 2,8(3) ==> .flags - N 2,=F'-128' - CLM 2,1,=XL1'00' - BNE @@L2 - ST 3,88(13) ==> tmr - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - LA 1,88(,13) - L 15,=V(RAND) - BALR 14,15 - SLL 15,8 - N 15,=F'16776960' - ST 15,28(3) ==> .id - MVI 8(3),128 ==> .flags -@@L2 EQU * - LTR 4,4 ==> lockrc - BNE @@L3 - ST 3,88(13) ==> tmr - ST 4,92(13) ==> lockrc - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L3 EQU * - SLR 15,15 -* Function 'tmr_init' epilogue - PDPEPIL -* Function 'tmr_init' literal pool - DS 0D - LTORG -* Function 'tmr_init' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'**TMR**' - DC X'0' - END diff --git a/src/crent370/clib/@@tmrecb.c b/src/crent370/clib/@@tmrecb.c deleted file mode 100644 index da323d0..0000000 --- a/src/crent370/clib/@@tmrecb.c +++ /dev/null @@ -1,24 +0,0 @@ -#include - -__asm__("\n&FUNC SETC 'tmr_ecb'"); -TQEID tmr_ecb(ECB *ecb, unsigned bintvl) -{ - TMR *tmr = tmr_get(); - TQE *tqe = NULL; - TQEID id = 0; - int lockrc; - - tmr_start(); - - tqe = tqe_new(ecb, NULL, NULL, bintvl, 0); - if (tqe) { - id = tqe->id; - - lockrc = lock(tmr, 0); - array_add(&tmr->tqe, tqe); - ecb_post(&tmr->wakeup, 0); - if (lockrc==0) unlock(tmr, 0); - } - - return id; -} diff --git a/src/crent370/clib/@@tmrecb.o b/src/crent370/clib/@@tmrecb.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@tmrecb.s b/src/crent370/clib/@@tmrecb.s deleted file mode 100644 index d666ce7..0000000 --- a/src/crent370/clib/@@tmrecb.s +++ /dev/null @@ -1,96 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@tmrecb.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'tmr_ecb' -* Program text area - DS 0F - EJECT -* external function 'tmr_ecb' prologue -* frame base=88, local stack=0, call args=24 -&FUNC SETC 'tmr_ecb' -@@TMRECB PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'tmr_ecb' code - LA 1,88(,13) - L 15,=V(@@TMRGET) - BALR 14,15 - LR 4,15 ==> tmr - SLR 5,5 ==> id - LA 1,88(,13) - L 15,=V(@@TMSTRT) - BALR 14,15 - MVC 88(4,13),0(11) ==> ecb - ST 5,92(13) ==> id - ST 5,96(13) ==> id - MVC 100(4,13),4(11) ==> bintvl - ST 5,104(13) ==> id - LA 1,88(,13) - L 15,=V(@@TQNEW) - BALR 14,15 - LR 3,15 ==> tqe - LTR 15,15 ==> tqe - BE @@L2 - L 5,40(15) ==> id,id - ST 4,88(13) ==> tmr - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 6,15 ==> lockrc - LR 2,4 ==> tmr - A 2,=F'24' - ST 2,88(13) - ST 3,92(13) ==> tqe - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - A 2,=F'-4' - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@ECBPST) - BALR 14,15 - LTR 6,6 ==> lockrc - BNE @@L2 - ST 4,88(13) ==> tmr - ST 6,92(13) ==> lockrc - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L2 EQU * - LR 15,5 ==> id -* Function 'tmr_ecb' epilogue - PDPEPIL -* Function 'tmr_ecb' literal pool - DS 0D - LTORG -* Function 'tmr_ecb' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@tmrece.c b/src/crent370/clib/@@tmrece.c deleted file mode 100644 index 322dc63..0000000 --- a/src/crent370/clib/@@tmrece.c +++ /dev/null @@ -1,26 +0,0 @@ -#include - -__asm__("\n&FUNC SETC 'tmr_ecb_every'"); -TQEID tmr_ecb_every(ECB *ecb, unsigned bintvl) -{ - TMR *tmr = tmr_get(); - TQE *tqe = NULL; - TQEID id = 0; - int lockrc; - - tmr_start(); - - tqe = tqe_new(ecb, NULL, NULL, bintvl, TQE_FLAG_KEEP + TQE_FLAG_RESET); - if (tqe) { - id = tqe->id; - - lockrc = lock(tmr, 0); - array_add(&tmr->tqe, tqe); - ecb_post(&tmr->wakeup, 0); - if (lockrc==0) unlock(tmr, 0); - } - - return id; -} - - diff --git a/src/crent370/clib/@@tmrece.o b/src/crent370/clib/@@tmrece.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@tmrece.s b/src/crent370/clib/@@tmrece.s deleted file mode 100644 index 236eeff..0000000 --- a/src/crent370/clib/@@tmrece.s +++ /dev/null @@ -1,96 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@tmrece.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'tmr_ecb_every' -* Program text area - DS 0F - EJECT -* external function 'tmr_ecb_every' prologue -* frame base=88, local stack=0, call args=24 -&FUNC SETC 'tmr_ecb_every' -@@TMRECE PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'tmr_ecb_every' code - LA 1,88(,13) - L 15,=V(@@TMRGET) - BALR 14,15 - LR 4,15 ==> tmr - SLR 5,5 ==> id - LA 1,88(,13) - L 15,=V(@@TMSTRT) - BALR 14,15 - MVC 88(4,13),0(11) ==> ecb - ST 5,92(13) ==> id - ST 5,96(13) ==> id - MVC 100(4,13),4(11) ==> bintvl - MVC 104(4,13),=F'192' - LA 1,88(,13) - L 15,=V(@@TQNEW) - BALR 14,15 - LR 3,15 ==> tqe - LTR 15,15 ==> tqe - BE @@L2 - L 5,40(15) ==> id,id - ST 4,88(13) ==> tmr - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 6,15 ==> lockrc - LR 2,4 ==> tmr - A 2,=F'24' - ST 2,88(13) - ST 3,92(13) ==> tqe - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - A 2,=F'-4' - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@ECBPST) - BALR 14,15 - LTR 6,6 ==> lockrc - BNE @@L2 - ST 4,88(13) ==> tmr - ST 6,92(13) ==> lockrc - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L2 EQU * - LR 15,5 ==> id -* Function 'tmr_ecb_every' epilogue - PDPEPIL -* Function 'tmr_ecb_every' literal pool - DS 0D - LTORG -* Function 'tmr_ecb_every' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@tmreck.c b/src/crent370/clib/@@tmreck.c deleted file mode 100644 index 2adec76..0000000 --- a/src/crent370/clib/@@tmreck.c +++ /dev/null @@ -1,25 +0,0 @@ -#include - -__asm__("\n&FUNC SETC 'tmr_ecb_keep'"); -TQEID tmr_ecb_keep(ECB *ecb, unsigned bintvl) -{ - TMR *tmr = tmr_get(); - TQE *tqe = NULL; - TQEID id = 0; - int lockrc; - - tmr_start(); - - tqe = tqe_new(ecb, NULL, NULL, bintvl, TQE_FLAG_KEEP); - if (tqe) { - id = tqe->id; - - lockrc = lock(tmr, 0); - array_add(&tmr->tqe, tqe); - ecb_post(&tmr->wakeup, 0); - if (lockrc==0) unlock(tmr, 0); - } - - return id; -} - diff --git a/src/crent370/clib/@@tmreck.o b/src/crent370/clib/@@tmreck.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@tmreck.s b/src/crent370/clib/@@tmreck.s deleted file mode 100644 index 97a6c48..0000000 --- a/src/crent370/clib/@@tmreck.s +++ /dev/null @@ -1,96 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@tmreck.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'tmr_ecb_keep' -* Program text area - DS 0F - EJECT -* external function 'tmr_ecb_keep' prologue -* frame base=88, local stack=0, call args=24 -&FUNC SETC 'tmr_ecb_keep' -@@TMRECK PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'tmr_ecb_keep' code - LA 1,88(,13) - L 15,=V(@@TMRGET) - BALR 14,15 - LR 4,15 ==> tmr - SLR 5,5 ==> id - LA 1,88(,13) - L 15,=V(@@TMSTRT) - BALR 14,15 - MVC 88(4,13),0(11) ==> ecb - ST 5,92(13) ==> id - ST 5,96(13) ==> id - MVC 100(4,13),4(11) ==> bintvl - MVC 104(4,13),=F'128' - LA 1,88(,13) - L 15,=V(@@TQNEW) - BALR 14,15 - LR 3,15 ==> tqe - LTR 15,15 ==> tqe - BE @@L2 - L 5,40(15) ==> id,id - ST 4,88(13) ==> tmr - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 6,15 ==> lockrc - LR 2,4 ==> tmr - A 2,=F'24' - ST 2,88(13) - ST 3,92(13) ==> tqe - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - A 2,=F'-4' - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@ECBPST) - BALR 14,15 - LTR 6,6 ==> lockrc - BNE @@L2 - ST 4,88(13) ==> tmr - ST 6,92(13) ==> lockrc - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L2 EQU * - LR 15,5 ==> id -* Function 'tmr_ecb_keep' epilogue - PDPEPIL -* Function 'tmr_ecb_keep' literal pool - DS 0D - LTORG -* Function 'tmr_ecb_keep' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@tmrfue.c b/src/crent370/clib/@@tmrfue.c deleted file mode 100644 index 49f9055..0000000 --- a/src/crent370/clib/@@tmrfue.c +++ /dev/null @@ -1,26 +0,0 @@ -#include - -__asm__("\n&FUNC SETC 'tmr_func_every'"); -TQEID tmr_func_every(int (*func)(void *, TQE*), void *udata, unsigned bintvl) -{ - TMR *tmr = tmr_get(); - TQE *tqe = NULL; - TQEID id = 0; - int lockrc; - - tmr_start(); - - tqe = tqe_new(NULL, func, udata, bintvl, TQE_FLAG_KEEP + TQE_FLAG_RESET); - if (tqe) { - id = tqe->id; - - lockrc = lock(tmr, 0); - array_add(&tmr->tqe, tqe); - ecb_post(&tmr->wakeup, 0); - if (lockrc==0) unlock(tmr, 0); - } - - return id; -} - - diff --git a/src/crent370/clib/@@tmrfue.o b/src/crent370/clib/@@tmrfue.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@tmrfue.s b/src/crent370/clib/@@tmrfue.s deleted file mode 100644 index baa375a..0000000 --- a/src/crent370/clib/@@tmrfue.s +++ /dev/null @@ -1,96 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@tmrfue.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'tmr_func_every' -* Program text area - DS 0F - EJECT -* external function 'tmr_func_every' prologue -* frame base=88, local stack=0, call args=24 -&FUNC SETC 'tmr_func_every' -@@TMRFUE PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'tmr_func_every' code - LA 1,88(,13) - L 15,=V(@@TMRGET) - BALR 14,15 - LR 4,15 ==> tmr - SLR 5,5 ==> id - LA 1,88(,13) - L 15,=V(@@TMSTRT) - BALR 14,15 - ST 5,88(13) ==> id - MVC 92(4,13),0(11) ==> func - MVC 96(4,13),4(11) ==> udata - MVC 100(4,13),8(11) ==> bintvl - MVC 104(4,13),=F'192' - LA 1,88(,13) - L 15,=V(@@TQNEW) - BALR 14,15 - LR 3,15 ==> tqe - LTR 15,15 ==> tqe - BE @@L2 - L 5,40(15) ==> id,id - ST 4,88(13) ==> tmr - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 6,15 ==> lockrc - LR 2,4 ==> tmr - A 2,=F'24' - ST 2,88(13) - ST 3,92(13) ==> tqe - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - A 2,=F'-4' - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@ECBPST) - BALR 14,15 - LTR 6,6 ==> lockrc - BNE @@L2 - ST 4,88(13) ==> tmr - ST 6,92(13) ==> lockrc - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L2 EQU * - LR 15,5 ==> id -* Function 'tmr_func_every' epilogue - PDPEPIL -* Function 'tmr_func_every' literal pool - DS 0D - LTORG -* Function 'tmr_func_every' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@tmrfuk.c b/src/crent370/clib/@@tmrfuk.c deleted file mode 100644 index a240d59..0000000 --- a/src/crent370/clib/@@tmrfuk.c +++ /dev/null @@ -1,25 +0,0 @@ -#include - -__asm__("\n&FUNC SETC 'tmr_func_keep'"); -TQEID tmr_func_keep(int (*func)(void *, TQE*), void *udata, unsigned bintvl) -{ - TMR *tmr = tmr_get(); - TQE *tqe = NULL; - TQEID id = 0; - int lockrc; - - tmr_start(); - - tqe = tqe_new(NULL, func, udata, bintvl, TQE_FLAG_KEEP); - if (tqe) { - id = tqe->id; - - lockrc = lock(tmr, 0); - array_add(&tmr->tqe, tqe); - ecb_post(&tmr->wakeup, 0); - if (lockrc==0) unlock(tmr, 0); - } - - return id; -} - diff --git a/src/crent370/clib/@@tmrfuk.o b/src/crent370/clib/@@tmrfuk.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@tmrfuk.s b/src/crent370/clib/@@tmrfuk.s deleted file mode 100644 index dee93a5..0000000 --- a/src/crent370/clib/@@tmrfuk.s +++ /dev/null @@ -1,96 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@tmrfuk.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'tmr_func_keep' -* Program text area - DS 0F - EJECT -* external function 'tmr_func_keep' prologue -* frame base=88, local stack=0, call args=24 -&FUNC SETC 'tmr_func_keep' -@@TMRFUK PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'tmr_func_keep' code - LA 1,88(,13) - L 15,=V(@@TMRGET) - BALR 14,15 - LR 4,15 ==> tmr - SLR 5,5 ==> id - LA 1,88(,13) - L 15,=V(@@TMSTRT) - BALR 14,15 - ST 5,88(13) ==> id - MVC 92(4,13),0(11) ==> func - MVC 96(4,13),4(11) ==> udata - MVC 100(4,13),8(11) ==> bintvl - MVC 104(4,13),=F'128' - LA 1,88(,13) - L 15,=V(@@TQNEW) - BALR 14,15 - LR 3,15 ==> tqe - LTR 15,15 ==> tqe - BE @@L2 - L 5,40(15) ==> id,id - ST 4,88(13) ==> tmr - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 6,15 ==> lockrc - LR 2,4 ==> tmr - A 2,=F'24' - ST 2,88(13) - ST 3,92(13) ==> tqe - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - A 2,=F'-4' - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@ECBPST) - BALR 14,15 - LTR 6,6 ==> lockrc - BNE @@L2 - ST 4,88(13) ==> tmr - ST 6,92(13) ==> lockrc - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L2 EQU * - LR 15,5 ==> id -* Function 'tmr_func_keep' epilogue - PDPEPIL -* Function 'tmr_func_keep' literal pool - DS 0D - LTORG -* Function 'tmr_func_keep' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@tmrfun.c b/src/crent370/clib/@@tmrfun.c deleted file mode 100644 index 2559de3..0000000 --- a/src/crent370/clib/@@tmrfun.c +++ /dev/null @@ -1,24 +0,0 @@ -#include - -__asm__("\n&FUNC SETC 'tmr_func'"); -TQEID tmr_func(int (*func)(void *, TQE*), void *udata, unsigned bintvl) -{ - TMR *tmr = tmr_get(); - TQE *tqe = NULL; - TQEID id = 0; - int lockrc; - - tmr_start(); - - tqe = tqe_new(NULL, func, udata, bintvl, 0); - if (tqe) { - id = tqe->id; - - lockrc = lock(tmr, 0); - array_add(&tmr->tqe, tqe); - ecb_post(&tmr->wakeup, 0); - if (lockrc==0) unlock(tmr, 0); - } - - return id; -} diff --git a/src/crent370/clib/@@tmrfun.o b/src/crent370/clib/@@tmrfun.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@tmrfun.s b/src/crent370/clib/@@tmrfun.s deleted file mode 100644 index 442d30f..0000000 --- a/src/crent370/clib/@@tmrfun.s +++ /dev/null @@ -1,96 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@tmrfun.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'tmr_func' -* Program text area - DS 0F - EJECT -* external function 'tmr_func' prologue -* frame base=88, local stack=0, call args=24 -&FUNC SETC 'tmr_func' -@@TMRFUN PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'tmr_func' code - LA 1,88(,13) - L 15,=V(@@TMRGET) - BALR 14,15 - LR 4,15 ==> tmr - SLR 5,5 ==> id - LA 1,88(,13) - L 15,=V(@@TMSTRT) - BALR 14,15 - ST 5,88(13) ==> id - MVC 92(4,13),0(11) ==> func - MVC 96(4,13),4(11) ==> udata - MVC 100(4,13),8(11) ==> bintvl - ST 5,104(13) ==> id - LA 1,88(,13) - L 15,=V(@@TQNEW) - BALR 14,15 - LR 3,15 ==> tqe - LTR 15,15 ==> tqe - BE @@L2 - L 5,40(15) ==> id,id - ST 4,88(13) ==> tmr - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 6,15 ==> lockrc - LR 2,4 ==> tmr - A 2,=F'24' - ST 2,88(13) - ST 3,92(13) ==> tqe - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - A 2,=F'-4' - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@ECBPST) - BALR 14,15 - LTR 6,6 ==> lockrc - BNE @@L2 - ST 4,88(13) ==> tmr - ST 6,92(13) ==> lockrc - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L2 EQU * - LR 15,5 ==> id -* Function 'tmr_func' epilogue - PDPEPIL -* Function 'tmr_func' literal pool - DS 0D - LTORG -* Function 'tmr_func' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@tmrget.c b/src/crent370/clib/@@tmrget.c deleted file mode 100644 index 2d83d6a..0000000 --- a/src/crent370/clib/@@tmrget.c +++ /dev/null @@ -1,11 +0,0 @@ -#include - -static TMR key = {0}; - -__asm__("\n&FUNC SETC 'tmr_get'"); -TMR *tmr_get(void) -{ - TMR *tmr = __wsaget(&key, sizeof(TMR)); - - return tmr; -} diff --git a/src/crent370/clib/@@tmrget.o b/src/crent370/clib/@@tmrget.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@tmrget.s b/src/crent370/clib/@@tmrget.s deleted file mode 100644 index 54d7bb3..0000000 --- a/src/crent370/clib/@@tmrget.s +++ /dev/null @@ -1,59 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@tmrget.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program data area - DS 0F -@@6 EQU * - DC X'00' - DC 7X'00' - DC 24X'00' - -&FUNC SETC 'tmr_get' -* Program text area - DS 0F - EJECT -* external function 'tmr_get' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'tmr_get' -@@TMRGET PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'tmr_get' code - MVC 88(4,13),=A(@@6) - MVC 92(4,13),=F'32' - LA 1,88(,13) - L 15,=V(@@WSAGET) - BALR 14,15 -* Function 'tmr_get' epilogue - PDPEPIL -* Function 'tmr_get' literal pool - DS 0D - LTORG -* Function 'tmr_get' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@tmrid.c b/src/crent370/clib/@@tmrid.c deleted file mode 100644 index 603a367..0000000 --- a/src/crent370/clib/@@tmrid.c +++ /dev/null @@ -1,64 +0,0 @@ -#include - -static int unique_id(TMR *tmr, unsigned id); - -__asm__("\n&FUNC SETC 'tmr_id'"); -unsigned -tmr_id(void) -{ - unsigned *psa = (unsigned *)0; - unsigned *tcb = (unsigned*)psa[0x21c/4]; /* TCB == PSATOLD */ - unsigned *ascb = (unsigned *)psa[0x224/4]; /* ascb == PSAAOLD */ - unsigned asid = ((ascb[0x24/4]) >> 16); - TMR *tmr = tmr_get(); - unsigned id; - int lockrc; - - tmr_init(); - - lockrc = lock(tmr, 0); - do { - tmr->id = (tmr->id ^ rand()) & 0x00FFFFFF; - switch (tmr->id & 3) { - case 0: - id = tmr->id - rand(); - break; - case 1: - id = tmr->id ^ rand(); - break; - case 2: - id = tmr->id % (rand() + 1); - break; - case 3: - id = tmr->id * (rand() & 0xFF); - break; - } - id = id & 0x00FFFFFF; - if (id > 1000 && unique_id(tmr, id)) break; - } while(1); - if (lockrc==0) unlock(tmr, 0); - - return id; -} - -__asm__("\n&FUNC SETC 'unique_id'"); -static int -unique_id(TMR *tmr, unsigned id) -{ - int rc = 1; /* assume unique id */ - unsigned count = array_count(&tmr->tqe); - unsigned n; - - for(n=0; n < count; n++) { - TQE *tqe = tmr->tqe[n]; - - if (!tqe) continue; - if (tqe->id == id) { - rc = 0; /* not unique */ - break; - } - } - - if (rc) tmr->id = id; - return rc; -} diff --git a/src/crent370/clib/@@tmrid.o b/src/crent370/clib/@@tmrid.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@tmrid.s b/src/crent370/clib/@@tmrid.s deleted file mode 100644 index a49a7f7..0000000 --- a/src/crent370/clib/@@tmrid.s +++ /dev/null @@ -1,211 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@tmrid.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'tmr_id' -* Program text area - DS 0F - EJECT -* external function 'tmr_id' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'tmr_id' -@@TMRID PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'tmr_id' code - SLR 4,4 - SLR 5,5 - LR 6,4 ==> id - LR 7,5 ==> id - LA 1,88(,13) - L 15,=V(@@TMRGET) - BALR 14,15 - LR 3,15 ==> tmr - LA 1,88(,13) - L 15,=V(@@TMINIT) - BALR 14,15 - ST 3,88(13) ==> tmr - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 8,15 ==> lockrc -@@L2 EQU * - LA 1,88(,13) - L 15,=V(RAND) - BALR 14,15 - X 15,28(3) ==> .id - N 15,=F'16777215' - ST 15,28(3) ==> .id - N 15,=F'3' - LA 9,1(0,0) - CLR 15,9 - BE @@L7 - BL @@L6 - LA 9,2(0,0) - CLR 15,9 - BE @@L8 - LA 9,3(0,0) - CLR 15,9 - BE @@L12 - B @@L5 -@@L6 EQU * - LA 1,88(,13) - L 15,=V(RAND) - BALR 14,15 - L 2,28(3) ==> id,id - SR 2,15 ==> id,tmr - B @@L5 -@@L7 EQU * - LA 1,88(,13) - L 15,=V(RAND) - BALR 14,15 - LR 2,15 ==> id,tmr - X 2,28(3) ==> id,id - B @@L5 -@@L8 EQU * - LA 1,88(,13) - L 15,=V(RAND) - BALR 14,15 - L 4,28(3) ==> .id - A 15,=F'1' - CLR 15,4 - BH @@L11 - LTR 15,15 - BL @@L10 - LA 2,1(0,0) - CLR 15,2 - BE @@L9 - SRDL 4,32 - DR 4,15 - B @@L11 -@@L9 EQU * - SLR 4,4 - B @@L11 -@@L10 EQU * - SR 4,15 -@@L11 EQU * - LR 2,4 ==> id - B @@L5 -@@L12 EQU * - LA 1,88(,13) - L 15,=V(RAND) - BALR 14,15 - N 15,=F'255' - L 7,28(3) ==> id,id - MR 6,15 ==> id - LR 2,7 ==> id -@@L5 EQU * - N 2,=F'16777215' ==> id - LA 9,1000(0,0) - CLR 2,9 ==> id - BNH @@L2 - ST 3,88(13) ==> tmr - ST 2,92(13) ==> id - LA 1,88(,13) - L 15,=A(@@6) - BALR 14,15 - LTR 15,15 ==> tmr - BE @@L2 - LTR 8,8 ==> lockrc - BNE @@L17 - ST 3,88(13) ==> tmr - ST 8,92(13) ==> lockrc - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L17 EQU * - LR 15,2 ==> id -* Function 'tmr_id' epilogue - PDPEPIL -* Function 'tmr_id' literal pool - DS 0D - LTORG -* Function 'tmr_id' page table -@@PGT0 DS 0F - DC A(@@PG0) - -&FUNC SETC 'unique_id' - DS 0F - EJECT -* static function 'unique_id' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'unique_id' -@@6 PDPPRLG CINDEX=1,FRAME=96,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'unique_id' code - L 6,0(11) ==> tmr - L 7,4(11) ==> id - LA 5,1(0,0) ==> rc - LR 2,6 ==> tmr - A 2,=F'24' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - SLR 3,3 ==> n - CLR 3,15 ==> n,count - BNL @@L20 - L 4,24(6) ==> .tqe -@@L25 EQU * - LR 2,3 ==> n - MH 2,=H'4' - L 2,0(2,4) ==> tqe - LTR 2,2 ==> tqe - BE @@L21 - L 2,40(2) ==> .id - CLR 2,7 ==> id - BNE @@L21 - SLR 5,5 ==> rc - B @@L20 -@@L21 EQU * - A 3,=F'1' ==> n - CLR 3,15 ==> n,count - BL @@L25 -@@L20 EQU * - LTR 5,5 ==> rc - BE @@L26 - ST 7,28(6) ==> id,id -@@L26 EQU * - LR 15,5 ==> rc -* Function 'unique_id' epilogue - PDPEPIL -* Function 'unique_id' literal pool - DS 0D - LTORG -* Function 'unique_id' page table -@@PGT1 DS 0F - DC A(@@PG1) - END diff --git a/src/crent370/clib/@@tmsecs.c b/src/crent370/clib/@@tmsecs.c deleted file mode 100644 index 323fbef..0000000 --- a/src/crent370/clib/@@tmsecs.c +++ /dev/null @@ -1,34 +0,0 @@ -#include - -__asm__("\n&FUNC SETC 'tmr_secs'"); -TMRSEC tmr_secs(TMRSEC *secs) -{ - unsigned long long tod; - struct timeval tv; - TMRSEC tmp; - - if (!secs) secs = &tmp; - - /* get STCK value */ - __asm__("STCK\t0(%0)" : : "r" (&tod)); - - /* make Jan 1 1900 (STCK) relative to Jan 1 1970 (unix epoch) */ - tod -= 0x7D91048BCA000000ULL; /* STCK value for Jan 1 1970 */ - - /* convert to microseconds (bits 0-51==number of microseconds) */ - tod >>= 12; /* convert to microseconds (1 us = .000001 sec) */ - - /* calc seconds and microseconds (divide by 1000000) */ - __asm__( - "LM\t0,1,0(%0) load TOD microseconds\n\t" - "D\t0,=F'1000000' divide by 1000000\n\t" - "ST\t1,0(0,%1) store seconds (quotient)\n\t" - "ST\t0,4(0,%1) store microseconds (remainder)" - : : "r" (&tod), "r" (&tv)); - - /* Scale the microseconds and add to our result (secs.usecs) */ - *secs = ((double)tv.tv_sec + ((double)tv.tv_usec / 1000000.0)); - -quit: - return *secs; -} diff --git a/src/crent370/clib/@@tmsecs.o b/src/crent370/clib/@@tmsecs.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@tmsecs.s b/src/crent370/clib/@@tmsecs.s deleted file mode 100644 index dd6caff..0000000 --- a/src/crent370/clib/@@tmsecs.s +++ /dev/null @@ -1,94 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@tmsecs.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'tmr_secs' -* Program text area - DS 0F - EJECT -* external function 'tmr_secs' prologue -* frame base=88, local stack=24, call args=0 -&FUNC SETC 'tmr_secs' -@@TMSECS PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'tmr_secs' code - L 15,0(11) ==> secs - LTR 15,15 ==> secs - BNE @@L2 - LA 15,88(,13) ==> secs -@@L2 EQU * - LA 2,96(,13) - STCK 0(2) - L 4,96(13) - L 5,4+96(13) - LR 3,5 - A 3,=F'905969664' - LA 6,1(0,0) - CLR 3,5 - BH @@L3 - SLR 6,6 -@@L3 EQU * - LR 2,4 - A 2,=F'-2106655883' - SR 2,6 - ST 2,96(13) - ST 3,4+96(13) - SRDL 2,12 - ST 2,96(13) - ST 3,4+96(13) - LA 3,96(,13) - LA 2,104(,13) - LM 0,1,0(3) load TOD microseconds - D 0,=F'1000000' divide by 1000000 - ST 1,0(0,2) store seconds (quotient) - ST 0,4(0,2) store microseconds (remainder) - L 2,104(13) - MVC 80(4,13),=XL8'4E00000080000000' - ST 2,84(,13) - XI 84(13),128 - LD 0,80(,13) - SD 0,=XL8'4E00000080000000' - L 2,108(13) ==> .tv_usec - MVC 80(4,13),=XL8'4E00000080000000' - ST 2,84(,13) - XI 84(13),128 - LD 2,80(,13) - SD 2,=XL8'4E00000080000000' - DD 2,=D'1.0E6' - ADR 0,2 - STD 0,0(15) ==> secs -@@L4 EQU * -* Function 'tmr_secs' epilogue - PDPEPIL -* Function 'tmr_secs' literal pool - DS 0D - LTORG -* Function 'tmr_secs' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@tmstop.c b/src/crent370/clib/@@tmstop.c deleted file mode 100644 index 7ac2a4d..0000000 --- a/src/crent370/clib/@@tmstop.c +++ /dev/null @@ -1,51 +0,0 @@ -#include - -__asm__("\n&FUNC SETC 'tmr_stop'"); -int tmr_stop(void) -{ - TMR *tmr = tmr_get(); - int lockrc; - int i; - - /* initialize the timer handle if needed */ - tmr_init(); - - /* if we have a timer thread that is running, quiesce it */ - lockrc = lock(tmr, 0); - if (tmr->task && (tmr->flags & TMR_FLAG_RUNNING)) { - wtof("%s QUIESCE posted", __func__); - tmr->flags |= TMR_FLAG_QUIESCE; - ecb_post(&tmr->wakeup, 0); - } - if (lockrc==0) unlock(tmr, 0); - - /* if we have a timer thread that is quiesced, shut it down */ - lockrc = lock(tmr, 0); - if (tmr->task && (tmr->flags & TMR_FLAG_RUNNING)) { - wtof("%s SHUTDOWN posted", __func__); - tmr->flags |= TMR_FLAG_SHUTDOWN; - ecb_post(&tmr->wakeup, 0); - } - if (lockrc==0) unlock(tmr, 0); - - /* if we have a timer thread that is shut down, delete it */ - lockrc = lock(tmr, 0); - if (tmr->task && (tmr->flags & TMR_FLAG_SHUTDOWN)) { - wtof("%s thread DELETE", __func__); - cthread_delete(&tmr->task); - tmr->task = NULL; - } - if (lockrc==0) unlock(tmr, 0); - - /* if we have a timer thread that has not shut down, detach it */ - lockrc = lock(tmr, 0); - if (tmr->task && !(tmr->flags & TMR_FLAG_SHUTDOWN)) { - wtof("%s thread DETACH", __func__); - cthread_detach(tmr->task); - tmr->task = NULL; - } - if (lockrc==0) unlock(tmr, 0); - -quit: - return 0; -} diff --git a/src/crent370/clib/@@tmstop.o b/src/crent370/clib/@@tmstop.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@tmstop.s b/src/crent370/clib/@@tmstop.s deleted file mode 100644 index 5ef8186..0000000 --- a/src/crent370/clib/@@tmstop.s +++ /dev/null @@ -1,207 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@tmstop.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'tmr_stop' -* Program text area -@@6 EQU * - DC C'tmr_stop' - DC X'0' - DS 0F - EJECT -* external function 'tmr_stop' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'tmr_stop' -@@TMSTOP PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'tmr_stop' code - LA 1,88(,13) - L 15,=V(@@TMRGET) - BALR 14,15 - LR 3,15 ==> tmr - LA 1,88(,13) - L 15,=V(@@TMINIT) - BALR 14,15 - ST 3,88(13) ==> tmr - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 4,15 ==> lockrc - L 2,12(3) ==> .task - LTR 2,2 - BE @@L2 - IC 2,8(3) ==> .flags - N 2,=F'64' - CLM 2,1,=XL1'00' - BE @@L2 - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@6) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - OI 8(3),32 ==> .flags - LR 2,3 ==> tmr - A 2,=F'20' - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@ECBPST) - BALR 14,15 -@@L2 EQU * - LTR 4,4 ==> lockrc - BNE @@L3 - ST 3,88(13) ==> tmr - ST 4,92(13) ==> lockrc - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L3 EQU * - ST 3,88(13) ==> tmr - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 4,15 ==> lockrc - L 2,12(3) ==> .task - LTR 2,2 - BE @@L4 - IC 2,8(3) ==> .flags - N 2,=F'64' - CLM 2,1,=XL1'00' - BE @@L4 - MVC 88(4,13),=A(@@LC1) - MVC 92(4,13),=A(@@6) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - OI 8(3),16 ==> .flags - LR 2,3 ==> tmr - A 2,=F'20' - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@ECBPST) - BALR 14,15 -@@L4 EQU * - LTR 4,4 ==> lockrc - BNE @@L5 - ST 3,88(13) ==> tmr - ST 4,92(13) ==> lockrc - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L5 EQU * - ST 3,88(13) ==> tmr - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 4,15 ==> lockrc - L 2,12(3) ==> .task - LTR 2,2 - BE @@L6 - IC 2,8(3) ==> .flags - N 2,=F'16' - CLM 2,1,=XL1'00' - BE @@L6 - MVC 88(4,13),=A(@@LC2) - MVC 92(4,13),=A(@@6) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LR 2,3 ==> tmr - A 2,=F'12' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@CTDEL) - BALR 14,15 - MVC 0(4,2),=F'0' ==> .task -@@L6 EQU * - LTR 4,4 ==> lockrc - BNE @@L7 - ST 3,88(13) ==> tmr - ST 4,92(13) ==> lockrc - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L7 EQU * - ST 3,88(13) ==> tmr - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 4,15 ==> lockrc - L 2,12(3) ==> .task - LTR 2,2 - BE @@L8 - IC 2,8(3) ==> .flags - N 2,=F'16' - CLM 2,1,=XL1'00' - BNE @@L8 - MVC 88(4,13),=A(@@LC3) - MVC 92(4,13),=A(@@6) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),12(3) ==> .task - LA 1,88(,13) - L 15,=V(@@CTDET) - BALR 14,15 - MVC 12(4,3),=F'0' ==> .task -@@L8 EQU * - LTR 4,4 ==> lockrc - BNE @@L10 - ST 3,88(13) ==> tmr - ST 4,92(13) ==> lockrc - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L10 EQU * - SLR 15,15 -* Function 'tmr_stop' epilogue - PDPEPIL -* Function 'tmr_stop' literal pool - DS 0D - LTORG -* Function 'tmr_stop' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s QUIESCE posted' - DC X'0' -@@LC1 EQU * - DC C'%s SHUTDOWN posted' - DC X'0' -@@LC2 EQU * - DC C'%s thread DELETE' - DC X'0' -@@LC3 EQU * - DC C'%s thread DETACH' - DC X'0' - END diff --git a/src/crent370/clib/@@tmstrt.c b/src/crent370/clib/@@tmstrt.c deleted file mode 100644 index ff55840..0000000 --- a/src/crent370/clib/@@tmstrt.c +++ /dev/null @@ -1,60 +0,0 @@ -#include - -__asm__("\n&FUNC SETC 'tmr_start'"); -int tmr_start(void) -{ - TMR *tmr = tmr_get(); - CTHDTASK *task = NULL; - int rc = 0; - int lockrc; - int running; - int i; - - /* initialize the timer handle if needed */ - tmr_init(); - - /* if we don't have a timer thread, create one now */ - lockrc = lock(tmr, 0); - if (!tmr->task) { - task = cthread_create_ex(tmr_thread, tmr, NULL, 32*1024); - if (!task) { - wtof("%s unable to create timer thread", __func__); - rc = ENOMEM; - } - else { - tmr->task = task; - if (lockrc==0) unlock(tmr, 0); - cthread_yield(); - lockrc = 8; /* prevent next unlock since we're already unlocked */ - } - } - if (lockrc==0) unlock(tmr, 0); - - if (rc) goto quit; - - if (task) { - /* we created a new timer task */ - for(i=0; i < 100; i++) { - lockrc = lock(tmr, 0); - running = (tmr->flags & TMR_FLAG_RUNNING); - if (lockrc==0) unlock(tmr, 0); - - if (running) break; - - if ((i & 3) == 3) wtof("%s waiting for timer thread to start", __func__); - cthread_yield(); - } - - if (i == 100) { - wtof("%s timer thread failed to start", __func__); - lockrc = lock(tmr, 0); - cthread_delete(&tmr->task); - tmr->flags &= ~TMR_FLAG_RUNNING; - if (lockrc==0) unlock(tmr, 0); - rc = ENOMEM; - } - } - -quit: - return rc; -} diff --git a/src/crent370/clib/@@tmstrt.o b/src/crent370/clib/@@tmstrt.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@tmstrt.s b/src/crent370/clib/@@tmstrt.s deleted file mode 100644 index c9bed78..0000000 --- a/src/crent370/clib/@@tmstrt.s +++ /dev/null @@ -1,193 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@tmstrt.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'tmr_start' -* Program text area -@@6 EQU * - DC C'tmr_start' - DC X'0' - DS 0F - EJECT -* external function 'tmr_start' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'tmr_start' -@@TMSTRT PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'tmr_start' code - LA 1,88(,13) - L 15,=V(@@TMRGET) - BALR 14,15 - LR 5,15 ==> tmr - SLR 6,6 ==> rc - LR 4,6 ==> task,rc - LA 1,88(,13) - L 15,=V(@@TMINIT) - BALR 14,15 - ST 5,88(13) ==> tmr - ST 6,92(13) ==> rc - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 3,15 ==> lockrc - L 2,12(5) ==> .task - LTR 2,2 - BNE @@L2 - MVC 88(4,13),=V(@@TMTHRD) - ST 5,92(13) ==> tmr - ST 6,96(13) ==> rc - MVC 100(4,13),=F'32768' - LA 1,88(,13) - L 15,=V(@@CTCRTX) - BALR 14,15 - LR 4,15 ==> task - LTR 15,15 ==> task - BNE @@L3 - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@6) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LA 6,12(0,0) ==> rc - B @@L2 -@@L3 EQU * - ST 15,12(5) ==> task,task - LTR 3,3 ==> lockrc - BNE @@L5 - ST 5,88(13) ==> tmr - ST 3,92(13) ==> lockrc - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L5 EQU * - LA 1,88(,13) - L 15,=V(@@CTYIEL) - BALR 14,15 - LA 3,8(0,0) ==> lockrc -@@L2 EQU * - LTR 3,3 ==> lockrc - BNE @@L6 - ST 5,88(13) ==> tmr - ST 3,92(13) ==> lockrc - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L6 EQU * - LTR 6,6 ==> rc - BNE @@L8 - LTR 4,4 ==> task - BE @@L8 - LR 4,6 ==> i,rc -@@L17 EQU * - ST 5,88(13) ==> tmr - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - IC 2,8(5) ==> running,flags - N 2,=F'64' ==> running - N 2,=XL4'000000FF' ==> running - LTR 15,15 ==> lockrc - BNE @@L14 - ST 5,88(13) ==> tmr - ST 15,92(13) ==> lockrc - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L14 EQU * - LTR 2,2 ==> running - BNE @@L11 - LR 2,4 ==> i - N 2,=F'3' - LA 3,3(0,0) - CLR 2,3 - BNE @@L16 - MVC 88(4,13),=A(@@LC1) - MVC 92(4,13),=A(@@6) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L16 EQU * - LA 1,88(,13) - L 15,=V(@@CTYIEL) - BALR 14,15 - A 4,=F'1' ==> i - LA 2,99(0,0) - CR 4,2 ==> i - BNH @@L17 -@@L11 EQU * - LA 3,100(0,0) - CLR 4,3 ==> i - BNE @@L8 - MVC 88(4,13),=A(@@LC2) - MVC 92(4,13),=A(@@6) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - ST 5,88(13) ==> tmr - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 3,15 ==> lockrc - LR 2,5 ==> tmr - A 2,=F'12' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@CTDEL) - BALR 14,15 - NI 8(5),191 ==> .flags - LTR 3,3 ==> lockrc - BNE @@L19 - ST 5,88(13) ==> tmr - ST 3,92(13) ==> lockrc - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L19 EQU * - LA 6,12(0,0) ==> rc -@@L8 EQU * - LR 15,6 ==> rc -* Function 'tmr_start' epilogue - PDPEPIL -* Function 'tmr_start' literal pool - DS 0D - LTORG -* Function 'tmr_start' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s unable to create timer thread' - DC X'0' -@@LC1 EQU * - DC C'%s waiting for timer thread to start' - DC X'0' -@@LC2 EQU * - DC C'%s timer thread failed to start' - DC X'0' - END diff --git a/src/crent370/clib/@@tmthrd.c b/src/crent370/clib/@@tmthrd.c deleted file mode 100644 index e2d84f6..0000000 --- a/src/crent370/clib/@@tmthrd.c +++ /dev/null @@ -1,304 +0,0 @@ -#include - -static int timed_waitlist(ECB **waitlist, ECB *timeout_ecb, unsigned bintvl, unsigned postcode); - -__asm__("\n&FUNC SETC 'tmr_thread'"); -int tmr_thread(void *arg1, void *arg2) -{ - TMR *tmr = arg1; - TQE *tqe = 0; - int rc = 0; - int lockrc = 0; - unsigned bintvl = 100; /* 100 = 1 second */ - unsigned count; - unsigned n; - ECB *waitlist[2]; - TMRSEC now; - TMRSEC diff; - unsigned udiff; - - lockrc = lock(tmr, 0); - tmr->flags |= TMR_FLAG_RUNNING; - tmr->timeout = 0; - count = array_count(&tmr->tqe); - tmr->wakeup = count ? ECB_POSTED_BIT : 0; - if (lockrc==0) unlock(tmr, 0); -#if 0 - wtof("%s RUNNING", __func__); -#endif - while (tmr) { - /* wtof("- - - - - - - - - - - - - - - - - - - - - - - - -"); */ - if (tmr->flags & TMR_FLAG_SHUTDOWN) break; - - if (!bintvl) bintvl = 1; /* 1 = .01 second */ - - /* wait for work or timeout */ - waitlist[0] = &tmr->timeout; - waitlist[1] = &tmr->wakeup; - waitlist[1] = (void*)((unsigned)waitlist[1] | 0x80000000); - now = tmr_secs(NULL); - /* wtof("%s WAITING BINTVL(%u) NOW is %.6f", __func__, bintvl, now); */ - timed_waitlist(waitlist, &tmr->timeout, bintvl, 0); - - lockrc = lock(tmr, 0); - now = tmr_secs(NULL); - - /* wtof("%s RUNNING, NOW is %.6f", __func__, now); */ - - if (tmr->timeout & ECB_POSTED_BIT) { - tmr->timeout = 0; - /* wtof("%s TIMEOUT", __func__); */ - } - - if (tmr->wakeup & ECB_POSTED_BIT) { - tmr->wakeup = 0; - /* wtof("%s WAKEUP", __func__); */ - } - - /* get the number of elements in the timer element array */ - count = array_count(&tmr->tqe); - - /* check for quiesce */ - if ((tmr->flags & TMR_FLAG_QUIESCE) && !count) { - /* quiesce desired and no timer elements exist */ - if (lockrc==0) unlock(tmr, 0); - break; /* terminate the timer thread */ - } - - /* default timeout value, 200 = 2 seconds */ - bintvl = 200; - /* examine the timer elements for expired times */ - for(n=count; n > 0; n--) { - tqe = array_get(&tmr->tqe, n); - - if (!tqe) continue; - - /* disabled timer element? */ - if (tqe->flags & TQE_FLAG_DISABLED) continue; - - /* has this timer element expired yet? */ - if (tqe->expires > now) { - /* not expired, calc timeout interval for next timed_waitlist() */ - diff = (tqe->expires - now) + 0.005; - udiff = (unsigned)(diff * 100.0); /* scale diff for bintvl */ - if (udiff < bintvl) bintvl = udiff; - /* wtof("%s NOT EXPIRED DIFF(%.6f) UDIFF(%u) BINTVL(%u)", __func__, diff, udiff, bintvl); */ - /* we're done with this timer element */ - continue; - } - - /* wtof("%s TQEID(%08X) tqe->expires <= now (%.6f <= %.6f)", __func__, tqe->id, tqe->expires, now); */ - - /* this timer element has expired, POST or call function */ - if (tqe->ecb) { - /* POST the ECB for this timer element */ - /* wtof("%s POSTING TQE(%08X) ID(%u)", __func__, tqe, tqe->id); */ - try(ecb_post, tqe->ecb, tqe->id); - } - if (tqe->func) { - /* call the function for this timer element */ - /* wtof("%s CALLING FUNC TQE(%08X) ID(%u)", __func__, tqe, tqe->id); */ - try(tqe->func, tqe->udata, tqe); - } - - /* should we keep this element? */ - if (!(tqe->flags & TQE_FLAG_KEEP)) { - /* no, discard this TQE element */ - /* wtof("%s DISCARD TQE(%08X) ID(%u)", __func__, tqe, tqe->id); */ - free(tqe); - /* remove this TQE from the array */ - array_del(&tmr->tqe, n); - continue; - } - - /* TQE is to be kept */ - if (!(tqe->flags & TQE_FLAG_RESET)) { - /* KEEP desired but no RESET option, so we have to disable the TQE */ - /* wtof("%s DISABLING TQE(%08X) ID(%u)", __func__, tqe, tqe->id); */ - tqe->flags |= TQE_FLAG_DISABLED; - continue; - } - - /* KEEP and RESET desired */ - tqe->expires = now; - if (tqe->bintvl) { - /* RESET using timer element bintvl value */ - tqe->expires += ((TMRSEC)tqe->bintvl / 100.0); - tqe->expires -= 0.006; /* adjustment for timer thread processing time */ - } - else { - /* RESET using minimum increment */ - tqe->expires += 0.006; /* minimum is .006 seconds */ - } - - /* calc next timeout value */ - diff = (tqe->expires - now) + 0.005; - udiff = (unsigned)(diff * 100.0); /* scale diff for bintvl */ - if (udiff < bintvl) bintvl = udiff; - /* wtof("%s KEEP DIFF(%.6f) UDIFF(%u) BINTVL(%u)", __func__, diff, udiff, bintvl); */ - } - if (lockrc==0) unlock(tmr, 0); -#if 0 - diff = tmr_secs(NULL) - now; - wtof("%s RUNNING %u elements processed in %.6f seconds", __func__, count, diff); -#endif - } - -quit: - lockrc = lock(tmr, 0); - tmr->flags &= ~TMR_FLAG_RUNNING; - if (lockrc==0) unlock(tmr, 0); -#if 0 - wtof("%s TERMINATED", __func__); -#endif - return rc; -} - - -__asm__("\n&FUNC SETC 'timed_waitlist'"); -static int -timed_waitlist(ECB **waitlist, ECB *timeout_ecb, unsigned bintvl, unsigned postcode) -{ - unsigned *psa = 0; /* low core == PSA */ - unsigned *tcb = (unsigned*)psa[0x21c/4]; /* TCB == PSATOLD */ - unsigned *fsa = (unsigned*)(tcb[0x70/4] & 0x00FFFFFF); - /* FSA == TCB first save area address */ - unsigned save = fsa[0]; - unsigned plist[4]; /* parameter list for postexit plist */ - int rc; -#if 0 - wtof("%s(%08X,%08X,%u,%08X) TCB(%08X) SAVE(%08X)", - __func__, waitlist, timeout_ecb, bintvl, postcode, tcb, save); -#endif - if (!timeout_ecb) timeout_ecb = waitlist[0]; - - /* cancel the timer exit */ - __asm__("TTIMER CANCEL" : : :"0", "1", "14", "15"); - - /* build parameter list for our EXITDRVR routine */ -#if 0 - plist[0] = (unsigned)ecb_post; -#else - plist[0] = 0; /* use POST routine in EXITDRVR */ -#endif - plist[1] = (unsigned)timeout_ecb; - plist[2] = (unsigned)postcode & 0X3FFFFFFF; - __asm__("L\t0,76(,13) get NAB\n\t" - "ST\t0,0(,%0) save in plist" - : : "r"(&plist[3]) : "0"); - - /* save the plist address in TCB first save area "next" so the EXITDRVR can find it */ - fsa[0] = (unsigned)plist; - -#if 0 - /* debugging */ - if (waitlist) { - int i; - for(i=0; waitlist[i]; i++) { - wtof("%s waitlist[%d]=%08X %08X", __func__, i, waitlist[i], *waitlist[i]); - if ((unsigned)waitlist[i] & 0x80000000) break; - } - } - - wtof("%s issuing STIMER REAL BINTVL(%u)", __func__, bintvl); -#endif - __asm__("L\t0,=A(EXITDRVR)\n\tSTIMER REAL,(0),BINTVL=(%0),ERRET=SAVERC\n" - "SAVERC\tST\t15,0(,%1)" - : : "r"(&bintvl), "r"(&rc) : "0", "1", "14", "15"); -#if 0 - wtof("%s STIMER REAL RC=%d",__func__, rc); - /* debugging */ - wtof("%s WAIT ECBLIST=(%08X) TCB(%06X)", __func__, waitlist, tcb); -#endif - - /* wait for ECB post */ - __asm__("WAIT ECBLIST=(%0)" : : "r"(waitlist)); - -#if 0 - wtof("%s RUNNING TCB(%06X)", __func__, tcb); - - /* timer exit has not run yet */ - wtof("%s issuing TTIMER CANCEL", __func__); -#endif - - /* cancel the timer exit */ - __asm__("TTIMER CANCEL" : : :"0", "1", "14", "15"); - - /* restore fsa value */ - fsa[0] = save; - -quit: - return 0; -} - -/* EXITDRVR called by STIMER REAL */ -__asm__("\n" -"EXITDRVR DS 0H\n" -" SAVE (14,12),,'EXITDRVR STIMER REAL'\n" -" LA 12,0(,15)\n" -" USING EXITDRVR,12\n" -"*\n" -" LA 11,0 A(PSA)\n" -" L 11,X'21C'(,11) A(TCB) from PSATOLD\n" -" L 11,X'70'(,11) TCBFSAB first save area\n" -" L 11,0(,11) A(PLIST) from save area\n" -" LTR 11,11 do we have a plist?\n" -" BNZ CHKFUNC yes, continue\n" -" B RETURN\n" -); -__asm__("\n" -" USING PLIST,11\n" -"CHKFUNC DS 0H\n" -"*\n" -"* Check function address\n" -" CLC FUNC,=F'0' do we have a function to call\n" -" BE POSTIT no, try posting ECB directly\n" -"*\n" -"* Chain stack with callers save area\n" -" L 1,STACKNEW => stack for function\n" -" ST 13,4(,1) ... chain stack areas\n" -" ST 1,8(,13) ... chain stack areas\n" -" LR 13,1 new stack\n" -); -__asm__("\n" -" USING STACK,13\n" -"*\n" -"* Set next available byte in stack\n" -" LA 0,STACKNAB next available byte in stack\n" -" ST 0,SAVENAB next available byte in stack\n" -"*\n" -"* Call thread function\n" -" L 15,FUNC get function address from plist\n" -" LA 1,ECB => parameters for function\n" -" BALR 14,15 call function\n" -"*\n" -"* Get callers save area\n" -" L 13,SAVEAREA+4 switch back to callers stack\n" -"RETURN DS 0H\n" -" RETURN (14,12)\n" -"*\n" -"POSTIT DS 0H\n" -" ICM 1,B'1111',ECB\n" -" BZ RETURN no ECB address\n" -" L 0,POSTCODE vale to post to ECB\n" -" POST (1),(0) \n" -" B RETURN\n" -" LTORG ,"); - -__asm__("\n" -"STACK DSECT\n" -"SAVEAREA DS 18F 00 (0) callers registers go here\n" -"SAVELWS DS A 48 (72) PL/I Language Work Space N/A\n" -"SAVENAB DS A 4C (76) next available byte -------+\n" -" DS 0D |\n" -"STACKNAB DS 0X 50 stack next available byte <-----+\n" -"*"); - -__asm__("\n" -"PLIST DSECT\n" -"FUNC DS A 00 C exit function address\n" -"ECB DS A 04 arg1 for C exit\n" -"POSTCODE DS F 08 arg2 for C exit\n" -"STACKNEW DS A 0C new stack for C exit\n" -" COPY CLIBCRT\n" -" CSECT ,"); diff --git a/src/crent370/clib/@@tmthrd.o b/src/crent370/clib/@@tmthrd.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@tmthrd.s b/src/crent370/clib/@@tmthrd.s deleted file mode 100644 index 31e5055..0000000 --- a/src/crent370/clib/@@tmthrd.s +++ /dev/null @@ -1,418 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@tmthrd.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'tmr_thread' -* Program text area - DS 0F - EJECT -* external function 'tmr_thread' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'tmr_thread' -@@TMTHRD PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'tmr_thread' code - L 5,0(11) ==> tmr,arg1 - LA 9,100(0,0) ==> bintvl - ST 5,88(13) ==> tmr - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 8,15 ==> lockrc - OI 8(5),64 ==> .flags - MVC 16(4,5),=F'0' ==> .timeout - LR 2,5 ==> tmr - A 2,=F'24' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LPR 2,15 ==> count - LCR 2,2 - SRL 2,31 - SLL 2,30 - ST 2,20(5) ==> .wakeup - LTR 8,8 ==> lockrc - BNE @@L4 - ST 5,88(13) ==> tmr - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L4 EQU * - LTR 5,5 ==> tmr - BE @@L34 -@@L33 EQU * - IC 2,8(5) ==> .flags - N 2,=F'16' - CLM 2,1,=XL1'00' - BNE @@L34 - LTR 9,9 ==> bintvl - BNE @@L9 - LA 9,1(0,0) ==> bintvl -@@L9 EQU * - LR 4,5 ==> tmr - A 4,=F'16' - ST 4,104(13) - LA 2,108(,13) - LR 3,5 ==> tmr - A 3,=F'20' - ST 3,0(2) ==> waitlist - OC 0(4,2),=F'-2147483648' ==> waitlist - MVC 88(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@TMSECS) - BALR 14,15 - LA 2,104(,13) - ST 2,88(13) - ST 4,92(13) - ST 9,96(13) ==> bintvl - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=A(@@6) - BALR 14,15 - ST 5,88(13) ==> tmr - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 8,15 ==> lockrc - MVC 88(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@TMSECS) - BALR 14,15 - STD 0,80(,13) - LM 6,7,80(13) ==> now - L 2,0(4) ==> .timeout - N 2,=F'1073741824' - LTR 2,2 - BE @@L10 - MVC 0(4,4),=F'0' ==> .timeout -@@L10 EQU * - L 2,20(5) ==> .wakeup - N 2,=F'1073741824' - LTR 2,2 - BE @@L11 - MVC 20(4,5),=F'0' ==> .wakeup -@@L11 EQU * - LR 2,5 ==> tmr - A 2,=F'24' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - IC 2,8(5) ==> .flags - N 2,=F'32' - CLM 2,1,=XL1'00' - BE @@L12 - LTR 15,15 ==> count - BNE @@L12 - LTR 8,8 ==> lockrc - BNE @@L34 - ST 5,88(13) ==> tmr - ST 8,92(13) ==> lockrc - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - B @@L34 -@@L12 EQU * - LA 9,200(0,0) ==> bintvl - LR 4,15 ==> n,count - LTR 15,15 ==> n - BE @@L38 -@@L31 EQU * - LR 2,5 ==> tmr - A 2,=F'24' - ST 2,88(13) - ST 4,92(13) ==> n - LA 1,88(,13) - L 15,=V(@@ARGET) - BALR 14,15 - LR 3,15 ==> tqe - LTR 15,15 ==> tqe - BE @@L16 - IC 2,8(15) ==> .flags - N 2,=F'32' - SLL 2,24 - SRA 2,24 - C 2,=F'0' - BNE @@L16 - STM 6,7,80(13) ==> now - LD 0,80(,13) - CD 0,16(15) ==> .expires - BL @@L41 - L 2,28(15) ==> .ecb - LTR 2,2 - BE @@L23 - MVC 88(4,13),=V(@@ECBPST) - MVC 92(4,13),28(15) ==> .ecb - MVC 96(4,13),40(15) ==> .id - LA 1,88(,13) - L 15,=V(@@@TRY) - BALR 14,15 -@@L23 EQU * - L 2,32(3) ==> .func - LTR 2,2 - BE @@L24 - ST 2,88(13) - MVC 92(4,13),36(3) ==> .udata - ST 3,96(13) ==> tqe - LA 1,88(,13) - L 15,=V(@@@TRY) - BALR 14,15 -@@L24 EQU * - IC 2,8(3) ==> .flags - N 2,=F'-128' - CLM 2,1,=XL1'00' - BNE @@L25 - ST 3,88(13) ==> tqe - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - LR 2,5 ==> tmr - A 2,=F'24' - ST 2,88(13) - ST 4,92(13) ==> n - LA 1,88(,13) - L 15,=V(@@ARDEL) - BALR 14,15 - B @@L16 -@@L25 EQU * - IC 2,8(3) ==> .flags - N 2,=F'64' - CLM 2,1,=XL1'00' - BNE @@L26 - OI 8(3),32 ==> .flags - B @@L16 -@@L26 EQU * - ST 6,16(3) ==> now,expires - ST 7,4+16(3) ==> now,expires - L 2,24(3) ==> .bintvl - LTR 2,2 - BE @@L27 - MVC 80(4,13),=XL8'4E00000080000000' - ST 2,84(,13) - XI 84(13),128 - LD 0,80(,13) - SD 0,=XL8'4E00000080000000' - LTR 2,2 - BNL @@L28 - AD 0,=D'4.294967296E9' -@@L28 EQU * - DD 0,=D'1.0E2' - AD 0,16(3) ==> .expires - STD 0,16(3) ==> .expires - SD 0,=D'5.99999999999999925754E-3' - B @@L39 -@@L27 EQU * - LD 0,16(3) ==> .expires - AD 0,=D'5.99999999999999925754E-3' -@@L39 EQU * - STD 0,16(3) ==> .expires -@@L41 EQU * - LD 0,16(3) ==> diff,expires - STM 6,7,80(13) ==> now - LD 2,80(,13) - SDR 0,2 ==> diff - AD 0,=D'4.99999999999999923672E-3' ==> diff - LDR 2,0 ==> diff - MD 2,=D'1.0E2' - LDR 0,2 - AD 0,=XL8'4F08000000000000' - STD 0,80(,13) - L 15,84(,13) ==> udiff - CLR 15,9 ==> udiff,bintvl - BNL @@L16 - LR 9,15 ==> bintvl,udiff -@@L16 EQU * - BCTR 4,0 ==> n - LTR 4,4 ==> n - BNE @@L31 -@@L38 EQU * - LTR 8,8 ==> lockrc - BNE @@L5 - ST 5,88(13) ==> tmr - ST 8,92(13) ==> lockrc - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L5 EQU * - LTR 5,5 ==> tmr - BNE @@L33 -@@L34 EQU * - ST 5,88(13) ==> tmr - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - NI 8(5),191 ==> .flags - LTR 15,15 ==> lockrc - BNE @@L35 - ST 5,88(13) ==> tmr - ST 15,92(13) ==> lockrc - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L35 EQU * - SLR 15,15 -* Function 'tmr_thread' epilogue - PDPEPIL -* Function 'tmr_thread' literal pool - DS 0D - LTORG -* Function 'tmr_thread' page table -@@PGT0 DS 0F - DC A(@@PG0) - -&FUNC SETC 'timed_waitlist' - DS 0F - EJECT -* static function 'timed_waitlist' prologue -* frame base=88, local stack=24, call args=0 -&FUNC SETC 'timed_waitlist' -@@6 PDPPRLG CINDEX=1,FRAME=112,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'timed_waitlist' code - L 5,0(11) ==> waitlist - L 3,4(11) ==> timeout_ecb - SLR 2,2 ==> psa - L 2,540(2) ==> tcb - L 4,112(2) ==> fsa - N 4,=F'16777215' ==> fsa - L 6,0(4) ==> save,fsa - LTR 3,3 ==> timeout_ecb - BNE @@L43 - L 3,0(5) ==> timeout_ecb,waitlist -@@L43 EQU * - TTIMER CANCEL - MVC 88(4,13),=F'0' ==> plist - ST 3,92(13) ==> timeout_ecb,plist - L 2,12(11) ==> postcode - N 2,=F'1073741823' - ST 2,96(13) ==> plist - LA 2,100(,13) - L 0,76(,13) get NAB - ST 0,0(,2) save in plist - LA 2,88(,13) - ST 2,0(4) ==> fsa - LA 3,8(,11) - LA 2,104(,13) - L 0,=A(EXITDRVR) - STIMER REAL,(0),BINTVL=(3),ERRET=SAVERC -SAVERC ST 15,0(,2) - WAIT ECBLIST=(5) ==> waitlist - TTIMER CANCEL - ST 6,0(4) ==> save,fsa -@@L44 EQU * - SLR 15,15 -* Function 'timed_waitlist' epilogue - PDPEPIL -* Function 'timed_waitlist' literal pool - DS 0D - LTORG -* Function 'timed_waitlist' page table -@@PGT1 DS 0F - DC A(@@PG1) - -EXITDRVR DS 0H - SAVE (14,12),,'EXITDRVR STIMER REAL' - LA 12,0(,15) - USING EXITDRVR,12 -* - LA 11,0 A(PSA) - L 11,X'21C'(,11) A(TCB) from PSATOLD - L 11,X'70'(,11) TCBFSAB first save area - L 11,0(,11) A(PLIST) from save area - LTR 11,11 do we have a plist? - BNZ CHKFUNC yes, continue - B RETURN - - - USING PLIST,11 -CHKFUNC DS 0H -* -* Check function address - CLC FUNC,=F'0' do we have a function to call - BE POSTIT no, try posting ECB directly -* -* Chain stack with callers save area - L 1,STACKNEW => stack for function - ST 13,4(,1) ... chain stack areas - ST 1,8(,13) ... chain stack areas - LR 13,1 new stack - - - USING STACK,13 -* -* Set next available byte in stack - LA 0,STACKNAB next available byte in stack - ST 0,SAVENAB next available byte in stack -* -* Call thread function - L 15,FUNC get function address from plist - LA 1,ECB => parameters for function - BALR 14,15 call function -* -* Get callers save area - L 13,SAVEAREA+4 switch back to callers stack -RETURN DS 0H - RETURN (14,12) -* -POSTIT DS 0H - ICM 1,B'1111',ECB - BZ RETURN no ECB address - L 0,POSTCODE vale to post to ECB - POST (1),(0) - B RETURN - LTORG , - -STACK DSECT -SAVEAREA DS 18F 00 (0) callers registers go here -SAVELWS DS A 48 (72) PL/I Language Work Space N/A -SAVENAB DS A 4C (76) next available byte -------+ - DS 0D | -STACKNAB DS 0X 50 stack next available byte <-----+ -* - -PLIST DSECT -FUNC DS A 00 C exit function address -ECB DS A 04 arg1 for C exit -POSTCODE DS F 08 arg2 for C exit -STACKNEW DS A 0C new stack for C exit - COPY CLIBCRT - CSECT , - END diff --git a/src/crent370/clib/@@tolow.c b/src/crent370/clib/@@tolow.c deleted file mode 100644 index 10f4c67..0000000 --- a/src/crent370/clib/@@tolow.c +++ /dev/null @@ -1,265 +0,0 @@ -/* @@TOLOW.C */ -#include - -static short -__tolowR[257] = { - -1, - 0x00, - 0x01, - 0x02, - 0x03, - 0x04, - 0x05, - 0x06, - 0x07, - 0x08, - 0x09, - 0x0A, - 0x0B, - 0x0C, - 0x0D, - 0x0E, - 0x0F, - 0x10, - 0x11, - 0x12, - 0x13, - 0x14, - 0x15, - 0x16, - 0x17, - 0x18, - 0x19, - 0x1A, - 0x1B, - 0x1C, - 0x1D, - 0x1E, - 0x1F, - 0x20, - 0x21, - 0x22, - 0x23, - 0x24, - 0x25, - 0x26, - 0x27, - 0x28, - 0x29, - 0x2A, - 0x2B, - 0x2C, - 0x2D, - 0x2E, - 0x2F, - 0x30, - 0x31, - 0x32, - 0x33, - 0x34, - 0x35, - 0x36, - 0x37, - 0x38, - 0x39, - 0x3A, - 0x3B, - 0x3C, - 0x3D, - 0x3E, - 0x3F, - 0x40, - 0x41, - 0x42, - 0x43, - 0x44, - 0x45, - 0x46, - 0x47, - 0x48, - 0x49, - 0x4A, - 0x4B, - 0x4C, - 0x4D, - 0x4E, - 0x4F, - 0x50, - 0x51, - 0x52, - 0x53, - 0x54, - 0x55, - 0x56, - 0x57, - 0x58, - 0x59, - 0x5A, - 0x5B, - 0x5C, - 0x5D, - 0x5E, - 0x5F, - 0x60, - 0x61, - 0x62, - 0x63, - 0x64, - 0x65, - 0x66, - 0x67, - 0x68, - 0x69, - 0x6A, - 0x6B, - 0x6C, - 0x6D, - 0x6E, - 0x6F, - 0x70, - 0x71, - 0x72, - 0x73, - 0x74, - 0x75, - 0x76, - 0x77, - 0x78, - 0x79, - 0x7A, - 0x7B, - 0x7C, - 0x7D, - 0x7E, - 0x7F, - 0x80, - 0x81, - 0x82, - 0x83, - 0x84, - 0x85, - 0x86, - 0x87, - 0x88, - 0x89, - 0x8A, - 0x8B, - 0x8C, - 0x8D, - 0x8E, - 0x8F, - 0x90, - 0x91, - 0x92, - 0x93, - 0x94, - 0x95, - 0x96, - 0x97, - 0x98, - 0x99, - 0x9A, - 0x9B, - 0x9C, - 0x9D, - 0x9E, - 0x9F, - 0xA0, - 0xA1, - 0xA2, - 0xA3, - 0xA4, - 0xA5, - 0xA6, - 0xA7, - 0xA8, - 0xA9, - 0xAA, - 0xAB, - 0xAC, - 0xAD, - 0xAE, - 0xAF, - 0xB0, - 0xB1, - 0xB2, - 0xB3, - 0xB4, - 0xB5, - 0xB6, - 0xB7, - 0xB8, - 0xB9, - 0xBA, - 0xBB, - 0xBC, - 0xBD, - 0xBE, - 0xBF, - 0xC0, - 0x81, - 0x82, - 0x83, - 0x84, - 0x85, - 0x86, - 0x87, - 0x88, - 0x89, - 0xCA, - 0xCB, - 0xCC, - 0xCD, - 0xCE, - 0xCF, - 0xD0, - 0x91, - 0x92, - 0x93, - 0x94, - 0x95, - 0x96, - 0x97, - 0x98, - 0x99, - 0xDA, - 0xDB, - 0xDC, - 0xDD, - 0xDE, - 0xDF, - 0xE0, - 0xE1, - 0xA2, - 0xA3, - 0xA4, - 0xA5, - 0xA6, - 0xA7, - 0xA8, - 0xA9, - 0xEA, - 0xEB, - 0xEC, - 0xED, - 0xEE, - 0xEF, - 0xF0, - 0xF1, - 0xF2, - 0xF3, - 0xF4, - 0xF5, - 0xF6, - 0xF7, - 0xF8, - 0xF9, - 0xFA, - 0xFB, - 0xFC, - 0xFD, - 0xFE, - 0xFF -}; - -short *__tolow = &__tolowR[1]; diff --git a/src/crent370/clib/@@tolow.o b/src/crent370/clib/@@tolow.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@tolow.s b/src/crent370/clib/@@tolow.s deleted file mode 100644 index ebb55a0..0000000 --- a/src/crent370/clib/@@tolow.s +++ /dev/null @@ -1,286 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@tolow.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program data area - DS 0H -@@0 EQU * - DC X'FFFF' - DC X'0000' - DC X'0001' - DC X'0002' - DC X'0003' - DC X'0004' - DC X'0005' - DC X'0006' - DC X'0007' - DC X'0008' - DC X'0009' - DC X'000A' - DC X'000B' - DC X'000C' - DC X'000D' - DC X'000E' - DC X'000F' - DC X'0010' - DC X'0011' - DC X'0012' - DC X'0013' - DC X'0014' - DC X'0015' - DC X'0016' - DC X'0017' - DC X'0018' - DC X'0019' - DC X'001A' - DC X'001B' - DC X'001C' - DC X'001D' - DC X'001E' - DC X'001F' - DC X'0020' - DC X'0021' - DC X'0022' - DC X'0023' - DC X'0024' - DC X'0025' - DC X'0026' - DC X'0027' - DC X'0028' - DC X'0029' - DC X'002A' - DC X'002B' - DC X'002C' - DC X'002D' - DC X'002E' - DC X'002F' - DC X'0030' - DC X'0031' - DC X'0032' - DC X'0033' - DC X'0034' - DC X'0035' - DC X'0036' - DC X'0037' - DC X'0038' - DC X'0039' - DC X'003A' - DC X'003B' - DC X'003C' - DC X'003D' - DC X'003E' - DC X'003F' - DC X'0040' - DC X'0041' - DC X'0042' - DC X'0043' - DC X'0044' - DC X'0045' - DC X'0046' - DC X'0047' - DC X'0048' - DC X'0049' - DC X'004A' - DC X'004B' - DC X'004C' - DC X'004D' - DC X'004E' - DC X'004F' - DC X'0050' - DC X'0051' - DC X'0052' - DC X'0053' - DC X'0054' - DC X'0055' - DC X'0056' - DC X'0057' - DC X'0058' - DC X'0059' - DC X'005A' - DC X'005B' - DC X'005C' - DC X'005D' - DC X'005E' - DC X'005F' - DC X'0060' - DC X'0061' - DC X'0062' - DC X'0063' - DC X'0064' - DC X'0065' - DC X'0066' - DC X'0067' - DC X'0068' - DC X'0069' - DC X'006A' - DC X'006B' - DC X'006C' - DC X'006D' - DC X'006E' - DC X'006F' - DC X'0070' - DC X'0071' - DC X'0072' - DC X'0073' - DC X'0074' - DC X'0075' - DC X'0076' - DC X'0077' - DC X'0078' - DC X'0079' - DC X'007A' - DC X'007B' - DC X'007C' - DC X'007D' - DC X'007E' - DC X'007F' - DC X'0080' - DC X'0081' - DC X'0082' - DC X'0083' - DC X'0084' - DC X'0085' - DC X'0086' - DC X'0087' - DC X'0088' - DC X'0089' - DC X'008A' - DC X'008B' - DC X'008C' - DC X'008D' - DC X'008E' - DC X'008F' - DC X'0090' - DC X'0091' - DC X'0092' - DC X'0093' - DC X'0094' - DC X'0095' - DC X'0096' - DC X'0097' - DC X'0098' - DC X'0099' - DC X'009A' - DC X'009B' - DC X'009C' - DC X'009D' - DC X'009E' - DC X'009F' - DC X'00A0' - DC X'00A1' - DC X'00A2' - DC X'00A3' - DC X'00A4' - DC X'00A5' - DC X'00A6' - DC X'00A7' - DC X'00A8' - DC X'00A9' - DC X'00AA' - DC X'00AB' - DC X'00AC' - DC X'00AD' - DC X'00AE' - DC X'00AF' - DC X'00B0' - DC X'00B1' - DC X'00B2' - DC X'00B3' - DC X'00B4' - DC X'00B5' - DC X'00B6' - DC X'00B7' - DC X'00B8' - DC X'00B9' - DC X'00BA' - DC X'00BB' - DC X'00BC' - DC X'00BD' - DC X'00BE' - DC X'00BF' - DC X'00C0' - DC X'0081' - DC X'0082' - DC X'0083' - DC X'0084' - DC X'0085' - DC X'0086' - DC X'0087' - DC X'0088' - DC X'0089' - DC X'00CA' - DC X'00CB' - DC X'00CC' - DC X'00CD' - DC X'00CE' - DC X'00CF' - DC X'00D0' - DC X'0091' - DC X'0092' - DC X'0093' - DC X'0094' - DC X'0095' - DC X'0096' - DC X'0097' - DC X'0098' - DC X'0099' - DC X'00DA' - DC X'00DB' - DC X'00DC' - DC X'00DD' - DC X'00DE' - DC X'00DF' - DC X'00E0' - DC X'00E1' - DC X'00A2' - DC X'00A3' - DC X'00A4' - DC X'00A5' - DC X'00A6' - DC X'00A7' - DC X'00A8' - DC X'00A9' - DC X'00EA' - DC X'00EB' - DC X'00EC' - DC X'00ED' - DC X'00EE' - DC X'00EF' - DC X'00F0' - DC X'00F1' - DC X'00F2' - DC X'00F3' - DC X'00F4' - DC X'00F5' - DC X'00F6' - DC X'00F7' - DC X'00F8' - DC X'00F9' - DC X'00FA' - DC X'00FB' - DC X'00FC' - DC X'00FD' - DC X'00FE' - DC X'00FF' -* X-var __tolow - ENTRY @@TOLOW - DS 0F -@@TOLOW EQU * - DC A(@@0+2) - END diff --git a/src/crent370/clib/@@toup.c b/src/crent370/clib/@@toup.c deleted file mode 100644 index 0af7ec5..0000000 --- a/src/crent370/clib/@@toup.c +++ /dev/null @@ -1,265 +0,0 @@ -/* @@TOUP.C */ -#include - -static short -__toupR[257] = { - -1, - 0x00, - 0x01, - 0x02, - 0x03, - 0x04, - 0x05, - 0x06, - 0x07, - 0x08, - 0x09, - 0x0A, - 0x0B, - 0x0C, - 0x0D, - 0x0E, - 0x0F, - 0x10, - 0x11, - 0x12, - 0x13, - 0x14, - 0x15, - 0x16, - 0x17, - 0x18, - 0x19, - 0x1A, - 0x1B, - 0x1C, - 0x1D, - 0x1E, - 0x1F, - 0x20, - 0x21, - 0x22, - 0x23, - 0x24, - 0x25, - 0x26, - 0x27, - 0x28, - 0x29, - 0x2A, - 0x2B, - 0x2C, - 0x2D, - 0x2E, - 0x2F, - 0x30, - 0x31, - 0x32, - 0x33, - 0x34, - 0x35, - 0x36, - 0x37, - 0x38, - 0x39, - 0x3A, - 0x3B, - 0x3C, - 0x3D, - 0x3E, - 0x3F, - 0x40, - 0x41, - 0x42, - 0x43, - 0x44, - 0x45, - 0x46, - 0x47, - 0x48, - 0x49, - 0x4A, - 0x4B, - 0x4C, - 0x4D, - 0x4E, - 0x4F, - 0x50, - 0x51, - 0x52, - 0x53, - 0x54, - 0x55, - 0x56, - 0x57, - 0x58, - 0x59, - 0x5A, - 0x5B, - 0x5C, - 0x5D, - 0x5E, - 0x5F, - 0x60, - 0x61, - 0x62, - 0x63, - 0x64, - 0x65, - 0x66, - 0x67, - 0x68, - 0x69, - 0x6A, - 0x6B, - 0x6C, - 0x6D, - 0x6E, - 0x6F, - 0x70, - 0x71, - 0x72, - 0x73, - 0x74, - 0x75, - 0x76, - 0x77, - 0x78, - 0x79, - 0x7A, - 0x7B, - 0x7C, - 0x7D, - 0x7E, - 0x7F, - 0x80, - 0xC1, - 0xC2, - 0xC3, - 0xC4, - 0xC5, - 0xC6, - 0xC7, - 0xC8, - 0xC9, - 0x8A, - 0x8B, - 0x8C, - 0x8D, - 0x8E, - 0x8F, - 0x90, - 0xD1, - 0xD2, - 0xD3, - 0xD4, - 0xD5, - 0xD6, - 0xD7, - 0xD8, - 0xD9, - 0x9A, - 0x9B, - 0x9C, - 0x9D, - 0x9E, - 0x9F, - 0xA0, - 0xA1, - 0xE2, - 0xE3, - 0xE4, - 0xE5, - 0xE6, - 0xE7, - 0xE8, - 0xE9, - 0xAA, - 0xAB, - 0xAC, - 0xAD, - 0xAE, - 0xAF, - 0xB0, - 0xB1, - 0xB2, - 0xB3, - 0xB4, - 0xB5, - 0xB6, - 0xB7, - 0xB8, - 0xB9, - 0xBA, - 0xBB, - 0xBC, - 0xBD, - 0xBE, - 0xBF, - 0xC0, - 0xC1, - 0xC2, - 0xC3, - 0xC4, - 0xC5, - 0xC6, - 0xC7, - 0xC8, - 0xC9, - 0xCA, - 0xCB, - 0xCC, - 0xCD, - 0xCE, - 0xCF, - 0xD0, - 0xD1, - 0xD2, - 0xD3, - 0xD4, - 0xD5, - 0xD6, - 0xD7, - 0xD8, - 0xD9, - 0xDA, - 0xDB, - 0xDC, - 0xDD, - 0xDE, - 0xDF, - 0xE0, - 0xE1, - 0xE2, - 0xE3, - 0xE4, - 0xE5, - 0xE6, - 0xE7, - 0xE8, - 0xE9, - 0xEA, - 0xEB, - 0xEC, - 0xED, - 0xEE, - 0xEF, - 0xF0, - 0xF1, - 0xF2, - 0xF3, - 0xF4, - 0xF5, - 0xF6, - 0xF7, - 0xF8, - 0xF9, - 0xFA, - 0xFB, - 0xFC, - 0xFD, - 0xFE, - 0xFF -}; - -short *__toup = &__toupR[1]; diff --git a/src/crent370/clib/@@toup.o b/src/crent370/clib/@@toup.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@toup.s b/src/crent370/clib/@@toup.s deleted file mode 100644 index f26638a..0000000 --- a/src/crent370/clib/@@toup.s +++ /dev/null @@ -1,286 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@toup.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program data area - DS 0H -@@0 EQU * - DC X'FFFF' - DC X'0000' - DC X'0001' - DC X'0002' - DC X'0003' - DC X'0004' - DC X'0005' - DC X'0006' - DC X'0007' - DC X'0008' - DC X'0009' - DC X'000A' - DC X'000B' - DC X'000C' - DC X'000D' - DC X'000E' - DC X'000F' - DC X'0010' - DC X'0011' - DC X'0012' - DC X'0013' - DC X'0014' - DC X'0015' - DC X'0016' - DC X'0017' - DC X'0018' - DC X'0019' - DC X'001A' - DC X'001B' - DC X'001C' - DC X'001D' - DC X'001E' - DC X'001F' - DC X'0020' - DC X'0021' - DC X'0022' - DC X'0023' - DC X'0024' - DC X'0025' - DC X'0026' - DC X'0027' - DC X'0028' - DC X'0029' - DC X'002A' - DC X'002B' - DC X'002C' - DC X'002D' - DC X'002E' - DC X'002F' - DC X'0030' - DC X'0031' - DC X'0032' - DC X'0033' - DC X'0034' - DC X'0035' - DC X'0036' - DC X'0037' - DC X'0038' - DC X'0039' - DC X'003A' - DC X'003B' - DC X'003C' - DC X'003D' - DC X'003E' - DC X'003F' - DC X'0040' - DC X'0041' - DC X'0042' - DC X'0043' - DC X'0044' - DC X'0045' - DC X'0046' - DC X'0047' - DC X'0048' - DC X'0049' - DC X'004A' - DC X'004B' - DC X'004C' - DC X'004D' - DC X'004E' - DC X'004F' - DC X'0050' - DC X'0051' - DC X'0052' - DC X'0053' - DC X'0054' - DC X'0055' - DC X'0056' - DC X'0057' - DC X'0058' - DC X'0059' - DC X'005A' - DC X'005B' - DC X'005C' - DC X'005D' - DC X'005E' - DC X'005F' - DC X'0060' - DC X'0061' - DC X'0062' - DC X'0063' - DC X'0064' - DC X'0065' - DC X'0066' - DC X'0067' - DC X'0068' - DC X'0069' - DC X'006A' - DC X'006B' - DC X'006C' - DC X'006D' - DC X'006E' - DC X'006F' - DC X'0070' - DC X'0071' - DC X'0072' - DC X'0073' - DC X'0074' - DC X'0075' - DC X'0076' - DC X'0077' - DC X'0078' - DC X'0079' - DC X'007A' - DC X'007B' - DC X'007C' - DC X'007D' - DC X'007E' - DC X'007F' - DC X'0080' - DC X'00C1' - DC X'00C2' - DC X'00C3' - DC X'00C4' - DC X'00C5' - DC X'00C6' - DC X'00C7' - DC X'00C8' - DC X'00C9' - DC X'008A' - DC X'008B' - DC X'008C' - DC X'008D' - DC X'008E' - DC X'008F' - DC X'0090' - DC X'00D1' - DC X'00D2' - DC X'00D3' - DC X'00D4' - DC X'00D5' - DC X'00D6' - DC X'00D7' - DC X'00D8' - DC X'00D9' - DC X'009A' - DC X'009B' - DC X'009C' - DC X'009D' - DC X'009E' - DC X'009F' - DC X'00A0' - DC X'00A1' - DC X'00E2' - DC X'00E3' - DC X'00E4' - DC X'00E5' - DC X'00E6' - DC X'00E7' - DC X'00E8' - DC X'00E9' - DC X'00AA' - DC X'00AB' - DC X'00AC' - DC X'00AD' - DC X'00AE' - DC X'00AF' - DC X'00B0' - DC X'00B1' - DC X'00B2' - DC X'00B3' - DC X'00B4' - DC X'00B5' - DC X'00B6' - DC X'00B7' - DC X'00B8' - DC X'00B9' - DC X'00BA' - DC X'00BB' - DC X'00BC' - DC X'00BD' - DC X'00BE' - DC X'00BF' - DC X'00C0' - DC X'00C1' - DC X'00C2' - DC X'00C3' - DC X'00C4' - DC X'00C5' - DC X'00C6' - DC X'00C7' - DC X'00C8' - DC X'00C9' - DC X'00CA' - DC X'00CB' - DC X'00CC' - DC X'00CD' - DC X'00CE' - DC X'00CF' - DC X'00D0' - DC X'00D1' - DC X'00D2' - DC X'00D3' - DC X'00D4' - DC X'00D5' - DC X'00D6' - DC X'00D7' - DC X'00D8' - DC X'00D9' - DC X'00DA' - DC X'00DB' - DC X'00DC' - DC X'00DD' - DC X'00DE' - DC X'00DF' - DC X'00E0' - DC X'00E1' - DC X'00E2' - DC X'00E3' - DC X'00E4' - DC X'00E5' - DC X'00E6' - DC X'00E7' - DC X'00E8' - DC X'00E9' - DC X'00EA' - DC X'00EB' - DC X'00EC' - DC X'00ED' - DC X'00EE' - DC X'00EF' - DC X'00F0' - DC X'00F1' - DC X'00F2' - DC X'00F3' - DC X'00F4' - DC X'00F5' - DC X'00F6' - DC X'00F7' - DC X'00F8' - DC X'00F9' - DC X'00FA' - DC X'00FB' - DC X'00FC' - DC X'00FD' - DC X'00FE' - DC X'00FF' -* X-var __toup - ENTRY @@TOUP - DS 0F -@@TOUP EQU * - DC A(@@0+2) - END diff --git a/src/crent370/clib/@@tqedis.c b/src/crent370/clib/@@tqedis.c deleted file mode 100644 index 68dcd55..0000000 --- a/src/crent370/clib/@@tqedis.c +++ /dev/null @@ -1,32 +0,0 @@ -#include - -__asm__("\n&FUNC SETC 'tqe_disable'"); -int tqe_disable(TQEID id) -{ - int rc = ENOENT; /* default, not found */ - TMR *tmr = tmr_get(); - unsigned count; - unsigned n; - int lockrc; - - tmr_init(); - - lockrc = lock(tmr, 0); - count = array_count(&tmr->tqe); - for(n=0; n < count; n++) { - TQE *tqe = tmr->tqe[n]; - - if (!tqe) continue; - if (tqe->id == id) { - /* set the disabled flag */ - tqe->flags |= TQE_FLAG_DISABLED; - - /* success */ - rc = 0; - break; - } - } - if (lockrc==0) unlock(tmr, 0); - - return rc; -} diff --git a/src/crent370/clib/@@tqedis.o b/src/crent370/clib/@@tqedis.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@tqedis.s b/src/crent370/clib/@@tqedis.s deleted file mode 100644 index dcae461..0000000 --- a/src/crent370/clib/@@tqedis.s +++ /dev/null @@ -1,99 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@tqedis.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'tqe_disable' -* Program text area - DS 0F - EJECT -* external function 'tqe_disable' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'tqe_disable' -@@TQEDIS PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'tqe_disable' code - L 7,0(11) ==> id - LA 8,2(0,0) ==> rc - LA 1,88(,13) - L 15,=V(@@TMRGET) - BALR 14,15 - LR 5,15 ==> tmr - LA 1,88(,13) - L 15,=V(@@TMINIT) - BALR 14,15 - ST 5,88(13) ==> tmr - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 6,15 ==> lockrc - LR 2,5 ==> tmr - A 2,=F'24' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - SLR 4,4 ==> n - CLR 4,15 ==> n,count - BNL @@L3 -@@L8 EQU * - L 3,24(5) ==> .tqe - LR 2,4 ==> n - MH 2,=H'4' - L 3,0(2,3) ==> tqe - LTR 3,3 ==> tqe - BE @@L4 - L 2,40(3) ==> .id - CLR 2,7 ==> id - BNE @@L4 - OI 8(3),32 ==> .flags - SLR 8,8 ==> rc - B @@L3 -@@L4 EQU * - A 4,=F'1' ==> n - CLR 4,15 ==> n,count - BL @@L8 -@@L3 EQU * - LTR 6,6 ==> lockrc - BNE @@L9 - ST 5,88(13) ==> tmr - ST 6,92(13) ==> lockrc - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L9 EQU * - LR 15,8 ==> rc -* Function 'tqe_disable' epilogue - PDPEPIL -* Function 'tqe_disable' literal pool - DS 0D - LTORG -* Function 'tqe_disable' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@tqeena.c b/src/crent370/clib/@@tqeena.c deleted file mode 100644 index 57539d2..0000000 --- a/src/crent370/clib/@@tqeena.c +++ /dev/null @@ -1,40 +0,0 @@ -#include - -__asm__("\n&FUNC SETC 'tqe_enable'"); -int tqe_enable(TQEID id) -{ - int rc = ENOENT; /* default, not found */ - TMR *tmr = tmr_get(); - unsigned count; - unsigned n; - int lockrc; - - tmr_init(); - - lockrc = lock(tmr, 0); - count = array_count(&tmr->tqe); - for(n=0; n < count; n++) { - TQE *tqe = tmr->tqe[n]; - - if (!tqe) continue; - if (tqe->id == id) { - /* reset the disabled flag */ - tqe->flags &= ~TQE_FLAG_DISABLED; - - if (tqe->bintvl) { - /* reset the TQE expires value */ - tqe->expires = tmr_secs(NULL) + ((TMRSEC)tqe->bintvl / 100.0); - - /* wakeup the timer thread */ - ecb_post(&tmr->wakeup, 0); - } - - /* success */ - rc = 0; - break; - } - } - if (lockrc==0) unlock(tmr, 0); - - return rc; -} diff --git a/src/crent370/clib/@@tqeena.o b/src/crent370/clib/@@tqeena.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@tqeena.s b/src/crent370/clib/@@tqeena.s deleted file mode 100644 index 04ef5b0..0000000 --- a/src/crent370/clib/@@tqeena.s +++ /dev/null @@ -1,128 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@tqeena.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'tqe_enable' -* Program text area - DS 0F - EJECT -* external function 'tqe_enable' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'tqe_enable' -@@TQEENA PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'tqe_enable' code - L 6,0(11) ==> id - LA 8,2(0,0) ==> rc - LA 1,88(,13) - L 15,=V(@@TMRGET) - BALR 14,15 - LR 5,15 ==> tmr - LA 1,88(,13) - L 15,=V(@@TMINIT) - BALR 14,15 - ST 5,88(13) ==> tmr - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 7,15 ==> lockrc - LR 2,5 ==> tmr - A 2,=F'24' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - SLR 4,4 ==> n - CLR 4,15 ==> n,count - BNL @@L3 -@@L10 EQU * - L 3,24(5) ==> .tqe - LR 2,4 ==> n - MH 2,=H'4' - L 3,0(2,3) ==> tqe - LTR 3,3 ==> tqe - BE @@L4 - L 2,40(3) ==> .id - CLR 2,6 ==> id - BNE @@L4 - NI 8(3),223 ==> .flags - L 2,24(3) ==> .bintvl - LTR 2,2 - BE @@L8 - MVC 88(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@TMSECS) - BALR 14,15 - LDR 2,0 - L 2,24(3) ==> .bintvl - MVC 80(4,13),=XL8'4E00000080000000' - ST 2,84(,13) - XI 84(13),128 - LD 0,80(,13) - SD 0,=XL8'4E00000080000000' - LTR 2,2 - BNL @@L9 - AD 0,=D'4.294967296E9' -@@L9 EQU * - DD 0,=D'1.0E2' - ADR 0,2 - STD 0,16(3) ==> .expires - LR 2,5 ==> tmr - A 2,=F'20' - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@ECBPST) - BALR 14,15 -@@L8 EQU * - SLR 8,8 ==> rc - B @@L3 -@@L4 EQU * - A 4,=F'1' ==> n - CLR 4,15 ==> n,count - BL @@L10 -@@L3 EQU * - LTR 7,7 ==> lockrc - BNE @@L11 - ST 5,88(13) ==> tmr - ST 7,92(13) ==> lockrc - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L11 EQU * - LR 15,8 ==> rc -* Function 'tqe_enable' epilogue - PDPEPIL -* Function 'tqe_enable' literal pool - DS 0D - LTORG -* Function 'tqe_enable' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@tqeget.c b/src/crent370/clib/@@tqeget.c deleted file mode 100644 index c9be111..0000000 --- a/src/crent370/clib/@@tqeget.c +++ /dev/null @@ -1,28 +0,0 @@ -#include - -__asm__("\n&FUNC SETC 'tqe_get'"); -TQE *tqe_get(TQEID id) -{ - TMR *tmr = tmr_get(); - TQE *tqe = NULL; - unsigned count; - unsigned n; - int lockrc; - - tmr_init(); - - lockrc = lock(tmr, 0); - count = array_count(&tmr->tqe); - for(n=0; n < count; n++) { - TQE *t = tmr->tqe[n]; - - if (!t) continue; - if (t->id == id) { - tqe = t; - break; - } - } - if (lockrc==0) unlock(tmr, 0); - - return tqe; -} diff --git a/src/crent370/clib/@@tqeget.o b/src/crent370/clib/@@tqeget.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@tqeget.s b/src/crent370/clib/@@tqeget.s deleted file mode 100644 index 0989094..0000000 --- a/src/crent370/clib/@@tqeget.s +++ /dev/null @@ -1,98 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@tqeget.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'tqe_get' -* Program text area - DS 0F - EJECT -* external function 'tqe_get' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'tqe_get' -@@TQEGET PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'tqe_get' code - L 9,0(11) ==> id - LA 1,88(,13) - L 15,=V(@@TMRGET) - BALR 14,15 - LR 6,15 ==> tmr - SLR 7,7 ==> tqe - LA 1,88(,13) - L 15,=V(@@TMINIT) - BALR 14,15 - ST 6,88(13) ==> tmr - ST 7,92(13) ==> tqe - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 8,15 ==> lockrc - LR 2,6 ==> tmr - A 2,=F'24' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 4,7 ==> n,tqe - CLR 7,15 ==> tqe,count - BNL @@L3 - L 5,24(6) ==> .tqe -@@L8 EQU * - LR 2,4 ==> n - MH 2,=H'4' - L 3,0(2,5) ==> t - LTR 3,3 ==> t - BE @@L4 - L 2,40(3) ==> .id - CLR 2,9 ==> id - BNE @@L4 - LR 7,3 ==> tqe,t - B @@L3 -@@L4 EQU * - A 4,=F'1' ==> n - CLR 4,15 ==> n,count - BL @@L8 -@@L3 EQU * - LTR 8,8 ==> lockrc - BNE @@L9 - ST 6,88(13) ==> tmr - ST 8,92(13) ==> lockrc - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L9 EQU * - LR 15,7 ==> tqe -* Function 'tqe_get' epilogue - PDPEPIL -* Function 'tqe_get' literal pool - DS 0D - LTORG -* Function 'tqe_get' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@tqeprg.c b/src/crent370/clib/@@tqeprg.c deleted file mode 100644 index a92b648..0000000 --- a/src/crent370/clib/@@tqeprg.c +++ /dev/null @@ -1,35 +0,0 @@ -#include - -__asm__("\n&FUNC SETC 'tqe_purge'"); -int tqe_purge(TQEID id) -{ - int rc = ENOENT; /* default, not found */ - TMR *tmr = tmr_get(); - unsigned count; - unsigned n; - int lockrc; - - tmr_init(); - - lockrc = lock(tmr, 0); - count = array_count(&tmr->tqe); - for(n=0; n < count; n++) { - TQE *tqe = tmr->tqe[n]; - - if (!tqe) continue; - if (tqe->id == id) { - /* remove TQE from TMR handle */ - array_del(&tmr->tqe, n+1); - - /* release TQE storage */ - free(tqe); - - /* success */ - rc = 0; - break; - } - } - if (lockrc==0) unlock(tmr, 0); - - return rc; -} diff --git a/src/crent370/clib/@@tqeprg.o b/src/crent370/clib/@@tqeprg.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@tqeprg.s b/src/crent370/clib/@@tqeprg.s deleted file mode 100644 index 2a32e0c..0000000 --- a/src/crent370/clib/@@tqeprg.s +++ /dev/null @@ -1,111 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@tqeprg.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'tqe_purge' -* Program text area - DS 0F - EJECT -* external function 'tqe_purge' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'tqe_purge' -@@TQEPRG PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'tqe_purge' code - L 6,0(11) ==> id - LA 8,2(0,0) ==> rc - LA 1,88(,13) - L 15,=V(@@TMRGET) - BALR 14,15 - LR 5,15 ==> tmr - LA 1,88(,13) - L 15,=V(@@TMINIT) - BALR 14,15 - ST 5,88(13) ==> tmr - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 7,15 ==> lockrc - LR 2,5 ==> tmr - A 2,=F'24' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - SLR 4,4 ==> n - CLR 4,15 ==> n,count - BNL @@L3 -@@L8 EQU * - L 3,24(5) ==> .tqe - LR 2,4 ==> n - MH 2,=H'4' - L 3,0(2,3) ==> tqe - LTR 3,3 ==> tqe - BE @@L4 - L 2,40(3) ==> .id - CLR 2,6 ==> id - BNE @@L4 - LR 2,5 ==> tmr - A 2,=F'24' - ST 2,88(13) - LR 2,4 ==> n - A 2,=F'1' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@ARDEL) - BALR 14,15 - ST 3,88(13) ==> tqe - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - SLR 8,8 ==> rc - B @@L3 -@@L4 EQU * - A 4,=F'1' ==> n - CLR 4,15 ==> n,count - BL @@L8 -@@L3 EQU * - LTR 7,7 ==> lockrc - BNE @@L9 - ST 5,88(13) ==> tmr - ST 7,92(13) ==> lockrc - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L9 EQU * - LR 15,8 ==> rc -* Function 'tqe_purge' epilogue - PDPEPIL -* Function 'tqe_purge' literal pool - DS 0D - LTORG -* Function 'tqe_purge' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@tqerst.c b/src/crent370/clib/@@tqerst.c deleted file mode 100644 index 40b0313..0000000 --- a/src/crent370/clib/@@tqerst.c +++ /dev/null @@ -1,43 +0,0 @@ -#include - -__asm__("\n&FUNC SETC 'tqe_reset'"); -int tqe_reset(TQEID id, unsigned bintvl) -{ - int rc = ENOENT; /* default, not found */ - TMR *tmr = tmr_get(); - unsigned count; - unsigned n; - int lockrc; - - tmr_init(); - - lockrc = lock(tmr, 0); - count = array_count(&tmr->tqe); - for(n=0; n < count; n++) { - TQE *tqe = tmr->tqe[n]; - - if (!tqe) continue; - if (tqe->id == id) { - /* success */ - rc = 0; - - /* set the bintvl value */ - tqe->bintvl = bintvl; - - if (tqe->flags & TQE_FLAG_DISABLED) break; - - if (tqe->bintvl) { - /* set the TQE expires value */ - tqe->expires = tmr_secs(NULL) + ((TMRSEC)tqe->bintvl / 100.0); - - /* wakeup the timer thread */ - ecb_post(&tmr->wakeup, 0); - } - break; - } - } - if (lockrc==0) unlock(tmr, 0); - - return rc; -} - diff --git a/src/crent370/clib/@@tqerst.o b/src/crent370/clib/@@tqerst.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@tqerst.s b/src/crent370/clib/@@tqerst.s deleted file mode 100644 index 7eda813..0000000 --- a/src/crent370/clib/@@tqerst.s +++ /dev/null @@ -1,131 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@tqerst.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'tqe_reset' -* Program text area - DS 0F - EJECT -* external function 'tqe_reset' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'tqe_reset' -@@TQERST PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'tqe_reset' code - L 6,0(11) ==> id - L 9,4(11) ==> bintvl - LA 8,2(0,0) ==> rc - LA 1,88(,13) - L 15,=V(@@TMRGET) - BALR 14,15 - LR 5,15 ==> tmr - LA 1,88(,13) - L 15,=V(@@TMINIT) - BALR 14,15 - ST 5,88(13) ==> tmr - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 7,15 ==> lockrc - LR 2,5 ==> tmr - A 2,=F'24' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - SLR 4,4 ==> n - CLR 4,15 ==> n,count - BNL @@L3 -@@L11 EQU * - L 3,24(5) ==> .tqe - LR 2,4 ==> n - MH 2,=H'4' - L 3,0(2,3) ==> tqe - LTR 3,3 ==> tqe - BE @@L4 - L 2,40(3) ==> .id - CLR 2,6 ==> id - BNE @@L4 - SLR 8,8 ==> rc - ST 9,24(3) ==> bintvl,bintvl - IC 2,8(3) ==> .flags - N 2,=F'32' - CLM 2,1,=XL1'00' - BNE @@L3 - LTR 9,9 ==> bintvl - BE @@L3 - ST 8,88(13) ==> rc - LA 1,88(,13) - L 15,=V(@@TMSECS) - BALR 14,15 - LDR 2,0 - L 2,24(3) ==> .bintvl - MVC 80(4,13),=XL8'4E00000080000000' - ST 2,84(,13) - XI 84(13),128 - LD 0,80(,13) - SD 0,=XL8'4E00000080000000' - LTR 2,2 - BNL @@L10 - AD 0,=D'4.294967296E9' -@@L10 EQU * - DD 0,=D'1.0E2' - ADR 0,2 - STD 0,16(3) ==> .expires - LR 2,5 ==> tmr - A 2,=F'20' - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@ECBPST) - BALR 14,15 - B @@L3 -@@L4 EQU * - A 4,=F'1' ==> n - CLR 4,15 ==> n,count - BL @@L11 -@@L3 EQU * - LTR 7,7 ==> lockrc - BNE @@L12 - ST 5,88(13) ==> tmr - ST 7,92(13) ==> lockrc - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L12 EQU * - LR 15,8 ==> rc -* Function 'tqe_reset' epilogue - PDPEPIL -* Function 'tqe_reset' literal pool - DS 0D - LTORG -* Function 'tqe_reset' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@tqnew.c b/src/crent370/clib/@@tqnew.c deleted file mode 100644 index f8e883c..0000000 --- a/src/crent370/clib/@@tqnew.c +++ /dev/null @@ -1,28 +0,0 @@ -#include - -__asm__("\n&FUNC SETC 'tqe_new'"); -TQE * -tqe_new(ECB *ecb, int (*func)(void*, TQE*), void *udata, unsigned bintvl, char flags) -{ - unsigned *psa = (unsigned *)0; - unsigned *tcb = (unsigned*)psa[0x21c/4]; /* TCB == PSATOLD */ - unsigned *ascb = (unsigned *)psa[0x224/4]; /* ascb == PSAAOLD */ - unsigned asid = ((ascb[0x24/4]) >> 16); - TQE *tqe = calloc(1, sizeof(TQE)); - - if (tqe) { - strcpy(tqe->eye, TQE_EYE); - tqe->flags = flags; - tqe->asid = asid; - tqe->tcb = tcb; - tqe->expires = tmr_secs(NULL) + ((TMRSEC)bintvl / 100.0); - tqe->bintvl = bintvl; - tqe->ecb = ecb; - tqe->func = func; - tqe->udata = udata; - tqe->id = tmr_id(); - /* wtof("%s TQE(%08X) TQEID(%u) BINTVL(%u) EXPIRES(%.6f)", __func__, tqe, tqe->id, bintvl, tqe->expires); */ - } - - return tqe; -} diff --git a/src/crent370/clib/@@tqnew.o b/src/crent370/clib/@@tqnew.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@tqnew.s b/src/crent370/clib/@@tqnew.s deleted file mode 100644 index bf8c180..0000000 --- a/src/crent370/clib/@@tqnew.s +++ /dev/null @@ -1,101 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@tqnew.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'tqe_new' -* Program text area - DS 0F - EJECT -* external function 'tqe_new' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'tqe_new' -@@TQNEW PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'tqe_new' code - L 7,12(11) ==> bintvl - L 5,16(11) ==> flags - SLR 3,3 ==> psa - L 6,540(3) ==> tcb - L 2,548(3) ==> ascb - L 4,36(2) ==> asid - SRL 4,16 ==> asid - MVC 88(4,13),=F'1' - MVC 92(4,13),=F'48' - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 2,15 ==> tqe - LTR 15,15 ==> tqe - BE @@L2 - ST 15,88(13) ==> tqe - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - STC 5,8(2) ==> flags,flags - STH 4,10(2) ==> asid,asid - ST 6,12(2) ==> tcb,tcb - ST 3,88(13) ==> psa - LA 1,88(,13) - L 15,=V(@@TMSECS) - BALR 14,15 - LDR 2,0 - MVC 80(4,13),=XL8'4E00000080000000' - ST 7,84(,13) ==> bintvl - XI 84(13),128 - LD 0,80(,13) - SD 0,=XL8'4E00000080000000' - LTR 7,7 ==> bintvl - BNL @@L3 - AD 0,=D'4.294967296E9' -@@L3 EQU * - DD 0,=D'1.0E2' - ADR 0,2 - STD 0,16(2) ==> .expires - ST 7,24(2) ==> bintvl,bintvl - MVC 28(4,2),0(11) ==> .ecb,ecb - MVC 32(4,2),4(11) ==> .func,func - MVC 36(4,2),8(11) ==> .udata,udata - LA 1,88(,13) - L 15,=V(@@TMRID) - BALR 14,15 - ST 15,40(2) ==> tqe,id -@@L2 EQU * - LR 15,2 ==> tqe -* Function 'tqe_new' epilogue - PDPEPIL -* Function 'tqe_new' literal pool - DS 0D - LTORG -* Function 'tqe_new' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'**TQE**' - DC X'0' - END diff --git a/src/crent370/clib/@@try.c b/src/crent370/clib/@@try.c deleted file mode 100644 index c5faf67..0000000 --- a/src/crent370/clib/@@try.c +++ /dev/null @@ -1,104 +0,0 @@ -#include -#include - -typedef struct { - unsigned r[16]; -} REGS; -typedef struct { - unsigned u[2]; -} PARAM; - -__asm__("\n&FUNC SETC 'failed'"); -static int -failed(SDWA *sdwa, void *udata) -{ - PARAM *param = (PARAM*)udata; - REGS *regs = (REGS*)param->u[1]; - unsigned abcode = (*(unsigned*)&sdwa->SDWACMPF) & 0x00FFFFFF; - unsigned retry = 0; - - if (abcode) { - /* return abend code in R15 */ - regs->r[15] = abcode; - } - - /* get the retry address */ - __asm__("L\t%0,=A(RETRY)" : "=r" (retry)); - - /* suppress dump */ - sdwa->SDWACMPF = 0; - - /* update the retry registers */ - __asm__("MVC\t0(64,%0),0(%1)" : - : "r" (&sdwa->SDWASR00), "r" (regs) ); - - /* RC=4,RETRY=retry,restore registers */ - SETRP(sdwa,4,retry,1); - - /* 4=retry */ - return 4; -} - -__asm__("\n&FUNC SETC 'call'"); -static int -call(void *func, void *plist) -{ - int rc; - REGS regs; - - /* populate the retry registers */ - __asm__("STM\t0,14,0(%0)" : : "r" (®s)); - regs.r[15] = (unsigned) (-1); - - /* create ESTAE with failed() as the recovery routine */ - rc = estae(ESTAE_CREATE, failed, ®s); - if (rc) { - rc *= -1; /* make negative */ - goto quit; - } - - __asm__( - "LR\t15,%0 => function to call \n\t" - "LR\t1,%1 => parameter list\n\t" - "BALR\t14,15 call function\n\t" - "SR\t15,15 function completed without abend" - : - : "r" (func), "r" (plist) - : "0", "1", "14", "15"); - - __asm__("\n" -"RETRY DS 0H"); - - __asm__("LR\t%0,15" : "=r" (rc)); - - /* remove the estae */ - estae(ESTAE_DELETE, 0, 0); - -quit: - return rc; -} - -/* call func with ESTAE protection, RC0=success otherwise failed */ -int -__try(void *func, ...) -{ - CLIBCRT *crt = __crtget(); - int rc; - void *r1 = (void*)(&func)+4; - - rc = call(func, r1); - - if (crt) crt->crttryrc = rc; - - return rc; -} - -unsigned __tryrc(void) -{ - unsigned rc = 0xFFFFFFFF; - CLIBCRT *crt = __crtget(); - - if (crt) rc = crt->crttryrc; - - return rc; -} diff --git a/src/crent370/clib/@@try.o b/src/crent370/clib/@@try.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@try.s b/src/crent370/clib/@@try.s deleted file mode 100644 index 60c038c..0000000 --- a/src/crent370/clib/@@try.s +++ /dev/null @@ -1,193 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@try.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'failed' -* Program text area - DS 0F - EJECT -* static function 'failed' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'failed' -@@2 PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=NO - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'failed' code - L 15,0(11) ==> sdwa - L 2,4(11) ==> udata - L 4,4(2) ==> regs,u - L 2,4(15) ==> abcode - N 2,=F'16777215' ==> abcode - LTR 2,2 ==> abcode - BE @@L2 - ST 2,60(4) ==> abcode,r -@@L2 EQU * - L 3,=A(RETRY) ==> retry - MVI 4(15),0 ==> .SDWACMPF - LR 2,15 ==> sdwa - A 2,=F'136' - MVC 0(64,2),0(4) ==> regs - MVI 252(15),4 ==> .SDWARCDE - ST 3,240(15) ==> retry,SDWARTYA - OI 253(15),8 ==> .SDWAACF2 - LA 15,4(0,0) -* Function 'failed' epilogue - PDPEPIL -* Function 'failed' literal pool - DS 0D - LTORG -* Function 'failed' page table -@@PGT0 DS 0F - DC A(@@PG0) - -&FUNC SETC 'call' - DS 0F - EJECT -* static function 'call' prologue -* frame base=88, local stack=64, call args=16 -&FUNC SETC 'call' -@@3 PDPPRLG CINDEX=1,FRAME=168,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'call' code - L 4,0(11) ==> func - L 3,4(11) ==> plist - LA 2,104(,13) - STM 0,14,0(2) - MVC 164(4,13),=F'-1' ==> .r - MVC 88(4,13),=F'0' - MVC 92(4,13),=A(@@2) - LA 2,104(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@ESTAE) - BALR 14,15 - LCR 2,15 ==> rc - LTR 15,15 ==> rc - BNE @@L5 - LR 15,4 => function to call ==> func - LR 1,3 => parameter list ==> plist - BALR 14,15 call function - SR 15,15 function completed without abend - -RETRY DS 0H - LR 2,15 ==> rc - MVC 88(4,13),=F'2' - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@ESTAE) - BALR 14,15 -@@L5 EQU * - LR 15,2 ==> rc -* Function 'call' epilogue - PDPEPIL -* Function 'call' literal pool - DS 0D - LTORG -* Function 'call' page table -@@PGT1 DS 0F - DC A(@@PG1) - DS 0F - EJECT -* external function '__try' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC '__try' -@@TRY PDPPRLG CINDEX=2,FRAME=96,BASER=12,ENTRY=YES - B @@FEN2 - LTORG -@@FEN2 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG2 EQU * - LR 11,1 - L 10,=A(@@PGT2) -* Function '__try' code - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - LR 3,15 ==> crt - MVC 88(4,13),0(11) - LA 2,4(,11) ==> r1 - ST 2,92(13) ==> r1 - LA 1,88(,13) - L 15,=A(@@3) - BALR 14,15 - LTR 3,3 ==> crt - BE @@L7 - ST 15,376(3) ==> rc,crttryrc -@@L7 EQU * -* Function '__try' epilogue - PDPEPIL -* Function '__try' literal pool - DS 0D - LTORG -* Function '__try' page table -@@PGT2 DS 0F - DC A(@@PG2) - DS 0F - EJECT -* external function '__tryrc' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__tryrc' -@@TRYRC PDPPRLG CINDEX=3,FRAME=88,BASER=12,ENTRY=YES - B @@FEN3 - LTORG -@@FEN3 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG3 EQU * - LR 11,1 - L 10,=A(@@PGT3) -* Function '__tryrc' code - L 2,=F'-1' ==> rc - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - LTR 15,15 ==> crt - BE @@L9 - L 2,376(15) ==> rc,crttryrc -@@L9 EQU * - LR 15,2 ==> rc -* Function '__tryrc' epilogue - PDPEPIL -* Function '__tryrc' literal pool - DS 0D - LTORG -* Function '__tryrc' page table -@@PGT3 DS 0F - DC A(@@PG3) - END diff --git a/src/crent370/clib/@@tx b/src/crent370/clib/@@tx deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txbfal.c b/src/crent370/clib/@@txbfal.c deleted file mode 100644 index 94f5731..0000000 --- a/src/crent370/clib/@@txbfal.c +++ /dev/null @@ -1,32 +0,0 @@ -/* @@TXBFAL.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txbfal(TXT99 ***txt99, const char *align) -{ - int err = 1; - int len = align ? strlen(align) : 0; - TXT99 *tu; - unsigned char type; - - if (len) { - if (memcmp(align, "FULL", len)==0) { - type = 0x01; - } - else if (memcmp(align, "DOUBLE", len)==0) { - type = 0x02; - } - else { - goto quit; - } - - tu = NewTXT99(DALBFALN,1,1,&type); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txbfal.o b/src/crent370/clib/@@txbfal.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txbfal.s b/src/crent370/clib/@@txbfal.s deleted file mode 100644 index 0cde7e5..0000000 --- a/src/crent370/clib/@@txbfal.s +++ /dev/null @@ -1,106 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txbfal.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txbfal' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__txbfal' -@@TXBFAL PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txbfal' code - L 3,4(11) ==> align - LA 4,1(0,0) ==> err - LTR 3,3 ==> align - BE @@L2 - ST 3,88(13) ==> align - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 2,15 ==> len - B @@L3 -@@L2 EQU * - SLR 2,2 ==> len -@@L3 EQU * - LTR 2,2 ==> len - BE @@L9 - ST 3,88(13) ==> align - MVC 92(4,13),=A(@@LC0) - ST 2,96(13) ==> len - LA 1,88(,13) - L 15,=V(MEMCMP) - BALR 14,15 - LTR 15,15 ==> len - BNE @@L5 - MVI 104(13),1 - B @@L6 -@@L5 EQU * - ST 3,88(13) ==> align - MVC 92(4,13),=A(@@LC1) - ST 2,96(13) ==> len - LA 1,88(,13) - L 15,=V(MEMCMP) - BALR 14,15 - LTR 15,15 ==> len - BNE @@L9 - MVI 104(13),2 -@@L6 EQU * - MVC 88(4,13),=F'46' - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'1' - LA 2,104(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L9 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 4,15 ==> err -@@L9 EQU * - LR 15,4 ==> err -* Function '__txbfal' epilogue - PDPEPIL -* Function '__txbfal' literal pool - DS 0D - LTORG -* Function '__txbfal' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'FULL' - DC X'0' -@@LC1 EQU * - DC C'DOUBLE' - DC X'0' - END diff --git a/src/crent370/clib/@@txbfte.c b/src/crent370/clib/@@txbfte.c deleted file mode 100644 index 57fa330..0000000 --- a/src/crent370/clib/@@txbfte.c +++ /dev/null @@ -1,39 +0,0 @@ -/* @@TXBFTE.C */ -#include "svc99.h" -#include "clibary.h" - -static struct { - const char technique[9]; - unsigned char type; -} tech[] = { - {"DYNAMIC", 0x08}, - {"EXCHANGE", 0x10}, - {"RECORD", 0x20}, - {"SIMPLE", 0x40}, - {"AREA", 0x60}, - {"", 0} -}; - -int -__txbfte(TXT99 ***txt99, const char *technique) -{ - int err = 1; - int len = technique ? strlen(technique) : 0; - int i; - TXT99 *tu; - - if (len) { - for(i=0; tech[i].technique[0]; i++) { - if (memcmp(tech[i].technique, technique, len)==0) { - tu = NewTXT99(DALBFTEK,1,1,&tech[i].type); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - goto quit; - } - } - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txbfte.o b/src/crent370/clib/@@txbfte.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txbfte.s b/src/crent370/clib/@@txbfte.s deleted file mode 100644 index ae0f018..0000000 --- a/src/crent370/clib/@@txbfte.s +++ /dev/null @@ -1,136 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txbfte.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program data area -@@2 EQU * - DC C'DYNAMIC' - DC X'0' - DC 1X'00' - DC X'08' - DC C'EXCHANGE' - DC X'0' - DC X'10' - DC C'RECORD' - DC X'0' - DC 2X'00' - DC X'20' - DC C'SIMPLE' - DC X'0' - DC 2X'00' - DC X'40' - DC C'AREA' - DC X'0' - DC 4X'00' - DC X'60' - DC X'0' - DC 8X'00' - DC X'00' -* Program text area - DS 0F - EJECT -* external function '__txbfte' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txbfte' -@@TXBFTE PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txbfte' code - L 6,4(11) ==> technique - LA 8,1(0,0) ==> err - LTR 6,6 ==> technique - BE @@L2 - ST 6,88(13) ==> technique - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 5,15 ==> len - B @@L3 -@@L2 EQU * - SLR 5,5 ==> len -@@L3 EQU * - LTR 5,5 ==> len - BE @@L11 - SLR 3,3 ==> i - L 2,=A(@@2) - IC 2,0(3,2) ==> .technique - CLM 2,1,=XL1'00' - BE @@L11 - L 7,=A(@@2) -@@L12 EQU * - LR 2,3 ==> i - SLL 2,3 - AR 2,3 ==> i - LR 4,2 - AR 4,3 ==> i - LR 2,4 - A 2,=A(@@2) - ST 2,88(13) - ST 6,92(13) ==> technique - ST 5,96(13) ==> len - LA 1,88(,13) - L 15,=V(MEMCMP) - BALR 14,15 - LTR 15,15 ==> len - BNE @@L7 - MVC 88(4,13),=F'47' - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'1' - LR 2,4 - A 2,=A(@@2+9) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L11 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 8,15 ==> err - B @@L11 -@@L7 EQU * - A 3,=F'1' ==> i - LR 2,3 ==> i - SLL 2,3 - AR 2,3 ==> i - AR 2,3 ==> i - IC 2,0(2,7) ==> .technique - CLM 2,1,=XL1'00' - BNE @@L12 -@@L11 EQU * - LR 15,8 ==> err -* Function '__txbfte' epilogue - PDPEPIL -* Function '__txbfte' literal pool - DS 0D - LTORG -* Function '__txbfte' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txbksz.c b/src/crent370/clib/@@txbksz.c deleted file mode 100644 index b73fde0..0000000 --- a/src/crent370/clib/@@txbksz.c +++ /dev/null @@ -1,25 +0,0 @@ -/* @@TXBKSZ.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txbksz(TXT99 ***txt99, const char *blksize) -{ - int err = 1; - int len = blksize ? atoi(blksize) : 0; - char *p; - TXT99 *tu; - - if (len > 32760) len = 32760; - if (len > 0) { - p = (char*)&len; - - tu = NewTXT99(DALBLKSZ,1,2,&p[2]); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txbksz.o b/src/crent370/clib/@@txbksz.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txbksz.s b/src/crent370/clib/@@txbksz.s deleted file mode 100644 index 95db73f..0000000 --- a/src/crent370/clib/@@txbksz.s +++ /dev/null @@ -1,85 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txbksz.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txbksz' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__txbksz' -@@TXBKSZ PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txbksz' code - L 2,4(11) ==> blksize - LA 3,1(0,0) ==> err - LTR 2,2 ==> blksize - BE @@L2 - ST 2,88(13) ==> blksize - LA 1,88(,13) - L 15,=V(ATOI) - BALR 14,15 - B @@L3 -@@L2 EQU * - SLR 15,15 ==> tu -@@L3 EQU * - ST 15,104(13) ==> tu - L 4,=F'32760' - CR 15,4 - BNH @@L4 - ST 4,104(13) -@@L4 EQU * - L 2,104(13) - LTR 2,2 - BNH @@L7 - MVC 88(4,13),=F'48' - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'2' - LA 2,106(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L7 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 3,15 ==> err -@@L7 EQU * - LR 15,3 ==> err -* Function '__txbksz' epilogue - PDPEPIL -* Function '__txbksz' literal pool - DS 0D - LTORG -* Function '__txbksz' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txblk.c b/src/crent370/clib/@@txblk.c deleted file mode 100644 index fdb674b..0000000 --- a/src/crent370/clib/@@txblk.c +++ /dev/null @@ -1,24 +0,0 @@ -/* @@TXBLK.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txblk(TXT99 ***txt99, const char *blocks) -{ - int err = 1; - int len = blocks ? atoi(blocks) : 0; - char *p; - TXT99 *tu; - - if (len) { - p = (char*)&len; - - tu = NewTXT99(DALBLKLN,1,3,&p[1]); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txblk.o b/src/crent370/clib/@@txblk.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txblk.s b/src/crent370/clib/@@txblk.s deleted file mode 100644 index 4e1adad..0000000 --- a/src/crent370/clib/@@txblk.s +++ /dev/null @@ -1,79 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txblk.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txblk' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__txblk' -@@TXBLK PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txblk' code - L 2,4(11) ==> blocks - LA 3,1(0,0) ==> err - LTR 2,2 ==> blocks - BE @@L2 - ST 2,88(13) ==> blocks - LA 1,88(,13) - L 15,=V(ATOI) - BALR 14,15 - B @@L3 -@@L2 EQU * - SLR 15,15 ==> tu -@@L3 EQU * - ST 15,104(13) ==> tu - LTR 15,15 - BE @@L6 - MVC 88(4,13),=F'9' - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'3' - LA 2,105(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L6 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 3,15 ==> err -@@L6 EQU * - LR 15,3 ==> err -* Function '__txblk' epilogue - PDPEPIL -* Function '__txblk' literal pool - DS 0D - LTORG -* Function '__txblk' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txbufl.c b/src/crent370/clib/@@txbufl.c deleted file mode 100644 index 33bb8a5..0000000 --- a/src/crent370/clib/@@txbufl.c +++ /dev/null @@ -1,25 +0,0 @@ -/* @@TXBUFL.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txbufl(TXT99 ***txt99, const char *length) -{ - int err = 1; - int len = length ? atoi(length) : 0; - char *p; - TXT99 *tu; - - if (len > 32760) len = 32760; - if (len > 0) { - p = (char*)&len; - - tu = NewTXT99(DALBUFL,1,2,&p[2]); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txbufl.o b/src/crent370/clib/@@txbufl.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txbufl.s b/src/crent370/clib/@@txbufl.s deleted file mode 100644 index 6147b11..0000000 --- a/src/crent370/clib/@@txbufl.s +++ /dev/null @@ -1,85 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txbufl.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txbufl' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__txbufl' -@@TXBUFL PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txbufl' code - L 2,4(11) ==> length - LA 3,1(0,0) ==> err - LTR 2,2 ==> length - BE @@L2 - ST 2,88(13) ==> length - LA 1,88(,13) - L 15,=V(ATOI) - BALR 14,15 - B @@L3 -@@L2 EQU * - SLR 15,15 ==> tu -@@L3 EQU * - ST 15,104(13) ==> tu - L 4,=F'32760' - CR 15,4 - BNH @@L4 - ST 4,104(13) -@@L4 EQU * - L 2,104(13) - LTR 2,2 - BNH @@L7 - MVC 88(4,13),=F'50' - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'2' - LA 2,106(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L7 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 3,15 ==> err -@@L7 EQU * - LR 15,3 ==> err -* Function '__txbufl' epilogue - PDPEPIL -* Function '__txbufl' literal pool - DS 0D - LTORG -* Function '__txbufl' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txbufn.c b/src/crent370/clib/@@txbufn.c deleted file mode 100644 index 14f9c03..0000000 --- a/src/crent370/clib/@@txbufn.c +++ /dev/null @@ -1,25 +0,0 @@ -/* @@TXBUFN.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txbufn(TXT99 ***txt99, const char *bufno) -{ - int err = 1; - int len = bufno ? atoi(bufno) : 0; - char *p; - TXT99 *tu; - - if (len > 255) len = 255; - if (len > 0) { - p = (char *)&len; - - tu = NewTXT99(DALBUFNO,1,1,&p[3]); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txbufn.o b/src/crent370/clib/@@txbufn.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txbufn.s b/src/crent370/clib/@@txbufn.s deleted file mode 100644 index d0bc4c9..0000000 --- a/src/crent370/clib/@@txbufn.s +++ /dev/null @@ -1,85 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txbufn.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txbufn' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__txbufn' -@@TXBUFN PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txbufn' code - L 2,4(11) ==> bufno - LA 3,1(0,0) ==> err - LTR 2,2 ==> bufno - BE @@L2 - ST 2,88(13) ==> bufno - LA 1,88(,13) - L 15,=V(ATOI) - BALR 14,15 - B @@L3 -@@L2 EQU * - SLR 15,15 ==> tu -@@L3 EQU * - ST 15,104(13) ==> tu - LA 4,255(0,0) - CR 15,4 - BNH @@L4 - ST 4,104(13) -@@L4 EQU * - L 2,104(13) - LTR 2,2 - BNH @@L7 - MVC 88(4,13),=F'52' - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'1' - LA 2,107(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L7 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 3,15 ==> err -@@L7 EQU * - LR 15,3 ==> err -* Function '__txbufn' epilogue - PDPEPIL -* Function '__txbufn' literal pool - DS 0D - LTORG -* Function '__txbufn' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txbufo.c b/src/crent370/clib/@@txbufo.c deleted file mode 100644 index 52ea688..0000000 --- a/src/crent370/clib/@@txbufo.c +++ /dev/null @@ -1,33 +0,0 @@ -/* @@TXBUFO.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txbufo(TXT99 ***txt99, const char *offset) -{ - int err = 1; - int len = offset ? atoi(offset) : 0; - char *p; - TXT99 *tu; - - if (!len && offset) { - if (strcmp(offset, "L")==0) { - /* The block prefix is four bytes long - ** and contains the block length (L) - */ - len = 0x80; - } - } - - if ((len >= 0 && len <= 99) || (len == 0x80)) { - p = (char*)&len; - - tu = NewTXT99(DALBUFOF,1,1,&p[3]); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txbufo.o b/src/crent370/clib/@@txbufo.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txbufo.s b/src/crent370/clib/@@txbufo.s deleted file mode 100644 index 744054c..0000000 --- a/src/crent370/clib/@@txbufo.s +++ /dev/null @@ -1,101 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txbufo.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txbufo' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__txbufo' -@@TXBUFO PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txbufo' code - L 3,4(11) ==> offset - LA 4,1(0,0) ==> err - LTR 3,3 ==> offset - BE @@L2 - ST 3,88(13) ==> offset - LA 1,88(,13) - L 15,=V(ATOI) - BALR 14,15 - B @@L3 -@@L2 EQU * - SLR 15,15 ==> tu -@@L3 EQU * - ST 15,104(13) ==> tu - LTR 15,15 - BNE @@L4 - LTR 3,3 ==> offset - BE @@L4 - ST 3,88(13) ==> offset - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(STRCMP) - BALR 14,15 - LTR 15,15 ==> tu - BNE @@L4 - MVC 104(4,13),=F'128' -@@L4 EQU * - L 2,104(13) - LA 3,99(0,0) - CLR 2,3 - BNH @@L7 - LA 3,128(0,0) - CLR 2,3 - BNE @@L9 -@@L7 EQU * - MVC 88(4,13),=F'53' - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'1' - LA 2,107(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L9 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 4,15 ==> err -@@L9 EQU * - LR 15,4 ==> err -* Function '__txbufo' epilogue - PDPEPIL -* Function '__txbufo' literal pool - DS 0D - LTORG -* Function '__txbufo' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'L' - DC X'0' - END diff --git a/src/crent370/clib/@@txcat.c b/src/crent370/clib/@@txcat.c deleted file mode 100644 index 69fbb52..0000000 --- a/src/crent370/clib/@@txcat.c +++ /dev/null @@ -1,18 +0,0 @@ -/* @@TXCAT.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txcat(TXT99 ***txt99, const char *unused) -{ - int err = 1; - TXT99 *tu; - - tu = NewTXT99(DALNDISP,1,1,"\x02"); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - -quit: - return err; -} diff --git a/src/crent370/clib/@@txcat.o b/src/crent370/clib/@@txcat.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txcat.s b/src/crent370/clib/@@txcat.s deleted file mode 100644 index 178dd42..0000000 --- a/src/crent370/clib/@@txcat.s +++ /dev/null @@ -1,67 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txcat.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txcat' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txcat' -@@TXCAT PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txcat' code - LA 2,1(0,0) ==> err - MVC 88(4,13),=F'5' - ST 2,92(13) ==> err - ST 2,96(13) ==> err - MVC 100(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L3 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 2,15 ==> err -@@L3 EQU * - LR 15,2 ==> err -* Function '__txcat' epilogue - PDPEPIL -* Function '__txcat' literal pool - DS 0D - LTORG -* Function '__txcat' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC X'2' - DC X'0' - END diff --git a/src/crent370/clib/@@txcopy.c b/src/crent370/clib/@@txcopy.c deleted file mode 100644 index bbf03e6..0000000 --- a/src/crent370/clib/@@txcopy.c +++ /dev/null @@ -1,24 +0,0 @@ -/* @@TXCOPY.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txcopy(TXT99 ***txt99, const char *copies) -{ - int err = 1; - int len = copies ? atoi(copies) : 0; - char *p; - TXT99 *tu; - - if (len >= 1 && len <= 255) { - p = (char*)&len; - - tu = NewTXT99(DALCOPYS,1,1,&p[3]); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txcopy.o b/src/crent370/clib/@@txcopy.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txcopy.s b/src/crent370/clib/@@txcopy.s deleted file mode 100644 index 4ab00c3..0000000 --- a/src/crent370/clib/@@txcopy.s +++ /dev/null @@ -1,82 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txcopy.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txcopy' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__txcopy' -@@TXCOPY PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txcopy' code - L 2,4(11) ==> copies - LA 3,1(0,0) ==> err - LTR 2,2 ==> copies - BE @@L2 - ST 2,88(13) ==> copies - LA 1,88(,13) - L 15,=V(ATOI) - BALR 14,15 - B @@L3 -@@L2 EQU * - SLR 15,15 ==> tu -@@L3 EQU * - ST 15,104(13) ==> tu - LR 2,15 ==> tu - BCTR 2,0 - LA 4,254(0,0) - CLR 2,4 - BH @@L6 - MVC 88(4,13),=F'29' - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'1' - LA 2,107(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L6 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 3,15 ==> err -@@L6 EQU * - LR 15,3 ==> err -* Function '__txcopy' epilogue - PDPEPIL -* Function '__txcopy' literal pool - DS 0D - LTORG -* Function '__txcopy' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txcyl.c b/src/crent370/clib/@@txcyl.c deleted file mode 100644 index a4a3f8d..0000000 --- a/src/crent370/clib/@@txcyl.c +++ /dev/null @@ -1,18 +0,0 @@ -/* @@TXCYL.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txcyl(TXT99 ***txt99, const char *unused) -{ - int err = 1; - TXT99 *tu; - - tu = NewTXT99(DALCYL,0,0,0); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - -quit: - return err; -} diff --git a/src/crent370/clib/@@txcyl.o b/src/crent370/clib/@@txcyl.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txcyl.s b/src/crent370/clib/@@txcyl.s deleted file mode 100644 index 228b337..0000000 --- a/src/crent370/clib/@@txcyl.s +++ /dev/null @@ -1,64 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txcyl.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txcyl' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txcyl' -@@TXCYL PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txcyl' code - LA 2,1(0,0) ==> err - MVC 88(4,13),=F'8' - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'0' - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L3 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 2,15 ==> err -@@L3 EQU * - LR 15,2 ==> err -* Function '__txcyl' epilogue - PDPEPIL -* Function '__txcyl' literal pool - DS 0D - LTORG -* Function '__txcyl' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txddn.c b/src/crent370/clib/@@txddn.c deleted file mode 100644 index dd7fe88..0000000 --- a/src/crent370/clib/@@txddn.c +++ /dev/null @@ -1,23 +0,0 @@ -/* @@TXDDN.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txddn(TXT99 ***txt99, const char *ddname) -{ - int err = 1; - int len; - TXT99 *tu; - - if (ddname) { - len = strlen(ddname); - - tu = NewTXT99(DALDDNAM,1,len,ddname); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txddn.o b/src/crent370/clib/@@txddn.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txddn.s b/src/crent370/clib/@@txddn.s deleted file mode 100644 index 5d36221..0000000 --- a/src/crent370/clib/@@txddn.s +++ /dev/null @@ -1,71 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txddn.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txddn' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txddn' -@@TXDDN PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txddn' code - L 2,4(11) ==> ddname - LA 3,1(0,0) ==> err - LTR 2,2 ==> ddname - BE @@L4 - ST 2,88(13) ==> ddname - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - ST 3,88(13) ==> err - ST 3,92(13) ==> err - ST 15,96(13) ==> len - ST 2,100(13) ==> ddname - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L4 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 3,15 ==> err -@@L4 EQU * - LR 15,3 ==> err -* Function '__txddn' epilogue - PDPEPIL -* Function '__txddn' literal pool - DS 0D - LTORG -* Function '__txddn' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txdel.c b/src/crent370/clib/@@txdel.c deleted file mode 100644 index 29a6d8b..0000000 --- a/src/crent370/clib/@@txdel.c +++ /dev/null @@ -1,18 +0,0 @@ -/* @@TXDEL.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txdel(TXT99 ***txt99, const char *unused) -{ - int err = 1; - TXT99 *tu; - - tu = NewTXT99(DALNDISP,1,1,"\x04"); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - -quit: - return err; -} diff --git a/src/crent370/clib/@@txdel.o b/src/crent370/clib/@@txdel.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txdel.s b/src/crent370/clib/@@txdel.s deleted file mode 100644 index 6cae0f2..0000000 --- a/src/crent370/clib/@@txdel.s +++ /dev/null @@ -1,67 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txdel.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txdel' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txdel' -@@TXDEL PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txdel' code - LA 2,1(0,0) ==> err - MVC 88(4,13),=F'5' - ST 2,92(13) ==> err - ST 2,96(13) ==> err - MVC 100(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L3 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 2,15 ==> err -@@L3 EQU * - LR 15,2 ==> err -* Function '__txdel' epilogue - PDPEPIL -* Function '__txdel' literal pool - DS 0D - LTORG -* Function '__txdel' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC X'4' - DC X'0' - END diff --git a/src/crent370/clib/@@txden.c b/src/crent370/clib/@@txden.c deleted file mode 100644 index cf80441..0000000 --- a/src/crent370/clib/@@txden.c +++ /dev/null @@ -1,38 +0,0 @@ -/* @@TXDEN.C */ -#include "svc99.h" -#include "clibary.h" - -static struct { - const char density[5]; - unsigned char type; -} table[] = { - {"200", 0x03}, - {"556", 0x43}, - {"800", 0x83}, - {"1600", 0xC3}, - {"6250", 0xD3}, - {"", 0} -}; - -int -__txden(TXT99 ***txt99, const char *density) -{ - int err = 1; - int i; - TXT99 *tu; - - if (density) { - for(i=0; table[i].density[0]; i++) { - if (strcmp(table[i].density, density)==0) { - tu = NewTXT99(DALDEN,1,1,&table[i].type); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - goto quit; - } - } - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txden.o b/src/crent370/clib/@@txden.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txden.s b/src/crent370/clib/@@txden.s deleted file mode 100644 index 27d2add..0000000 --- a/src/crent370/clib/@@txden.s +++ /dev/null @@ -1,123 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txden.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program data area -@@2 EQU * - DC C'200' - DC X'0' - DC 1X'00' - DC X'03' - DC C'556' - DC X'0' - DC 1X'00' - DC X'43' - DC C'800' - DC X'0' - DC 1X'00' - DC X'83' - DC C'1600' - DC X'0' - DC X'C3' - DC C'6250' - DC X'0' - DC X'D3' - DC X'0' - DC 4X'00' - DC X'00' -* Program text area - DS 0F - EJECT -* external function '__txden' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txden' -@@TXDEN PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txden' code - L 6,4(11) ==> density - LA 7,1(0,0) ==> err - LTR 6,6 ==> density - BE @@L9 - SLR 3,3 ==> i - L 2,=A(@@2) - IC 2,0(3,2) ==> .density - CLM 2,1,=XL1'00' - BE @@L9 - L 5,=A(@@2) -@@L10 EQU * - LR 2,3 ==> i - SLL 2,2 - AR 2,3 ==> i - LR 4,2 - AR 4,3 ==> i - LR 2,4 - A 2,=A(@@2) - ST 2,88(13) - ST 6,92(13) ==> density - LA 1,88(,13) - L 15,=V(STRCMP) - BALR 14,15 - LTR 15,15 ==> tu - BNE @@L5 - MVC 88(4,13),=F'59' - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'1' - LR 2,4 - A 2,=A(@@2+5) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L9 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 7,15 ==> err - B @@L9 -@@L5 EQU * - A 3,=F'1' ==> i - LR 2,3 ==> i - SLL 2,2 - AR 2,3 ==> i - AR 2,3 ==> i - IC 2,0(2,5) ==> .density - CLM 2,1,=XL1'00' - BNE @@L10 -@@L9 EQU * - LR 15,7 ==> err -* Function '__txden' epilogue - PDPEPIL -* Function '__txden' literal pool - DS 0D - LTORG -* Function '__txden' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txdest.c b/src/crent370/clib/@@txdest.c deleted file mode 100644 index d15b32e..0000000 --- a/src/crent370/clib/@@txdest.c +++ /dev/null @@ -1,55 +0,0 @@ -/* @@TXDEST.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txdest(TXT99 ***txt99, const char *dest) -{ - int err = 1; - int len; - TXT99 *tu; - char *p; - char *user; - char *node; - char buf[40]; - - if (!dest) goto quit; - - if (strchr(dest, '.')) { - /* "node.user" */ - len = strlen(dest); - if (len >= sizeof(buf)) goto quit; - - memcpy(buf, dest, len); - buf[len] = 0; - - p = strchr(buf, '.'); - if (!p) goto quit; /* shouldn't happen, but just in case */ - - node = buf; - *p++ = 0; - user = p; - - len = strlen(user); - tu = NewTXT99(DALUSRID,1,len,user); /* User */ - if (!tu) goto quit; - if (arrayadd(txt99, tu)) goto quit; - - len = strlen(node); - tu = NewTXT99(DALSUSER,1,len,node); /* Node */ - if (!tu) goto quit; - if (arrayadd(txt99, tu)) goto quit; - } - else { - /* destination */ - len = strlen(dest); - tu = NewTXT99(DALSUSER,1,len,dest); /* destination */ - if (!tu) goto quit; - if (arrayadd(txt99, tu)) goto quit; - } - - err = 0; - -quit: - return err; -} diff --git a/src/crent370/clib/@@txdest.o b/src/crent370/clib/@@txdest.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txdest.s b/src/crent370/clib/@@txdest.s deleted file mode 100644 index 689d8b3..0000000 --- a/src/crent370/clib/@@txdest.s +++ /dev/null @@ -1,139 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txdest.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txdest' prologue -* frame base=88, local stack=40, call args=16 -&FUNC SETC '__txdest' -@@TXDEST PDPPRLG CINDEX=0,FRAME=144,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txdest' code - L 5,0(11) ==> txt99 - L 3,4(11) ==> dest - LA 4,1(0,0) ==> err - LTR 3,3 ==> dest - BE @@L3 - ST 3,88(13) ==> dest - MVC 92(4,13),=F'75' - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LTR 15,15 ==> len - BE @@L4 - ST 3,88(13) ==> dest - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 2,15 ==> len - LA 6,39(0,0) - CLR 15,6 ==> len - BH @@L3 - LA 6,104(,13) - ST 6,88(13) - ST 3,92(13) ==> dest - ST 15,96(13) ==> len - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - SLR 3,3 - STC 3,104(13,2) ==> buf - ST 6,88(13) - MVC 92(4,13),=F'75' - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LR 3,15 ==> p - LTR 15,15 ==> p - BE @@L3 - MVI 0(15),0 ==> p - AR 3,4 ==> p - ST 3,88(13) ==> p - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - MVC 88(4,13),=F'99' - ST 4,92(13) ==> err - ST 15,96(13) ==> len - ST 3,100(13) ==> p - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L3 - ST 5,88(13) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LTR 15,15 ==> len - BNE @@L3 - ST 6,88(13) - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - MVC 88(4,13),=F'88' - ST 4,92(13) ==> err - ST 15,96(13) ==> len - ST 6,100(13) - B @@L15 -@@L4 EQU * - ST 3,88(13) ==> dest - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - MVC 88(4,13),=F'88' - MVC 92(4,13),=F'1' - ST 15,96(13) ==> len - ST 3,100(13) ==> dest -@@L15 EQU * - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L3 - ST 5,88(13) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LTR 15,15 ==> len - BNE @@L3 - SLR 4,4 ==> err -@@L3 EQU * - LR 15,4 ==> err -* Function '__txdest' epilogue - PDPEPIL -* Function '__txdest' literal pool - DS 0D - LTORG -* Function '__txdest' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txdir.c b/src/crent370/clib/@@txdir.c deleted file mode 100644 index fe26975..0000000 --- a/src/crent370/clib/@@txdir.c +++ /dev/null @@ -1,24 +0,0 @@ -/* @@TXDIR.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txdir(TXT99 ***txt99, const char *pds_dir) -{ - int err = 1; - int len = pds_dir ? atoi(pds_dir) : 0; - char *p; - TXT99 *tu; - - if (len) { - p = (char*)&len; - - tu = NewTXT99(DALDIR,1,3, &p[1]); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txdir.o b/src/crent370/clib/@@txdir.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txdir.s b/src/crent370/clib/@@txdir.s deleted file mode 100644 index 69da228..0000000 --- a/src/crent370/clib/@@txdir.s +++ /dev/null @@ -1,79 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txdir.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txdir' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__txdir' -@@TXDIR PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txdir' code - L 2,4(11) ==> pds_dir - LA 3,1(0,0) ==> err - LTR 2,2 ==> pds_dir - BE @@L2 - ST 2,88(13) ==> pds_dir - LA 1,88(,13) - L 15,=V(ATOI) - BALR 14,15 - B @@L3 -@@L2 EQU * - SLR 15,15 ==> tu -@@L3 EQU * - ST 15,104(13) ==> tu - LTR 15,15 - BE @@L6 - MVC 88(4,13),=F'12' - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'3' - LA 2,105(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L6 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 3,15 ==> err -@@L6 EQU * - LR 15,3 ==> err -* Function '__txdir' epilogue - PDPEPIL -* Function '__txdir' literal pool - DS 0D - LTORG -* Function '__txdir' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txdmy.c b/src/crent370/clib/@@txdmy.c deleted file mode 100644 index d8d09a9..0000000 --- a/src/crent370/clib/@@txdmy.c +++ /dev/null @@ -1,17 +0,0 @@ -/* @@TXDMY.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txdmy(TXT99 ***txt99, const char *unused) -{ - int err = 1; - TXT99 *tu = NewTXT99(DALDUMMY,0,0,0); - - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - -quit: - return err; -} diff --git a/src/crent370/clib/@@txdmy.o b/src/crent370/clib/@@txdmy.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txdmy.s b/src/crent370/clib/@@txdmy.s deleted file mode 100644 index 90d3830..0000000 --- a/src/crent370/clib/@@txdmy.s +++ /dev/null @@ -1,64 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txdmy.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txdmy' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txdmy' -@@TXDMY PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txdmy' code - LA 2,1(0,0) ==> err - MVC 88(4,13),=F'36' - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'0' - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L3 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 2,15 ==> err -@@L3 EQU * - LR 15,2 ==> err -* Function '__txdmy' epilogue - PDPEPIL -* Function '__txdmy' literal pool - DS 0D - LTORG -* Function '__txdmy' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txdsn.c b/src/crent370/clib/@@txdsn.c deleted file mode 100644 index ee962cf..0000000 --- a/src/crent370/clib/@@txdsn.c +++ /dev/null @@ -1,36 +0,0 @@ -/* @@TXDSN.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txdsn(TXT99 ***txt99, const char *dataset) -{ - int err = 1; - int len; - char *p; - char *member; - char dsn[80]; - - if (dataset) { - len = strlen(dataset); - if (len >= sizeof(dsn)) goto quit; - - memcpy(dsn, dataset, len); - dsn[len]=0; - - member = strchr(dsn, '('); - if (member) { - *member++ = 0; - p = strchr(member,')'); - if (p) *p = 0; - len = strlen(member); - err = arrayadd(txt99, NewTXT99(DALMEMBR,1,len,member)); - if (err) goto quit; - len = strlen(dsn); - } - err = arrayadd(txt99, NewTXT99(DALDSNAM,1,len,dsn)); - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txdsn.o b/src/crent370/clib/@@txdsn.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txdsn.s b/src/crent370/clib/@@txdsn.s deleted file mode 100644 index e276b08..0000000 --- a/src/crent370/clib/@@txdsn.s +++ /dev/null @@ -1,129 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txdsn.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txdsn' prologue -* frame base=88, local stack=80, call args=16 -&FUNC SETC '__txdsn' -@@TXDSN PDPPRLG CINDEX=0,FRAME=184,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txdsn' code - L 5,0(11) ==> txt99 - L 4,4(11) ==> dataset - LA 2,1(0,0) ==> err - LTR 4,4 ==> dataset - BE @@L4 - ST 4,88(13) ==> dataset - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 3,15 ==> len - LA 6,79(0,0) - CLR 15,6 ==> len - BH @@L4 - LA 2,104(,13) - ST 2,88(13) - ST 4,92(13) ==> dataset - ST 15,96(13) ==> len - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - SLR 4,4 - STC 4,104(13,3) ==> dsn - ST 2,88(13) - MVC 92(4,13),=F'77' - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LR 2,15 ==> member - LTR 15,15 ==> member - BE @@L5 - MVI 0(15),0 ==> member - A 2,=F'1' ==> member - ST 2,88(13) ==> member - MVC 92(4,13),=F'93' - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LTR 15,15 ==> p - BE @@L6 - MVI 0(15),0 ==> p -@@L6 EQU * - ST 2,88(13) ==> member - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - MVC 88(4,13),=F'3' - MVC 92(4,13),=F'1' - ST 15,96(13) ==> len - ST 2,100(13) ==> member - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - ST 5,88(13) ==> txt99 - ST 15,92(13) ==> len - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 2,15 ==> err - LTR 15,15 ==> err - BNE @@L4 - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 3,15 ==> len -@@L5 EQU * - MVC 88(4,13),=F'2' - MVC 92(4,13),=F'1' - ST 3,96(13) ==> len - LA 2,104(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - ST 5,88(13) ==> txt99 - ST 15,92(13) ==> len - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 2,15 ==> err -@@L4 EQU * - LR 15,2 ==> err -* Function '__txdsn' epilogue - PDPEPIL -* Function '__txdsn' literal pool - DS 0D - LTORG -* Function '__txdsn' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txerop.c b/src/crent370/clib/@@txerop.c deleted file mode 100644 index 93b7a3e..0000000 --- a/src/crent370/clib/@@txerop.c +++ /dev/null @@ -1,39 +0,0 @@ -/* @@TXEROP.C */ -#include "svc99.h" -#include "clibary.h" - -static struct { - const char option[7]; - unsigned char type; -} table[] = { - {"BSAM", 0x10}, - {"TEST", 0x10}, - {"ABEND", 0x20}, - {"SKIP", 0x40}, - {"SKP", 0x40}, - {"ACCEPT", 0x80}, - {"", 0} -}; - -int -__txerop(TXT99 ***txt99, const char *option) -{ - int err = 1; - int i; - TXT99 *tu; - - if (option) { - for(i=0; table[i].option[0]; i++) { - if (strcmp(table[i].option, option)==0) { - tu = NewTXT99(DALEROPT,1,1,&table[i].type); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - goto quit; - } - } - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txerop.o b/src/crent370/clib/@@txerop.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txerop.s b/src/crent370/clib/@@txerop.s deleted file mode 100644 index 295a39b..0000000 --- a/src/crent370/clib/@@txerop.s +++ /dev/null @@ -1,123 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txerop.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program data area -@@2 EQU * - DC C'BSAM' - DC X'0' - DC 2X'00' - DC X'10' - DC C'TEST' - DC X'0' - DC 2X'00' - DC X'10' - DC C'ABEND' - DC X'0' - DC 1X'00' - DC X'20' - DC C'SKIP' - DC X'0' - DC 2X'00' - DC X'40' - DC C'SKP' - DC X'0' - DC 3X'00' - DC X'40' - DC C'ACCEPT' - DC X'0' - DC X'80' - DC X'0' - DC 6X'00' - DC X'00' -* Program text area - DS 0F - EJECT -* external function '__txerop' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txerop' -@@TXEROP PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txerop' code - L 6,4(11) ==> option - LA 7,1(0,0) ==> err - LTR 6,6 ==> option - BE @@L9 - SLR 3,3 ==> i - L 2,=A(@@2) - IC 2,0(3,2) ==> .option - CLM 2,1,=XL1'00' - BE @@L9 - L 5,=A(@@2) -@@L10 EQU * - LR 4,3 ==> i - MH 4,=H'8' - LR 2,4 - A 2,=A(@@2) - ST 2,88(13) - ST 6,92(13) ==> option - LA 1,88(,13) - L 15,=V(STRCMP) - BALR 14,15 - LTR 15,15 ==> tu - BNE @@L5 - MVC 88(4,13),=F'61' - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'1' - LR 2,4 - A 2,=A(@@2+7) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L9 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 7,15 ==> err - B @@L9 -@@L5 EQU * - A 3,=F'1' ==> i - LR 2,3 ==> i - MH 2,=H'8' - IC 2,0(2,5) ==> .option - CLM 2,1,=XL1'00' - BNE @@L10 -@@L9 EQU * - LR 15,7 ==> err -* Function '__txerop' epilogue - PDPEPIL -* Function '__txerop' literal pool - DS 0D - LTORG -* Function '__txerop' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txexpd.c b/src/crent370/clib/@@txexpd.c deleted file mode 100644 index bee9e7d..0000000 --- a/src/crent370/clib/@@txexpd.c +++ /dev/null @@ -1,21 +0,0 @@ -/* @@TXEXPD.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txexpd(TXT99 ***txt99, const char *yyddd) -{ - int err = 1; - int len = yyddd ? strlen(yyddd) : 0; - TXT99 *tu; - - if (len==5) { - tu = NewTXT99(DALEXPDT,1,len,yyddd); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txexpd.o b/src/crent370/clib/@@txexpd.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txexpd.s b/src/crent370/clib/@@txexpd.s deleted file mode 100644 index a8a76c9..0000000 --- a/src/crent370/clib/@@txexpd.s +++ /dev/null @@ -1,78 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txexpd.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txexpd' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txexpd' -@@TXEXPD PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txexpd' code - L 2,4(11) ==> yyddd - LA 3,1(0,0) ==> err - LTR 2,2 ==> yyddd - BE @@L2 - ST 2,88(13) ==> yyddd - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - B @@L3 -@@L2 EQU * - SLR 15,15 ==> len -@@L3 EQU * - LA 4,5(0,0) - CLR 15,4 ==> len - BNE @@L6 - MVC 88(4,13),=F'34' - MVC 92(4,13),=F'1' - ST 15,96(13) ==> len - ST 2,100(13) ==> yyddd - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L6 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 3,15 ==> err -@@L6 EQU * - LR 15,3 ==> err -* Function '__txexpd' epilogue - PDPEPIL -* Function '__txexpd' literal pool - DS 0D - LTORG -* Function '__txexpd' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txfcb.c b/src/crent370/clib/@@txfcb.c deleted file mode 100644 index 2723c1f..0000000 --- a/src/crent370/clib/@@txfcb.c +++ /dev/null @@ -1,31 +0,0 @@ -/* @@TXFCB.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txfcb(TXT99 ***txt99, const char *fcb) -{ - int err = 1; - int len = fcb ? strlen(fcb) : 0; - TXT99 *tu; - - if (len > 0) { - tu = 0; - if (strcmp(fcb, "ALIGN")==0) { - tu = NewTXT99(DALFCBAV,1,1,"\x08"); - } - else if (strcmp(fcb, "VERIFY")==0) { - tu = NewTXT99(DALFCBAV,1,1,"\x04"); - } - else { - tu = NewTXT99(DALFCBIM,1,len,fcb); - } - - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txfcb.o b/src/crent370/clib/@@txfcb.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txfcb.s b/src/crent370/clib/@@txfcb.s deleted file mode 100644 index cbbbc76..0000000 --- a/src/crent370/clib/@@txfcb.s +++ /dev/null @@ -1,117 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txfcb.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txfcb' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txfcb' -@@TXFCB PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txfcb' code - L 3,4(11) ==> fcb - LA 4,1(0,0) ==> err - LTR 3,3 ==> fcb - BE @@L2 - ST 3,88(13) ==> fcb - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 2,15 ==> len - B @@L3 -@@L2 EQU * - SLR 2,2 ==> len -@@L3 EQU * - LTR 2,2 ==> len - BNH @@L10 - ST 3,88(13) ==> fcb - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(STRCMP) - BALR 14,15 - LTR 15,15 ==> len - BNE @@L5 - MVC 88(4,13),=F'38' - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'1' - MVC 100(4,13),=A(@@LC1) - B @@L11 -@@L5 EQU * - ST 3,88(13) ==> fcb - MVC 92(4,13),=A(@@LC2) - LA 1,88(,13) - L 15,=V(STRCMP) - BALR 14,15 - LTR 15,15 ==> len - BNE @@L7 - MVC 88(4,13),=F'38' - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'1' - MVC 100(4,13),=A(@@LC3) - B @@L11 -@@L7 EQU * - MVC 88(4,13),=F'37' - MVC 92(4,13),=F'1' - ST 2,96(13) ==> len - ST 3,100(13) ==> fcb -@@L11 EQU * - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L10 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 4,15 ==> err -@@L10 EQU * - LR 15,4 ==> err -* Function '__txfcb' epilogue - PDPEPIL -* Function '__txfcb' literal pool - DS 0D - LTORG -* Function '__txfcb' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'ALIGN' - DC X'0' -@@LC1 EQU * - DC X'8' - DC X'0' -@@LC2 EQU * - DC C'VERIFY' - DC X'0' -@@LC3 EQU * - DC X'4' - DC X'0' - END diff --git a/src/crent370/clib/@@txform.c b/src/crent370/clib/@@txform.c deleted file mode 100644 index acc0887..0000000 --- a/src/crent370/clib/@@txform.c +++ /dev/null @@ -1,21 +0,0 @@ -/* @@TXFORM.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txform(TXT99 ***txt99, const char *form) -{ - int err = 1; - int len = form ? strlen(form) : 0; - TXT99 *tu; - - if (len >= 1 && len <= 4) { - tu = NewTXT99(DALSFMNO,1,len,form); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txform.o b/src/crent370/clib/@@txform.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txform.s b/src/crent370/clib/@@txform.s deleted file mode 100644 index b79ee54..0000000 --- a/src/crent370/clib/@@txform.s +++ /dev/null @@ -1,80 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txform.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txform' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txform' -@@TXFORM PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txform' code - L 3,4(11) ==> form - LA 4,1(0,0) ==> err - LTR 3,3 ==> form - BE @@L2 - ST 3,88(13) ==> form - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - B @@L3 -@@L2 EQU * - SLR 15,15 ==> len -@@L3 EQU * - LR 2,15 ==> len - BCTR 2,0 - LA 5,3(0,0) - CLR 2,5 - BH @@L6 - MVC 88(4,13),=F'26' - MVC 92(4,13),=F'1' - ST 15,96(13) ==> len - ST 3,100(13) ==> form - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L6 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 4,15 ==> err -@@L6 EQU * - LR 15,4 ==> err -* Function '__txform' epilogue - PDPEPIL -* Function '__txform' literal pool - DS 0D - LTORG -* Function '__txform' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txhold.c b/src/crent370/clib/@@txhold.c deleted file mode 100644 index f74422a..0000000 --- a/src/crent370/clib/@@txhold.c +++ /dev/null @@ -1,18 +0,0 @@ -/* @@TXHOLD.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txhold(TXT99 ***txt99, const char *unused) -{ - int err = 1; - TXT99 *tu; - - tu = NewTXT99(DALSHOLD,0,0,0); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - -quit: - return err; -} diff --git a/src/crent370/clib/@@txhold.o b/src/crent370/clib/@@txhold.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txhold.s b/src/crent370/clib/@@txhold.s deleted file mode 100644 index b090280..0000000 --- a/src/crent370/clib/@@txhold.s +++ /dev/null @@ -1,64 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txhold.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txhold' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txhold' -@@TXHOLD PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txhold' code - LA 2,1(0,0) ==> err - MVC 88(4,13),=F'89' - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'0' - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L3 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 2,15 ==> err -@@L3 EQU * - LR 15,2 ==> err -* Function '__txhold' epilogue - PDPEPIL -* Function '__txhold' literal pool - DS 0D - LTORG -* Function '__txhold' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txinpu.c b/src/crent370/clib/@@txinpu.c deleted file mode 100644 index eaf12d1..0000000 --- a/src/crent370/clib/@@txinpu.c +++ /dev/null @@ -1,18 +0,0 @@ -/* @@TXINPU.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txinpu(TXT99 ***txt99, const char *unused) -{ - int err = 1; - TXT99 *tu; - - tu = NewTXT99(DALINOUT,1,1,"\x80"); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - -quit: - return err; -} diff --git a/src/crent370/clib/@@txinpu.o b/src/crent370/clib/@@txinpu.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txinpu.s b/src/crent370/clib/@@txinpu.s deleted file mode 100644 index e3f90f5..0000000 --- a/src/crent370/clib/@@txinpu.s +++ /dev/null @@ -1,67 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txinpu.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txinpu' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txinpu' -@@TXINPU PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txinpu' code - LA 2,1(0,0) ==> err - MVC 88(4,13),=F'33' - ST 2,92(13) ==> err - ST 2,96(13) ==> err - MVC 100(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L3 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 2,15 ==> err -@@L3 EQU * - LR 15,2 ==> err -* Function '__txinpu' epilogue - PDPEPIL -* Function '__txinpu' literal pool - DS 0D - LTORG -* Function '__txinpu' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC X'80' - DC X'0' - END diff --git a/src/crent370/clib/@@txkeep.c b/src/crent370/clib/@@txkeep.c deleted file mode 100644 index 6582d04..0000000 --- a/src/crent370/clib/@@txkeep.c +++ /dev/null @@ -1,18 +0,0 @@ -/* @@TXKEEP.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txkeep(TXT99 ***txt99, const char *unused) -{ - int err = 1; - TXT99 *tu; - - tu = NewTXT99(DALNDISP,1,1,"\x08"); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - -quit: - return err; -} diff --git a/src/crent370/clib/@@txkeep.o b/src/crent370/clib/@@txkeep.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txkeep.s b/src/crent370/clib/@@txkeep.s deleted file mode 100644 index 3174dc4..0000000 --- a/src/crent370/clib/@@txkeep.s +++ /dev/null @@ -1,67 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txkeep.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txkeep' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txkeep' -@@TXKEEP PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txkeep' code - LA 2,1(0,0) ==> err - MVC 88(4,13),=F'5' - ST 2,92(13) ==> err - ST 2,96(13) ==> err - MVC 100(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L3 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 2,15 ==> err -@@L3 EQU * - LR 15,2 ==> err -* Function '__txkeep' epilogue - PDPEPIL -* Function '__txkeep' literal pool - DS 0D - LTORG -* Function '__txkeep' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC X'8' - DC X'0' - END diff --git a/src/crent370/clib/@@txkeyl.c b/src/crent370/clib/@@txkeyl.c deleted file mode 100644 index ff4008b..0000000 --- a/src/crent370/clib/@@txkeyl.c +++ /dev/null @@ -1,23 +0,0 @@ -/* @@TXKEYL.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txkeyl(TXT99 ***txt99, const char *length) -{ - int err = 1; - int len = length ? atoi(length) : 0; - char *p; - TXT99 *tu; - - if (len >= 0 && len <= 255) { - p = (char*)&len; - tu = NewTXT99(DALKYLEN,1,1,&p[3]); - if (!tu) goto quit; - - err= arrayadd(txt99, tu); - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txkeyl.o b/src/crent370/clib/@@txkeyl.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txkeyl.s b/src/crent370/clib/@@txkeyl.s deleted file mode 100644 index 746d32a..0000000 --- a/src/crent370/clib/@@txkeyl.s +++ /dev/null @@ -1,80 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txkeyl.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txkeyl' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__txkeyl' -@@TXKEYL PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txkeyl' code - L 2,4(11) ==> length - LA 3,1(0,0) ==> err - LTR 2,2 ==> length - BE @@L2 - ST 2,88(13) ==> length - LA 1,88(,13) - L 15,=V(ATOI) - BALR 14,15 - B @@L3 -@@L2 EQU * - SLR 15,15 ==> tu -@@L3 EQU * - ST 15,104(13) ==> tu - LA 4,255(0,0) - CLR 15,4 - BH @@L6 - MVC 88(4,13),=F'64' - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'1' - LA 2,107(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L6 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 3,15 ==> err -@@L6 EQU * - LR 15,3 ==> err -* Function '__txkeyl' epilogue - PDPEPIL -* Function '__txkeyl' literal pool - DS 0D - LTORG -* Function '__txkeyl' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txlabe.c b/src/crent370/clib/@@txlabe.c deleted file mode 100644 index b270d0b..0000000 --- a/src/crent370/clib/@@txlabe.c +++ /dev/null @@ -1,42 +0,0 @@ -/* @@TXLABE.C */ -#include "svc99.h" -#include "clibary.h" - -static struct { - const char label[4]; - unsigned char type; -} types[] = { - {"NL", 0x01}, - {"SL", 0x02}, - {"NSL", 0x04}, - {"SUL", 0x0A}, - {"BLP", 0x10}, - {"LTM", 0x21}, - {"AL", 0x40}, - {"AUL", 0x48}, - {"", 0}, -}; - -int -__txlabe(TXT99 ***txt99, const char *label) -{ - int err = 1; - int len = label ? strlen(label) : 0; - int i; - TXT99 *tu; - - if (len > 1) { - for(i=0; types[i].label[0]; i++) { - if (memcmp(types[i].label, label, len)==0) { - tu = NewTXT99(DALLABEL,1,1,&types[i].type); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - goto quit; - } - } - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txlabe.o b/src/crent370/clib/@@txlabe.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txlabe.s b/src/crent370/clib/@@txlabe.s deleted file mode 100644 index 064a798..0000000 --- a/src/crent370/clib/@@txlabe.s +++ /dev/null @@ -1,143 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txlabe.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program data area -@@2 EQU * - DC C'NL' - DC X'0' - DC 1X'00' - DC X'01' - DC C'SL' - DC X'0' - DC 1X'00' - DC X'02' - DC C'NSL' - DC X'0' - DC X'04' - DC C'SUL' - DC X'0' - DC X'0A' - DC C'BLP' - DC X'0' - DC X'10' - DC C'LTM' - DC X'0' - DC X'21' - DC C'AL' - DC X'0' - DC 1X'00' - DC X'40' - DC C'AUL' - DC X'0' - DC X'48' - DC X'0' - DC 3X'00' - DC X'00' -* Program text area - DS 0F - EJECT -* external function '__txlabe' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txlabe' -@@TXLABE PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txlabe' code - L 6,4(11) ==> label - LA 8,1(0,0) ==> err - LTR 6,6 ==> label - BE @@L2 - ST 6,88(13) ==> label - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 5,15 ==> len - B @@L3 -@@L2 EQU * - SLR 5,5 ==> len -@@L3 EQU * - LA 2,1(0,0) - CR 5,2 ==> len - BNH @@L11 - SLR 3,3 ==> i - L 2,=A(@@2) - IC 2,0(3,2) ==> .label - CLM 2,1,=XL1'00' - BE @@L11 - L 7,=A(@@2) -@@L12 EQU * - LR 2,3 ==> i - SLL 2,2 - LR 4,2 - AR 4,3 ==> i - LR 2,4 - A 2,=A(@@2) - ST 2,88(13) - ST 6,92(13) ==> label - ST 5,96(13) ==> len - LA 1,88(,13) - L 15,=V(MEMCMP) - BALR 14,15 - LTR 15,15 ==> len - BNE @@L7 - MVC 88(4,13),=F'30' - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'1' - LR 2,4 - A 2,=A(@@2+4) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L11 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 8,15 ==> err - B @@L11 -@@L7 EQU * - A 3,=F'1' ==> i - LR 2,3 ==> i - SLL 2,2 - AR 2,3 ==> i - IC 2,0(2,7) ==> .label - CLM 2,1,=XL1'00' - BNE @@L12 -@@L11 EQU * - LR 15,8 ==> err -* Function '__txlabe' epilogue - PDPEPIL -* Function '__txlabe' literal pool - DS 0D - LTORG -* Function '__txlabe' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txlmct.c b/src/crent370/clib/@@txlmct.c deleted file mode 100644 index f67b46a..0000000 --- a/src/crent370/clib/@@txlmct.c +++ /dev/null @@ -1,25 +0,0 @@ -/* @@TXLMCT.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txlmct(TXT99 ***txt99, const char *limit) -{ - int err = 1; - int len = limit ? atoi(limit) : 0; - char *p; - TXT99 *tu; - - if (len > 32760) len = 32760; - if (len > 0) { - p = (char*)&len; - - tu = NewTXT99(DALLIMCT,1,3,&p[1]); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txlmct.o b/src/crent370/clib/@@txlmct.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txlmct.s b/src/crent370/clib/@@txlmct.s deleted file mode 100644 index f29bcec..0000000 --- a/src/crent370/clib/@@txlmct.s +++ /dev/null @@ -1,85 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txlmct.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txlmct' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__txlmct' -@@TXLMCT PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txlmct' code - L 2,4(11) ==> limit - LA 3,1(0,0) ==> err - LTR 2,2 ==> limit - BE @@L2 - ST 2,88(13) ==> limit - LA 1,88(,13) - L 15,=V(ATOI) - BALR 14,15 - B @@L3 -@@L2 EQU * - SLR 15,15 ==> tu -@@L3 EQU * - ST 15,104(13) ==> tu - L 4,=F'32760' - CR 15,4 - BNH @@L4 - ST 4,104(13) -@@L4 EQU * - L 2,104(13) - LTR 2,2 - BNH @@L7 - MVC 88(4,13),=F'65' - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'3' - LA 2,105(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L7 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 3,15 ==> err -@@L7 EQU * - LR 15,3 ==> err -* Function '__txlmct' epilogue - PDPEPIL -* Function '__txlmct' literal pool - DS 0D - LTORG -* Function '__txlmct' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txlrec.c b/src/crent370/clib/@@txlrec.c deleted file mode 100644 index 8e59a3f..0000000 --- a/src/crent370/clib/@@txlrec.c +++ /dev/null @@ -1,36 +0,0 @@ -/* @@TXLREC.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txlrec(TXT99 ***txt99, const char *lrecl) -{ - int err = 1; - int len = lrecl ? atoi(lrecl) : 0; - char *p; - TXT99 *tu; - - if (lrecl) { - p = (char*)&len; - - if (strchr(lrecl, 'X')) { - /* Variable length spanned records greater than 32,756 */ - len = 0x8000; - } - else if (strchr(lrecl, 'K')) { - len *= 1024; - if (len > 32760) len = 32760; - } - else { - if (len > 32760) len = 32760; - } - - tu = NewTXT99(DALLRECL,1,2,&p[2]); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txlrec.o b/src/crent370/clib/@@txlrec.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txlrec.s b/src/crent370/clib/@@txlrec.s deleted file mode 100644 index 10c3517..0000000 --- a/src/crent370/clib/@@txlrec.s +++ /dev/null @@ -1,109 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txlrec.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txlrec' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__txlrec' -@@TXLREC PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txlrec' code - L 2,4(11) ==> lrecl - LA 3,1(0,0) ==> err - LTR 2,2 ==> lrecl - BE @@L2 - ST 2,88(13) ==> lrecl - LA 1,88(,13) - L 15,=V(ATOI) - BALR 14,15 - B @@L3 -@@L2 EQU * - SLR 15,15 ==> tu -@@L3 EQU * - ST 15,104(13) ==> tu - LTR 2,2 ==> lrecl - BE @@L12 - ST 2,88(13) ==> lrecl - MVC 92(4,13),=F'231' - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L5 - MVC 104(4,13),=F'32768' - B @@L6 -@@L5 EQU * - ST 2,88(13) ==> lrecl - MVC 92(4,13),=F'210' - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L7 - L 2,104(13) - SLL 2,10 - ST 2,104(13) - B @@L14 -@@L7 EQU * - L 2,104(13) -@@L14 EQU * - L 4,=F'32760' - CR 2,4 - BNH @@L6 - ST 4,104(13) -@@L6 EQU * - MVC 88(4,13),=F'66' - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'2' - LA 2,104(,13) ==> p - A 2,=F'2' - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L12 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 3,15 ==> err -@@L12 EQU * - LR 15,3 ==> err -* Function '__txlrec' epilogue - PDPEPIL -* Function '__txlrec' literal pool - DS 0D - LTORG -* Function '__txlrec' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txmod.c b/src/crent370/clib/@@txmod.c deleted file mode 100644 index 05f360d..0000000 --- a/src/crent370/clib/@@txmod.c +++ /dev/null @@ -1,20 +0,0 @@ -/* @@TXMOD.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txmod(TXT99 ***txt99, const char *unused) -{ - int err = 1; - TXT99 *tu; - - tu = NewTXT99(DALSTATS,1,1,"\x02"); /* DISP=MOD */ - if (!tu) goto quit; - - if (arrayadd(txt99, tu)) goto quit; - - err = 0; - -quit: - return err; -} diff --git a/src/crent370/clib/@@txmod.o b/src/crent370/clib/@@txmod.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txmod.s b/src/crent370/clib/@@txmod.s deleted file mode 100644 index 729c333..0000000 --- a/src/crent370/clib/@@txmod.s +++ /dev/null @@ -1,69 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txmod.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txmod' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txmod' -@@TXMOD PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txmod' code - LA 2,1(0,0) ==> err - MVC 88(4,13),=F'4' - ST 2,92(13) ==> err - ST 2,96(13) ==> err - MVC 100(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L3 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LTR 15,15 ==> tu - BNE @@L3 - LR 2,15 ==> err,tu -@@L3 EQU * - LR 15,2 ==> err -* Function '__txmod' epilogue - PDPEPIL -* Function '__txmod' literal pool - DS 0D - LTORG -* Function '__txmod' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC X'2' - DC X'0' - END diff --git a/src/crent370/clib/@@txncp.c b/src/crent370/clib/@@txncp.c deleted file mode 100644 index e9c12c4..0000000 --- a/src/crent370/clib/@@txncp.c +++ /dev/null @@ -1,24 +0,0 @@ -/* @@TXNCP.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txncp(TXT99 ***txt99, const char *count) -{ - int err = 1; - int len = count ? atoi(count) : 0; - char *p; - TXT99 *tu; - - if (len >= 1 && len <= 255) { - p = (char*)&len; - - tu = NewTXT99(DALNCP,1,1,&p[3]); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txncp.o b/src/crent370/clib/@@txncp.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txncp.s b/src/crent370/clib/@@txncp.s deleted file mode 100644 index 4f41c7b..0000000 --- a/src/crent370/clib/@@txncp.s +++ /dev/null @@ -1,82 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txncp.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txncp' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__txncp' -@@TXNCP PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txncp' code - L 2,4(11) ==> count - LA 3,1(0,0) ==> err - LTR 2,2 ==> count - BE @@L2 - ST 2,88(13) ==> count - LA 1,88(,13) - L 15,=V(ATOI) - BALR 14,15 - B @@L3 -@@L2 EQU * - SLR 15,15 ==> tu -@@L3 EQU * - ST 15,104(13) ==> tu - LR 2,15 ==> tu - BCTR 2,0 - LA 4,254(0,0) - CLR 2,4 - BH @@L6 - MVC 88(4,13),=F'68' - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'1' - LA 2,107(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L6 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 3,15 ==> err -@@L6 EQU * - LR 15,3 ==> err -* Function '__txncp' epilogue - PDPEPIL -* Function '__txncp' literal pool - DS 0D - LTORG -* Function '__txncp' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txnew.c b/src/crent370/clib/@@txnew.c deleted file mode 100644 index c7f926d..0000000 --- a/src/crent370/clib/@@txnew.c +++ /dev/null @@ -1,20 +0,0 @@ -/* @@TXNEW.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txnew(TXT99 ***txt99, const char *unused) -{ - int err = 1; - TXT99 *tu; - - tu = NewTXT99(DALSTATS,1,1,"\x04"); /* DISP=NEW */ - if (!tu) goto quit; - - if (arrayadd(txt99, tu)) goto quit; - - err = 0; - -quit: - return err; -} diff --git a/src/crent370/clib/@@txnew.o b/src/crent370/clib/@@txnew.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txnew.s b/src/crent370/clib/@@txnew.s deleted file mode 100644 index fbb25df..0000000 --- a/src/crent370/clib/@@txnew.s +++ /dev/null @@ -1,69 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txnew.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txnew' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txnew' -@@TXNEW PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txnew' code - LA 2,1(0,0) ==> err - MVC 88(4,13),=F'4' - ST 2,92(13) ==> err - ST 2,96(13) ==> err - MVC 100(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L3 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LTR 15,15 ==> tu - BNE @@L3 - LR 2,15 ==> err,tu -@@L3 EQU * - LR 15,2 ==> err -* Function '__txnew' epilogue - PDPEPIL -* Function '__txnew' literal pool - DS 0D - LTORG -* Function '__txnew' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC X'4' - DC X'0' - END diff --git a/src/crent370/clib/@@txold.c b/src/crent370/clib/@@txold.c deleted file mode 100644 index 68b4cbb..0000000 --- a/src/crent370/clib/@@txold.c +++ /dev/null @@ -1,20 +0,0 @@ -/* @@TXOLD.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txold(TXT99 ***txt99, const char *unused) -{ - int err = 1; - TXT99 *tu; - - tu = NewTXT99(DALSTATS,1,1,"\x01"); /* DISP=OLD */ - if (!tu) goto quit; - - if (arrayadd(txt99, tu)) goto quit; - - err = 0; - -quit: - return err; -} diff --git a/src/crent370/clib/@@txold.o b/src/crent370/clib/@@txold.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txold.s b/src/crent370/clib/@@txold.s deleted file mode 100644 index 8249731..0000000 --- a/src/crent370/clib/@@txold.s +++ /dev/null @@ -1,69 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txold.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txold' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txold' -@@TXOLD PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txold' code - LA 2,1(0,0) ==> err - MVC 88(4,13),=F'4' - ST 2,92(13) ==> err - ST 2,96(13) ==> err - MVC 100(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L3 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LTR 15,15 ==> tu - BNE @@L3 - LR 2,15 ==> err,tu -@@L3 EQU * - LR 15,2 ==> err -* Function '__txold' epilogue - PDPEPIL -* Function '__txold' literal pool - DS 0D - LTORG -* Function '__txold' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC X'1' - DC X'0' - END diff --git a/src/crent370/clib/@@txorg.c b/src/crent370/clib/@@txorg.c deleted file mode 100644 index 06dde1f..0000000 --- a/src/crent370/clib/@@txorg.c +++ /dev/null @@ -1,48 +0,0 @@ -/* @@TXORG.C */ -#include "svc99.h" -#include "clibary.h" - -static struct { - const char dsorg[6]; - unsigned short type; -} table[] = { - {"CQ", 0x0800}, - {"CX", 0x1000}, - {"DA", 0x2000}, - {"DAU", 0x2100}, - {"GS", 0x0080}, - {"MQ", 0x0400}, - {"PO", 0x0200}, - {"POU", 0x0300}, - {"PS", 0x4000}, - {"PSU", 0x4100}, - {"TCAM", 0x0004}, - {"3705", 0x0004}, - {"TQ", 0x0020}, - {"TX", 0x0040}, - {"VSAM", 0x0008}, - {"", 0} -}; - -int -__txorg(TXT99 ***txt99, const char *dsorg) -{ - int err = 1; - int i; - TXT99 *tu; - - if (dsorg) { - for(i=0; table[i].dsorg[0]; i++) { - if (strcmp(table[i].dsorg, dsorg)==0) { - tu = NewTXT99(DALDSORG,1,2,(char *)&table[i].type); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - goto quit; - } - } - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txorg.o b/src/crent370/clib/@@txorg.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txorg.s b/src/crent370/clib/@@txorg.s deleted file mode 100644 index d641104..0000000 --- a/src/crent370/clib/@@txorg.s +++ /dev/null @@ -1,161 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txorg.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program data area - DS 0H -@@2 EQU * - DC C'CQ' - DC X'0' - DC 3X'00' - DC X'0800' - DC C'CX' - DC X'0' - DC 3X'00' - DC X'1000' - DC C'DA' - DC X'0' - DC 3X'00' - DC X'2000' - DC C'DAU' - DC X'0' - DC 2X'00' - DC X'2100' - DC C'GS' - DC X'0' - DC 3X'00' - DC X'0080' - DC C'MQ' - DC X'0' - DC 3X'00' - DC X'0400' - DC C'PO' - DC X'0' - DC 3X'00' - DC X'0200' - DC C'POU' - DC X'0' - DC 2X'00' - DC X'0300' - DC C'PS' - DC X'0' - DC 3X'00' - DC X'4000' - DC C'PSU' - DC X'0' - DC 2X'00' - DC X'4100' - DC C'TCAM' - DC X'0' - DC 1X'00' - DC X'0004' - DC C'3705' - DC X'0' - DC 1X'00' - DC X'0004' - DC C'TQ' - DC X'0' - DC 3X'00' - DC X'0020' - DC C'TX' - DC X'0' - DC 3X'00' - DC X'0040' - DC C'VSAM' - DC X'0' - DC 1X'00' - DC X'0008' - DC X'0' - DC 5X'00' - DC X'0000' -* Program text area - DS 0F - EJECT -* external function '__txorg' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txorg' -@@TXORG PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txorg' code - L 6,4(11) ==> dsorg - LA 7,1(0,0) ==> err - LTR 6,6 ==> dsorg - BE @@L9 - SLR 3,3 ==> i - L 2,=A(@@2) - IC 2,0(3,2) ==> .dsorg - CLM 2,1,=XL1'00' - BE @@L9 - L 5,=A(@@2) -@@L10 EQU * - LR 4,3 ==> i - MH 4,=H'8' - LR 2,4 - A 2,=A(@@2) - ST 2,88(13) - ST 6,92(13) ==> dsorg - LA 1,88(,13) - L 15,=V(STRCMP) - BALR 14,15 - LTR 15,15 ==> tu - BNE @@L5 - MVC 88(4,13),=F'60' - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'2' - LR 2,4 - A 2,=A(@@2+6) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L9 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 7,15 ==> err - B @@L9 -@@L5 EQU * - A 3,=F'1' ==> i - LR 2,3 ==> i - MH 2,=H'8' - IC 2,0(2,5) ==> .dsorg - CLM 2,1,=XL1'00' - BNE @@L10 -@@L9 EQU * - LR 15,7 ==> err -* Function '__txorg' epilogue - PDPEPIL -* Function '__txorg' literal pool - DS 0D - LTORG -* Function '__txorg' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txoutp.c b/src/crent370/clib/@@txoutp.c deleted file mode 100644 index 4498cac..0000000 --- a/src/crent370/clib/@@txoutp.c +++ /dev/null @@ -1,18 +0,0 @@ -/* @@TXOUTP.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txoutp(TXT99 ***txt99, const char *unused) -{ - int err = 1; - TXT99 *tu; - - tu = NewTXT99(DALINOUT,1,1,"\x40"); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - -quit: - return err; -} diff --git a/src/crent370/clib/@@txoutp.o b/src/crent370/clib/@@txoutp.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txoutp.s b/src/crent370/clib/@@txoutp.s deleted file mode 100644 index 2253467..0000000 --- a/src/crent370/clib/@@txoutp.s +++ /dev/null @@ -1,67 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txoutp.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txoutp' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txoutp' -@@TXOUTP PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txoutp' code - LA 2,1(0,0) ==> err - MVC 88(4,13),=F'33' - ST 2,92(13) ==> err - ST 2,96(13) ==> err - MVC 100(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L3 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 2,15 ==> err -@@L3 EQU * - LR 15,2 ==> err -* Function '__txoutp' epilogue - PDPEPIL -* Function '__txoutp' literal pool - DS 0D - LTORG -* Function '__txoutp' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C' ' - DC X'0' - END diff --git a/src/crent370/clib/@@txpara.c b/src/crent370/clib/@@txpara.c deleted file mode 100644 index 69b9216..0000000 --- a/src/crent370/clib/@@txpara.c +++ /dev/null @@ -1,18 +0,0 @@ -/* @@TXPARA.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txpara(TXT99 ***txt99, const char *unused) -{ - int err = 1; - TXT99 *tu; - - tu = NewTXT99(DALPARAL,0,0,0); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - -quit: - return err; -} diff --git a/src/crent370/clib/@@txpara.o b/src/crent370/clib/@@txpara.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txpara.s b/src/crent370/clib/@@txpara.s deleted file mode 100644 index 26351d9..0000000 --- a/src/crent370/clib/@@txpara.s +++ /dev/null @@ -1,64 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txpara.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txpara' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txpara' -@@TXPARA PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txpara' code - LA 2,1(0,0) ==> err - MVC 88(4,13),=F'23' - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'0' - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L3 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 2,15 ==> err -@@L3 EQU * - LR 15,2 ==> err -* Function '__txpara' epilogue - PDPEPIL -* Function '__txpara' literal pool - DS 0D - LTORG -* Function '__txpara' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txperm.c b/src/crent370/clib/@@txperm.c deleted file mode 100644 index 85eb487..0000000 --- a/src/crent370/clib/@@txperm.c +++ /dev/null @@ -1,17 +0,0 @@ -/* @@TXPERM.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txperm(TXT99 ***txt99, const char *unused) -{ - int err = 1; - TXT99 *tu = NewTXT99(DALPERMA,0,0,0); - - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - -quit: - return err; -} diff --git a/src/crent370/clib/@@txperm.o b/src/crent370/clib/@@txperm.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txperm.s b/src/crent370/clib/@@txperm.s deleted file mode 100644 index 7f88d6b..0000000 --- a/src/crent370/clib/@@txperm.s +++ /dev/null @@ -1,64 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txperm.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txperm' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txperm' -@@TXPERM PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txperm' code - LA 2,1(0,0) ==> err - MVC 88(4,13),=F'82' - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'0' - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L3 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 2,15 ==> err -@@L3 EQU * - LR 15,2 ==> err -* Function '__txperm' epilogue - PDPEPIL -* Function '__txperm' literal pool - DS 0D - LTORG -* Function '__txperm' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txpgm.c b/src/crent370/clib/@@txpgm.c deleted file mode 100644 index 4114eba..0000000 --- a/src/crent370/clib/@@txpgm.c +++ /dev/null @@ -1,21 +0,0 @@ -/* @@TXPGM.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txpgm(TXT99 ***txt99, const char *pgm) -{ - int err = 1; - int len = pgm ? strlen(pgm) : 0; - TXT99 *tu; - - if (len >=1 && len <= 8) { - tu = NewTXT99(DALSPGNM,1,len,pgm); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txpgm.o b/src/crent370/clib/@@txpgm.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txpgm.s b/src/crent370/clib/@@txpgm.s deleted file mode 100644 index c1fc8a7..0000000 --- a/src/crent370/clib/@@txpgm.s +++ /dev/null @@ -1,80 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txpgm.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txpgm' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txpgm' -@@TXPGM PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txpgm' code - L 3,4(11) ==> pgm - LA 4,1(0,0) ==> err - LTR 3,3 ==> pgm - BE @@L2 - ST 3,88(13) ==> pgm - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - B @@L3 -@@L2 EQU * - SLR 15,15 ==> len -@@L3 EQU * - LR 2,15 ==> len - BCTR 2,0 - LA 5,7(0,0) - CLR 2,5 - BH @@L6 - MVC 88(4,13),=F'25' - MVC 92(4,13),=F'1' - ST 15,96(13) ==> len - ST 3,100(13) ==> pgm - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L6 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 4,15 ==> err -@@L6 EQU * - LR 15,4 ==> err -* Function '__txpgm' epilogue - PDPEPIL -* Function '__txpgm' literal pool - DS 0D - LTORG -* Function '__txpgm' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txpriv.c b/src/crent370/clib/@@txpriv.c deleted file mode 100644 index dc95b98..0000000 --- a/src/crent370/clib/@@txpriv.c +++ /dev/null @@ -1,18 +0,0 @@ -/* @@TXPRIV.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txpriv(TXT99 ***txt99, const char *unused) -{ - int err = 1; - TXT99 *tu; - - tu = NewTXT99(DALPRIVT,0,0,0); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - -quit: - return err; -} diff --git a/src/crent370/clib/@@txpriv.o b/src/crent370/clib/@@txpriv.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txpriv.s b/src/crent370/clib/@@txpriv.s deleted file mode 100644 index fb54c32..0000000 --- a/src/crent370/clib/@@txpriv.s +++ /dev/null @@ -1,64 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txpriv.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txpriv' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txpriv' -@@TXPRIV PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txpriv' code - LA 2,1(0,0) ==> err - MVC 88(4,13),=F'17' - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'0' - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L3 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 2,15 ==> err -@@L3 EQU * - LR 15,2 ==> err -* Function '__txpriv' epilogue - PDPEPIL -* Function '__txpriv' literal pool - DS 0D - LTORG -* Function '__txpriv' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txprot.c b/src/crent370/clib/@@txprot.c deleted file mode 100644 index 340c9a8..0000000 --- a/src/crent370/clib/@@txprot.c +++ /dev/null @@ -1,18 +0,0 @@ -/* @@TXPROT.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txprot(TXT99 ***txt99, const char *unused) -{ - int err = 1; - TXT99 *tu; - - tu = NewTXT99(DALPROT,0,0,0); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - -quit: - return err; -} diff --git a/src/crent370/clib/@@txprot.o b/src/crent370/clib/@@txprot.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txprot.s b/src/crent370/clib/@@txprot.s deleted file mode 100644 index e9a22a2..0000000 --- a/src/crent370/clib/@@txprot.s +++ /dev/null @@ -1,64 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txprot.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txprot' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txprot' -@@TXPROT PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txprot' code - LA 2,1(0,0) ==> err - MVC 88(4,13),=F'97' - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'0' - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L3 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 2,15 ==> err -@@L3 EQU * - LR 15,2 ==> err -* Function '__txprot' epilogue - PDPEPIL -* Function '__txprot' literal pool - DS 0D - LTORG -* Function '__txprot' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txrddn.c b/src/crent370/clib/@@txrddn.c deleted file mode 100644 index 47e23cc..0000000 --- a/src/crent370/clib/@@txrddn.c +++ /dev/null @@ -1,19 +0,0 @@ -/* @@TXRDDN.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txrddn(TXT99 ***txt99, const char *unused) -{ - int err = 1; - int len; - TXT99 *tu; - - tu = NewTXT99(DALRTDDN,1,8,0); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - -quit: - return err; -} diff --git a/src/crent370/clib/@@txrddn.o b/src/crent370/clib/@@txrddn.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txrddn.s b/src/crent370/clib/@@txrddn.s deleted file mode 100644 index 1f71103..0000000 --- a/src/crent370/clib/@@txrddn.s +++ /dev/null @@ -1,64 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txrddn.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txrddn' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txrddn' -@@TXRDDN PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txrddn' code - LA 2,1(0,0) ==> err - MVC 88(4,13),=F'85' - ST 2,92(13) ==> err - MVC 96(4,13),=F'8' - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L3 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 2,15 ==> err -@@L3 EQU * - LR 15,2 ==> err -* Function '__txrddn' epilogue - PDPEPIL -* Function '__txrddn' literal pool - DS 0D - LTORG -* Function '__txrddn' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txrecf.c b/src/crent370/clib/@@txrecf.c deleted file mode 100644 index 65a5cb1..0000000 --- a/src/crent370/clib/@@txrecf.c +++ /dev/null @@ -1,56 +0,0 @@ -/* @@TXRECF.C */ -#include "svc99.h" -#include "clibary.h" - -static struct { - const unsigned char recfm; - const unsigned char type; -} table[] = { - {'M', 0x02}, - {'R', 0x02}, - {'A', 0x04}, - {'G', 0x04}, - {'S', 0x08}, - {'B', 0x10}, - {'D', 0x20}, - {'T', 0x20}, - {'V', 0x40}, - {'F', 0x80}, - {'U', 0xC0}, - {0, 0} -}; - -int -__txrecf(TXT99 ***txt99, const char *recfm) -{ - int err = 1; - int i; - int j; - TXT99 *tu; - unsigned char type; - unsigned char c; - - if (recfm) { - type = 0; - - for(i=0; recfm[i]; i++) { - c = (recfm[i] | ' '); /* quick fold to upper */ - for(j=0; table[j].recfm; j++) { - if (c==table[j].recfm) { - type |= table[j].type; - break; - } - } - } - - if (!type) goto quit; - - tu = NewTXT99(DALRECFM,1,1,&type); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txrecf.o b/src/crent370/clib/@@txrecf.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txrecf.s b/src/crent370/clib/@@txrecf.s deleted file mode 100644 index b5468b6..0000000 --- a/src/crent370/clib/@@txrecf.s +++ /dev/null @@ -1,134 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txrecf.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program data area -@@2 EQU * - DC X'D4' - DC X'02' - DC X'D9' - DC X'02' - DC X'C1' - DC X'04' - DC X'C7' - DC X'04' - DC X'E2' - DC X'08' - DC X'C2' - DC X'10' - DC X'C4' - DC X'20' - DC X'E3' - DC X'20' - DC X'E5' - DC X'40' - DC X'C6' - DC X'80' - DC X'E4' - DC X'C0' - DC X'00' - DC X'00' -* Program text area - DS 0F - EJECT -* external function '__txrecf' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__txrecf' -@@TXRECF PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txrecf' code - L 7,4(11) ==> recfm - LA 9,1(0,0) ==> err - LTR 7,7 ==> recfm - BE @@L15 - MVI 104(13),0 - SLR 6,6 ==> i - IC 2,0(7) ==> recfm - CLM 2,1,=XL1'00' - BE @@L18 - L 8,=A(@@2) -@@L13 EQU * - IC 4,0(6,7) ==> c,i - O 4,=XL4'40' ==> c - SLR 15,15 ==> j - IC 2,0(15,8) ==> .recfm - CLM 2,1,=XL1'00' - BE @@L5 - L 5,=A(@@2) -@@L12 EQU * - LR 2,15 ==> j - MH 2,=H'2' - IC 3,0(2,5) ==> .recfm - STC 3,80(,13) - CLM 4,1,80(13) ==> c - BNE @@L9 - AR 2,5 - OC 104(1,13),1(2) ==> .type - B @@L5 -@@L9 EQU * - A 15,=F'1' ==> j - LR 2,15 ==> j - MH 2,=H'2' - L 3,=A(@@2) - IC 2,0(2,3) ==> .recfm - CLM 2,1,=XL1'00' - BNE @@L12 -@@L5 EQU * - A 6,=F'1' ==> i - IC 2,0(6,7) ==> i - CLM 2,1,=XL1'00' - BNE @@L13 -@@L18 EQU * - CLI 104(13),0 - BE @@L15 - MVC 88(4,13),=F'73' - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'1' - LA 2,104(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L15 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 9,15 ==> err -@@L15 EQU * - LR 15,9 ==> err -* Function '__txrecf' epilogue - PDPEPIL -* Function '__txrecf' literal pool - DS 0D - LTORG -* Function '__txrecf' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txretp.c b/src/crent370/clib/@@txretp.c deleted file mode 100644 index 630d78c..0000000 --- a/src/crent370/clib/@@txretp.c +++ /dev/null @@ -1,24 +0,0 @@ -/* @@TXRETP.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txretp(TXT99 ***txt99, const char *days) -{ - int err = 1; - int len = days ? atoi(days) : 0; - char *p; - TXT99 *tu; - - if (len >= 1 && len <= 93000) { - p = (char *)&len; - - tu = NewTXT99(DALRETPD,1,3,&p[1]); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txretp.o b/src/crent370/clib/@@txretp.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txretp.s b/src/crent370/clib/@@txretp.s deleted file mode 100644 index 609979e..0000000 --- a/src/crent370/clib/@@txretp.s +++ /dev/null @@ -1,82 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txretp.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txretp' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__txretp' -@@TXRETP PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txretp' code - L 2,4(11) ==> days - LA 3,1(0,0) ==> err - LTR 2,2 ==> days - BE @@L2 - ST 2,88(13) ==> days - LA 1,88(,13) - L 15,=V(ATOI) - BALR 14,15 - B @@L3 -@@L2 EQU * - SLR 15,15 ==> tu -@@L3 EQU * - ST 15,104(13) ==> tu - LR 2,15 ==> tu - BCTR 2,0 - L 4,=F'92999' - CLR 2,4 - BH @@L6 - MVC 88(4,13),=F'35' - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'3' - LA 2,105(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L6 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 3,15 ==> err -@@L6 EQU * - LR 15,3 ==> err -* Function '__txretp' epilogue - PDPEPIL -* Function '__txretp' literal pool - DS 0D - LTORG -* Function '__txretp' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txrlse.c b/src/crent370/clib/@@txrlse.c deleted file mode 100644 index 596108c..0000000 --- a/src/crent370/clib/@@txrlse.c +++ /dev/null @@ -1,18 +0,0 @@ -/* @@TXRLSE.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txrlse(TXT99 ***txt99, const char *unused) -{ - int err = 1; - TXT99 *tu; - - tu = NewTXT99(DALRLSE,0,0,0); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - -quit: - return err; -} diff --git a/src/crent370/clib/@@txrlse.o b/src/crent370/clib/@@txrlse.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txrlse.s b/src/crent370/clib/@@txrlse.s deleted file mode 100644 index b470df0..0000000 --- a/src/crent370/clib/@@txrlse.s +++ /dev/null @@ -1,64 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txrlse.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txrlse' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txrlse' -@@TXRLSE PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txrlse' code - LA 2,1(0,0) ==> err - MVC 88(4,13),=F'13' - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'0' - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L3 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 2,15 ==> err -@@L3 EQU * - LR 15,2 ==> err -* Function '__txrlse' epilogue - PDPEPIL -* Function '__txrlse' literal pool - DS 0D - LTORG -* Function '__txrlse' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txrnd.c b/src/crent370/clib/@@txrnd.c deleted file mode 100644 index 257305f..0000000 --- a/src/crent370/clib/@@txrnd.c +++ /dev/null @@ -1,18 +0,0 @@ -/* @@TXRND.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txrnd(TXT99 ***txt99, const char *unused) -{ - int err = 1; - TXT99 *tu; - - tu = NewTXT99(DALROUND,0,0,0); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - -quit: - return err; -} diff --git a/src/crent370/clib/@@txrnd.o b/src/crent370/clib/@@txrnd.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txrnd.s b/src/crent370/clib/@@txrnd.s deleted file mode 100644 index c5396e2..0000000 --- a/src/crent370/clib/@@txrnd.s +++ /dev/null @@ -1,64 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txrnd.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txrnd' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txrnd' -@@TXRND PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txrnd' code - LA 2,1(0,0) ==> err - MVC 88(4,13),=F'15' - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'0' - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L3 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 2,15 ==> err -@@L3 EQU * - LR 15,2 ==> err -* Function '__txrnd' epilogue - PDPEPIL -* Function '__txrnd' literal pool - DS 0D - LTORG -* Function '__txrnd' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txseq.c b/src/crent370/clib/@@txseq.c deleted file mode 100644 index a28f261..0000000 --- a/src/crent370/clib/@@txseq.c +++ /dev/null @@ -1,24 +0,0 @@ -/* @@TXSEQ.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txseq(TXT99 ***txt99, const char *sequence) -{ - int err = 1; - int len = sequence ? atoi(sequence) : 0; - char *p; - TXT99 *tu; - - if (len >= 1 && len <= 9999) { - p = (char*)&len; - - tu = NewTXT99(DALDSSEQ, 1, 2, &p[2]); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txseq.o b/src/crent370/clib/@@txseq.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txseq.s b/src/crent370/clib/@@txseq.s deleted file mode 100644 index b8133d9..0000000 --- a/src/crent370/clib/@@txseq.s +++ /dev/null @@ -1,82 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txseq.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txseq' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__txseq' -@@TXSEQ PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txseq' code - L 2,4(11) ==> sequence - LA 3,1(0,0) ==> err - LTR 2,2 ==> sequence - BE @@L2 - ST 2,88(13) ==> sequence - LA 1,88(,13) - L 15,=V(ATOI) - BALR 14,15 - B @@L3 -@@L2 EQU * - SLR 15,15 ==> tu -@@L3 EQU * - ST 15,104(13) ==> tu - LR 2,15 ==> tu - BCTR 2,0 - L 4,=F'9998' - CLR 2,4 - BH @@L6 - MVC 88(4,13),=F'31' - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'2' - LA 2,106(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L6 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 3,15 ==> err -@@L6 EQU * - LR 15,3 ==> err -* Function '__txseq' epilogue - PDPEPIL -* Function '__txseq' literal pool - DS 0D - LTORG -* Function '__txseq' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txshr.c b/src/crent370/clib/@@txshr.c deleted file mode 100644 index 1b3d374..0000000 --- a/src/crent370/clib/@@txshr.c +++ /dev/null @@ -1,20 +0,0 @@ -/* @@TXSHR.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txshr(TXT99 ***txt99, const char *unused) -{ - int err = 1; - TXT99 *tu; - - tu = NewTXT99(DALSTATS,1,1,"\x08"); /* DISP=SHR */ - if (!tu) goto quit; - - if (arrayadd(txt99, tu)) goto quit; - - err = 0; - -quit: - return err; -} diff --git a/src/crent370/clib/@@txshr.o b/src/crent370/clib/@@txshr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txshr.s b/src/crent370/clib/@@txshr.s deleted file mode 100644 index c4041fd..0000000 --- a/src/crent370/clib/@@txshr.s +++ /dev/null @@ -1,69 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txshr.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txshr' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txshr' -@@TXSHR PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txshr' code - LA 2,1(0,0) ==> err - MVC 88(4,13),=F'4' - ST 2,92(13) ==> err - ST 2,96(13) ==> err - MVC 100(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L3 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LTR 15,15 ==> tu - BNE @@L3 - LR 2,15 ==> err,tu -@@L3 EQU * - LR 15,2 ==> err -* Function '__txshr' epilogue - PDPEPIL -* Function '__txshr' literal pool - DS 0D - LTORG -* Function '__txshr' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC X'8' - DC X'0' - END diff --git a/src/crent370/clib/@@txspac.c b/src/crent370/clib/@@txspac.c deleted file mode 100644 index 197143a..0000000 --- a/src/crent370/clib/@@txspac.c +++ /dev/null @@ -1,42 +0,0 @@ -/* @@TXSPAC.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txspac(TXT99 ***txt99, const char *space) -{ - int err = 1; - int len = space ? strlen(space) : 0; - char *buf = calloc(1, len + 1); - char *p; - char *s; - TXT99 *tu; - - if (!len) goto quit; - if (!buf) goto quit; - - /* "pri[,sec]" */ - memcpy(buf, space, len); - p = strtok(buf, " ,"); - s = strtok(NULL, ""); - - /* Primary space */ - len = p ? atoi(p) : 0; - p = (char*)&len; - tu = NewTXT99(DALPRIME,1,3,&p[1]); - if (!tu) goto quit; - err = arrayadd(txt99, tu); - if (err) goto quit; - - /* Secondary space */ - err = 1; - len = s ? atoi(s) : 0; - s = (char*)&len; - tu = NewTXT99(DALSECND,1,3,&s[1]); - if (!tu) goto quit; - err = arrayadd(txt99, tu); - -quit: - if (buf) free(buf); - return err; -} diff --git a/src/crent370/clib/@@txspac.o b/src/crent370/clib/@@txspac.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txspac.s b/src/crent370/clib/@@txspac.s deleted file mode 100644 index 0963805..0000000 --- a/src/crent370/clib/@@txspac.s +++ /dev/null @@ -1,162 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txspac.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txspac' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__txspac' -@@TXSPAC PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txspac' code - L 6,0(11) ==> txt99 - L 3,4(11) ==> space - LA 5,1(0,0) ==> err - LTR 3,3 ==> space - BE @@L2 - ST 3,88(13) ==> space - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - B @@L3 -@@L2 EQU * - SLR 15,15 ==> p -@@L3 EQU * - ST 15,104(13) ==> p - MVC 88(4,13),=F'1' - LR 2,15 ==> p - A 2,=F'1' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 4,15 ==> buf - L 2,104(13) - LTR 2,2 - BE @@L5 - LTR 15,15 ==> buf - BE @@L5 - ST 15,88(13) ==> buf - ST 3,92(13) ==> space - ST 2,96(13) - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - ST 4,88(13) ==> buf - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(STRTOK) - BALR 14,15 - LR 2,15 ==> p - MVC 88(4,13),=F'0' - MVC 92(4,13),=A(@@LC1) - LA 1,88(,13) - L 15,=V(STRTOK) - BALR 14,15 - LR 3,15 ==> s - LTR 2,2 ==> p - BE @@L7 - ST 2,88(13) ==> p - LA 1,88(,13) - L 15,=V(ATOI) - BALR 14,15 - B @@L8 -@@L7 EQU * - SLR 15,15 ==> p -@@L8 EQU * - ST 15,104(13) ==> p - MVC 88(4,13),=F'10' - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'3' - LA 2,105(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L5 - ST 6,88(13) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 5,15 ==> err - LTR 15,15 ==> err - BNE @@L5 - LA 5,1(0,0) ==> err - LTR 3,3 ==> s - BE @@L11 - ST 3,88(13) ==> s - LA 1,88(,13) - L 15,=V(ATOI) - BALR 14,15 - B @@L12 -@@L11 EQU * - SLR 15,15 ==> p -@@L12 EQU * - ST 15,104(13) ==> p - MVC 88(4,13),=F'11' - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'3' - LA 2,105(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L5 - ST 6,88(13) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 5,15 ==> err -@@L5 EQU * - LTR 4,4 ==> buf - BE @@L14 - ST 4,88(13) ==> buf - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L14 EQU * - LR 15,5 ==> err -* Function '__txspac' epilogue - PDPEPIL -* Function '__txspac' literal pool - DS 0D - LTORG -* Function '__txspac' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C' ,' - DC X'0' -@@LC1 EQU * - DC X'0' - END diff --git a/src/crent370/clib/@@txsyso.c b/src/crent370/clib/@@txsyso.c deleted file mode 100644 index d4fad6a..0000000 --- a/src/crent370/clib/@@txsyso.c +++ /dev/null @@ -1,25 +0,0 @@ -/* @@TXSYSO.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txsyso(TXT99 ***txt99, const char *out_class) -{ - int err = 1; - TXT99 *tu; - - if (out_class) { - tu = NewTXT99(DALSYSOU,1,1,out_class); - } - else { - tu = NewTXT99(DALSYSOU,0,0,0); - } - if (!tu) goto quit; - - if (arrayadd(txt99, tu)) goto quit; - - err = 0; - -quit: - return err; -} diff --git a/src/crent370/clib/@@txsyso.o b/src/crent370/clib/@@txsyso.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txsyso.s b/src/crent370/clib/@@txsyso.s deleted file mode 100644 index 9cfe62f..0000000 --- a/src/crent370/clib/@@txsyso.s +++ /dev/null @@ -1,76 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txsyso.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txsyso' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txsyso' -@@TXSYSO PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txsyso' code - L 15,4(11) ==> out_class - LA 2,1(0,0) ==> err - LTR 15,15 ==> out_class - BE @@L2 - MVC 88(4,13),=F'24' - ST 2,92(13) ==> err - ST 2,96(13) ==> err - ST 15,100(13) ==> out_class - B @@L7 -@@L2 EQU * - MVC 88(4,13),=F'24' - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'0' - MVC 100(4,13),=F'0' -@@L7 EQU * - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L5 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LTR 15,15 ==> tu - BNE @@L5 - LR 2,15 ==> err,tu -@@L5 EQU * - LR 15,2 ==> err -* Function '__txsyso' epilogue - PDPEPIL -* Function '__txsyso' literal pool - DS 0D - LTORG -* Function '__txsyso' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txterm.c b/src/crent370/clib/@@txterm.c deleted file mode 100644 index 2ceba38..0000000 --- a/src/crent370/clib/@@txterm.c +++ /dev/null @@ -1,17 +0,0 @@ -/* @@TXTERM.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txterm(TXT99 ***txt99, const char *unused) -{ - int err = 1; - TXT99 *tu = NewTXT99(DALTERM,0,0,0); - - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - -quit: - return err; -} diff --git a/src/crent370/clib/@@txterm.o b/src/crent370/clib/@@txterm.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txterm.s b/src/crent370/clib/@@txterm.s deleted file mode 100644 index 4e5a2cd..0000000 --- a/src/crent370/clib/@@txterm.s +++ /dev/null @@ -1,64 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txterm.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txterm' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txterm' -@@TXTERM PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txterm' code - LA 2,1(0,0) ==> err - MVC 88(4,13),=F'40' - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'0' - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L3 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 2,15 ==> err -@@L3 EQU * - LR 15,2 ==> err -* Function '__txterm' epilogue - PDPEPIL -* Function '__txterm' literal pool - DS 0D - LTORG -* Function '__txterm' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txtrk.c b/src/crent370/clib/@@txtrk.c deleted file mode 100644 index 56a565f..0000000 --- a/src/crent370/clib/@@txtrk.c +++ /dev/null @@ -1,18 +0,0 @@ -/* @@TXTRK.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txtrk(TXT99 ***txt99, const char *unused) -{ - int err = 1; - TXT99 *tu; - - tu = NewTXT99(DALTRK,0,0,0); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - -quit: - return err; -} diff --git a/src/crent370/clib/@@txtrk.o b/src/crent370/clib/@@txtrk.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txtrk.s b/src/crent370/clib/@@txtrk.s deleted file mode 100644 index c9cf225..0000000 --- a/src/crent370/clib/@@txtrk.s +++ /dev/null @@ -1,64 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txtrk.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txtrk' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txtrk' -@@TXTRK PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txtrk' code - LA 2,1(0,0) ==> err - MVC 88(4,13),=F'7' - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'0' - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L3 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 2,15 ==> err -@@L3 EQU * - LR 15,2 ==> err -* Function '__txtrk' epilogue - PDPEPIL -* Function '__txtrk' literal pool - DS 0D - LTORG -* Function '__txtrk' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txtrtc.c b/src/crent370/clib/@@txtrtc.c deleted file mode 100644 index 5b7d374..0000000 --- a/src/crent370/clib/@@txtrtc.c +++ /dev/null @@ -1,43 +0,0 @@ -/* @@TXTRTC.C */ -#include "svc99.h" -#include "clibary.h" - -static struct { - const char trtch[7]; - unsigned char type; -} table[] = { - {"C", 0x13}, - {"COMP", 0x08}, - {"E", 0x23}, - {"ET", 0x2B}, - {"NOCOMP", 0x04}, - {"T", 0x3B}, - {"", 0} -}; - -int -__txtrtc(TXT99 ***txt99, const char *trtch) -{ - int err = 1; - int len = trtch ? strlen(trtch) : 0; - int i; - TXT99 *tu; - unsigned char type; - - if (len) { - type = 0; - - for(i=0; table[i].trtch[0]; i++) { - if (memcmp(table[i].trtch, trtch, len)==0) { - tu = NewTXT99(DALTRTCH,1,1,&table[i].type); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - goto quit; - } - } - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txtrtc.o b/src/crent370/clib/@@txtrtc.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txtrtc.s b/src/crent370/clib/@@txtrtc.s deleted file mode 100644 index 6f2142c..0000000 --- a/src/crent370/clib/@@txtrtc.s +++ /dev/null @@ -1,135 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txtrtc.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program data area -@@2 EQU * - DC C'C' - DC X'0' - DC 5X'00' - DC X'13' - DC C'COMP' - DC X'0' - DC 2X'00' - DC X'08' - DC C'E' - DC X'0' - DC 5X'00' - DC X'23' - DC C'ET' - DC X'0' - DC 4X'00' - DC X'2B' - DC C'NOCOMP' - DC X'0' - DC X'04' - DC C'T' - DC X'0' - DC 5X'00' - DC X'3B' - DC X'0' - DC 6X'00' - DC X'00' -* Program text area - DS 0F - EJECT -* external function '__txtrtc' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txtrtc' -@@TXTRTC PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txtrtc' code - L 6,4(11) ==> trtch - LA 7,1(0,0) ==> err - LTR 6,6 ==> trtch - BE @@L2 - ST 6,88(13) ==> trtch - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 5,15 ==> len - B @@L3 -@@L2 EQU * - SLR 5,5 ==> len -@@L3 EQU * - LTR 5,5 ==> len - BE @@L11 - SLR 4,4 ==> i - L 2,=A(@@2) - IC 2,0(4,2) ==> .trtch - CLM 2,1,=XL1'00' - BE @@L11 -@@L12 EQU * - LR 3,4 ==> i - MH 3,=H'8' - LR 2,3 - A 2,=A(@@2) - ST 2,88(13) - ST 6,92(13) ==> trtch - ST 5,96(13) ==> len - LA 1,88(,13) - L 15,=V(MEMCMP) - BALR 14,15 - LTR 15,15 ==> len - BNE @@L7 - MVC 88(4,13),=F'79' - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'1' - LR 2,3 - A 2,=A(@@2+7) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L11 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 7,15 ==> err - B @@L11 -@@L7 EQU * - A 4,=F'1' ==> i - LR 2,4 ==> i - MH 2,=H'8' - L 3,=A(@@2) - IC 2,0(2,3) ==> .trtch - CLM 2,1,=XL1'00' - BNE @@L12 -@@L11 EQU * - LR 15,7 ==> err -* Function '__txtrtc' epilogue - PDPEPIL -* Function '__txtrtc' literal pool - DS 0D - LTORG -* Function '__txtrtc' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txucat.c b/src/crent370/clib/@@txucat.c deleted file mode 100644 index f386057..0000000 --- a/src/crent370/clib/@@txucat.c +++ /dev/null @@ -1,18 +0,0 @@ -/* @@TXUCAT.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txucat(TXT99 ***txt99, const char *unused) -{ - int err = 1; - TXT99 *tu; - - tu = NewTXT99(DALNDISP,1,1,"\x01"); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - -quit: - return err; -} diff --git a/src/crent370/clib/@@txucat.o b/src/crent370/clib/@@txucat.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txucat.s b/src/crent370/clib/@@txucat.s deleted file mode 100644 index 8c3a8b2..0000000 --- a/src/crent370/clib/@@txucat.s +++ /dev/null @@ -1,67 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txucat.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txucat' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txucat' -@@TXUCAT PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txucat' code - LA 2,1(0,0) ==> err - MVC 88(4,13),=F'5' - ST 2,92(13) ==> err - ST 2,96(13) ==> err - MVC 100(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L3 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 2,15 ==> err -@@L3 EQU * - LR 15,2 ==> err -* Function '__txucat' epilogue - PDPEPIL -* Function '__txucat' literal pool - DS 0D - LTORG -* Function '__txucat' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC X'1' - DC X'0' - END diff --git a/src/crent370/clib/@@txucs.c b/src/crent370/clib/@@txucs.c deleted file mode 100644 index 1f28aeb..0000000 --- a/src/crent370/clib/@@txucs.c +++ /dev/null @@ -1,29 +0,0 @@ -/* @@TXUCS.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txucs(TXT99 ***txt99, const char *name) -{ - int err = 1; - int len = name ? strlen(name) : 0; - TXT99 *tu = 0; - - if (len) { - if (strcmp(name, "FOLD")==0) { - tu = NewTXT99(DALUFOLD,0,0,0); - } - else if (strcmp(name, "VERIFY")==0) { - tu = NewTXT99(DALUVRFY,0,0,0); - } - else { - tu = NewTXT99(DALUCS,1,len,name); - } - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txucs.o b/src/crent370/clib/@@txucs.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txucs.s b/src/crent370/clib/@@txucs.s deleted file mode 100644 index 2d99fe4..0000000 --- a/src/crent370/clib/@@txucs.s +++ /dev/null @@ -1,112 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txucs.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txucs' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txucs' -@@TXUCS PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txucs' code - L 4,4(11) ==> name - LA 5,1(0,0) ==> err - LTR 4,4 ==> name - BE @@L2 - ST 4,88(13) ==> name - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 2,15 ==> len - B @@L3 -@@L2 EQU * - SLR 2,2 ==> len -@@L3 EQU * - SLR 3,3 ==> tu - LTR 2,2 ==> len - BE @@L10 - ST 4,88(13) ==> name - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(STRCMP) - BALR 14,15 - LTR 15,15 ==> len - BNE @@L5 - MVC 88(4,13),=F'42' - ST 3,92(13) ==> tu - ST 3,96(13) ==> tu - ST 3,100(13) ==> tu - B @@L11 -@@L5 EQU * - ST 4,88(13) ==> name - MVC 92(4,13),=A(@@LC1) - LA 1,88(,13) - L 15,=V(STRCMP) - BALR 14,15 - LTR 15,15 ==> len - BNE @@L7 - MVC 88(4,13),=F'43' - ST 15,92(13) ==> len - ST 15,96(13) ==> len - ST 15,100(13) ==> len - B @@L11 -@@L7 EQU * - MVC 88(4,13),=F'41' - MVC 92(4,13),=F'1' - ST 2,96(13) ==> len - ST 4,100(13) ==> name -@@L11 EQU * - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L10 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 5,15 ==> err -@@L10 EQU * - LR 15,5 ==> err -* Function '__txucs' epilogue - PDPEPIL -* Function '__txucs' literal pool - DS 0D - LTORG -* Function '__txucs' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'FOLD' - DC X'0' -@@LC1 EQU * - DC C'VERIFY' - DC X'0' - END diff --git a/src/crent370/clib/@@txunal.c b/src/crent370/clib/@@txunal.c deleted file mode 100644 index 1b2123b..0000000 --- a/src/crent370/clib/@@txunal.c +++ /dev/null @@ -1,17 +0,0 @@ -/* @@TXUNAL.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txunal(TXT99 ***txt99, const char *unused) -{ - int err = 1; - TXT99 *tu = NewTXT99(DUNUNALC,0,0,0); - - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - -quit: - return err; -} diff --git a/src/crent370/clib/@@txunal.o b/src/crent370/clib/@@txunal.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txunal.s b/src/crent370/clib/@@txunal.s deleted file mode 100644 index 34cbe08..0000000 --- a/src/crent370/clib/@@txunal.s +++ /dev/null @@ -1,64 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txunal.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txunal' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txunal' -@@TXUNAL PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txunal' code - LA 2,1(0,0) ==> err - MVC 88(4,13),=F'7' - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'0' - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L3 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 2,15 ==> err -@@L3 EQU * - LR 15,2 ==> err -* Function '__txunal' epilogue - PDPEPIL -* Function '__txunal' literal pool - DS 0D - LTORG -* Function '__txunal' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txunct.c b/src/crent370/clib/@@txunct.c deleted file mode 100644 index 9aa5ddb..0000000 --- a/src/crent370/clib/@@txunct.c +++ /dev/null @@ -1,24 +0,0 @@ -/* @@TXUNCT.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txunct(TXT99 ***txt99, const char *count) -{ - int err = 1; - int len = count ? atoi(count) : 0; - char *p; - TXT99 *tu; - - if (len > 0) { - p = (char*)&len; - - tu = NewTXT99(DALUNCNT,1,1,&p[3]); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txunct.o b/src/crent370/clib/@@txunct.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txunct.s b/src/crent370/clib/@@txunct.s deleted file mode 100644 index 8b2c110..0000000 --- a/src/crent370/clib/@@txunct.s +++ /dev/null @@ -1,79 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txunct.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txunct' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__txunct' -@@TXUNCT PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txunct' code - L 2,4(11) ==> count - LA 3,1(0,0) ==> err - LTR 2,2 ==> count - BE @@L2 - ST 2,88(13) ==> count - LA 1,88(,13) - L 15,=V(ATOI) - BALR 14,15 - B @@L3 -@@L2 EQU * - SLR 15,15 ==> tu -@@L3 EQU * - ST 15,104(13) ==> tu - LTR 15,15 - BNH @@L6 - MVC 88(4,13),=F'22' - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'1' - LA 2,107(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L6 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 3,15 ==> err -@@L6 EQU * - LR 15,3 ==> err -* Function '__txunct' epilogue - PDPEPIL -* Function '__txunct' literal pool - DS 0D - LTORG -* Function '__txunct' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txunit.c b/src/crent370/clib/@@txunit.c deleted file mode 100644 index d70adac..0000000 --- a/src/crent370/clib/@@txunit.c +++ /dev/null @@ -1,21 +0,0 @@ -/* @@TXUNIT.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txunit(TXT99 ***txt99, const char *unit) -{ - int err = 1; - int len = unit ? strlen(unit) : 0; - TXT99 *tu; - - if (len) { - tu = NewTXT99(DALUNIT,1,len,unit); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txunit.o b/src/crent370/clib/@@txunit.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txunit.s b/src/crent370/clib/@@txunit.s deleted file mode 100644 index b98f095..0000000 --- a/src/crent370/clib/@@txunit.s +++ /dev/null @@ -1,77 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txunit.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txunit' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__txunit' -@@TXUNIT PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txunit' code - L 2,4(11) ==> unit - LA 3,1(0,0) ==> err - LTR 2,2 ==> unit - BE @@L2 - ST 2,88(13) ==> unit - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - B @@L3 -@@L2 EQU * - SLR 15,15 ==> len -@@L3 EQU * - LTR 15,15 ==> len - BE @@L6 - MVC 88(4,13),=F'21' - MVC 92(4,13),=F'1' - ST 15,96(13) ==> len - ST 2,100(13) ==> unit - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L6 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 3,15 ==> err -@@L6 EQU * - LR 15,3 ==> err -* Function '__txunit' epilogue - PDPEPIL -* Function '__txunit' literal pool - DS 0D - LTORG -* Function '__txunit' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txvlct.c b/src/crent370/clib/@@txvlct.c deleted file mode 100644 index 5767a21..0000000 --- a/src/crent370/clib/@@txvlct.c +++ /dev/null @@ -1,24 +0,0 @@ -/* @@TXVLCT.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txvlct(TXT99 ***txt99, const char *max_vols) -{ - int err = 1; - int len = max_vols ? atoi(max_vols) : 0; - char *p; - TXT99 *tu; - - if (len >= 1 && len <= 255) { - p = (char*)&len; - - tu = NewTXT99(DALVLCNT,1,1,&p[3]); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txvlct.o b/src/crent370/clib/@@txvlct.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txvlct.s b/src/crent370/clib/@@txvlct.s deleted file mode 100644 index b9cf004..0000000 --- a/src/crent370/clib/@@txvlct.s +++ /dev/null @@ -1,82 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txvlct.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txvlct' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__txvlct' -@@TXVLCT PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txvlct' code - L 2,4(11) ==> max_vols - LA 3,1(0,0) ==> err - LTR 2,2 ==> max_vols - BE @@L2 - ST 2,88(13) ==> max_vols - LA 1,88(,13) - L 15,=V(ATOI) - BALR 14,15 - B @@L3 -@@L2 EQU * - SLR 15,15 ==> tu -@@L3 EQU * - ST 15,104(13) ==> tu - LR 2,15 ==> tu - BCTR 2,0 - LA 4,254(0,0) - CLR 2,4 - BH @@L6 - MVC 88(4,13),=F'19' - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'1' - LA 2,107(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L6 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 3,15 ==> err -@@L6 EQU * - LR 15,3 ==> err -* Function '__txvlct' epilogue - PDPEPIL -* Function '__txvlct' literal pool - DS 0D - LTORG -* Function '__txvlct' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@txvols.c b/src/crent370/clib/@@txvols.c deleted file mode 100644 index c2994ca..0000000 --- a/src/crent370/clib/@@txvols.c +++ /dev/null @@ -1,37 +0,0 @@ -/* @@TXVOLS.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txvols(TXT99 ***txt99, const char *vols) -{ - int err = 1; - int len = vols ? strlen(vols) : 0; - char **tmp = NULL; - char *buf = calloc(1, len + 1); - char *p; - TXT99 *tu; - - if (!len) goto quit; - if (!buf) goto quit; - - memcpy(buf, vols, len); - for(p=strtok(buf," ,"); p; p=strtok(NULL," ,")) { - arrayadd(&tmp, p); - } - - if (tmp) { - /* array of volsers */ - len = (int) arraycount(&tmp); - tu = NewTXT99a(DALVLSER,len,tmp); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - } - -quit: - if (tmp) arrayfree(&tmp); - if (buf) free(buf); - - return err; -} diff --git a/src/crent370/clib/@@txvols.o b/src/crent370/clib/@@txvols.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txvols.s b/src/crent370/clib/@@txvols.s deleted file mode 100644 index cbbced6..0000000 --- a/src/crent370/clib/@@txvols.s +++ /dev/null @@ -1,143 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txvols.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txvols' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__txvols' -@@TXVOLS PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txvols' code - L 5,4(11) ==> vols - LA 6,1(0,0) ==> err - LTR 5,5 ==> vols - BE @@L2 - ST 5,88(13) ==> vols - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 3,15 ==> len - B @@L3 -@@L2 EQU * - SLR 3,3 ==> len -@@L3 EQU * - MVC 104(4,13),=F'0' - MVC 88(4,13),=F'1' - LR 2,3 ==> len - A 2,=F'1' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 4,15 ==> buf - LTR 3,3 ==> len - BE @@L5 - LTR 15,15 ==> buf - BE @@L5 - ST 15,88(13) ==> buf - ST 5,92(13) ==> vols - ST 3,96(13) ==> len - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - ST 4,88(13) ==> buf - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(STRTOK) - BALR 14,15 - LTR 15,15 ==> p - BE @@L17 - LA 2,104(,13) -@@L11 EQU * - ST 2,88(13) - ST 15,92(13) ==> p - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - MVC 88(4,13),=F'0' - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(STRTOK) - BALR 14,15 - LTR 15,15 ==> p - BNE @@L11 -@@L17 EQU * - L 2,104(13) - LTR 2,2 - BE @@L5 - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - MVC 88(4,13),=F'16' - ST 15,92(13) ==> len - MVC 96(4,13),104(13) - LA 1,88(,13) - L 15,=V(@@NWTX9A) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L5 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 6,15 ==> err -@@L5 EQU * - L 2,104(13) - LTR 2,2 - BE @@L14 - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARFRE) - BALR 14,15 -@@L14 EQU * - LTR 4,4 ==> buf - BE @@L15 - ST 4,88(13) ==> buf - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L15 EQU * - LR 15,6 ==> err -* Function '__txvols' epilogue - PDPEPIL -* Function '__txvols' literal pool - DS 0D - LTORG -* Function '__txvols' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C' ,' - DC X'0' - END diff --git a/src/crent370/clib/@@txvseq.c b/src/crent370/clib/@@txvseq.c deleted file mode 100644 index cd99fe5..0000000 --- a/src/crent370/clib/@@txvseq.c +++ /dev/null @@ -1,24 +0,0 @@ -/* @@TXVSEQ.C */ -#include "svc99.h" -#include "clibary.h" - -int -__txvseq(TXT99 ***txt99, const char *sequence) -{ - int err = 1; - int len = sequence ? atoi(sequence) : 0; - char *p; - TXT99 *tu; - - if (len >= 1 && len <= 255) { - p = (char *)&len; - - tu = NewTXT99(DALVLSEQ,1,2,&p[2]); - if (!tu) goto quit; - - err = arrayadd(txt99, tu); - } - -quit: - return err; -} diff --git a/src/crent370/clib/@@txvseq.o b/src/crent370/clib/@@txvseq.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@txvseq.s b/src/crent370/clib/@@txvseq.s deleted file mode 100644 index 84300cc..0000000 --- a/src/crent370/clib/@@txvseq.s +++ /dev/null @@ -1,82 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@txvseq.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__txvseq' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC '__txvseq' -@@TXVSEQ PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__txvseq' code - L 2,4(11) ==> sequence - LA 3,1(0,0) ==> err - LTR 2,2 ==> sequence - BE @@L2 - ST 2,88(13) ==> sequence - LA 1,88(,13) - L 15,=V(ATOI) - BALR 14,15 - B @@L3 -@@L2 EQU * - SLR 15,15 ==> tu -@@L3 EQU * - ST 15,104(13) ==> tu - LR 2,15 ==> tu - BCTR 2,0 - LA 4,254(0,0) - CLR 2,4 - BH @@L6 - MVC 88(4,13),=F'18' - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'2' - LA 2,106(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@NWTX99) - BALR 14,15 - LTR 15,15 ==> tu - BE @@L6 - MVC 88(4,13),0(11) ==> txt99 - ST 15,92(13) ==> tu - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 3,15 ==> err -@@L6 EQU * - LR 15,3 ==> err -* Function '__txvseq' epilogue - PDPEPIL -* Function '__txvseq' literal pool - DS 0D - LTORG -* Function '__txvseq' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@tzget.c b/src/crent370/clib/@@tzget.c deleted file mode 100644 index a9fe3cc..0000000 --- a/src/crent370/clib/@@tzget.c +++ /dev/null @@ -1,17 +0,0 @@ -/* @@TZGET.C */ -#include -#include -#include "clibcrt.h" - -int -__tzget(void) -{ - int tzoffset= 0; - CLIBCRT *crt = __crtget(); - - if (crt) { - tzoffset = crt->crttzoff; - } - - return tzoffset; -} diff --git a/src/crent370/clib/@@tzget.o b/src/crent370/clib/@@tzget.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@tzget.s b/src/crent370/clib/@@tzget.s deleted file mode 100644 index 2f59a74..0000000 --- a/src/crent370/clib/@@tzget.s +++ /dev/null @@ -1,55 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@tzget.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__tzget' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__tzget' -@@TZGET PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__tzget' code - SLR 2,2 ==> tzoffset - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - LTR 15,15 ==> crt - BE @@L2 - L 2,52(15) ==> tzoffset,crttzoff -@@L2 EQU * - LR 15,2 ==> tzoffset -* Function '__tzget' epilogue - PDPEPIL -* Function '__tzget' literal pool - DS 0D - LTORG -* Function '__tzget' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@tzset.c b/src/crent370/clib/@@tzset.c deleted file mode 100644 index b81f886..0000000 --- a/src/crent370/clib/@@tzset.c +++ /dev/null @@ -1,28 +0,0 @@ -/* @@TZSET.C */ -#include -#include -#include "clibcrt.h" - -int -__tzset(int tzoffset) -{ - int err = 1; - CLIBCRT *crt = __crtget(); - - if (crt) { -#if 0 /* we'll let the application do this rounding/truncation as needed */ - /* There are a few places in the world that have :30 or :15 minute - ** based time zone offsets, so the best we can do is align to - ** the 15 minute boundary and hope for the best. - */ - - /* round the time zone offset to 15 minute (900 second) boundary */ - tzoffset = tzoffset / 900; - tzoffset = tzoffset * 900; -#endif - crt->crttzoff = tzoffset; - err = 0; - } - - return err; -} diff --git a/src/crent370/clib/@@tzset.o b/src/crent370/clib/@@tzset.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@tzset.s b/src/crent370/clib/@@tzset.s deleted file mode 100644 index f0b737a..0000000 --- a/src/crent370/clib/@@tzset.s +++ /dev/null @@ -1,56 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@tzset.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__tzset' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__tzset' -@@TZSET PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__tzset' code - LA 2,1(0,0) ==> err - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - LTR 15,15 ==> crt - BE @@L2 - MVC 52(4,15),0(11) ==> .crttzoff,tzoffset - SLR 2,2 ==> err -@@L2 EQU * - LR 15,2 ==> err -* Function '__tzset' epilogue - PDPEPIL -* Function '__tzset' literal pool - DS 0D - LTORG -* Function '__tzset' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@uastep.c b/src/crent370/clib/@@uastep.c deleted file mode 100644 index f7a590c..0000000 --- a/src/crent370/clib/@@uastep.c +++ /dev/null @@ -1,60 +0,0 @@ -/* @@UASTEP.C */ -#include "clibcrt.h" -#include "clibauth.h" - -int -__uastep(void) -{ - CLIBCRT *crt = __crtget(); - volatile int rc = 0; - - /* check for APF authorization */ - __asm__("TESTAUTH\tFCTN=1\n\tST\t15,%0" : "=m" (rc)); - if (rc!=0) goto quit; - - if (crt) { - if (!(crt->crtauth & CRTAUTH_STEPLIB)) goto quit; - } - - /* we're APF authorized, reset the STEPLIB DEB authorization */ - __asm__("\n" -" MODESET KEY=ZERO,MODE=SUP\n" -" ICM 1,15,PSATOLD-PSA(0) Get our TCB address\n" -" ICM 1,15,TCBJLB-TCB(1) Get STEPLIB DCB\n" -" LA 1,0(,1) Purify DCB address\n" -" LTR 14,1 Save DCB address\n" -" BZ QUITOFF No STEPLIB\n" -" USING IHADCB,1 DECLARE IT\n" -" L 1,DCBDEBAD LOAD DEB FOR STEPLIB\n" -" N 1,=X'00FFFFFF' FIX HIGH BYTE\n" -" USING DEBBASIC,1\n" -"RESETAPF DS 0H\n" -" NI DEBFLGS1,X'FF'-DEBAPFIN TURN OFF APF LIBRARY BIT\n" -#if 0 -" L 1,DEBDEBAD Get next DEB address\n" -" LA 1,0(,1) Purify DEB address\n" -" L 15,DEBDCBAD Get DCB for this next DEB\n" -" LA 15,0(,15) Purify address\n" -" CR 14,15 Same DCB as our STEPLIB?\n" -" BE RESETAPF Yes, reset the APF bit in this DEB\n" -#endif -" DROP 1\n" -"QUITOFF DS 0H\n" -" MODESET KEY=NZERO,MODE=PROB" : : : "0", "1", "14", "15"); - - if (crt) { - crt->crtauth &= 0xFF - CRTAUTH_STEPLIB; - } - -quit: - return rc; -} - -__asm__("PRINT NOGEN"); -__asm__("IHAPSA , MAP LOW STORAGE"); -__asm__("CVT DSECT=YES"); -__asm__("IKJTCB DSECT=YES"); -__asm__("DCBD DSORG=PO,DEVD=DA"); -__asm__("IEZDEB"); -__asm__("PRINT GEN"); -__asm__("CSECT"); diff --git a/src/crent370/clib/@@uastep.o b/src/crent370/clib/@@uastep.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@uastep.s b/src/crent370/clib/@@uastep.s deleted file mode 100644 index fba1804..0000000 --- a/src/crent370/clib/@@uastep.s +++ /dev/null @@ -1,92 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@uastep.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__uastep' prologue -* frame base=88, local stack=8, call args=0 -&FUNC SETC '__uastep' -@@UASTEP PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__uastep' code - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - LR 3,15 ==> crt - MVC 88(4,13),=F'0' ==> rc - TESTAUTH FCTN=1 - ST 15,88(13) ==> rc - L 2,88(13) ==> rc - LTR 2,2 - BNE @@L3 - LTR 15,15 ==> crt - BE @@L4 - IC 2,269(15) ==> .crtauth - N 2,=F'64' - CLM 2,1,=XL1'00' - BE @@L3 -@@L4 EQU * - - MODESET KEY=ZERO,MODE=SUP - ICM 1,15,PSATOLD-PSA(0) Get our TCB address - ICM 1,15,TCBJLB-TCB(1) Get STEPLIB DCB - LA 1,0(,1) Purify DCB address - LTR 14,1 Save DCB address - BZ QUITOFF No STEPLIB - USING IHADCB,1 DECLARE IT - L 1,DCBDEBAD LOAD DEB FOR STEPLIB - N 1,=X'00FFFFFF' FIX HIGH BYTE - USING DEBBASIC,1 -RESETAPF DS 0H - NI DEBFLGS1,X'FF'-DEBAPFIN TURN OFF APF LIBRARY BIT - DROP 1 -QUITOFF DS 0H - MODESET KEY=NZERO,MODE=PROB - LTR 3,3 ==> crt - BE @@L3 - NI 269(3),191 ==> .crtauth -@@L3 EQU * - L 15,88(13) ==> crt,rc -* Function '__uastep' epilogue - PDPEPIL -* Function '__uastep' literal pool - DS 0D - LTORG -* Function '__uastep' page table -@@PGT0 DS 0F - DC A(@@PG0) - PRINT NOGEN - IHAPSA , MAP LOW STORAGE - CVT DSECT=YES - IKJTCB DSECT=YES - DCBD DSORG=PO,DEVD=DA - IEZDEB - PRINT GEN - CSECT - END diff --git a/src/crent370/clib/@@uatask.c b/src/crent370/clib/@@uatask.c deleted file mode 100644 index 0098602..0000000 --- a/src/crent370/clib/@@uatask.c +++ /dev/null @@ -1,43 +0,0 @@ -/* @@UATASK.C */ -#include "clibcrt.h" -#include "clibauth.h" -#include "clibstae.h" - -static void authorize(void); -static void unauthorize(void); - -int -__uatask(void) -{ - CLIBCRT *crt = __crtget(); - int rc = 0; - - if (!crt) goto quit; - - if (!(crt->crtauth & CRTAUTH_ON)) goto quit; - - try(unauthorize,0); - crt->crtauth &= 0xFF - CRTAUTH_ON; - -quit: - return rc; -} - -__asm__("\n&FUNC SETC 'unauthorize'"); -static void unauthorize(void) -{ - __asm__( - "SR\t0,0\n\t" - "SR\t1,1\n\t" - "SVC\t244" - ); -} - -__asm__("PRINT NOGEN"); -__asm__("IHAPSA , MAP LOW STORAGE"); -__asm__("CVT DSECT=YES"); -__asm__("IKJTCB DSECT=YES"); -__asm__("DCBD DSORG=PO,DEVD=DA"); -__asm__("IEZDEB"); -__asm__("PRINT GEN"); -__asm__("CSECT"); diff --git a/src/crent370/clib/@@uatask.o b/src/crent370/clib/@@uatask.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@uatask.s b/src/crent370/clib/@@uatask.s deleted file mode 100644 index ed85320..0000000 --- a/src/crent370/clib/@@uatask.s +++ /dev/null @@ -1,102 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@uatask.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__uatask' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC '__uatask' -@@UATASK PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__uatask' code - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - LR 3,15 ==> crt - SLR 4,4 ==> rc - LTR 15,15 ==> crt - BE @@L3 - IC 2,269(15) ==> .crtauth - N 2,=F'-128' - CLM 2,1,=XL1'00' - BE @@L3 - MVC 88(4,13),=A(@@2) - ST 4,92(13) ==> rc - LA 1,88(,13) - L 15,=V(@@@TRY) - BALR 14,15 - NI 269(3),127 ==> .crtauth -@@L3 EQU * - LR 15,4 ==> rc -* Function '__uatask' epilogue - PDPEPIL -* Function '__uatask' literal pool - DS 0D - LTORG -* Function '__uatask' page table -@@PGT0 DS 0F - DC A(@@PG0) - -&FUNC SETC 'unauthorize' - DS 0F - EJECT -* static function 'unauthorize' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'unauthorize' -@@2 PDPPRLG CINDEX=1,FRAME=88,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'unauthorize' code - SR 0,0 - SR 1,1 - SVC 244 -* Function 'unauthorize' epilogue - PDPEPIL -* Function 'unauthorize' literal pool - DS 0D - LTORG -* Function 'unauthorize' page table -@@PGT1 DS 0F - DC A(@@PG1) - PRINT NOGEN - IHAPSA , MAP LOW STORAGE - CVT DSECT=YES - IKJTCB DSECT=YES - DCBD DSORG=PO,DEVD=DA - IEZDEB - PRINT GEN - CSECT - END diff --git a/src/crent370/clib/@@udec.c b/src/crent370/clib/@@udec.c deleted file mode 100644 index 0624166..0000000 --- a/src/crent370/clib/@@udec.c +++ /dev/null @@ -1,29 +0,0 @@ -/* @@UDEC.C - decrement unsigned value via compare and swap -*/ -#include "clibos.h" - -unsigned __udec(void *mem) -{ - unsigned old_value = 0; - - if (!mem) goto quit; - - __asm__("\n" -"AGAIN DS 0H\n" -" L 0,0(,%1) get current value\n" -" LR 1,0 copy for new value\n" -" C 1,=F'0' min value?\n" -" BNE DECIT no, decrement\n" -" L 1,=F'-1' reset to max value\n" -" B SWAPIT\n" -"DECIT DS 0H\n" -" SL 1,=F'1' decrement new value\n" -"SWAPIT DS 0H\n" -" CS 0,1,0(%1) save new value in memory\n" -" BNZ AGAIN changed, try again\n" -" ST 0,%0 return value" - : "=m"(old_value) : "r"(mem)); - -quit: - return old_value; -} diff --git a/src/crent370/clib/@@udec.o b/src/crent370/clib/@@udec.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@udec.s b/src/crent370/clib/@@udec.s deleted file mode 100644 index 268bee9..0000000 --- a/src/crent370/clib/@@udec.s +++ /dev/null @@ -1,66 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@udec.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__udec' prologue -* frame base=88, local stack=8, call args=0 -&FUNC SETC '__udec' -@@UDEC PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__udec' code - L 15,0(11) ==> mem - MVC 88(4,13),=F'0' - LTR 15,15 ==> mem - BE @@L3 - -AGAIN DS 0H - L 0,0(,15) get current value ==> mem - LR 1,0 copy for new value - C 1,=F'0' min value? - BNE DECIT no, decrement - L 1,=F'-1' reset to max value - B SWAPIT -DECIT DS 0H - SL 1,=F'1' decrement new value -SWAPIT DS 0H - CS 0,1,0(15) save new value in memory ==> mem - BNZ AGAIN changed, try again - ST 0,88(13) return value -@@L3 EQU * - L 15,88(13) -* Function '__udec' epilogue - PDPEPIL -* Function '__udec' literal pool - DS 0D - LTORG -* Function '__udec' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@uinc.c b/src/crent370/clib/@@uinc.c deleted file mode 100644 index f75f5b3..0000000 --- a/src/crent370/clib/@@uinc.c +++ /dev/null @@ -1,29 +0,0 @@ -/* @@UINC.C - increment unsigned value via compare and swap -*/ -#include "clibos.h" - -unsigned __uinc(void *mem) -{ - unsigned old_value = 0; - - if (!mem) goto quit; - - __asm__("\n" -"AGAIN DS 0H\n" -" L 0,0(,%1) get current value\n" -" LR 1,0 copy for new value\n" -" C 1,=F'-1' max value?\n" -" BNE INCIT no, bump it up\n" -" SR 1,1 reset to zero\n" -" B SWAPIT\n" -"INCIT DS 0H\n" -" AL 1,=F'1' increment new value\n" -"SWAPIT DS 0H\n" -" CS 0,1,0(%1) save new value in memory\n" -" BNZ AGAIN changed, try again\n" -" ST 0,%0 return value" - : "=m"(old_value) : "r"(mem)); - -quit: - return old_value; -} diff --git a/src/crent370/clib/@@uinc.o b/src/crent370/clib/@@uinc.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@uinc.s b/src/crent370/clib/@@uinc.s deleted file mode 100644 index 829dd4c..0000000 --- a/src/crent370/clib/@@uinc.s +++ /dev/null @@ -1,66 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@uinc.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__uinc' prologue -* frame base=88, local stack=8, call args=0 -&FUNC SETC '__uinc' -@@UINC PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__uinc' code - L 15,0(11) ==> mem - MVC 88(4,13),=F'0' - LTR 15,15 ==> mem - BE @@L3 - -AGAIN DS 0H - L 0,0(,15) get current value ==> mem - LR 1,0 copy for new value - C 1,=F'-1' max value? - BNE INCIT no, bump it up - SR 1,1 reset to zero - B SWAPIT -INCIT DS 0H - AL 1,=F'1' increment new value -SWAPIT DS 0H - CS 0,1,0(15) save new value in memory ==> mem - BNZ AGAIN changed, try again - ST 0,88(13) return value -@@L3 EQU * - L 15,88(13) -* Function '__uinc' epilogue - PDPEPIL -* Function '__uinc' literal pool - DS 0D - LTORG -* Function '__uinc' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@userex.c b/src/crent370/clib/@@userex.c deleted file mode 100644 index 4d2c57e..0000000 --- a/src/crent370/clib/@@userex.c +++ /dev/null @@ -1,9 +0,0 @@ -/* @@USEREX.C */ -#include "stdlib.h" -#include "signal.h" -#include "string.h" -#include "ctype.h" -#include "stddef.h" -#include "mvssupa.h" - -void (*__userex[__NATEXIT])(void) = {0}; diff --git a/src/crent370/clib/@@userex.o b/src/crent370/clib/@@userex.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@userex.s b/src/crent370/clib/@@userex.s deleted file mode 100644 index fca84dc..0000000 --- a/src/crent370/clib/@@userex.s +++ /dev/null @@ -1,28 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@userex.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* X-var __userex - ENTRY @@USEREX -* Program data area - DS 0F -@@USEREX EQU * - DC F'0' - DC 124X'00' - END diff --git a/src/crent370/clib/@@vscinv.c b/src/crent370/clib/@@vscinv.c deleted file mode 100644 index 81785a7..0000000 --- a/src/crent370/clib/@@vscinv.c +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" - -unsigned -__vscinv(VSFILE *vs) -{ - unsigned cinv = 0; - unsigned pl[16] = {0}; - - /* get LRECL of data component */ - __asm__("SHOWCB ACB=(%0),FIELDS=CINV,AREA=(%1),LENGTH=4,MF=(G,(%2))" - : : "r"(&vs->acb), "r"(&cinv), "r"(pl)); - -quit: - return cinv; -} diff --git a/src/crent370/clib/@@vscinv.o b/src/crent370/clib/@@vscinv.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@vscinv.s b/src/crent370/clib/@@vscinv.s deleted file mode 100644 index 78fa174..0000000 --- a/src/crent370/clib/@@vscinv.s +++ /dev/null @@ -1,59 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@vscinv.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__vscinv' prologue -* frame base=88, local stack=72, call args=0 -&FUNC SETC '__vscinv' -@@VSCINV PDPPRLG CINDEX=0,FRAME=160,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__vscinv' code - MVC 152(4,13),=F'0' - LA 4,88(,13) - LA 5,64(0,0) - SLR 2,2 - LR 3,2 - MVCL 4,2 - L 4,0(11) ==> vs - A 4,=F'24' - LA 3,88(,13) - LA 2,152(,13) - SHOWCB ACB=(4),FIELDS=CINV,AREA=(2),LENGTH=4,MF=(G,(3)) -@@L2 EQU * - L 15,152(13) -* Function '__vscinv' epilogue - PDPEPIL -* Function '__vscinv' literal pool - DS 0D - LTORG -* Function '__vscinv' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@vsclos.c b/src/crent370/clib/@@vsclos.c deleted file mode 100644 index 6eec703..0000000 --- a/src/crent370/clib/@@vsclos.c +++ /dev/null @@ -1,25 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" - -int -__vsclos(VSFILE *vs) -{ - unsigned pl[2] = {0}; - - if (vs) { - if (vs->flags & VSFILE_FLAG_OPEN) { - __asm__("MVC\t0($CLSLEN,%1),CLSMODEL\n\t" - "CLOSE ((%0)),MF=(E,(%1))" - : : "r"(&vs->acb), "r"(pl) : "1", "14", "15"); - - } - free(vs); - } - - return 0; -} -__asm__("DS\t0F\nCLSMODEL CLOSE (*-*),MF=L\n$CLSLEN\tEQU\t*-CLSMODEL"); diff --git a/src/crent370/clib/@@vsclos.o b/src/crent370/clib/@@vsclos.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@vsclos.s b/src/crent370/clib/@@vsclos.s deleted file mode 100644 index eee77b1..0000000 --- a/src/crent370/clib/@@vsclos.s +++ /dev/null @@ -1,69 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@vsclos.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__vsclos' prologue -* frame base=88, local stack=8, call args=8 -&FUNC SETC '__vsclos' -@@VSCLOS PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__vsclos' code - L 4,0(11) ==> vs - MVC 96(8,13),=F'0' - LTR 4,4 ==> vs - BE @@L2 - IC 2,17(4) ==> .flags - N 2,=F'-128' - CLM 2,1,=XL1'00' - BE @@L3 - LR 3,4 ==> vs - A 3,=F'24' - LA 2,96(,13) - MVC 0($CLSLEN,2),CLSMODEL - CLOSE ((3)),MF=(E,(2)) -@@L3 EQU * - ST 4,88(13) ==> vs - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L2 EQU * - SLR 15,15 -* Function '__vsclos' epilogue - PDPEPIL -* Function '__vsclos' literal pool - DS 0D - LTORG -* Function '__vsclos' page table -@@PGT0 DS 0F - DC A(@@PG0) - DS 0F -CLSMODEL CLOSE (*-*),MF=L -$CLSLEN EQU *-CLSMODEL - END diff --git a/src/crent370/clib/@@vsclr.c b/src/crent370/clib/@@vsclr.c deleted file mode 100644 index b5cf288..0000000 --- a/src/crent370/clib/@@vsclr.c +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" - -int -__vsclr(VSFILE *vs) -{ - vs->flags &= 0xFF - (VSFILE_FLAG_ERROR | VSFILE_FLAG_EOF); - vs->rc = 0; - vs->component = 0; - vs->rsn = 0; - - return 0; -} diff --git a/src/crent370/clib/@@vsclr.o b/src/crent370/clib/@@vsclr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@vsclr.s b/src/crent370/clib/@@vsclr.s deleted file mode 100644 index c583351..0000000 --- a/src/crent370/clib/@@vsclr.s +++ /dev/null @@ -1,52 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@vsclr.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__vsclr' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__vsclr' -@@VSCLR PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__vsclr' code - L 2,0(11) ==> vs - NI 17(2),252 ==> .flags - MVI 18(2),0 ==> .rc - MVI 20(2),0 ==> .component - MVI 19(2),0 ==> .rsn - SLR 15,15 -* Function '__vsclr' epilogue - PDPEPIL -* Function '__vsclr' literal pool - DS 0D - LTORG -* Function '__vsclr' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@vsdel.c b/src/crent370/clib/@@vsdel.c deleted file mode 100644 index 8d66543..0000000 --- a/src/crent370/clib/@@vsdel.c +++ /dev/null @@ -1,26 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" - -int -__vsdel(VSFILE *vs, void *rec, int reclen) -{ - unsigned pl[16] = {0}; - volatile int rc = 0; - - __asm__("MODCB RPL=(%0),RECLEN=(%1),AREALEN=(%1),AREA=(%2),MF=(G,(%3))" - : : "r"(&vs->rpl), "r"(reclen), "r"(rec), "r"(pl) - : "1", "14", "15"); - - __asm__("LA\t2,DONE\n\t" - "ERASE\tRPL=(%0)\n" - "DONE\tDS\t0H\n\t" - "ST\t15,%1" - : : "r"(&vs->rpl), "m"(rc) : "1", "2", "14", "15"); - -quit: - return rc; -} diff --git a/src/crent370/clib/@@vsdel.o b/src/crent370/clib/@@vsdel.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@vsdel.s b/src/crent370/clib/@@vsdel.s deleted file mode 100644 index c041af5..0000000 --- a/src/crent370/clib/@@vsdel.s +++ /dev/null @@ -1,64 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@vsdel.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__vsdel' prologue -* frame base=88, local stack=72, call args=0 -&FUNC SETC '__vsdel' -@@VSDEL PDPPRLG CINDEX=0,FRAME=160,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__vsdel' code - L 5,4(11) ==> rec - L 4,8(11) ==> reclen - LA 6,88(,13) - LA 7,64(0,0) - SLR 2,2 - LR 3,2 - MVCL 6,2 - MVC 152(4,13),=F'0' ==> rc - L 3,0(11) ==> vs - A 3,=F'104' - LA 2,88(,13) - MODCB RPL=(3),RECLEN=(4),AREALEN=(4),AREA=(5),MF=(G,(2)) ==> reclen,rec - LA 2,DONE - ERASE RPL=(3) -DONE DS 0H - ST 15,152(13) ==> rc -@@L2 EQU * - L 15,152(13) ==> rc -* Function '__vsdel' epilogue - PDPEPIL -* Function '__vsdel' literal pool - DS 0D - LTORG -* Function '__vsdel' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@vseof.c b/src/crent370/clib/@@vseof.c deleted file mode 100644 index 1c1eb5b..0000000 --- a/src/crent370/clib/@@vseof.c +++ /dev/null @@ -1,16 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" - -int -__vseof(VSFILE *vs) -{ - if (vs->flags & VSFILE_FLAG_EOF) { - return 1; - } - - return 0; -} diff --git a/src/crent370/clib/@@vseof.o b/src/crent370/clib/@@vseof.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@vseof.s b/src/crent370/clib/@@vseof.s deleted file mode 100644 index 157a519..0000000 --- a/src/crent370/clib/@@vseof.s +++ /dev/null @@ -1,50 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@vseof.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__vseof' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__vseof' -@@VSEOF PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__vseof' code - L 2,0(11) ==> vs - IC 15,17(2) ==> .flags - N 15,=F'1' - N 15,=XL4'000000FF' -* Function '__vseof' epilogue - PDPEPIL -* Function '__vseof' literal pool - DS 0D - LTORG -* Function '__vseof' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@vserr.c b/src/crent370/clib/@@vserr.c deleted file mode 100644 index 03f3e3b..0000000 --- a/src/crent370/clib/@@vserr.c +++ /dev/null @@ -1,16 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" - -int -__vserr(VSFILE *vs) -{ - if (vs->flags & VSFILE_FLAG_ERROR) { - return 1; - } - - return 0; -} diff --git a/src/crent370/clib/@@vserr.o b/src/crent370/clib/@@vserr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@vserr.s b/src/crent370/clib/@@vserr.s deleted file mode 100644 index 180a76f..0000000 --- a/src/crent370/clib/@@vserr.s +++ /dev/null @@ -1,52 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@vserr.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__vserr' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__vserr' -@@VSERR PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__vserr' code - L 2,0(11) ==> vs - IC 15,17(2) ==> .flags - N 15,=F'2' - N 15,=XL4'000000FF' - LCR 15,15 - SRL 15,31 -* Function '__vserr' epilogue - PDPEPIL -* Function '__vserr' literal pool - DS 0D - LTORG -* Function '__vserr' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@vslrec.c b/src/crent370/clib/@@vslrec.c deleted file mode 100644 index bccaefb..0000000 --- a/src/crent370/clib/@@vslrec.c +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" - -unsigned -__vslrec(VSFILE *vs) -{ - unsigned lrecl = 0; - unsigned pl[16] = {0}; - - /* get LRECL of data component */ - __asm__("SHOWCB ACB=(%0),FIELDS=LRECL,AREA=(%1),LENGTH=4,MF=(G,(%2))" - : : "r"(&vs->acb), "r"(&lrecl), "r"(pl)); - -quit: - return lrecl; -} diff --git a/src/crent370/clib/@@vslrec.o b/src/crent370/clib/@@vslrec.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@vslrec.s b/src/crent370/clib/@@vslrec.s deleted file mode 100644 index 5e336e2..0000000 --- a/src/crent370/clib/@@vslrec.s +++ /dev/null @@ -1,59 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@vslrec.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__vslrec' prologue -* frame base=88, local stack=72, call args=0 -&FUNC SETC '__vslrec' -@@VSLREC PDPPRLG CINDEX=0,FRAME=160,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__vslrec' code - MVC 152(4,13),=F'0' - LA 4,88(,13) - LA 5,64(0,0) - SLR 2,2 - LR 3,2 - MVCL 4,2 - L 4,0(11) ==> vs - A 4,=F'24' - LA 3,88(,13) - LA 2,152(,13) - SHOWCB ACB=(4),FIELDS=LRECL,AREA=(2),LENGTH=4,MF=(G,(3)) -@@L2 EQU * - L 15,152(13) -* Function '__vslrec' epilogue - PDPEPIL -* Function '__vslrec' literal pool - DS 0D - LTORG -* Function '__vslrec' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@vsmdfy.c b/src/crent370/clib/@@vsmdfy.c deleted file mode 100644 index 79b1bf1..0000000 --- a/src/crent370/clib/@@vsmdfy.c +++ /dev/null @@ -1,35 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" - -int -__vsmdfy(VSFILE *vs, void *rec, int reclen, void *key, int keylen) -{ - unsigned pl[16] = {0}; - - /* common for all VSAM cluster types, record and reclen */ - __asm__("MODCB RPL=(%0),RECLEN=(%1),AREALEN=(%1),AREA=(%2),MF=(G,(%3))" - : : "r"(&vs->rpl), "r"(reclen), "r"(rec), "r"(pl) - : "1", "14", "15" ); - - if (!key) goto quit; - - if (vs->type==VSTYPE_RRDS || vs->type==VSTYPE_ESDS) { - /* set relative record key */ - __asm__("MODCB RPL=(%0),ARG=(%1),MF=(G,(%2))" - : : "r"(&vs->rpl), "r"(key), "r"(pl) - : "1", "14", "15" ); - } - else if (vs->type==VSTYPE_KSDS) { - /* set keyed sequential key */ - __asm__("MODCB RPL=(%0),ARG=(%1),KEYLEN=(%2),MF=(G,(%3))" - : : "r"(&vs->rpl), "r"(key), "r"(keylen), "r"(pl) - : "1", "14", "15" ); - } - -quit: - return 0; -} diff --git a/src/crent370/clib/@@vsmdfy.o b/src/crent370/clib/@@vsmdfy.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@vsmdfy.s b/src/crent370/clib/@@vsmdfy.s deleted file mode 100644 index 4d432fd..0000000 --- a/src/crent370/clib/@@vsmdfy.s +++ /dev/null @@ -1,78 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@vsmdfy.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__vsmdfy' prologue -* frame base=88, local stack=64, call args=0 -&FUNC SETC '__vsmdfy' -@@VSMDFY PDPPRLG CINDEX=0,FRAME=152,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__vsmdfy' code - L 8,0(11) ==> vs - L 3,4(11) ==> rec - L 2,8(11) ==> reclen - L 9,12(11) ==> key - LA 6,88(,13) - LA 7,64(0,0) - SLR 4,4 - LR 5,4 - MVCL 6,4 - LR 4,8 ==> vs - A 4,=F'104' - LA 5,88(,13) - MODCB RPL=(4),RECLEN=(2),AREALEN=(2),AREA=(3),MF=(G,(5)) ==> reclen,rec - LTR 9,9 ==> key - BE @@L3 - IC 3,21(8) ==> .type - LA 2,255(,3) - CLM 2,1,=XL1'01' - BH @@L4 - MODCB RPL=(4),ARG=(9),MF=(G,(5)) ==> key - B @@L3 -@@L4 EQU * - IC 2,21(8) ==> .type - CLM 2,1,=XL1'00' - BNE @@L3 - LR 3,8 ==> vs - A 3,=F'104' - LA 2,88(,13) - L 4,16(11) ==> keylen - MODCB RPL=(3),ARG=(9),KEYLEN=(4),MF=(G,(2)) ==> key -@@L3 EQU * - SLR 15,15 -* Function '__vsmdfy' epilogue - PDPEPIL -* Function '__vsmdfy' literal pool - DS 0D - LTORG -* Function '__vsmdfy' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@vsopen.c b/src/crent370/clib/@@vsopen.c deleted file mode 100644 index f1af793..0000000 --- a/src/crent370/clib/@@vsopen.c +++ /dev/null @@ -1,286 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" - -__asm__("\n" -"R0 EQU 0\n" -"R1 EQU 1\n" -"R2 EQU 2\n" -"R3 EQU 3\n" -"R4 EQU 4\n" -"R5 EQU 5\n" -"R6 EQU 6\n" -"R7 EQU 7\n" -"R8 EQU 8\n" -"R9 EQU 9\n" -"R10 EQU 10\n" -"R11 EQU 11\n" -"R12 EQU 12\n" -"R13 EQU 13\n" -"R14 EQU 14\n" -"R15 EQU 15\n" -); -int -__vsopen(const char *ddname, VSTYPE t, VSACCESS a, VSMODE m, VSFILE **vsfile) -{ - int rc = 0; - VSFILE *vs = 0; - ACB *acb = 0; - RPL *rpl = 0; - unsigned pl[16] = {0}; - - /* validate options */ - if (t==VSTYPE_ESDS) { -#if 0 - if (a==VSACCESS_DIR || a==VSACCESS_DYNAM) { - /* invalid access for ESDS */ - rc = EVSACCESS; - goto quit; - } -#endif - } - else if (t==VSTYPE_KSDS) { - if (a==VSACCESS_DIR) { - if (m==VSMODE_OUT) { - rc = EVSMODE; - goto quit; - } - } - else if (a==VSACCESS_DYNAM) { - if (m==VSMODE_OUT) { - rc = EVSMODE; - goto quit; - } - } - } - else if (t==VSTYPE_RRDS) { - if (a==VSACCESS_DYNAM) { - if (m==VSMODE_OUT) { - rc = EVSMODE; - goto quit; - } - } - } - - /* allocate VSFILE handle */ - vs = calloc(1, sizeof(VSFILE)); - if (!vs) { - rc = ENOMEM; - goto quit; - } - - /* initialize our VSAM file handle */ - strcpy(vs->eye, VSFILE_EYE); - strcpyp(vs->ddname, sizeof(vs->ddname), ddname, ' '); - vs->type = t; - vs->access = a; - vs->mode = m; - vs->vsself = vs; /* pointer to self, used by __vserr */ - acb = &vs->acb; - rpl = &vs->rpl; - - /* get prototype ACB */ - __asm__("MVC\t0($ACBLEN,%0),ACBMODEL Copy prototype ACB" - : : "r"(&vs->acb)); - - /* put DD name into ACB */ - memcpy(acb->acbddnm, vs->ddname, sizeof(acb->acbddnm)); - - /* get prototype RPL */ - __asm__("MVC\t0($RPLLEN,%0),RPLMODEL Copy prototype RPL" - : : "r"(&vs->rpl)); - - /* put ACB address into RPL */ - __asm__("MODCB RPL=(%0),ACB=((%1)),MF=(G,(%2))" - : : "r"(&vs->rpl), "r"(&vs->acb), "r"(pl)); - - /* TYPE */ - switch(t) { - case VSTYPE_KSDS: - case VSTYPE_RRDS: - __asm__("MODCB ACB=(%0),MACRF=(KEY),MF=(G,(%1))" - : : "r"(&vs->acb), "r"(pl) : "1", "14", "15"); - __asm__("MODCB RPL=(%0),OPTCD=(KEY),MF=(G,(%1))" - : : "r"(&vs->rpl), "r"(pl) : "1", "14", "15"); - break; - case VSTYPE_ESDS: - __asm__("MODCB ACB=(%0),MACRF=(ADR),MF=(G,(%1))" - : : "r"(&vs->acb), "r"(pl) : "1", "14", "15"); - __asm__("MODCB RPL=(%0),OPTCD=(ADR),MF=(G,(%1))" - : : "r"(&vs->rpl), "r"(pl) : "1", "14", "15"); - break; - default: - rc = EVSTYPE; - goto quit; - } - - /* ACCESS */ - switch(a) { - case VSACCESS_DIR: /* direct access */ - __asm__("MODCB ACB=(%0),MACRF=(DIR),MF=(G,(%1))" - : : "r"(&vs->acb), "r"(pl) : "1", "14", "15"); - break; - case VSACCESS_SEQ: /* sequential access */ - __asm__("MODCB ACB=(%0),MACRF=(SEQ),MF=(G,(%1))" - : : "r"(&vs->acb), "r"(pl) : "1", "14", "15"); - break; - case VSACCESS_DYNAM: /* dynamic access */ - __asm__("MODCB ACB=(%0),MACRF=(SEQ,DIR),MF=(G,(%1))" - : : "r"(&vs->acb), "r"(pl) : "1", "14", "15"); - break; - case VSACCESS_ADR: /* address access */ - __asm__("MODCB ACB=(%0),MACRF=(ADR),MF=(G,(%1))" - : : "r"(&vs->acb), "r"(pl) : "1", "14", "15"); - break; - default: - rc = EVSACCESS; - goto quit; - } - switch(a) { - case VSACCESS_DIR: /* direct access */ - __asm__("MODCB RPL=(%0),OPTCD=(DIR),MF=(G,(%1))" - : : "r"(&vs->rpl), "r"(pl) : "1", "14", "15"); - break; - case VSACCESS_SEQ: /* sequential access */ - case VSACCESS_DYNAM: /* dynamic access */ - __asm__("MODCB RPL=(%0),OPTCD=(SEQ),MF=(G,(%1))" - : : "r"(&vs->rpl), "r"(pl) : "1", "14", "15"); - break; - case VSACCESS_ADR: /* address access */ - __asm__("MODCB RPL=(%0),OPTCD=(ADR),MF=(G,(%1))" - : : "r"(&vs->rpl), "r"(pl) : "1", "14", "15"); - break; - } - - /* MODE */ - switch(m) { - case VSMODE_IN: /* input (read only) */ - __asm__("MODCB ACB=(%0),MACRF=(IN),MF=(G,(%1))" - : : "r"(&vs->acb), "r"(pl) : "1", "14", "15"); - break; - case VSMODE_OUT: /* output (write only) */ - case VSMODE_UPD: /* update (read and write) */ - __asm__("MODCB ACB=(%0),MACRF=(OUT),MF=(G,(%1))" - : : "r"(&vs->acb), "r"(pl) : "1", "14", "15"); - break; - default: - rc = EVSMODE; - goto quit; - } - switch(m) { - case VSMODE_IN: /* input (read only) */ - case VSMODE_OUT: /* output (write only) */ - __asm__("MODCB RPL=(%0),OPTCD=(NUP),MF=(G,(%1))" - : : "r"(&vs->rpl), "r"(pl) : "1", "14", "15"); - break; - case VSMODE_UPD: /* update (read and write) */ - __asm__("MODCB RPL=(%0),OPTCD=(UPD),MF=(G,(%1))" - : : "r"(&vs->rpl), "r"(pl) : "1", "14", "15"); - break; - } - - /* open VSAM cluster */ - __asm__("MVC\t0($OPNLEN,%1),OPNMODEL Copy prototype OPEN\n\t" - "OPEN ((%0)),MF=(E,(%1))\n\t" - "ST 15,%2" - : : "r"(&vs->acb), "r"(pl), "m"(rc) : "1", "14", "15"); - if (acb->acboflgs & ACBOPEN) { - vs->flags |= VSFILE_FLAG_OPEN; - } - else { - rc = EVSOPEN; - } - -quit: - if (rc) { - errno = rc; - if (vs) { - __vsclos(vs); - vs = 0; - } - } - if (vsfile) *vsfile = vs; - - return rc; -} -__asm__("DS\t0F\nOPNMODEL OPEN (ACBMODEL),MF=L\n$OPNLEN\tEQU\t*-OPNMODEL"); -__asm__("DS\t0F\nACBMODEL ACB\tDDNAME=X,EXLST=EXITLIST"); -__asm__("DS\t0F\nRPLMODEL RPL\tACB=ACBMODEL"); -#if 0 -__asm__("EXTRN @@VSXLER,@@VSXERR,@@VSXEOF"); -__asm__("DS\t0F\nEXITLIST EXLST LERAD=@@VSXLER,SYNAD=@@VSXERR,EODAD=@@VSXEOF"); -#else -__asm__("DS\t0F\nEXITLIST EXLST LERAD=LERAD,SYNAD=SYNAD,EODAD=EODAD"); -#endif -__asm__("DS\t0F\n" -"EODAD PDPPRLG CINDEX=0,FRAME=WORKLEN,BASER=12,ENTRY=NO\n" -" USING WORK,R13\n" -"*\n" -" ST R1,PLIST+0 A(RPL)\n" -" LA R3,4 End Of File Code\n" -" ST R3,PLIST+4\n" -"*\n" -" LA R1,PLIST\n" -" L R15,=V(@@VSXEOF)\n" -" BALR R14,R15\n" -"*\n" -" L R13,4(,R13) get callers stack\n" -" LR R14,R2 get return address\n" -" LM R0,R12,20(R13) restore registers\n" -" BR R14 return to target\n" -" LTORG ,\n" -); - -__asm__("DS\t0F\n" -"LERAD PDPPRLG CINDEX=0,FRAME=WORKLEN,BASER=12,ENTRY=NO\n" -" USING WORK,R13\n" -"*\n" -" ST R1,PLIST+0 A(RPL)\n" -" LA R3,8 Logical Error Code\n" -" ST R3,PLIST+4\n" -"*\n" -" LA R1,PLIST\n" -" L R15,=V(@@VSXERR) Common error handler\n" -" BALR R14,R15\n" -"*\n" -" L R13,4(,R13) get callers stack\n" -" LR R14,R2 get return address\n" -" LM R0,R12,20(R13) restore registers\n" -" BR R14 return to target\n" -" LTORG ,\n" -); - -__asm__("DS\t0F\n" -"SYNAD PDPPRLG CINDEX=0,FRAME=WORKLEN,BASER=12,ENTRY=NO\n" -" USING WORK,R13\n" -"*\n" -" ST R1,PLIST+0 A(RPL)\n" -" LA R3,12 Physical Error Code\n" -" ST R3,PLIST+4\n" -"*\n" -" LA R1,PLIST\n" -" L R15,=V(@@VSXERR) Common error handler\n" -" BALR R14,R15\n" -"*\n" -" L R13,4(,R13) get callers stack\n" -" LR R14,R2 get return address\n" -" LM R0,R12,20(R13) restore registers\n" -" BR R14 return to target\n" -" LTORG ,\n" -); - -__asm__("\n" -"WORK DSECT\n" -"SAVEAREA DS 18F 00\n" -"STKSVLWS DS A PL/I Language Work Space N/A 48\n" -"STKSVNAB DS A next available byte -------+ 4C\n" -"PLIST DS 2F parameter list\n" -"WORKLEN EQU *-WORK\n" -); - -__asm__("IFGACB\n$ACBLEN\tEQU\t*-IFGACB"); -__asm__("IFGRPL\n$RPLLEN\tEQU\t*-IFGRPL"); -__asm__("CSECT ,"); diff --git a/src/crent370/clib/@@vsopen.o b/src/crent370/clib/@@vsopen.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@vsopen.s b/src/crent370/clib/@@vsopen.s deleted file mode 100644 index 3e0ca78..0000000 --- a/src/crent370/clib/@@vsopen.s +++ /dev/null @@ -1,395 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@vsopen.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -R0 EQU 0 -R1 EQU 1 -R2 EQU 2 -R3 EQU 3 -R4 EQU 4 -R5 EQU 5 -R6 EQU 6 -R7 EQU 7 -R8 EQU 8 -R9 EQU 9 -R10 EQU 10 -R11 EQU 11 -R12 EQU 12 -R13 EQU 13 -R14 EQU 14 -R15 EQU 15 - -* Program text area - DS 0F - EJECT -* external function '__vsopen' prologue -* frame base=88, local stack=72, call args=16 -&FUNC SETC '__vsopen' -@@VSOPEN PDPPRLG CINDEX=0,FRAME=176,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__vsopen' code - L 7,4(11) ==> t - L 8,8(11) ==> a - L 9,12(11) ==> m - SLR 2,2 ==> vs - ST 2,168(13) ==> vs - LR 6,2 ==> vs - LA 4,104(,13) - LA 5,64(0,0) - LR 3,2 ==> vs - MVCL 4,2 ==> vs - LA 2,1(0,0) - CLR 7,2 ==> t - BE @@L3 - LTR 7,7 ==> t - BNE @@L4 - LTR 8,8 ==> a - BE @@L55 - LA 2,2(0,0) - B @@L56 -@@L4 EQU * - LA 2,2(0,0) - CLR 7,2 ==> t - BNE @@L3 -@@L56 EQU * - CLR 8,2 ==> a - BNE @@L3 - LA 2,1(0,0) -@@L55 EQU * - CLR 9,2 ==> m - BE @@L41 -@@L3 EQU * - MVC 88(4,13),=F'1' - MVC 92(4,13),=F'192' - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 6,15 ==> vs - LTR 15,15 ==> vs - BNE @@L15 - MVC 168(4,13),=F'12' - B @@L7 -@@L15 EQU * - ST 15,88(13) ==> vs - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - LR 2,6 ==> vs - A 2,=F'8' - ST 2,88(13) - MVC 92(4,13),=F'8' - MVC 96(4,13),0(11) ==> ddname - MVC 100(4,13),=F'64' - LA 1,88(,13) - L 15,=V(STRCPYP) - BALR 14,15 - STC 7,21(6) ==> t,type - STC 8,22(6) ==> a,access - STC 9,23(6) ==> m,mode - ST 6,184(6) ==> vs,vsself - LR 5,6 ==> acb,vs - A 5,=F'24' ==> acb - MVC 0($ACBLEN,5),ACBMODEL Copy prototype ACB ==> acb - A 2,=F'56' - ST 2,88(13) - A 2,=F'-56' - ST 2,92(13) - MVC 96(4,13),=F'8' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - A 2,=F'96' - MVC 0($RPLLEN,2),RPLMODEL Copy prototype RPL - LR 4,6 ==> vs - A 4,=F'104' - LR 3,6 ==> vs - A 3,=F'24' - LA 2,104(,13) - MODCB RPL=(4),ACB=((3)),MF=(G,(2)) - LA 2,1(0,0) - CLR 7,2 ==> t - BE @@L19 - BL @@L18 - LA 2,2(0,0) - CLR 7,2 ==> t - BNE @@L20 -@@L18 EQU * - LR 2,6 ==> vs - A 2,=F'24' - LA 3,104(,13) - MODCB ACB=(2),MACRF=(KEY),MF=(G,(3)) - A 2,=F'80' - MODCB RPL=(2),OPTCD=(KEY),MF=(G,(3)) - B @@L16 -@@L19 EQU * - LR 2,6 ==> vs - A 2,=F'24' - LA 3,104(,13) - MODCB ACB=(2),MACRF=(ADR),MF=(G,(3)) - A 2,=F'80' - MODCB RPL=(2),OPTCD=(ADR),MF=(G,(3)) - B @@L16 -@@L20 EQU * - MVC 168(4,13),=F'150' - B @@L7 -@@L16 EQU * - LA 2,1(0,0) - CLR 8,2 ==> a - BE @@L24 - BL @@L23 - LA 2,2(0,0) - CLR 8,2 ==> a - BE @@L25 - LA 2,3(0,0) - CLR 8,2 ==> a - BE @@L26 - B @@L27 -@@L23 EQU * - LR 3,6 ==> vs - A 3,=F'24' - LA 2,104(,13) - MODCB ACB=(3),MACRF=(DIR),MF=(G,(2)) - B @@L22 -@@L24 EQU * - LR 3,6 ==> vs - A 3,=F'24' - LA 2,104(,13) - MODCB ACB=(3),MACRF=(SEQ),MF=(G,(2)) - B @@L22 -@@L25 EQU * - LR 3,6 ==> vs - A 3,=F'24' - LA 2,104(,13) - MODCB ACB=(3),MACRF=(SEQ,DIR),MF=(G,(2)) - B @@L22 -@@L26 EQU * - LR 3,6 ==> vs - A 3,=F'24' - LA 2,104(,13) - MODCB ACB=(3),MACRF=(ADR),MF=(G,(2)) - B @@L22 -@@L27 EQU * - MVC 168(4,13),=F'151' - B @@L7 -@@L22 EQU * - LA 2,2(0,0) - CLR 8,2 ==> a - BH @@L36 - LA 2,1(0,0) - CLR 8,2 ==> a - BNL @@L32 - B @@L30 -@@L36 EQU * - LA 2,3(0,0) - CLR 8,2 ==> a - BE @@L33 - B @@L29 -@@L30 EQU * - LR 3,6 ==> vs - A 3,=F'104' - LA 2,104(,13) - MODCB RPL=(3),OPTCD=(DIR),MF=(G,(2)) - B @@L29 -@@L32 EQU * - LR 3,6 ==> vs - A 3,=F'104' - LA 2,104(,13) - MODCB RPL=(3),OPTCD=(SEQ),MF=(G,(2)) - B @@L29 -@@L33 EQU * - LR 3,6 ==> vs - A 3,=F'104' - LA 2,104(,13) - MODCB RPL=(3),OPTCD=(ADR),MF=(G,(2)) -@@L29 EQU * - LTR 9,9 ==> m - BE @@L38 - LA 2,2(0,0) - CLR 9,2 ==> m - BH @@L41 - B @@L40 -@@L38 EQU * - LR 3,6 ==> vs - A 3,=F'24' - LA 2,104(,13) - MODCB ACB=(3),MACRF=(IN),MF=(G,(2)) - B @@L37 -@@L40 EQU * - LR 3,6 ==> vs - A 3,=F'24' - LA 2,104(,13) - MODCB ACB=(3),MACRF=(OUT),MF=(G,(2)) - B @@L37 -@@L41 EQU * - MVC 168(4,13),=F'152' - B @@L7 -@@L37 EQU * - LA 2,1(0,0) - CLR 9,2 ==> m - BNH @@L45 - LA 2,2(0,0) - CLR 9,2 ==> m - BE @@L46 - B @@L43 -@@L45 EQU * - LR 3,6 ==> vs - A 3,=F'104' - LA 2,104(,13) - MODCB RPL=(3),OPTCD=(NUP),MF=(G,(2)) - B @@L43 -@@L46 EQU * - LR 3,6 ==> vs - A 3,=F'104' - LA 2,104(,13) - MODCB RPL=(3),OPTCD=(UPD),MF=(G,(2)) -@@L43 EQU * - LR 2,6 ==> vs - A 2,=F'24' - LA 3,104(,13) - MVC 0($OPNLEN,3),OPNMODEL Copy prototype OPEN - OPEN ((2)),MF=(E,(3)) - ST 15,168(13) ==> rc - IC 2,48(5) ==> .acboflgs - N 2,=F'16' - CLM 2,1,=XL1'00' - BE @@L49 - OI 17(6),128 ==> .flags - B @@L7 -@@L49 EQU * - MVC 168(4,13),=F'153' -@@L7 EQU * - L 2,168(13) - LTR 2,2 - BE @@L51 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - MVC 0(4,15),168(13) ==> vs - LTR 6,6 ==> vs - BE @@L51 - ST 6,88(13) ==> vs - LA 1,88(,13) - L 15,=V(@@VSCLOS) - BALR 14,15 - SLR 6,6 ==> vs -@@L51 EQU * - L 2,16(11) ==> vsfile - LTR 2,2 - BE @@L53 - ST 6,0(2) ==> vs -@@L53 EQU * - L 15,168(13) -* Function '__vsopen' epilogue - PDPEPIL -* Function '__vsopen' literal pool - DS 0D - LTORG -* Function '__vsopen' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'*VSFILE*' - DC X'0' - DS 0F -OPNMODEL OPEN (ACBMODEL),MF=L -$OPNLEN EQU *-OPNMODEL - DS 0F -ACBMODEL ACB DDNAME=X,EXLST=EXITLIST - DS 0F -RPLMODEL RPL ACB=ACBMODEL - DS 0F -EXITLIST EXLST LERAD=LERAD,SYNAD=SYNAD,EODAD=EODAD - DS 0F -EODAD PDPPRLG CINDEX=0,FRAME=WORKLEN,BASER=12,ENTRY=NO - USING WORK,R13 -* - ST R1,PLIST+0 A(RPL) - LA R3,4 End Of File Code - ST R3,PLIST+4 -* - LA R1,PLIST - L R15,=V(@@VSXEOF) - BALR R14,R15 -* - L R13,4(,R13) get callers stack - LR R14,R2 get return address - LM R0,R12,20(R13) restore registers - BR R14 return to target - LTORG , - - DS 0F -LERAD PDPPRLG CINDEX=0,FRAME=WORKLEN,BASER=12,ENTRY=NO - USING WORK,R13 -* - ST R1,PLIST+0 A(RPL) - LA R3,8 Logical Error Code - ST R3,PLIST+4 -* - LA R1,PLIST - L R15,=V(@@VSXERR) Common error handler - BALR R14,R15 -* - L R13,4(,R13) get callers stack - LR R14,R2 get return address - LM R0,R12,20(R13) restore registers - BR R14 return to target - LTORG , - - DS 0F -SYNAD PDPPRLG CINDEX=0,FRAME=WORKLEN,BASER=12,ENTRY=NO - USING WORK,R13 -* - ST R1,PLIST+0 A(RPL) - LA R3,12 Physical Error Code - ST R3,PLIST+4 -* - LA R1,PLIST - L R15,=V(@@VSXERR) Common error handler - BALR R14,R15 -* - L R13,4(,R13) get callers stack - LR R14,R2 get return address - LM R0,R12,20(R13) restore registers - BR R14 return to target - LTORG , - - -WORK DSECT -SAVEAREA DS 18F 00 -STKSVLWS DS A PL/I Language Work Space N/A 48 -STKSVNAB DS A next available byte -------+ 4C -PLIST DS 2F parameter list -WORKLEN EQU *-WORK - - IFGACB -$ACBLEN EQU *-IFGACB - IFGRPL -$RPLLEN EQU *-IFGRPL - CSECT , - END diff --git a/src/crent370/clib/@@vsread.c b/src/crent370/clib/@@vsread.c deleted file mode 100644 index 178aa19..0000000 --- a/src/crent370/clib/@@vsread.c +++ /dev/null @@ -1,50 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" - -int -__vsread(VSFILE *vs, void *rec, int reclen, void *key, int keylen) -{ - unsigned pl[16] = {0}; - int rc = 0; - - if (key && keylen) { - /* position to desired record */ - __vssteq(vs, rec, reclen, key, keylen); - } - else { - /* modify common RPL parameters */ - __vsmdfy(vs, rec, reclen, key, keylen); - } - - vs->flags &= (0xFF - VSFILE_FLAG_WRITE); - - /* get record from VSAM dataset */ - __asm__("LA\t2,GETDONE\n\t" - "GET\tRPL=(%0)\n" - "GETDONE\tDS\t0H\n\t" - "ST\t15,%1" - : : "r"(&vs->rpl), "m"(rc) : "1", "2", "14", "15"); - - if (vs->flags & VSFILE_FLAG_ERROR) { - /* SYNAD exit has indicated an error */ - errno = EVSERROR; - reclen = -2; - goto quit; - } - if (vs->flags & VSFILE_FLAG_EOF) { - /* EODAD exit has indicated end of file */ - reclen = -1; - goto quit; - } - - /* get length of record just read */ - __asm__("SHOWCB RPL=(%0),FIELDS=RECLEN,AREA=(%1),LENGTH=4,MF=(G,(%2))" - : : "r"(&vs->rpl), "r"(&reclen), "r"(pl)); - -quit: - return reclen; -} diff --git a/src/crent370/clib/@@vsread.o b/src/crent370/clib/@@vsread.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@vsread.s b/src/crent370/clib/@@vsread.s deleted file mode 100644 index f71a5d9..0000000 --- a/src/crent370/clib/@@vsread.s +++ /dev/null @@ -1,111 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@vsread.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__vsread' prologue -* frame base=88, local stack=72, call args=24 -&FUNC SETC '__vsread' -@@VSREAD PDPPRLG CINDEX=0,FRAME=184,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__vsread' code - L 6,0(11) ==> vs - L 8,4(11) ==> rec - L 15,12(11) ==> key - L 7,16(11) ==> keylen - LA 4,112(,13) - LA 5,64(0,0) - SLR 2,2 - LR 3,2 - MVCL 4,2 - MVC 176(4,13),=F'0' - LTR 15,15 ==> key - BE @@L2 - LTR 7,7 ==> keylen - BE @@L2 - ST 6,88(13) ==> vs - ST 8,92(13) ==> rec - MVC 96(4,13),8(11) - ST 15,100(13) ==> key - ST 7,104(13) ==> keylen - LA 1,88(,13) - L 15,=V(@@VSSTEQ) - BALR 14,15 - B @@L3 -@@L2 EQU * - ST 6,88(13) ==> vs - ST 8,92(13) ==> rec - MVC 96(4,13),8(11) - ST 15,100(13) ==> key - ST 7,104(13) ==> keylen - LA 1,88(,13) - L 15,=V(@@VSMDFY) - BALR 14,15 -@@L3 EQU * - NI 17(6),223 ==> .flags - LR 3,6 ==> vs - A 3,=F'104' - LA 2,GETDONE - GET RPL=(3) -GETDONE DS 0H - ST 15,176(13) ==> rc - IC 2,17(6) ==> .flags - N 2,=F'2' - CLM 2,1,=XL1'00' - BE @@L4 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - MVC 0(4,15),=F'154' - MVC 8(4,11),=F'-2' - B @@L5 -@@L4 EQU * - IC 2,17(6) ==> .flags - N 2,=F'1' - CLM 2,1,=XL1'00' - BE @@L6 - MVC 8(4,11),=F'-1' - B @@L5 -@@L6 EQU * - LR 4,6 ==> vs - A 4,=F'104' - LA 3,112(,13) - LA 2,8(,11) - SHOWCB RPL=(4),FIELDS=RECLEN,AREA=(2),LENGTH=4,MF=(G,(3)) -@@L5 EQU * - L 15,8(11) -* Function '__vsread' epilogue - PDPEPIL -* Function '__vsread' literal pool - DS 0D - LTORG -* Function '__vsread' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@vsshwc.c b/src/crent370/clib/@@vsshwc.c deleted file mode 100644 index 31cb2ff..0000000 --- a/src/crent370/clib/@@vsshwc.c +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" - -int -__vsshwc(ACB *acb, const char *name, char *buf, int buflen) -{ - int rc = 0; - SHWOUT *out = 0; - SHWPL pl = {0}; - char tmp[44]; - - out = (SHWOUT*)buf; - out->shwlen1 = (unsigned short)buflen; - - strcpyp(tmp, sizeof(tmp), name, ' '); - - __asm__("SHOWCAT ACB=(%0),AREA=(%1),NAME=(%2),MF=(B,(%3))" - : : "r"(acb), "r"(buf), "r"(tmp), "r"(&pl) : "1", "14", "15"); - - __asm__("SHOWCAT MF=(E,(%0))\n\t" - "ST\t15,%1" : : "r"(&pl), "m"(rc) : "1", "14", "15"); - - return rc; -} diff --git a/src/crent370/clib/@@vsshwc.o b/src/crent370/clib/@@vsshwc.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@vsshwc.s b/src/crent370/clib/@@vsshwc.s deleted file mode 100644 index 23bc462..0000000 --- a/src/crent370/clib/@@vsshwc.s +++ /dev/null @@ -1,70 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@vsshwc.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__vsshwc' prologue -* frame base=88, local stack=72, call args=16 -&FUNC SETC '__vsshwc' -@@VSSHWC PDPPRLG CINDEX=0,FRAME=176,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__vsshwc' code - L 5,0(11) ==> acb - L 4,8(11) ==> buf - SLR 2,2 - ST 2,168(13) - LA 8,104(,13) - LA 9,16(0,0) - LR 6,2 - LR 7,2 - MVCL 8,6 - L 2,12(11) ==> buflen - STH 2,0(4) ==> .shwlen1 - LA 3,120(,13) - ST 3,88(13) - MVC 92(4,13),=F'44' - MVC 96(4,13),4(11) ==> name - MVC 100(4,13),=F'64' - LA 1,88(,13) - L 15,=V(STRCPYP) - BALR 14,15 - LA 2,104(,13) - SHOWCAT ACB=(5),AREA=(4),NAME=(3),MF=(B,(2)) ==> acb,buf - SHOWCAT MF=(E,(2)) - ST 15,168(13) ==> rc - L 15,168(13) -* Function '__vsshwc' epilogue - PDPEPIL -* Function '__vsshwc' literal pool - DS 0D - LTORG -* Function '__vsshwc' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@vssteq.c b/src/crent370/clib/@@vssteq.c deleted file mode 100644 index c03c729..0000000 --- a/src/crent370/clib/@@vssteq.c +++ /dev/null @@ -1,34 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" - -int -__vssteq(VSFILE *vs, void *rec, int reclen, void *key, int keylen) -{ - unsigned pl[16] = {0}; - volatile int rc = 0; - - /* modify common RPL parameters */ - __vsmdfy(vs, rec, reclen, key, keylen); - - vs->vsreset = 0; - - __asm__("MODCB RPL=(%0),OPTCD=(KEQ),MF=(G,(%1))" - : : "r"(&vs->rpl), "r"(pl) : "1", "14", "15"); - - __asm__("LA\t2,DONE\n\t" - "POINT\tRPL=(%0)\n" - "DONE\tDS\t0H\n\t" - "ST\t15,%1" - : : "r"(&vs->rpl), "m"(rc) : "1", "2", "14", "15"); -#if 0 - __asm__("MODCB RPL=(%0),OPTCD=(KEQ),MF=(G,(%1))" - : : "r"(&vs->rpl), "r"(pl) : "1", "14", "15"); -#endif - -quit: - return rc; -} diff --git a/src/crent370/clib/@@vssteq.o b/src/crent370/clib/@@vssteq.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@vssteq.s b/src/crent370/clib/@@vssteq.s deleted file mode 100644 index 521d411..0000000 --- a/src/crent370/clib/@@vssteq.s +++ /dev/null @@ -1,71 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@vssteq.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__vssteq' prologue -* frame base=88, local stack=72, call args=24 -&FUNC SETC '__vssteq' -@@VSSTEQ PDPPRLG CINDEX=0,FRAME=184,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__vssteq' code - L 3,0(11) ==> vs - LA 6,112(,13) - LA 7,64(0,0) - SLR 4,4 - LR 5,4 - MVCL 6,4 - MVC 176(4,13),=F'0' ==> rc - ST 3,88(13) ==> vs - MVC 92(4,13),4(11) ==> rec - MVC 96(4,13),8(11) ==> reclen - MVC 100(4,13),12(11) ==> key - MVC 104(4,13),16(11) ==> keylen - LA 1,88(,13) - L 15,=V(@@VSMDFY) - BALR 14,15 - MVC 188(4,3),=F'0' ==> .vsreset - A 3,=F'104' - LA 2,112(,13) - MODCB RPL=(3),OPTCD=(KEQ),MF=(G,(2)) - LA 2,DONE - POINT RPL=(3) -DONE DS 0H - ST 15,176(13) ==> rc -@@L2 EQU * - L 15,176(13) ==> rc -* Function '__vssteq' epilogue - PDPEPIL -* Function '__vssteq' literal pool - DS 0D - LTORG -* Function '__vssteq' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@vsstge.c b/src/crent370/clib/@@vsstge.c deleted file mode 100644 index 21c32e7..0000000 --- a/src/crent370/clib/@@vsstge.c +++ /dev/null @@ -1,33 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" - -int -__vsstge(VSFILE *vs, void *rec, int reclen, void *key, int keylen) -{ - unsigned pl[16] = {0}; - volatile int rc = 0; - - /* modify common RPL parameters */ - __vsmdfy(vs, rec, reclen, key, keylen); - - vs->vsreset = 0; - - __asm__("MODCB RPL=(%0),OPTCD=(KGE),MF=(G,(%1))" - : : "r"(&vs->rpl), "r"(pl) : "1", "14", "15"); - - __asm__("LA\t2,DONE\n\t" - "POINT\tRPL=(%0)\n" - "DONE\tDS\t0H\n\t" - "ST\t15,%1" - : : "r"(&vs->rpl), "m"(rc) : "1", "2", "14", "15"); - - __asm__("MODCB RPL=(%0),OPTCD=(KEQ),MF=(G,(%1))" - : : "r"(&vs->rpl), "r"(pl) : "1", "14", "15"); - -quit: - return rc; -} diff --git a/src/crent370/clib/@@vsstge.o b/src/crent370/clib/@@vsstge.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@vsstge.s b/src/crent370/clib/@@vsstge.s deleted file mode 100644 index cfaa2b0..0000000 --- a/src/crent370/clib/@@vsstge.s +++ /dev/null @@ -1,72 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@vsstge.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__vsstge' prologue -* frame base=88, local stack=72, call args=24 -&FUNC SETC '__vsstge' -@@VSSTGE PDPPRLG CINDEX=0,FRAME=184,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__vsstge' code - L 5,0(11) ==> vs - LA 6,112(,13) - LA 7,64(0,0) - SLR 2,2 - LR 3,2 - MVCL 6,2 - MVC 176(4,13),=F'0' ==> rc - ST 5,88(13) ==> vs - MVC 92(4,13),4(11) ==> rec - MVC 96(4,13),8(11) ==> reclen - MVC 100(4,13),12(11) ==> key - MVC 104(4,13),16(11) ==> keylen - LA 1,88(,13) - L 15,=V(@@VSMDFY) - BALR 14,15 - MVC 188(4,5),=F'0' ==> .vsreset - A 5,=F'104' - LA 4,112(,13) - MODCB RPL=(5),OPTCD=(KGE),MF=(G,(4)) - LA 2,DONE - POINT RPL=(5) -DONE DS 0H - ST 15,176(13) ==> rc - MODCB RPL=(5),OPTCD=(KEQ),MF=(G,(4)) -@@L2 EQU * - L 15,176(13) ==> rc -* Function '__vsstge' epilogue - PDPEPIL -* Function '__vsstge' literal pool - DS 0D - LTORG -* Function '__vsstge' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@vstell.c b/src/crent370/clib/@@vstell.c deleted file mode 100644 index 50d3c22..0000000 --- a/src/crent370/clib/@@vstell.c +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" - -unsigned -__vstell(VSFILE *vs) -{ - unsigned rba = 0; - unsigned pl[16] = {0}; - - /* get RBA of record just read */ - __asm__("SHOWCB RPL=(%0),FIELDS=RBA,AREA=(%1),LENGTH=4,MF=(G,(%2))" - : : "r"(&vs->rpl), "r"(&rba), "r"(pl)); - -quit: - return rba; -} diff --git a/src/crent370/clib/@@vstell.o b/src/crent370/clib/@@vstell.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@vstell.s b/src/crent370/clib/@@vstell.s deleted file mode 100644 index 86f51fd..0000000 --- a/src/crent370/clib/@@vstell.s +++ /dev/null @@ -1,59 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@vstell.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__vstell' prologue -* frame base=88, local stack=72, call args=0 -&FUNC SETC '__vstell' -@@VSTELL PDPPRLG CINDEX=0,FRAME=160,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__vstell' code - MVC 152(4,13),=F'0' - LA 4,88(,13) - LA 5,64(0,0) - SLR 2,2 - LR 3,2 - MVCL 4,2 - L 4,0(11) ==> vs - A 4,=F'104' - LA 3,88(,13) - LA 2,152(,13) - SHOWCB RPL=(4),FIELDS=RBA,AREA=(2),LENGTH=4,MF=(G,(3)) -@@L2 EQU * - L 15,152(13) -* Function '__vstell' epilogue - PDPEPIL -* Function '__vstell' literal pool - DS 0D - LTORG -* Function '__vstell' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@vsupdt.c b/src/crent370/clib/@@vsupdt.c deleted file mode 100644 index ad0ce49..0000000 --- a/src/crent370/clib/@@vsupdt.c +++ /dev/null @@ -1,26 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" - -int -__vsupdt(VSFILE *vs, void *rec, int reclen) -{ - unsigned pl[16] = {0}; - volatile int rc = 0; - - __asm__("MODCB RPL=(%0),RECLEN=(%1),AREALEN=(%1),AREA=(%2),MF=(G,(%3))" - : : "r"(&vs->rpl), "r"(reclen), "r"(rec), "r"(pl) - : "1", "14", "15"); - - __asm__("LA\t2,PUTDONE\n\t" - "PUT\tRPL=(%0)\n" - "PUTDONE\tDS\t0H\n\t" - "ST\t15,%1" - : : "r"(&vs->rpl), "m"(rc) : "1", "2", "14", "15"); - -quit: - return rc; -} diff --git a/src/crent370/clib/@@vsupdt.o b/src/crent370/clib/@@vsupdt.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@vsupdt.s b/src/crent370/clib/@@vsupdt.s deleted file mode 100644 index 18cd601..0000000 --- a/src/crent370/clib/@@vsupdt.s +++ /dev/null @@ -1,64 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@vsupdt.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__vsupdt' prologue -* frame base=88, local stack=72, call args=0 -&FUNC SETC '__vsupdt' -@@VSUPDT PDPPRLG CINDEX=0,FRAME=160,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__vsupdt' code - L 5,4(11) ==> rec - L 4,8(11) ==> reclen - LA 6,88(,13) - LA 7,64(0,0) - SLR 2,2 - LR 3,2 - MVCL 6,2 - MVC 152(4,13),=F'0' ==> rc - L 3,0(11) ==> vs - A 3,=F'104' - LA 2,88(,13) - MODCB RPL=(3),RECLEN=(4),AREALEN=(4),AREA=(5),MF=(G,(2)) ==> reclen,rec - LA 2,PUTDONE - PUT RPL=(3) -PUTDONE DS 0H - ST 15,152(13) ==> rc -@@L2 EQU * - L 15,152(13) ==> rc -* Function '__vsupdt' epilogue - PDPEPIL -* Function '__vsupdt' literal pool - DS 0D - LTORG -* Function '__vsupdt' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@vswrit.c b/src/crent370/clib/@@vswrit.c deleted file mode 100644 index 8fa0078..0000000 --- a/src/crent370/clib/@@vswrit.c +++ /dev/null @@ -1,56 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" - -static int restore(VSFILE *vs); - -int -__vswrit(VSFILE *vs, void *rec, int reclen, void *key, int keylen) -{ - unsigned pl[16] = {0}; - volatile int rc = 0; - - /* modify common RPL parameters */ - __vsmdfy(vs, rec, reclen, key, keylen); - - vs->flags |= VSFILE_FLAG_WRITE; - - if (vs->mode==VSMODE_UPD) { - /* turn off UPD for record insertion */ - __asm__("MODCB RPL=(%0),OPTCD=(NUP),MF=(G,(%1))" - : : "r"(&vs->rpl), "r"(pl) : "1", "14", "15"); - /* SYNAD exit will call our restore function on error */ - vs->vsreset = restore; - } - - /* get record from VSAM dataset */ - __asm__("LA\t2,PUTDONE\n\t" - "PUT\tRPL=(%0)\n" - "PUTDONE\tDS\t0H\n\t" - "ST\t15,%1" - : : "r"(&vs->rpl), "m"(rc) : "1", "2", "14", "15"); - - if (vs->mode==VSMODE_UPD && vs->vsreset) { - /* restore UPD in RPL */ - restore(vs); - } - -quit: - return rc; -} - -static int -restore(VSFILE *vs) -{ - unsigned pl[16] = {0}; - - __asm__("MODCB RPL=(%0),OPTCD=(UPD),MF=(G,(%1))" - : : "r"(&vs->rpl), "r"(pl) : "1", "14", "15"); - - vs->vsreset = 0; - - return 0; -} diff --git a/src/crent370/clib/@@vswrit.o b/src/crent370/clib/@@vswrit.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@vswrit.s b/src/crent370/clib/@@vswrit.s deleted file mode 100644 index a0e1f88..0000000 --- a/src/crent370/clib/@@vswrit.s +++ /dev/null @@ -1,123 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@vswrit.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__vswrit' prologue -* frame base=88, local stack=72, call args=24 -&FUNC SETC '__vswrit' -@@VSWRIT PDPPRLG CINDEX=0,FRAME=184,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__vswrit' code - L 6,0(11) ==> vs - LA 4,112(,13) - LA 5,64(0,0) - SLR 2,2 - LR 3,2 - MVCL 4,2 - MVC 176(4,13),=F'0' ==> rc - ST 6,88(13) ==> vs - MVC 92(4,13),4(11) ==> rec - MVC 96(4,13),8(11) ==> reclen - MVC 100(4,13),12(11) ==> key - MVC 104(4,13),16(11) ==> keylen - LA 1,88(,13) - L 15,=V(@@VSMDFY) - BALR 14,15 - OI 17(6),32 ==> .flags - CLI 23(6),2 ==> .mode - BNE @@L2 - LR 3,6 ==> vs - A 3,=F'104' - LA 2,112(,13) - MODCB RPL=(3),OPTCD=(NUP),MF=(G,(2)) - MVC 188(4,6),=A(@@2) ==> .vsreset -@@L2 EQU * - LR 3,6 ==> vs - A 3,=F'104' - LA 2,PUTDONE - PUT RPL=(3) -PUTDONE DS 0H - ST 15,176(13) ==> rc - CLI 23(6),2 ==> .mode - BNE @@L4 - L 2,188(6) ==> .vsreset - LTR 2,2 - BE @@L4 - ST 6,88(13) ==> vs - LA 1,88(,13) - L 15,=A(@@2) - BALR 14,15 -@@L4 EQU * - L 15,176(13) ==> rc -* Function '__vswrit' epilogue - PDPEPIL -* Function '__vswrit' literal pool - DS 0D - LTORG -* Function '__vswrit' page table -@@PGT0 DS 0F - DC A(@@PG0) - DS 0F - EJECT -* static function 'restore' prologue -* frame base=88, local stack=64, call args=0 -&FUNC SETC 'restore' -@@2 PDPPRLG CINDEX=1,FRAME=152,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'restore' code - L 4,0(11) ==> vs - LA 6,88(,13) - LA 7,64(0,0) - SLR 2,2 - LR 3,2 - MVCL 6,2 - LR 3,4 ==> vs - A 3,=F'104' - LA 2,88(,13) - MODCB RPL=(3),OPTCD=(UPD),MF=(G,(2)) - MVC 188(4,4),=F'0' ==> .vsreset - SLR 15,15 -* Function 'restore' epilogue - PDPEPIL -* Function 'restore' literal pool - DS 0D - LTORG -* Function 'restore' page table -@@PGT1 DS 0F - DC A(@@PG1) - END diff --git a/src/crent370/clib/@@vsxeof.c b/src/crent370/clib/@@vsxeof.c deleted file mode 100644 index d31fdfb..0000000 --- a/src/crent370/clib/@@vsxeof.c +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" - -/* This is the VSAM EOD handler */ -int -__vsxeof(RPL *rpl, int code) -{ - VSFILE *vs = (VSFILE*)((char*)rpl - offsetof(VSFILE,rpl)); - - vs->flags |= VSFILE_FLAG_EOF; - - return code; -} diff --git a/src/crent370/clib/@@vsxeof.o b/src/crent370/clib/@@vsxeof.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@vsxeof.s b/src/crent370/clib/@@vsxeof.s deleted file mode 100644 index 14cadcd..0000000 --- a/src/crent370/clib/@@vsxeof.s +++ /dev/null @@ -1,50 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@vsxeof.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__vsxeof' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__vsxeof' -@@VSXEOF PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__vsxeof' code - L 2,0(11) ==> vs,rpl - A 2,=F'-104' ==> vs - OI 17(2),1 ==> .flags - L 15,4(11) ==> code -* Function '__vsxeof' epilogue - PDPEPIL -* Function '__vsxeof' literal pool - DS 0D - LTORG -* Function '__vsxeof' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@vsxerr.c b/src/crent370/clib/@@vsxerr.c deleted file mode 100644 index 348ae4d..0000000 --- a/src/crent370/clib/@@vsxerr.c +++ /dev/null @@ -1,35 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" - -/* This is the VSAM common error handler for LERAD and SYNAD errors */ -int -__vsxerr(RPL *rpl, int code) -{ - VSFILE *vs = (VSFILE*)((char*)rpl - offsetof(VSFILE,rpl)); - unsigned pl[16] = {0}; - unsigned char fdbk[4] = {0}; - int (*reset)(VSFILE *); - - vs->flags |= VSFILE_FLAG_ERROR; - - __asm__("SHOWCB RPL=(%0),FIELDS=FDBK,AREA=(%1),LENGTH=4,MF=(G,(%2))" - : : "r"(rpl), "r"(fdbk), "r"(pl) : "1", "14", "15" ); - - vs->rc = fdbk[1]; - vs->component = fdbk[2]; - vs->rsn = fdbk[3]; - - if (vs->vsreset) { - if ((vs->flags & VSFILE_FLAG_STARTGE) || - (vs->flags & VSFILE_FLAG_WRITE)) { - reset = vs->vsreset; - reset(vs); - } - } - - return code; -} diff --git a/src/crent370/clib/@@vsxerr.o b/src/crent370/clib/@@vsxerr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@vsxerr.s b/src/crent370/clib/@@vsxerr.s deleted file mode 100644 index 1ad93ae..0000000 --- a/src/crent370/clib/@@vsxerr.s +++ /dev/null @@ -1,75 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@vsxerr.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__vsxerr' prologue -* frame base=88, local stack=72, call args=8 -&FUNC SETC '__vsxerr' -@@VSXERR PDPPRLG CINDEX=0,FRAME=168,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__vsxerr' code - L 4,0(11) ==> rpl - LR 5,4 ==> vs,rpl - A 5,=F'-104' ==> vs - LA 6,96(,13) - LA 7,64(0,0) - SLR 2,2 - LR 3,2 - MVCL 6,2 - MVC 160(4,13),=F'0' - OI 17(5),2 ==> .flags - LA 3,96(,13) - LA 2,160(,13) - SHOWCB RPL=(4),FIELDS=FDBK,AREA=(2),LENGTH=4,MF=(G,(3)) ==> rpl - MVC 18(1,5),161(13) ==> .rc,fdbk - MVC 20(1,5),162(13) ==> .component,fdbk - MVC 19(1,5),163(13) ==> .rsn,fdbk - L 3,188(5) ==> .vsreset - LTR 3,3 - BE @@L2 - L 2,16(5) - N 2,=F'6291456' - LTR 2,2 - BE @@L2 - ST 5,88(13) ==> vs - LA 1,88(,13) - LA 15,0(3) - BALR 14,15 -@@L2 EQU * - L 15,4(11) ==> code -* Function '__vsxerr' epilogue - PDPEPIL -* Function '__vsxerr' literal pool - DS 0D - LTORG -* Function '__vsxerr' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@wsaget.c b/src/crent370/clib/@@wsaget.c deleted file mode 100644 index 8fbe3c4..0000000 --- a/src/crent370/clib/@@wsaget.c +++ /dev/null @@ -1,50 +0,0 @@ -#define CLIB_C -#include -#include -#include "clib.h" -#include "clibary.h" -#include "cliblock.h" - -void * -__wsaget(void *key, unsigned len) -{ - CLIBGRT *grt = __grtget(); - CLIBWSA *wsa = 0; - unsigned size = sizeof(CLIBWSA) + len; - unsigned count; - - lock(&grt->grtwsa,0); - count = arraycount(&grt->grtwsa); - while(count > 0) { - count--; - wsa = grt->grtwsa[count]; - if (!wsa) continue; - if (wsa->wsakey == key && wsa->wsasize == size) break; - wsa = 0; - } - - if (!wsa) { - wsa = calloc(1, size); - if (wsa) { - strcpy(wsa->wsaeye, CLIBWSA_EYE); - wsa->wsakey = key; - wsa->wsasize = size; - if ((unsigned)key > 0x00002000 && (unsigned)key < 0xFF000000) { - /* key *should* be an initializer structure pointer */ - memcpy(wsa->wsastart, key, len); - } - if (arrayadd(&grt->grtwsa, wsa)) { - /* failed, likely out of memory */ - wtof("__wsaget() error adding new writable static area"); - free(wsa); - wsa = 0; - } - } - else { - wtof("__wsaget() out of memory for requested size %u bytes", size); - } - } - unlock(&grt->grtwsa,0); - - return (void*)(wsa ? wsa->wsastart : 0); -} diff --git a/src/crent370/clib/@@wsaget.o b/src/crent370/clib/@@wsaget.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@wsaget.s b/src/crent370/clib/@@wsaget.s deleted file mode 100644 index 6e6270f..0000000 --- a/src/crent370/clib/@@wsaget.s +++ /dev/null @@ -1,169 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@wsaget.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__wsaget' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC '__wsaget' -@@WSAGET PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__wsaget' code - L 5,0(11) ==> key - L 8,4(11) ==> len - LA 1,88(,13) - L 15,=V(@@GRTGET) - BALR 14,15 - LR 6,15 ==> grt - SLR 3,3 ==> wsa - LR 7,8 ==> size,len - A 7,=F'16' ==> size - LR 2,15 ==> grt - A 2,=F'68' - ST 2,88(13) - ST 3,92(13) ==> wsa - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LTR 15,15 ==> count - BE @@L3 - L 4,68(6) ==> .grtwsa -@@L7 EQU * - BCTR 15,0 ==> count - LR 2,15 ==> count - MH 2,=H'4' - L 3,0(2,4) ==> wsa - LTR 3,3 ==> wsa - BE @@L2 - L 2,8(3) ==> .wsakey - CLR 2,5 ==> key - BNE @@L6 - L 2,12(3) ==> .wsasize - CLR 2,7 ==> size - BE @@L3 -@@L6 EQU * - SLR 3,3 ==> wsa -@@L2 EQU * - LTR 15,15 ==> count - BNE @@L7 -@@L3 EQU * - LTR 3,3 ==> wsa - BNE @@L8 - MVC 88(4,13),=F'1' - ST 7,92(13) ==> size - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 3,15 ==> wsa - LTR 15,15 ==> wsa - BE @@L9 - ST 15,88(13) ==> wsa - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - ST 5,8(3) ==> key,wsakey - ST 7,12(3) ==> size,wsasize - L 2,=F'8192' - CLR 5,2 ==> key - BNH @@L10 - L 2,=F'-16777217' - CLR 5,2 ==> key - BH @@L10 - LR 2,3 ==> wsa - A 2,=F'16' - ST 2,88(13) - ST 5,92(13) ==> key - ST 8,96(13) ==> len - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 -@@L10 EQU * - LR 2,6 ==> grt - A 2,=F'68' - ST 2,88(13) - ST 3,92(13) ==> wsa - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LTR 15,15 ==> grt - BE @@L8 - MVC 88(4,13),=A(@@LC1) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - ST 3,88(13) ==> wsa - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - SLR 3,3 ==> wsa - B @@L8 -@@L9 EQU * - MVC 88(4,13),=A(@@LC2) - ST 7,92(13) ==> size - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L8 EQU * - LR 2,6 ==> grt - A 2,=F'68' - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,3 ==> grt,wsa - A 15,=F'16' ==> grt - LTR 3,3 ==> wsa - BNE @@L14 - SLR 15,15 ==> grt -@@L14 EQU * -* Function '__wsaget' epilogue - PDPEPIL -* Function '__wsaget' literal pool - DS 0D - LTORG -* Function '__wsaget' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'CLIBWSA ' - DC X'0' -@@LC1 EQU * - DC C'__wsaget() error adding new writable static area' - DC X'0' -@@LC2 EQU * - DC C'__wsaget() out of memory for requested size %u b' - DC C'ytes' - DC X'0' - END diff --git a/src/crent370/clib/@@wtotb.c b/src/crent370/clib/@@wtotb.c deleted file mode 100644 index 4330dd6..0000000 --- a/src/crent370/clib/@@wtotb.c +++ /dev/null @@ -1,62 +0,0 @@ -#include -#include -#include - -static void try_traceback(SAVEAREA *sa); - -__asm__("\n&FUNC SETC 'wto_traceback'"); -void wto_traceback(SAVEAREA *sa) -{ - try(try_traceback, sa); -} - -__asm__("\n&FUNC SETC 'try_traceback'"); -static void try_traceback(SAVEAREA *sa) -{ - CLIBCRT *crt = __crtget(); - SAVEAREA *prev; - SAVEAREA *next; - unsigned offset; - unsigned retto; - unsigned frame; - int i; - void *thisep; - void *prevep; - char thisname[256]; - char prevname[256]; - - if (!sa) { - /* caller didn't provide a save area to start at */ - sa = sa_prev(0); /* this save area has "try_traceback" ep in R15 */ -#if 1 - sa = sa_prev(sa); /* this save area has "call" ep in R15 */ - sa = sa_prev(sa); /* this save area has "@@@TRY" ep in R15 */ - sa = sa_prev(sa); /* this save area has "wto_traceback" ep in R15 */ -#endif - } - - wtof("Save area trace back"); - - for(i=0, prev = (SAVEAREA*) sa->prev;i < 256 && sa != (SAVEAREA*)crt->crtsave; i++, sa = prev, prev = (SAVEAREA*) sa->prev) { - next = sa_next(sa); - prevep = (void*) prev->r15; - sa_get_epname(prev, prevname); - thisep = (void*) sa->r15; - sa_get_epname(sa, thisname); - frame = (unsigned)next->nab - (unsigned)next; - - retto = (sa->r14 & 0x0FFFFFFF); /* strip out BALR bits in R14 */ - offset = retto - prev->r15; - wtof(" \"%s\" ep=%06X frame=%u bytes", thisname, thisep, frame); - wtof(" returns to=%06X \"%s\" ep=%06X+%X", retto, prevname, prevep, offset); - } -} - -#if 0 -int main(int argc, char **argv) -{ - wto_traceback(0); - - return 0; -} -#endif diff --git a/src/crent370/clib/@@wtotb.o b/src/crent370/clib/@@wtotb.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@wtotb.s b/src/crent370/clib/@@wtotb.s deleted file mode 100644 index b0e01a2..0000000 --- a/src/crent370/clib/@@wtotb.s +++ /dev/null @@ -1,239 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@wtotb.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'wto_traceback' -* Program text area - DS 0F - EJECT -* external function 'wto_traceback' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'wto_traceback' -@@WTOTB PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'wto_traceback' code - MVC 88(4,13),=A(@@6) - MVC 92(4,13),0(11) ==> sa - LA 1,88(,13) - L 15,=V(@@@TRY) - BALR 14,15 -* Function 'wto_traceback' epilogue - PDPEPIL -* Function 'wto_traceback' literal pool - DS 0D - LTORG -* Function 'wto_traceback' page table -@@PGT0 DS 0F - DC A(@@PG0) - -&FUNC SETC 'try_traceback' - DS 0F - EJECT -* static function 'try_traceback' prologue -* frame base=88, local stack=544, call args=24 -&FUNC SETC 'try_traceback' -@@6 PDPPRLG CINDEX=1,FRAME=656,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'try_traceback' code - L 5,0(11) ==> sa - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - ST 15,644(13) ==> crt - LTR 5,5 ==> sa - BNE @@L3 - ST 13,624(13) return save area address - L 2,624(13) ==> sa - L 5,4(2) ==> sa,prev - LR 2,5 ==> sa - LTR 5,5 ==> sa - BNE @@L7 - ST 13,628(13) return save area address - L 2,628(13) ==> sa -@@L7 EQU * - L 5,4(2) ==> sa,prev - LR 2,5 ==> sa - LTR 5,5 ==> sa - BNE @@L10 - ST 13,632(13) return save area address - L 2,632(13) ==> sa -@@L10 EQU * - L 5,4(2) ==> sa,prev - LR 2,5 ==> sa - LTR 5,5 ==> sa - BNE @@L13 - ST 13,636(13) return save area address - L 2,636(13) ==> sa -@@L13 EQU * - L 5,4(2) ==> sa,prev -@@L3 EQU * - MVC 88(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 648(4,13),=F'0' ==> i - L 8,4(5) ==> prev,prev - L 2,644(13) ==> crt - CL 5,12(2) ==> sa,crtsave - BE @@L2 -@@L30 EQU * - LR 2,5 ==> sa - LTR 5,5 ==> sa - BNE @@L21 - ST 13,640(13) return save area address - L 2,640(13) ==> sa -@@L21 EQU * - L 9,8(2) ==> next,next - L 7,16(8) ==> prevep,r15 - LA 4,368(,13) ==> epname - LR 2,7 ==> ep,prevep - MVI 0(4),0 ==> epname - CLI 0(7),71 ==> prevep - BNE @@L24 - CLI 1(7),240 - BNE @@L24 - LR 3,7 ==> p,prevep - A 3,=F'4' ==> p - ST 4,88(13) ==> epname - A 2,=F'5' - ST 2,92(13) - SLR 2,2 - IC 2,0(3) ==> p - ST 2,96(13) - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - SLR 2,2 - IC 2,0(3) ==> p - SLR 3,3 - STC 3,0(2,4) - B @@L26 -@@L24 EQU * - ST 4,88(13) ==> epname - MVC 92(4,13),=A(@@LC1) - ST 2,96(13) ==> ep - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 -@@L26 EQU * - L 6,16(5) ==> thisep,r15 - LA 4,112(,13) ==> epname - LR 2,6 ==> ep,thisep - MVI 0(4),0 ==> epname - CLI 0(6),71 ==> thisep - BNE @@L27 - CLI 1(6),240 - BNE @@L27 - LR 3,6 ==> p,thisep - A 3,=F'4' ==> p - ST 4,88(13) ==> epname - A 2,=F'5' - ST 2,92(13) - SLR 2,2 - IC 2,0(3) ==> p - ST 2,96(13) - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - SLR 2,2 - IC 2,0(3) ==> p - SLR 3,3 - STC 3,0(2,4) - B @@L29 -@@L27 EQU * - ST 4,88(13) ==> epname - MVC 92(4,13),=A(@@LC1) - ST 2,96(13) ==> ep - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 -@@L29 EQU * - L 4,76(9) ==> frame,nab - SR 4,9 ==> frame,next - L 3,12(5) ==> retto,r14 - N 3,=F'268435455' ==> retto - LR 5,3 ==> offset,retto - S 5,16(8) ==> offset,r15 - MVC 88(4,13),=A(@@LC2) - LA 2,112(,13) - ST 2,92(13) - ST 6,96(13) ==> thisep - ST 4,100(13) ==> frame - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC3) - ST 3,92(13) ==> retto - LA 2,368(,13) - ST 2,96(13) - ST 7,100(13) ==> prevep - ST 5,104(13) ==> offset - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - L 2,648(13) ==> i - A 2,=F'1' - ST 2,648(13) ==> i - LR 5,8 ==> sa,prev - L 8,4(8) ==> prev,prev - LA 3,255(0,0) - CR 2,3 - BH @@L2 - L 2,644(13) ==> crt - CL 5,12(2) ==> sa,crtsave - BNE @@L30 -@@L2 EQU * -* Function 'try_traceback' epilogue - PDPEPIL -* Function 'try_traceback' literal pool - DS 0D - LTORG -* Function 'try_traceback' page table -@@PGT1 DS 0F - DC A(@@PG1) -@@LC0 EQU * - DC C'Save area trace back' - DC X'0' -@@LC1 EQU * - DC C'%08X (unknown)' - DC X'0' -@@LC2 EQU * - DC C' "%s" ep=%06X frame=%u bytes' - DC X'0' -@@LC3 EQU * - DC C' returns to=%06X "%s" ep=%06X+%X' - DC X'0' - END diff --git a/src/crent370/clib/@@xmpost.c b/src/crent370/clib/@@xmpost.c deleted file mode 100644 index 1840094..0000000 --- a/src/crent370/clib/@@xmpost.c +++ /dev/null @@ -1,39 +0,0 @@ -#include -#include - -/* __xmpost() POST ECB with postcode in address space for ascb */ -void __xmpost(void *ascb, void *ecb, unsigned postcode) -{ - if (!ascb) { - wtof("%s missing ASCB", __func__); - return; - } - if (!ecb) { - wtof("%s missing ECB", __func__); - return; - } - ecb = (void*)((unsigned)ecb | 0x80000000); /* need hi bit on */ - postcode = (postcode | 0x40000000) & 0x7FFFFFFF; - -__asm__( "DS 0H\n" -" STM 14,12,12(13) save registers\n" -" LR 9,13 only register preserved after XM POST\n" -" LR 10,%2 POST COMPLETION CODE\n" -" LR 11,%1 ECB ADDRESS\n" -" LA 12,POSTERR ERROR ROUTINE\n" -" LR 13,%0 ASCB ADDRESS\n" -" L 15,CVTPTR CVT ADDRESS\n" -" L 15,CVT0PT01-CVTMAP(,15) POST BRANCH-ENTRY\n" -" BALR 14,15\n" -" LR 13,9 restore save area pointer\n" -" LM 14,12,12(13) restore registers\n" -" B DONE\n" -"POSTERR DS 0H\n" -" BR 14\n" -"DONE DS 0H" : : "r"(ascb), "r"(ecb), "r"(postcode) ); - - -} - -__asm__("IHAPSA ,"); -__asm__("CVT DSECT=YES,LIST=YES"); diff --git a/src/crent370/clib/@@xmpost.o b/src/crent370/clib/@@xmpost.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@xmpost.s b/src/crent370/clib/@@xmpost.s deleted file mode 100644 index 4808482..0000000 --- a/src/crent370/clib/@@xmpost.s +++ /dev/null @@ -1,95 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@xmpost.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@6 EQU * - DC C'__xmpost' - DC X'0' - DS 0F - EJECT -* external function '__xmpost' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC '__xmpost' -@@XMPOST PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__xmpost' code - L 3,0(11) ==> ascb - L 2,4(11) ==> ecb - L 15,8(11) ==> postcode - LTR 3,3 ==> ascb - BNE @@L2 - MVC 88(4,13),=A(@@LC0) - B @@L4 -@@L2 EQU * - LTR 2,2 ==> ecb - BNE @@L3 - MVC 88(4,13),=A(@@LC1) -@@L4 EQU * - MVC 92(4,13),=A(@@6) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - B @@L1 -@@L3 EQU * - O 2,=F'-2147483648' ==> ecb - O 15,=F'1073741824' ==> postcode - N 15,=F'2147483647' ==> postcode - DS 0H - STM 14,12,12(13) save registers - LR 9,13 only register preserved after XM POST - LR 10,15 POST COMPLETION CODE ==> postcode - LR 11,2 ECB ADDRESS ==> ecb - LA 12,POSTERR ERROR ROUTINE - LR 13,3 ASCB ADDRESS ==> ascb - L 15,CVTPTR CVT ADDRESS - L 15,CVT0PT01-CVTMAP(,15) POST BRANCH-ENTRY - BALR 14,15 - LR 13,9 restore save area pointer - LM 14,12,12(13) restore registers - B DONE -POSTERR DS 0H - BR 14 -DONE DS 0H -@@L1 EQU * -* Function '__xmpost' epilogue - PDPEPIL -* Function '__xmpost' literal pool - DS 0D - LTORG -* Function '__xmpost' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s missing ASCB' - DC X'0' -@@LC1 EQU * - DC C'%s missing ECB' - DC X'0' - IHAPSA , - CVT DSECT=YES,LIST=YES - END diff --git a/src/crent370/clib/@@ymdts.c b/src/crent370/clib/@@ymdts.c deleted file mode 100644 index d6a1fea..0000000 --- a/src/crent370/clib/@@ymdts.c +++ /dev/null @@ -1,39 +0,0 @@ -/* @@YMDTS.C */ -#include "time.h" -#include "stdarg.h" -#include "stdio.h" -#include "stddef.h" -#include "mvssupa.h" - -/* scalar date routines -- public domain by Ray Gardner -** These will work over the range 1-01-01 thru 14699-12-31 -** The functions written by Ray are isleap, months_to_days, -** years_to_days, ymd_to_scalar, scalar_to_ymd. -** modified slightly by Paul Edwards -*/ - -extern int __isleap(unsigned yr); -extern unsigned __mtd(unsigned month); -extern long __ytd(unsigned yr); -extern long __ymdts(unsigned yr, unsigned mo, unsigned day); -extern void __stymd(long scalar, - unsigned *pyr, unsigned *pmo, unsigned *pday); - -#define isleap(y) __isleap(y) -#define months_to_days(m) __mtd(m) -#define years_to_days(y) __ytd(y) -#define ymd_to_scalar(y,m,d) __ymdts((y),(m),(d)) -#define scalar_to_ymd(s,y,m,d) __stymd((s),(y),(m),(d)) - -long -__ymdts(unsigned yr, unsigned mo, unsigned day) -{ - long scalar; - - scalar = day + months_to_days(mo); - if ( mo > 2 ) /* adjust if past February */ - scalar -= isleap(yr) ? 1 : 2; - yr--; - scalar += years_to_days(yr); - return (scalar); -} diff --git a/src/crent370/clib/@@ymdts.o b/src/crent370/clib/@@ymdts.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ymdts.s b/src/crent370/clib/@@ymdts.s deleted file mode 100644 index 9e493ad..0000000 --- a/src/crent370/clib/@@ymdts.s +++ /dev/null @@ -1,75 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ymdts.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__ymdts' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC '__ymdts' -@@YMDTS PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__ymdts' code - L 4,0(11) ==> yr - L 2,4(11) ==> mo - ST 2,88(13) ==> mo - LA 1,88(,13) - L 15,=V(@@MTD) - BALR 14,15 - L 3,8(11) ==> scalar,day - AR 3,15 ==> scalar - LA 5,2(0,0) - CLR 2,5 ==> mo - BNH @@L2 - ST 4,88(13) ==> yr - LA 1,88(,13) - L 15,=V(@@ISLEAP) - BALR 14,15 - LTR 15,15 ==> scalar - BE @@L3 - BCTR 3,0 ==> scalar - B @@L2 -@@L3 EQU * - A 3,=F'-2' ==> scalar -@@L2 EQU * - BCTR 4,0 ==> yr - ST 4,88(13) ==> yr - LA 1,88(,13) - L 15,=V(@@YTD) - BALR 14,15 - AR 3,15 ==> scalar - LR 15,3 ==> scalar -* Function '__ymdts' epilogue - PDPEPIL -* Function '__ymdts' literal pool - DS 0D - LTORG -* Function '__ymdts' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@@ytd.c b/src/crent370/clib/@@ytd.c deleted file mode 100644 index 6742c0b..0000000 --- a/src/crent370/clib/@@ytd.c +++ /dev/null @@ -1,32 +0,0 @@ -/* @@YTD.C */ -#include "time.h" -#include "stdarg.h" -#include "stdio.h" -#include "stddef.h" -#include "mvssupa.h" - -/* scalar date routines -- public domain by Ray Gardner -** These will work over the range 1-01-01 thru 14699-12-31 -** The functions written by Ray are isleap, months_to_days, -** years_to_days, ymd_to_scalar, scalar_to_ymd. -** modified slightly by Paul Edwards -*/ - -extern int __isleap(unsigned yr); -extern unsigned __mtd(unsigned month); -extern long __ytd(unsigned yr); -extern long __ymdts(unsigned yr, unsigned mo, unsigned day); -extern void __stymd(long scalar, - unsigned *pyr, unsigned *pmo, unsigned *pday); - -#define isleap(y) __isleap(y) -#define months_to_days(m) __mtd(m) -#define years_to_days(y) __ytd(y) -#define ymd_to_scalar(y,m,d) __ymdts((y),(m),(d)) -#define scalar_to_ymd(s,y,m,d) __stymd((s),(y),(m),(d)) - -long -__ytd(unsigned yr) -{ - return yr * 365L + yr / 4 - yr / 100 + yr / 400; -} diff --git a/src/crent370/clib/@@ytd.o b/src/crent370/clib/@@ytd.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@@ytd.s b/src/crent370/clib/@@ytd.s deleted file mode 100644 index 12077f4..0000000 --- a/src/crent370/clib/@@ytd.s +++ /dev/null @@ -1,66 +0,0 @@ - TITLE '/home/projects/crent370/clib/@@ytd.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function '__ytd' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC '__ytd' -@@YTD PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function '__ytd' code - SLR 2,2 ==> yr - SLR 3,3 ==> yr - LR 4,2 ==> yr - LR 5,3 ==> yr - L 7,0(11) ==> yr - LR 15,7 ==> yr - MH 15,=H'365' - LR 6,7 ==> yr - SRL 6,2 - AR 15,6 - LR 2,7 ==> yr - SRDL 2,32 ==> yr - LA 6,100(0,0) - DR 2,6 ==> yr - SR 15,3 ==> yr - LR 4,7 ==> yr - SRDL 4,32 ==> yr - LA 2,400(0,0) - DR 4,2 ==> yr - AR 15,5 ==> yr -* Function '__ytd' epilogue - PDPEPIL -* Function '__ytd' literal pool - DS 0D - LTORG -* Function '__ytd' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/@dbleps.c b/src/crent370/clib/@dbleps.c deleted file mode 100644 index ac62c91..0000000 --- a/src/crent370/clib/@dbleps.c +++ /dev/null @@ -1,4 +0,0 @@ -/* @DBLEPS.C */ -#include - -_HexFloat _DblEps = {{0x3410 ,0x0000 ,0x0000 ,0x0000}}; diff --git a/src/crent370/clib/@dbleps.o b/src/crent370/clib/@dbleps.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@dbleps.s b/src/crent370/clib/@dbleps.s deleted file mode 100644 index 89e48a2..0000000 --- a/src/crent370/clib/@dbleps.s +++ /dev/null @@ -1,30 +0,0 @@ - TITLE '/home/projects/crent370/clib/@dbleps.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* X-var _DblEps - ENTRY @DBLEPS -* Program data area - DS 0F -@DBLEPS EQU * - DC X'3410' - DC X'0000' - DC X'0000' - DC X'0000' - END diff --git a/src/crent370/clib/@dblmax.c b/src/crent370/clib/@dblmax.c deleted file mode 100644 index 8ce341a..0000000 --- a/src/crent370/clib/@dblmax.c +++ /dev/null @@ -1,4 +0,0 @@ -/* @DBLMAX.C */ -#include - -_HexFloat _DblMax = {{0x7fff ,0xffff ,0xffff ,0xffff}}; diff --git a/src/crent370/clib/@dblmax.o b/src/crent370/clib/@dblmax.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@dblmax.s b/src/crent370/clib/@dblmax.s deleted file mode 100644 index 7001e5f..0000000 --- a/src/crent370/clib/@dblmax.s +++ /dev/null @@ -1,30 +0,0 @@ - TITLE '/home/projects/crent370/clib/@dblmax.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* X-var _DblMax - ENTRY @DBLMAX -* Program data area - DS 0F -@DBLMAX EQU * - DC X'7FFF' - DC X'FFFF' - DC X'FFFF' - DC X'FFFF' - END diff --git a/src/crent370/clib/@dblmin.c b/src/crent370/clib/@dblmin.c deleted file mode 100644 index 91b40c0..0000000 --- a/src/crent370/clib/@dblmin.c +++ /dev/null @@ -1,4 +0,0 @@ -/* @DBLMIN.C */ -#include - -_HexFloat _DblMin = {{0x0010 ,0x0000 ,0x0000 ,0x0000}}; diff --git a/src/crent370/clib/@dblmin.o b/src/crent370/clib/@dblmin.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@dblmin.s b/src/crent370/clib/@dblmin.s deleted file mode 100644 index c43921f..0000000 --- a/src/crent370/clib/@dblmin.s +++ /dev/null @@ -1,30 +0,0 @@ - TITLE '/home/projects/crent370/clib/@dblmin.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* X-var _DblMin - ENTRY @DBLMIN -* Program data area - DS 0F -@DBLMIN EQU * - DC X'0010' - DC X'0000' - DC X'0000' - DC X'0000' - END diff --git a/src/crent370/clib/@flteps.c b/src/crent370/clib/@flteps.c deleted file mode 100644 index 64e6a38..0000000 --- a/src/crent370/clib/@flteps.c +++ /dev/null @@ -1,4 +0,0 @@ -/* @FLTEPS.C */ -#include - -_HexFloat _FltEps = {{0x3C10 ,0x0000 ,0x0000 ,0x0000}}; diff --git a/src/crent370/clib/@flteps.o b/src/crent370/clib/@flteps.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@flteps.s b/src/crent370/clib/@flteps.s deleted file mode 100644 index bf20d0f..0000000 --- a/src/crent370/clib/@flteps.s +++ /dev/null @@ -1,30 +0,0 @@ - TITLE '/home/projects/crent370/clib/@flteps.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* X-var _FltEps - ENTRY @FLTEPS -* Program data area - DS 0F -@FLTEPS EQU * - DC X'3C10' - DC X'0000' - DC X'0000' - DC X'0000' - END diff --git a/src/crent370/clib/@fltmax.c b/src/crent370/clib/@fltmax.c deleted file mode 100644 index e26b3fd..0000000 --- a/src/crent370/clib/@fltmax.c +++ /dev/null @@ -1,4 +0,0 @@ -/* @FLTMAX.C */ -#include - -_HexFloat _FltMax = {{0x7fff, 0xffff ,0xffff ,0xffff}}; diff --git a/src/crent370/clib/@fltmax.o b/src/crent370/clib/@fltmax.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@fltmax.s b/src/crent370/clib/@fltmax.s deleted file mode 100644 index 8467e8c..0000000 --- a/src/crent370/clib/@fltmax.s +++ /dev/null @@ -1,30 +0,0 @@ - TITLE '/home/projects/crent370/clib/@fltmax.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* X-var _FltMax - ENTRY @FLTMAX -* Program data area - DS 0F -@FLTMAX EQU * - DC X'7FFF' - DC X'FFFF' - DC X'FFFF' - DC X'FFFF' - END diff --git a/src/crent370/clib/@fltmin.c b/src/crent370/clib/@fltmin.c deleted file mode 100644 index f46fb8c..0000000 --- a/src/crent370/clib/@fltmin.c +++ /dev/null @@ -1,4 +0,0 @@ -/* @FLTMIN.C */ -#include - -_HexFloat _FltMin = {{0x0010, 0x0000 ,0x0000 ,0x0000}}; diff --git a/src/crent370/clib/@fltmin.o b/src/crent370/clib/@fltmin.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/@fltmin.s b/src/crent370/clib/@fltmin.s deleted file mode 100644 index f725bcf..0000000 --- a/src/crent370/clib/@fltmin.s +++ /dev/null @@ -1,30 +0,0 @@ - TITLE '/home/projects/crent370/clib/@fltmin.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* X-var _FltMin - ENTRY @FLTMIN -* Program data area - DS 0F -@FLTMIN EQU * - DC X'0010' - DC X'0000' - DC X'0000' - DC X'0000' - END diff --git a/src/crent370/clib/abort.c b/src/crent370/clib/abort.c deleted file mode 100644 index 0663500..0000000 --- a/src/crent370/clib/abort.c +++ /dev/null @@ -1,11 +0,0 @@ -/* ABORT.C */ -#define STDLIB_C -#include -#include -#include - -__PDPCLIB_API__ void abort(void) -{ - raise(SIGABRT); - exit(EXIT_FAILURE); -} diff --git a/src/crent370/clib/abort.o b/src/crent370/clib/abort.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/abort.s b/src/crent370/clib/abort.s deleted file mode 100644 index e654084..0000000 --- a/src/crent370/clib/abort.s +++ /dev/null @@ -1,54 +0,0 @@ - TITLE '/home/projects/crent370/clib/abort.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'abort' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'abort' -ABORT PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'abort' code - MVC 88(4,13),=F'1' - LA 1,88(,13) - L 15,=V(RAISE) - BALR 14,15 - MVC 88(4,13),=F'12' - LA 1,88(,13) - L 15,=V(EXIT) - BALR 14,15 -* Function 'abort' epilogue - PDPEPIL -* Function 'abort' literal pool - DS 0D - LTORG -* Function 'abort' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/abs.c b/src/crent370/clib/abs.c deleted file mode 100644 index e227a32..0000000 --- a/src/crent370/clib/abs.c +++ /dev/null @@ -1,15 +0,0 @@ -/* ABS.C */ -#include -#include - -#ifdef abs -#undef abs -#endif -__PDPCLIB_API__ int abs(int j) -{ - if (j < 0) - { - j = -j; - } - return (j); -} diff --git a/src/crent370/clib/abs.o b/src/crent370/clib/abs.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/abs.s b/src/crent370/clib/abs.s deleted file mode 100644 index 7f04d89..0000000 --- a/src/crent370/clib/abs.s +++ /dev/null @@ -1,48 +0,0 @@ - TITLE '/home/projects/crent370/clib/abs.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'abs' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'abs' -ABS PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'abs' code - L 2,0(11) ==> j - LPR 15,2 ==> j -* Function 'abs' epilogue - PDPEPIL -* Function 'abs' literal pool - DS 0D - LTORG -* Function 'abs' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/acos.c b/src/crent370/clib/acos.c deleted file mode 100644 index 2c45587..0000000 --- a/src/crent370/clib/acos.c +++ /dev/null @@ -1,53 +0,0 @@ -/* ACOS.C */ -#if 1 -#include "math.h" -#include "float.h" -#include "errno.h" -#include "stddef.h" - -#if 0 -/* - - Some constants to make life easier elsewhere - (These should I guess be in math.h) - -*/ -static const double pi = 3.1415926535897932384626433832795; -static const double ln10 = 2.3025850929940456840179914546844; -static const double ln2 = 0.69314718055994530941723212145818 ; -#else -#define pi (3.1415926535897932384626433832795) -#define ln10 (2.3025850929940456840179914546844) -#define ln2 (0.69314718055994530941723212145818) -#endif - -#else -#include -#endif - -#ifdef acos -#undef acos -#endif -/* - - For cos just use (sin(x)**2 + cos(x)**2)=1 - Note:- asin(x) decides which taylor series - to use to ensure quickest convergence. - -*/ -__PDPCLIB_API__ double acos(double x) -{ - -/* -*/ - - if ( fabs(x) > 1.0 ) /* is argument out of range */ - { - errno=EDOM; - return (HUGE_VAL); - } - if ( x < 0.0 ) return ( pi - acos(-x) ) ; - - return ( asin ( sqrt(1.0 - x*x) ) ); - -} diff --git a/src/crent370/clib/acos.o b/src/crent370/clib/acos.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/acos.s b/src/crent370/clib/acos.s deleted file mode 100644 index 9bf386d..0000000 --- a/src/crent370/clib/acos.s +++ /dev/null @@ -1,90 +0,0 @@ - TITLE '/home/projects/crent370/clib/acos.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'acos' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'acos' -ACOS PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'acos' code - LM 2,3,0(11) ==> x - ST 2,88(13) ==> x - ST 3,4+88(13) ==> x - LA 1,88(,13) - L 15,=V(FABS) - BALR 14,15 - CD 0,=D'1.0E0' - BNH @@L2 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - MVC 0(4,15),=F'33' - LD 2,=D'9.99999999999999983034E72' - B @@L1 -@@L2 EQU * - STM 2,3,80(13) ==> x - LD 0,80(,13) - LTDR 0,0 - BNL @@L4 - LCDR 0,0 - STD 0,88(13) - LA 1,88(,13) - L 15,=A(ACOS) - BALR 14,15 - LD 2,=D'3.141592653589793116E0' - SDR 2,0 - B @@L1 -@@L4 EQU * - STM 2,3,80(13) ==> x - LD 0,80(,13) - MDR 0,0 - LD 2,=D'1.0E0' - SDR 2,0 - STD 2,88(13) - LA 1,88(,13) - L 15,=V(SQRT) - BALR 14,15 - STD 0,88(13) - LA 1,88(,13) - L 15,=V(ASIN) - BALR 14,15 - LDR 2,0 -@@L1 EQU * - LDR 0,2 -* Function 'acos' epilogue - PDPEPIL -* Function 'acos' literal pool - DS 0D - LTORG -* Function 'acos' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/asctime.c b/src/crent370/clib/asctime.c deleted file mode 100644 index 4ce3563..0000000 --- a/src/crent370/clib/asctime.c +++ /dev/null @@ -1,50 +0,0 @@ -/* ASCTIME.C */ -#include "time.h" -#include "stdarg.h" -#include "stdio.h" -#include "stddef.h" -#include "mvssupa.h" -#include "clibcrt.h" - -/* scalar date routines -- public domain by Ray Gardner -** These will work over the range 1-01-01 thru 14699-12-31 -** The functions written by Ray are isleap, months_to_days, -** years_to_days, ymd_to_scalar, scalar_to_ymd. -** modified slightly by Paul Edwards -*/ - -extern int __isleap(unsigned yr); -extern unsigned __mtd(unsigned month); -extern long __ytd(unsigned yr); -extern long __ymdts(unsigned yr, unsigned mo, unsigned day); -extern void __stymd(long scalar, - unsigned *pyr, unsigned *pmo, unsigned *pday); - -#define isleap(y) __isleap(y) -#define months_to_days(m) __mtd(m) -#define years_to_days(y) __ytd(y) -#define ymd_to_scalar(y,m,d) __ymdts((y),(m),(d)) -#define scalar_to_ymd(s,y,m,d) __stymd((s),(y),(m),(d)) - -static char static_ctime[28]; - -static const char wday_name[7][3] = { - "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" -}; -static const char mon_name[12][3] = { - "Jan", "Feb", "Mar", "Apr", "May", "Jun", - "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" -}; - -__PDPCLIB_API__ char *asctime(const struct tm *timeptr) -{ - CLIBCRT *crt = __crtget(); - char *buf = crt ? crt->crtctime : static_ctime; - - sprintf(buf, "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n", - wday_name[timeptr->tm_wday], mon_name[timeptr->tm_mon], - timeptr->tm_mday, timeptr->tm_hour, timeptr->tm_min, timeptr->tm_sec, - 1900 + timeptr->tm_year); - - return buf; -} diff --git a/src/crent370/clib/asctime.o b/src/crent370/clib/asctime.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/asctime.s b/src/crent370/clib/asctime.s deleted file mode 100644 index 272a986..0000000 --- a/src/crent370/clib/asctime.s +++ /dev/null @@ -1,107 +0,0 @@ - TITLE '/home/projects/crent370/clib/asctime.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@2 EQU * - DC C'Sun' - DC C'Mon' - DC C'Tue' - DC C'Wed' - DC C'Thu' - DC C'Fri' - DC C'Sat' -@@3 EQU * - DC C'Jan' - DC C'Feb' - DC C'Mar' - DC C'Apr' - DC C'May' - DC C'Jun' - DC C'Jul' - DC C'Aug' - DC C'Sep' - DC C'Oct' - DC C'Nov' - DC C'Dec' - DS 0F - EJECT -* external function 'asctime' prologue -* frame base=88, local stack=0, call args=40 -&FUNC SETC 'asctime' -ASCTIME PDPPRLG CINDEX=0,FRAME=128,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'asctime' code - L 3,0(11) ==> timeptr - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - LR 4,15 ==> buf,crt - A 4,=F'24' ==> buf - LTR 15,15 ==> crt - BNE @@L3 - L 4,=A(@@4) ==> buf -@@L3 EQU * - ST 4,88(13) ==> buf - MVC 92(4,13),=A(@@LC0) - L 2,24(3) ==> .tm_wday - SLL 2,1 - A 2,24(3) ==> .tm_wday - A 2,=A(@@2) - ST 2,96(13) - L 2,16(3) ==> .tm_mon - SLL 2,1 - A 2,16(3) ==> .tm_mon - A 2,=A(@@3) - ST 2,100(13) - MVC 104(4,13),12(3) ==> .tm_mday - MVC 108(4,13),8(3) ==> .tm_hour - MVC 112(4,13),4(3) ==> .tm_min - MVC 116(4,13),0(3) ==> .tm_sec - L 2,20(3) ==> .tm_year - A 2,=F'1900' - ST 2,120(13) - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - LR 15,4 ==> buf -* Function 'asctime' epilogue - PDPEPIL -* Function 'asctime' literal pool - DS 0D - LTORG -* Function 'asctime' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%.3s %.3s%3d %.2d:%.2d:%.2d %d' - DC X'15' - DC X'0' - DS 0F -@@4 EQU * - DC 28X'00' - END diff --git a/src/crent370/clib/asin.c b/src/crent370/clib/asin.c deleted file mode 100644 index 4f4f611..0000000 --- a/src/crent370/clib/asin.c +++ /dev/null @@ -1,96 +0,0 @@ -/* ASIN.C */ -#if 1 -#include "math.h" -#include "float.h" -#include "errno.h" -#include "stddef.h" - -#if 0 -/* - - Some constants to make life easier elsewhere - (These should I guess be in math.h) - -*/ -static const double pi = 3.1415926535897932384626433832795; -static const double ln10 = 2.3025850929940456840179914546844; -static const double ln2 = 0.69314718055994530941723212145818 ; -#else -#define pi (3.1415926535897932384626433832795) -#define ln10 (2.3025850929940456840179914546844) -#define ln2 (0.69314718055994530941723212145818) -#endif - -#else -#include -#endif - -#ifdef asin -#undef asin -#endif -/* - - This routines Calculate arcsin(x) & arccos(x). - - Note if "x" is close to "1" the series converges slowly. - To avoid this we use (sin(x)**2 + cos(x)**2)=1 - and fact cos(x)=sin(x+pi/2) - -*/ - -__PDPCLIB_API__ double asin (double y) -{ - int i; - double term,answer,work,x,powx,coef; - - x = y; - -/* - if arg is -ve then we want "-asin(-x)" -*/ - - if (x <0.0 ) return ( -asin(-x) ); - -/* - If arg is > 1.0 we can't calculate - (note also < -1.0 but previous statement removes this case) -*/ - if ( x > 1.0 ) - { - errno=EDOM; - return(HUGE_VAL); - } - -/* - now check for large(ish) x > 0.6 -*/ - - if( x > 0.75 ) - { - x = ( sqrt(1.0 - (x*x) ) ); - return((pi/2.0)-asin(x)); - } - -/* - arcsin(x) = x + 1/2 (x^3/3) + (1/2)(3/4)(x^5/5) + - (1/2)(3/4)(5/6)(x^7/7) + ... -*/ - i=1; - answer=x; - term = 1; - coef = 1; - powx = x; - - while (1) - { - work = i; - coef = (coef * work)/(work+1); - powx = powx * x * x; - term = coef * powx / (work + 2.0); - if ( answer == (answer + term) )break; - answer = answer + (term); - i+=2; - } - - return(answer); -} diff --git a/src/crent370/clib/asin.o b/src/crent370/clib/asin.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/asin.s b/src/crent370/clib/asin.s deleted file mode 100644 index 5b14fa7..0000000 --- a/src/crent370/clib/asin.s +++ /dev/null @@ -1,129 +0,0 @@ - TITLE '/home/projects/crent370/clib/asin.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'asin' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'asin' -ASIN PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'asin' code - LM 4,5,0(11) ==> x,y - STM 4,5,80(13) ==> x - LD 0,80(,13) - LTDR 0,0 - BNL @@L2 - LCDR 0,0 - STD 0,88(13) - LA 1,88(,13) - L 15,=A(ASIN) - BALR 14,15 - LCDR 2,0 ==> answer,x - B @@L1 -@@L2 EQU * - STM 4,5,80(13) ==> x - LD 2,80(,13) - CD 0,=D'1.0E0' - BNH @@L4 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - MVC 0(4,15),=F'33' - LD 2,=D'9.99999999999999983034E72' ==> answer - B @@L1 -@@L4 EQU * - STM 4,5,80(13) ==> x - LD 0,80(,13) - CD 2,=D'7.5E-1' - BNH @@L6 - MDR 0,0 - LD 2,=D'1.0E0' - SDR 2,0 - STD 2,88(13) - LA 1,88(,13) - L 15,=V(SQRT) - BALR 14,15 - STD 0,88(13) ==> x - LA 1,88(,13) - L 15,=A(ASIN) - BALR 14,15 - LD 2,=D'1.570796326794896558E0' ==> answer - SDR 2,0 ==> answer,x - B @@L1 -@@L6 EQU * - LA 15,1(0,0) ==> i - LR 2,4 ==> answer,x - LR 3,5 ==> answer,x - LD 4,=D'1.0E0' ==> coef - STM 4,5,80(13) ==> answer - LD 6,80(,13) ==> powx -@@L13 EQU * - MVC 80(4,13),=XL8'4E00000080000000' - ST 15,84(,13) ==> i - XI 84(13),128 - LD 2,80(,13) ==> work - SD 2,=XL8'4E00000080000000' ==> work - MDR 4,2 ==> work - LDR 0,2 ==> work - AD 0,=D'1.0E0' - DDR 4,0 ==> coef - STM 4,5,80(13) ==> x - LD 0,80(,13) - MDR 0,6 ==> powx - STM 4,5,80(13) ==> x - LD 6,80(,13) ==> powx - MDR 6,0 ==> powx - LDR 0,4 ==> coef - MDR 0,6 ==> powx - AD 2,=D'2.0E0' - DDR 0,2 ==> term - STM 2,3,80(13) ==> answer - LD 2,80(,13) - ADR 0,2 ==> answer - CDR 2,0 ==> answer - BE @@L9 - STD 0,80(,13) ==> answer - LM 2,3,80(13) ==> answer - A 15,=F'2' ==> i - B @@L13 -@@L9 EQU * - STM 2,3,80(13) ==> answer - LD 2,80(,13) ==> answer -@@L1 EQU * - LDR 0,2 ==> answer -* Function 'asin' epilogue - PDPEPIL -* Function 'asin' literal pool - DS 0D - LTORG -* Function 'asin' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/atan.c b/src/crent370/clib/atan.c deleted file mode 100644 index d5392ac..0000000 --- a/src/crent370/clib/atan.c +++ /dev/null @@ -1,103 +0,0 @@ -/* ATAN.C */ -#if 1 -#include "math.h" -#include "float.h" -#include "errno.h" -#include "stddef.h" - -#if 0 -/* - - Some constants to make life easier elsewhere - (These should I guess be in math.h) - -*/ -static const double pi = 3.1415926535897932384626433832795; -static const double ln10 = 2.3025850929940456840179914546844; -static const double ln2 = 0.69314718055994530941723212145818 ; -#else -#define pi (3.1415926535897932384626433832795) -#define ln10 (2.3025850929940456840179914546844) -#define ln2 (0.69314718055994530941723212145818) -#endif - -#else -#include -#endif - -#ifdef atan -#undef atan -#endif -/* - - Because atan(x) is valid for large values of "x" & - the taylor series converges more slowly for large "X" - we use the following - - 1. Reduce to the first octant by using :- - - atan(-x)=-atan(x), - atan(1/x)=PI/2-atan(x) - - 2. Reduce further so that |x| less than tan(PI/12) - - atan(x)=pi/6+atan((X*sqrt(3)-1)/(x+sqrt(3))) - - 3. Then use the taylor series - - atan(x) = x - x**3 + x**5 - x**7 - ---- ---- ---- - 3 5 7 - -*/ - -__PDPCLIB_API__ double atan (double x) -{ - int i; - double term,answer,work,powx; - -/* - if arg is -ve then we want "-atan(-x)" -*/ - - if ( x<0.0 ) return ( -atan(-x) ); - -/* - If arg is large we can't calculate - use atan(1/x)=PI/2-atan(x) -*/ - - if ( x > 1.0 ) return ((pi/2) - atan(1.0/x)); - -/* - now check for large(ish) x > tan(15) (0.26794919243112) - if so use atan(x)=pi/6+atan((X*SQRT3-1)/(X+SQRT3)) -*/ - - if( x > (2.0 - sqrt(3.0))) - return( (pi/6.0) + atan( ( x * sqrt(3.0)-1.0 ) / (x + sqrt(3.0) ) ) ); - -/* -* atan(x) = x - x**3 + x**5 - x**7 -* ---- ---- ---- -* 3 5 7 -*/ - - i=1; - answer=x; - term = x; - powx = x; - - while (1) - { - work = i; - powx = 0.0 - powx * x * x; - term = powx / (work + 2.0); - if ( answer == (answer + term) )break; - answer = answer + (term); - i+=2; - } - - return(answer); - -} diff --git a/src/crent370/clib/atan.o b/src/crent370/clib/atan.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/atan.s b/src/crent370/clib/atan.s deleted file mode 100644 index 7933c71..0000000 --- a/src/crent370/clib/atan.s +++ /dev/null @@ -1,140 +0,0 @@ - TITLE '/home/projects/crent370/clib/atan.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'atan' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'atan' -ATAN PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'atan' code - LM 4,5,0(11) ==> x - STM 4,5,80(13) ==> x - LD 0,80(,13) - LTDR 0,0 - BNL @@L2 - LCDR 0,0 - STD 0,88(13) - LA 1,88(,13) - L 15,=A(ATAN) - BALR 14,15 - LCDR 2,0 ==> answer - B @@L1 -@@L2 EQU * - STM 4,5,80(13) ==> x - LD 2,80(,13) - CD 0,=D'1.0E0' - BNH @@L4 - LD 0,=D'1.0E0' - DDR 0,2 - STD 0,88(13) - LA 1,88(,13) - L 15,=A(ATAN) - BALR 14,15 - LD 2,=D'1.570796326794896558E0' ==> answer - SDR 2,0 ==> answer - B @@L1 -@@L4 EQU * - MVC 88(8,13),=D'3.0E0' - LA 1,88(,13) - L 15,=V(SQRT) - BALR 14,15 - LD 2,=D'2.0E0' - SDR 2,0 ==> answer - STM 4,5,80(13) ==> x - LD 6,80(,13) - CDR 6,2 - BNH @@L6 - MVC 88(8,13),=D'3.0E0' - LA 1,88(,13) - L 15,=V(SQRT) - BALR 14,15 - STM 4,5,80(13) ==> x - LD 2,80(,13) - MDR 2,0 ==> answer - SD 2,=D'1.0E0' - STD 2,80(,13) - LM 2,3,80(13) - MVC 88(8,13),=D'3.0E0' - LA 1,88(,13) - L 15,=V(SQRT) - BALR 14,15 - STM 4,5,80(13) ==> x - LD 6,80(,13) - ADR 0,6 - STM 2,3,80(13) - LD 2,80(,13) - DDR 2,0 - STD 2,88(13) - LA 1,88(,13) - L 15,=A(ATAN) - BALR 14,15 - LDR 2,0 ==> answer - AD 2,=D'5.23598775598298857292E-1' ==> answer - B @@L1 -@@L6 EQU * - LA 2,1(0,0) ==> i - STM 4,5,80(13) ==> x - LD 4,80(,13) ==> answer - LDR 2,6 ==> powx,answer -@@L13 EQU * - MVC 80(4,13),=XL8'4E00000080000000' - ST 2,84(,13) ==> i - XI 84(13),128 - LD 0,80(,13) ==> work - SD 0,=XL8'4E00000080000000' ==> work - STM 4,5,80(13) ==> x - LD 6,80(,13) - MDR 2,6 - MDR 2,6 - LCDR 2,2 ==> powx - AD 0,=D'2.0E0' - LDR 6,2 ==> powx - DDR 6,0 - LDR 0,6 ==> term - ADR 0,4 ==> answer - CDR 4,0 ==> answer - BE @@L9 - LDR 4,0 ==> answer - A 2,=F'2' ==> i - B @@L13 -@@L9 EQU * - LDR 2,4 ==> answer -@@L1 EQU * - LDR 0,2 ==> answer -* Function 'atan' epilogue - PDPEPIL -* Function 'atan' literal pool - DS 0D - LTORG -* Function 'atan' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/atan2.c b/src/crent370/clib/atan2.c deleted file mode 100644 index e09a1b2..0000000 --- a/src/crent370/clib/atan2.c +++ /dev/null @@ -1,38 +0,0 @@ -/* ATAN2.C */ -#if 1 -#include "math.h" -#include "float.h" -#include "errno.h" -#include "stddef.h" - -#if 0 -/* - - Some constants to make life easier elsewhere - (These should I guess be in math.h) - -*/ -static const double pi = 3.1415926535897932384626433832795; -static const double ln10 = 2.3025850929940456840179914546844; -static const double ln2 = 0.69314718055994530941723212145818 ; -#else -#define pi (3.1415926535897932384626433832795) -#define ln10 (2.3025850929940456840179914546844) -#define ln2 (0.69314718055994530941723212145818) -#endif - -#else -#include -#endif - -/* atan2 was taken from libnix and modified slightly */ - -__PDPCLIB_API__ double atan2(double y,double x) -{ - return (x >= y) ? - (x >= -y ? atan(y/x) : -pi/2 - atan(x/y)) - : - (x >= -y ? pi/2 - atan(x/y) - : (y >= 0) ? pi + atan(y/x) - : -pi + atan(y/x)); -} diff --git a/src/crent370/clib/atan2.o b/src/crent370/clib/atan2.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/atan2.s b/src/crent370/clib/atan2.s deleted file mode 100644 index 4ae8204..0000000 --- a/src/crent370/clib/atan2.s +++ /dev/null @@ -1,107 +0,0 @@ - TITLE '/home/projects/crent370/clib/atan2.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'atan2' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'atan2' -ATAN2 PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'atan2' code - LD 2,0(11) ==> y - LD 4,8(11) ==> x - CDR 4,2 ==> x,y - BL @@L2 - LCDR 0,2 ==> y - CDR 4,0 ==> x - BL @@L5 - LDR 0,2 ==> y - DDR 0,4 ==> x - STD 0,88(13) - LA 1,88(,13) - L 15,=V(ATAN) - BALR 14,15 - LDR 2,0 - B @@L3 -@@L5 EQU * - LDR 0,4 ==> x - DDR 0,2 ==> y - STD 0,88(13) - LA 1,88(,13) - L 15,=V(ATAN) - BALR 14,15 - LD 2,=D'-1.570796326794896558E0' - B @@L14 -@@L2 EQU * - LCDR 0,2 ==> y - CDR 4,0 ==> x - BL @@L8 - LDR 0,4 ==> x - DDR 0,2 ==> y - STD 0,88(13) - LA 1,88(,13) - L 15,=V(ATAN) - BALR 14,15 - LD 2,=D'1.570796326794896558E0' -@@L14 EQU * - SDR 2,0 - B @@L3 -@@L8 EQU * - LTDR 2,2 ==> y - BL @@L11 - LDR 0,2 ==> y - DDR 0,4 ==> x - STD 0,88(13) - LA 1,88(,13) - L 15,=V(ATAN) - BALR 14,15 - LDR 2,0 - AD 2,=D'3.141592653589793116E0' - B @@L3 -@@L11 EQU * - LDR 0,2 ==> y - DDR 0,4 ==> x - STD 0,88(13) - LA 1,88(,13) - L 15,=V(ATAN) - BALR 14,15 - LDR 2,0 - AD 2,=D'-3.141592653589793116E0' -@@L3 EQU * - LDR 0,2 -* Function 'atan2' epilogue - PDPEPIL -* Function 'atan2' literal pool - DS 0D - LTORG -* Function 'atan2' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/atexit.c b/src/crent370/clib/atexit.c deleted file mode 100644 index 73053b5..0000000 --- a/src/crent370/clib/atexit.c +++ /dev/null @@ -1,20 +0,0 @@ -/* ATEXIT.C */ -#include -#include -#include "cliblock.h" -#include "clibcrt.h" -#include "clibary.h" - -__PDPCLIB_API__ int atexit(void (*func)(void)) -{ - CLIBGRT *grt = __grtget(); - - if (func) { - lock(&grt->grtexit,0); - arrayadd(&grt->grtexit, func); - arrayadd(&grt->grtexita, 0); - unlock(&grt->grtexit,0); - } - - return 0; -} diff --git a/src/crent370/clib/atexit.o b/src/crent370/clib/atexit.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/atexit.s b/src/crent370/clib/atexit.s deleted file mode 100644 index c74df9f..0000000 --- a/src/crent370/clib/atexit.s +++ /dev/null @@ -1,78 +0,0 @@ - TITLE '/home/projects/crent370/clib/atexit.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'atexit' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'atexit' -ATEXIT PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'atexit' code - L 4,0(11) ==> func - LA 1,88(,13) - L 15,=V(@@GRTGET) - BALR 14,15 - LR 2,15 ==> grt - LTR 4,4 ==> func - BE @@L2 - LR 3,15 ==> grt - A 3,=F'16' - ST 3,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - ST 3,88(13) - ST 4,92(13) ==> func - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - A 2,=F'20' - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - ST 3,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L2 EQU * - SLR 15,15 -* Function 'atexit' epilogue - PDPEPIL -* Function 'atexit' literal pool - DS 0D - LTORG -* Function 'atexit' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/atof.c b/src/crent370/clib/atof.c deleted file mode 100644 index 4be20d8..0000000 --- a/src/crent370/clib/atof.c +++ /dev/null @@ -1,10 +0,0 @@ -/* ATOF.C */ -#include -#include -#include -#include - -__PDPCLIB_API__ double atof(const char *nptr) -{ - return (strtod(nptr, (char **)NULL)); -} diff --git a/src/crent370/clib/atof.o b/src/crent370/clib/atof.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/atof.s b/src/crent370/clib/atof.s deleted file mode 100644 index 586fcec..0000000 --- a/src/crent370/clib/atof.s +++ /dev/null @@ -1,51 +0,0 @@ - TITLE '/home/projects/crent370/clib/atof.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'atof' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'atof' -ATOF PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'atof' code - MVC 88(4,13),0(11) ==> nptr - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(STRTOD) - BALR 14,15 -* Function 'atof' epilogue - PDPEPIL -* Function 'atof' literal pool - DS 0D - LTORG -* Function 'atof' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/atoi.c b/src/crent370/clib/atoi.c deleted file mode 100644 index 5df0404..0000000 --- a/src/crent370/clib/atoi.c +++ /dev/null @@ -1,8 +0,0 @@ -/* ATOI.C */ -#include -#include - -__PDPCLIB_API__ int atoi(const char *nptr) -{ - return ((int)strtol(nptr, (char **)NULL, 10)); -} diff --git a/src/crent370/clib/atoi.o b/src/crent370/clib/atoi.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/atoi.s b/src/crent370/clib/atoi.s deleted file mode 100644 index 93da237..0000000 --- a/src/crent370/clib/atoi.s +++ /dev/null @@ -1,52 +0,0 @@ - TITLE '/home/projects/crent370/clib/atoi.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'atoi' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'atoi' -ATOI PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'atoi' code - MVC 88(4,13),0(11) ==> nptr - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'10' - LA 1,88(,13) - L 15,=V(STRTOL) - BALR 14,15 -* Function 'atoi' epilogue - PDPEPIL -* Function 'atoi' literal pool - DS 0D - LTORG -* Function 'atoi' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/atol.c b/src/crent370/clib/atol.c deleted file mode 100644 index c0dc477..0000000 --- a/src/crent370/clib/atol.c +++ /dev/null @@ -1,8 +0,0 @@ -/* ATOL.C */ -#include -#include - -__PDPCLIB_API__ long int atol(const char *nptr) -{ - return (strtol(nptr, (char **)NULL, 10)); -} diff --git a/src/crent370/clib/atol.o b/src/crent370/clib/atol.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/atol.s b/src/crent370/clib/atol.s deleted file mode 100644 index 52b60e4..0000000 --- a/src/crent370/clib/atol.s +++ /dev/null @@ -1,52 +0,0 @@ - TITLE '/home/projects/crent370/clib/atol.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'atol' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'atol' -ATOL PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'atol' code - MVC 88(4,13),0(11) ==> nptr - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'10' - LA 1,88(,13) - L 15,=V(STRTOL) - BALR 14,15 -* Function 'atol' epilogue - PDPEPIL -* Function 'atol' literal pool - DS 0D - LTORG -* Function 'atol' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/bcopy.c b/src/crent370/clib/bcopy.c deleted file mode 100644 index 0e9eb03..0000000 --- a/src/crent370/clib/bcopy.c +++ /dev/null @@ -1,18 +0,0 @@ -#include - -void -bcopy (const void *src, void *dest, size_t len) -{ - if (dest < src) { - const char *firsts = (const char *) src; - char *firstd = (char *) dest; - - while (len--) *firstd++ = *firsts++; - } - else { - const char *lasts = (const char *)src + (len-1); - char *lastd = (char *)dest + (len-1); - - while (len--) *lastd-- = *lasts--; - } -} diff --git a/src/crent370/clib/bcopy.o b/src/crent370/clib/bcopy.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/bcopy.s b/src/crent370/clib/bcopy.s deleted file mode 100644 index 3f9c3da..0000000 --- a/src/crent370/clib/bcopy.s +++ /dev/null @@ -1,86 +0,0 @@ - TITLE '/home/projects/crent370/clib/bcopy.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'bcopy' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'bcopy' -BCOPY PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'bcopy' code - L 2,0(11) ==> src - L 4,4(11) ==> dest - L 15,8(11) ==> len - CLR 4,2 ==> dest,src - BNL @@L2 - LR 3,2 ==> firsts,src - LR 2,4 ==> firstd,dest - BCTR 15,0 ==> len - L 4,=F'-1' - CLR 15,4 ==> len - BE @@L1 -@@L6 EQU * - MVC 0(1,2),0(3) ==> firstd,firsts - A 3,=F'1' ==> firsts - A 2,=F'1' ==> firstd - BCTR 15,0 ==> len - L 4,=F'-1' - CLR 15,4 ==> len - BE @@L1 - B @@L6 -@@L2 EQU * - LR 3,2 ==> lasts,src - AR 3,15 ==> lasts,len - BCTR 3,0 ==> lasts - LR 2,4 ==> lastd,dest - AR 2,15 ==> lastd,len - BCTR 2,0 ==> lastd - BCTR 15,0 ==> len - L 4,=F'-1' - CLR 15,4 ==> len - BE @@L1 -@@L11 EQU * - MVC 0(1,2),0(3) ==> lastd,lasts - BCTR 3,0 ==> lasts - BCTR 2,0 ==> lastd - BCTR 15,0 ==> len - L 4,=F'-1' - CLR 15,4 ==> len - BNE @@L11 -@@L1 EQU * -* Function 'bcopy' epilogue - PDPEPIL -* Function 'bcopy' literal pool - DS 0D - LTORG -* Function 'bcopy' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/bsearch.c b/src/crent370/clib/bsearch.c deleted file mode 100644 index 5a71297..0000000 --- a/src/crent370/clib/bsearch.c +++ /dev/null @@ -1,33 +0,0 @@ -/* BSEARCH.C */ -#include -#include - -__PDPCLIB_API__ void *bsearch(const void *key, const void *base, - size_t nmemb, size_t size, - int (*compar)(const void *, const void *)) -{ - size_t try; - int res; - const void *ptr; - - while (nmemb > 0) - { - try = nmemb / 2; - ptr = (void *)((char *)base + try * size); - res = compar(ptr, key); - if (res == 0) - { - return ((void *)ptr); - } - else if (res < 0) - { - nmemb = nmemb - try - 1; - base = (const void *)((const char *)ptr + size); - } - else - { - nmemb = try; - } - } - return (NULL); -} diff --git a/src/crent370/clib/bsearch.o b/src/crent370/clib/bsearch.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/bsearch.s b/src/crent370/clib/bsearch.s deleted file mode 100644 index 79204d3..0000000 --- a/src/crent370/clib/bsearch.s +++ /dev/null @@ -1,84 +0,0 @@ - TITLE '/home/projects/crent370/clib/bsearch.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'bsearch' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'bsearch' -BSEARCH PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'bsearch' code - SLR 6,6 ==> size - SLR 7,7 ==> size - L 8,4(11) ==> base - L 2,8(11) ==> nmemb - L 9,12(11) ==> size - LTR 2,2 ==> nmemb - BE @@L11 -@@L9 EQU * - LR 3,2 ==> try,nmemb - SRL 3,1 ==> try - LR 7,9 ==> size - MR 6,3 ==> size,try - LR 4,8 ==> ptr,base - AR 4,7 ==> ptr,size - ST 4,88(13) ==> ptr - MVC 92(4,13),0(11) ==> key - L 5,16(11) ==> compar - LA 1,88(,13) - LA 15,0(5) - BALR 14,15 - LR 5,4 ==> ptr - LTR 15,15 ==> res - BE @@L1 - BNL @@L7 - SR 2,3 ==> nmemb,try - BCTR 2,0 ==> nmemb - LR 8,4 ==> base,ptr - AR 8,9 ==> base,size - B @@L2 -@@L7 EQU * - LR 2,3 ==> nmemb,try -@@L2 EQU * - LTR 2,2 ==> nmemb - BNE @@L9 -@@L11 EQU * - SLR 5,5 ==> ptr -@@L1 EQU * - LR 15,5 ==> ptr -* Function 'bsearch' epilogue - PDPEPIL -* Function 'bsearch' literal pool - DS 0D - LTORG -* Function 'bsearch' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/calloc.c b/src/crent370/clib/calloc.c deleted file mode 100644 index a811169..0000000 --- a/src/crent370/clib/calloc.c +++ /dev/null @@ -1,28 +0,0 @@ -/* CALLOC.C */ -#define STDLIB_C -#include "stdlib.h" -#include "signal.h" -#include "string.h" -#include "ctype.h" -#include "stddef.h" -#include "mvssupa.h" - -__PDPCLIB_API__ void *calloc(size_t nmemb, size_t size) -{ - size_t total = ((nmemb * size) + 7) & 0x00FFFFF8; - void *ptr; - - ptr = malloc(total); - if (ptr) { - /* clear allocated memory [memset(ptr, 0, total)] */ - __asm__("\n" -"* Clear allocated memory\n" -" LR 14,%0 => ptr\n" -" LR 15,%1 == total size\n" -" SLR 0,0\n" -" LR 1,0\n" -" MVCL 14,0\n" : : "r"(ptr), "r"(total) : "0", "1", "14", "15"); - } - - return (ptr); -} diff --git a/src/crent370/clib/calloc.o b/src/crent370/clib/calloc.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/calloc.s b/src/crent370/clib/calloc.s deleted file mode 100644 index 6530cca..0000000 --- a/src/crent370/clib/calloc.s +++ /dev/null @@ -1,69 +0,0 @@ - TITLE '/home/projects/crent370/clib/calloc.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'calloc' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'calloc' -CALLOC PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'calloc' code - SLR 2,2 ==> size - SLR 3,3 ==> size - L 3,4(11) ==> size - M 2,0(11) ==> size,nmemb - A 3,=F'7' ==> total - N 3,=F'16777208' ==> total - ST 3,88(13) ==> total - LA 1,88(,13) - L 15,=V(MALLOC) - BALR 14,15 - LR 2,15 ==> ptr - LTR 15,15 ==> ptr - BE @@L2 - -* Clear allocated memory - LR 14,2 => ptr ==> ptr - LR 15,3 == total size ==> total - SLR 0,0 - LR 1,0 - MVCL 14,0 - -@@L2 EQU * - LR 15,2 ==> ptr -* Function 'calloc' epilogue - PDPEPIL -* Function 'calloc' literal pool - DS 0D - LTORG -* Function 'calloc' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/ceil.c b/src/crent370/clib/ceil.c deleted file mode 100644 index 55e02cf..0000000 --- a/src/crent370/clib/ceil.c +++ /dev/null @@ -1,31 +0,0 @@ -/* CEIL.C */ -#if 0 -#include "math.h" -#include "float.h" -#include "errno.h" -#include "stddef.h" - -/* - - Some constants to make life easier elsewhere - (These should I guess be in math.h) - -*/ -static const double pi = 3.1415926535897932384626433832795; -static const double ln10 = 2.3025850929940456840179914546844; -static const double ln2 = 0.69314718055994530941723212145818 ; -#else -#include -#endif - -__PDPCLIB_API__ double ceil(double x) -{ - int y; - - y = (int)x; - if ((double)y < x) - { - y++; - } - return ((double)y); -} diff --git a/src/crent370/clib/ceil.o b/src/crent370/clib/ceil.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/ceil.s b/src/crent370/clib/ceil.s deleted file mode 100644 index 238b8b6..0000000 --- a/src/crent370/clib/ceil.s +++ /dev/null @@ -1,65 +0,0 @@ - TITLE '/home/projects/crent370/clib/ceil.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'ceil' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'ceil' -CEIL PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ceil' code - LD 2,0(11) ==> x - LDR 0,2 ==> x - AD 0,=XL8'4F08000000000000' - STD 0,80(,13) - L 15,84(,13) ==> y - MVC 80(4,13),=XL8'4E00000080000000' - ST 15,84(,13) ==> y - XI 84(13),128 - LD 0,80(,13) - SD 0,=XL8'4E00000080000000' - CDR 0,2 ==> x - BNL @@L2 - A 15,=F'1' ==> y -@@L2 EQU * - MVC 80(4,13),=XL8'4E00000080000000' - ST 15,84(,13) ==> y - XI 84(13),128 - LD 0,80(,13) - SD 0,=XL8'4E00000080000000' -* Function 'ceil' epilogue - PDPEPIL -* Function 'ceil' literal pool - DS 0D - LTORG -* Function 'ceil' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/cib b/src/crent370/clib/cib deleted file mode 100644 index 872632f..0000000 --- a/src/crent370/clib/cib +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef CIB_H -#define CIB_H - -typedef struct com COM; -typedef struct cib CIB; - -struct com { - unsigned *comecbpt; /* PTR TO ECB FOR STOP OR MODIFY COMMAND */ - CIB *comcibpt; /* PTR TO COMMAND INPUT BUFFER (CIB) */ -}; - -#pragma pack(1) -struct cib { - CIB *cibnext; /* ADDRESS OF NEXT CIB IN QUEUE (0 FOR LAST)*/ - unsigned char cibverb; /* COMMAND VERB CODE */ -#define CIBSTART 0x04 /* COMMAND CODE FOR START */ -#define CIBMODFY 0x44 /* COMMAND CODE FOR MODIFY */ -#define CIBSTOP 0x40 /* COMMAND CODE FOR STOP */ -#define CIBMOUNT 0x0C /* COMMAND CODE FOR MOUNT */ - unsigned char ciblen; /* LENGTH IN DOUBLEWORDS OF CIB INCLUDING */ - /* ... CIBDATA */ - unsigned char unused1[4]; /* RESERVED FOR CSCB COMPATIBILITY */ - unsigned short cibasid; /* ADDRESS SPACE ID (OS/VS2) */ - unsigned char cibconid; /* IDENTIFIER OF CONSOLE ISSUING COMMAND */ - unsigned char unused2; /* RESERVED */ - unsigned short cibdatln; /* LENGTH IN BYTES OF DATA IN CIBDATA */ - unsigned char cibdata[8]; /* DATA FROM COMMAND OPERAND */ - /* (LENGTH OF CIBDATA IS A MULTIPLE OF EIGHT BYTES */ - /* DEPENDING ON THE VALUE CONTAINED IN CIBLEN) */ - /* START - FOURTH POSITIONAL PARAMETER (PARMVALUE) */ - /* MODIFY - RESIDUAL OPERAND IMAGE FOLLOWING COMMA */ - /* TERMINATING FIRST POSITIONAL PARAMETER */ - /* STOP - NONE (CIB GENERATED ONLY TO GIVE CONSOLE ID) */ -}; -#pragma pack(reset) - -extern COM *cominit(void); - -extern int cibset(unsigned count); - -extern CIB *cibget(void); - -extern int cibdel(CIB *cib); - -#endif diff --git a/src/crent370/clib/clearerr.c b/src/crent370/clib/clearerr.c deleted file mode 100644 index 1bdfb90..0000000 --- a/src/crent370/clib/clearerr.c +++ /dev/null @@ -1,9 +0,0 @@ -/* CLEARERR.C */ -#include - -void -clearerr(FILE *fp) -{ - fp->flags &= 0xFFFF - (_FILE_FLAG_ERROR + _FILE_FLAG_EOF); - return; -} diff --git a/src/crent370/clib/clearerr.o b/src/crent370/clib/clearerr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/clearerr.s b/src/crent370/clib/clearerr.s deleted file mode 100644 index 48b7dfe..0000000 --- a/src/crent370/clib/clearerr.s +++ /dev/null @@ -1,48 +0,0 @@ - TITLE '/home/projects/crent370/clib/clearerr.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'clearerr' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'clearerr' -CLEARERR PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'clearerr' code - L 2,0(11) ==> fp - NC 40(2,2),=H'-4' ==> .flags -* Function 'clearerr' epilogue - PDPEPIL -* Function 'clearerr' literal pool - DS 0D - LTORG -* Function 'clearerr' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/clib.c b/src/crent370/clib/clib.c deleted file mode 100644 index 1069ad4..0000000 --- a/src/crent370/clib/clib.c +++ /dev/null @@ -1,35 +0,0 @@ -#define LIB_CLIB -#define CLIB_C -#include "clib.h" -#include "mvssupa.h" - -int gettzoff(void); - -static CLIB lib = { - __crtget, - __crtres, - __crtset, - __grtget, - __grtres, - __grtset, - __wsaget, - __jpaget, - __aopen, - __aread, - __awrite, - __aclose, - __getclk, - __gettz, - __getm, - __freem, - __dynal, - __idcams, - gettzoff, - wto, - vwtof, - wtof, - wtodumpf, - wtodump, -}; - -CLIB *clib = &lib; diff --git a/src/crent370/clib/clibary.c b/src/crent370/clib/clibary.c deleted file mode 100644 index 689c9c9..0000000 --- a/src/crent370/clib/clibary.c +++ /dev/null @@ -1,21 +0,0 @@ -#define LIB_CLIBARY -#define CLIBARY_C -#include "clibary.h" - -#if 1 -void *clibary = 0; -#else -/* deprecated */ -static CLIBARY lib = { - arraynew, - arrayadd, - arrayaddf, - arraycount, - arrayfree, - arrayget, - arraysize, - arraydel, -}; - -CLIBARY *clibary = &lib; -#endif diff --git a/src/crent370/clib/clibary.o b/src/crent370/clib/clibary.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/clibary.s b/src/crent370/clib/clibary.s deleted file mode 100644 index 57dfd45..0000000 --- a/src/crent370/clib/clibary.s +++ /dev/null @@ -1,27 +0,0 @@ - TITLE '/home/projects/crent370/clib/clibary.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* X-var clibary - ENTRY CLIBARY -* Program data area - DS 0F -CLIBARY EQU * - DC F'0' - END diff --git a/src/crent370/clib/cliblock.c b/src/crent370/clib/cliblock.c deleted file mode 100644 index da36e09..0000000 --- a/src/crent370/clib/cliblock.c +++ /dev/null @@ -1,20 +0,0 @@ -#define LIB_CLIBLOCK -#define CLIBLOCK_C -#include "cliblock.h" - -static CLIBLOCK lib = { - __lk, - __lktry, - __lktest, - __lkunlk, - __lkrn, - __lkrnte, - __lkuntr, - __lkrnun, - __lkrnf, - __lkrtef, - __lkuntf, - __lkrnuf, -}; - -CLIBLOCK *cliblock = &lib; diff --git a/src/crent370/clib/clock.c b/src/crent370/clib/clock.c deleted file mode 100644 index 5b60cc8..0000000 --- a/src/crent370/clib/clock.c +++ /dev/null @@ -1,31 +0,0 @@ -/* CLOCK.C */ -#include "time.h" -#include "stdarg.h" -#include "stdio.h" -#include "stddef.h" -#include "mvssupa.h" - -/* scalar date routines -- public domain by Ray Gardner -** These will work over the range 1-01-01 thru 14699-12-31 -** The functions written by Ray are isleap, months_to_days, -** years_to_days, ymd_to_scalar, scalar_to_ymd. -** modified slightly by Paul Edwards -*/ - -extern int __isleap(unsigned yr); -extern unsigned __mtd(unsigned month); -extern long __ytd(unsigned yr); -extern long __ymdts(unsigned yr, unsigned mo, unsigned day); -extern void __stymd(long scalar, - unsigned *pyr, unsigned *pmo, unsigned *pday); - -#define isleap(y) __isleap(y) -#define months_to_days(m) __mtd(m) -#define years_to_days(y) __ytd(y) -#define ymd_to_scalar(y,m,d) __ymdts((y),(m),(d)) -#define scalar_to_ymd(s,y,m,d) __stymd((s),(y),(m),(d)) - -__PDPCLIB_API__ clock_t clock(void) -{ - return ((clock_t)-1); -} diff --git a/src/crent370/clib/clock.o b/src/crent370/clib/clock.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/clock.s b/src/crent370/clib/clock.s deleted file mode 100644 index 606cebe..0000000 --- a/src/crent370/clib/clock.s +++ /dev/null @@ -1,47 +0,0 @@ - TITLE '/home/projects/crent370/clib/clock.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'clock' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'clock' -CLOCK PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'clock' code - L 15,=F'-1' -* Function 'clock' epilogue - PDPEPIL -* Function 'clock' literal pool - DS 0D - LTORG -* Function 'clock' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/cos.c b/src/crent370/clib/cos.c deleted file mode 100644 index 4aad2c9..0000000 --- a/src/crent370/clib/cos.c +++ /dev/null @@ -1,71 +0,0 @@ -/* COS.C */ -#if 1 -#include "math.h" -#include "float.h" -#include "errno.h" -#include "stddef.h" - -#if 0 -/* - - Some constants to make life easier elsewhere - (These should I guess be in math.h) - -*/ -static const double pi = 3.1415926535897932384626433832795; -static const double ln10 = 2.3025850929940456840179914546844; -static const double ln2 = 0.69314718055994530941723212145818 ; -#else -#define pi (3.1415926535897932384626433832795) -#define ln10 (2.3025850929940456840179914546844) -#define ln2 (0.69314718055994530941723212145818) -#endif - -#else -#include -#endif - -#ifdef cos -#undef cos -#endif -__PDPCLIB_API__ double cos(double x) -{ -/* - - Calculate COS using Taylor series. - - sin(x) = 1 - x**2 + x**4 - x**6 + x**8 - ==== ==== ==== ==== ......... - 2! 4! 6! 8! - - Note whilst this is accurate it can be slow for large - values of "X" so we scale - -*/ - - int i; - double term,answer,work,x1; - -/* - Scale arguments to be in range 1 => pi -*/ - - i = x/(2*pi); - x1 = x - (i * (2.0 * pi)); - - i=1; - term=answer=1; - - - while (1) - { - work = i; - term = -(term * x1 * x1)/(work * (work + 1.0)); - if ( answer == (answer + term) )break; - answer = answer + term; - i += 2; - } - - return(answer); - -} diff --git a/src/crent370/clib/cos.o b/src/crent370/clib/cos.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/cos.s b/src/crent370/clib/cos.s deleted file mode 100644 index 39f18fd..0000000 --- a/src/crent370/clib/cos.s +++ /dev/null @@ -1,89 +0,0 @@ - TITLE '/home/projects/crent370/clib/cos.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'cos' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'cos' -COS PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'cos' code - LD 4,0(11) ==> x - LDR 2,4 ==> x - DD 2,=D'6.283185307179586232E0' - LDR 0,2 - AD 0,=XL8'4F08000000000000' - STD 0,80(,13) - L 15,84(,13) ==> i - MVC 80(4,13),=XL8'4E00000080000000' - ST 15,84(,13) ==> i - XI 84(13),128 - LD 0,80(,13) - SD 0,=XL8'4E00000080000000' - MD 0,=D'6.283185307179586232E0' - SDR 4,0 ==> x - STD 4,80(,13) ==> x - LM 2,3,80(13) ==> x1 - LA 15,1(0,0) ==> i - LD 6,=D'1.0E0' ==> answer - LDR 2,6 ==> term,answer -@@L7 EQU * - MVC 80(4,13),=XL8'4E00000080000000' - ST 15,84(,13) ==> i - XI 84(13),128 - LD 0,80(,13) ==> work - SD 0,=XL8'4E00000080000000' ==> work - STM 2,3,80(13) ==> x1 - LD 4,80(,13) - MDR 2,4 - MDR 2,4 - LCDR 2,2 - LDR 4,0 ==> work - AD 4,=D'1.0E0' - MDR 0,4 - DDR 2,0 ==> term - LDR 0,6 ==> answer - ADR 0,2 ==> answer,term - CDR 6,0 ==> answer - BE @@L3 - LDR 6,0 ==> answer - A 15,=F'2' ==> i - B @@L7 -@@L3 EQU * - LDR 0,6 ==> answer -* Function 'cos' epilogue - PDPEPIL -* Function 'cos' literal pool - DS 0D - LTORG -* Function 'cos' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/cosh.c b/src/crent370/clib/cosh.c deleted file mode 100644 index 836438c..0000000 --- a/src/crent370/clib/cosh.c +++ /dev/null @@ -1,44 +0,0 @@ -/* COSH.C */ -#if 1 -#include "math.h" -#include "float.h" -#include "errno.h" -#include "stddef.h" - -#if 0 -/* - - Some constants to make life easier elsewhere - (These should I guess be in math.h) - -*/ -static const double pi = 3.1415926535897932384626433832795; -static const double ln10 = 2.3025850929940456840179914546844; -static const double ln2 = 0.69314718055994530941723212145818 ; -#else -#define pi (3.1415926535897932384626433832795) -#define ln10 (2.3025850929940456840179914546844) -#define ln2 (0.69314718055994530941723212145818) -#endif - -#else -#include -#endif - -/* - - Hyperbolic functions - - SINH(X) = (E**X-E**(-1))/2 - COSH(X) = (E**X+E**(-1))/2 - -*/ -__PDPCLIB_API__ double cosh(double x) -{ - double dexpx; - - dexpx = exp(x); - - return( 0.5 * (dexpx + (1.0/dexpx) ) ); - -} diff --git a/src/crent370/clib/cosh.o b/src/crent370/clib/cosh.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/cosh.s b/src/crent370/clib/cosh.s deleted file mode 100644 index 68f5e39..0000000 --- a/src/crent370/clib/cosh.s +++ /dev/null @@ -1,54 +0,0 @@ - TITLE '/home/projects/crent370/clib/cosh.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'cosh' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'cosh' -COSH PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'cosh' code - MVC 88(8,13),0(11) ==> x - LA 1,88(,13) - L 15,=V(EXP) - BALR 14,15 - LD 2,=D'1.0E0' - DDR 2,0 ==> dexpx - ADR 0,2 ==> dexpx - MD 0,=D'5.0E-1' ==> dexpx -* Function 'cosh' epilogue - PDPEPIL -* Function 'cosh' literal pool - DS 0D - LTORG -* Function 'cosh' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/ctime.c b/src/crent370/clib/ctime.c deleted file mode 100644 index fc2c79d..0000000 --- a/src/crent370/clib/ctime.c +++ /dev/null @@ -1,31 +0,0 @@ -/* CTIME.C */ -#include "time.h" -#include "stdarg.h" -#include "stdio.h" -#include "stddef.h" -#include "mvssupa.h" - -/* scalar date routines -- public domain by Ray Gardner -** These will work over the range 1-01-01 thru 14699-12-31 -** The functions written by Ray are isleap, months_to_days, -** years_to_days, ymd_to_scalar, scalar_to_ymd. -** modified slightly by Paul Edwards -*/ - -extern int __isleap(unsigned yr); -extern unsigned __mtd(unsigned month); -extern long __ytd(unsigned yr); -extern long __ymdts(unsigned yr, unsigned mo, unsigned day); -extern void __stymd(long scalar, - unsigned *pyr, unsigned *pmo, unsigned *pday); - -#define isleap(y) __isleap(y) -#define months_to_days(m) __mtd(m) -#define years_to_days(y) __ytd(y) -#define ymd_to_scalar(y,m,d) __ymdts((y),(m),(d)) -#define scalar_to_ymd(s,y,m,d) __stymd((s),(y),(m),(d)) - -__PDPCLIB_API__ char *ctime(const time_t *timer) -{ - return (asctime(localtime(timer))); -} diff --git a/src/crent370/clib/ctime.o b/src/crent370/clib/ctime.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/ctime.s b/src/crent370/clib/ctime.s deleted file mode 100644 index 50f36a0..0000000 --- a/src/crent370/clib/ctime.s +++ /dev/null @@ -1,54 +0,0 @@ - TITLE '/home/projects/crent370/clib/ctime.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'ctime' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'ctime' -CTIME PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ctime' code - MVC 88(4,13),0(11) ==> timer - LA 1,88(,13) - L 15,=V(LOCALTIM) - BALR 14,15 - ST 15,88(13) - LA 1,88(,13) - L 15,=V(ASCTIME) - BALR 14,15 -* Function 'ctime' epilogue - PDPEPIL -* Function 'ctime' literal pool - DS 0D - LTORG -* Function 'ctime' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/difftime.c b/src/crent370/clib/difftime.c deleted file mode 100644 index 3f4e73e..0000000 --- a/src/crent370/clib/difftime.c +++ /dev/null @@ -1,31 +0,0 @@ -/* DIFFTIME.C */ -#include "time.h" -#include "stdarg.h" -#include "stdio.h" -#include "stddef.h" -#include "mvssupa.h" - -/* scalar date routines -- public domain by Ray Gardner -** These will work over the range 1-01-01 thru 14699-12-31 -** The functions written by Ray are isleap, months_to_days, -** years_to_days, ymd_to_scalar, scalar_to_ymd. -** modified slightly by Paul Edwards -*/ - -extern int __isleap(unsigned yr); -extern unsigned __mtd(unsigned month); -extern long __ytd(unsigned yr); -extern long __ymdts(unsigned yr, unsigned mo, unsigned day); -extern void __stymd(long scalar, - unsigned *pyr, unsigned *pmo, unsigned *pday); - -#define isleap(y) __isleap(y) -#define months_to_days(m) __mtd(m) -#define years_to_days(y) __ytd(y) -#define ymd_to_scalar(y,m,d) __ymdts((y),(m),(d)) -#define scalar_to_ymd(s,y,m,d) __stymd((s),(y),(m),(d)) - -__PDPCLIB_API__ double difftime(time_t time1, time_t time0) -{ - return ((double)(time1 - time0)); -} diff --git a/src/crent370/clib/difftime.o b/src/crent370/clib/difftime.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/difftime.s b/src/crent370/clib/difftime.s deleted file mode 100644 index 35542bb..0000000 --- a/src/crent370/clib/difftime.s +++ /dev/null @@ -1,57 +0,0 @@ - TITLE '/home/projects/crent370/clib/difftime.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'difftime' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'difftime' -DIFFTIME PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'difftime' code - L 2,0(11) ==> time1 - S 2,4(11) ==> time0 - MVC 80(4,13),=XL8'4E00000080000000' - ST 2,84(,13) - XI 84(13),128 - LD 0,80(,13) - SD 0,=XL8'4E00000080000000' - LTR 2,2 - BNL @@L2 - AD 0,=D'4.294967296E9' -@@L2 EQU * -* Function 'difftime' epilogue - PDPEPIL -* Function 'difftime' literal pool - DS 0D - LTORG -* Function 'difftime' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/div.c b/src/crent370/clib/div.c deleted file mode 100644 index 3c247bf..0000000 --- a/src/crent370/clib/div.c +++ /dev/null @@ -1,13 +0,0 @@ -/* DIV.C */ -#include -#include -#include - -__PDPCLIB_API__ div_t div(int numer, int denom) -{ - div_t x; - - x.quot = numer / denom; - x.rem = numer % denom; - return (x); -} diff --git a/src/crent370/clib/div.o b/src/crent370/clib/div.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/div.s b/src/crent370/clib/div.s deleted file mode 100644 index 8871bae..0000000 --- a/src/crent370/clib/div.s +++ /dev/null @@ -1,65 +0,0 @@ - TITLE '/home/projects/crent370/clib/div.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'div' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'div' -DIV PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'div' code - SLR 6,6 ==> x - SLR 7,7 ==> x - LR 2,6 ==> numer - LR 3,7 ==> numer - LR 4,6 ==> numer - LR 5,7 ==> numer - LR 15,0 - L 8,0(11) ==> numer - L 9,4(11) ==> denom - LR 2,8 ==> numer - SRDA 2,32 ==> numer - DR 2,9 ==> numer,denom - LR 6,3 ==> numer - LR 4,8 ==> numer - SRDA 4,32 ==> numer - DR 4,9 ==> numer,denom - LR 7,4 ==> x - ST 6,0(15) ==> x, - ST 7,4+0(15) ==> x, -* Function 'div' epilogue - PDPEPIL -* Function 'div' literal pool - DS 0D - LTORG -* Function 'div' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/exit.c b/src/crent370/clib/exit.c deleted file mode 100644 index fb79b4c..0000000 --- a/src/crent370/clib/exit.c +++ /dev/null @@ -1,12 +0,0 @@ -/* EXIT.C */ -#define STDLIB_C -#include -#include - -void __exit(int status) __attribute__((noreturn)); - -__PDPCLIB_API__ void exit(int status) -{ - __exit(status); -} - diff --git a/src/crent370/clib/exit.o b/src/crent370/clib/exit.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/exit.s b/src/crent370/clib/exit.s deleted file mode 100644 index c9b8836..0000000 --- a/src/crent370/clib/exit.s +++ /dev/null @@ -1,50 +0,0 @@ - TITLE '/home/projects/crent370/clib/exit.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'exit' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'exit' -EXIT PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'exit' code - MVC 88(4,13),0(11) ==> status - LA 1,88(,13) - L 15,=V(@@EXIT) - BALR 14,15 -* Function 'exit' epilogue - PDPEPIL -* Function 'exit' literal pool - DS 0D - LTORG -* Function 'exit' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/exp.c b/src/crent370/clib/exp.c deleted file mode 100644 index 81a9837..0000000 --- a/src/crent370/clib/exp.c +++ /dev/null @@ -1,53 +0,0 @@ -/* EXP.C */ -#if 1 -#include "math.h" -#include "float.h" -#include "errno.h" -#include "stddef.h" - -#if 0 -/* - - Some constants to make life easier elsewhere - (These should I guess be in math.h) - -*/ -static const double pi = 3.1415926535897932384626433832795; -static const double ln10 = 2.3025850929940456840179914546844; -static const double ln2 = 0.69314718055994530941723212145818 ; -#else -#define pi (3.1415926535897932384626433832795) -#define ln10 (2.3025850929940456840179914546844) -#define ln2 (0.69314718055994530941723212145818) -#endif - -#else -#include -#endif - -/* - -exp(x) = 1 + x + x2/2 + x3/6 + x4/24 + x5/120 + ... + xn/n! + ... - -*/ -__PDPCLIB_API__ double exp (double x) -{ - int i; - double term,answer,work; - - i=2; - term=x; - answer=x; - - while (1) - { - work = i; - term = (term * x)/work; - if ( answer == (answer + term) )break; - answer = answer + (term); - i++; - } - - answer=answer+1.0; - return(answer); -} diff --git a/src/crent370/clib/exp.o b/src/crent370/clib/exp.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/exp.s b/src/crent370/clib/exp.s deleted file mode 100644 index 3763968..0000000 --- a/src/crent370/clib/exp.s +++ /dev/null @@ -1,68 +0,0 @@ - TITLE '/home/projects/crent370/clib/exp.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'exp' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'exp' -EXP PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'exp' code - LD 6,0(11) ==> x - LA 15,2(0,0) ==> i - LDR 4,6 ==> answer,x - LDR 0,6 ==> term,answer -@@L7 EQU * - MVC 80(4,13),=XL8'4E00000080000000' - ST 15,84(,13) ==> i - XI 84(13),128 - LD 2,80(,13) ==> work - SD 2,=XL8'4E00000080000000' ==> work - MDR 0,6 ==> x - DDR 0,2 ==> term,work - LDR 2,4 ==> answer - ADR 2,0 ==> answer,term - CDR 4,2 ==> answer - BE @@L3 - LDR 4,2 ==> answer - A 15,=F'1' ==> i - B @@L7 -@@L3 EQU * - AD 4,=D'1.0E0' ==> answer - LDR 0,4 ==> answer -* Function 'exp' epilogue - PDPEPIL -* Function 'exp' literal pool - DS 0D - LTORG -* Function 'exp' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/fabs.c b/src/crent370/clib/fabs.c deleted file mode 100644 index f7d1af0..0000000 --- a/src/crent370/clib/fabs.c +++ /dev/null @@ -1,31 +0,0 @@ -/* FABS.C */ -#if 0 -#include "math.h" -#include "float.h" -#include "errno.h" -#include "stddef.h" - -/* - - Some constants to make life easier elsewhere - (These should I guess be in math.h) - -*/ -static const double pi = 3.1415926535897932384626433832795; -static const double ln10 = 2.3025850929940456840179914546844; -static const double ln2 = 0.69314718055994530941723212145818 ; -#else -#include -#endif - -#ifdef fabs -#undef fabs -#endif -__PDPCLIB_API__ double fabs(double x) -{ - if (x < 0.0) - { - x = -x; - } - return (x); -} diff --git a/src/crent370/clib/fabs.o b/src/crent370/clib/fabs.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/fabs.s b/src/crent370/clib/fabs.s deleted file mode 100644 index ec5c76d..0000000 --- a/src/crent370/clib/fabs.s +++ /dev/null @@ -1,48 +0,0 @@ - TITLE '/home/projects/crent370/clib/fabs.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'fabs' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'fabs' -FABS PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'fabs' code - LD 2,0(11) ==> x - LPDR 0,2 ==> x -* Function 'fabs' epilogue - PDPEPIL -* Function 'fabs' literal pool - DS 0D - LTORG -* Function 'fabs' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/fclose.c b/src/crent370/clib/fclose.c deleted file mode 100644 index 1d30219..0000000 --- a/src/crent370/clib/fclose.c +++ /dev/null @@ -1,63 +0,0 @@ -/* FCLOSE.C */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "clibcrt.h" -#include "cliblock.h" -#include "clibary.h" - -extern int __fpfree(FILE *fp); - -int -fclose(FILE *fp) -{ - CLIBGRT *grt = __grtget(); - unsigned count; - if (!fp) goto quit; - if (strcmp(fp->eye, _FILE_EYE)!=0) goto quit; - - if (fp->flags & _FILE_FLAG_OPEN) { - /* flush any pending data to disk */ - fflush(fp); - - /* close the dataset */ - __aclose(fp->dcb); - fp->dcb = 0; - fp->asmbuf = 0; - } - - if (fp->buf) { - free(fp->buf); - fp->buf = 0; - fp->upto = 0; - fp->endbuf = 0; - } - - if (fp->flags & _FILE_FLAG_DYNAMIC) { - /* deallocate the dataset */ - __fpfree(fp); - } - - /* remove file handle from array of open file handles */ - lock(&grt->grtfile,0); - count = arraycount(&grt->grtfile); - while(count > 0) { - count--; - if (grt->grtfile[count]==fp) { - arraydel(&grt->grtfile, count+1); - break; - } - } - unlock(&grt->grtfile,0); - - free(fp); - -quit: - return 0; -} diff --git a/src/crent370/clib/fclose.o b/src/crent370/clib/fclose.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/fclose.s b/src/crent370/clib/fclose.s deleted file mode 100644 index 74be8ca..0000000 --- a/src/crent370/clib/fclose.s +++ /dev/null @@ -1,146 +0,0 @@ - TITLE '/home/projects/crent370/clib/fclose.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'fclose' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'fclose' -FCLOSE PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'fclose' code - L 4,0(11) ==> fp - LA 1,88(,13) - L 15,=V(@@GRTGET) - BALR 14,15 - LR 5,15 ==> grt - LTR 4,4 ==> fp - BE @@L3 - ST 4,88(13) ==> fp - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(STRCMP) - BALR 14,15 - LR 3,15 ==> grt - LTR 15,15 ==> grt - BNE @@L3 - LH 2,40(4) ==> .flags - N 2,=F'16384' - CH 2,=H'0' - BE @@L5 - ST 4,88(13) ==> fp - LA 1,88(,13) - L 15,=V(FFLUSH) - BALR 14,15 - MVC 88(4,13),8(4) ==> .dcb - LA 1,88(,13) - L 15,=V(@@ACLOSE) - BALR 14,15 - ST 3,8(4) ==> grt,dcb - ST 3,12(4) ==> grt,asmbuf -@@L5 EQU * - L 2,28(4) ==> .buf - LTR 2,2 - BE @@L6 - ST 2,88(13) - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - MVC 28(4,4),=F'0' ==> .buf - MVC 32(4,4),=F'0' ==> .upto - MVC 36(4,4),=F'0' ==> .endbuf -@@L6 EQU * - LH 2,40(4) ==> .flags - N 2,=F'-32768' - CH 2,=H'0' - BE @@L7 - ST 4,88(13) ==> fp - LA 1,88(,13) - L 15,=V(@@FPFREE) - BALR 14,15 -@@L7 EQU * - LR 2,5 ==> grt - A 2,=F'24' - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LTR 15,15 ==> count - BE @@L9 - LR 6,2 -@@L12 EQU * - BCTR 15,0 ==> count - L 2,24(5) ==> .grtfile - LR 3,15 ==> count - MH 3,=H'4' - L 2,0(3,2) - CLR 2,4 ==> fp - BNE @@L8 - ST 6,88(13) - LR 2,15 ==> count - A 2,=F'1' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@ARDEL) - BALR 14,15 - B @@L9 -@@L8 EQU * - LTR 15,15 ==> count - BNE @@L12 -@@L9 EQU * - LR 2,5 ==> grt - A 2,=F'24' - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - ST 4,88(13) ==> fp - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L3 EQU * - SLR 15,15 -* Function 'fclose' epilogue - PDPEPIL -* Function 'fclose' literal pool - DS 0D - LTORG -* Function 'fclose' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'F I L E' - DC X'0' - END diff --git a/src/crent370/clib/fctprtf@.c b/src/crent370/clib/fctprtf@.c deleted file mode 100644 index f9895d8..0000000 --- a/src/crent370/clib/fctprtf@.c +++ /dev/null @@ -1,19 +0,0 @@ -#define PRINTF_PRIVATE -#include - -__asm__("\n&FUNC SETC 'fctprintf_'"); -int fctprintf_(void (*out)(char character, void* arg), void* arg, const char* format, ...) -{ - va_list va; - out_fct_wrap_type out_fct_wrap; - int ret; - - out_fct_wrap.fct = out; - out_fct_wrap.arg = arg; - - va_start(va, format); - ret = _vsnprintf(_out_fct, (char*)&out_fct_wrap, (size_t)-1, format, va); - va_end(va); - - return ret; -} diff --git a/src/crent370/clib/fctprtf@.o b/src/crent370/clib/fctprtf@.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/fctprtf@.s b/src/crent370/clib/fctprtf@.s deleted file mode 100644 index a8ebb02..0000000 --- a/src/crent370/clib/fctprtf@.s +++ /dev/null @@ -1,63 +0,0 @@ - TITLE '/home/projects/crent370/clib/fctprtf@.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'fctprintf_' -* Program text area - DS 0F - EJECT -* external function 'fctprintf_' prologue -* frame base=88, local stack=8, call args=24 -&FUNC SETC 'fctprintf_' -FCTPRTF@ PDPPRLG CINDEX=0,FRAME=120,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'fctprintf_' code - MVC 112(4,13),0(11) ==> out - MVC 116(4,13),4(11) ==> .arg,arg - L 2,=V(@@PRTFX) - L 3,0(2) ==> __prtfx - MVC 88(4,13),12(3) ==> ._out_fct - LA 2,112(,13) - ST 2,92(13) - MVC 96(4,13),=F'-1' - MVC 100(4,13),8(11) - LA 2,12(,11) ==> va - ST 2,104(13) ==> va - L 2,44(3) ==> ._vsnprintf - LA 1,88(,13) - LA 15,0(2) - BALR 14,15 -* Function 'fctprintf_' epilogue - PDPEPIL -* Function 'fctprintf_' literal pool - DS 0D - LTORG -* Function 'fctprintf_' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/feof.c b/src/crent370/clib/feof.c deleted file mode 100644 index 55f64a1..0000000 --- a/src/crent370/clib/feof.c +++ /dev/null @@ -1,15 +0,0 @@ -/* FEOF.C */ -#include - -#undef getchar -#undef putchar -#undef getc -#undef putc -#undef feof -#undef ferror - -int -feof(FILE *fp) -{ - return (fp->flags & _FILE_FLAG_EOF ? 1 : 0); -} diff --git a/src/crent370/clib/feof.o b/src/crent370/clib/feof.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/feof.s b/src/crent370/clib/feof.s deleted file mode 100644 index f428842..0000000 --- a/src/crent370/clib/feof.s +++ /dev/null @@ -1,50 +0,0 @@ - TITLE '/home/projects/crent370/clib/feof.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'feof' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'feof' -FEOF PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'feof' code - L 2,0(11) ==> fp - LH 15,40(2) ==> .flags - N 15,=F'1' - N 15,=XL4'0000FFFF' -* Function 'feof' epilogue - PDPEPIL -* Function 'feof' literal pool - DS 0D - LTORG -* Function 'feof' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/ferror.c b/src/crent370/clib/ferror.c deleted file mode 100644 index 4fb5cdd..0000000 --- a/src/crent370/clib/ferror.c +++ /dev/null @@ -1,15 +0,0 @@ -/* FERROR.C */ -#include - -#undef getchar -#undef putchar -#undef getc -#undef putc -#undef feof -#undef ferror - -int -ferror(FILE *fp) -{ - return (fp->flags & _FILE_FLAG_ERROR ? 1 : 0); -} diff --git a/src/crent370/clib/ferror.o b/src/crent370/clib/ferror.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/ferror.s b/src/crent370/clib/ferror.s deleted file mode 100644 index 9921f90..0000000 --- a/src/crent370/clib/ferror.s +++ /dev/null @@ -1,51 +0,0 @@ - TITLE '/home/projects/crent370/clib/ferror.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'ferror' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'ferror' -FERROR PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ferror' code - L 2,0(11) ==> fp - LH 15,40(2) ==> .flags - N 15,=XL4'0000FFFF' - SRL 15,1 - N 15,=F'1' -* Function 'ferror' epilogue - PDPEPIL -* Function 'ferror' literal pool - DS 0D - LTORG -* Function 'ferror' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/fflush.c b/src/crent370/clib/fflush.c deleted file mode 100644 index 05f6f5b..0000000 --- a/src/crent370/clib/fflush.c +++ /dev/null @@ -1,17 +0,0 @@ -/* FFLUSH.C */ -#include "clibio.h" -#include "cliblock.h" - -int -fflush(FILE *fp) -{ - int err = 0; - - lock(fp,0); - - err = __fflush(fp); - - unlock(fp,0); - - return err; -} diff --git a/src/crent370/clib/fflush.o b/src/crent370/clib/fflush.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/fflush.s b/src/crent370/clib/fflush.s deleted file mode 100644 index 0942b31..0000000 --- a/src/crent370/clib/fflush.s +++ /dev/null @@ -1,63 +0,0 @@ - TITLE '/home/projects/crent370/clib/fflush.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'fflush' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'fflush' -FFLUSH PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'fflush' code - L 2,0(11) ==> fp - ST 2,88(13) ==> fp - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - ST 2,88(13) ==> fp - LA 1,88(,13) - L 15,=V(@@FFLUSH) - BALR 14,15 - LR 3,15 ==> err - ST 2,88(13) ==> fp - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,3 ==> err -* Function 'fflush' epilogue - PDPEPIL -* Function 'fflush' literal pool - DS 0D - LTORG -* Function 'fflush' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/fgetc.c b/src/crent370/clib/fgetc.c deleted file mode 100644 index cc14ddb..0000000 --- a/src/crent370/clib/fgetc.c +++ /dev/null @@ -1,17 +0,0 @@ -/* FGETC.C */ -#include "clibio.h" -#include "cliblock.h" - -int -fgetc(FILE *fp) -{ - int c; - - lock(fp, 0); - - c = __fgetc(fp); - - unlock(fp, 0); - - return c; -} diff --git a/src/crent370/clib/fgetc.o b/src/crent370/clib/fgetc.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/fgetc.s b/src/crent370/clib/fgetc.s deleted file mode 100644 index 8bbc5c9..0000000 --- a/src/crent370/clib/fgetc.s +++ /dev/null @@ -1,63 +0,0 @@ - TITLE '/home/projects/crent370/clib/fgetc.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'fgetc' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'fgetc' -FGETC PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'fgetc' code - L 2,0(11) ==> fp - ST 2,88(13) ==> fp - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - ST 2,88(13) ==> fp - LA 1,88(,13) - L 15,=V(@@FGETC) - BALR 14,15 - LR 3,15 ==> c - ST 2,88(13) ==> fp - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,3 ==> c -* Function 'fgetc' epilogue - PDPEPIL -* Function 'fgetc' literal pool - DS 0D - LTORG -* Function 'fgetc' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/fgetpos.c b/src/crent370/clib/fgetpos.c deleted file mode 100644 index 23e3490..0000000 --- a/src/crent370/clib/fgetpos.c +++ /dev/null @@ -1,9 +0,0 @@ -/* FGETPOS.C */ -#include - -int -fgetpos(FILE *stream, fpos_t *pos) -{ - *pos = ftell(stream); - return (0); -} diff --git a/src/crent370/clib/fgetpos.o b/src/crent370/clib/fgetpos.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/fgetpos.s b/src/crent370/clib/fgetpos.s deleted file mode 100644 index 3e112ec..0000000 --- a/src/crent370/clib/fgetpos.s +++ /dev/null @@ -1,53 +0,0 @@ - TITLE '/home/projects/crent370/clib/fgetpos.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'fgetpos' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'fgetpos' -FGETPOS PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'fgetpos' code - MVC 88(4,13),0(11) ==> stream - LA 1,88(,13) - L 15,=V(FTELL) - BALR 14,15 - L 2,4(11) ==> pos - ST 15,0(2) ==> pos - SLR 15,15 -* Function 'fgetpos' epilogue - PDPEPIL -* Function 'fgetpos' literal pool - DS 0D - LTORG -* Function 'fgetpos' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/fgets.c b/src/crent370/clib/fgets.c deleted file mode 100644 index 57f0043..0000000 --- a/src/crent370/clib/fgets.c +++ /dev/null @@ -1,15 +0,0 @@ -/* FGETS.C */ -#include "clibio.h" -#include "cliblock.h" - -char * -fgets(char *s, int n, FILE *fp) -{ - lock(fp, 0); - - s = __fgets(s,n,fp); - - unlock(fp, 0); - - return s; -} diff --git a/src/crent370/clib/fgets.o b/src/crent370/clib/fgets.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/fgets.s b/src/crent370/clib/fgets.s deleted file mode 100644 index 3293a05..0000000 --- a/src/crent370/clib/fgets.s +++ /dev/null @@ -1,66 +0,0 @@ - TITLE '/home/projects/crent370/clib/fgets.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'fgets' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'fgets' -FGETS PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'fgets' code - L 3,0(11) ==> s - L 2,8(11) ==> fp - ST 2,88(13) ==> fp - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - ST 3,88(13) ==> s - MVC 92(4,13),4(11) ==> n - ST 2,96(13) ==> fp - LA 1,88(,13) - L 15,=V(@@FGETS) - BALR 14,15 - LR 3,15 ==> s - ST 2,88(13) ==> fp - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,3 ==> s -* Function 'fgets' epilogue - PDPEPIL -* Function 'fgets' literal pool - DS 0D - LTORG -* Function 'fgets' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/floor.c b/src/crent370/clib/floor.c deleted file mode 100644 index bca0a21..0000000 --- a/src/crent370/clib/floor.c +++ /dev/null @@ -1,38 +0,0 @@ -/* FLOOR.C */ -#if 0 -#include "math.h" -#include "float.h" -#include "errno.h" -#include "stddef.h" - -/* - - Some constants to make life easier elsewhere - (These should I guess be in math.h) - -*/ -static const double pi = 3.1415926535897932384626433832795; -static const double ln10 = 2.3025850929940456840179914546844; -static const double ln2 = 0.69314718055994530941723212145818 ; -#else -#include -#endif - -__PDPCLIB_API__ double floor(double x) -{ - int y; - - if (x < 0.0) - { - y = (int)x; - if ((double)y != x) - { - y--; - } - } - else - { - y = (int)x; - } - return ((double)y); -} diff --git a/src/crent370/clib/floor.o b/src/crent370/clib/floor.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/floor.s b/src/crent370/clib/floor.s deleted file mode 100644 index 3cc62c0..0000000 --- a/src/crent370/clib/floor.s +++ /dev/null @@ -1,73 +0,0 @@ - TITLE '/home/projects/crent370/clib/floor.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'floor' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'floor' -FLOOR PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'floor' code - LD 2,0(11) ==> x - LTDR 2,2 ==> x - BNL @@L2 - LDR 0,2 ==> x - AD 0,=XL8'4F08000000000000' - STD 0,80(,13) - L 15,84(,13) ==> y - MVC 80(4,13),=XL8'4E00000080000000' - ST 15,84(,13) ==> y - XI 84(13),128 - LD 0,80(,13) - SD 0,=XL8'4E00000080000000' - CDR 0,2 ==> x - BE @@L6 - BCTR 15,0 ==> y - B @@L6 -@@L2 EQU * - LDR 0,2 ==> x - AD 0,=XL8'4F08000000000000' - STD 0,80(,13) - L 15,84(,13) ==> y -@@L6 EQU * - MVC 80(4,13),=XL8'4E00000080000000' - ST 15,84(,13) ==> y - XI 84(13),128 - LD 0,80(,13) - SD 0,=XL8'4E00000080000000' -* Function 'floor' epilogue - PDPEPIL -* Function 'floor' literal pool - DS 0D - LTORG -* Function 'floor' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/fmod.c b/src/crent370/clib/fmod.c deleted file mode 100644 index 277fc83..0000000 --- a/src/crent370/clib/fmod.c +++ /dev/null @@ -1,27 +0,0 @@ -/* FMOD.C */ -#if 0 -#include "math.h" -#include "float.h" -#include "errno.h" -#include "stddef.h" - -/* - - Some constants to make life easier elsewhere - (These should I guess be in math.h) - -*/ -static const double pi = 3.1415926535897932384626433832795; -static const double ln10 = 2.3025850929940456840179914546844; -static const double ln2 = 0.69314718055994530941723212145818 ; -#else -#include -#endif - -__PDPCLIB_API__ double fmod(double x, double y) -{ - int imod; - if(y == 0.0) return (0.0); - imod = x / y; - return ((double)x-((double)imod*y)); -} diff --git a/src/crent370/clib/fmod.o b/src/crent370/clib/fmod.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/fmod.s b/src/crent370/clib/fmod.s deleted file mode 100644 index ca4b341..0000000 --- a/src/crent370/clib/fmod.s +++ /dev/null @@ -1,66 +0,0 @@ - TITLE '/home/projects/crent370/clib/fmod.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'fmod' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'fmod' -FMOD PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'fmod' code - LD 6,0(11) ==> x - LD 4,8(11) ==> y - LD 0,=D'0.0E0' - LTDR 4,4 ==> y - BE @@L1 - LDR 2,6 ==> x - DDR 2,4 ==> y - LDR 0,2 - AD 0,=XL8'4F08000000000000' - STD 0,80(,13) - L 2,84(,13) ==> imod - MVC 80(4,13),=XL8'4E00000080000000' - ST 2,84(,13) ==> imod - XI 84(13),128 - LD 0,80(,13) - SD 0,=XL8'4E00000080000000' - MDR 0,4 ==> y - SDR 6,0 ==> x - LDR 0,6 ==> x -@@L1 EQU * -* Function 'fmod' epilogue - PDPEPIL -* Function 'fmod' literal pool - DS 0D - LTORG -* Function 'fmod' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/fopen.c b/src/crent370/clib/fopen.c deleted file mode 100644 index ae51514..0000000 --- a/src/crent370/clib/fopen.c +++ /dev/null @@ -1,161 +0,0 @@ -/* FOPEN.C */ -#include -#include -#include -#include "cliblock.h" -#include "clibary.h" -#include "clibcrt.h" - -extern char *__getpfx(void); - -extern int __fpmode(FILE *fp, const char *mode); -extern int __fpopen(FILE *fp); -extern int __fpstar(FILE *fp); -extern int __fpshr(FILE *fp); -extern int __fpold(FILE *fp); -extern int __fpnew(FILE *fp); - -FILE * -fopen(const char *fn, const char *mode) -{ - CLIBGRT *grt = __grtget(); - int err = 1; - FILE *fp = 0; - int i; - - if (!fn) goto quit; - if (!mode) goto quit; - - fp = calloc(1, sizeof(_FILE)); - if (!fp) goto quit; - - for(i=0; _FILE_EYE[i]; i++) { - fp->eye[i] = _FILE_EYE[i]; - } - err = __fpmode(fp, mode); - if (err) goto quit; - - if (fp->flags & _FILE_FLAG_WRITE) { - /* These values are used as a suggestion to __fpopen() and __aopen() - when opening a dataset that does not have DCB values */ - fp->recfm = _FILE_RECFM_V; /* __aopen() will try to open as variable length records */ - fp->lrecl = 136; /* this will be the block size, the lrecl will be 4 bytes less */ - } - - if (tolower(fn[0])=='d' && tolower(fn[1])=='d' && fn[2]==':') { - /* "DD:ddname[(member)]" */ - fn+=3; - for(i=0; i < 8 && *fn && *fn!='('; i++,fn++) { - fp->ddname[i] = toupper(*fn); - } - if (*fn=='(') { - /* extract member name */ - for(i=0, fn++; i < 8 && *fn && *fn!=')'; i++, fn++) { - fp->member[i] = toupper(*fn); - } - } - goto doopen; - } - - if (fn[0]=='*') { - /* SYSOUT request "*[ddname]" */ - /* copy ddname name */ - for(i=0, fn++;i < 8 && *fn && *fn !='('; i++, fn++) { - fp->ddname[i] = toupper(*fn); - } - if (fp->ddname[0]) { - /* try to open DDNAME */ - err = __fpopen(fp); - if (!err) goto quit; /* success, we're done */ - } - - /* allocate SYSOUT dataset */ - err = __fpstar(fp); - if (err) goto quit; - - /* open SYSOUT dataset */ - goto doopen; - } - - /* fn *should* be a dataset name */ - i = 0; - if (fn[0]=='\'') { - /* quoted dataset name */ - fn++; /* skip the single quote */ - } - else { - /* unquoted dataset name */ - if (fn[0]!='&') { - /* not a &temp dataset name */ - if (grt->grtflag1 & GRTFLAG1_TSO) { - /* running under TSO environment */ - char *gp = __getpfx(); - if (gp) { - /* prepend prefix */ - for(;i < 8 && *gp; i++,gp++) { - fp->dataset[i] = toupper(*gp); - } - fp->dataset[i++]='.'; - } - } - } - } - - /* copy dataset name */ - for(;i < 44 && *fn && *fn !='(' && *fn!='\''; i++, fn++) { - fp->dataset[i] = toupper(*fn); - } - if (*fn=='(') { - /* copy member name */ - fn++; - for(i=0; i < 8 && *fn && *fn!=')'; i++, fn++) { - fp->member[i] = toupper(*fn); - } - } - - if (fp->flags & _FILE_FLAG_READ) { - /* READ, allocate dataset DISP=SHR */ - err = __fpshr(fp); - } - else { - /* WRITE, allocate dataset */ - if (fp->dataset[0]=='&') { - /* temp dataset being allocated, try alloc DISP=NEW on VIO */ - err = __fptmp(fp); - if (!err) goto doopen; - } - if (fp->member[0]) { - /* allocate PDS member DISP=SHR */ - err = __fpshr(fp); - if (!err) goto doopen; - } - /* allocate dataset DISP=OLD */ - err = __fpold(fp); - if (!err) goto doopen; - - /* try allocating dataset DISP=NEW */ - err = __fpnew(fp); - } - if (err) goto quit; - -doopen: - err = __fpopen(fp); - -quit: - if (err) { - /* an error occured, return NULL */ - if (fp) { - /* close the file handle */ - fclose(fp); - fp = 0; - } - } - - if (fp) { - lock(&grt->grtfile,0); - arrayadd(&grt->grtfile, fp); - unlock(&grt->grtfile,0); - } - - return fp; -} diff --git a/src/crent370/clib/fopen.o b/src/crent370/clib/fopen.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/fopen.s b/src/crent370/clib/fopen.s deleted file mode 100644 index dd996b5..0000000 --- a/src/crent370/clib/fopen.s +++ /dev/null @@ -1,412 +0,0 @@ - TITLE '/home/projects/crent370/clib/fopen.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'fopen' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'fopen' -FOPEN PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'fopen' code - L 5,0(11) ==> fn - L 7,4(11) ==> mode - LA 1,88(,13) - L 15,=V(@@GRTGET) - BALR 14,15 - LR 8,15 ==> grt - LA 2,1(0,0) ==> err - SLR 6,6 ==> fp - LTR 5,5 ==> fn - BE @@L3 - LTR 7,7 ==> mode - BE @@L3 - ST 2,88(13) ==> err - MVC 92(4,13),=F'192' - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 6,15 ==> fp - LTR 15,15 ==> fp - BE @@L3 - SLR 4,4 ==> i - L 2,=A(@@LC0) - IC 2,0(4,2) ==> i - CLM 2,1,=XL1'00' - BE @@L74 - L 3,=A(@@LC0) -@@L10 EQU * - IC 2,0(4,3) ==> i - STC 2,0(4,6) ==> .eye - A 4,=F'1' ==> i - IC 2,0(4,3) ==> i - CLM 2,1,=XL1'00' - BNE @@L10 -@@L74 EQU * - ST 6,88(13) ==> fp - ST 7,92(13) ==> mode - LA 1,88(,13) - L 15,=V(@@FPMODE) - BALR 14,15 - LR 2,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LH 2,40(6) ==> .flags - N 2,=F'4096' - CH 2,=H'0' - BE @@L12 - MVI 42(6),64 ==> .recfm - MVC 16(2,6),=H'136' ==> .lrecl -@@L12 EQU * - SLR 2,2 - IC 2,0(5) ==> fn - L 3,=V(@@TOLOW) - L 3,0(3) ==> __tolow - MH 2,=H'2' - LH 2,0(2,3) - CLM 2,3,=H'132' - BNE @@L13 - SLR 2,2 - IC 2,1(5) - MH 2,=H'2' - LH 2,0(2,3) - CLM 2,3,=H'132' - BNE @@L13 - CLI 2(5),122 - BNE @@L13 - A 5,=F'3' ==> fn - SLR 4,4 ==> i - IC 2,0(5) ==> fn - CLM 2,1,=XL1'00' - BE @@L15 - SLL 2,24 - SRA 2,24 - C 2,=F'77' - BE @@L15 - L 7,=V(@@TOUP) -@@L19 EQU * - SLR 2,2 - IC 2,0(5) ==> fn - L 3,0(7) ==> __toup - MH 2,=H'2' - IC 3,1(2,3) - STC 3,43(6,4) ==> .ddname - A 4,=F'1' ==> i - A 5,=F'1' ==> fn - LA 2,7(0,0) - CR 4,2 ==> i - BH @@L15 - IC 2,0(5) ==> fn - CLM 2,1,=XL1'00' - BE @@L15 - CLM 2,1,=XL1'4D' - BNE @@L19 -@@L15 EQU * - CLI 0(5),77 ==> fn - BNE @@L27 - SLR 4,4 ==> i - A 5,=F'1' ==> fn - IC 2,0(5) ==> fn - CLM 2,1,=XL1'00' - BE @@L27 - SLL 2,24 - SRA 2,24 - C 2,=F'93' - BE @@L27 - L 7,=V(@@TOUP) -@@L26 EQU * - SLR 2,2 - IC 2,0(5) ==> fn - L 3,0(7) ==> __toup - MH 2,=H'2' - IC 3,1(2,3) - STC 3,52(6,4) ==> .member - A 4,=F'1' ==> i - A 5,=F'1' ==> fn - LA 2,7(0,0) - CR 4,2 ==> i - BH @@L27 - IC 2,0(5) ==> fn - CLM 2,1,=XL1'00' - BE @@L27 - CLM 2,1,=XL1'5D' - BNE @@L26 - B @@L27 -@@L13 EQU * - CLI 0(5),92 ==> fn - BNE @@L28 - SLR 4,4 ==> i - A 5,=F'1' ==> fn - IC 2,0(5) ==> fn - CLM 2,1,=XL1'00' - BE @@L30 - SLL 2,24 - SRA 2,24 - C 2,=F'77' - BE @@L30 - L 7,=V(@@TOUP) -@@L34 EQU * - SLR 2,2 - IC 2,0(5) ==> fn - L 3,0(7) ==> __toup - MH 2,=H'2' - IC 3,1(2,3) - STC 3,43(6,4) ==> .ddname - A 4,=F'1' ==> i - A 5,=F'1' ==> fn - LA 2,7(0,0) - CR 4,2 ==> i - BH @@L30 - IC 2,0(5) ==> fn - CLM 2,1,=XL1'00' - BE @@L30 - CLM 2,1,=XL1'4D' - BNE @@L34 -@@L30 EQU * - IC 2,43(6) ==> .ddname - CLM 2,1,=XL1'00' - BE @@L35 - ST 6,88(13) ==> fp - LA 1,88(,13) - L 15,=V(@@FPOPEN) - BALR 14,15 - LR 2,15 ==> err - LTR 15,15 ==> err - BE @@L3 -@@L35 EQU * - ST 6,88(13) ==> fp - LA 1,88(,13) - L 15,=V(@@FPSTAR) - BALR 14,15 - B @@L81 -@@L28 EQU * - SLR 4,4 ==> i - CLI 0(5),125 ==> fn - BNE @@L38 - A 5,=F'1' ==> fn - B @@L39 -@@L38 EQU * - CLI 0(5),80 ==> fn - BE @@L39 - IC 2,10(8) ==> .grtflag1 - N 2,=F'64' - CLM 2,1,=XL1'00' - BE @@L39 - LA 1,88(,13) - L 15,=V(@@GETPFX) - BALR 14,15 - LTR 15,15 ==> gp - BE @@L39 - LA 2,7(0,0) - CR 4,2 ==> i - BH @@L44 - IC 2,0(15) ==> gp - SLL 2,24 - SRA 2,24 - C 2,=F'0' - BE @@L44 - L 7,=V(@@TOUP) -@@L48 EQU * - SLR 2,2 - IC 2,0(15) ==> gp - L 3,0(7) ==> __toup - MH 2,=H'2' - IC 3,1(2,3) - STC 3,61(6,4) ==> .dataset - A 4,=F'1' ==> i - A 15,=F'1' ==> gp - LA 2,7(0,0) - CR 4,2 ==> i - BH @@L44 - IC 2,0(15) ==> gp - SLL 2,24 - SRA 2,24 - C 2,=F'0' - BNE @@L48 -@@L44 EQU * - LA 2,75(0,0) - STC 2,61(6,4) ==> .dataset - A 4,=F'1' ==> i -@@L39 EQU * - LA 2,43(0,0) - CR 4,2 ==> i - BH @@L50 - IC 2,0(5) ==> fn - CLM 2,1,=XL1'00' - BE @@L50 - CLM 2,1,=XL1'4D' - BE @@L50 - SLL 2,24 - SRA 2,24 - C 2,=F'125' - BE @@L50 - L 7,=V(@@TOUP) -@@L54 EQU * - SLR 2,2 - IC 2,0(5) ==> fn - L 3,0(7) ==> __toup - MH 2,=H'2' - IC 3,1(2,3) - STC 3,61(6,4) ==> .dataset - A 4,=F'1' ==> i - A 5,=F'1' ==> fn - LA 2,43(0,0) - CR 4,2 ==> i - BH @@L50 - IC 2,0(5) ==> fn - CLM 2,1,=XL1'00' - BE @@L50 - CLM 2,1,=XL1'4D' - BE @@L50 - CLM 2,1,=XL1'7D' - BNE @@L54 -@@L50 EQU * - CLI 0(5),77 ==> fn - BNE @@L55 - A 5,=F'1' ==> fn - SLR 4,4 ==> i - IC 2,0(5) ==> fn - CLM 2,1,=XL1'00' - BE @@L55 - SLL 2,24 - SRA 2,24 - C 2,=F'93' - BE @@L55 - L 7,=V(@@TOUP) -@@L61 EQU * - SLR 2,2 - IC 2,0(5) ==> fn - L 3,0(7) ==> __toup - MH 2,=H'2' - IC 3,1(2,3) - STC 3,52(6,4) ==> .member - A 4,=F'1' ==> i - A 5,=F'1' ==> fn - LA 2,7(0,0) - CR 4,2 ==> i - BH @@L55 - IC 2,0(5) ==> fn - CLM 2,1,=XL1'00' - BE @@L55 - CLM 2,1,=XL1'5D' - BNE @@L61 -@@L55 EQU * - LH 2,40(6) ==> .flags - N 2,=F'8192' - CH 2,=H'0' - BE @@L62 - ST 6,88(13) ==> fp - LA 1,88(,13) - L 15,=V(@@FPSHR) - BALR 14,15 - B @@L81 -@@L62 EQU * - CLI 61(6),80 ==> .dataset - BNE @@L64 - ST 6,88(13) ==> fp - LA 1,88(,13) - L 15,=V(@@FPTMP) - BALR 14,15 - LTR 15,15 ==> err - BE @@L27 -@@L64 EQU * - IC 2,52(6) ==> .member - CLM 2,1,=XL1'00' - BE @@L66 - ST 6,88(13) ==> fp - LA 1,88(,13) - L 15,=V(@@FPSHR) - BALR 14,15 - LTR 15,15 ==> err - BE @@L27 -@@L66 EQU * - ST 6,88(13) ==> fp - LA 1,88(,13) - L 15,=V(@@FPOLD) - BALR 14,15 - LTR 15,15 ==> err - BE @@L27 - ST 6,88(13) ==> fp - LA 1,88(,13) - L 15,=V(@@FPNEW) - BALR 14,15 -@@L81 EQU * - LR 2,15 ==> err - LTR 15,15 ==> err - BNE @@L3 -@@L27 EQU * - ST 6,88(13) ==> fp - LA 1,88(,13) - L 15,=V(@@FPOPEN) - BALR 14,15 - LR 2,15 ==> err -@@L3 EQU * - LTR 2,2 ==> err - BE @@L70 - LTR 6,6 ==> fp - BE @@L70 - ST 6,88(13) ==> fp - LA 1,88(,13) - L 15,=V(FCLOSE) - BALR 14,15 - SLR 6,6 ==> fp -@@L70 EQU * - LTR 6,6 ==> fp - BE @@L72 - LR 2,8 ==> grt - A 2,=F'24' - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - ST 2,88(13) - ST 6,92(13) ==> fp - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L72 EQU * - LR 15,6 ==> fp -* Function 'fopen' epilogue - PDPEPIL -* Function 'fopen' literal pool - DS 0D - LTORG -* Function 'fopen' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'F I L E' - DC X'0' - END diff --git a/src/crent370/clib/fprintf.c b/src/crent370/clib/fprintf.c deleted file mode 100644 index 465c06d..0000000 --- a/src/crent370/clib/fprintf.c +++ /dev/null @@ -1,24 +0,0 @@ -/* FPRINTF.C */ -#include - -int -fprintf(FILE *stream, const char *format, ...) -{ - va_list arg; - int ret; -#if 1 - int len; - char buf[8192]; -#endif - - va_start(arg, format); -#if 1 - len = vsnprintf(buf, sizeof(buf), format, arg); - if (len > sizeof(buf)) len = sizeof(buf); - ret = fwrite(buf, 1, len, stream); -#else - ret = vfprintf(stream, format, arg); -#endif - va_end(arg); - return (ret); -} diff --git a/src/crent370/clib/fprintf.o b/src/crent370/clib/fprintf.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/fprintf.s b/src/crent370/clib/fprintf.s deleted file mode 100644 index 2d6184d..0000000 --- a/src/crent370/clib/fprintf.s +++ /dev/null @@ -1,68 +0,0 @@ - TITLE '/home/projects/crent370/clib/fprintf.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'fprintf' prologue -* frame base=88, local stack=8192, call args=16 -&FUNC SETC 'fprintf' -FPRINTF PDPPRLG CINDEX=0,FRAME=8296,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'fprintf' code - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=F'8192' - MVC 96(4,13),4(11) - LA 2,8(,11) ==> arg - ST 2,100(13) ==> arg - LA 1,88(,13) - L 15,=V(VSNPRINT) - BALR 14,15 - L 2,=F'8192' - CLR 15,2 ==> len - BNH @@L2 - LR 15,2 ==> len -@@L2 EQU * - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=F'1' - ST 15,96(13) ==> len - MVC 100(4,13),0(11) ==> stream - LA 1,88(,13) - L 15,=V(FWRITE) - BALR 14,15 -* Function 'fprintf' epilogue - PDPEPIL -* Function 'fprintf' literal pool - DS 0D - LTORG -* Function 'fprintf' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/fputc.c b/src/crent370/clib/fputc.c deleted file mode 100644 index e8829b7..0000000 --- a/src/crent370/clib/fputc.c +++ /dev/null @@ -1,17 +0,0 @@ -/* FPUTC.C */ -#include "clibio.h" -#include "cliblock.h" - -int -fputc(int c, FILE *fp) -{ - int rc; - - lock(fp,0); - - rc = __fputc(c,fp); - - unlock(fp,0); - - return rc; -} diff --git a/src/crent370/clib/fputc.o b/src/crent370/clib/fputc.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/fputc.s b/src/crent370/clib/fputc.s deleted file mode 100644 index 25fb9d1..0000000 --- a/src/crent370/clib/fputc.s +++ /dev/null @@ -1,64 +0,0 @@ - TITLE '/home/projects/crent370/clib/fputc.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'fputc' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'fputc' -FPUTC PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'fputc' code - L 2,4(11) ==> fp - ST 2,88(13) ==> fp - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - MVC 88(4,13),0(11) ==> c - ST 2,92(13) ==> fp - LA 1,88(,13) - L 15,=V(@@FPUTC) - BALR 14,15 - LR 3,15 ==> rc - ST 2,88(13) ==> fp - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,3 ==> rc -* Function 'fputc' epilogue - PDPEPIL -* Function 'fputc' literal pool - DS 0D - LTORG -* Function 'fputc' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/fputs.c b/src/crent370/clib/fputs.c deleted file mode 100644 index ab34dac..0000000 --- a/src/crent370/clib/fputs.c +++ /dev/null @@ -1,17 +0,0 @@ -/* FPUTS.C */ -#include "clibio.h" -#include "cliblock.h" - -int -fputs(const char *s, FILE *fp) -{ - int rc; - - lock(fp,0); - - rc = __fputs(s,fp); - - unlock(fp,0); - - return rc; -} diff --git a/src/crent370/clib/fputs.o b/src/crent370/clib/fputs.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/fputs.s b/src/crent370/clib/fputs.s deleted file mode 100644 index 2e18d03..0000000 --- a/src/crent370/clib/fputs.s +++ /dev/null @@ -1,64 +0,0 @@ - TITLE '/home/projects/crent370/clib/fputs.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'fputs' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'fputs' -FPUTS PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'fputs' code - L 2,4(11) ==> fp - ST 2,88(13) ==> fp - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - MVC 88(4,13),0(11) ==> s - ST 2,92(13) ==> fp - LA 1,88(,13) - L 15,=V(@@FPUTS) - BALR 14,15 - LR 3,15 ==> rc - ST 2,88(13) ==> fp - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,3 ==> rc -* Function 'fputs' epilogue - PDPEPIL -* Function 'fputs' literal pool - DS 0D - LTORG -* Function 'fputs' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/fread.c b/src/crent370/clib/fread.c deleted file mode 100644 index ef7cf0e..0000000 --- a/src/crent370/clib/fread.c +++ /dev/null @@ -1,17 +0,0 @@ -/* FREAD.C */ -#include "clibio.h" -#include "cliblock.h" - -size_t -fread(void *ptr, size_t size, size_t nmemb, FILE *fp) -{ - size_t rc; - - lock(fp,0); - - rc = __fread(ptr,size,nmemb,fp); - - unlock(fp,0); - - return rc; -} diff --git a/src/crent370/clib/fread.o b/src/crent370/clib/fread.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/fread.s b/src/crent370/clib/fread.s deleted file mode 100644 index 4194611..0000000 --- a/src/crent370/clib/fread.s +++ /dev/null @@ -1,66 +0,0 @@ - TITLE '/home/projects/crent370/clib/fread.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'fread' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'fread' -FREAD PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'fread' code - L 2,12(11) ==> fp - ST 2,88(13) ==> fp - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - MVC 88(4,13),0(11) ==> ptr - MVC 92(4,13),4(11) ==> size - MVC 96(4,13),8(11) ==> nmemb - ST 2,100(13) ==> fp - LA 1,88(,13) - L 15,=V(@@FREAD) - BALR 14,15 - LR 3,15 ==> rc - ST 2,88(13) ==> fp - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,3 ==> rc -* Function 'fread' epilogue - PDPEPIL -* Function 'fread' literal pool - DS 0D - LTORG -* Function 'fread' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/free.c b/src/crent370/clib/free.c deleted file mode 100644 index 09d66fc..0000000 --- a/src/crent370/clib/free.c +++ /dev/null @@ -1,58 +0,0 @@ -/* FREE.C */ -#define STDLIB_C -#include "stdlib.h" -#include "signal.h" -#include "string.h" -#include "ctype.h" -#include "stddef.h" -#include "mvssupa.h" - -#if USE_MEMMGR -#include "__memmgr.h" -/* GCCMVS 3.4.6 requires 49 MB minimum for full optimization */ -/* so we give it 60. GCCMVS 3.2.3 only requires 20 MB */ -/* Note that you can set MAX_CHUNK to less than REQ_CHUNK */ -/* But don't do this until MVS/380 etc have been changed to */ -/* allow multiple memory requests. */ -#if defined(MULMEM) -#define MAX_CHUNK 60000000 -#define REQ_CHUNK 60000000 -#else -#define MAX_CHUNK 60000000 /* maximum size we will store in memmgr */ -#define REQ_CHUNK 60000000 /* size that we request from OS */ -#endif - -void *__lastsup = NULL; /* last thing supplied to memmgr */ -#endif - -__PDPCLIB_API__ void free(void *ptr) -{ -#if USE_MEMMGR - if (ptr != NULL) { - size_t size; - - size = *((size_t *)ptr - 1); - if (size > MAX_CHUNK) { -#if defined(MULMEM) - /* Ignore, unless MULMEM is defined, until MVS/380 is fixed */ - __freem(ptr); -#endif - } - else - { - memmgrFree(&__memmgr, ptr); - } - } -#else /* not using MEMMGR */ -#if 0 /* debug free problem */ - char caller[256] = ""; - __caller(caller); - wtof("free(%08X) called by %s", ptr, caller); -#endif /* debug free problem */ - if (ptr) { - __freem(ptr); - } - -#endif /* not USE_MEMMGR */ - return; -} diff --git a/src/crent370/clib/free.o b/src/crent370/clib/free.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/free.s b/src/crent370/clib/free.s deleted file mode 100644 index 599f9b9..0000000 --- a/src/crent370/clib/free.s +++ /dev/null @@ -1,54 +0,0 @@ - TITLE '/home/projects/crent370/clib/free.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'free' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'free' -FREE PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'free' code - L 15,0(11) ==> ptr - LTR 15,15 ==> ptr - BE @@L1 - ST 15,88(13) ==> ptr - LA 1,88(,13) - L 15,=V(@@FREEM) - BALR 14,15 -@@L1 EQU * -* Function 'free' epilogue - PDPEPIL -* Function 'free' literal pool - DS 0D - LTORG -* Function 'free' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/freopen.c b/src/crent370/clib/freopen.c deleted file mode 100644 index 570f20c..0000000 --- a/src/crent370/clib/freopen.c +++ /dev/null @@ -1,17 +0,0 @@ -/* FREOPEN.C */ -#include "clibio.h" -#include "cliblock.h" - -FILE * -freopen(const char *fn, const char *mode, FILE *fp) -{ - FILE *f; - - lock(fp,0); - - f = __reopen(fn,mode,fp); - - unlock(fp,0); - - return f; -} diff --git a/src/crent370/clib/freopen.o b/src/crent370/clib/freopen.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/freopen.s b/src/crent370/clib/freopen.s deleted file mode 100644 index 8900a84..0000000 --- a/src/crent370/clib/freopen.s +++ /dev/null @@ -1,65 +0,0 @@ - TITLE '/home/projects/crent370/clib/freopen.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'freopen' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'freopen' -FREOPEN PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'freopen' code - L 2,8(11) ==> fp - ST 2,88(13) ==> fp - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - MVC 88(4,13),0(11) ==> fn - MVC 92(4,13),4(11) ==> mode - ST 2,96(13) ==> fp - LA 1,88(,13) - L 15,=V(@@REOPEN) - BALR 14,15 - LR 3,15 ==> f - ST 2,88(13) ==> fp - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,3 ==> f -* Function 'freopen' epilogue - PDPEPIL -* Function 'freopen' literal pool - DS 0D - LTORG -* Function 'freopen' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/frexp.c b/src/crent370/clib/frexp.c deleted file mode 100644 index 35b8461..0000000 --- a/src/crent370/clib/frexp.c +++ /dev/null @@ -1,59 +0,0 @@ -/* FREXP.C */ -#if 1 -#include "math.h" -#include "float.h" -#include "errno.h" -#include "stddef.h" - -#if 0 -/* - - Some constants to make life easier elsewhere - (These should I guess be in math.h) - -*/ -static const double pi = 3.1415926535897932384626433832795; -static const double ln10 = 2.3025850929940456840179914546844; -static const double ln2 = 0.69314718055994530941723212145818 ; -#else -#define pi (3.1415926535897932384626433832795) -#define ln10 (2.3025850929940456840179914546844) -#define ln2 (0.69314718055994530941723212145818) -#endif - -#else -#include -#endif - -__PDPCLIB_API__ double frexp(double x, int *exp) -{ -/* - split float into fraction and mantissa - note this is not so easy for IBM as it uses HEX float -*/ - union dblhex - { - double d; - unsigned short s[4]; - }; - union dblhex split; - - if ( x == 0.0) - { - exp=0; - return (0.0); - } - - split.d = x; - *exp = (((split.s[0] >> 8) & 0x007f)-64) * 4; - split.s[0] = split.s[0] & 0x80ff; - split.s[0] = split.s[0] | 0x4000; - /* following code adjust for fact IBM has hex float */ - while ( (fabs(split.d) < 0.5) && (split.d != 0) ) - { - split.d = split.d * 2; - *exp =( *exp ) - 1; - } - /* */ - return(split.d); -} diff --git a/src/crent370/clib/frexp.o b/src/crent370/clib/frexp.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/frexp.s b/src/crent370/clib/frexp.s deleted file mode 100644 index ee8500a..0000000 --- a/src/crent370/clib/frexp.s +++ /dev/null @@ -1,103 +0,0 @@ - TITLE '/home/projects/crent370/clib/frexp.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'frexp' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'frexp' -FREXP PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'frexp' code - LD 2,0(11) ==> x - L 6,8(11) ==> exp - LD 0,=D'0.0E0' ==> split - LTDR 2,2 ==> x - BE @@L1 - STD 2,80(,13) ==> x - LM 4,5,80(13) ==> split - STE 2,80(,13) - L 2,80(,13) - SRL 2,16 - SLL 2,16 - SRA 2,16 - LR 3,2 - N 3,=XL4'0000FFFF' - SRL 3,8 - N 3,=F'127' - MH 3,=H'4' - A 3,=F'-256' - ST 3,0(6) ==> exp - N 2,=F'33023' - SLL 2,16 - N 4,=F'65535' - OR 4,2 - LR 2,4 - SRL 2,16 - SLL 2,16 - SRA 2,16 - O 2,=F'16384' - SLL 2,16 - N 4,=F'65535' - OR 4,2 - B @@L4 -@@L9 EQU * - STM 4,5,80(13) ==> split - LD 0,80(,13) ==> split - ADR 0,0 ==> split - STD 0,80(,13) ==> split - LM 4,5,80(13) ==> split - L 2,0(6) ==> exp - BCTR 2,0 - ST 2,0(6) ==> exp -@@L4 EQU * - ST 4,88(13) ==> split - ST 5,4+88(13) ==> split - LA 1,88(,13) - L 15,=V(FABS) - BALR 14,15 - CD 0,=D'5.0E-1' ==> split - BNL @@L5 - STM 4,5,80(13) - LD 0,80(,13) - LTDR 0,0 - BNE @@L9 -@@L5 EQU * - STM 4,5,80(13) ==> split - LD 0,80(,13) ==> split -@@L1 EQU * -* Function 'frexp' epilogue - PDPEPIL -* Function 'frexp' literal pool - DS 0D - LTORG -* Function 'frexp' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/fscanf.c b/src/crent370/clib/fscanf.c deleted file mode 100644 index 1efd103..0000000 --- a/src/crent370/clib/fscanf.c +++ /dev/null @@ -1,15 +0,0 @@ -/* FSCANF.C */ -#include -#include - -int -fscanf(FILE *stream, const char *format, ...) -{ - va_list arg; - int ret; - - va_start(arg, format); - ret = vvscanf(format, arg, stream, NULL); - va_end(arg); - return (ret); -} diff --git a/src/crent370/clib/fscanf.o b/src/crent370/clib/fscanf.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/fscanf.s b/src/crent370/clib/fscanf.s deleted file mode 100644 index 041cc29..0000000 --- a/src/crent370/clib/fscanf.s +++ /dev/null @@ -1,54 +0,0 @@ - TITLE '/home/projects/crent370/clib/fscanf.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'fscanf' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'fscanf' -FSCANF PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'fscanf' code - MVC 88(4,13),4(11) - LA 2,8(,11) ==> arg - ST 2,92(13) ==> arg - MVC 96(4,13),0(11) ==> stream - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(VVSCANF) - BALR 14,15 -* Function 'fscanf' epilogue - PDPEPIL -* Function 'fscanf' literal pool - DS 0D - LTORG -* Function 'fscanf' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/fseek.c b/src/crent370/clib/fseek.c deleted file mode 100644 index a9e1ee8..0000000 --- a/src/crent370/clib/fseek.c +++ /dev/null @@ -1,17 +0,0 @@ -/* FSEEK.C */ -#include "clibio.h" -#include "cliblock.h" - -int -fseek(FILE *fp, long int offset, int whence) -{ - int rc; - - lock(fp,0); - - rc = __fseek(fp,offset,whence); - - unlock(fp,0); - - return rc; -} diff --git a/src/crent370/clib/fseek.o b/src/crent370/clib/fseek.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/fseek.s b/src/crent370/clib/fseek.s deleted file mode 100644 index 9f6b238..0000000 --- a/src/crent370/clib/fseek.s +++ /dev/null @@ -1,65 +0,0 @@ - TITLE '/home/projects/crent370/clib/fseek.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'fseek' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'fseek' -FSEEK PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'fseek' code - L 2,0(11) ==> fp - ST 2,88(13) ==> fp - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - ST 2,88(13) ==> fp - MVC 92(4,13),4(11) ==> offset - MVC 96(4,13),8(11) ==> whence - LA 1,88(,13) - L 15,=V(@@FSEEK) - BALR 14,15 - LR 3,15 ==> rc - ST 2,88(13) ==> fp - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,3 ==> rc -* Function 'fseek' epilogue - PDPEPIL -* Function 'fseek' literal pool - DS 0D - LTORG -* Function 'fseek' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/fsetpos.c b/src/crent370/clib/fsetpos.c deleted file mode 100644 index b90fe3d..0000000 --- a/src/crent370/clib/fsetpos.c +++ /dev/null @@ -1,8 +0,0 @@ -/* FSETPOS.C */ -#include - -int -fsetpos(FILE *stream, const fpos_t *pos) -{ - return fseek(stream, *pos, SEEK_SET); -} diff --git a/src/crent370/clib/fsetpos.o b/src/crent370/clib/fsetpos.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/fsetpos.s b/src/crent370/clib/fsetpos.s deleted file mode 100644 index 7e4de81..0000000 --- a/src/crent370/clib/fsetpos.s +++ /dev/null @@ -1,53 +0,0 @@ - TITLE '/home/projects/crent370/clib/fsetpos.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'fsetpos' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'fsetpos' -FSETPOS PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'fsetpos' code - MVC 88(4,13),0(11) ==> stream - L 2,4(11) ==> pos - MVC 92(4,13),0(2) ==> pos - MVC 96(4,13),=F'0' - LA 1,88(,13) - L 15,=V(FSEEK) - BALR 14,15 -* Function 'fsetpos' epilogue - PDPEPIL -* Function 'fsetpos' literal pool - DS 0D - LTORG -* Function 'fsetpos' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/ftell.c b/src/crent370/clib/ftell.c deleted file mode 100644 index 69696dd..0000000 --- a/src/crent370/clib/ftell.c +++ /dev/null @@ -1,8 +0,0 @@ -/* FTELL.C */ -#include - -long int -ftell(FILE *fp) -{ - return fp->filepos; -} diff --git a/src/crent370/clib/ftell.o b/src/crent370/clib/ftell.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/ftell.s b/src/crent370/clib/ftell.s deleted file mode 100644 index f126844..0000000 --- a/src/crent370/clib/ftell.s +++ /dev/null @@ -1,48 +0,0 @@ - TITLE '/home/projects/crent370/clib/ftell.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'ftell' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'ftell' -FTELL PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ftell' code - L 2,0(11) ==> fp - L 15,24(2) ==> .filepos -* Function 'ftell' epilogue - PDPEPIL -* Function 'ftell' literal pool - DS 0D - LTORG -* Function 'ftell' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/fwrite.c b/src/crent370/clib/fwrite.c deleted file mode 100644 index 2807426..0000000 --- a/src/crent370/clib/fwrite.c +++ /dev/null @@ -1,17 +0,0 @@ -/* FWRITE.C */ -#include "clibio.h" -#include "cliblock.h" - -size_t -fwrite(const void *vptr, size_t size, size_t nmemb, FILE *fp) -{ - size_t rc; - - lock(fp,0); - - rc = __fwrite(vptr, size, nmemb, fp); - - unlock(fp,0); - - return rc; -} diff --git a/src/crent370/clib/fwrite.o b/src/crent370/clib/fwrite.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/fwrite.s b/src/crent370/clib/fwrite.s deleted file mode 100644 index 7c92c6e..0000000 --- a/src/crent370/clib/fwrite.s +++ /dev/null @@ -1,66 +0,0 @@ - TITLE '/home/projects/crent370/clib/fwrite.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'fwrite' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'fwrite' -FWRITE PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'fwrite' code - L 2,12(11) ==> fp - ST 2,88(13) ==> fp - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - MVC 88(4,13),0(11) ==> vptr - MVC 92(4,13),4(11) ==> size - MVC 96(4,13),8(11) ==> nmemb - ST 2,100(13) ==> fp - LA 1,88(,13) - L 15,=V(@@FWRITE) - BALR 14,15 - LR 3,15 ==> rc - ST 2,88(13) ==> fp - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,3 ==> rc -* Function 'fwrite' epilogue - PDPEPIL -* Function 'fwrite' literal pool - DS 0D - LTORG -* Function 'fwrite' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/getc.c b/src/crent370/clib/getc.c deleted file mode 100644 index e090ba2..0000000 --- a/src/crent370/clib/getc.c +++ /dev/null @@ -1,15 +0,0 @@ -/* GETC.C */ -#include - -#undef getchar -#undef putchar -#undef getc -#undef putc -#undef feof -#undef ferror - -int -getc(FILE *stream) -{ - return (fgetc(stream)); -} diff --git a/src/crent370/clib/getc.o b/src/crent370/clib/getc.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/getc.s b/src/crent370/clib/getc.s deleted file mode 100644 index 7017e51..0000000 --- a/src/crent370/clib/getc.s +++ /dev/null @@ -1,50 +0,0 @@ - TITLE '/home/projects/crent370/clib/getc.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'getc' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'getc' -GETC PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'getc' code - MVC 88(4,13),0(11) ==> stream - LA 1,88(,13) - L 15,=V(FGETC) - BALR 14,15 -* Function 'getc' epilogue - PDPEPIL -* Function 'getc' literal pool - DS 0D - LTORG -* Function 'getc' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/getchar.c b/src/crent370/clib/getchar.c deleted file mode 100644 index 3a88e4f..0000000 --- a/src/crent370/clib/getchar.c +++ /dev/null @@ -1,15 +0,0 @@ -/* GETCHAR.C */ -#include - -#undef getchar -#undef putchar -#undef getc -#undef putc -#undef feof -#undef ferror - -int -getchar(void) -{ - return (getc(stdin)); -} diff --git a/src/crent370/clib/getchar.o b/src/crent370/clib/getchar.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/getchar.s b/src/crent370/clib/getchar.s deleted file mode 100644 index 8b6b0a3..0000000 --- a/src/crent370/clib/getchar.s +++ /dev/null @@ -1,53 +0,0 @@ - TITLE '/home/projects/crent370/clib/getchar.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'getchar' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'getchar' -GETCHAR PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'getchar' code - LA 1,88(,13) - L 15,=V(@@GTIN) - BALR 14,15 - MVC 88(4,13),0(15) - LA 1,88(,13) - L 15,=V(GETC) - BALR 14,15 -* Function 'getchar' epilogue - PDPEPIL -* Function 'getchar' literal pool - DS 0D - LTORG -* Function 'getchar' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/getenv.c b/src/crent370/clib/getenv.c deleted file mode 100644 index 9bbd8a1..0000000 --- a/src/crent370/clib/getenv.c +++ /dev/null @@ -1,21 +0,0 @@ -/* GETENV.C */ -#include -#include -#include -#include "clibenv.h" -#include "cliblock.h" -#include "clibcrt.h" - -char * -getenv(const char *name) -{ - CLIBGRT *grt = __grtget(); - int index; - char *result; - - lock(&grt->grtenv,0); - result = __findenv(name, &index, 0); /* same case */ - unlock(&grt->grtenv,0); - - return result; -} diff --git a/src/crent370/clib/getenv.o b/src/crent370/clib/getenv.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/getenv.s b/src/crent370/clib/getenv.s deleted file mode 100644 index 499f01a..0000000 --- a/src/crent370/clib/getenv.s +++ /dev/null @@ -1,70 +0,0 @@ - TITLE '/home/projects/crent370/clib/getenv.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'getenv' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'getenv' -GETENV PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'getenv' code - LA 1,88(,13) - L 15,=V(@@GRTGET) - BALR 14,15 - LR 2,15 ==> grt - A 2,=F'32' - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - MVC 88(4,13),0(11) ==> name - LA 3,104(,13) - ST 3,92(13) - MVC 96(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@FINDEN) - BALR 14,15 - LR 3,15 ==> result - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,3 ==> result -* Function 'getenv' epilogue - PDPEPIL -* Function 'getenv' literal pool - DS 0D - LTORG -* Function 'getenv' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/getenvi.c b/src/crent370/clib/getenvi.c deleted file mode 100644 index bf63255..0000000 --- a/src/crent370/clib/getenvi.c +++ /dev/null @@ -1,21 +0,0 @@ -/* GETENVI.C */ -#include -#include -#include -#include "clibenv.h" -#include "cliblock.h" -#include "clibcrt.h" - -char * -getenvi(const char *name) -{ - CLIBGRT *grt = __grtget(); - int index; - char *result; - - lock(&grt->grtenv,0); - result = __findenv(name, &index, 1); /* ignore case */ - unlock(&grt->grtenv,0); - - return result; -} diff --git a/src/crent370/clib/getenvi.o b/src/crent370/clib/getenvi.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/getenvi.s b/src/crent370/clib/getenvi.s deleted file mode 100644 index 6e07ea5..0000000 --- a/src/crent370/clib/getenvi.s +++ /dev/null @@ -1,70 +0,0 @@ - TITLE '/home/projects/crent370/clib/getenvi.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'getenvi' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'getenvi' -GETENVI PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'getenvi' code - LA 1,88(,13) - L 15,=V(@@GRTGET) - BALR 14,15 - LR 2,15 ==> grt - A 2,=F'32' - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - MVC 88(4,13),0(11) ==> name - LA 3,104(,13) - ST 3,92(13) - MVC 96(4,13),=F'1' - LA 1,88(,13) - L 15,=V(@@FINDEN) - BALR 14,15 - LR 3,15 ==> result - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,3 ==> result -* Function 'getenvi' epilogue - PDPEPIL -* Function 'getenvi' literal pool - DS 0D - LTORG -* Function 'getenvi' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/getmain.c b/src/crent370/clib/getmain.c deleted file mode 100644 index 95d3c0c..0000000 --- a/src/crent370/clib/getmain.c +++ /dev/null @@ -1,154 +0,0 @@ -#include -#include -#include -#include - -#if 0 -/* This is a map of the prefix area for the storage we obtain and free. - We don't actually use this PREFIX as the GCCMVS compiler generates - correct but inefficient code sequences, so we do our own shifts and - OR sequences instead to get slightly better code generation. */ -typedef struct prefix PREFIX; -struct prefix { - unsigned sp : 8; /* 1 bytes subpool */ - unsigned len : 24; /* 3 bytes GETMAIN'd length */ - unsigned key : 8; /* 1 byte PSW key for storage */ - unsigned size : 24; /* 3 byte caller requested size */ -} __attribute__((packed)); /* 8 byte prefix area */ -#endif - -__asm__("\n&FUNC SETC 'getmain'"); -void *getmain(unsigned size, unsigned sp) -{ - int rc = 0; - void *r1 = (void*)0; - unsigned lv; - unsigned char pswkey; - - if (!size) return (void*)0; /* no size, fail */ - if (size > 0x00FFFFFF) return (void*)0; /* too large, fail */ - - /* are we executing in supervisor state? */ - if (__issup()) { - /* yes, get the PSW key */ - __asm__("IPK\t0 get psw key in R2\n\t" - "STC\t2,0(,%0) save psw key" : : "r"(&pswkey) : "2"); - } - else { - unsigned *psa = 0; /* low core == PSA */ - void *tcb = (void*)psa[0x21c/4]; /* TCB == PSATOLD */ - unsigned char tcbpkf = *(unsigned char*)(tcb+0x1C); /* TCBPKF */ - - pswkey = tcbpkf; - } - - sp &= 0x000000FF; /* SP range 0-255 */ - - /* calc length value including prefix area, rounded to 64 byte boundary */ - lv = (size + 8 + (64-1)) & 0x00FFFFC0; - - /* request storage allocation for the requested subpool */ - __asm__("GETMAIN RC,LV=(%2),SP=(%3)\n\t" - "LR\t%0,15 save the return code\n\t" - "LR\t%1,1 save the returned address" - : "=r"(rc), "=r"(r1) - : "r"(lv), "r"(sp) - : "0", "1", "14", "15"); - - if (rc) { - wtof("%s request for %u bytes from sp=%u failed, rc=0x%02X (%d)", __func__, lv, sp, rc, rc); - r1 = (void*)0; - } - else { - /* clear allocated storage, initialize storage prefix */ - memclr(r1, lv); - *(unsigned*)(r1+0) = sp << 24 | lv; /* requested subpool and getmained size */ - *(unsigned*)(r1+4) = pswkey << 24 | size; /* psw key and caller requested size */ - r1 += 8; /* address returned to caller */ - } - -quit: - return (void*)r1; -} - -__asm__("\n&FUNC SETC 'freemain'"); -int freemain(void *addr) -{ - int rc = 0; - unsigned size; - unsigned lv; - unsigned sp; - - if (!addr) goto quit; - - addr = addr - 8; - sp = *(unsigned char *)(addr+0); - lv = *(unsigned *)(addr+0) & 0x00FFFFFF; - size = *(unsigned *)(addr+4) & 0x00FFFFFF; - - /* sanity checks */ - if (!lv || !size) { - /* possible duplicate freemain */ - wtodumpf(addr, 64, "%s duplicate freemain", __func__); - return -1; - } - if (lv - (size+8) > 64) { - /* this shouldn't happen since we allocate rounded to 64 bytes */ - wtodumpf(addr, 64, "%s check storage prefix", __func__); - return -1; - } - - /* clear storage we're about to release */ - __asm__("\n" -" LR 14,%0 => target (s)\n" -" LR 15,%1 => length (n)\n" -" SLR 0,0 => source (NULL)\n" -" SLR 1,1 => fill 0\n" -" MVCL 14,0 Set target to fill character" - : : "r"(addr), "r"(lv) : "0", "1", "14", "15"); - - /* release allocated storage */ - __asm__("FREEMAIN RC,A=(%1),LV=(%2),SP=(%3)\n\t" - "LR\t%0,15" - : "=r"(rc) - : "r"(addr), "r"(lv), "r"(sp) - : "0", "1", "14", "15"); - -quit: - return rc; -} - -#if 0 -int main(int argc, char **argv) -{ - int rc; - void *a = getmain(20, 0); - - if (a) { - wtodumpf(a-8, 20+8, "GETMAINED"); - rc = freemain(a); - wtof("freemain %08X rc=%d", a, rc); - } - - clib_apf_setup(argv[0]); - - a = (void*) super_do(getmain ,56 , 241); - if (a) { - wtodumpf(a-8, 56+8, "GETMAINED 8"); - rc = super_do(freemain, a); - wtof("freemain %08X rc=%d", a, rc); - } - - a = (void*) super_key_do(PSWKEY0, getmain, 56, 241); - if (a) { - wtodumpf(a-8, 56+8, "GETMAINED 0"); - rc = super_key_do(PSWKEY0, freemain, a); - wtof("freemain %08X rc=%d", a, rc); - } - - return 0; -} -#endif - -/* __asm__("CVT DSECT=YES,LIST=YES"); */ - __asm__("IKJTCB DSECT=YES,LIST=YES"); diff --git a/src/crent370/clib/getmain.o b/src/crent370/clib/getmain.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/getmain.s b/src/crent370/clib/getmain.s deleted file mode 100644 index 1833667..0000000 --- a/src/crent370/clib/getmain.s +++ /dev/null @@ -1,205 +0,0 @@ - TITLE '/home/projects/crent370/clib/getmain.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'getmain' -* Program text area -@@6 EQU * - DC C'getmain' - DC X'0' - DS 0F - EJECT -* external function 'getmain' prologue -* frame base=88, local stack=8, call args=24 -&FUNC SETC 'getmain' -GETMAIN PDPPRLG CINDEX=0,FRAME=120,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'getmain' code - L 6,0(11) ==> size - L 5,4(11) ==> sp - SLR 4,4 ==> r1 - LR 15,4 ==> r1 - LTR 6,6 ==> size - BE @@L1 - SLR 15,15 ==> r1 - L 2,=F'16777215' - CLR 6,2 ==> size - BH @@L1 - LA 1,88(,13) - L 15,=V(@@ISSUP) - BALR 14,15 - LTR 15,15 ==> r1 - BE @@L4 - LA 3,112(,13) - IPK 0 get psw key in R2 - STC 2,0(,3) save psw key - B @@L5 -@@L4 EQU * - SLR 2,2 ==> psa - L 2,540(2) ==> tcb - MVC 112(1,13),28(2) -@@L5 EQU * - N 5,=F'255' ==> sp - LR 3,6 ==> lv,size - A 3,=F'71' ==> lv - N 3,=F'16777152' ==> lv - GETMAIN RC,LV=(3),SP=(5) ==> lv,sp - LR 2,15 save the return code ==> rc - LR 4,1 save the returned address ==> r1 - LTR 2,2 ==> rc - BE @@L6 - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@6) - ST 3,96(13) ==> lv - ST 5,100(13) ==> sp - ST 2,104(13) ==> rc - ST 2,108(13) ==> rc - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - SLR 4,4 ==> r1 - B @@L9 -@@L6 EQU * - -*** MEMCLR *** - LR 14,4 => target (s) ==> r1 - LR 15,3 => length (n) ==> lv - SLR 0,0 => source (NULL) - SLR 1,1 zero fill - MVCL 14,0 Set target to fill character - LR 2,5 ==> sp - SLL 2,24 - OR 2,3 ==> lv - ST 2,0(4) ==> r1 - IC 2,112(13) - SLL 2,24 - OR 2,6 ==> size - ST 2,4(4) - A 4,=F'8' ==> r1 -@@L9 EQU * - LR 15,4 ==> r1 -@@L1 EQU * -* Function 'getmain' epilogue - PDPEPIL -* Function 'getmain' literal pool - DS 0D - LTORG -* Function 'getmain' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s request for %u bytes from sp=%u failed, rc=0x' - DC C'%02X (%d)' - DC X'0' - -&FUNC SETC 'freemain' -@@7 EQU * - DC C'freemain' - DC X'0' - DS 0F - EJECT -* external function 'freemain' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'freemain' -FREEMAIN PDPPRLG CINDEX=1,FRAME=104,BASER=12,ENTRY=YES - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'freemain' code - L 3,0(11) ==> addr - SLR 2,2 ==> rc - LTR 3,3 ==> addr - BE @@L12 - A 3,=F'-8' ==> addr - SLR 5,5 ==> sp - IC 5,0(3) ==> sp,addr - L 4,0(3) ==> lv,addr - N 4,=F'16777215' ==> lv - L 2,4(3) ==> size - N 2,=F'16777215' ==> size - LTR 4,4 ==> lv - BE @@L14 - LTR 2,2 ==> size - BNE @@L13 -@@L14 EQU * - ST 3,88(13) ==> addr - MVC 92(4,13),=F'64' - MVC 96(4,13),=A(@@LC1) - B @@L16 -@@L13 EQU * - LR 6,4 ==> lv - SR 6,2 ==> size - LR 2,6 - A 2,=F'-8' - LA 6,64(0,0) - CLR 2,6 - BNH @@L15 - ST 3,88(13) ==> addr - ST 6,92(13) - MVC 96(4,13),=A(@@LC2) -@@L16 EQU * - MVC 100(4,13),=A(@@7) - LA 1,88(,13) - L 15,=V(WTODUMPF) - BALR 14,15 - L 15,=F'-1' ==> rc - B @@L10 -@@L15 EQU * - - LR 14,3 => target (s) ==> addr - LR 15,4 => length (n) ==> lv - SLR 0,0 => source (NULL) - SLR 1,1 => fill 0 - MVCL 14,0 Set target to fill character - FREEMAIN RC,A=(3),LV=(4),SP=(5) ==> addr,lv,sp - LR 2,15 ==> rc -@@L12 EQU * - LR 15,2 ==> rc -@@L10 EQU * -* Function 'freemain' epilogue - PDPEPIL -* Function 'freemain' literal pool - DS 0D - LTORG -* Function 'freemain' page table -@@PGT1 DS 0F - DC A(@@PG1) -@@LC1 EQU * - DC C'%s duplicate freemain' - DC X'0' -@@LC2 EQU * - DC C'%s check storage prefix' - DC X'0' - IKJTCB DSECT=YES,LIST=YES - END diff --git a/src/crent370/clib/gets.c b/src/crent370/clib/gets.c deleted file mode 100644 index b4e6609..0000000 --- a/src/crent370/clib/gets.c +++ /dev/null @@ -1,17 +0,0 @@ -/* GETS.C */ -#include -#include -#include - -char * -gets(char *s) -{ - char *ret; - - ret = fgets(s, INT_MAX, stdin); - if (ret) { - char *p = strchr(s, '\n'); - if (p) *p = 0; - } - return ret; -} diff --git a/src/crent370/clib/gets.o b/src/crent370/clib/gets.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/gets.s b/src/crent370/clib/gets.s deleted file mode 100644 index 9d8ece2..0000000 --- a/src/crent370/clib/gets.s +++ /dev/null @@ -1,69 +0,0 @@ - TITLE '/home/projects/crent370/clib/gets.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'gets' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'gets' -GETS PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'gets' code - L 3,0(11) ==> s - LA 1,88(,13) - L 15,=V(@@GTIN) - BALR 14,15 - ST 3,88(13) ==> s - MVC 92(4,13),=F'2147483647' - MVC 96(4,13),0(15) ==> ret - LA 1,88(,13) - L 15,=V(FGETS) - BALR 14,15 - LR 2,15 ==> ret - LTR 15,15 ==> ret - BE @@L2 - ST 3,88(13) ==> s - MVC 92(4,13),=F'21' - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LTR 15,15 ==> p - BE @@L2 - MVI 0(15),0 ==> p -@@L2 EQU * - LR 15,2 ==> ret -* Function 'gets' epilogue - PDPEPIL -* Function 'gets' literal pool - DS 0D - LTORG -* Function 'gets' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/gmtime.c b/src/crent370/clib/gmtime.c deleted file mode 100644 index e768f83..0000000 --- a/src/crent370/clib/gmtime.c +++ /dev/null @@ -1,56 +0,0 @@ -/* GMTIME.C */ -#include "time.h" -#include "stdarg.h" -#include "stdio.h" -#include "stddef.h" -#include "mvssupa.h" -#include "clibcrt.h" - -/* scalar date routines -- public domain by Ray Gardner -** These will work over the range 1-01-01 thru 14699-12-31 -** The functions written by Ray are isleap, months_to_days, -** years_to_days, ymd_to_scalar, scalar_to_ymd. -** modified slightly by Paul Edwards -*/ - -extern int __isleap(unsigned yr); -extern unsigned __mtd(unsigned month); -extern long __ytd(unsigned yr); -extern long __ymdts(unsigned yr, unsigned mo, unsigned day); -extern void __stymd(long scalar, - unsigned *pyr, unsigned *pmo, unsigned *pday); - -#define isleap(y) __isleap(y) -#define months_to_days(m) __mtd(m) -#define years_to_days(y) __ytd(y) -#define ymd_to_scalar(y,m,d) __ymdts((y),(m),(d)) -#define scalar_to_ymd(s,y,m,d) __stymd((s),(y),(m),(d)) - -/* dow - written by Paul Edwards, 1993-01-31 */ -/* Released to the Public Domain */ -/* This routine will work over the range 1-01-01 to 32767-12-31. - It assumes the current calendar system has always been in - place in that time. If you pass 0 or negative years, then - it produces results on the assumption that there is a year - 0. It should always produce a value in the range of 0..6 - if a valid month and day have been passed, no matter what - the year is. However, it has not been tested for negative - years, because the results are meaningless anyway. It is - mainly to stop people playing silly buggers and causing - the macro to crash on negative years. */ - -#define dow(y,m,d) \ - ((((((m)+9)%12+1)<<4)%27 + (d) + 1 + \ - ((y)%400+400) + ((y)%400+400)/4 - ((y)%400+400)/100 + \ - (((m)<=2) ? ( \ - (((((y)%4)==0) && (((y)%100)!=0)) || (((y)%400)==0)) \ - ? 5 : 6) : 0)) % 7) - -struct tm *gmtime(const time_t *timer) -{ - CLIBCRT *crt = __crtget(); - struct tm *tms = (struct tm*)crt->crttms; - - return gmtime_r(timer, tms); -} - diff --git a/src/crent370/clib/gmtime.o b/src/crent370/clib/gmtime.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/gmtime.s b/src/crent370/clib/gmtime.s deleted file mode 100644 index db4b76a..0000000 --- a/src/crent370/clib/gmtime.s +++ /dev/null @@ -1,55 +0,0 @@ - TITLE '/home/projects/crent370/clib/gmtime.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'gmtime' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'gmtime' -GMTIME PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'gmtime' code - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - A 15,=F'296' ==> tms - MVC 88(4,13),0(11) ==> timer - ST 15,92(13) ==> tms - LA 1,88(,13) - L 15,=V(GMTIMER) - BALR 14,15 -* Function 'gmtime' epilogue - PDPEPIL -* Function 'gmtime' literal pool - DS 0D - LTORG -* Function 'gmtime' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/gmtime64.c b/src/crent370/clib/gmtime64.c deleted file mode 100644 index ea298d5..0000000 --- a/src/crent370/clib/gmtime64.c +++ /dev/null @@ -1,74 +0,0 @@ -/* gmtime64.c */ -#include "time.h" -#include "stdarg.h" -#include "stdio.h" -#include "stddef.h" -#include "mvssupa.h" -#include "clibcrt.h" - -/* scalar date routines -- public domain by Ray Gardner -** These will work over the range 1-01-01 thru 14699-12-31 -** The functions written by Ray are isleap, months_to_days, -** years_to_days, ymd_to_scalar, scalar_to_ymd. -** modified slightly by Paul Edwards -*/ - -extern int __isleap(unsigned yr); -extern unsigned __mtd(unsigned month); -extern long __ytd(unsigned yr); -extern long __ymdts(unsigned yr, unsigned mo, unsigned day); -extern void __stymd(long scalar, - unsigned *pyr, unsigned *pmo, unsigned *pday); - -#define isleap(y) __isleap(y) -#define months_to_days(m) __mtd(m) -#define years_to_days(y) __ytd(y) -#define ymd_to_scalar(y,m,d) __ymdts((y),(m),(d)) -#define scalar_to_ymd(s,y,m,d) __stymd((s),(y),(m),(d)) - -/* dow - written by Paul Edwards, 1993-01-31 */ -/* Released to the Public Domain */ -/* This routine will work over the range 1-01-01 to 32767-12-31. - It assumes the current calendar system has always been in - place in that time. If you pass 0 or negative years, then - it produces results on the assumption that there is a year - 0. It should always produce a value in the range of 0..6 - if a valid month and day have been passed, no matter what - the year is. However, it has not been tested for negative - years, because the results are meaningless anyway. It is - mainly to stop people playing silly buggers and causing - the macro to crash on negative years. */ - -#define dow(y,m,d) \ - ((((((m)+9)%12+1)<<4)%27 + (d) + 1 + \ - ((y)%400+400) + ((y)%400+400)/4 - ((y)%400+400)/100 + \ - (((m)<=2) ? ( \ - (((((y)%4)==0) && (((y)%100)!=0)) || (((y)%400)==0)) \ - ? 5 : 6) : 0)) % 7) - -struct tm *gmtime64(const time_t64 *timer) -{ - CLIBCRT *crt = __crtget(); - struct tm *tms = (struct tm*)crt->crttms; - unsigned yr, mo, da; - unsigned long secs; - unsigned long days; - - days = *timer / (60L*60*24); - secs = *timer % (60L*60*24); - scalar_to_ymd(days + ymd_to_scalar(1970, 1, 1), &yr, &mo, &da); - tms->tm_year = yr - 1900; - tms->tm_mon = mo - 1; - tms->tm_mday = da; - tms->tm_yday = (int)(ymd_to_scalar(tms->tm_year + 1900, mo, da) - - ymd_to_scalar(tms->tm_year + 1900, 1, 1)); - tms->tm_wday = dow(tms->tm_year + 1900, mo, da); - tms->tm_isdst = -1; - tms->tm_sec = (int)(secs % 60); - secs /= 60; - tms->tm_min = (int)(secs % 60); - secs /= 60; - tms->tm_hour = (int)secs; - return (tms); -} - diff --git a/src/crent370/clib/gmtimer.c b/src/crent370/clib/gmtimer.c deleted file mode 100644 index 648a3ec..0000000 --- a/src/crent370/clib/gmtimer.c +++ /dev/null @@ -1,78 +0,0 @@ -/* GMTIMER.C */ -#include "time.h" -#include "stdarg.h" -#include "stdio.h" -#include "stddef.h" -#include "mvssupa.h" -#include "clibcrt.h" - -/* scalar date routines -- public domain by Ray Gardner -** These will work over the range 1-01-01 thru 14699-12-31 -** The functions written by Ray are isleap, months_to_days, -** years_to_days, ymd_to_scalar, scalar_to_ymd. -** modified slightly by Paul Edwards -*/ - -extern int __isleap(unsigned yr); -extern unsigned __mtd(unsigned month); -extern long __ytd(unsigned yr); -extern long __ymdts(unsigned yr, unsigned mo, unsigned day); -extern void __stymd(long scalar, - unsigned *pyr, unsigned *pmo, unsigned *pday); - -#define isleap(y) __isleap(y) -#define months_to_days(m) __mtd(m) -#define years_to_days(y) __ytd(y) -#define ymd_to_scalar(y,m,d) __ymdts((y),(m),(d)) -#define scalar_to_ymd(s,y,m,d) __stymd((s),(y),(m),(d)) - -/* dow - written by Paul Edwards, 1993-01-31 */ -/* Released to the Public Domain */ -/* This routine will work over the range 1-01-01 to 32767-12-31. - It assumes the current calendar system has always been in - place in that time. If you pass 0 or negative years, then - it produces results on the assumption that there is a year - 0. It should always produce a value in the range of 0..6 - if a valid month and day have been passed, no matter what - the year is. However, it has not been tested for negative - years, because the results are meaningless anyway. It is - mainly to stop people playing silly buggers and causing - the macro to crash on negative years. */ - -#define dow(y,m,d) \ - ((((((m)+9)%12+1)<<4)%27 + (d) + 1 + \ - ((y)%400+400) + ((y)%400+400)/4 - ((y)%400+400)/100 + \ - (((m)<=2) ? ( \ - (((((y)%4)==0) && (((y)%100)!=0)) || (((y)%400)==0)) \ - ? 5 : 6) : 0)) % 7) - -#define ymd_scalar_1970_1_1 719163 - -struct tm *gmtime_r(const time_t *timer, struct tm *tms) -{ - unsigned yr, mo, da; - unsigned long secs; - unsigned long days; - - days = *timer / (60L*60*24); - secs = *timer % (60L*60*24); - - /* scalar_to_ymd(days + ymd_to_scalar(1970, 1, 1), &yr, &mo, &da); */ - scalar_to_ymd(days + ymd_scalar_1970_1_1, &yr, &mo, &da); - - tms->tm_year = yr - 1900; - tms->tm_mon = mo - 1; - tms->tm_mday = da; - tms->tm_yday = (int)(ymd_to_scalar(tms->tm_year + 1900, mo, da) - - ymd_to_scalar(tms->tm_year + 1900, 1, 1)); - tms->tm_wday = dow(tms->tm_year + 1900, mo, da); - tms->tm_isdst = -1; - tms->tm_sec = (int)(secs % 60); - secs /= 60; - tms->tm_min = (int)(secs % 60); - secs /= 60; - tms->tm_hour = (int)secs; - - return (tms); -} - diff --git a/src/crent370/clib/gmtimer.o b/src/crent370/clib/gmtimer.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/gmtimer.s b/src/crent370/clib/gmtimer.s deleted file mode 100644 index 525c8d2..0000000 --- a/src/crent370/clib/gmtimer.s +++ /dev/null @@ -1,268 +0,0 @@ - TITLE '/home/projects/crent370/clib/gmtimer.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'gmtime_r' prologue -* frame base=88, local stack=128, call args=16 -&FUNC SETC 'gmtime_r' -GMTIMER PDPPRLG CINDEX=0,FRAME=232,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'gmtime_r' code - SLR 6,6 ==> days - SLR 7,7 ==> days - LR 4,6 ==> days - LR 5,7 ==> days - ST 6,120(13) ==> days - ST 7,4+120(13) ==> days - ST 6,128(13) ==> days - ST 7,4+128(13) ==> days - ST 6,136(13) ==> days - ST 7,4+136(13) ==> days - ST 6,144(13) ==> days - ST 7,4+144(13) ==> days - ST 6,152(13) ==> days - ST 7,4+152(13) ==> days - ST 6,160(13) ==> days - ST 7,4+160(13) ==> days - ST 6,168(13) ==> days - ST 7,4+168(13) ==> days - ST 6,176(13) ==> days - ST 7,4+176(13) ==> days - ST 6,184(13) ==> days - ST 7,4+184(13) ==> days - ST 6,192(13) ==> days - ST 7,4+192(13) ==> days - ST 6,200(13) ==> days - ST 7,4+200(13) ==> days - ST 6,208(13) ==> days - ST 7,4+208(13) ==> days - ST 6,216(13) ==> days - ST 7,4+216(13) ==> days - ST 6,224(13) ==> days - ST 7,4+224(13) ==> days - L 9,4(11) ==> tms - L 2,0(11) ==> timer - L 2,0(2) ==> days,timer - LR 6,2 ==> days - SRDL 6,32 ==> days - L 3,=F'86400' - DR 6,3 ==> days - LR 4,2 ==> days - SRDL 4,32 ==> days - DR 4,3 ==> days - LR 2,7 - A 2,=F'719163' - ST 2,88(13) - LA 2,104(,13) - ST 2,92(13) - LA 2,108(,13) - ST 2,96(13) - LA 2,112(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@STYMD) - BALR 14,15 - L 2,104(13) - A 2,=F'-1900' - ST 2,20(9) ==> .tm_year - L 2,108(13) - BCTR 2,0 - ST 2,16(9) ==> .tm_mon - MVC 12(4,9),112(13) ==> .tm_mday - L 2,20(9) ==> .tm_year - A 2,=F'1900' - ST 2,88(13) - MVC 92(4,13),108(13) - MVC 96(4,13),112(13) - LA 1,88(,13) - L 15,=V(@@YMDTS) - BALR 14,15 - LR 3,15 ==> tms - L 2,20(9) ==> .tm_year - A 2,=F'1900' - ST 2,88(13) - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'1' - LA 1,88(,13) - L 15,=V(@@YMDTS) - BALR 14,15 - SR 3,15 ==> tms - ST 3,28(9) ==> .tm_yday - L 5,108(13) - A 5,=F'9' - ST 5,120(13) - L 6,120(13) - L 7,4+120(13) - SRDL 6,32 - LA 2,12(0,0) - DR 6,2 - ST 6,120(13) - ST 7,4+120(13) - L 8,120(13) - A 8,=F'1' - SLL 8,4 - ST 8,128(13) - L 6,128(13) - L 7,4+128(13) - SRDL 6,32 - LA 2,27(0,0) - DR 6,2 - ST 6,128(13) - ST 7,4+128(13) - L 8,128(13) - A 8,112(13) - L 3,20(9) ==> .tm_year - A 3,=F'1900' - ST 3,136(13) - L 6,136(13) - L 7,4+136(13) - SRDA 6,32 - LA 2,400(0,0) - DR 6,2 - AR 8,6 - LR 2,6 - A 2,=F'400' - BNL @@L2 - A 2,=F'3' -@@L2 EQU * - SRA 2,2 - AR 8,2 - L 3,20(9) ==> .tm_year - A 3,=F'1900' - ST 3,144(13) - L 6,144(13) - L 7,4+144(13) - SRDA 6,32 - LA 2,400(0,0) - DR 6,2 - AR 6,2 - ST 6,152(13) - L 6,152(13) - L 7,4+152(13) - SRDA 6,32 - LA 2,100(0,0) - DR 6,2 - ST 6,152(13) - ST 7,4+152(13) - SR 8,7 - A 8,=F'401' - L 2,108(13) - LA 5,2(0,0) - CLR 2,5 - BH @@L3 - LR 2,3 - N 2,=F'3' - LTR 2,2 - BNE @@L8 - ST 3,160(13) - L 6,160(13) - L 7,4+160(13) - SRDA 6,32 - LA 2,100(0,0) - DR 6,2 - LTR 6,6 - BNE @@L7 -@@L8 EQU * - L 3,20(9) ==> .tm_year - A 3,=F'1900' - ST 3,168(13) - L 6,168(13) - L 7,4+168(13) - SRDA 6,32 - LA 2,400(0,0) - DR 6,2 - LTR 6,6 - BNE @@L5 -@@L7 EQU * - A 8,=F'5' - ST 8,176(13) - L 6,176(13) - L 7,4+176(13) - B @@L9 -@@L5 EQU * - A 8,=F'6' - ST 8,184(13) - L 6,184(13) - L 7,4+184(13) - B @@L9 -@@L3 EQU * - ST 8,192(13) - L 6,192(13) - L 7,4+192(13) -@@L9 EQU * - SRDL 6,32 - LA 2,7(0,0) - DR 6,2 - ST 6,24(9) ==> .tm_wday - MVC 32(4,9),=F'-1' ==> .tm_isdst - ST 4,200(13) ==> secs - L 6,200(13) - L 7,4+200(13) - SRDL 6,32 - LA 2,60(0,0) - DR 6,2 - ST 6,200(13) - ST 7,4+200(13) - MVC 0(4,9),200(13) ==> .tm_sec - ST 4,208(13) ==> secs - L 4,208(13) - L 5,4+208(13) - SRDL 4,32 - LR 6,2 - DR 4,2 - ST 4,208(13) - ST 5,4+208(13) - MVC 216(4,13),212(13) - L 2,216(13) - L 3,4+216(13) - SRDL 2,32 - LR 4,6 - DR 2,6 - ST 2,216(13) - ST 3,4+216(13) - MVC 4(4,9),216(13) ==> .tm_min - MVC 224(4,13),212(13) - L 6,224(13) - L 7,4+224(13) - SRDL 6,32 - DR 6,4 - ST 6,224(13) - ST 7,4+224(13) - MVC 8(4,9),228(13) ==> .tm_hour - LR 15,9 ==> tms -* Function 'gmtime_r' epilogue - PDPEPIL -* Function 'gmtime_r' literal pool - DS 0D - LTORG -* Function 'gmtime_r' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/hello.c b/src/crent370/clib/hello.c deleted file mode 100644 index bdf472f..0000000 --- a/src/crent370/clib/hello.c +++ /dev/null @@ -1,45 +0,0 @@ -#include -#include -#include "clibcrt.h" -#include "cliblock.h" - -int -main(int argc, char **argv) -{ - int i; - time_t now; - - printf("Hello World\n"); -#if 1 - for(i=0;i argc - L 5,4(11) ==> argv - MVC 88(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - SLR 3,3 ==> i - CR 3,4 ==> i,argc - BNL @@L8 -@@L6 EQU * - MVC 88(4,13),=A(@@LC1) - ST 3,92(13) ==> i - LR 2,3 ==> i - MH 2,=H'4' - L 2,0(2,5) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - A 3,=F'1' ==> i - CR 3,4 ==> i,argc - BL @@L6 -@@L8 EQU * - LA 1,88(,13) - L 15,=V(@@TZGET) - BALR 14,15 - MVC 88(4,13),=A(@@LC2) - ST 15,92(13) - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - LA 1,88(,13) - L 15,=V(TZSET) - BALR 14,15 - LA 1,88(,13) - L 15,=V(@@TZGET) - BALR 14,15 - MVC 88(4,13),=A(@@LC2) - ST 15,92(13) - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - MVC 88(4,13),=F'-21600' - LA 1,88(,13) - L 15,=V(@@TZSET) - BALR 14,15 - LA 1,88(,13) - L 15,=V(@@TZGET) - BALR 14,15 - MVC 88(4,13),=A(@@LC2) - ST 15,92(13) - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - MVC 88(4,13),=F'0' - LA 1,88(,13) - L 15,=V(TIME) - BALR 14,15 - ST 15,104(13) - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(CTIME) - BALR 14,15 - MVC 88(4,13),=A(@@LC3) - ST 15,92(13) - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKTEST) - BALR 14,15 - MVC 88(4,13),=A(@@LC4) - ST 15,92(13) - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - MVC 88(4,13),=F'0' - LA 1,88(,13) - L 15,=V(TIME) - BALR 14,15 - ST 15,104(13) - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(CTIME) - BALR 14,15 - MVC 88(4,13),=A(@@LC5) - ST 15,92(13) - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - MVC 88(4,13),=A(@@LC4) - ST 15,92(13) - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - SLR 15,15 -* Function 'main' epilogue - PDPEPIL -* Function 'main' literal pool - DS 0D - LTORG -* Function 'main' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'Hello World' - DC X'15' - DC X'0' -@@LC1 EQU * - DC C'argv#%d="%s"' - DC X'15' - DC X'0' -@@LC2 EQU * - DC C'The current time zone offset is: %d' - DC X'15' - DC X'0' -@@LC3 EQU * - DC C'Issuing TESTLOCK %s' - DC X'0' -@@LC4 EQU * - DC C'rc=%d' - DC X'15' - DC X'0' -@@LC5 EQU * - DC C'Issuing UNLOCK %s' - DC X'0' - END @@MAIN diff --git a/src/crent370/clib/idcams.c b/src/crent370/clib/idcams.c deleted file mode 100644 index d0da596..0000000 --- a/src/crent370/clib/idcams.c +++ /dev/null @@ -1,208 +0,0 @@ -#include -#include -#include -#include -#include - -static int link_idcams(const char *cmds); - -__asm__("\n&FUNC SETC 'idcams'"); -int idcams(const char *fmt, ...) -{ - va_list args; - char cmds[256]; - - va_start(args, fmt); - vsnprintf(cmds, sizeof(cmds), fmt, args); - va_end(args); - cmds[sizeof(cmds)-1] = 0; - - return link_idcams(cmds); -} - -typedef struct { - char op; -#define OP_OPEN 0 -#define OP_CLOSE 4 -#define OP_GET 8 -#define OP_PUT 12 - - char opt; -#define OPT_INPUT 0x80 -#define OPT_OUTPUT 0x40 -#define OPT_DDNAME 0x20 -#define OPT_DSNAME 0x10 - - short msgno; -#define MSGNO_NORMAL 0 /* normal output, otherwise IDCnnnn message number */ -} IOFLAGS; - -typedef struct { - char name[44]; /* OPEN DDNAME or DSNAME, CLOSE DSNAME */ -} OPEN, CLOSE; - -typedef struct { - char *rec; /* pointer to record */ - int reclen; /* length of record */ -} GET, PUT; - -typedef union { - OPEN open; - CLOSE close; - GET get; - PUT put; -} IOINFO; - -typedef struct { - void *udata; - IOFLAGS *ioflags; - IOINFO *ioinfo; -} IOEXIT; - -typedef struct { - short len; /* length of data */ - char data[256]; -} OPTIONS; - -typedef struct { - short len; /* length of struct */ - char __1[8]; /* must be binary zeros */ - char __2[8]; /* must be binary zeros */ - char __3[3]; /* must be binary zeros */ - char __4[8]; /* must be binary zeros */ - char sysin[8]; /* zeros or dd name as sysin */ - char sysprint[8]; /* zeros or dd name as sysprint */ -} DDNAMES; - -typedef struct { - void *ddname; /* "DD" + ddname space filled */ - void *iofunc; /* address of IO function */ - void *udata; /* user data passed to IO function */ -} IODD; - -typedef struct { - int count; /* number of IO's that follow */ - IODD iodd[2]; /* IODD structs */ -} IOLIST; - -typedef struct { - void *options; /* options */ - void *ddnames; /* dd names */ - void *pages; /* pages */ - void *iolist; /* io list */ - void *auxlist; /* aux list */ -} PLIST; - -typedef struct { - void *nab; - const char *cmds; -} UDATA; - -static const short none = 0; - -int __idcex(UDATA *udata, IOFLAGS *ioflags, IOINFO *ioinfo); -int __idcexc(UDATA *udata, IOFLAGS *ioflags, IOINFO *ioinfo); - -__asm__("\n&FUNC SETC 'link_idcams'"); -static int link_idcams(const char *cmds) -{ - char ddname1[10] = "DDSYSIN "; - char ddname2[10] = "DDSYSPRINT"; - void *iofunc = __idcex; - unsigned stack[2000] = {0}; - UDATA udata = {(void*)stack, cmds}; - IODD sysin = {ddname1, iofunc, &udata}; - IODD sysprint = {ddname2, iofunc, &udata}; - IOLIST iolist = {2, sysin, sysprint}; - int prc = 0; - int rc; - unsigned plist[4]; - -#if 0 - wtof("idcams: link_idcams(\"%s\")", cmds); - wto_traceback((void*)0); -/* - wtodumpf((char*)cmds, strlen(cmds), "CMDS"); - wtodumpf(&iolist, sizeof(iolist), "IOLIST"); - wtodumpf(&sysin, sizeof(sysin), "SYSIN"); - wtodumpf(ddname1, sizeof(ddname1), "DDNAME1"); - wtodumpf(&sysprint, sizeof(sysprint), "SYSPRINT"); - wtodumpf(ddname2, sizeof(ddname2), "DDNAME2"); - wtodumpf(&udata, sizeof(udata), "UDATA"); - wtof("iofunc=%08X", iofunc); -*/ -#endif - - plist[0] = (unsigned)&none; /* options list */ - plist[1] = (unsigned)&none; /* ddnames list */ - plist[2] = (unsigned)&none; /* page number list */ - plist[3] = ((unsigned)&iolist) + 0x80000000; /* io list, end of plist */ - - rc = __linkds("IDCAMS", NULL, plist, &prc); - - /* if the link failed, return that as the return code */ - if (rc > 0) prc = rc * -1; /* make negative */ - if (rc < 0) prc = rc; /* already negative */ - -quit: - return prc; -} - -__asm("ENTRY @@IDCEX\n" -"@@IDCEX\tDS\t0H\n" -" SAVE (14,12),,@@IDCEX\n" -" LA 12,0(,15) base register\n" -" USING @@IDCEX,12 base register\n" -" L 14,0(,1) A(UDATA)\n" -" L 15,0(,14) A(NAB in C stack frame)\n" -" ST 13,4(,15) backward chain (prev)\n" -" ST 15,8(,13) forward chain (next)\n" -" LR 13,15 our stack frame\n" -" LA 15,88(,15) minimal stack frame\n" -" ST 15,76(13) next available byte\n" -"* Now call our idcams io exit\n" -" L 15,=A(@@IDCEXC) A(__idcexc)\n" -" BALR 14,15 call our C function\n" -" L 13,4(,13) get prev stack frame\n" -" RETURN (14,12),RC=(15) restore regs and return\n" -" LTORG , our literal pool\n" -" DROP 12 drop base register"); - -__asm__("\n&FUNC SETC '__idcexc'"); -int __idcexc(UDATA *udata, IOFLAGS *ioflags, IOINFO *ioinfo) -{ - int rc = 0; - const char *cmds = udata->cmds; - -#if 0 - wtof("In %s", __func__); - wtof("udata=%08X", udata); - wtof("ioflags=%08X", ioflags); - wtof("ioinfo=%08X", ioinfo); -#endif - - switch (ioflags->op) { - case OP_OPEN: - /* wtof("OP_OPEN %-8.8s", ioinfo->open.name); */ - /* nothing to do */ - break; - case OP_CLOSE: - /* wtof("OP_CLOSE %-8.8s", ioinfo->close.name); */ - /* nothing to do */ - break; - case OP_GET: - /* wtof("OP_GET"); */ - ioinfo->get.rec = (char*)udata->cmds; - ioinfo->get.reclen = udata->cmds ? strlen(udata->cmds) : 0; - if (!udata->cmds) rc = 4; /* indicate end-of-data */ - udata->cmds = 0; - break; - case OP_PUT: - /* wtof("OP_PUT %*.*s", ioinfo->put.reclen, ioinfo->put.reclen, ioinfo->put.rec); */ - /* wtodumpf(ioinfo->put.rec, ioinfo->put.reclen, "IDCAMS PUT"); */ - break; - } - - /* wtof("Leaving %s, rc=%d", __func__, rc); */ - return rc; -} diff --git a/src/crent370/clib/idcams.o b/src/crent370/clib/idcams.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/idcams.s b/src/crent370/clib/idcams.s deleted file mode 100644 index 32bdeb7..0000000 --- a/src/crent370/clib/idcams.s +++ /dev/null @@ -1,256 +0,0 @@ - TITLE '/home/projects/crent370/clib/idcams.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'idcams' -* Program text area - DS 0F - EJECT -* external function 'idcams' prologue -* frame base=88, local stack=256, call args=16 -&FUNC SETC 'idcams' -IDCAMS PDPPRLG CINDEX=0,FRAME=360,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'idcams' code - LA 3,104(,13) - ST 3,88(13) - MVC 92(4,13),=F'256' - MVC 96(4,13),0(11) - LA 2,4(,11) ==> args - ST 2,100(13) ==> args - LA 1,88(,13) - L 15,=V(VSNPRINT) - BALR 14,15 - MVI 359(13),0 ==> cmds - ST 3,88(13) - LA 1,88(,13) - L 15,=A(@@6) - BALR 14,15 -* Function 'idcams' epilogue - PDPEPIL -* Function 'idcams' literal pool - DS 0D - LTORG -* Function 'idcams' page table -@@PGT0 DS 0F - DC A(@@PG0) - DS 0H -@@7 EQU * - DC X'0000' - -&FUNC SETC 'link_idcams' - DS 0F - EJECT -* static function 'link_idcams' prologue -* frame base=88, local stack=8128, call args=16 -&FUNC SETC 'link_idcams' -@@6 PDPPRLG CINDEX=1,FRAME=8232,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'link_idcams' code - L 2,=A(@@LC0) - MVC 104(10,13),0(2) ==> ddname1 - L 2,=A(@@LC1) - MVC 120(10,13),0(2) ==> ddname2 - L 4,=V(@@IDCEX) ==> iofunc - LA 3,136(,13) - LR 8,3 - L 9,=F'8000' - SLR 6,6 - LR 7,6 - MVCL 8,6 - L 2,=F'8216' - ST 3,0(2,13) - L 2,=F'8220' - AR 2,13 - MVC 0(4,2),0(11) ==> udata,cmds - L 3,=F'8032' - LA 7,104(,13) - ST 7,104(13,3) ==> sysin - ST 4,108(3,13) ==> iofunc,sysin - L 2,=F'8216' - AR 2,13 - ST 2,112(3,13) ==> sysin - L 5,=F'8048' - LA 6,120(,13) - ST 6,104(13,5) ==> sysprint - ST 4,108(5,13) ==> iofunc,sysprint - ST 2,112(5,13) ==> sysprint - L 4,=F'8064' - LA 2,2(0,0) - ST 2,104(13,4) ==> iolist - LA 2,108(,13) - AR 2,4 - AR 3,7 - MVC 0(12,2),0(3) ==> iolist,sysin - AR 6,4 - AR 7,5 - MVC 0(12,6),0(7) ==> iolist,sysprint - L 2,=F'8224' - AR 2,13 - MVC 0(4,2),=F'0' - L 2,=F'8096' - L 3,=A(@@7) - ST 3,104(13,2) ==> plist - ST 3,108(2,13) ==> plist - ST 3,112(2,13) ==> plist - L 3,=F'-2147475480' - AR 3,13 - ST 3,116(2,13) ==> plist - MVC 88(4,13),=A(@@LC2) - MVC 92(4,13),=F'0' - L 2,=F'8200' - AR 2,13 - ST 2,96(13) - L 2,=F'8224' - AR 2,13 - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@LINKDS) - BALR 14,15 - LTR 15,15 ==> rc - BNH @@L3 - LCR 3,15 ==> rc - L 2,=F'8224' - AR 2,13 - ST 3,0(2) -@@L3 EQU * - LTR 15,15 ==> rc - BNL @@L5 - L 2,=F'8224' - AR 2,13 - ST 15,0(2) ==> rc -@@L5 EQU * - L 2,=F'8224' - AR 2,13 - L 15,0(2) ==> rc -* Function 'link_idcams' epilogue - PDPEPIL -* Function 'link_idcams' literal pool - DS 0D - LTORG -* Function 'link_idcams' page table -@@PGT1 DS 0F - DC A(@@PG1) -@@LC0 EQU * - DC C'DDSYSIN ' - DC X'0' -@@LC1 EQU * - DC C'DDSYSPRINT' - DC X'0' -@@LC2 EQU * - DC C'IDCAMS' - DC X'0' - ENTRY @@IDCEX -@@IDCEX DS 0H - SAVE (14,12),,@@IDCEX - LA 12,0(,15) base register - USING @@IDCEX,12 base register - L 14,0(,1) A(UDATA) - L 15,0(,14) A(NAB in C stack frame) - ST 13,4(,15) backward chain (prev) - ST 15,8(,13) forward chain (next) - LR 13,15 our stack frame - LA 15,88(,15) minimal stack frame - ST 15,76(13) next available byte -* Now call our idcams io exit - L 15,=A(@@IDCEXC) A(__idcexc) - BALR 14,15 call our C function - L 13,4(,13) get prev stack frame - RETURN (14,12),RC=(15) restore regs and return - LTORG , our literal pool - DROP 12 drop base register - -&FUNC SETC '__idcexc' - DS 0F - EJECT -* external function '__idcexc' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC '__idcexc' -@@IDCEXC PDPPRLG CINDEX=2,FRAME=96,BASER=12,ENTRY=YES - B @@FEN2 - LTORG -@@FEN2 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG2 EQU * - LR 11,1 - L 10,=A(@@PGT2) -* Function '__idcexc' code - L 3,0(11) ==> udata - L 5,8(11) ==> ioinfo - SLR 4,4 ==> rc - L 2,4(11) ==> ioflags - SLR 6,6 - IC 6,0(2) ==> .op - LR 2,6 - LA 6,4(0,0) - CR 2,6 - BE @@L7 - BNH @@L7 - LA 6,8(0,0) - CLR 2,6 - BNE @@L7 - MVC 0(4,5),4(3) ==> .rec,cmds - L 2,4(3) ==> .cmds - LTR 2,2 - BE @@L11 - ST 2,88(13) - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - B @@L12 -@@L11 EQU * - SLR 15,15 ==> rc -@@L12 EQU * - ST 15,4(5) ==> rc,reclen - L 2,4(3) ==> .cmds - LTR 2,2 - BNE @@L13 - LA 4,4(0,0) ==> rc -@@L13 EQU * - MVC 4(4,3),=F'0' ==> .cmds -@@L7 EQU * - LR 15,4 ==> rc -* Function '__idcexc' epilogue - PDPEPIL -* Function '__idcexc' literal pool - DS 0D - LTORG -* Function '__idcexc' page table -@@PGT2 DS 0F - DC A(@@PG2) - END diff --git a/src/crent370/clib/iefssreq.c b/src/crent370/clib/iefssreq.c deleted file mode 100644 index ddd5ffb..0000000 --- a/src/crent370/clib/iefssreq.c +++ /dev/null @@ -1,21 +0,0 @@ -#include - -int iefssreq(SSOB *ssob) -{ - int rc = 0; - unsigned *psa = (unsigned *)0; - unsigned *cvt = (unsigned *)psa[16/4]; - unsigned *jesct = (unsigned *)cvt[296/4]; - int (*ssreq)(SSOB *) = (void*)jesct[20/4]; - - /* we need to set the high order bit in the SSOB pointer */ - ssob = (SSOB*) ((unsigned)ssob + 0x80000000); - - __asm("MODESET MODE=SUP" : : : "15","0","1"); - - rc = ssreq(ssob); - - __asm("MODESET MODE=PROB" : : : "15","0","1"); - - return rc; -} diff --git a/src/crent370/clib/iefssreq.o b/src/crent370/clib/iefssreq.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/iefssreq.s b/src/crent370/clib/iefssreq.s deleted file mode 100644 index 851b342..0000000 --- a/src/crent370/clib/iefssreq.s +++ /dev/null @@ -1,60 +0,0 @@ - TITLE '/home/projects/crent370/clib/iefssreq.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'iefssreq' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'iefssreq' -IEFSSREQ PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'iefssreq' code - SLR 2,2 ==> rc - L 2,16(2) ==> cvt - L 2,296(2) ==> jesct - L 3,20(2) ==> ssreq - L 2,0(11) ==> ssob - A 2,=F'-2147483648' ==> ssob - MODESET MODE=SUP - ST 2,88(13) ==> ssob - LA 1,88(,13) - LA 15,0(3) ==> ssreq - BALR 14,15 - LR 2,15 ==> rc - MODESET MODE=PROB - LR 15,2 ==> rc -* Function 'iefssreq' epilogue - PDPEPIL -* Function 'iefssreq' literal pool - DS 0D - LTORG -* Function 'iefssreq' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/ikjct441.c b/src/crent370/clib/ikjct441.c deleted file mode 100644 index 1addd4d..0000000 --- a/src/crent370/clib/ikjct441.c +++ /dev/null @@ -1,53 +0,0 @@ -/* TSO Clist variable access z/OS (not for MVS 3.8) */ -typedef struct ikjct441_plist IKJCT441; - -struct ikjct441_plist { - int *ecode; - const char **name; - int *namelen; - char **value; - int *vallen; - void *token; - void *ect; - int *retcode; - IKJCT441 *next; -}; - -/* ECODE values */ -#define ECODE_TSVERETR 1 -#define ECODE_TSVEUPDT 2 -#define ECODE_TSVELOC 3 -#define ECODE_TSVERSVD 4 -#define ECODE_TSVNOIMP 18 - -int ikjct441(int ecode, const char *name, char *value, int value_size) -{ - int rc = 0; - int namelen = name ? strlen(name) : 0; - void *token = (void*)0; - void *ectnull = (void*)0xFFFFFFFF; - unsigned *psa = (unsigned *)0; - unsigned *cvt = (unsigned *)psa[16/4]; - unsigned *tvt = (unsigned *)cvt[156/4]; - int (*ep)(int *, const char**, int *, char **, int *, void *, void *, int *, IKJCT441 *) - = (void*)tvt[40/4]; - IKJCT441 plist; - - /* construct the parameter list */ - plist.ecode = &ecode; - plist.retcode = &rc; - plist.name = &name; - plist.namelen = &namelen; - plist.value = &value; - plist.vallen = &value_size; - plist.token = &token; - plist.ect = &ectnull; - plist.retcode = &rc; - plist.next = (IKJCT441*)0; - - /* call IKJCT441 via function pointer 'ep' */ - ep(plist.ecode, plist.name, plist.namelen, plist.value, plist.vallen, plist.token, plist.ect, plist.retcode, plist.next); - - /* return IKJCT441 retcode value (rc) */ - return rc; -} diff --git a/src/crent370/clib/ikjct441.o b/src/crent370/clib/ikjct441.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/ikjct441.s b/src/crent370/clib/ikjct441.s deleted file mode 100644 index b8aff12..0000000 --- a/src/crent370/clib/ikjct441.s +++ /dev/null @@ -1,101 +0,0 @@ - TITLE '/home/projects/crent370/clib/ikjct441.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'ikjct441' prologue -* frame base=88, local stack=56, call args=40 -&FUNC SETC 'ikjct441' -IKJCT441 PDPPRLG CINDEX=0,FRAME=184,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ikjct441' code - MVC 168(4,13),=F'0' - L 2,4(11) - LTR 2,2 - BE @@L2 - ST 2,88(13) - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - B @@L3 -@@L2 EQU * - SLR 15,15 -@@L3 EQU * - ST 15,172(13) - MVC 176(4,13),=F'0' - MVC 180(4,13),=F'-1' - SLR 3,3 ==> psa - L 2,16(3) ==> cvt - L 2,156(2) ==> tvt - L 4,40(2) ==> ep - ST 11,128(13) ==> .ecode - LA 2,168(,13) - ST 2,156(13) ==> .retcode - LA 2,4(,11) - ST 2,132(13) ==> .name - LA 2,172(,13) - ST 2,136(13) ==> .namelen - LA 2,8(,11) - ST 2,140(13) ==> .value - LA 2,12(,11) - ST 2,144(13) ==> .vallen - LA 2,176(,13) - ST 2,148(13) ==> .token - LA 2,180(,13) - ST 2,152(13) ==> .ect - ST 3,160(13) ==> psa,next - ST 11,88(13) - LA 2,4(,11) - ST 2,92(13) - LA 2,172(,13) - ST 2,96(13) - LA 2,8(,11) - ST 2,100(13) - LA 2,12(,11) - ST 2,104(13) - LA 2,176(,13) - ST 2,108(13) - LA 2,180(,13) - ST 2,112(13) - LA 2,168(,13) - ST 2,116(13) - ST 3,120(13) ==> psa - LA 1,88(,13) - LA 15,0(4) ==> ep - BALR 14,15 - L 15,168(13) -* Function 'ikjct441' epilogue - PDPEPIL -* Function 'ikjct441' literal pool - DS 0D - LTORG -* Function 'ikjct441' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/initssob.c b/src/crent370/clib/initssob.c deleted file mode 100644 index 0c5a801..0000000 --- a/src/crent370/clib/initssob.c +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include -#include - -int initssob(SSOB *ssob, void *ssobindv) -{ - int rc = 0; - - memset(ssob, 0, SSOBHSIZ); - memcpy(ssob->SSOBID, SSOBID_EYE, sizeof(ssob->SSOBID)); - ssob->SSOBLEN = SSOBHSIZ; - ssob->SSOBINDV = ssobindv; - - return 0; -} diff --git a/src/crent370/clib/initssob.o b/src/crent370/clib/initssob.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/initssob.s b/src/crent370/clib/initssob.s deleted file mode 100644 index 117c908..0000000 --- a/src/crent370/clib/initssob.s +++ /dev/null @@ -1,69 +0,0 @@ - TITLE '/home/projects/crent370/clib/initssob.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'initssob' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'initssob' -INITSSOB PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'initssob' code - L 2,0(11) ==> ssob - SLR 4,4 ==> rc - LA 3,20(0,0) ==> n - -*** MEMSET *** - LR 14,2 => target (s) ==> ssob - LR 15,3 => length (n) ==> n - SLR 0,0 => source (NULL) - LR 1,4 fill character ==> rc - SLL 1,24 move fill to high byte - MVCL 14,0 Set target to fill character - ST 2,88(13) ==> ssob - MVC 92(4,13),=A(@@LC0) - MVC 96(4,13),=F'4' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - MVC 4(2,2),=H'20' ==> .SSOBLEN - MVC 16(4,2),4(11) ==> .SSOBINDV,ssobindv - LR 15,4 ==> rc -* Function 'initssob' epilogue - PDPEPIL -* Function 'initssob' literal pool - DS 0D - LTORG -* Function 'initssob' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'SSOB' - DC X'0' - END diff --git a/src/crent370/clib/isalnum.c b/src/crent370/clib/isalnum.c deleted file mode 100644 index f937190..0000000 --- a/src/crent370/clib/isalnum.c +++ /dev/null @@ -1,11 +0,0 @@ -/* ISALNUM.C */ -#include - -extern unsigned short *__isbuf; -extern short *__tolow; -extern short *__toup; - -__PDPCLIB_API__ int isalnum(int c) -{ - return (__isbuf[(c)] & 0x0001U); -} diff --git a/src/crent370/clib/isalnum.o b/src/crent370/clib/isalnum.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/isalnum.s b/src/crent370/clib/isalnum.s deleted file mode 100644 index c948b42..0000000 --- a/src/crent370/clib/isalnum.s +++ /dev/null @@ -1,53 +0,0 @@ - TITLE '/home/projects/crent370/clib/isalnum.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'isalnum' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'isalnum' -ISALNUM PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'isalnum' code - L 2,=V(@@ISBUF) - L 3,0(2) ==> __isbuf - L 2,0(11) ==> c - SLL 2,1 - LH 15,0(2,3) - N 15,=F'1' - N 15,=XL4'0000FFFF' -* Function 'isalnum' epilogue - PDPEPIL -* Function 'isalnum' literal pool - DS 0D - LTORG -* Function 'isalnum' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/isalpha.c b/src/crent370/clib/isalpha.c deleted file mode 100644 index ecf7cea..0000000 --- a/src/crent370/clib/isalpha.c +++ /dev/null @@ -1,11 +0,0 @@ -/* ISALPHA.C */ -#include - -extern unsigned short *__isbuf; -extern short *__tolow; -extern short *__toup; - -__PDPCLIB_API__ int isalpha(int c) -{ - return (__isbuf[(c)] & 0x0002U); -} diff --git a/src/crent370/clib/isalpha.o b/src/crent370/clib/isalpha.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/isalpha.s b/src/crent370/clib/isalpha.s deleted file mode 100644 index 0444021..0000000 --- a/src/crent370/clib/isalpha.s +++ /dev/null @@ -1,53 +0,0 @@ - TITLE '/home/projects/crent370/clib/isalpha.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'isalpha' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'isalpha' -ISALPHA PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'isalpha' code - L 2,=V(@@ISBUF) - L 3,0(2) ==> __isbuf - L 2,0(11) ==> c - SLL 2,1 - LH 15,0(2,3) - N 15,=F'2' - N 15,=XL4'0000FFFF' -* Function 'isalpha' epilogue - PDPEPIL -* Function 'isalpha' literal pool - DS 0D - LTORG -* Function 'isalpha' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/iscntrl.c b/src/crent370/clib/iscntrl.c deleted file mode 100644 index 9a19f51..0000000 --- a/src/crent370/clib/iscntrl.c +++ /dev/null @@ -1,11 +0,0 @@ -/* ISCNTRL.C */ -#include - -extern unsigned short *__isbuf; -extern short *__tolow; -extern short *__toup; - -__PDPCLIB_API__ int iscntrl(int c) -{ - return (__isbuf[(c)] & 0x0004U); -} diff --git a/src/crent370/clib/iscntrl.o b/src/crent370/clib/iscntrl.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/iscntrl.s b/src/crent370/clib/iscntrl.s deleted file mode 100644 index 2b40f72..0000000 --- a/src/crent370/clib/iscntrl.s +++ /dev/null @@ -1,53 +0,0 @@ - TITLE '/home/projects/crent370/clib/iscntrl.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'iscntrl' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'iscntrl' -ISCNTRL PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'iscntrl' code - L 2,=V(@@ISBUF) - L 3,0(2) ==> __isbuf - L 2,0(11) ==> c - SLL 2,1 - LH 15,0(2,3) - N 15,=F'4' - N 15,=XL4'0000FFFF' -* Function 'iscntrl' epilogue - PDPEPIL -* Function 'iscntrl' literal pool - DS 0D - LTORG -* Function 'iscntrl' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/isdigit.c b/src/crent370/clib/isdigit.c deleted file mode 100644 index 7764235..0000000 --- a/src/crent370/clib/isdigit.c +++ /dev/null @@ -1,11 +0,0 @@ -/* ISDIGIT.C */ -#include - -extern unsigned short *__isbuf; -extern short *__tolow; -extern short *__toup; - -__PDPCLIB_API__ int isdigit(int c) -{ - return (__isbuf[(c)] & 0x0008U); -} diff --git a/src/crent370/clib/isdigit.o b/src/crent370/clib/isdigit.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/isdigit.s b/src/crent370/clib/isdigit.s deleted file mode 100644 index f9502a1..0000000 --- a/src/crent370/clib/isdigit.s +++ /dev/null @@ -1,53 +0,0 @@ - TITLE '/home/projects/crent370/clib/isdigit.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'isdigit' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'isdigit' -ISDIGIT PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'isdigit' code - L 2,=V(@@ISBUF) - L 3,0(2) ==> __isbuf - L 2,0(11) ==> c - SLL 2,1 - LH 15,0(2,3) - N 15,=F'8' - N 15,=XL4'0000FFFF' -* Function 'isdigit' epilogue - PDPEPIL -* Function 'isdigit' literal pool - DS 0D - LTORG -* Function 'isdigit' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/isgraph.c b/src/crent370/clib/isgraph.c deleted file mode 100644 index d2f4805..0000000 --- a/src/crent370/clib/isgraph.c +++ /dev/null @@ -1,11 +0,0 @@ -/* ISGRAPH.C */ -#include - -extern unsigned short *__isbuf; -extern short *__tolow; -extern short *__toup; - -__PDPCLIB_API__ int isgraph(int c) -{ - return (__isbuf[(c)] & 0x0010U); -} diff --git a/src/crent370/clib/isgraph.o b/src/crent370/clib/isgraph.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/isgraph.s b/src/crent370/clib/isgraph.s deleted file mode 100644 index dddfb38..0000000 --- a/src/crent370/clib/isgraph.s +++ /dev/null @@ -1,53 +0,0 @@ - TITLE '/home/projects/crent370/clib/isgraph.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'isgraph' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'isgraph' -ISGRAPH PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'isgraph' code - L 2,=V(@@ISBUF) - L 3,0(2) ==> __isbuf - L 2,0(11) ==> c - SLL 2,1 - LH 15,0(2,3) - N 15,=F'16' - N 15,=XL4'0000FFFF' -* Function 'isgraph' epilogue - PDPEPIL -* Function 'isgraph' literal pool - DS 0D - LTORG -* Function 'isgraph' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/islower.c b/src/crent370/clib/islower.c deleted file mode 100644 index 7ba49a5..0000000 --- a/src/crent370/clib/islower.c +++ /dev/null @@ -1,11 +0,0 @@ -/* ISLOWER.C */ -#include - -extern unsigned short *__isbuf; -extern short *__tolow; -extern short *__toup; - -__PDPCLIB_API__ int islower(int c) -{ - return (__isbuf[(c)] & 0x0020U); -} diff --git a/src/crent370/clib/islower.o b/src/crent370/clib/islower.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/islower.s b/src/crent370/clib/islower.s deleted file mode 100644 index 52f6a66..0000000 --- a/src/crent370/clib/islower.s +++ /dev/null @@ -1,53 +0,0 @@ - TITLE '/home/projects/crent370/clib/islower.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'islower' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'islower' -ISLOWER PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'islower' code - L 2,=V(@@ISBUF) - L 3,0(2) ==> __isbuf - L 2,0(11) ==> c - SLL 2,1 - LH 15,0(2,3) - N 15,=F'32' - N 15,=XL4'0000FFFF' -* Function 'islower' epilogue - PDPEPIL -* Function 'islower' literal pool - DS 0D - LTORG -* Function 'islower' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/isprint.c b/src/crent370/clib/isprint.c deleted file mode 100644 index 9da4f11..0000000 --- a/src/crent370/clib/isprint.c +++ /dev/null @@ -1,11 +0,0 @@ -/* ISPRINT.C */ -#include - -extern unsigned short *__isbuf; -extern short *__tolow; -extern short *__toup; - -__PDPCLIB_API__ int isprint(int c) -{ - return (__isbuf[(c)] & 0x0040U); -} diff --git a/src/crent370/clib/isprint.o b/src/crent370/clib/isprint.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/isprint.s b/src/crent370/clib/isprint.s deleted file mode 100644 index ced8cf4..0000000 --- a/src/crent370/clib/isprint.s +++ /dev/null @@ -1,53 +0,0 @@ - TITLE '/home/projects/crent370/clib/isprint.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'isprint' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'isprint' -ISPRINT PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'isprint' code - L 2,=V(@@ISBUF) - L 3,0(2) ==> __isbuf - L 2,0(11) ==> c - SLL 2,1 - LH 15,0(2,3) - N 15,=F'64' - N 15,=XL4'0000FFFF' -* Function 'isprint' epilogue - PDPEPIL -* Function 'isprint' literal pool - DS 0D - LTORG -* Function 'isprint' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/ispunct.c b/src/crent370/clib/ispunct.c deleted file mode 100644 index cd40550..0000000 --- a/src/crent370/clib/ispunct.c +++ /dev/null @@ -1,11 +0,0 @@ -/* ISPUNCT.C */ -#include - -extern unsigned short *__isbuf; -extern short *__tolow; -extern short *__toup; - -__PDPCLIB_API__ int ispunct(int c) -{ - return (__isbuf[(c)] & 0x0080U); -} diff --git a/src/crent370/clib/ispunct.o b/src/crent370/clib/ispunct.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/ispunct.s b/src/crent370/clib/ispunct.s deleted file mode 100644 index d73804b..0000000 --- a/src/crent370/clib/ispunct.s +++ /dev/null @@ -1,53 +0,0 @@ - TITLE '/home/projects/crent370/clib/ispunct.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'ispunct' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'ispunct' -ISPUNCT PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ispunct' code - L 2,=V(@@ISBUF) - L 3,0(2) ==> __isbuf - L 2,0(11) ==> c - SLL 2,1 - LH 15,0(2,3) - N 15,=F'128' - N 15,=XL4'0000FFFF' -* Function 'ispunct' epilogue - PDPEPIL -* Function 'ispunct' literal pool - DS 0D - LTORG -* Function 'ispunct' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/isspace.c b/src/crent370/clib/isspace.c deleted file mode 100644 index 6388e3d..0000000 --- a/src/crent370/clib/isspace.c +++ /dev/null @@ -1,11 +0,0 @@ -/* ISSPACE.C */ -#include - -extern unsigned short *__isbuf; -extern short *__tolow; -extern short *__toup; - -__PDPCLIB_API__ int isspace(int c) -{ - return (__isbuf[(c)] & 0x0100U); -} diff --git a/src/crent370/clib/isspace.o b/src/crent370/clib/isspace.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/isspace.s b/src/crent370/clib/isspace.s deleted file mode 100644 index 56e5e45..0000000 --- a/src/crent370/clib/isspace.s +++ /dev/null @@ -1,53 +0,0 @@ - TITLE '/home/projects/crent370/clib/isspace.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'isspace' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'isspace' -ISSPACE PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'isspace' code - L 2,=V(@@ISBUF) - L 3,0(2) ==> __isbuf - L 2,0(11) ==> c - SLL 2,1 - LH 15,0(2,3) - N 15,=F'256' - N 15,=XL4'0000FFFF' -* Function 'isspace' epilogue - PDPEPIL -* Function 'isspace' literal pool - DS 0D - LTORG -* Function 'isspace' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/isupper.c b/src/crent370/clib/isupper.c deleted file mode 100644 index 4603952..0000000 --- a/src/crent370/clib/isupper.c +++ /dev/null @@ -1,11 +0,0 @@ -/* ISUPPER.C */ -#include - -extern unsigned short *__isbuf; -extern short *__tolow; -extern short *__toup; - -__PDPCLIB_API__ int isupper(int c) -{ - return (__isbuf[(c)] & 0x0200U); -} diff --git a/src/crent370/clib/isupper.o b/src/crent370/clib/isupper.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/isupper.s b/src/crent370/clib/isupper.s deleted file mode 100644 index 029fa37..0000000 --- a/src/crent370/clib/isupper.s +++ /dev/null @@ -1,53 +0,0 @@ - TITLE '/home/projects/crent370/clib/isupper.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'isupper' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'isupper' -ISUPPER PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'isupper' code - L 2,=V(@@ISBUF) - L 3,0(2) ==> __isbuf - L 2,0(11) ==> c - SLL 2,1 - LH 15,0(2,3) - N 15,=F'512' - N 15,=XL4'0000FFFF' -* Function 'isupper' epilogue - PDPEPIL -* Function 'isupper' literal pool - DS 0D - LTORG -* Function 'isupper' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/isxdigit.c b/src/crent370/clib/isxdigit.c deleted file mode 100644 index d5ce011..0000000 --- a/src/crent370/clib/isxdigit.c +++ /dev/null @@ -1,11 +0,0 @@ -/* ISXDIGIT.C */ -#include - -extern unsigned short *__isbuf; -extern short *__tolow; -extern short *__toup; - -__PDPCLIB_API__ int isxdigit(int c) -{ - return (__isbuf[(c)] & 0x0400U); -} diff --git a/src/crent370/clib/isxdigit.o b/src/crent370/clib/isxdigit.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/isxdigit.s b/src/crent370/clib/isxdigit.s deleted file mode 100644 index 42c4c7e..0000000 --- a/src/crent370/clib/isxdigit.s +++ /dev/null @@ -1,53 +0,0 @@ - TITLE '/home/projects/crent370/clib/isxdigit.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'isxdigit' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'isxdigit' -ISXDIGIT PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'isxdigit' code - L 2,=V(@@ISBUF) - L 3,0(2) ==> __isbuf - L 2,0(11) ==> c - SLL 2,1 - LH 15,0(2,3) - N 15,=F'1024' - N 15,=XL4'0000FFFF' -* Function 'isxdigit' epilogue - PDPEPIL -* Function 'isxdigit' literal pool - DS 0D - LTORG -* Function 'isxdigit' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/labs.c b/src/crent370/clib/labs.c deleted file mode 100644 index 023a735..0000000 --- a/src/crent370/clib/labs.c +++ /dev/null @@ -1,15 +0,0 @@ -/* LABS.C */ -#include -#include - -#ifdef labs -#undef labs -#endif -__PDPCLIB_API__ long int labs(long int j) -{ - if (j < 0) - { - j = -j; - } - return (j); -} diff --git a/src/crent370/clib/labs.o b/src/crent370/clib/labs.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/labs.s b/src/crent370/clib/labs.s deleted file mode 100644 index 38a5580..0000000 --- a/src/crent370/clib/labs.s +++ /dev/null @@ -1,48 +0,0 @@ - TITLE '/home/projects/crent370/clib/labs.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'labs' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'labs' -LABS PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'labs' code - L 2,0(11) ==> j - LPR 15,2 ==> j -* Function 'labs' epilogue - PDPEPIL -* Function 'labs' literal pool - DS 0D - LTORG -* Function 'labs' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/ldexp.c b/src/crent370/clib/ldexp.c deleted file mode 100644 index b631ae7..0000000 --- a/src/crent370/clib/ldexp.c +++ /dev/null @@ -1,60 +0,0 @@ -/* LDEXP.C */ -#if 1 -#include "math.h" -#include "float.h" -#include "errno.h" -#include "stddef.h" - -#if 0 -/* - - Some constants to make life easier elsewhere - (These should I guess be in math.h) - -*/ -static const double pi = 3.1415926535897932384626433832795; -static const double ln10 = 2.3025850929940456840179914546844; -static const double ln2 = 0.69314718055994530941723212145818 ; -#else -#define pi (3.1415926535897932384626433832795) -#define ln10 (2.3025850929940456840179914546844) -#define ln2 (0.69314718055994530941723212145818) -#endif - -#else -#include -#endif - -__PDPCLIB_API__ double ldexp(double x, int exp) -{ -/* - note this is not so easy for IBM as it uses HEX float -*/ - int bin_exp,hex_exp,adj_exp; - union dblhex - { - double d; - unsigned short s[4]; - }; - union dblhex split; -/* - note "X" mauy already have an exponent => extract it -*/ - split.d = frexp(x,&bin_exp); - bin_exp = bin_exp + exp; /* add in from caller */ -/* need to test for sensible value here */ - hex_exp = (bin_exp / 4); /* convert back to HEX */ - adj_exp = bin_exp - (hex_exp * 4); - if (adj_exp < 0){ hex_exp=hex_exp -1; adj_exp = 4 + adj_exp;} - split.s[0] = split.s[0] & 0x80ff; - split.s[0] = split.s[0] | (((hex_exp+64) << 8) & 0x7f00); - /* following code adjust for fact IBM has hex float */ - /* well it will I have done */ - while ( adj_exp > 0 ) - { - split.d = split.d * 2; - --adj_exp; - } - /**/ - return(split.d); -} diff --git a/src/crent370/clib/ldexp.o b/src/crent370/clib/ldexp.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/ldexp.s b/src/crent370/clib/ldexp.s deleted file mode 100644 index 025b1d8..0000000 --- a/src/crent370/clib/ldexp.s +++ /dev/null @@ -1,104 +0,0 @@ - TITLE '/home/projects/crent370/clib/ldexp.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'ldexp' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'ldexp' -LDEXP PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ldexp' code - MVC 88(8,13),0(11) ==> x - LA 2,104(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(FREXP) - BALR 14,15 - STD 0,80(,13) ==> split - LM 4,5,80(13) ==> split - L 2,8(11) ==> exp - A 2,104(13) - ST 2,104(13) - BNL @@L2 - A 2,=F'3' -@@L2 EQU * - LR 6,2 ==> hex_exp - SRA 6,2 ==> hex_exp - LR 2,6 ==> hex_exp - MH 2,=H'4' - L 15,104(13) ==> adj_exp - SR 15,2 ==> adj_exp - BNL @@L3 - BCTR 6,0 ==> hex_exp - A 15,=F'4' ==> adj_exp -@@L3 EQU * - LR 2,4 - SRL 2,16 - SLL 2,16 - SRA 2,16 - N 2,=F'33023' - SLL 2,16 - N 4,=F'65535' - OR 4,2 - LR 3,4 - SRL 3,16 - LR 2,6 ==> hex_exp - A 2,=F'64' - SLL 2,8 - N 2,=F'32512' - SLL 2,16 - SRA 2,16 - OR 3,2 - SLL 3,16 - N 4,=F'65535' - OR 4,3 - LTR 15,15 ==> adj_exp - BNH @@L9 -@@L7 EQU * - STM 4,5,80(13) ==> split - LD 0,80(,13) ==> split - ADR 0,0 ==> split - STD 0,80(,13) ==> split - LM 4,5,80(13) ==> split - BCTR 15,0 ==> adj_exp - LTR 15,15 ==> adj_exp - BH @@L7 -@@L9 EQU * - STM 4,5,80(13) ==> split - LD 0,80(,13) ==> split -* Function 'ldexp' epilogue - PDPEPIL -* Function 'ldexp' literal pool - DS 0D - LTORG -* Function 'ldexp' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/ldiv.c b/src/crent370/clib/ldiv.c deleted file mode 100644 index acf4baf..0000000 --- a/src/crent370/clib/ldiv.c +++ /dev/null @@ -1,13 +0,0 @@ -/* LDIV.C */ -#include -#include -#include - -__PDPCLIB_API__ ldiv_t ldiv(long int numer, long int denom) -{ - ldiv_t x; - - x.quot = numer / denom; - x.rem = numer % denom; - return (x); -} diff --git a/src/crent370/clib/ldiv.o b/src/crent370/clib/ldiv.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/ldiv.s b/src/crent370/clib/ldiv.s deleted file mode 100644 index 9f75209..0000000 --- a/src/crent370/clib/ldiv.s +++ /dev/null @@ -1,65 +0,0 @@ - TITLE '/home/projects/crent370/clib/ldiv.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'ldiv' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'ldiv' -LDIV PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ldiv' code - SLR 6,6 ==> x - SLR 7,7 ==> x - LR 2,6 ==> numer - LR 3,7 ==> numer - LR 4,6 ==> numer - LR 5,7 ==> numer - LR 15,0 - L 8,0(11) ==> numer - L 9,4(11) ==> denom - LR 2,8 ==> numer - SRDA 2,32 ==> numer - DR 2,9 ==> numer,denom - LR 6,3 ==> numer - LR 4,8 ==> numer - SRDA 4,32 ==> numer - DR 4,9 ==> numer,denom - LR 7,4 ==> x - ST 6,0(15) ==> x, - ST 7,4+0(15) ==> x, -* Function 'ldiv' epilogue - PDPEPIL -* Function 'ldiv' literal pool - DS 0D - LTORG -* Function 'ldiv' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/loadenv.c b/src/crent370/clib/loadenv.c deleted file mode 100644 index e0b2736..0000000 --- a/src/crent370/clib/loadenv.c +++ /dev/null @@ -1,67 +0,0 @@ -/* LOADENV.C */ -#include -#include -#include -#include -#include "clibenv.h" - -static int numbered(const char *buf, int *len); - -int -loadenv(const char *fn) -{ - int err = 1; - FILE *fp = fopen(fn,"r"); - char *p; - int len; - char buf[1024]; - - if (!fp) goto quit; - - while(fgets(buf, sizeof(buf), fp)) { - p = strrchr(buf, '\n'); /* get last newline character in buf */ - - if (p) *p = 0; /* remove the trailing newline */ - if (buf[0]=='*') continue; /* skip MVS style "* comments" */ - if (buf[0]=='#') continue; /* skip Unix style "# comments" */ - if (numbered(buf, &len)) { - /* remove sequence numbers from end of buf */ - buf[len-8] = 0; - len -= 8; - } - /* remove any trailing spaces */ - for(len--; len > 0 && buf[len]==' '; len--) buf[len] = 0; - - if (strchr(buf, '=')) { /* do we have "name = value"? */ - putenv(buf); /* yes, set environment variable */ - } - } - - err = 0; - -quit: - if (fp) fclose(fp); - return err; -} - -__asm__("\n&FUNC SETC 'numbered'"); -static int -numbered(const char *buf, int *len) -{ - int rc = 0; - const char *p; - - *len = strlen(buf); - if (*len <= 8) goto quit; - - /* examine last 8 character of buf for sequnence number */ - for(p = &buf[(*len)-8]; *p; p++) { - if (*p >= '0' && *p <= '9') continue; /* sequence number */ - goto quit; /* no sequence */ - } - - rc = 1; /* buf looks like it has sequence numbers in last 8 characters */ - -quit: - return rc; -} diff --git a/src/crent370/clib/loadenv.o b/src/crent370/clib/loadenv.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/loadenv.s b/src/crent370/clib/loadenv.s deleted file mode 100644 index 06ad3b1..0000000 --- a/src/crent370/clib/loadenv.s +++ /dev/null @@ -1,204 +0,0 @@ - TITLE '/home/projects/crent370/clib/loadenv.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'loadenv' prologue -* frame base=88, local stack=1032, call args=16 -&FUNC SETC 'loadenv' -LOADENV PDPPRLG CINDEX=0,FRAME=1136,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'loadenv' code - LA 2,1(0,0) ==> err - MVC 88(4,13),0(11) ==> fn - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(FOPEN) - BALR 14,15 - LR 3,15 ==> fp - LTR 15,15 ==> fp - BE @@L3 - B @@L4 -@@L18 EQU * - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=F'21' - LA 1,88(,13) - L 15,=V(STRRCHR) - BALR 14,15 - LTR 15,15 ==> p - BE @@L7 - MVI 0(15),0 ==> p -@@L7 EQU * - IC 2,104(13) ==> buf - CLM 2,1,=XL1'5C' - BE @@L4 - CLM 2,1,=XL1'7B' - BE @@L4 - LA 4,104(,13) - ST 4,88(13) - LA 2,1128(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=A(@@2) - BALR 14,15 - LTR 15,15 ==> fp - BE @@L10 - L 2,1128(13) - AR 2,4 - A 2,=F'-8' - MVI 0(2),0 ==> buf - L 2,1128(13) - A 2,=F'-8' - ST 2,1128(13) -@@L10 EQU * - L 2,1128(13) - BCTR 2,0 - ST 2,1128(13) - LR 15,2 - LTR 2,2 - BNH @@L12 - IC 2,104(13,2) ==> buf - SLL 2,24 - SRA 2,24 - C 2,=F'64' - BNE @@L12 -@@L16 EQU * - SLR 2,2 - STC 2,104(15,13) ==> buf - L 2,1128(13) - BCTR 2,0 - ST 2,1128(13) - LR 15,2 - LTR 2,2 - BNH @@L12 - IC 2,104(13,2) ==> buf - CLM 2,1,=XL1'40' - BE @@L16 -@@L12 EQU * - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=F'126' - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LTR 15,15 ==> fp - BE @@L4 - ST 2,88(13) - LA 1,88(,13) - L 15,=V(PUTENV) - BALR 14,15 -@@L4 EQU * - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=F'1024' - ST 3,96(13) ==> fp - LA 1,88(,13) - L 15,=V(FGETS) - BALR 14,15 - LTR 15,15 ==> fp - BNE @@L18 - SLR 2,2 ==> err -@@L3 EQU * - LTR 3,3 ==> fp - BE @@L19 - ST 3,88(13) ==> fp - LA 1,88(,13) - L 15,=V(FCLOSE) - BALR 14,15 -@@L19 EQU * - LR 15,2 ==> err -* Function 'loadenv' epilogue - PDPEPIL -* Function 'loadenv' literal pool - DS 0D - LTORG -* Function 'loadenv' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'r' - DC X'0' - -&FUNC SETC 'numbered' - DS 0F - EJECT -* static function 'numbered' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'numbered' -@@2 PDPPRLG CINDEX=1,FRAME=96,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'numbered' code - L 3,0(11) ==> buf - L 2,4(11) ==> len - SLR 4,4 ==> rc - ST 3,88(13) ==> buf - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - ST 15,0(2) ==> rc,len - LA 5,8(0,0) - CR 15,5 ==> rc - BNH @@L23 - LR 15,3 ==> p,buf - A 15,0(2) ==> p,len - A 15,=F'-8' ==> p - IC 2,0(15) ==> p - CLM 2,1,=XL1'00' - BE @@L31 -@@L29 EQU * - IC 3,0(15) ==> p - LA 2,16(,3) - CLM 2,1,=XL1'09' - BH @@L23 - A 15,=F'1' ==> p - IC 2,0(15) ==> p - CLM 2,1,=XL1'00' - BNE @@L29 -@@L31 EQU * - LA 4,1(0,0) ==> rc -@@L23 EQU * - LR 15,4 ==> rc -* Function 'numbered' epilogue - PDPEPIL -* Function 'numbered' literal pool - DS 0D - LTORG -* Function 'numbered' page table -@@PGT1 DS 0F - DC A(@@PG1) - END diff --git a/src/crent370/clib/localtim.c b/src/crent370/clib/localtim.c deleted file mode 100644 index 3fc715a..0000000 --- a/src/crent370/clib/localtim.c +++ /dev/null @@ -1,34 +0,0 @@ -/* LOCALTIM.C */ -#include "time.h" -#include "stdarg.h" -#include "stdio.h" -#include "stddef.h" -#include "mvssupa.h" - -/* scalar date routines -- public domain by Ray Gardner -** These will work over the range 1-01-01 thru 14699-12-31 -** The functions written by Ray are isleap, months_to_days, -** years_to_days, ymd_to_scalar, scalar_to_ymd. -** modified slightly by Paul Edwards -*/ - -extern int __isleap(unsigned yr); -extern unsigned __mtd(unsigned month); -extern long __ytd(unsigned yr); -extern long __ymdts(unsigned yr, unsigned mo, unsigned day); -extern void __stymd(long scalar, - unsigned *pyr, unsigned *pmo, unsigned *pday); - -#define isleap(y) __isleap(y) -#define months_to_days(m) __mtd(m) -#define years_to_days(y) __ytd(y) -#define ymd_to_scalar(y,m,d) __ymdts((y),(m),(d)) -#define scalar_to_ymd(s,y,m,d) __stymd((s),(y),(m),(d)) - -struct tm *localtime(const time_t *timer) -{ - time_t t = (*timer) + __tzget(); - - return (gmtime(&t)); -} - diff --git a/src/crent370/clib/localtim.o b/src/crent370/clib/localtim.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/localtim.s b/src/crent370/clib/localtim.s deleted file mode 100644 index af1ecfc..0000000 --- a/src/crent370/clib/localtim.s +++ /dev/null @@ -1,57 +0,0 @@ - TITLE '/home/projects/crent370/clib/localtim.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'localtime' prologue -* frame base=88, local stack=8, call args=8 -&FUNC SETC 'localtime' -LOCALTIM PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'localtime' code - LA 1,88(,13) - L 15,=V(@@TZGET) - BALR 14,15 - L 2,0(11) ==> timer - A 15,0(2) ==> timer - ST 15,96(13) - LA 2,96(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(GMTIME) - BALR 14,15 -* Function 'localtime' epilogue - PDPEPIL -* Function 'localtime' literal pool - DS 0D - LTORG -* Function 'localtime' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/localtmr.c b/src/crent370/clib/localtmr.c deleted file mode 100644 index bf15616..0000000 --- a/src/crent370/clib/localtmr.c +++ /dev/null @@ -1,34 +0,0 @@ -/* LOCALTIM.C */ -#include "time.h" -#include "stdarg.h" -#include "stdio.h" -#include "stddef.h" -#include "mvssupa.h" - -/* scalar date routines -- public domain by Ray Gardner -** These will work over the range 1-01-01 thru 14699-12-31 -** The functions written by Ray are isleap, months_to_days, -** years_to_days, ymd_to_scalar, scalar_to_ymd. -** modified slightly by Paul Edwards -*/ - -extern int __isleap(unsigned yr); -extern unsigned __mtd(unsigned month); -extern long __ytd(unsigned yr); -extern long __ymdts(unsigned yr, unsigned mo, unsigned day); -extern void __stymd(long scalar, - unsigned *pyr, unsigned *pmo, unsigned *pday); - -#define isleap(y) __isleap(y) -#define months_to_days(m) __mtd(m) -#define years_to_days(y) __ytd(y) -#define ymd_to_scalar(y,m,d) __ymdts((y),(m),(d)) -#define scalar_to_ymd(s,y,m,d) __stymd((s),(y),(m),(d)) - -struct tm *localtime_r(const time_t *timer, struct tm *p) -{ - time_t t = (*timer) + __tzget(); - - return (gmtime_r(&t, p)); -} - diff --git a/src/crent370/clib/localtmr.o b/src/crent370/clib/localtmr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/localtmr.s b/src/crent370/clib/localtmr.s deleted file mode 100644 index 983c701..0000000 --- a/src/crent370/clib/localtmr.s +++ /dev/null @@ -1,58 +0,0 @@ - TITLE '/home/projects/crent370/clib/localtmr.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'localtime_r' prologue -* frame base=88, local stack=8, call args=8 -&FUNC SETC 'localtime_r' -LOCALTMR PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'localtime_r' code - LA 1,88(,13) - L 15,=V(@@TZGET) - BALR 14,15 - L 2,0(11) ==> timer - A 15,0(2) ==> timer - ST 15,96(13) - LA 2,96(,13) - ST 2,88(13) - MVC 92(4,13),4(11) ==> p - LA 1,88(,13) - L 15,=V(GMTIMER) - BALR 14,15 -* Function 'localtime_r' epilogue - PDPEPIL -* Function 'localtime_r' literal pool - DS 0D - LTORG -* Function 'localtime_r' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/log.c b/src/crent370/clib/log.c deleted file mode 100644 index 57c1a64..0000000 --- a/src/crent370/clib/log.c +++ /dev/null @@ -1,80 +0,0 @@ -/* LOG.C */ -#if 1 -#include "math.h" -#include "float.h" -#include "errno.h" -#include "stddef.h" - -#if 0 -/* - - Some constants to make life easier elsewhere - (These should I guess be in math.h) - -*/ -static const double pi = 3.1415926535897932384626433832795; -static const double ln10 = 2.3025850929940456840179914546844; -static const double ln2 = 0.69314718055994530941723212145818 ; -#else -#define pi (3.1415926535897932384626433832795) -#define ln10 (2.3025850929940456840179914546844) -#define ln2 (0.69314718055994530941723212145818) -#endif - -#else -#include -#endif - -/* - - Calculate LOG using Taylor series. - - log(1+ x) = x - x**2 + x**3 - x**4 + x**5 - ==== ==== ==== ==== ......... - 2 3 4 8 - - Note this only works for small x so we scale.... - -*/ -__PDPCLIB_API__ double log (double x) -{ - int i,scale; - double term,answer,work,xs; - - if (x <= 0 ) - { - /* need to set signal */ - errno=EDOM; - return (HUGE_VAL); - } - if( x == 1.0)return(0.0); - -/* - Scale arguments to be in range 1 < x <= 10 -*/ - -/* - scale = 0; - xs = x; - while ( xs > 10.0 ) { scale ++; xs=xs/10.0;} - while ( xs < 1.0 ) { scale --; xs=xs*10.0;} -*/ - xs = frexp(x,&scale); - xs = (1.0 * xs) - 1.0; - scale = scale - 0; - - i=2; - term=answer=xs; - - while (1) - { - work = i; - term = - (term * xs); - if ( answer == (answer + (term/work)) )break; - answer = answer + (term/work); - i++; - } - - answer = answer + (double)scale * ln2; - return(answer); -} diff --git a/src/crent370/clib/log.o b/src/crent370/clib/log.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/log.s b/src/crent370/clib/log.s deleted file mode 100644 index df8538f..0000000 --- a/src/crent370/clib/log.s +++ /dev/null @@ -1,100 +0,0 @@ - TITLE '/home/projects/crent370/clib/log.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'log' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'log' -LOG PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'log' code - LD 2,0(11) ==> x - LTDR 2,2 ==> x - BH @@L2 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - MVC 0(4,15),=F'33' - LD 0,=D'9.99999999999999983034E72' ==> answer - B @@L1 -@@L2 EQU * - LD 0,=D'0.0E0' ==> answer - CD 2,=D'1.0E0' ==> x - BE @@L1 - STD 2,88(13) ==> x - LA 2,104(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(FREXP) - BALR 14,15 - SD 0,=D'1.0E0' - STD 0,80(,13) - LM 4,5,80(13) ==> xs - LA 2,2(0,0) ==> i - LDR 4,0 ==> answer,xs - LDR 2,0 ==> term,answer -@@L11 EQU * - MVC 80(4,13),=XL8'4E00000080000000' - ST 2,84(,13) ==> i - XI 84(13),128 - LD 0,80(,13) ==> work - SD 0,=XL8'4E00000080000000' ==> work - STM 4,5,80(13) ==> xs - LD 6,80(,13) - MDR 2,6 - LCDR 2,2 ==> term - LDR 6,2 ==> term - DDR 6,0 ==> work - LDR 0,6 - ADR 0,4 ==> answer - CDR 4,0 ==> answer - BE @@L7 - LDR 4,0 ==> answer - A 2,=F'1' ==> i - B @@L11 -@@L7 EQU * - L 2,104(13) - MVC 80(4,13),=XL8'4E00000080000000' - ST 2,84(,13) - XI 84(13),128 - LD 0,80(,13) - SD 0,=XL8'4E00000080000000' - MD 0,=D'6.93147180559945313982E-1' - ADR 0,4 ==> answer -@@L1 EQU * -* Function 'log' epilogue - PDPEPIL -* Function 'log' literal pool - DS 0D - LTORG -* Function 'log' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/log10.c b/src/crent370/clib/log10.c deleted file mode 100644 index 5360d01..0000000 --- a/src/crent370/clib/log10.c +++ /dev/null @@ -1,31 +0,0 @@ -/* LOG10.C */ -#if 1 -#include "math.h" -#include "float.h" -#include "errno.h" -#include "stddef.h" - -#if 0 -/* - - Some constants to make life easier elsewhere - (These should I guess be in math.h) - -*/ -static const double pi = 3.1415926535897932384626433832795; -static const double ln10 = 2.3025850929940456840179914546844; -static const double ln2 = 0.69314718055994530941723212145818 ; -#else -#define pi (3.1415926535897932384626433832795) -#define ln10 (2.3025850929940456840179914546844) -#define ln2 (0.69314718055994530941723212145818) -#endif - -#else -#include -#endif - -__PDPCLIB_API__ double log10(double x) -{ - return ( log(x) / ln10 ); -} diff --git a/src/crent370/clib/log10.o b/src/crent370/clib/log10.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/log10.s b/src/crent370/clib/log10.s deleted file mode 100644 index f83307d..0000000 --- a/src/crent370/clib/log10.s +++ /dev/null @@ -1,51 +0,0 @@ - TITLE '/home/projects/crent370/clib/log10.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'log10' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'log10' -LOG10 PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'log10' code - MVC 88(8,13),0(11) ==> x - LA 1,88(,13) - L 15,=V(LOG) - BALR 14,15 - DD 0,=D'2.30258509299404567905E0' -* Function 'log10' epilogue - PDPEPIL -* Function 'log10' literal pool - DS 0D - LTORG -* Function 'log10' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/longjmp.c b/src/crent370/clib/longjmp.c deleted file mode 100644 index 2d6fea2..0000000 --- a/src/crent370/clib/longjmp.c +++ /dev/null @@ -1,35 +0,0 @@ -/*********************************************************************/ -/* */ -/* This Program Written by Paul Edwards. */ -/* Released to the Public Domain */ -/* */ -/*********************************************************************/ -/*********************************************************************/ -/* */ -/* setjmp.c - implementation of stuff in setjmp.h */ -/* */ -/*********************************************************************/ - -#include "setjmp.h" -#include "stddef.h" - -extern int __longj(void *); - -__PDPCLIB_API__ void longjmp(jmp_buf env, int val) -{ - // wtof("%s: enter val=%d", __func__, val); - - if (val == 0) { - val = 1; - } - - env[0].retval = val; - // wtodumpf(env, sizeof(jmp_buf), "%s: jmp_buf", __func__); - - /* load regs */ - // wtof("%s: calling __longj()", __func__); - __longj(env); - - // wtof("%s: enter exit", __func__); - return; -} diff --git a/src/crent370/clib/longjmp.o b/src/crent370/clib/longjmp.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/longjmp.s b/src/crent370/clib/longjmp.s deleted file mode 100644 index d854844..0000000 --- a/src/crent370/clib/longjmp.s +++ /dev/null @@ -1,57 +0,0 @@ - TITLE '/home/projects/crent370/clib/longjmp.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'longjmp' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'longjmp' -LONGJMP PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'longjmp' code - L 2,0(11) ==> env - L 15,4(11) ==> val - LTR 15,15 ==> val - BNE @@L2 - LA 15,1(0,0) ==> val -@@L2 EQU * - ST 15,60(2) ==> val,retval - ST 2,88(13) ==> env - LA 1,88(,13) - L 15,=V(@@LONGJ) - BALR 14,15 -* Function 'longjmp' epilogue - PDPEPIL -* Function 'longjmp' literal pool - DS 0D - LTORG -* Function 'longjmp' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/makefile b/src/crent370/clib/makefile deleted file mode 100644 index 8eacb2a..0000000 --- a/src/crent370/clib/makefile +++ /dev/null @@ -1,648 +0,0 @@ -# -# makefile for crent370/jes c files -# -# c2asm370 compiler flags -INC1 := -I. -INC2 := -I/home/projects/crent370/include -CC := c2asm370 -CFLAGS := -fverbose-asm -S -O1 $(INC1) $(INC2) -# -# c source code files -C_FILES := abort.c \ - @@abrpt.c \ - abs.c \ - acos.c \ - @@apfset.c \ - @@aradd.c \ - @@aradf.c \ - @@arcou.c \ - @@ardel.c \ - @@areach.c \ - @@arfre.c \ - @@arget.c \ - @@arnew.c \ - @@arsiz.c \ - @@ascb.c \ - asctime.c \ - asin.c \ - @@assert.c \ - atan2.c \ - atan.c \ - atexit.c \ - atof.c \ - atoi.c \ - atol.c \ - @@austep.c \ - @@autask.c \ - @@autcde.c \ - @@autnam.c \ - @@b64dec.c \ - @@b64enc.c \ - @@b64tbl.c \ - bcopy.c \ - @@bldl.c \ - bsearch.c \ - @@call.c \ - @@caller.c \ - calloc.c \ - ceil.c \ - @@cibdel.c \ - @@cibget.c \ - @@cibset.c \ - clearerr.c \ - clibary.c \ - clock.c \ - cos.c \ - cosh.c \ - @@cpclos.c \ - @@cpopen.c \ - @@cppoin.c \ - @@cpread.c \ - @@crtget.c \ - @@crtres.c \ - @@crtset.c \ - @@cs.c \ - @@ctcrte.c \ - @@ctcrtx.c \ - @@ctdel.c \ - @@ctdet.c \ - @@ctfind.c \ - @@ctgtcb.c \ - ctime.c \ - @@ctlock.c \ - @@ctpop.c \ - @@ctpost.c \ - @@ctpush.c \ - @@ctself.c \ - @@cttwat.c \ - @@ctwait.c \ - @@ctyiel.c \ - @@dblcvt.c \ - @dbleps.c \ - @dblmax.c \ - @dblmin.c \ - @@dec.c \ - @@delete.c \ - difftime.c \ - div.c \ - @@doperm.c \ - @@dscbav.c \ - @@dscbdv.c \ - @@dscbv.c \ - @@ecbpst.c \ - @@ecbtwa.c \ - @@ecbtw.c \ - @@ecbtwl.c \ - @@ecbwa.c \ - @@ecbwl.c \ - @@ecbwt.c \ - @@enqdeq.c \ - @@envvar.c \ - @@errno.c \ - @@estae.c \ - @@examin.c \ - @@exit.c \ - exit.c \ - exp.c \ - fabs.c \ - fclose.c \ - fctprtf@.c \ - @@fdclr.c \ - feof.c \ - ferror.c \ - @@fflush.c \ - fflush.c \ - @@fgetc.c \ - fgetc.c \ - fgetpos.c \ - @@fgets.c \ - fgets.c \ - @@fildef.c \ - @@finden.c \ - floor.c \ - @flteps.c \ - @fltmax.c \ - @fltmin.c \ - fmod.c \ - @@fmtisp.c \ - @@fmtloa.c \ - @@fndcde.c \ - fopen.c \ - @@fpfree.c \ - @@fpmode.c \ - @@fpnew.c \ - @@fpold.c \ - @@fpopen.c \ - fprintf.c \ - @@fpshr.c \ - @@fpstar.c \ - @@fptmp.c \ - @@fputc.c \ - fputc.c \ - @@fputs.c \ - fputs.c \ - @@fread.c \ - fread.c \ - free.c \ - @@freeds.c \ - @@freevl.c \ - @@freepd.c \ - freopen.c \ - frexp.c \ - @@frtx99.c \ - @@frtx9a.c \ - fscanf.c \ - @@fseek.c \ - fseek.c \ - fsetpos.c \ - ftell.c \ - @@fwrite.c \ - fwrite.c \ - getc.c \ - getchar.c \ - getenv.c \ - getenvi.c \ - @@get@er.c \ - getmain.c \ - @@getpso.c \ - gets.c \ - gmtime.c \ - gmtimer.c \ - @@grtget.c \ - @@grtres.c \ - @@grtset.c \ - @@gtcom.c \ - @@gterr.c \ - @@gtin.c \ - @@gtout.c \ - hello.c \ - idcams.c \ - @@idecth.c \ - iefssreq.c \ - ikjct441.c \ - @@inaton.c \ - @@inc.c \ - initssob.c \ - isalnum.c \ - isalpha.c \ - @@isauth.c \ - @@isbuf.c \ - iscntrl.c \ - isdigit.c \ - isgraph.c \ - @@isleap.c \ - islower.c \ - isprint.c \ - ispunct.c \ - isspace.c \ - @@issup.c \ - isupper.c \ - isxdigit.c \ - @@jobid.c \ - @@jobnam.c \ - @@jpaget.c \ - @@jsclos.c \ - @@jsopen.c \ - @@jsrd4.c \ - labs.c \ - ldexp.c \ - ldiv.c \ - @@link.c \ - @@linkds.c \ - @@linkt.c \ - @@listc.c \ - @@listds.c \ - @@listpd.c \ - @@listvl.c \ - @@lk.c \ - @@lkrn.c \ - @@lkrnf.c \ - @@lkrnte.c \ - @@lkrntf.c \ - @@lkrntr.c \ - @@lkrnuf.c \ - @@lkrnun.c \ - @@lkrtef.c \ - @@lktest.c \ - @@lktry.c \ - @@lkunlk.c \ - @@lkuntf.c \ - @@lkuntr.c \ - @@load.c \ - loadenv.c \ - @@loadhi.c \ - localtim.c \ - localtmr.c \ - @@locate.c \ - log10.c \ - log.c \ - @@longj.c \ - longjmp.c \ - malloc.c \ - mblen.c \ - mbstowcs.c \ - mbtowc.c \ - memchr.c \ - memcmp.c \ - memcpy.c \ - memcpyp.c \ - memmove.c \ - mktime.c \ - modf.c \ - @@mtd.c \ - mtxavail.c \ - mtxclup.c \ - mtxfree.c \ - mtxheld.c \ - mtxinit.c \ - mtxlock.c \ - mtxnew.c \ - mtxnheld.c \ - mtxtry.c \ - mtxunlk.c \ - @@nwtx99.c \ - @@nwtx9a.c \ - @@nwtx9s.c \ - on@exit.c \ - @@patmat.c \ - @@perm.c \ - perror.c \ - pow.c \ - printf.c \ - printf@.c \ - @@prob.c \ - @@prtfx.c \ - @@pswkey.c \ - putc.c \ - putchar.c \ - putenv.c \ - puts.c \ - qsort.c \ - raise.c \ - rand.c \ - rclose.c \ - @@rdjfcb.c \ - realloc.c \ - remove.c \ - rename.c \ - @@reopen.c \ - rewind.c \ - ropen.c \ - rread.c \ - rwrite.c \ - scanf.c \ - setbuf.c \ - setenv.c \ - setenvi.c \ - setlocal.c \ - setvbuf.c \ - @@sigdfl.c \ - @@sigerr.c \ - @@sighdl.c \ - @@sigign.c \ - signal.c \ - sin.c \ - sinh.c \ - @@sl.c \ - sleep.c \ - @@sltest.c \ - @@sltry.c \ - @@slunlk.c \ - @@smca.c \ - @@smfid.c \ - snprintf.c \ - snprtf@.c \ - @@soadd.c \ - @@sodel.c \ - @@sofind.c \ - @@soupd.c \ - sprintf.c \ - sprintf@.c \ - sqrt.c \ - srand.c \ - sscanf.c \ - @@ssfind.c \ - @@ssfree.c \ - @@ssib.c \ - @@ssinst.c \ - @@ssnew.c \ - @@ssrem.c \ - @@ssremn.c \ - @@start.c \ - @@stderr.c \ - @@stdin.c \ - @@stdout.c \ - @@steplb.c \ - strcat.c \ - strchr.c \ - strcmp.c \ - strcoll.c \ - strcpy.c \ - strcpyp.c \ - strcspn.c \ - strdup.c \ - strerror.c \ - strftime.c \ - stricmp.c \ - strlen.c \ - strncat.c \ - strncmp.c \ - strncmpi.c \ - strncpy.c \ - strpbrk.c \ - strrchr.c \ - strspn.c \ - strstr.c \ - strtod.c \ - strtok.c \ - strtol.c \ - strtoul.c \ - strxfrm.c \ - @@stymd.c \ - @@sudo.c \ - @@sukydo.c \ - @@super.c \ - svcmain.c \ - @@svfmap.c \ - @@svfree.c \ - @@svnew.c \ - @@svset.c \ - system.c \ - tan.c \ - tanh.c \ - time.c \ - @@tiot.c \ - @@tminit.c \ - tmpfile.c \ - tmpnam.c \ - @@tmrecb.c \ - @@tmrece.c \ - @@tmreck.c \ - @@tmrfue.c \ - @@tmrfuk.c \ - @@tmrfun.c \ - @@tmrget.c \ - @@tmrid.c \ - @@tmsecs.c \ - @@tmstop.c \ - @@tmstrt.c \ - @@tmthrd.c \ - @@tolow.c \ - tolower.c \ - @@toup.c \ - toupper.c \ - @@tqedis.c \ - @@tqeena.c \ - @@tqeget.c \ - @@tqeprg.c \ - @@tqerst.c \ - @@tqnew.c \ - @@@try.c \ - @@try.c \ - @@txbfal.c \ - @@txbfte.c \ - @@txbksz.c \ - @@txblk.c \ - @@txbufl.c \ - @@txbufn.c \ - @@txbufo.c \ - @@txcat.c \ - @@txcopy.c \ - @@txcyl.c \ - @@txddn.c \ - @@txdel.c \ - @@txden.c \ - @@txdest.c \ - @@txdir.c \ - @@txdmy.c \ - @@txdsn.c \ - @@txerop.c \ - @@txexpd.c \ - @@txfcb.c \ - @@txform.c \ - @@txhold.c \ - @@txinpu.c \ - @@txkeep.c \ - @@txkeyl.c \ - @@txlabe.c \ - @@txlmct.c \ - @@txlrec.c \ - @@txmod.c \ - @@txncp.c \ - @@txnew.c \ - @@txold.c \ - @@txorg.c \ - @@txoutp.c \ - @@txpara.c \ - @@txperm.c \ - @@txpgm.c \ - @@txpriv.c \ - @@txprot.c \ - @@txrddn.c \ - @@txrecf.c \ - @@txretp.c \ - @@txrlse.c \ - @@txrnd.c \ - @@txseq.c \ - @@txshr.c \ - @@txspac.c \ - @@txsyso.c \ - @@txterm.c \ - @@txtrk.c \ - @@txtrtc.c \ - @@txucat.c \ - @@txucs.c \ - @@txunal.c \ - @@txunct.c \ - @@txunit.c \ - @@txvlct.c \ - @@txvols.c \ - @@txvseq.c \ - @@tzget.c \ - @@tzset.c \ - tzset.c \ - @@uastep.c \ - @@uatask.c \ - @@udec.c \ - @@uinc.c \ - ungetc.c \ - unsetenv.c \ - @@userex.c \ - usleep.c \ - vfprintf.c \ - @@vscinv.c \ - vscinv.c \ - vsclear.c \ - @@vsclos.c \ - vsclose.c \ - @@vsclr.c \ - @@vsdel.c \ - vsdelete.c \ - @@vseof.c \ - vseof.c \ - @@vserr.c \ - vserror.c \ - @@vslrec.c \ - vslrecl.c \ - @@vsmdfy.c \ - vsnprint.c \ - vsnprtf@.c \ - @@vsopen.c \ - vsopen.c \ - vsprintf.c \ - vsprtf@.c \ - @@vsread.c \ - vsread.c \ - @@vsshwc.c \ - @@vssteq.c \ - vssteq.c \ - @@vsstge.c \ - vsstge.c \ - @@vstell.c \ - vstell.c \ - vsupdate.c \ - @@vsupdt.c \ - @@vswrit.c \ - vswrite.c \ - @@vsxeof.c \ - @@vsxerr.c \ - vvprintf.c \ - vvscanf.c \ - vwtof.c \ - vwtorf.c \ - wcstombs.c \ - wctomb.c \ - @@wsaget.c \ - wto.c \ - wtodump.c \ - wtodumpf.c \ - wtof.c \ - wtoline.c \ - wtor.c \ - wtorf.c \ - @@wtotb.c \ - @@xmpost.c \ - @@ymdts.c \ - @@ytd.c \ - @@64add.c \ - @@64ai32.c \ - @@64au32.c \ - @@64au64.c \ - @@64and.c \ - @@64ni32.c \ - @@64nu32.c \ - @@64nu64.c \ - @@64cmp.c \ - @@64ci32.c \ - @@64cu32.c \ - @@64cu64.c \ - @@64copy.c \ - @@64dec.c \ - @@64div.c \ - @@64di32.c \ - @@64du32.c \ - @@64du64.c \ - @@64dmod.c \ - @@64vi32.c \ - @@64vu32.c \ - @@64vu64.c \ - @@64fi32.c \ - @@64fu32.c \ - @@64fu64.c \ - @@64fstr.c \ - @@64init.c \ - @@64inc.c \ - @@64is0.c \ - @@64isqr.c \ - @@64lsh1.c \ - @@64lshw.c \ - @@64mod.c \ - @@64qi32.c \ - @@64qu32.c \ - @@64qu64.c \ - @@64mul.c \ - @@64mi32.c \ - @@64mu32.c \ - @@64mu64.c \ - @@64or.c \ - @@64oi32.c \ - @@64ou32.c \ - @@64ou64.c \ - @@64pow.c \ - @@64rsh1.c \ - @@64lsft.c \ - @@64rsft.c \ - @@64rshw.c \ - @@64sub.c \ - @@64si32.c \ - @@64su32.c \ - @@64su64.c \ - @@64tstr.c \ - @@64ti32.c \ - @@64tu32.c \ - @@64tu64.c \ - @@64xor.c \ - @@64xi32.c \ - @@64xu32.c \ - @@64xu64.c \ - @@64test.c \ - testlstv.c \ - tsocmd.c \ - tsocmdf.c \ - @@ispexe.c \ - @@isplnk.c \ - @@ispsel.c - -# depricated: -# clib.c \ -# cliblock.c \ -# @@ctx.c \ -# memset.c \ -# stdio.c \ -# stdlib.c \ -# string.c \ - -# non-generated .asm assembler source files -A_FILES := - -# generated .s assembler source files (one for each source file) -S_FILES := $(foreach filename,$(C_FILES),$(filename:.c=.s)) - -# object files (one for each .c and .asm source file) -O_FILES := $(foreach filename,$(C_FILES),$(filename:.c=.o)) \ - $(foreach filename,$(A_FILES),$(filename:.asm=.o)) - -# export MACn variables for mvsasm->jobasm script -export MAC1=MDR.CRENT370.MACLIB - -# export dataset names used by mvsasm script -export MVSASM_PUNCH=MDR.CRENT370.OBJECT -export MVSASM_SYSLMOD=MDR.CRENT370.NCALIB - -all: $(S_FILES) $(O_FILES) - @echo "Done" -# Note: PHONY is important here. Without it, implicit rules will try -# to build the executable "all", since the prereqs are ".o" files. -.PHONY: all - -# build object files from the generated assembler files (.s) -%.o: %.s - @echo "mvsasm $(notdir $<)" - @mvsasm "$<" - @touch "$@" - -# build object files from assembler files (.asm) -%.o: %.asm - @echo "mvsasm $(notdir $<)" - @mvsasm "$<" - @touch "$@" - -# compile C source files (.c) into assembler files (.s) -%.s: %.c - @echo "Compile $(notdir $<)" - $(CC) $(CFLAGS) -c $< -o $@ - -# remove generated files -clean: - @rm -f $(S_FILES) $(O_FILES) - diff --git a/src/crent370/clib/malloc.c b/src/crent370/clib/malloc.c deleted file mode 100644 index 733e265..0000000 --- a/src/crent370/clib/malloc.c +++ /dev/null @@ -1,92 +0,0 @@ -/* MALLOC.C */ -#define STDLIB_C -#include "stdlib.h" -#include "signal.h" -#include "string.h" -#include "ctype.h" -#include "stddef.h" -#include "mvssupa.h" - -#if USE_MEMMGR -#include "__memmgr.h" -/* GCCMVS 3.4.6 requires 49 MB minimum for full optimization */ -/* so we give it 60. GCCMVS 3.2.3 only requires 20 MB */ -/* Note that you can set MAX_CHUNK to less than REQ_CHUNK */ -/* But don't do this until MVS/380 etc have been changed to */ -/* allow multiple memory requests. */ -#if defined(MULMEM) -#define MAX_CHUNK 60000000 -#define REQ_CHUNK 60000000 -#else -#define MAX_CHUNK 60000000 /* maximum size we will store in memmgr */ -#define REQ_CHUNK 60000000 /* size that we request from OS */ -#endif - -void *__lastsup = NULL; /* last thing supplied to memmgr */ -#endif - -extern void (*__userex[__NATEXIT])(void); - -__PDPCLIB_API__ void *malloc(size_t size) -{ -#if USE_MEMMGR - void *ptr; - - if (size > MAX_CHUNK) - { -#if defined(MULMEM) - /* If we support multiple memory requests */ - ptr = __getm(size); -#else - ptr = NULL; -#endif - } - else - { - ptr = memmgrAllocate(&__memmgr, size, 0); - if (ptr == NULL) - { - void *ptr2; - - /* until MVS/380 is fixed, don't do an additional request, - unless MULMEM is defined */ -#if defined(MULMEM) - if (1) -#else - if (__memmgr.start == NULL) -#endif - { - ptr2 = __getm(REQ_CHUNK); - } - else - { - ptr2 = NULL; - } - if (ptr2 == NULL) - { - return (NULL); - } - __lastsup = ptr2; - memmgrSupply(&__memmgr, ptr2, REQ_CHUNK); - ptr = memmgrAllocate(&__memmgr, size, 0); - } - } - return (ptr); -#else /* not MEMMGR */ - void *ptr; - -#define MAX_CHUNK (6 * 1024 * 1024) /* 6M */ - if (size > MAX_CHUNK) { - ptr = NULL; - } - else { - ptr = (__getm(size)); - } - - if (!ptr) { - wtof("Out of memory, bytes needed=%u", size); - __wtotb(0); - } - return ptr; -#endif /* not MEMMGR */ -} diff --git a/src/crent370/clib/malloc.o b/src/crent370/clib/malloc.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/malloc.s b/src/crent370/clib/malloc.s deleted file mode 100644 index d32ce63..0000000 --- a/src/crent370/clib/malloc.s +++ /dev/null @@ -1,73 +0,0 @@ - TITLE '/home/projects/crent370/clib/malloc.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'malloc' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'malloc' -MALLOC PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'malloc' code - L 3,0(11) ==> size - SLR 2,2 ==> ptr - L 4,=F'6291456' - CLR 3,4 ==> size - BH @@L3 - ST 3,88(13) ==> size - LA 1,88(,13) - L 15,=V(@@GETM) - BALR 14,15 - LR 2,15 ==> ptr -@@L3 EQU * - LTR 2,2 ==> ptr - BNE @@L4 - MVC 88(4,13),=A(@@LC0) - ST 3,92(13) ==> size - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - ST 2,88(13) ==> ptr - LA 1,88(,13) - L 15,=V(@@WTOTB) - BALR 14,15 -@@L4 EQU * - LR 15,2 ==> ptr -* Function 'malloc' epilogue - PDPEPIL -* Function 'malloc' literal pool - DS 0D - LTORG -* Function 'malloc' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'Out of memory, bytes needed=%u' - DC X'0' - END diff --git a/src/crent370/clib/mblen.c b/src/crent370/clib/mblen.c deleted file mode 100644 index fd36783..0000000 --- a/src/crent370/clib/mblen.c +++ /dev/null @@ -1,17 +0,0 @@ -/* MBLEN.C */ -#include -#include - -__PDPCLIB_API__ int mblen(const char *s, size_t n) -{ - if (s == NULL) { - return (0); - } - - if (n == 1) { - return (1); - } - else { - return (-1); - } -} diff --git a/src/crent370/clib/mblen.o b/src/crent370/clib/mblen.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/mblen.s b/src/crent370/clib/mblen.s deleted file mode 100644 index 1fef2ef..0000000 --- a/src/crent370/clib/mblen.s +++ /dev/null @@ -1,57 +0,0 @@ - TITLE '/home/projects/crent370/clib/mblen.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'mblen' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'mblen' -MBLEN PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'mblen' code - L 2,0(11) ==> s - L 3,4(11) ==> n - LR 15,2 ==> s - LTR 2,2 ==> s - BE @@L1 - LR 15,3 ==> s,n - LA 2,1(0,0) - CLR 3,2 ==> n - BE @@L1 - L 15,=F'-1' ==> s -@@L1 EQU * -* Function 'mblen' epilogue - PDPEPIL -* Function 'mblen' literal pool - DS 0D - LTORG -* Function 'mblen' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/mbstowcs.c b/src/crent370/clib/mbstowcs.c deleted file mode 100644 index 97b43fe..0000000 --- a/src/crent370/clib/mbstowcs.c +++ /dev/null @@ -1,14 +0,0 @@ -/* MBSTOWCS.C */ -#include -#include -#include - -__PDPCLIB_API__ size_t mbstowcs(wchar_t *pwcs, const char *s, size_t n) -{ - strncpy((char *)pwcs, s, n); - if (strlen(s) >= n) - { - return (n); - } - return (strlen((char *)pwcs)); -} diff --git a/src/crent370/clib/mbstowcs.o b/src/crent370/clib/mbstowcs.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/mbstowcs.s b/src/crent370/clib/mbstowcs.s deleted file mode 100644 index ac1b3dc..0000000 --- a/src/crent370/clib/mbstowcs.s +++ /dev/null @@ -1,69 +0,0 @@ - TITLE '/home/projects/crent370/clib/mbstowcs.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'mbstowcs' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'mbstowcs' -MBSTOWCS PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'mbstowcs' code - L 4,0(11) ==> pwcs - L 3,4(11) ==> s - L 2,8(11) ==> n - ST 4,88(13) ==> pwcs - ST 3,92(13) ==> s - ST 2,96(13) ==> n - LA 1,88(,13) - L 15,=V(STRNCPY) - BALR 14,15 - ST 3,88(13) ==> s - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 3,2 ==> n - CLR 15,2 ==> n - BNL @@L1 - ST 4,88(13) ==> pwcs - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 3,15 ==> n -@@L1 EQU * - LR 15,3 ==> n -* Function 'mbstowcs' epilogue - PDPEPIL -* Function 'mbstowcs' literal pool - DS 0D - LTORG -* Function 'mbstowcs' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/mbtowc.c b/src/crent370/clib/mbtowc.c deleted file mode 100644 index 8bc2480..0000000 --- a/src/crent370/clib/mbtowc.c +++ /dev/null @@ -1,20 +0,0 @@ -/* MBTOWC.C */ -#include -#include - -__PDPCLIB_API__ int mbtowc(wchar_t *pwc, const char *s, size_t n) -{ - if (s == NULL) { - return (0); - } - - if (n == 1) { - if (pwc != NULL) { - *pwc = *s; - } - return (1); - } - else { - return (-1); - } -} diff --git a/src/crent370/clib/mbtowc.o b/src/crent370/clib/mbtowc.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/mbtowc.s b/src/crent370/clib/mbtowc.s deleted file mode 100644 index 6634681..0000000 --- a/src/crent370/clib/mbtowc.s +++ /dev/null @@ -1,62 +0,0 @@ - TITLE '/home/projects/crent370/clib/mbtowc.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'mbtowc' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'mbtowc' -MBTOWC PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'mbtowc' code - L 4,0(11) ==> pwc - L 3,4(11) ==> s - LR 15,3 ==> s - LTR 3,3 ==> s - BE @@L1 - L 15,=F'-1' ==> s - L 2,8(11) ==> n - LA 5,1(0,0) - CLR 2,5 ==> n - BNE @@L1 - LTR 4,4 ==> pwc - BE @@L4 - MVC 0(1,4),0(3) ==> pwc,s -@@L4 EQU * - LA 15,1(0,0) ==> s -@@L1 EQU * -* Function 'mbtowc' epilogue - PDPEPIL -* Function 'mbtowc' literal pool - DS 0D - LTORG -* Function 'mbtowc' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/memchr.c b/src/crent370/clib/memchr.c deleted file mode 100644 index 88e3cce..0000000 --- a/src/crent370/clib/memchr.c +++ /dev/null @@ -1,22 +0,0 @@ -/* MEMCHR.C */ -#include -#include -#include - -#ifdef memchr -#undef memchr -#endif -__PDPCLIB_API__ void *memchr(const void *s, int c, size_t n) -{ - const unsigned char *p; - size_t x = 0; - - p = (const unsigned char *)s; - while (x < n) - { - if (*p == (unsigned char)c) return ((void *)p); - p++; - x++; - } - return (NULL); -} diff --git a/src/crent370/clib/memchr.o b/src/crent370/clib/memchr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/memchr.s b/src/crent370/clib/memchr.s deleted file mode 100644 index 30bd932..0000000 --- a/src/crent370/clib/memchr.s +++ /dev/null @@ -1,62 +0,0 @@ - TITLE '/home/projects/crent370/clib/memchr.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'memchr' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'memchr' -MEMCHR PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'memchr' code - L 4,4(11) ==> c - L 3,8(11) ==> n - SLR 2,2 ==> x - L 15,0(11) ==> p,s - CLR 2,3 ==> x,n - BNL @@L8 -@@L6 EQU * - CLM 4,1,0(15) ==> c,p - BE @@L1 - A 15,=F'1' ==> p - A 2,=F'1' ==> x - CLR 2,3 ==> x,n - BL @@L6 -@@L8 EQU * - SLR 15,15 ==> p -@@L1 EQU * -* Function 'memchr' epilogue - PDPEPIL -* Function 'memchr' literal pool - DS 0D - LTORG -* Function 'memchr' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/memcmp.c b/src/crent370/clib/memcmp.c deleted file mode 100644 index 21e1133..0000000 --- a/src/crent370/clib/memcmp.c +++ /dev/null @@ -1,24 +0,0 @@ -/* MEMCMP.C */ -#include -#include -#include - -#ifdef memcmp -#undef memcmp -#endif -__PDPCLIB_API__ int memcmp(const void *s1, const void *s2, size_t n) -{ - const unsigned char *p1; - const unsigned char *p2; - size_t x = 0; - - p1 = (const unsigned char *)s1; - p2 = (const unsigned char *)s2; - while (x < n) { - if (p1[x] < p2[x]) return (-1); - else if (p1[x] > p2[x]) return (1); - x++; - } - - return (0); -} diff --git a/src/crent370/clib/memcmp.o b/src/crent370/clib/memcmp.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/memcmp.s b/src/crent370/clib/memcmp.s deleted file mode 100644 index a06469c..0000000 --- a/src/crent370/clib/memcmp.s +++ /dev/null @@ -1,75 +0,0 @@ - TITLE '/home/projects/crent370/clib/memcmp.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'memcmp' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'memcmp' -MEMCMP PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'memcmp' code - L 5,8(11) ==> n - SLR 15,15 ==> x - L 4,0(11) ==> p1,s1 - L 3,4(11) ==> p2,s2 - CLR 15,5 ==> x,n - BNL @@L10 -@@L8 EQU * - IC 2,0(15,4) ==> x - IC 6,0(15,3) ==> x - STC 6,80(,13) - CLM 2,1,80(13) - BNL @@L5 - L 15,=F'-1' - B @@L1 -@@L5 EQU * - IC 2,0(15,4) ==> x - IC 6,0(15,3) ==> x - STC 6,80(,13) - CLM 2,1,80(13) - BNH @@L6 - LA 15,1(0,0) - B @@L1 -@@L6 EQU * - A 15,=F'1' ==> x - CLR 15,5 ==> x,n - BL @@L8 -@@L10 EQU * - SLR 15,15 -@@L1 EQU * -* Function 'memcmp' epilogue - PDPEPIL -* Function 'memcmp' literal pool - DS 0D - LTORG -* Function 'memcmp' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/memcpy.c b/src/crent370/clib/memcpy.c deleted file mode 100644 index f6a115b..0000000 --- a/src/crent370/clib/memcpy.c +++ /dev/null @@ -1,80 +0,0 @@ -/* MEMCPY.C */ -#include -#include -#include - -#define USE_ASSEMBLER - -#ifdef USE_ASSEMBLER -#ifdef memcpy -#undef memcpy -#endif -__PDPCLIB_API__ void *memcpy(void *s1, const void *s2, size_t n) -{ - __asm__("\n" -" L 14,%0 => target (s1)\n" -" L 15,%1 => length (n)\n" -" L 0,%2 => source (s2)\n" -" L 1,%1 => length (n)\n" -" MVCL 14,0 Copy source to target" - : : "m"(s1), "m"(n), "m"(s2) : "0", "1", "14", "15"); - - return (s1); -} -#endif /* USE_ASSEMBLER */ - -#ifndef USE_ASSEMBLER -#ifdef memcpy -#undef memcpy -#endif -#ifndef __32BIT__ -__PDPCLIB_API__ void *memcpy(void *s1, const void *s2, size_t n) -{ - register const unsigned char *f = s2; - register const unsigned char *fe; - register unsigned char *t = s1; - - fe = f + n; - while (f != fe) { - *t++ = *f++; - } - return (s1); -} -#else -__PDPCLIB_API__ void *memcpy(void *s1, const void *s2, size_t n) -{ - register unsigned int *p = (unsigned int *)s1; - register unsigned int *cs2 = (unsigned int *)s2; - register unsigned int *endi; - - endi = (unsigned int *)((char *)p + (n & ~0x03)); - while (p != endi) { - *p++ = *cs2++; - } - - switch (n & 0x03) { - case 0: - break; - case 1: - *(char *)p = *(char *)cs2; - break; - case 2: - *(char *)p = *(char *)cs2; - p = (unsigned int *)((char *)p + 1); - cs2 = (unsigned int *)((char *)cs2 + 1); - *(char *)p = *(char *)cs2; - break; - case 3: - *(char *)p = *(char *)cs2; - p = (unsigned int *)((char *)p + 1); - cs2 = (unsigned int *)((char *)cs2 + 1); - *(char *)p = *(char *)cs2; - p = (unsigned int *)((char *)p + 1); - cs2 = (unsigned int *)((char *)cs2 + 1); - *(char *)p = *(char *)cs2; - break; - } - return (s1); -} -#endif /* 32BIT */ -#endif /* USE_ASSEMBLER */ diff --git a/src/crent370/clib/memcpy.o b/src/crent370/clib/memcpy.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/memcpy.s b/src/crent370/clib/memcpy.s deleted file mode 100644 index aa26036..0000000 --- a/src/crent370/clib/memcpy.s +++ /dev/null @@ -1,53 +0,0 @@ - TITLE '/home/projects/crent370/clib/memcpy.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'memcpy' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'memcpy' -MEMCPY PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'memcpy' code - - L 14,0(11) => target (s1) ==> s1 - L 15,8(11) => length (n) ==> n - L 0,4(11) => source (s2) ==> s2 - L 1,8(11) => length (n) ==> n - MVCL 14,0 Copy source to target - L 15,0(11) -* Function 'memcpy' epilogue - PDPEPIL -* Function 'memcpy' literal pool - DS 0D - LTORG -* Function 'memcpy' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/memcpyp.c b/src/crent370/clib/memcpyp.c deleted file mode 100644 index f60cd8e..0000000 --- a/src/crent370/clib/memcpyp.c +++ /dev/null @@ -1,22 +0,0 @@ -/* MEMCPYP.C */ -#include "clibstr.h" - -void * -memcpyp(void *target, int tlen, void *source, int slen, int pad) -{ - char *t = target; - - if (slen > tlen) slen = tlen; - - if (slen > 0) { - memcpy(t, source, slen); - t += slen; - tlen -= slen; - } - - if (tlen > 0) { - memset(t, pad, tlen); - } - - return target; -} diff --git a/src/crent370/clib/memcpyp.o b/src/crent370/clib/memcpyp.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/memcpyp.s b/src/crent370/clib/memcpyp.s deleted file mode 100644 index 0457083..0000000 --- a/src/crent370/clib/memcpyp.s +++ /dev/null @@ -1,78 +0,0 @@ - TITLE '/home/projects/crent370/clib/memcpyp.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'memcpyp' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'memcpyp' -MEMCPYP PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'memcpyp' code - L 5,0(11) ==> target - L 2,4(11) ==> tlen - L 3,12(11) ==> slen - L 6,16(11) ==> pad - LR 4,5 ==> t,target - CR 3,2 ==> slen,tlen - BNH @@L2 - LR 3,2 ==> slen,tlen -@@L2 EQU * - LTR 3,3 ==> slen - BNH @@L3 - ST 4,88(13) ==> t - MVC 92(4,13),8(11) ==> source - ST 3,96(13) ==> slen - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - AR 4,3 ==> t,slen - SR 2,3 ==> tlen,slen -@@L3 EQU * - LTR 2,2 ==> tlen - BNH @@L4 - -*** MEMSET *** - LR 14,4 => target (s) ==> t - LR 15,2 => length (n) ==> tlen - SLR 0,0 => source (NULL) - LR 1,6 fill character ==> pad - SLL 1,24 move fill to high byte - MVCL 14,0 Set target to fill character -@@L4 EQU * - LR 15,5 ==> target -* Function 'memcpyp' epilogue - PDPEPIL -* Function 'memcpyp' literal pool - DS 0D - LTORG -* Function 'memcpyp' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/memmove.c b/src/crent370/clib/memmove.c deleted file mode 100644 index 25be8c7..0000000 --- a/src/crent370/clib/memmove.c +++ /dev/null @@ -1,32 +0,0 @@ -/* MEMMOVE.C */ -#include -#include -#include - -#ifdef memmove -#undef memmove -#endif -__PDPCLIB_API__ void *memmove(void *s1, const void *s2, size_t n) -{ - char *p = s1; - const char *cs2 = s2; - size_t x; - - if (p <= cs2) { - for (x=0; x < n; x++) { - *p = *cs2; - p++; - cs2++; - } - } - else { - if (n != 0) { - for (x=n-1; x > 0; x--) { - *(p+x) = *(cs2+x); - } - *(p+x) = *(cs2+x); - } - } - - return (s1); -} diff --git a/src/crent370/clib/memmove.o b/src/crent370/clib/memmove.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/memmove.s b/src/crent370/clib/memmove.s deleted file mode 100644 index 41baa66..0000000 --- a/src/crent370/clib/memmove.s +++ /dev/null @@ -1,80 +0,0 @@ - TITLE '/home/projects/crent370/clib/memmove.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'memmove' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'memmove' -MEMMOVE PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'memmove' code - L 15,0(11) ==> s1 - L 5,8(11) ==> n - LR 4,15 ==> p,s1 - L 3,4(11) ==> cs2,s2 - CLR 15,3 ==> s1,cs2 - BH @@L2 - SLR 2,2 ==> x - CLR 2,5 ==> x,n - BNL @@L8 -@@L7 EQU * - MVC 0(1,4),0(3) ==> p,cs2 - A 4,=F'1' ==> p - A 3,=F'1' ==> cs2 - A 2,=F'1' ==> x - CLR 2,5 ==> x,n - BNL @@L8 - B @@L7 -@@L2 EQU * - LTR 5,5 ==> n - BE @@L8 - LR 2,5 ==> x,n - BCTR 2,0 ==> x - LTR 2,2 ==> x - BE @@L17 -@@L14 EQU * - IC 5,0(2,3) ==> x - STC 5,0(2,4) ==> x - BCTR 2,0 ==> x - LTR 2,2 ==> x - BNE @@L14 -@@L17 EQU * - IC 3,0(2,3) ==> x - STC 3,0(2,4) ==> x -@@L8 EQU * -* Function 'memmove' epilogue - PDPEPIL -* Function 'memmove' literal pool - DS 0D - LTORG -* Function 'memmove' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/memset.c b/src/crent370/clib/memset.c deleted file mode 100644 index 50e2a75..0000000 --- a/src/crent370/clib/memset.c +++ /dev/null @@ -1,41 +0,0 @@ -/* MEMSET.C */ -#include -#include -#include - -#define USE_ASSEMBLER - -#ifdef USE_ASSEMBLER -#ifdef memset -#undef memset -#endif -__PDPCLIB_API__ void *memset(void *s, int c, size_t n) -{ - __asm__("\n" -" L 14,%0 => target (s)\n" -" L 15,%1 => length (n)\n" -" SLR 0,0 => source (NULL)\n" -" L 1,%2 => fill (c)\n" -" SLL 1,24 move fill char to high byte\n" -" MVCL 14,0 Set target to fill character" - : : "m"(s), "m"(n), "m"(c) : "0", "1", "14", "15"); - - return (s); -} -#endif /* USE_ASSEMBLER */ - - -#ifndef USE_ASSEMBLER -#ifdef memset -#undef memset -#endif -__PDPCLIB_API__ void *memset(void *s, int c, size_t n) -{ - size_t x = 0; - - for (x = 0; x < n; x++) { - *((char *)s + x) = (unsigned char)c; - } - return (s); -} -#endif diff --git a/src/crent370/clib/mktime.c b/src/crent370/clib/mktime.c deleted file mode 100644 index fe835d0..0000000 --- a/src/crent370/clib/mktime.c +++ /dev/null @@ -1,51 +0,0 @@ -/* MKTIME.C */ -#include "time.h" -#include "stdarg.h" -#include "stdio.h" -#include "stddef.h" -#include "mvssupa.h" - -/* scalar date routines -- public domain by Ray Gardner -** These will work over the range 1-01-01 thru 14699-12-31 -** The functions written by Ray are isleap, months_to_days, -** years_to_days, ymd_to_scalar, scalar_to_ymd. -** modified slightly by Paul Edwards -*/ - -extern int __isleap(unsigned yr); -extern unsigned __mtd(unsigned month); -extern long __ytd(unsigned yr); -extern long __ymdts(unsigned yr, unsigned mo, unsigned day); -extern void __stymd(long scalar, - unsigned *pyr, unsigned *pmo, unsigned *pday); - -#define isleap(y) __isleap(y) -#define months_to_days(m) __mtd(m) -#define years_to_days(y) __ytd(y) -#define ymd_to_scalar(y,m,d) __ymdts((y),(m),(d)) -#define scalar_to_ymd(s,y,m,d) __stymd((s),(y),(m),(d)) - -#define EPOCH 719163 /* Unix EPOCH 1970-01-01 */ - -__PDPCLIB_API__ time_t mktime(struct tm *timeptr) -{ - time_t tt; - - /* 70 = 1970 Unix EPOCH || 205 = 2105 (roll over in 2106) */ - if ((timeptr->tm_year < 70) || (timeptr->tm_year > 205)) - { - tt = (time_t)-1; - } - else - { - tt = ymd_to_scalar(timeptr->tm_year + 1900, - timeptr->tm_mon + 1, - timeptr->tm_mday) - - EPOCH; - tt = tt * 24 + timeptr->tm_hour; - tt = tt * 60 + timeptr->tm_min; - tt = tt * 60 + timeptr->tm_sec; - } - *timeptr = *gmtime(&tt); - return (tt); -} diff --git a/src/crent370/clib/mktime.o b/src/crent370/clib/mktime.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/mktime.s b/src/crent370/clib/mktime.s deleted file mode 100644 index 30d125d..0000000 --- a/src/crent370/clib/mktime.s +++ /dev/null @@ -1,91 +0,0 @@ - TITLE '/home/projects/crent370/clib/mktime.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'mktime' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'mktime' -MKTIME PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'mktime' code - L 3,0(11) ==> timeptr - L 2,20(3) ==> .tm_year - A 2,=F'-70' - LA 4,135(0,0) - CLR 2,4 - BNH @@L2 - MVC 104(4,13),=F'-1' - B @@L3 -@@L2 EQU * - L 2,20(3) ==> .tm_year - A 2,=F'1900' - ST 2,88(13) - L 2,16(3) ==> .tm_mon - A 2,=F'1' - ST 2,92(13) - MVC 96(4,13),12(3) ==> .tm_mday - LA 1,88(,13) - L 15,=V(@@YMDTS) - BALR 14,15 - A 15,=F'-719163' - ST 15,104(13) - LR 2,15 - SLL 2,1 - AR 2,15 - SLL 2,3 - A 2,8(3) ==> .tm_hour - ST 2,104(13) - SLL 2,4 - S 2,104(13) - SLL 2,2 - A 2,4(3) ==> .tm_min - ST 2,104(13) - SLL 2,4 - S 2,104(13) - SLL 2,2 - A 2,0(3) ==> .tm_sec - ST 2,104(13) -@@L3 EQU * - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(GMTIME) - BALR 14,15 - MVC 0(36,3),0(15) ==> timeptr - L 15,104(13) -* Function 'mktime' epilogue - PDPEPIL -* Function 'mktime' literal pool - DS 0D - LTORG -* Function 'mktime' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/mktime64.c b/src/crent370/clib/mktime64.c deleted file mode 100644 index f4d5f1a..0000000 --- a/src/crent370/clib/mktime64.c +++ /dev/null @@ -1,48 +0,0 @@ -/* mktime64.c */ -#include "time64.h" -#include "stdarg.h" -#include "stdio.h" -#include "stddef.h" -#include "mvssupa.h" - -/* scalar date routines -- public domain by Ray Gardner -** These will work over the range 1-01-01 thru 14699-12-31 -** The functions written by Ray are isleap, months_to_days, -** years_to_days, ymd_to_scalar, scalar_to_ymd. -** modified slightly by Paul Edwards -*/ - -extern int __isleap(unsigned yr); -extern unsigned __mtd(unsigned month); -extern long __ytd(unsigned yr); -extern long __ymdts(unsigned yr, unsigned mo, unsigned day); -extern void __stymd(long scalar, - unsigned *pyr, unsigned *pmo, unsigned *pday); - -#define isleap(y) __isleap(y) -#define months_to_days(m) __mtd(m) -#define years_to_days(y) __ytd(y) -#define ymd_to_scalar(y,m,d) __ymdts((y),(m),(d)) -#define scalar_to_ymd(s,y,m,d) __stymd((s),(y),(m),(d)) - -time_t64 mktime64(struct tm *timeptr) -{ - time_t64 tt; - - if ((timeptr->tm_year < 70) || (timeptr->tm_year > 14699)) { - tt = (time_t64)-1; - } - else { - tt = ymd_to_scalar(timeptr->tm_year + 1900, - timeptr->tm_mon + 1, - timeptr->tm_mday) - - ymd_to_scalar(1970, 1, 1); - tt = tt * 24 + timeptr->tm_hour; - tt = tt * 60 + timeptr->tm_min; - tt = tt * 60 + timeptr->tm_sec; - } - - *timeptr = *gmtime64(&tt); - return (tt); -} - diff --git a/src/crent370/clib/mktime64.o b/src/crent370/clib/mktime64.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/modf.c b/src/crent370/clib/modf.c deleted file mode 100644 index f692f5b..0000000 --- a/src/crent370/clib/modf.c +++ /dev/null @@ -1,47 +0,0 @@ -/* MODF.C */ -#if 1 -#include "math.h" -#include "float.h" -#include "errno.h" -#include "stddef.h" - -#if 0 -/* - - Some constants to make life easier elsewhere - (These should I guess be in math.h) - -*/ -static const double pi = 3.1415926535897932384626433832795; -static const double ln10 = 2.3025850929940456840179914546844; -static const double ln2 = 0.69314718055994530941723212145818 ; -#else -#define pi (3.1415926535897932384626433832795) -#define ln10 (2.3025850929940456840179914546844) -#define ln2 (0.69314718055994530941723212145818) -#endif - -#else -#include -#endif - -__PDPCLIB_API__ double modf(double value, double *iptr) -{ - int neg = 0; - long i; - - if (value < 0) - { - neg = 1; - value = -value; - } - i = (long)value; - value -= i; - if (neg) - { - value = -value; - i = -i; - } - *iptr = i; - return (value); -} diff --git a/src/crent370/clib/modf.o b/src/crent370/clib/modf.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/modf.s b/src/crent370/clib/modf.s deleted file mode 100644 index b6134ca..0000000 --- a/src/crent370/clib/modf.s +++ /dev/null @@ -1,76 +0,0 @@ - TITLE '/home/projects/crent370/clib/modf.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'modf' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'modf' -MODF PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'modf' code - LD 2,0(11) ==> value - SLR 15,15 ==> neg - LTDR 2,2 ==> value - BNL @@L2 - LA 15,1(0,0) ==> neg - LCDR 2,2 ==> value -@@L2 EQU * - LDR 0,2 ==> value - AD 0,=XL8'4F08000000000000' - STD 0,80(,13) - L 2,84(,13) ==> i - MVC 80(4,13),=XL8'4E00000080000000' - ST 2,84(,13) ==> i - XI 84(13),128 - LD 0,80(,13) - SD 0,=XL8'4E00000080000000' - SDR 2,0 ==> value - LTR 15,15 ==> neg - BE @@L4 - LCDR 2,2 ==> value - LCR 2,2 ==> i -@@L4 EQU * - MVC 80(4,13),=XL8'4E00000080000000' - ST 2,84(,13) ==> i - XI 84(13),128 - LD 0,80(,13) - SD 0,=XL8'4E00000080000000' - L 2,8(11) ==> iptr - STD 0,0(2) ==> iptr - LDR 0,2 ==> value -* Function 'modf' epilogue - PDPEPIL -* Function 'modf' literal pool - DS 0D - LTORG -* Function 'modf' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/mtxavail.c b/src/crent370/clib/mtxavail.c deleted file mode 100644 index 1853de0..0000000 --- a/src/crent370/clib/mtxavail.c +++ /dev/null @@ -1,10 +0,0 @@ -/* MTXAVAIL.C */ -#include "clibmutx.h" -#include "cliblock.h" - -int -mtxavail(CLIBMUTX *mutex) -{ - /* return true if mutex is not locked */ - return (mutex->count == 0 && mutex->owner == 0); -} diff --git a/src/crent370/clib/mtxavail.o b/src/crent370/clib/mtxavail.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/mtxavail.s b/src/crent370/clib/mtxavail.s deleted file mode 100644 index c06e1e6..0000000 --- a/src/crent370/clib/mtxavail.s +++ /dev/null @@ -1,56 +0,0 @@ - TITLE '/home/projects/crent370/clib/mtxavail.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'mtxavail' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'mtxavail' -MTXAVAIL PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'mtxavail' code - L 3,0(11) ==> mutex - SLR 15,15 - L 2,4(3) ==> .count - LTR 2,2 - BNE @@L2 - L 2,0(3) ==> .owner - LTR 2,2 - BNE @@L2 - LA 15,1(0,0) -@@L2 EQU * -* Function 'mtxavail' epilogue - PDPEPIL -* Function 'mtxavail' literal pool - DS 0D - LTORG -* Function 'mtxavail' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/mtxclup.c b/src/crent370/clib/mtxclup.c deleted file mode 100644 index abbc42d..0000000 --- a/src/crent370/clib/mtxclup.c +++ /dev/null @@ -1,21 +0,0 @@ -/* MTXCLUP.C - mutex clean up */ -#include "clibmutx.h" -#include "cliblock.h" -#include "clibstae.h" - -__asm__("\n&FUNC SETC 'cleanup_mutex'"); -static void -cleanup_mutex(CLIBMUTX *mutex) -{ - if (mtxheld(mutex)) { - mutex->owner = 0; - mutex->count = 0; - unlock_resf(CLIB_MUTEX_RNAME, 0, mutex); - } -} - -void -mtxclup(CLIBMUTX *mutex) -{ - if (mutex) try(cleanup_mutex,mutex); -} diff --git a/src/crent370/clib/mtxclup.o b/src/crent370/clib/mtxclup.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/mtxclup.s b/src/crent370/clib/mtxclup.s deleted file mode 100644 index 3af6ea3..0000000 --- a/src/crent370/clib/mtxclup.s +++ /dev/null @@ -1,100 +0,0 @@ - TITLE '/home/projects/crent370/clib/mtxclup.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'cleanup_mutex' -* Program text area - DS 0F - EJECT -* static function 'cleanup_mutex' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'cleanup_mutex' -@@0 PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=NO - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'cleanup_mutex' code - L 2,0(11) ==> mutex - ST 2,88(13) ==> mutex - LA 1,88(,13) - L 15,=V(MTXHELD) - BALR 14,15 - LTR 15,15 - BE @@L1 - MVC 0(4,2),=F'0' ==> .owner - MVC 4(4,2),=F'0' ==> .count - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=F'0' - ST 2,96(13) ==> mutex - LA 1,88(,13) - L 15,=V(@@LKRNUF) - BALR 14,15 -@@L1 EQU * -* Function 'cleanup_mutex' epilogue - PDPEPIL -* Function 'cleanup_mutex' literal pool - DS 0D - LTORG -* Function 'cleanup_mutex' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'MUTEX.%08X' - DC X'0' - DS 0F - EJECT -* external function 'mtxclup' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'mtxclup' -MTXCLUP PDPPRLG CINDEX=1,FRAME=96,BASER=12,ENTRY=YES - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'mtxclup' code - L 15,0(11) ==> mutex - LTR 15,15 ==> mutex - BE @@L3 - MVC 88(4,13),=A(@@0) - ST 15,92(13) ==> mutex - LA 1,88(,13) - L 15,=V(@@@TRY) - BALR 14,15 -@@L3 EQU * -* Function 'mtxclup' epilogue - PDPEPIL -* Function 'mtxclup' literal pool - DS 0D - LTORG -* Function 'mtxclup' page table -@@PGT1 DS 0F - DC A(@@PG1) - END diff --git a/src/crent370/clib/mtxfree.c b/src/crent370/clib/mtxfree.c deleted file mode 100644 index d6df4ca..0000000 --- a/src/crent370/clib/mtxfree.c +++ /dev/null @@ -1,27 +0,0 @@ -/* MTXFREE.C */ -#include -#include -#include -#include "clibmutx.h" -#include "cliblock.h" - -void -mtxfree(CLIBMUTX *mutex) -{ - unsigned *psa = (unsigned*)0; /* MVS prefixed save area */ - unsigned tcb = psa[0x21C/4]; /* get our TCB address */ - - if (mutex->owner != 0) { - /* someone has this mutex locked, however we're about to free it - ** so we need to unlock it before we do the deed! - */ - unlock(mutex,0); - } - - memset(mutex, 0, sizeof(CLIBMUTX)); - - free(mutex); - -quit: - return; -} diff --git a/src/crent370/clib/mtxfree.o b/src/crent370/clib/mtxfree.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/mtxfree.s b/src/crent370/clib/mtxfree.s deleted file mode 100644 index b35a675..0000000 --- a/src/crent370/clib/mtxfree.s +++ /dev/null @@ -1,71 +0,0 @@ - TITLE '/home/projects/crent370/clib/mtxfree.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'mtxfree' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'mtxfree' -MTXFREE PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'mtxfree' code - L 4,0(11) ==> mutex - L 2,0(4) ==> .owner - LTR 2,2 - BE @@L2 - ST 4,88(13) ==> mutex - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L2 EQU * - SLR 3,3 ==> c - LA 2,8(0,0) ==> n - -*** MEMSET *** - LR 14,4 => target (s) ==> mutex - LR 15,2 => length (n) ==> n - SLR 0,0 => source (NULL) - LR 1,3 fill character ==> c - SLL 1,24 move fill to high byte - MVCL 14,0 Set target to fill character - ST 4,88(13) ==> mutex - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L4 EQU * -* Function 'mtxfree' epilogue - PDPEPIL -* Function 'mtxfree' literal pool - DS 0D - LTORG -* Function 'mtxfree' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/mtxheld.c b/src/crent370/clib/mtxheld.c deleted file mode 100644 index 6c2f73a..0000000 --- a/src/crent370/clib/mtxheld.c +++ /dev/null @@ -1,13 +0,0 @@ -/* MTXHELD.C */ -#include "clibmutx.h" -#include "cliblock.h" - -int -mtxheld(CLIBMUTX *mutex) -{ - unsigned *psa = (unsigned*)0; /* MVS prefixed save area */ - unsigned tcb = psa[0x21C/4]; /* get our TCB address */ - - /* return true if we have a lock on this mutex */ - return (mutex->count != 0 && mutex->owner == tcb); -} diff --git a/src/crent370/clib/mtxheld.o b/src/crent370/clib/mtxheld.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/mtxheld.s b/src/crent370/clib/mtxheld.s deleted file mode 100644 index ff5be37..0000000 --- a/src/crent370/clib/mtxheld.s +++ /dev/null @@ -1,58 +0,0 @@ - TITLE '/home/projects/crent370/clib/mtxheld.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'mtxheld' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'mtxheld' -MTXHELD PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'mtxheld' code - L 4,0(11) ==> mutex - SLR 2,2 ==> psa - L 3,540(2) ==> tcb - LR 15,2 ==> psa - L 2,4(4) ==> .count - LTR 2,2 - BE @@L2 - L 2,0(4) ==> .owner - CLR 2,3 ==> tcb - BNE @@L2 - LA 15,1(0,0) ==> psa -@@L2 EQU * -* Function 'mtxheld' epilogue - PDPEPIL -* Function 'mtxheld' literal pool - DS 0D - LTORG -* Function 'mtxheld' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/mtxinit.c b/src/crent370/clib/mtxinit.c deleted file mode 100644 index f2d6c87..0000000 --- a/src/crent370/clib/mtxinit.c +++ /dev/null @@ -1,12 +0,0 @@ -/* MTXINIT.C */ -#include -#include -#include -#include "clibmutx.h" - -void -mtxinit(CLIBMUTX *mutex) -{ - mutex->owner = 0; - mutex->count = 0; -} diff --git a/src/crent370/clib/mtxinit.o b/src/crent370/clib/mtxinit.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/mtxinit.s b/src/crent370/clib/mtxinit.s deleted file mode 100644 index 3813b45..0000000 --- a/src/crent370/clib/mtxinit.s +++ /dev/null @@ -1,49 +0,0 @@ - TITLE '/home/projects/crent370/clib/mtxinit.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'mtxinit' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'mtxinit' -MTXINIT PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'mtxinit' code - L 2,0(11) ==> mutex - MVC 0(4,2),=F'0' ==> .owner - MVC 4(4,2),=F'0' ==> .count -* Function 'mtxinit' epilogue - PDPEPIL -* Function 'mtxinit' literal pool - DS 0D - LTORG -* Function 'mtxinit' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/mtxlock.c b/src/crent370/clib/mtxlock.c deleted file mode 100644 index ac60b84..0000000 --- a/src/crent370/clib/mtxlock.c +++ /dev/null @@ -1,25 +0,0 @@ -/* MTXLOCK.C */ -#include "clibmutx.h" -#include "cliblock.h" -#include "clibcrt.h" -#include "clibary.h" - -void -mtxlock(CLIBMUTX *mutex) -{ - unsigned *psa = (unsigned*)0; /* MVS prefixed save area */ - unsigned tcb = psa[0x21C/4]; /* get our TCB address */ - int rc; - - /* get exclusive control of resource */ - rc = lock_resf(CLIB_MUTEX_RNAME, 0, mutex); - - mutex->owner = tcb; /* set owner id */ - mutex->count++; /* increment lock count */ - - if (rc==0) { - /* add mutex to array of mutex's for this thread */ - CLIBCRT *crt = __crtget(); - arrayadd(&crt->crtmutx, mutex); - } -} diff --git a/src/crent370/clib/mtxlock.o b/src/crent370/clib/mtxlock.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/mtxlock.s b/src/crent370/clib/mtxlock.s deleted file mode 100644 index 9e68fba..0000000 --- a/src/crent370/clib/mtxlock.s +++ /dev/null @@ -1,74 +0,0 @@ - TITLE '/home/projects/crent370/clib/mtxlock.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'mtxlock' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'mtxlock' -MTXLOCK PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'mtxlock' code - L 4,0(11) ==> mutex - SLR 2,2 ==> psa - L 3,540(2) ==> tcb - MVC 88(4,13),=A(@@LC0) - ST 2,92(13) ==> psa - ST 4,96(13) ==> mutex - LA 1,88(,13) - L 15,=V(@@LKRNF) - BALR 14,15 - ST 3,0(4) ==> tcb,owner - L 2,4(4) ==> .count - A 2,=F'1' - ST 2,4(4) ==> .count - LTR 15,15 ==> rc - BNE @@L1 - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - A 15,=F'340' - ST 15,88(13) - ST 4,92(13) ==> mutex - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 -@@L1 EQU * -* Function 'mtxlock' epilogue - PDPEPIL -* Function 'mtxlock' literal pool - DS 0D - LTORG -* Function 'mtxlock' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'MUTEX.%08X' - DC X'0' - END diff --git a/src/crent370/clib/mtxnew.c b/src/crent370/clib/mtxnew.c deleted file mode 100644 index 60e4034..0000000 --- a/src/crent370/clib/mtxnew.c +++ /dev/null @@ -1,15 +0,0 @@ -/* MTXNEW.C */ -#include -#include "clibmutx.h" - -CLIBMUTX * -mtxnew(void) -{ - CLIBMUTX *mutex = calloc(1, sizeof(CLIBMUTX)); - - if (mutex) { - mtxinit(mutex); - } - - return mutex; -} diff --git a/src/crent370/clib/mtxnew.o b/src/crent370/clib/mtxnew.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/mtxnew.s b/src/crent370/clib/mtxnew.s deleted file mode 100644 index 588f194..0000000 --- a/src/crent370/clib/mtxnew.s +++ /dev/null @@ -1,60 +0,0 @@ - TITLE '/home/projects/crent370/clib/mtxnew.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'mtxnew' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'mtxnew' -MTXNEW PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'mtxnew' code - MVC 88(4,13),=F'1' - MVC 92(4,13),=F'8' - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 2,15 ==> mutex - LTR 15,15 ==> mutex - BE @@L2 - ST 15,88(13) ==> mutex - LA 1,88(,13) - L 15,=V(MTXINIT) - BALR 14,15 -@@L2 EQU * - LR 15,2 ==> mutex -* Function 'mtxnew' epilogue - PDPEPIL -* Function 'mtxnew' literal pool - DS 0D - LTORG -* Function 'mtxnew' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/mtxnheld.c b/src/crent370/clib/mtxnheld.c deleted file mode 100644 index 8f2ace4..0000000 --- a/src/crent370/clib/mtxnheld.c +++ /dev/null @@ -1,13 +0,0 @@ -/* MTXNHELD.C */ -#include "clibmutx.h" -#include "cliblock.h" - -int -mtxnheld(CLIBMUTX *mutex) -{ - unsigned *psa = (unsigned*)0; /* MVS prefixed save area */ - unsigned tcb = psa[0x21C/4]; /* get our TCB address */ - - /* return true if mutex is unlocked or locked by another thread */ - return (mutex->count == 0 || mutex->owner != tcb); -} diff --git a/src/crent370/clib/mtxnheld.o b/src/crent370/clib/mtxnheld.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/mtxnheld.s b/src/crent370/clib/mtxnheld.s deleted file mode 100644 index b33f18c..0000000 --- a/src/crent370/clib/mtxnheld.s +++ /dev/null @@ -1,59 +0,0 @@ - TITLE '/home/projects/crent370/clib/mtxnheld.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'mtxnheld' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'mtxnheld' -MTXNHELD PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'mtxnheld' code - L 4,0(11) ==> mutex - SLR 2,2 ==> psa - L 3,540(2) ==> tcb - LR 15,2 ==> psa - L 2,4(4) ==> .count - LTR 2,2 - BE @@L3 - L 2,0(4) ==> .owner - CLR 2,3 ==> tcb - BE @@L2 -@@L3 EQU * - LA 15,1(0,0) ==> psa -@@L2 EQU * -* Function 'mtxnheld' epilogue - PDPEPIL -* Function 'mtxnheld' literal pool - DS 0D - LTORG -* Function 'mtxnheld' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/mtxtry.c b/src/crent370/clib/mtxtry.c deleted file mode 100644 index ed74c7a..0000000 --- a/src/crent370/clib/mtxtry.c +++ /dev/null @@ -1,29 +0,0 @@ -/* MTXTRY.C */ -#include "clibmutx.h" -#include "cliblock.h" -#include "clibcrt.h" -#include "clibary.h" - -int -mtxtry(CLIBMUTX *mutex) -{ - unsigned *psa = (unsigned*)0; /* MVS prefixed save area */ - unsigned tcb = psa[0x21C/4]; /* get our TCB address */ - int rc; - - /* get exclusive control of resource */ - rc = trylock_resf(CLIB_MUTEX_RNAME, 0, mutex); - if (rc==0 || rc==8) { - /* we obtained lock(0) or we already had lock(8) */ - mutex->owner = tcb; /* set owner id */ - mutex->count++; /* increment lock count */ - if (rc==0) { - /* add mutex to array of mutex's for this thread */ - CLIBCRT *crt = __crtget(); - arrayadd(&crt->crtmutx, mutex); - } - rc = 0; /* success */ - } - - return rc; -} diff --git a/src/crent370/clib/mtxtry.o b/src/crent370/clib/mtxtry.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/mtxtry.s b/src/crent370/clib/mtxtry.s deleted file mode 100644 index 4bf5059..0000000 --- a/src/crent370/clib/mtxtry.s +++ /dev/null @@ -1,82 +0,0 @@ - TITLE '/home/projects/crent370/clib/mtxtry.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'mtxtry' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'mtxtry' -MTXTRY PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'mtxtry' code - L 3,0(11) ==> mutex - SLR 2,2 ==> psa - L 4,540(2) ==> tcb - MVC 88(4,13),=A(@@LC0) - ST 2,92(13) ==> psa - ST 3,96(13) ==> mutex - LA 1,88(,13) - L 15,=V(@@LKUNTF) - BALR 14,15 - LTR 15,15 ==> rc - BE @@L3 - LA 2,8(0,0) - CLR 15,2 ==> rc - BNE @@L2 -@@L3 EQU * - ST 4,0(3) ==> tcb,owner - L 2,4(3) ==> .count - A 2,=F'1' - ST 2,4(3) ==> .count - LTR 15,15 ==> rc - BNE @@L4 - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - A 15,=F'340' - ST 15,88(13) - ST 3,92(13) ==> mutex - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 -@@L4 EQU * - SLR 15,15 ==> rc -@@L2 EQU * -* Function 'mtxtry' epilogue - PDPEPIL -* Function 'mtxtry' literal pool - DS 0D - LTORG -* Function 'mtxtry' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'MUTEX.%08X' - DC X'0' - END diff --git a/src/crent370/clib/mtxunlk.c b/src/crent370/clib/mtxunlk.c deleted file mode 100644 index 4c2fb3d..0000000 --- a/src/crent370/clib/mtxunlk.c +++ /dev/null @@ -1,31 +0,0 @@ -/* MTXUNLK.C */ -#include "clibmutx.h" -#include "cliblock.h" -#include "clibcrt.h" -#include "clibary.h" - -void -mtxunlk(CLIBMUTX *mutex) -{ - if (mtxheld(mutex)) { - mutex->count--; - if (mutex->count==0) { - /* do real unlock of mutex */ - CLIBCRT *crt = __crtget(); - unsigned count = arraycount(&crt->crtmutx); - - /* remove the mutex from the array of thread mutex locks */ - while(count) { - CLIBMUTX *x = arrayget(&crt->crtmutx, count); - if (x==mutex) { - /* found it, remove mutex from array */ - arraydel(&crt->crtmutx, count); - break; - } - count--; - } - mutex->owner = 0; - unlock_resf(CLIB_MUTEX_RNAME, 0, mutex); - } - } -} diff --git a/src/crent370/clib/mtxunlk.o b/src/crent370/clib/mtxunlk.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/mtxunlk.s b/src/crent370/clib/mtxunlk.s deleted file mode 100644 index eb75e27..0000000 --- a/src/crent370/clib/mtxunlk.s +++ /dev/null @@ -1,102 +0,0 @@ - TITLE '/home/projects/crent370/clib/mtxunlk.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'mtxunlk' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'mtxunlk' -MTXUNLK PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'mtxunlk' code - L 3,0(11) ==> mutex - ST 3,88(13) ==> mutex - LA 1,88(,13) - L 15,=V(MTXHELD) - BALR 14,15 - LTR 15,15 ==> crt - BE @@L1 - L 2,4(3) ==> .count - BCTR 2,0 - ST 2,4(3) ==> .count - LTR 2,2 - BNE @@L1 - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - LR 4,15 ==> crt - LR 2,15 ==> crt - A 2,=F'340' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 2,15 ==> count - LTR 15,15 ==> count - BE @@L5 - A 4,=F'340' -@@L8 EQU * - ST 4,88(13) - ST 2,92(13) ==> count - LA 1,88(,13) - L 15,=V(@@ARGET) - BALR 14,15 - CLR 15,3 ==> x,mutex - BNE @@L7 - ST 4,88(13) - ST 2,92(13) ==> count - LA 1,88(,13) - L 15,=V(@@ARDEL) - BALR 14,15 - B @@L5 -@@L7 EQU * - BCTR 2,0 ==> count - LTR 2,2 ==> count - BNE @@L8 -@@L5 EQU * - MVC 0(4,3),=F'0' ==> .owner - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=F'0' - ST 3,96(13) ==> mutex - LA 1,88(,13) - L 15,=V(@@LKRNUF) - BALR 14,15 -@@L1 EQU * -* Function 'mtxunlk' epilogue - PDPEPIL -* Function 'mtxunlk' literal pool - DS 0D - LTORG -* Function 'mtxunlk' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'MUTEX.%08X' - DC X'0' - END diff --git a/src/crent370/clib/on@exit.c b/src/crent370/clib/on@exit.c deleted file mode 100644 index 3860118..0000000 --- a/src/crent370/clib/on@exit.c +++ /dev/null @@ -1,21 +0,0 @@ -/* ON@EXIT.C */ -#include -#include -#include "cliblock.h" -#include "clibcrt.h" -#include "clibary.h" - -int -on_exit(void (*func)(int,void*), void *arg) -{ - CLIBGRT *grt = __grtget(); - - if (func) { - lock(&grt->grtexit,0); - arrayadd(&grt->grtexit, func); - arrayadd(&grt->grtexita, arg); - unlock(&grt->grtexit,0); - } - - return 0; -} diff --git a/src/crent370/clib/on@exit.o b/src/crent370/clib/on@exit.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/on@exit.s b/src/crent370/clib/on@exit.s deleted file mode 100644 index 70c8e5c..0000000 --- a/src/crent370/clib/on@exit.s +++ /dev/null @@ -1,78 +0,0 @@ - TITLE '/home/projects/crent370/clib/on@exit.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'on_exit' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'on_exit' -ON@EXIT PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'on_exit' code - L 4,0(11) ==> func - LA 1,88(,13) - L 15,=V(@@GRTGET) - BALR 14,15 - LR 2,15 ==> grt - LTR 4,4 ==> func - BE @@L2 - LR 3,15 ==> grt - A 3,=F'16' - ST 3,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - ST 3,88(13) - ST 4,92(13) ==> func - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - A 2,=F'20' - ST 2,88(13) - MVC 92(4,13),4(11) ==> arg - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - ST 3,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L2 EQU * - SLR 15,15 -* Function 'on_exit' epilogue - PDPEPIL -* Function 'on_exit' literal pool - DS 0D - LTORG -* Function 'on_exit' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/perror.c b/src/crent370/clib/perror.c deleted file mode 100644 index e845e49..0000000 --- a/src/crent370/clib/perror.c +++ /dev/null @@ -1,24 +0,0 @@ -/* PERROR.C */ -#include -#include -#include - -void -perror(const char *s) -{ - const char *str = strerror(errno); - static char err[24]; - - if ((s != NULL) && (*s != '\0')) { - fprintf(stderr, "%s: ", s); - } - - if (!str) { - str = err; - sprintf(err, "unknown error:%d", errno); - } - - fprintf(stderr, "%s\n", str); - - return; -} diff --git a/src/crent370/clib/perror.o b/src/crent370/clib/perror.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/perror.s b/src/crent370/clib/perror.s deleted file mode 100644 index ffd79c0..0000000 --- a/src/crent370/clib/perror.s +++ /dev/null @@ -1,105 +0,0 @@ - TITLE '/home/projects/crent370/clib/perror.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - DS 0F -@@2 EQU * - DC 24X'00' -* Program text area - DS 0F - EJECT -* external function 'perror' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'perror' -PERROR PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'perror' code - L 4,0(11) ==> s - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - MVC 88(4,13),0(15) ==> str - LA 1,88(,13) - L 15,=V(STRERROR) - BALR 14,15 - LR 3,15 ==> str - LTR 4,4 ==> s - BE @@L2 - IC 2,0(4) ==> s - CLM 2,1,=XL1'00' - BE @@L2 - LA 1,88(,13) - L 15,=V(@@GTERR) - BALR 14,15 - MVC 88(4,13),0(15) ==> str - MVC 92(4,13),=A(@@LC0) - ST 4,96(13) ==> s - LA 1,88(,13) - L 15,=V(FPRINTF) - BALR 14,15 -@@L2 EQU * - LTR 3,3 ==> str - BNE @@L3 - L 3,=A(@@2) ==> str - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - ST 3,88(13) ==> str - MVC 92(4,13),=A(@@LC1) - MVC 96(4,13),0(15) ==> str - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 -@@L3 EQU * - LA 1,88(,13) - L 15,=V(@@GTERR) - BALR 14,15 - MVC 88(4,13),0(15) ==> str - MVC 92(4,13),=A(@@LC2) - ST 3,96(13) ==> str - LA 1,88(,13) - L 15,=V(FPRINTF) - BALR 14,15 -* Function 'perror' epilogue - PDPEPIL -* Function 'perror' literal pool - DS 0D - LTORG -* Function 'perror' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s: ' - DC X'0' -@@LC1 EQU * - DC C'unknown error:%d' - DC X'0' -@@LC2 EQU * - DC C'%s' - DC X'15' - DC X'0' - END diff --git a/src/crent370/clib/pow.c b/src/crent370/clib/pow.c deleted file mode 100644 index 33b97a3..0000000 --- a/src/crent370/clib/pow.c +++ /dev/null @@ -1,59 +0,0 @@ -/* POW.C */ -#if 1 -#include "math.h" -#include "float.h" -#include "errno.h" -#include "stddef.h" - -#if 0 -/* - - Some constants to make life easier elsewhere - (These should I guess be in math.h) - -*/ -static const double pi = 3.1415926535897932384626433832795; -static const double ln10 = 2.3025850929940456840179914546844; -static const double ln2 = 0.69314718055994530941723212145818 ; -#else -#define pi (3.1415926535897932384626433832795) -#define ln10 (2.3025850929940456840179914546844) -#define ln2 (0.69314718055994530941723212145818) -#endif - -#else -#include -#endif - -/* - - This code uses log and exp to calculate x to the power y. - If - -*/ - -__PDPCLIB_API__ double pow(double x,double y) -{ - int j,neg; - double yy,xx; - neg=0; - j=y; - yy=j; - if( yy == y) { - xx = x; - if ( y < 0 ){neg = 1; j = -j;} - if ( y == 0) return (1.0); - --j; - while(j>0){ xx=xx * x; j--;} - if(neg)xx=1.0/xx; - return (xx); - } - if (x < 0.0) - { - errno=EDOM; - return(0.0); - } - if (y == 0.0) return (1.0); - - return (exp(y*log(x))); -} diff --git a/src/crent370/clib/pow.o b/src/crent370/clib/pow.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/pow.s b/src/crent370/clib/pow.s deleted file mode 100644 index 0f07a9a..0000000 --- a/src/crent370/clib/pow.s +++ /dev/null @@ -1,119 +0,0 @@ - TITLE '/home/projects/crent370/clib/pow.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'pow' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'pow' -POW PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'pow' code - LD 4,0(11) ==> x - LM 2,3,8(11) ==> y - SLR 4,4 ==> neg - STM 2,3,80(13) ==> y - LD 2,80(,13) - LDR 0,2 - AD 0,=XL8'4F08000000000000' - STD 0,80(,13) - L 15,84(,13) ==> j - MVC 80(4,13),=XL8'4E00000080000000' - ST 15,84(,13) ==> j - XI 84(13),128 - LD 0,80(,13) ==> yy - SD 0,=XL8'4E00000080000000' ==> yy - CDR 0,2 ==> yy - BNE @@L2 - LDR 2,4 ==> xx,x - STM 2,3,80(13) ==> y - LD 6,80(,13) - LTDR 6,6 - BNL @@L4 - LA 4,1(0,0) ==> neg - LCR 15,15 ==> j -@@L4 EQU * - LD 0,=D'1.0E0' ==> xx - STM 2,3,80(13) ==> y - LD 6,80(,13) - LTDR 6,6 - BE @@L1 - BCTR 15,0 ==> j - LTR 15,15 ==> j - BNH @@L18 -@@L11 EQU * - MDR 2,4 ==> xx,x - BCTR 15,0 ==> j - LTR 15,15 ==> j - BH @@L11 -@@L18 EQU * - LTR 4,4 ==> neg - BE @@L12 - LD 0,=D'1.0E0' - DDR 0,2 ==> xx - LDR 2,0 ==> xx -@@L12 EQU * - LDR 0,2 ==> xx - B @@L1 -@@L2 EQU * - LTDR 4,4 ==> x - BNL @@L13 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - MVC 0(4,15),=F'33' - LD 0,=D'0.0E0' ==> xx - B @@L1 -@@L13 EQU * - LD 0,=D'1.0E0' ==> xx - STM 2,3,80(13) ==> y - LD 2,80(,13) - LTDR 2,2 - BE @@L1 - STD 4,88(13) ==> x - LA 1,88(,13) - L 15,=V(LOG) - BALR 14,15 - STM 2,3,80(13) ==> y - LD 6,80(,13) - MDR 0,6 - STD 0,88(13) - LA 1,88(,13) - L 15,=V(EXP) - BALR 14,15 -@@L1 EQU * -* Function 'pow' epilogue - PDPEPIL -* Function 'pow' literal pool - DS 0D - LTORG -* Function 'pow' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/printf.c b/src/crent370/clib/printf.c deleted file mode 100644 index 212d8c9..0000000 --- a/src/crent370/clib/printf.c +++ /dev/null @@ -1,14 +0,0 @@ -/* PRINTF.C */ -#include "stdio.h" - -int -printf(const char *format, ...) -{ - va_list arg; - int ret; - - va_start(arg, format); - ret = vfprintf(stdout, format, arg); - va_end(arg); - return (ret); -} diff --git a/src/crent370/clib/printf.o b/src/crent370/clib/printf.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/printf.s b/src/crent370/clib/printf.s deleted file mode 100644 index bc7f348..0000000 --- a/src/crent370/clib/printf.s +++ /dev/null @@ -1,56 +0,0 @@ - TITLE '/home/projects/crent370/clib/printf.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'printf' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'printf' -PRINTF PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'printf' code - LA 1,88(,13) - L 15,=V(@@GTOUT) - BALR 14,15 - MVC 88(4,13),0(15) ==> ret - MVC 92(4,13),0(11) - LA 2,4(,11) ==> arg - ST 2,96(13) ==> arg - LA 1,88(,13) - L 15,=V(VFPRINTF) - BALR 14,15 -* Function 'printf' epilogue - PDPEPIL -* Function 'printf' literal pool - DS 0D - LTORG -* Function 'printf' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/printf@.c b/src/crent370/clib/printf@.c deleted file mode 100644 index ee49a23..0000000 --- a/src/crent370/clib/printf@.c +++ /dev/null @@ -1,16 +0,0 @@ -#define PRINTF_PRIVATE -#include - -__asm__("\n&FUNC SETC 'printf_'"); -int printf_(const char* format, ...) -{ - va_list va; - int ret; - char buffer[1]; - - va_start(va, format); - ret = _vsnprintf(_out_char, buffer, (size_t)-1, format, va); - va_end(va); - - return ret; -} diff --git a/src/crent370/clib/printf@.o b/src/crent370/clib/printf@.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/printf@.s b/src/crent370/clib/printf@.s deleted file mode 100644 index b6b9a84..0000000 --- a/src/crent370/clib/printf@.s +++ /dev/null @@ -1,61 +0,0 @@ - TITLE '/home/projects/crent370/clib/printf@.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'printf_' -* Program text area - DS 0F - EJECT -* external function 'printf_' prologue -* frame base=88, local stack=8, call args=24 -&FUNC SETC 'printf_' -PRINTF@ PDPPRLG CINDEX=0,FRAME=120,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'printf_' code - L 2,=V(@@PRTFX) - L 3,0(2) ==> __prtfx - MVC 88(4,13),8(3) ==> ._out_char - LA 2,112(,13) - ST 2,92(13) - MVC 96(4,13),=F'-1' - MVC 100(4,13),0(11) - LA 2,4(,11) ==> va - ST 2,104(13) ==> va - L 2,44(3) ==> ._vsnprintf - LA 1,88(,13) - LA 15,0(2) - BALR 14,15 -* Function 'printf_' epilogue - PDPEPIL -* Function 'printf_' literal pool - DS 0D - LTORG -* Function 'printf_' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/putc.c b/src/crent370/clib/putc.c deleted file mode 100644 index ff47239..0000000 --- a/src/crent370/clib/putc.c +++ /dev/null @@ -1,15 +0,0 @@ -/* PUTC.C */ -#include - -#undef getchar -#undef putchar -#undef getc -#undef putc -#undef feof -#undef ferror - -int -putc(int c, FILE *stream) -{ - return (fputc(c, stream)); -} diff --git a/src/crent370/clib/putc.o b/src/crent370/clib/putc.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/putc.s b/src/crent370/clib/putc.s deleted file mode 100644 index 518bfee..0000000 --- a/src/crent370/clib/putc.s +++ /dev/null @@ -1,51 +0,0 @@ - TITLE '/home/projects/crent370/clib/putc.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'putc' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'putc' -PUTC PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'putc' code - MVC 88(4,13),0(11) ==> c - MVC 92(4,13),4(11) ==> stream - LA 1,88(,13) - L 15,=V(FPUTC) - BALR 14,15 -* Function 'putc' epilogue - PDPEPIL -* Function 'putc' literal pool - DS 0D - LTORG -* Function 'putc' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/putchar.c b/src/crent370/clib/putchar.c deleted file mode 100644 index 4fc6acc..0000000 --- a/src/crent370/clib/putchar.c +++ /dev/null @@ -1,15 +0,0 @@ -/* PUTCHAR.C */ -#include - -#undef getchar -#undef putchar -#undef getc -#undef putc -#undef feof -#undef ferror - -int -putchar(int c) -{ - return (putc(c, stdout)); -} diff --git a/src/crent370/clib/putchar.o b/src/crent370/clib/putchar.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/putchar.s b/src/crent370/clib/putchar.s deleted file mode 100644 index 87e1d4a..0000000 --- a/src/crent370/clib/putchar.s +++ /dev/null @@ -1,54 +0,0 @@ - TITLE '/home/projects/crent370/clib/putchar.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'putchar' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'putchar' -PUTCHAR PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'putchar' code - LA 1,88(,13) - L 15,=V(@@GTOUT) - BALR 14,15 - MVC 88(4,13),0(11) ==> c - MVC 92(4,13),0(15) - LA 1,88(,13) - L 15,=V(PUTC) - BALR 14,15 -* Function 'putchar' epilogue - PDPEPIL -* Function 'putchar' literal pool - DS 0D - LTORG -* Function 'putchar' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/putenv.c b/src/crent370/clib/putenv.c deleted file mode 100644 index 40eba26..0000000 --- a/src/crent370/clib/putenv.c +++ /dev/null @@ -1,34 +0,0 @@ -/* PUTENV.C */ -#include -#include -#include -#include -#include "clibenv.h" - -/* - * putenv() places a "name=value" into the environment variables. - */ -int -putenv(const char *str) -{ - int err; - char *p; - const char *name; - const char *value; - - name = str; - p = strchr(str, '='); - if (p) { - *p = 0; - value = p+1; - } - else { - value = ""; - } - - err = setenv(name, value, 1); - if (p) *p = '='; - -quit: - return err; -} diff --git a/src/crent370/clib/putenv.o b/src/crent370/clib/putenv.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/putenv.s b/src/crent370/clib/putenv.s deleted file mode 100644 index 83271dc..0000000 --- a/src/crent370/clib/putenv.s +++ /dev/null @@ -1,73 +0,0 @@ - TITLE '/home/projects/crent370/clib/putenv.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'putenv' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'putenv' -PUTENV PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'putenv' code - L 3,0(11) ==> name,str - ST 3,88(13) ==> name - MVC 92(4,13),=F'126' - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LR 2,15 ==> p - LTR 15,15 ==> p - BE @@L2 - MVI 0(15),0 ==> p - A 15,=F'1' ==> value - B @@L3 -@@L2 EQU * - L 15,=A(@@LC0) ==> value -@@L3 EQU * - ST 3,88(13) ==> name - ST 15,92(13) ==> value - MVC 96(4,13),=F'1' - LA 1,88(,13) - L 15,=V(SETENV) - BALR 14,15 - LTR 2,2 ==> p - BE @@L5 - MVI 0(2),126 ==> p -@@L5 EQU * -* Function 'putenv' epilogue - PDPEPIL -* Function 'putenv' literal pool - DS 0D - LTORG -* Function 'putenv' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC X'0' - END diff --git a/src/crent370/clib/puts.c b/src/crent370/clib/puts.c deleted file mode 100644 index 9f5ab8b..0000000 --- a/src/crent370/clib/puts.c +++ /dev/null @@ -1,15 +0,0 @@ -/* PUTS.C */ -#include - -int -puts(const char *s) -{ - int ret; - - ret = fputs(s, stdout); - if (ret == EOF) { - return (ret); - } - - return (putc('\n', stdout)); -} diff --git a/src/crent370/clib/puts.o b/src/crent370/clib/puts.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/puts.s b/src/crent370/clib/puts.s deleted file mode 100644 index 0eb47f0..0000000 --- a/src/crent370/clib/puts.s +++ /dev/null @@ -1,69 +0,0 @@ - TITLE '/home/projects/crent370/clib/puts.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'puts' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'puts' -PUTS PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'puts' code - LA 1,88(,13) - L 15,=V(@@GTOUT) - BALR 14,15 - MVC 88(4,13),0(11) ==> s - MVC 92(4,13),0(15) ==> ret - LA 1,88(,13) - L 15,=V(FPUTS) - BALR 14,15 - LR 2,15 ==> ret - L 3,=F'-1' - CLR 15,3 ==> ret - BE @@L1 - LA 1,88(,13) - L 15,=V(@@GTOUT) - BALR 14,15 - MVC 88(4,13),=F'21' - MVC 92(4,13),0(15) ==> ret - LA 1,88(,13) - L 15,=V(FPUTC) - BALR 14,15 - LR 2,15 ==> ret -@@L1 EQU * - LR 15,2 ==> ret -* Function 'puts' epilogue - PDPEPIL -* Function 'puts' literal pool - DS 0D - LTORG -* Function 'puts' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/qsort.c b/src/crent370/clib/qsort.c deleted file mode 100644 index 6f0f2b6..0000000 --- a/src/crent370/clib/qsort.c +++ /dev/null @@ -1,74 +0,0 @@ -/* QSORT.C */ -#define STDLIB_C -#include -#include - -/* This qsort routine was obtained from libnix (also public domain), - * and then reformatted. - * - * This qsort function does a little trick: - * To reduce stackspace it iterates the larger interval instead of doing - * the recursion on both intervals. - * So stackspace is limited to 32*stack_for_1_iteration = - * 32*4*(4 arguments+1 returnaddress+11 stored registers) = 2048 Bytes, - * which is small enough for everybodys use. - * (And this is the worst case if you own 4GB and sort an array of chars.) - * Sparing the function calling overhead does improve performance, too. - */ - -__PDPCLIB_API__ void qsort(void *base, - size_t nmemb, - size_t size, - int (*compar)(const void *, const void *)) -{ - char *base2 = (char *)base; - size_t i,a,b,c; - - while (nmemb > 1) { - a = 0; - b = nmemb-1; - c = (a+b)/2; /* Middle element */ - for (;;) { - while ((*compar)(&base2[size*c],&base2[size*a]) > 0) { - a++; /* Look for one >= middle */ - } - while ((*compar)(&base2[size*c],&base2[size*b]) < 0) { - b--; /* Look for one <= middle */ - } - - if (a >= b) { - break; /* We found no pair */ - } - - for (i=0; i b - LR 9,3 ==> b - ST 2,136(13) ==> b - ST 3,4+136(13) ==> b - ST 2,144(13) ==> b - ST 3,4+144(13) ==> b - ST 2,152(13) ==> b - ST 3,4+152(13) ==> b - ST 2,160(13) ==> b - ST 3,4+160(13) ==> b - L 7,8(11) ==> size - L 6,0(11) ==> base2,base - L 4,4(11) ==> nmemb - LA 3,1(0,0) - CLR 4,3 - BNH @@L29 -@@L27 EQU * - MVC 104(4,13),=F'0' ==> a - L 5,4(11) ==> b,nmemb - BCTR 5,0 ==> b - LR 2,5 ==> b - SRL 2,1 - ST 2,108(13) ==> c - B @@L8 -@@L11 EQU * - L 3,104(13) ==> a - A 3,=F'1' - ST 3,104(13) ==> a -@@L8 EQU * - MVC 116(4,13),108(13) ==> c - L 2,112(13) - L 3,4+112(13) - MR 2,7 ==> size - ST 2,112(13) - ST 3,4+112(13) - L 2,116(13) - AR 2,6 ==> base2 - ST 2,88(13) - MVC 124(4,13),104(13) ==> a - L 2,120(13) - L 3,4+120(13) - MR 2,7 ==> size - ST 2,120(13) - ST 3,4+120(13) - L 2,124(13) - AR 2,6 ==> base2 - ST 2,92(13) - L 3,12(11) ==> compar - LA 1,88(,13) - LA 15,0(3) - BALR 14,15 - LTR 15,15 - BH @@L11 - B @@L12 -@@L15 EQU * - BCTR 5,0 ==> b -@@L12 EQU * - MVC 132(4,13),108(13) ==> c - L 2,128(13) - L 3,4+128(13) - MR 2,7 ==> size - ST 2,128(13) - ST 3,4+128(13) - L 2,132(13) - AR 2,6 ==> base2 - ST 2,88(13) - LR 9,5 ==> b - MR 8,7 ==> b,size - LR 2,6 ==> base2 - AR 2,9 ==> b - ST 2,92(13) - L 3,12(11) ==> compar - LA 1,88(,13) - LA 15,0(3) - BALR 14,15 - LTR 15,15 - BL @@L15 - L 4,104(13) ==> a - CLR 4,5 ==> b - BNL @@L6 - SLR 15,15 ==> i - CLR 15,7 ==> i,size - BNL @@L31 -@@L21 EQU * - MVC 140(4,13),104(13) ==> a - L 2,136(13) - L 3,4+136(13) - MR 2,7 ==> size - ST 2,136(13) - ST 3,4+136(13) - L 2,140(13) - AR 2,15 ==> i - AR 2,6 ==> base2 - ST 2,168(13) - IC 4,0(2) ==> tmp - ST 5,148(13) ==> b - L 2,144(13) - L 3,4+144(13) - MR 2,7 ==> size - ST 2,144(13) - ST 3,4+144(13) - L 2,148(13) - AR 2,15 ==> i - AR 2,6 ==> base2 - L 3,168(13) - MVC 0(1,3),0(2) - STC 4,0(2) ==> tmp - A 15,=F'1' ==> i - CLR 15,7 ==> i,size - BL @@L21 -@@L31 EQU * - L 4,108(13) ==> c - CL 4,104(13) ==> a - BNE @@L22 - ST 5,108(13) ==> b,c - B @@L23 -@@L22 EQU * - L 2,108(13) ==> c - CLR 2,5 ==> b - BNE @@L23 - MVC 108(4,13),104(13) ==> c,a -@@L23 EQU * - L 3,104(13) ==> a - A 3,=F'1' - ST 3,104(13) ==> a - BCTR 5,0 ==> b - B @@L8 -@@L6 EQU * - A 5,=F'1' ==> b - L 2,4(11) ==> nmemb - SR 2,5 ==> nmemb,b - CLR 5,2 ==> b,nmemb - BNL @@L25 - ST 6,88(13) ==> base2 - ST 5,92(13) ==> b - ST 7,96(13) ==> size - MVC 100(4,13),12(11) ==> compar - LA 1,88(,13) - L 15,=A(QSORT) - BALR 14,15 - ST 5,156(13) ==> b - L 4,152(13) - L 5,4+152(13) - MR 4,7 ==> size - ST 4,152(13) - ST 5,4+152(13) - AR 6,5 ==> base2 - ST 2,4(11) ==> nmemb - B @@L2 -@@L25 EQU * - ST 5,164(13) ==> b - L 2,160(13) - L 3,4+160(13) - MR 2,7 ==> size - ST 2,160(13) - ST 3,4+160(13) - L 2,164(13) - AR 2,6 ==> base2 - ST 2,88(13) - L 2,4(11) ==> nmemb - SR 2,5 ==> b - ST 2,92(13) - ST 7,96(13) ==> size - MVC 100(4,13),12(11) ==> compar - LA 1,88(,13) - L 15,=A(QSORT) - BALR 14,15 - ST 5,4(11) ==> b,nmemb -@@L2 EQU * - L 4,4(11) ==> nmemb - LA 3,1(0,0) - CLR 4,3 - BH @@L27 -@@L29 EQU * -* Function 'qsort' epilogue - PDPEPIL -* Function 'qsort' literal pool - DS 0D - LTORG -* Function 'qsort' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/raise.c b/src/crent370/clib/raise.c deleted file mode 100644 index ce0b733..0000000 --- a/src/crent370/clib/raise.c +++ /dev/null @@ -1,24 +0,0 @@ -/*********************************************************************/ -/* */ -/* This Program Written by Paul Edwards. */ -/* Released to the Public Domain */ -/* */ -/*********************************************************************/ -/*********************************************************************/ -/* */ -/* signal.c - implementation of stuff in signal.h */ -/* */ -/*********************************************************************/ - -#include "signal.h" -#include "stdlib.h" -#include "stddef.h" - -__PDPCLIB_API__ int raise(int sig) -{ - if (sig >= SIGABRT && sig <= SIGTERM) { - __SIGHDL *sighdl = __sighdl(); - (sighdl[sig])(sig); - } - return (0); -} diff --git a/src/crent370/clib/raise.o b/src/crent370/clib/raise.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/raise.s b/src/crent370/clib/raise.s deleted file mode 100644 index f8c0a89..0000000 --- a/src/crent370/clib/raise.s +++ /dev/null @@ -1,64 +0,0 @@ - TITLE '/home/projects/crent370/clib/raise.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'raise' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'raise' -RAISE PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'raise' code - L 3,0(11) ==> sig - LR 2,3 ==> sig - BCTR 2,0 - LA 4,5(0,0) - CLR 2,4 - BH @@L2 - LA 1,88(,13) - L 15,=V(@@SIGHDL) - BALR 14,15 - LR 2,3 ==> sig - MH 2,=H'4' - ST 3,88(13) ==> sig - L 2,0(2,15) - LA 1,88(,13) - LA 15,0(2) - BALR 14,15 -@@L2 EQU * - SLR 15,15 -* Function 'raise' epilogue - PDPEPIL -* Function 'raise' literal pool - DS 0D - LTORG -* Function 'raise' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/rand.c b/src/crent370/clib/rand.c deleted file mode 100644 index 290167f..0000000 --- a/src/crent370/clib/rand.c +++ /dev/null @@ -1,18 +0,0 @@ -/* RAND.C */ -#define STDLIB_C -#include -#include -#include "clibcrt.h" - -__PDPCLIB_API__ int rand(void) -{ - int ret; - CLIBCRT *crt = __crtget(); - - if (crt) { - crt->crtseed = crt->crtseed * 1103515245UL + 12345; - ret = (int)(((crt->crtseed) >> 16) & 0x8fff); - } - - return (ret); -} diff --git a/src/crent370/clib/rand.o b/src/crent370/clib/rand.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/rand.s b/src/crent370/clib/rand.s deleted file mode 100644 index 487ee24..0000000 --- a/src/crent370/clib/rand.s +++ /dev/null @@ -1,63 +0,0 @@ - TITLE '/home/projects/crent370/clib/rand.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'rand' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'rand' -RAND PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'rand' code - SLR 2,2 - SLR 3,3 - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - LTR 15,15 ==> crt - BE @@L2 - L 3,=F'1103515245' - M 2,20(15) ==> .crtseed - LR 2,3 - A 2,=F'12345' - ST 2,20(15) ==> .crtseed - LR 4,2 ==> ret - SRL 4,16 ==> ret - N 4,=F'36863' ==> ret -@@L2 EQU * - LR 15,4 ==> ret -* Function 'rand' epilogue - PDPEPIL -* Function 'rand' literal pool - DS 0D - LTORG -* Function 'rand' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/rclose.c b/src/crent370/clib/rclose.c deleted file mode 100644 index 84d142d..0000000 --- a/src/crent370/clib/rclose.c +++ /dev/null @@ -1,27 +0,0 @@ -/* RCLOSE.C - close dataset opened by ropen() */ -#include -#include -#include -#include -#include -#include -#include "rfile.h" - -extern int __fildef(char *fdddname, char *fnm, int mymode, int type); -extern int __fdclr(char *fdddname); -extern char * __getpfx(void); - -int -rclose(RFILE *fp) -{ - int err = 0; - - if (!fp) goto quit; - - if (fp->hfile) __aclose(fp->hfile); - - free(fp); - -quit: - return err; -} diff --git a/src/crent370/clib/rclose.o b/src/crent370/clib/rclose.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/rclose.s b/src/crent370/clib/rclose.s deleted file mode 100644 index 9ddda99..0000000 --- a/src/crent370/clib/rclose.s +++ /dev/null @@ -1,63 +0,0 @@ - TITLE '/home/projects/crent370/clib/rclose.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'rclose' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'rclose' -RCLOSE PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'rclose' code - L 2,0(11) ==> fp - LTR 2,2 ==> fp - BE @@L3 - L 15,24(2) ==> .hfile - LTR 15,15 - BE @@L4 - ST 15,88(13) - LA 1,88(,13) - L 15,=V(@@ACLOSE) - BALR 14,15 -@@L4 EQU * - ST 2,88(13) ==> fp - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L3 EQU * - SLR 15,15 -* Function 'rclose' epilogue - PDPEPIL -* Function 'rclose' literal pool - DS 0D - LTORG -* Function 'rclose' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/realloc.c b/src/crent370/clib/realloc.c deleted file mode 100644 index 6119c00..0000000 --- a/src/crent370/clib/realloc.c +++ /dev/null @@ -1,41 +0,0 @@ -/* REALLOC.C */ -#define STDLIB_C -#include "stdlib.h" -#include "signal.h" -#include "string.h" -#include "ctype.h" -#include "stddef.h" -#include "mvssupa.h" - -__PDPCLIB_API__ void *realloc(void *ptr, size_t size) -{ - char *newptr; - size_t oldsize; - - if (size == 0) { - free(ptr); - return (NULL); - } - -#if USE_MEMMGR - if (memmgrRealloc(&__memmgr, ptr, size) == 0) { - return (ptr); - } -#endif - - newptr = malloc(size); - if (newptr == NULL) { - return (NULL); - } - - if (ptr != NULL) { - oldsize = *((size_t *)ptr - 1); - if (oldsize < size) { - size = oldsize; - } - memcpy(newptr, ptr, size); - free(ptr); - } - - return (newptr); -} diff --git a/src/crent370/clib/realloc.o b/src/crent370/clib/realloc.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/realloc.s b/src/crent370/clib/realloc.s deleted file mode 100644 index 52b31be..0000000 --- a/src/crent370/clib/realloc.s +++ /dev/null @@ -1,86 +0,0 @@ - TITLE '/home/projects/crent370/clib/realloc.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'realloc' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'realloc' -REALLOC PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'realloc' code - L 5,0(11) ==> ptr - L 3,4(11) ==> size - LTR 3,3 ==> size - BNE @@L2 - ST 5,88(13) ==> ptr - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - LR 15,3 ==> newptr,size - B @@L1 -@@L2 EQU * - ST 3,88(13) ==> size - LA 1,88(,13) - L 15,=V(MALLOC) - BALR 14,15 - LR 4,15 ==> newptr - LTR 15,15 ==> newptr - BE @@L1 - LTR 5,5 ==> ptr - BE @@L4 - LR 2,5 ==> ptr - A 2,=F'-4' - L 2,0(2) ==> oldsize - CLR 2,3 ==> oldsize,size - BNL @@L5 - LR 3,2 ==> size,oldsize -@@L5 EQU * - ST 4,88(13) ==> newptr - ST 5,92(13) ==> ptr - ST 3,96(13) ==> size - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - ST 5,88(13) ==> ptr - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L4 EQU * - LR 15,4 ==> newptr -@@L1 EQU * -* Function 'realloc' epilogue - PDPEPIL -* Function 'realloc' literal pool - DS 0D - LTORG -* Function 'realloc' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/remove.c b/src/crent370/clib/remove.c deleted file mode 100644 index 9a0bb8e..0000000 --- a/src/crent370/clib/remove.c +++ /dev/null @@ -1,31 +0,0 @@ -/* REMOVE.C */ -#include -#include -#include -#include "cliblock.h" - -int -remove(const char *filename) -{ - int ret; - char buf[FILENAME_MAX + 50]; - char *p; - - sprintf(buf, " DELETE %s", filename); - p = buf; - while (*p != '\0') { - *p = toupper((unsigned char)*p); - p++; - } - -#if 0 - lock(__idcams,0); - ret = __idcams(strlen(buf), buf); - unlock(__idcams,0); -#else - lock(idcams,0); - ret = idcams(buf); - unlock(idcams,0); -#endif - return (ret); -} diff --git a/src/crent370/clib/remove.o b/src/crent370/clib/remove.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/remove.s b/src/crent370/clib/remove.s deleted file mode 100644 index 15b8eeb..0000000 --- a/src/crent370/clib/remove.s +++ /dev/null @@ -1,90 +0,0 @@ - TITLE '/home/projects/crent370/clib/remove.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'remove' prologue -* frame base=88, local stack=312, call args=16 -&FUNC SETC 'remove' -REMOVE PDPPRLG CINDEX=0,FRAME=416,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'remove' code - LA 2,104(,13) ==> p - ST 2,88(13) ==> p - MVC 92(4,13),=A(@@LC0) - MVC 96(4,13),0(11) ==> filename - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - LR 15,2 ==> p - IC 2,0(2) ==> p - CLM 2,1,=XL1'00' - BE @@L7 - L 2,=V(@@TOUP) - L 3,0(2) ==> __toup -@@L5 EQU * - SLR 2,2 - IC 2,0(15) ==> p - MH 2,=H'2' - IC 2,1(2,3) - STC 2,0(15) ==> p - A 15,=F'1' ==> p - IC 2,0(15) ==> p - CLM 2,1,=XL1'00' - BNE @@L5 -@@L7 EQU * - MVC 88(4,13),=V(IDCAMS) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(IDCAMS) - BALR 14,15 - LR 2,15 ==> ret - MVC 88(4,13),=V(IDCAMS) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,2 ==> ret -* Function 'remove' epilogue - PDPEPIL -* Function 'remove' literal pool - DS 0D - LTORG -* Function 'remove' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C' DELETE %s' - DC X'0' - END diff --git a/src/crent370/clib/rename.c b/src/crent370/clib/rename.c deleted file mode 100644 index 3355ae3..0000000 --- a/src/crent370/clib/rename.c +++ /dev/null @@ -1,31 +0,0 @@ -/* RENAME.C */ -#include -#include -#include -#include "cliblock.h" - -int -rename(const char *old, const char *newnam) -{ - int ret; - char buf[FILENAME_MAX + FILENAME_MAX + 50]; - char *p; - - sprintf(buf, " ALTER %s NEWNAME(%s)", old, newnam); - p = buf; - while (*p != '\0') { - *p = toupper((unsigned char)*p); - p++; - } - -#if 0 - lock(__idcams,0); - ret = __idcams(strlen(buf), buf); - unlock(__idcams,0); -#else - lock(idcams,0); - ret = idcams(buf); - unlock(idcams,0); -#endif - return (ret); -} diff --git a/src/crent370/clib/rename.o b/src/crent370/clib/rename.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/rename.s b/src/crent370/clib/rename.s deleted file mode 100644 index 45fe5bb..0000000 --- a/src/crent370/clib/rename.s +++ /dev/null @@ -1,91 +0,0 @@ - TITLE '/home/projects/crent370/clib/rename.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'rename' prologue -* frame base=88, local stack=576, call args=16 -&FUNC SETC 'rename' -RENAME PDPPRLG CINDEX=0,FRAME=680,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'rename' code - LA 2,104(,13) ==> p - ST 2,88(13) ==> p - MVC 92(4,13),=A(@@LC0) - MVC 96(4,13),0(11) ==> old - MVC 100(4,13),4(11) ==> newnam - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - LR 15,2 ==> p - IC 2,0(2) ==> p - CLM 2,1,=XL1'00' - BE @@L7 - L 2,=V(@@TOUP) - L 3,0(2) ==> __toup -@@L5 EQU * - SLR 2,2 - IC 2,0(15) ==> p - MH 2,=H'2' - IC 2,1(2,3) - STC 2,0(15) ==> p - A 15,=F'1' ==> p - IC 2,0(15) ==> p - CLM 2,1,=XL1'00' - BNE @@L5 -@@L7 EQU * - MVC 88(4,13),=V(IDCAMS) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(IDCAMS) - BALR 14,15 - LR 2,15 ==> ret - MVC 88(4,13),=V(IDCAMS) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,2 ==> ret -* Function 'rename' epilogue - PDPEPIL -* Function 'rename' literal pool - DS 0D - LTORG -* Function 'rename' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C' ALTER %s NEWNAME(%s)' - DC X'0' - END diff --git a/src/crent370/clib/rewind.c b/src/crent370/clib/rewind.c deleted file mode 100644 index b60f0fd..0000000 --- a/src/crent370/clib/rewind.c +++ /dev/null @@ -1,9 +0,0 @@ -/* REWIND.C */ -#include - -void -rewind(FILE *stream) -{ - fseek(stream, 0L, SEEK_SET); - return; -} diff --git a/src/crent370/clib/rewind.o b/src/crent370/clib/rewind.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/rewind.s b/src/crent370/clib/rewind.s deleted file mode 100644 index e720cbd..0000000 --- a/src/crent370/clib/rewind.s +++ /dev/null @@ -1,52 +0,0 @@ - TITLE '/home/projects/crent370/clib/rewind.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'rewind' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'rewind' -REWIND PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'rewind' code - MVC 88(4,13),0(11) ==> stream - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'0' - LA 1,88(,13) - L 15,=V(FSEEK) - BALR 14,15 -* Function 'rewind' epilogue - PDPEPIL -* Function 'rewind' literal pool - DS 0D - LTORG -* Function 'rewind' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/ropen.c b/src/crent370/clib/ropen.c deleted file mode 100644 index ffa5481..0000000 --- a/src/crent370/clib/ropen.c +++ /dev/null @@ -1,138 +0,0 @@ -/* ROPEN.C - open dataset for sequential record access */ -#include -#include -#include -#include -#include -#include -#include "rfile.h" -#include "clibcrt.h" - -extern int __fildef(char *fdddname, char *fnm, int mymode, int type); -extern int __fdclr(char *fdddname); -extern char * __getpfx(void); - -int -ropen(const char *fnm, int write, RFILE **rfile) -{ - CLIBGRT *grt = __grtget(); - RFILE *fp = (RFILE*)0; - int mode = write ? 1 : 0; - int dyn = 0; - int recfm = 0; - int lrecl = 0; - int blksize = 0; - void *hfile = (void*)0; - void *asmbuf = (void*)0; - int i; - int err; - char *p; - char newfnm[FILENAME_MAX] = {0}; - char member[9] = {0}; - char tmpdd[9] = {0}; - - while(*fnm==' ') fnm++; - - if (toupper(fnm[0])=='D' && toupper(fnm[1])=='D' && fnm[2]==':') { - p=(char*)&fnm[3]; - for(i=0;i<8 && p[i];i++) { - if (p[i]=='(') break; - tmpdd[i] = toupper(p[i]); - } - p=&p[i]; - while(i<8) tmpdd[i++] = ' '; - tmpdd[i] = 0; - if (*p=='(') { - p++; - for(i=0;i<8 && p[i];i++) { - if (p[i]==')') break; - member[i] = toupper(p[i]); - } - member[i] = 0; - } - goto doopen; - } - - dyn=1; /* we need to dynamically allocate the dataset */ - i = 0; /* new file name character index */ - - if (fnm[0]=='\'') { - /* quoted dataset name */ - fnm++; - } - else { - /* unquoted dataset name */ - if (grt->grtflag1 & GRTFLAG1_TSO) { - p = __getpfx(); - if (p) { - for(i=0; i < 8 && p[i]!=' ' && p[i]; i++) { - newfnm[i] = p[i]; - } - newfnm[i++] = '.'; - } - } - } - - p = &newfnm[i]; - for(i=0; fnm[i] && fnm[i] != '('; i++) { - p[i] = toupper(fnm[i]); - } - p[i] = 0; - - if (fnm[i]=='(') { - p = (char*)&fnm[i+1]; - while(*p==' ') p++; - for(i=0;i<8 && p[i]!=' ' && p[i];i++) { - if (p[i]==')') break; - member[i] = toupper(p[i]); - } - while(i<8) member[i++] = ' '; - member[i] = 0; - } - - /* dynamically allocate dataset */ - err = __fildef(tmpdd, newfnm, mode, 0); - if (err) goto quit; - -doopen: - recfm = 1; /* variable */ - lrecl = 255; - blksize = 6233; - - hfile = __aopen(tmpdd, &mode, &recfm, &lrecl, &blksize, &asmbuf, member); - /* errors from MVS __aopen are negative numbers */ - if ((int)hfile <= 0) { - err = 1; - errno = -(int)hfile; - goto quit; - } - - fp = (RFILE*) calloc(1, sizeof(RFILE)); - if (!fp) { - __aclose(hfile); - if (dyn) __fdclr(tmpdd); - err = 1; - goto quit; - } - - for(i=0; RFILE_EYE[i]; i++) { - fp->eye[i] = RFILE_EYE[i]; - } - fp->dyn = dyn; - fp->recfm = recfm; - fp->lrecl = lrecl; - fp->write = write; - fp->hfile = hfile; - fp->asmbuf = asmbuf; - for(i=0; i < 8 && tmpdd[i]; i++) { - fp->ddname[i] = tmpdd[i]; - } - for(i=0; i < 8 && member[i]; i++) { - fp->member[i] = member[i]; - } - *rfile = fp; - err = 0; - -quit: - return err; -} diff --git a/src/crent370/clib/ropen.o b/src/crent370/clib/ropen.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/ropen.s b/src/crent370/clib/ropen.s deleted file mode 100644 index 33727e6..0000000 --- a/src/crent370/clib/ropen.s +++ /dev/null @@ -1,437 +0,0 @@ - TITLE '/home/projects/crent370/clib/ropen.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'ropen' prologue -* frame base=88, local stack=320, call args=32 -&FUNC SETC 'ropen' -ROPEN PDPPRLG CINDEX=0,FRAME=440,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ropen' code - L 6,0(11) ==> fnm - L 9,4(11) ==> write - LA 1,88(,13) - L 15,=V(@@GRTGET) - BALR 14,15 - LR 7,15 ==> grt - SLR 15,15 ==> fp - LPR 2,9 ==> fp,write - LCR 2,2 ==> fp - SRL 2,31 ==> fp - ST 2,416(13) ==> fp - LR 8,15 ==> dyn,fp - ST 15,420(13) ==> fp - ST 15,424(13) ==> fp - ST 15,428(13) ==> fp - ST 15,432(13) ==> fp - LA 4,120(,13) - LA 5,260(0,0) - LR 2,15 ==> fp - LR 3,15 ==> fp - MVCL 4,2 ==> fp - LA 4,384(,13) - LA 5,9(0,0) - LR 2,15 ==> fp - LR 3,15 ==> fp - MVCL 4,2 ==> fp - LA 4,400(,13) - LA 5,9(0,0) - LR 2,15 ==> fp - LR 3,15 ==> fp - MVCL 4,2 ==> fp - CLI 0(6),64 ==> fnm - BNE @@L83 -@@L6 EQU * - A 6,=F'1' ==> fnm - CLI 0(6),64 ==> fnm - BE @@L6 -@@L83 EQU * - SLR 2,2 - IC 2,0(6) ==> fnm - L 3,=V(@@TOUP) - L 3,0(3) ==> __toup - MH 2,=H'2' - LH 2,0(2,3) - CLM 2,3,=H'196' - BNE @@L7 - SLR 2,2 - IC 2,1(6) - MH 2,=H'2' - LH 2,0(2,3) - CLM 2,3,=H'196' - BNE @@L7 - CLI 2(6),122 - BNE @@L7 - LR 15,6 ==> p,fnm - A 15,=F'3' ==> p - SLR 4,4 ==> i - IC 2,0(4,15) ==> i - CLM 2,1,=XL1'00' - BE @@L9 - L 5,=V(@@TOUP) -@@L14 EQU * - IC 2,0(4,15) ==> i - SLL 2,24 - SRA 2,24 - C 2,=F'77' - BE @@L9 - SLR 2,2 - IC 2,0(4,15) ==> i - L 3,0(5) ==> __toup - MH 2,=H'2' - IC 3,1(2,3) - STC 3,400(4,13) ==> tmpdd - A 4,=F'1' ==> i - LA 2,7(0,0) - CR 4,2 ==> i - BH @@L9 - IC 2,0(4,15) ==> i - SLL 2,24 - SRA 2,24 - C 2,=F'0' - BNE @@L14 -@@L9 EQU * - AR 15,4 ==> p,i - LA 6,7(0,0) - CR 4,6 ==> i - BH @@L86 - LA 5,280(0,0) - LA 3,120(,13) -@@L18 EQU * - LR 2,4 ==> i - AR 2,3 - LA 6,64(0,0) - STC 6,0(5,2) ==> tmpdd - A 4,=F'1' ==> i - LA 2,7(0,0) - CR 4,2 ==> i - BNH @@L18 -@@L86 EQU * - SLR 6,6 - STC 6,400(4,13) ==> tmpdd - CLI 0(15),77 ==> p - BNE @@L27 - A 15,=F'1' ==> p - SLR 4,4 ==> i - IC 2,0(15) ==> p - STC 6,80(,13) - CLM 2,1,80(13) - BE @@L21 - L 5,=V(@@TOUP) -@@L26 EQU * - IC 2,0(4,15) ==> i - SLL 2,24 - SRA 2,24 - C 2,=F'93' - BE @@L21 - SLR 2,2 - IC 2,0(4,15) ==> i - L 3,0(5) ==> __toup - MH 2,=H'2' - IC 3,1(2,3) - STC 3,384(4,13) ==> member - A 4,=F'1' ==> i - LA 2,7(0,0) - CR 4,2 ==> i - BH @@L21 - IC 2,0(4,15) ==> i - CLM 2,1,=XL1'00' - BNE @@L26 -@@L21 EQU * - SLR 6,6 - STC 6,384(4,13) ==> member - B @@L27 -@@L7 EQU * - LA 8,1(0,0) ==> dyn - SLR 4,4 ==> i - CLI 0(6),125 ==> fnm - BNE @@L28 - AR 6,8 ==> fnm - B @@L29 -@@L28 EQU * - IC 2,10(7) ==> .grtflag1 - N 2,=F'64' - CLM 2,1,=XL1'00' - BE @@L29 - LA 1,88(,13) - L 15,=V(@@GETPFX) - BALR 14,15 - LTR 15,15 ==> p - BE @@L29 - SLR 4,4 ==> i - IC 2,0(15) ==> p - CLM 2,1,=XL1'40' - BE @@L33 - SLL 2,24 - SRA 2,24 - C 2,=F'0' - BE @@L33 -@@L37 EQU * - IC 2,0(4,15) ==> i - STC 2,120(13,4) ==> newfnm - A 4,=F'1' ==> i - LA 2,7(0,0) - CR 4,2 ==> i - BH @@L33 - IC 2,0(4,15) ==> i - CLM 2,1,=XL1'40' - BE @@L33 - CLM 2,1,=XL1'00' - BNE @@L37 -@@L33 EQU * - LA 2,75(0,0) - STC 2,120(4,13) ==> newfnm - A 4,=F'1' ==> i -@@L29 EQU * - LA 2,120(,13) - LR 15,2 ==> p - AR 15,4 ==> p,i - SLR 4,4 ==> i - IC 2,0(6) ==> fnm - CLM 2,1,=XL1'00' - BE @@L39 - CLM 2,1,=XL1'4D' - BE @@L39 - L 5,=V(@@TOUP) -@@L43 EQU * - SLR 2,2 - IC 2,0(4,6) ==> i - L 3,0(5) ==> __toup - MH 2,=H'2' - IC 3,1(2,3) - STC 3,0(4,15) ==> i - A 4,=F'1' ==> i - IC 2,0(4,6) ==> i - CLM 2,1,=XL1'00' - BE @@L39 - CLM 2,1,=XL1'4D' - BNE @@L43 -@@L39 EQU * - SLR 2,2 - STC 2,0(4,15) ==> i - IC 2,0(4,6) ==> i - CLM 2,1,=XL1'4D' - BNE @@L44 - LR 15,6 ==> p,fnm - AR 15,4 ==> p,i - A 15,=F'1' ==> p - CLI 0(15),64 ==> p - BNE @@L91 -@@L48 EQU * - A 15,=F'1' ==> p - CLI 0(15),64 ==> p - BE @@L48 -@@L91 EQU * - SLR 4,4 ==> i - IC 2,0(15) ==> p - CLM 2,1,=XL1'40' - BE @@L50 - CLM 2,1,=XL1'00' - BE @@L50 - L 5,=V(@@TOUP) -@@L55 EQU * - IC 2,0(4,15) ==> i - SLL 2,24 - SRA 2,24 - C 2,=F'93' - BE @@L50 - SLR 2,2 - IC 2,0(4,15) ==> i - L 3,0(5) ==> __toup - MH 2,=H'2' - IC 3,1(2,3) - STC 3,384(4,13) ==> member - A 4,=F'1' ==> i - LA 6,7(0,0) - CR 4,6 ==> i - BH @@L50 - IC 2,0(4,15) ==> i - CLM 2,1,=XL1'40' - BE @@L50 - SLL 2,24 - SRA 2,24 - C 2,=F'0' - BNE @@L55 -@@L50 EQU * - LA 2,7(0,0) - CR 4,2 ==> i - BH @@L94 - LA 5,264(0,0) - LA 3,120(,13) -@@L59 EQU * - LR 2,4 ==> i - AR 2,3 - LA 6,64(0,0) - STC 6,0(5,2) ==> member - A 4,=F'1' ==> i - LA 2,7(0,0) - CR 4,2 ==> i - BNH @@L59 -@@L94 EQU * - SLR 6,6 - STC 6,384(4,13) ==> member -@@L44 EQU * - LA 2,400(,13) - ST 2,88(13) - LA 2,120(,13) - ST 2,92(13) - MVC 96(4,13),416(13) - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@FILDEF) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L61 -@@L27 EQU * - MVC 420(4,13),=F'1' - MVC 424(4,13),=F'255' - MVC 428(4,13),=F'6233' - LA 2,400(,13) - ST 2,88(13) - LA 2,416(,13) - ST 2,92(13) - LA 2,420(,13) - ST 2,96(13) - LA 2,424(,13) - ST 2,100(13) - LA 2,428(,13) - ST 2,104(13) - LA 2,432(,13) - ST 2,108(13) - LA 2,384(,13) - ST 2,112(13) - LA 1,88(,13) - L 15,=V(@@AOPEN) - BALR 14,15 - LR 5,15 ==> hfile - LTR 15,15 ==> hfile - BH @@L62 - LA 3,1(0,0) ==> err - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - LCR 2,5 ==> hfile - ST 2,0(15) ==> grt - B @@L61 -@@L62 EQU * - MVC 88(4,13),=F'1' - MVC 92(4,13),=F'52' - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LTR 15,15 ==> fp - BNE @@L63 - ST 5,88(13) ==> hfile - LA 1,88(,13) - L 15,=V(@@ACLOSE) - BALR 14,15 - LTR 8,8 ==> dyn - BE @@L64 - LA 2,400(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@FDCLR) - BALR 14,15 -@@L64 EQU * - LA 3,1(0,0) ==> err - B @@L61 -@@L63 EQU * - SLR 4,4 ==> i - L 2,=A(@@LC0) - IC 2,0(4,2) ==> i - CLM 2,1,=XL1'00' - BE @@L96 - L 3,=A(@@LC0) -@@L69 EQU * - IC 2,0(4,3) ==> i - STC 2,0(4,15) ==> .eye - A 4,=F'1' ==> i - IC 2,0(4,3) ==> i - CLM 2,1,=XL1'00' - BNE @@L69 -@@L96 EQU * - ST 8,8(15) ==> dyn,dyn - MVC 12(4,15),420(13) ==> .recfm - MVC 16(4,15),424(13) ==> .lrecl - ST 9,20(15) ==> write,write - ST 5,24(15) ==> hfile,hfile - MVC 28(4,15),432(13) ==> .asmbuf - SLR 4,4 ==> i - IC 2,400(13) ==> tmpdd - SLL 2,24 - SRA 2,24 - C 2,=F'0' - BE @@L71 -@@L75 EQU * - IC 6,400(4,13) ==> tmpdd - STC 6,32(15,4) ==> .ddname - A 4,=F'1' ==> i - LA 2,7(0,0) - CR 4,2 ==> i - BH @@L71 - IC 2,400(4,13) ==> tmpdd - CLM 2,1,=XL1'00' - BNE @@L75 -@@L71 EQU * - SLR 4,4 ==> i - IC 2,384(13) ==> member - SLL 2,24 - SRA 2,24 - C 2,=F'0' - BE @@L77 -@@L81 EQU * - IC 6,384(4,13) ==> member - STC 6,41(15,4) ==> .member - A 4,=F'1' ==> i - LA 2,7(0,0) - CR 4,2 ==> i - BH @@L77 - IC 2,384(4,13) ==> member - CLM 2,1,=XL1'00' - BNE @@L81 -@@L77 EQU * - L 2,8(11) ==> rfile - ST 15,0(2) ==> fp,rfile - SLR 3,3 ==> err -@@L61 EQU * - LR 15,3 ==> err -* Function 'ropen' epilogue - PDPEPIL -* Function 'ropen' literal pool - DS 0D - LTORG -* Function 'ropen' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'*RFILE*' - DC X'0' - END diff --git a/src/crent370/clib/rread.c b/src/crent370/clib/rread.c deleted file mode 100644 index beade20..0000000 --- a/src/crent370/clib/rread.c +++ /dev/null @@ -1,27 +0,0 @@ -/* RREAD.C - read dataset record */ -#include -#include -#include -#include -#include -#include -#include "rfile.h" - -int -rread(RFILE *fp, void *ptr, size_t *read) -{ - int err = 0; - size_t len = 0; - unsigned char *dptr = fp->asmbuf; - - if (__aread(fp->hfile, &dptr, &len) != 0) { - err = 1; - goto quit; - } - - memcpy(ptr, dptr, len); - if (read) *read = len; - -quit: - return err; -} diff --git a/src/crent370/clib/rread.o b/src/crent370/clib/rread.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/rread.s b/src/crent370/clib/rread.s deleted file mode 100644 index 9a96ad5..0000000 --- a/src/crent370/clib/rread.s +++ /dev/null @@ -1,75 +0,0 @@ - TITLE '/home/projects/crent370/clib/rread.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'rread' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'rread' -RREAD PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'rread' code - L 2,0(11) ==> fp - L 4,8(11) ==> read - SLR 3,3 ==> err - ST 3,108(13) ==> err - MVC 104(4,13),28(2) ==> .asmbuf - MVC 88(4,13),24(2) ==> .hfile - LA 2,104(,13) - ST 2,92(13) - LA 2,108(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@AREAD) - BALR 14,15 - LTR 15,15 ==> err - BE @@L2 - LA 3,1(0,0) ==> err - B @@L3 -@@L2 EQU * - MVC 88(4,13),4(11) ==> ptr - MVC 92(4,13),104(13) - MVC 96(4,13),108(13) - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - LTR 4,4 ==> read - BE @@L3 - MVC 0(4,4),108(13) ==> read -@@L3 EQU * - LR 15,3 ==> err -* Function 'rread' epilogue - PDPEPIL -* Function 'rread' literal pool - DS 0D - LTORG -* Function 'rread' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/rwrite.c b/src/crent370/clib/rwrite.c deleted file mode 100644 index b14921a..0000000 --- a/src/crent370/clib/rwrite.c +++ /dev/null @@ -1,24 +0,0 @@ -/* RWRITE.C - write dataset record */ -#include -#include -#include -#include -#include -#include -#include "rfile.h" - -int -rwrite(RFILE *fp, const void *ptr, size_t size) -{ - int err = 0; - unsigned char *dptr = fp->asmbuf; - - if (!size) size = fp->lrecl; - - memcpy(dptr, ptr, size); - if (__awrite(fp->hfile, &dptr, &size)) { - err = 1; - } - - return err; -} diff --git a/src/crent370/clib/rwrite.o b/src/crent370/clib/rwrite.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/rwrite.s b/src/crent370/clib/rwrite.s deleted file mode 100644 index 32141da..0000000 --- a/src/crent370/clib/rwrite.s +++ /dev/null @@ -1,73 +0,0 @@ - TITLE '/home/projects/crent370/clib/rwrite.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'rwrite' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'rwrite' -RWRITE PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'rwrite' code - L 3,0(11) ==> fp - SLR 4,4 ==> err - MVC 104(4,13),28(3) ==> .asmbuf - L 2,8(11) - LTR 2,2 - BNE @@L2 - MVC 8(4,11),16(3) ==> .lrecl -@@L2 EQU * - MVC 88(4,13),104(13) - MVC 92(4,13),4(11) ==> ptr - MVC 96(4,13),8(11) - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - MVC 88(4,13),24(3) ==> .hfile - LA 2,104(,13) - ST 2,92(13) - LA 2,8(,11) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@AWRITE) - BALR 14,15 - LTR 15,15 ==> err - BE @@L3 - LA 4,1(0,0) ==> err -@@L3 EQU * - LR 15,4 ==> err -* Function 'rwrite' epilogue - PDPEPIL -* Function 'rwrite' literal pool - DS 0D - LTORG -* Function 'rwrite' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/scanf.c b/src/crent370/clib/scanf.c deleted file mode 100644 index 35af75b..0000000 --- a/src/crent370/clib/scanf.c +++ /dev/null @@ -1,15 +0,0 @@ -/* SCANF.C */ -#include -#include - -int -scanf(const char *format, ...) -{ - va_list arg; - int ret; - - va_start(arg, format); - ret = vvscanf(format, arg, stdin, NULL); - va_end(arg); - return (ret); -} diff --git a/src/crent370/clib/scanf.o b/src/crent370/clib/scanf.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/scanf.s b/src/crent370/clib/scanf.s deleted file mode 100644 index 9272eb7..0000000 --- a/src/crent370/clib/scanf.s +++ /dev/null @@ -1,57 +0,0 @@ - TITLE '/home/projects/crent370/clib/scanf.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'scanf' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'scanf' -SCANF PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'scanf' code - LA 1,88(,13) - L 15,=V(@@GTIN) - BALR 14,15 - MVC 88(4,13),0(11) - LA 2,4(,11) ==> arg - ST 2,92(13) ==> arg - MVC 96(4,13),0(15) ==> ret - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(VVSCANF) - BALR 14,15 -* Function 'scanf' epilogue - PDPEPIL -* Function 'scanf' literal pool - DS 0D - LTORG -* Function 'scanf' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/setbuf.c b/src/crent370/clib/setbuf.c deleted file mode 100644 index b466519..0000000 --- a/src/crent370/clib/setbuf.c +++ /dev/null @@ -1,16 +0,0 @@ -/* SETBUF.C */ -#include - -int -setbuf(FILE *stream, char *buf) -{ - int ret; - - if (buf == NULL) { - ret = setvbuf(stream, NULL, _IONBF, 0); - } - else { - ret = setvbuf(stream, buf, _IOFBF, BUFSIZ); - } - return (ret); -} diff --git a/src/crent370/clib/setbuf.o b/src/crent370/clib/setbuf.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/setbuf.s b/src/crent370/clib/setbuf.s deleted file mode 100644 index 847902b..0000000 --- a/src/crent370/clib/setbuf.s +++ /dev/null @@ -1,64 +0,0 @@ - TITLE '/home/projects/crent370/clib/setbuf.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'setbuf' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'setbuf' -SETBUF PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'setbuf' code - L 2,0(11) ==> stream - L 15,4(11) ==> buf - LTR 15,15 ==> buf - BNE @@L2 - ST 2,88(13) ==> stream - ST 15,92(13) ==> buf - MVC 96(4,13),=F'3' - ST 15,100(13) ==> buf - B @@L4 -@@L2 EQU * - ST 2,88(13) ==> stream - ST 15,92(13) ==> buf - MVC 96(4,13),=F'1' - MVC 100(4,13),=F'32768' -@@L4 EQU * - LA 1,88(,13) - L 15,=V(SETVBUF) - BALR 14,15 -* Function 'setbuf' epilogue - PDPEPIL -* Function 'setbuf' literal pool - DS 0D - LTORG -* Function 'setbuf' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/setenv.c b/src/crent370/clib/setenv.c deleted file mode 100644 index be79e5a..0000000 --- a/src/crent370/clib/setenv.c +++ /dev/null @@ -1,83 +0,0 @@ -/* SETENV.C */ -#include -#include -#include -#include -#include "clibenv.h" -#include "cliblock.h" -#include "clibcrt.h" - -/* - * setenv -- - * Set the value of the environmental variable "name" to be - * "value". If rewrite is set, replace any current value. - * - * If caller by putenv() we might have had an original string - * like "name=value" or " name = value" that was parsed - * using the '=' character, so we need to remove leading and trailing - * spaces from the " name " and leading spaces from the " value". - */ -int -setenv(const char *name, const char *value, int rewrite) -{ - CLIBGRT *grt = __grtget(); - int err = 0; - size_t l_name, l_value, length; - int index; - char *found; - __ENVVAR *envvar; - - lock(&grt->grtenv,0); - - while(*name==' ') name++; /* skip leading spaces */ - l_name = name ? strlen(name) : 0; - while(l_name > 0 && name[l_name-1]==' ') l_name--; /* trim */ - if (l_name == 0 || value == NULL) { - err = 1; - goto quit; - } - - /* see if we have this name in the environment variables */ - /* note: we want to replace exact match variables if possible */ - found = __findenv(name, &index, 0); /* same case */ - if (!found) found = __findenv(name, &index, 1); /* try caseless */ - if (found && !rewrite) { - /* found it, but rewrite not desired */ - goto quit; - } - - /* allocate a new environment variable */ - while(*value==' ') value++; /* remove leading spaces */ - l_value = strlen(value); - length = l_name + l_value + sizeof(__ENVVAR); - envvar = calloc(1, length); - if (!envvar) { - err = 1; - goto quit; - } - envvar->name = &envvar->buf[0]; - envvar->value = &envvar->buf[l_name+1]; - memcpy(envvar->name, name, l_name); - memcpy(envvar->value, value, l_value); - - if (index >= 0) { - if (found) { - /* replace environment variable */ - free(grt->grtenv[index]); - grt->grtenv[index]=envvar; - } - else { - /* save new environment variable in empty slot */ - grt->grtenv[index] = envvar; - } - goto quit; - } - - /* add new environment variable */ - err = arrayadd(&grt->grtenv, envvar); - if (err) free(envvar); - -quit: - unlock(&grt->grtenv,0); - return err; -} diff --git a/src/crent370/clib/setenv.o b/src/crent370/clib/setenv.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/setenv.s b/src/crent370/clib/setenv.s deleted file mode 100644 index beb86a4..0000000 --- a/src/crent370/clib/setenv.s +++ /dev/null @@ -1,212 +0,0 @@ - TITLE '/home/projects/crent370/clib/setenv.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'setenv' prologue -* frame base=88, local stack=16, call args=16 -&FUNC SETC 'setenv' -SETENV PDPPRLG CINDEX=0,FRAME=120,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'setenv' code - L 4,0(11) ==> name - L 6,4(11) ==> value - LA 1,88(,13) - L 15,=V(@@GRTGET) - BALR 14,15 - LR 8,15 ==> grt - MVC 108(4,13),=F'0' ==> err - LR 2,15 ==> grt - A 2,=F'32' - ST 2,88(13) - MVC 92(4,13),108(13) ==> err - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - CLI 0(4),64 ==> name - BNE @@L28 -@@L5 EQU * - A 4,=F'1' ==> name - CLI 0(4),64 ==> name - BE @@L5 -@@L28 EQU * - LTR 4,4 ==> name - BE @@L6 - ST 4,88(13) ==> name - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 5,15 ==> l_name - B @@L7 -@@L6 EQU * - SLR 5,5 ==> l_name -@@L7 EQU * - LTR 5,5 ==> l_name - BE @@L9 - LR 2,4 ==> name - AR 2,5 ==> l_name - BCTR 2,0 - CLI 0(2),64 - BNE @@L9 -@@L12 EQU * - BCTR 5,0 ==> l_name - LTR 5,5 ==> l_name - BE @@L9 - LR 2,4 ==> name - AR 2,5 ==> l_name - BCTR 2,0 - CLI 0(2),64 - BE @@L12 -@@L9 EQU * - LTR 5,5 ==> l_name - BE @@L32 - LTR 6,6 ==> value - BE @@L32 - ST 4,88(13) ==> name - LA 2,104(,13) - ST 2,92(13) - MVC 96(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@FINDEN) - BALR 14,15 - LR 9,15 ==> found - LTR 15,15 ==> found - BNE @@L16 - ST 4,88(13) ==> name - LA 2,104(,13) - ST 2,92(13) - MVC 96(4,13),=F'1' - LA 1,88(,13) - L 15,=V(@@FINDEN) - BALR 14,15 - LR 9,15 ==> found -@@L16 EQU * - LTR 9,9 ==> found - BE @@L17 - L 2,8(11) ==> rewrite - LTR 2,2 ==> rewrite - BE @@L15 -@@L17 EQU * - CLI 0(6),64 ==> value - BNE @@L31 -@@L21 EQU * - A 6,=F'1' ==> value - CLI 0(6),64 ==> value - BE @@L21 -@@L31 EQU * - ST 6,88(13) ==> value - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - ST 15,112(13) ==> l_value - LR 2,15 ==> length - AR 2,5 ==> length,l_name - A 2,=F'12' ==> length - MVC 88(4,13),=F'1' - ST 2,92(13) ==> length - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 7,15 ==> envvar - LTR 15,15 ==> envvar - BNE @@L22 -@@L32 EQU * - MVC 108(4,13),=F'1' ==> err - B @@L15 -@@L22 EQU * - LR 3,15 ==> envvar - A 3,=F'8' - ST 3,0(15) ==> .name - LR 2,15 ==> envvar - AR 2,5 ==> l_name - A 2,=F'9' - ST 2,4(15) ==> .value - ST 3,88(13) - ST 4,92(13) ==> name - ST 5,96(13) ==> l_name - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - MVC 88(4,13),4(7) ==> .value - ST 6,92(13) ==> value - MVC 96(4,13),112(13) ==> l_value - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - L 2,104(13) - LTR 2,2 - BL @@L23 - LTR 9,9 ==> found - BE @@L24 - L 3,32(8) ==> .grtenv - MH 2,=H'4' - L 3,0(2,3) - ST 3,88(13) - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L24 EQU * - L 3,32(8) ==> .grtenv - L 2,104(13) - SLL 2,2 - ST 7,0(2,3) ==> envvar - B @@L15 -@@L23 EQU * - LR 2,8 ==> grt - A 2,=F'32' - ST 2,88(13) - ST 7,92(13) ==> envvar - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - ST 15,108(13) ==> err - LTR 15,15 - BE @@L15 - ST 7,88(13) ==> envvar - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L15 EQU * - LR 2,8 ==> grt - A 2,=F'32' - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - L 15,108(13) ==> err -* Function 'setenv' epilogue - PDPEPIL -* Function 'setenv' literal pool - DS 0D - LTORG -* Function 'setenv' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/setenvi.c b/src/crent370/clib/setenvi.c deleted file mode 100644 index 62ca087..0000000 --- a/src/crent370/clib/setenvi.c +++ /dev/null @@ -1,16 +0,0 @@ -/* SETENVI.C */ -#include -#include -#include -#include -#include "clibenv.h" - -int -setenvi(const char *name, int value, int rewrite) -{ - char buf[40]; - - sprintf(buf, "%d", value); - - return setenv(name, buf, rewrite); -} diff --git a/src/crent370/clib/setenvi.o b/src/crent370/clib/setenvi.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/setenvi.s b/src/crent370/clib/setenvi.s deleted file mode 100644 index d86e8b9..0000000 --- a/src/crent370/clib/setenvi.s +++ /dev/null @@ -1,62 +0,0 @@ - TITLE '/home/projects/crent370/clib/setenvi.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'setenvi' prologue -* frame base=88, local stack=40, call args=16 -&FUNC SETC 'setenvi' -SETENVI PDPPRLG CINDEX=0,FRAME=144,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'setenvi' code - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC0) - MVC 96(4,13),4(11) ==> value - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - MVC 88(4,13),0(11) ==> name - ST 2,92(13) - MVC 96(4,13),8(11) ==> rewrite - LA 1,88(,13) - L 15,=V(SETENV) - BALR 14,15 -* Function 'setenvi' epilogue - PDPEPIL -* Function 'setenvi' literal pool - DS 0D - LTORG -* Function 'setenvi' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%d' - DC X'0' - END diff --git a/src/crent370/clib/setlocal.c b/src/crent370/clib/setlocal.c deleted file mode 100644 index b322830..0000000 --- a/src/crent370/clib/setlocal.c +++ /dev/null @@ -1,60 +0,0 @@ -/*********************************************************************/ -/* */ -/* This Program Written by Paul Edwards. */ -/* Released to the Public Domain */ -/* */ -/*********************************************************************/ -/*********************************************************************/ -/* */ -/* locale.c - implementation of stuff in locale.h */ -/* */ -/*********************************************************************/ - -#include "locale.h" -#include "limits.h" -#include "string.h" -#include "stddef.h" - -static struct lconv thislocale = { - ".", - "", - "", - "", - "", - "", - "", - "", - "", - "", - CHAR_MAX, - CHAR_MAX, - CHAR_MAX, - CHAR_MAX, - CHAR_MAX, - CHAR_MAX, - CHAR_MAX, - CHAR_MAX -}; - -__PDPCLIB_API__ char *setlocale(int category, const char *locale) -{ - (void)category; - if (locale == NULL) - { - return ("C"); - } - else if ((strcmp(locale, "C") == 0) - || (strcmp(locale, "") == 0)) - { - return ("C"); - } - else - { - return (NULL); - } -} - -__PDPCLIB_API__ struct lconv *localeconv(void) -{ - return (&thislocale); -} diff --git a/src/crent370/clib/setlocal.o b/src/crent370/clib/setlocal.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/setlocal.s b/src/crent370/clib/setlocal.s deleted file mode 100644 index 352669c..0000000 --- a/src/crent370/clib/setlocal.s +++ /dev/null @@ -1,124 +0,0 @@ - TITLE '/home/projects/crent370/clib/setlocal.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@LC0 EQU * - DC C'.' - DC X'0' -@@LC1 EQU * - DC X'0' -* Program data area - DS 0F -@@2 EQU * - DC A(@@LC0) - DC A(@@LC1) - DC A(@@LC1) - DC A(@@LC1) - DC A(@@LC1) - DC A(@@LC1) - DC A(@@LC1) - DC A(@@LC1) - DC A(@@LC1) - DC A(@@LC1) - DC X'FF' - DC X'FF' - DC X'FF' - DC X'FF' - DC X'FF' - DC X'FF' - DC X'FF' - DC X'FF' -* Program text area - DS 0F - EJECT -* external function 'setlocale' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'setlocale' -SETLOCAL PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'setlocale' code - L 3,4(11) ==> locale - L 2,=A(@@LC2) - LTR 3,3 ==> locale - BE @@L1 - ST 3,88(13) ==> locale - MVC 92(4,13),=A(@@LC2) - LA 1,88(,13) - L 15,=V(STRCMP) - BALR 14,15 - LTR 15,15 - BE @@L5 - ST 3,88(13) ==> locale - MVC 92(4,13),=A(@@LC1) - LA 1,88(,13) - L 15,=V(STRCMP) - BALR 14,15 - SLR 2,2 - LTR 15,15 - BNE @@L1 -@@L5 EQU * - L 2,=A(@@LC2) -@@L1 EQU * - LR 15,2 -* Function 'setlocale' epilogue - PDPEPIL -* Function 'setlocale' literal pool - DS 0D - LTORG -* Function 'setlocale' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC2 EQU * - DC C'C' - DC X'0' - DS 0F - EJECT -* external function 'localeconv' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'localeconv' -LOCALECO PDPPRLG CINDEX=1,FRAME=88,BASER=12,ENTRY=YES - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'localeconv' code - L 15,=A(@@2) -* Function 'localeconv' epilogue - PDPEPIL -* Function 'localeconv' literal pool - DS 0D - LTORG -* Function 'localeconv' page table -@@PGT1 DS 0F - DC A(@@PG1) - END diff --git a/src/crent370/clib/setvbuf.c b/src/crent370/clib/setvbuf.c deleted file mode 100644 index bed16ab..0000000 --- a/src/crent370/clib/setvbuf.c +++ /dev/null @@ -1,9 +0,0 @@ -/* SETVBUF.C */ -#include - -int -setvbuf(FILE *stream, char *buf, int mode, size_t size) -{ - /* don't allow mucking around with buffers on MVS or CMS */ - return (0); -} diff --git a/src/crent370/clib/setvbuf.o b/src/crent370/clib/setvbuf.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/setvbuf.s b/src/crent370/clib/setvbuf.s deleted file mode 100644 index a79b955..0000000 --- a/src/crent370/clib/setvbuf.s +++ /dev/null @@ -1,47 +0,0 @@ - TITLE '/home/projects/crent370/clib/setvbuf.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'setvbuf' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'setvbuf' -SETVBUF PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'setvbuf' code - SLR 15,15 -* Function 'setvbuf' epilogue - PDPEPIL -* Function 'setvbuf' literal pool - DS 0D - LTORG -* Function 'setvbuf' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/signal.c b/src/crent370/clib/signal.c deleted file mode 100644 index 6dc9cd5..0000000 --- a/src/crent370/clib/signal.c +++ /dev/null @@ -1,25 +0,0 @@ -/*********************************************************************/ -/* */ -/* This Program Written by Paul Edwards. */ -/* Released to the Public Domain */ -/* */ -/*********************************************************************/ -/*********************************************************************/ -/* */ -/* signal.c - implementation of stuff in signal.h */ -/* */ -/*********************************************************************/ - -#include "signal.h" -#include "stdlib.h" -#include "stddef.h" - -void (*signal(int sig, void (*func)(int)))(int) -{ - if (sig >= SIGABRT && sig <= SIGTERM) { - __SIGHDL *sighdl = __sighdl(); - sighdl[sig] = func; - } - - return (func); -} diff --git a/src/crent370/clib/signal.o b/src/crent370/clib/signal.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/signal.s b/src/crent370/clib/signal.s deleted file mode 100644 index ddf3bf0..0000000 --- a/src/crent370/clib/signal.s +++ /dev/null @@ -1,61 +0,0 @@ - TITLE '/home/projects/crent370/clib/signal.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'signal' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'signal' -SIGNAL PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'signal' code - L 3,0(11) ==> sig - L 4,4(11) ==> func - LR 2,3 ==> sig - BCTR 2,0 - LA 5,5(0,0) - CLR 2,5 - BH @@L2 - LA 1,88(,13) - L 15,=V(@@SIGHDL) - BALR 14,15 - LR 2,3 ==> sig - MH 2,=H'4' - ST 4,0(2,15) ==> func -@@L2 EQU * - LR 15,4 ==> func -* Function 'signal' epilogue - PDPEPIL -* Function 'signal' literal pool - DS 0D - LTORG -* Function 'signal' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/sin.c b/src/crent370/clib/sin.c deleted file mode 100644 index 87c08e4..0000000 --- a/src/crent370/clib/sin.c +++ /dev/null @@ -1,73 +0,0 @@ -/* SIN.C */ -#if 1 -#include "math.h" -#include "float.h" -#include "errno.h" -#include "stddef.h" - -#if 0 -/* - - Some constants to make life easier elsewhere - (These should I guess be in math.h) - -*/ -static const double pi = 3.1415926535897932384626433832795; -static const double ln10 = 2.3025850929940456840179914546844; -static const double ln2 = 0.69314718055994530941723212145818 ; -#else -#define pi (3.1415926535897932384626433832795) -#define ln10 (2.3025850929940456840179914546844) -#define ln2 (0.69314718055994530941723212145818) -#endif - -#else -#include -#endif - -#ifdef sin -#undef sin -#endif -__PDPCLIB_API__ double sin(double x) -{ -/* - - Calculate SIN using Taylor series. - - sin(x) = x - x**3 + x**5 - x**7 + x**9 - ==== ==== ==== ==== - 3! 5! 7! 9! - - Note whilst this is accurate it can be slow for large values - of "X" so we scale - -*/ - - int i; - double term,answer,work,x1; - -/* - scale so series converges pretty quickly -*/ - i = x/(2.0*pi); - x1 = x - (i * (2.0 * pi)); - -/* - set up initial term -*/ - i=1; - term=answer=x1; -/* - loop until no more changes -*/ - while (1) - { - work = i+1; - term = -(term * x1 * x1)/(work * (work + 1.0)); - if ( answer == (answer + term) )break; - answer = answer + term; - i = i+2; - } - - return(answer); -} diff --git a/src/crent370/clib/sin.o b/src/crent370/clib/sin.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/sin.s b/src/crent370/clib/sin.s deleted file mode 100644 index 2bf95f3..0000000 --- a/src/crent370/clib/sin.s +++ /dev/null @@ -1,91 +0,0 @@ - TITLE '/home/projects/crent370/clib/sin.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'sin' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'sin' -SIN PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'sin' code - LD 4,0(11) ==> x - LDR 2,4 ==> x - DD 2,=D'6.283185307179586232E0' - LDR 0,2 - AD 0,=XL8'4F08000000000000' - STD 0,80(,13) - L 15,84(,13) ==> i - MVC 80(4,13),=XL8'4E00000080000000' - ST 15,84(,13) ==> i - XI 84(13),128 - LD 0,80(,13) - SD 0,=XL8'4E00000080000000' - MD 0,=D'6.283185307179586232E0' - SDR 4,0 ==> x - STD 4,80(,13) ==> x - LM 4,5,80(13) ==> x1 - LA 15,1(0,0) ==> i - LDR 6,4 ==> answer,x1 - LDR 0,4 ==> term,answer -@@L7 EQU * - LR 2,15 ==> i - A 2,=F'1' - MVC 80(4,13),=XL8'4E00000080000000' - ST 2,84(,13) - XI 84(13),128 - LD 4,80(,13) ==> work - SD 4,=XL8'4E00000080000000' ==> work - STM 4,5,80(13) ==> x1 - LD 2,80(,13) - MDR 0,2 - MDR 0,2 - LCDR 0,0 - LDR 2,4 ==> work - AD 2,=D'1.0E0' - MDR 4,2 - DDR 0,4 ==> term - LDR 2,6 ==> answer - ADR 2,0 ==> answer,term - CDR 6,2 ==> answer - BE @@L3 - LDR 6,2 ==> answer - A 15,=F'2' ==> i - B @@L7 -@@L3 EQU * - LDR 0,6 ==> answer -* Function 'sin' epilogue - PDPEPIL -* Function 'sin' literal pool - DS 0D - LTORG -* Function 'sin' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/sinh.c b/src/crent370/clib/sinh.c deleted file mode 100644 index 5a5ec2d..0000000 --- a/src/crent370/clib/sinh.c +++ /dev/null @@ -1,44 +0,0 @@ -/* SINH.C */ -#if 1 -#include "math.h" -#include "float.h" -#include "errno.h" -#include "stddef.h" - -#if 0 -/* - - Some constants to make life easier elsewhere - (These should I guess be in math.h) - -*/ -static const double pi = 3.1415926535897932384626433832795; -static const double ln10 = 2.3025850929940456840179914546844; -static const double ln2 = 0.69314718055994530941723212145818 ; -#else -#define pi (3.1415926535897932384626433832795) -#define ln10 (2.3025850929940456840179914546844) -#define ln2 (0.69314718055994530941723212145818) -#endif - -#else -#include -#endif - -/* - - Hyperbolic functions - - SINH(X) = (E**X-E**(-1))/2 - COSH(X) = (E**X+E**(-1))/2 - -*/ - -__PDPCLIB_API__ double sinh(double x) -{ - double dexpx; - - dexpx = exp(x); - - return( 0.5 * (dexpx - (1.0/dexpx) ) ); -} diff --git a/src/crent370/clib/sinh.o b/src/crent370/clib/sinh.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/sinh.s b/src/crent370/clib/sinh.s deleted file mode 100644 index cffcc45..0000000 --- a/src/crent370/clib/sinh.s +++ /dev/null @@ -1,54 +0,0 @@ - TITLE '/home/projects/crent370/clib/sinh.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'sinh' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'sinh' -SINH PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'sinh' code - MVC 88(8,13),0(11) ==> x - LA 1,88(,13) - L 15,=V(EXP) - BALR 14,15 - LD 2,=D'1.0E0' - DDR 2,0 ==> dexpx - SDR 0,2 ==> dexpx - MD 0,=D'5.0E-1' ==> dexpx -* Function 'sinh' epilogue - PDPEPIL -* Function 'sinh' literal pool - DS 0D - LTORG -* Function 'sinh' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/sleep.c b/src/crent370/clib/sleep.c deleted file mode 100644 index 03d08c2..0000000 --- a/src/crent370/clib/sleep.c +++ /dev/null @@ -1,31 +0,0 @@ -#include - -int -sleep(unsigned seconds) -{ -#if 0 - /* 1 BINTVL == .01 seconds */ - int t = seconds * 100; /* convert to hundreths of a second */ -#else - unsigned timeout_ecb = 0; -#endif -#if 0 - unsigned *psa = 0; /* low core == PSA */ - unsigned *tcb = (unsigned*)psa[0x21c/4]; /* TCB == PSATOLD */ - - wtof("%s(%u) TCB(%06X) SLEEPING", __func__, seconds, tcb); -#endif - - if (seconds > 0) { -#if 0 - __asm__("STIMER WAIT,BINTVL=(%0)" - : : "r"(&t): "0", "1", "14", "15"); -#else - ecb_timed_wait(&timeout_ecb, seconds * 100, 0); -#endif - } -#if 0 - wtof("%s(%u) TCB(%06X) AWAKE", __func__, seconds, tcb); -#endif - return 0; -} diff --git a/src/crent370/clib/sleep.o b/src/crent370/clib/sleep.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/sleep.s b/src/crent370/clib/sleep.s deleted file mode 100644 index 681d46a..0000000 --- a/src/crent370/clib/sleep.s +++ /dev/null @@ -1,61 +0,0 @@ - TITLE '/home/projects/crent370/clib/sleep.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'sleep' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'sleep' -SLEEP PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'sleep' code - L 15,0(11) ==> seconds - MVC 104(4,13),=F'0' - LTR 15,15 ==> seconds - BE @@L2 - LA 2,104(,13) - ST 2,88(13) - LR 2,15 ==> seconds - MH 2,=H'100' - ST 2,92(13) - MVC 96(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@ECBTW) - BALR 14,15 -@@L2 EQU * - SLR 15,15 -* Function 'sleep' epilogue - PDPEPIL -* Function 'sleep' literal pool - DS 0D - LTORG -* Function 'sleep' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/snprintf.c b/src/crent370/clib/snprintf.c deleted file mode 100644 index 4e83282..0000000 --- a/src/crent370/clib/snprintf.c +++ /dev/null @@ -1,16 +0,0 @@ -/* SNPRINTF.C */ -#include "stdarg.h" -#include "stddef.h" - -int -snprintf(char *s, int n, const char *format, ...) -{ - va_list arg; - int ret; - - va_start(arg, format); - ret = vsnprintf(s, n, format, arg); - va_end(arg); - - return (ret); -} diff --git a/src/crent370/clib/snprintf.o b/src/crent370/clib/snprintf.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/snprintf.s b/src/crent370/clib/snprintf.s deleted file mode 100644 index 0c03fff..0000000 --- a/src/crent370/clib/snprintf.s +++ /dev/null @@ -1,54 +0,0 @@ - TITLE '/home/projects/crent370/clib/snprintf.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'snprintf' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'snprintf' -SNPRINTF PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'snprintf' code - MVC 88(4,13),0(11) ==> s - MVC 92(4,13),4(11) ==> n - MVC 96(4,13),8(11) - LA 2,12(,11) ==> arg - ST 2,100(13) ==> arg - LA 1,88(,13) - L 15,=V(VSNPRINT) - BALR 14,15 -* Function 'snprintf' epilogue - PDPEPIL -* Function 'snprintf' literal pool - DS 0D - LTORG -* Function 'snprintf' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/snprtf@.c b/src/crent370/clib/snprtf@.c deleted file mode 100644 index 40cf4d4..0000000 --- a/src/crent370/clib/snprtf@.c +++ /dev/null @@ -1,16 +0,0 @@ -#define PRINTF_PRIVATE -#include - -__asm__("\n&FUNC SETC 'snprintf_'"); -int snprintf_(char* buffer, size_t count, const char* format, ...) -{ - va_list va; - int ret; - - va_start(va, format); - ret = _vsnprintf(_out_buffer, buffer, count, format, va); - va_end(va); - - return ret; -} - diff --git a/src/crent370/clib/snprtf@.o b/src/crent370/clib/snprtf@.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/snprtf@.s b/src/crent370/clib/snprtf@.s deleted file mode 100644 index 3322e1d..0000000 --- a/src/crent370/clib/snprtf@.s +++ /dev/null @@ -1,60 +0,0 @@ - TITLE '/home/projects/crent370/clib/snprtf@.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'snprintf_' -* Program text area - DS 0F - EJECT -* external function 'snprintf_' prologue -* frame base=88, local stack=0, call args=24 -&FUNC SETC 'snprintf_' -SNPRTF@ PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'snprintf_' code - L 2,=V(@@PRTFX) - L 3,0(2) ==> __prtfx - MVC 88(4,13),0(3) ==> ._out_buffer - MVC 92(4,13),0(11) ==> buffer - MVC 96(4,13),4(11) ==> count - MVC 100(4,13),8(11) - LA 2,12(,11) ==> va - ST 2,104(13) ==> va - L 2,44(3) ==> ._vsnprintf - LA 1,88(,13) - LA 15,0(2) - BALR 14,15 -* Function 'snprintf_' epilogue - PDPEPIL -* Function 'snprintf_' literal pool - DS 0D - LTORG -* Function 'snprintf_' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/sprintf.c b/src/crent370/clib/sprintf.c deleted file mode 100644 index 398e84a..0000000 --- a/src/crent370/clib/sprintf.c +++ /dev/null @@ -1,14 +0,0 @@ -/* SPRINTF.C */ -#include - -int -sprintf(char *s, const char *format, ...) -{ - va_list arg; - int ret; - - va_start(arg, format); - ret = vsprintf(s, format, arg); - va_end(arg); - return (ret); -} diff --git a/src/crent370/clib/sprintf.o b/src/crent370/clib/sprintf.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/sprintf.s b/src/crent370/clib/sprintf.s deleted file mode 100644 index 5bc2bd6..0000000 --- a/src/crent370/clib/sprintf.s +++ /dev/null @@ -1,53 +0,0 @@ - TITLE '/home/projects/crent370/clib/sprintf.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'sprintf' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'sprintf' -SPRINTF PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'sprintf' code - MVC 88(4,13),0(11) ==> s - MVC 92(4,13),4(11) - LA 2,8(,11) ==> arg - ST 2,96(13) ==> arg - LA 1,88(,13) - L 15,=V(VSPRINTF) - BALR 14,15 -* Function 'sprintf' epilogue - PDPEPIL -* Function 'sprintf' literal pool - DS 0D - LTORG -* Function 'sprintf' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/sprintf@.c b/src/crent370/clib/sprintf@.c deleted file mode 100644 index 002e4f0..0000000 --- a/src/crent370/clib/sprintf@.c +++ /dev/null @@ -1,15 +0,0 @@ -#define PRINTF_PRIVATE -#include - -__asm__("\n&FUNC SETC 'sprintf_'"); -int sprintf_(char* buffer, const char* format, ...) -{ - va_list va; - int ret; - - va_start(va, format); - ret = _vsnprintf(_out_buffer, buffer, (size_t)-1, format, va); - va_end(va); - - return ret; -} diff --git a/src/crent370/clib/sprintf@.o b/src/crent370/clib/sprintf@.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/sprintf@.s b/src/crent370/clib/sprintf@.s deleted file mode 100644 index c8aa864..0000000 --- a/src/crent370/clib/sprintf@.s +++ /dev/null @@ -1,60 +0,0 @@ - TITLE '/home/projects/crent370/clib/sprintf@.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'sprintf_' -* Program text area - DS 0F - EJECT -* external function 'sprintf_' prologue -* frame base=88, local stack=0, call args=24 -&FUNC SETC 'sprintf_' -SPRINTF@ PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'sprintf_' code - L 2,=V(@@PRTFX) - L 3,0(2) ==> __prtfx - MVC 88(4,13),0(3) ==> ._out_buffer - MVC 92(4,13),0(11) ==> buffer - MVC 96(4,13),=F'-1' - MVC 100(4,13),4(11) - LA 2,8(,11) ==> va - ST 2,104(13) ==> va - L 2,44(3) ==> ._vsnprintf - LA 1,88(,13) - LA 15,0(2) - BALR 14,15 -* Function 'sprintf_' epilogue - PDPEPIL -* Function 'sprintf_' literal pool - DS 0D - LTORG -* Function 'sprintf_' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/sqrt.c b/src/crent370/clib/sqrt.c deleted file mode 100644 index 4f37cbf..0000000 --- a/src/crent370/clib/sqrt.c +++ /dev/null @@ -1,85 +0,0 @@ -/* SQRT.C */ -#if 1 -#include "math.h" -#include "float.h" -#include "errno.h" -#include "stddef.h" - -#if 0 -/* - - Some constants to make life easier elsewhere - (These should I guess be in math.h) - -*/ -static const double pi = 3.1415926535897932384626433832795; -static const double ln10 = 2.3025850929940456840179914546844; -static const double ln2 = 0.69314718055994530941723212145818 ; -#else -#define pi (3.1415926535897932384626433832795) -#define ln10 (2.3025850929940456840179914546844) -#define ln2 (0.69314718055994530941723212145818) -#endif - -#else -#include -#endif - -#ifdef sqrt -#undef sqrt -#endif -/* - - pretty tivial code here. - - 1) Scale x such that 1 <= x <= 4.0 - - 2) Use newton Raphson to calculate root. - - 4) multiply back up. - - Because we only scale by "4" this is pretty slow.... - -*/ - -__PDPCLIB_API__ double sqrt(double x) -{ - double xs,yn,ynn; - double pow1; - int i; - - if (x < 0.0) - { - errno=EDOM; - return(0.0); - } - if (x == 0.0) return (0.0); - -/* - - Scale argument 1 <= x <= 4 - -*/ - - xs=x; - pow1=1; - - while(xs<1.0){xs=xs*4.0;pow1=pow1/2.0;} - while(xs>=4.0){xs=xs/4.0;pow1=pow1*2.0;} - -/* - calculate using Newton raphson - use x0 = x/2.0 -*/ - - i=0; - yn = xs/2.0; - ynn = 0; - while(1) - { - ynn = (yn + xs/yn)*0.5; - if ( fabs(ynn-yn) <= 10.0 * DBL_MIN ) break; else yn=ynn; - if ( i > 10 ) break; else i++ ; - } - return (ynn*pow1); -} diff --git a/src/crent370/clib/sqrt.o b/src/crent370/clib/sqrt.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/sqrt.s b/src/crent370/clib/sqrt.s deleted file mode 100644 index 26b90b4..0000000 --- a/src/crent370/clib/sqrt.s +++ /dev/null @@ -1,136 +0,0 @@ - TITLE '/home/projects/crent370/clib/sqrt.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'sqrt' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'sqrt' -SQRT PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'sqrt' code - LD 0,0(11) ==> x - LTDR 0,0 ==> x - BNL @@L2 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - MVC 0(4,15),=F'33' - LD 2,=D'0.0E0' - B @@L1 -@@L2 EQU * - LD 2,=D'0.0E0' - LTDR 0,0 ==> x - BE @@L1 - STD 0,80(,13) ==> x - LM 6,7,80(13) ==> xs - LM 8,9,=D'1.0E0' ==> pow1 - CD 0,=D'1.0E0' ==> x - BNL @@L24 -@@L9 EQU * - STM 6,7,80(13) ==> xs - LD 0,80(,13) - MD 0,=D'4.0E0' - STD 0,80(,13) - LM 6,7,80(13) ==> xs - STM 8,9,80(13) ==> pow1 - LD 2,80(,13) - MD 2,=D'5.0E-1' - STD 2,80(,13) - LM 8,9,80(13) ==> pow1 - CD 0,=D'1.0E0' - BL @@L9 -@@L24 EQU * - STM 6,7,80(13) ==> xs - LD 0,80(,13) - CD 0,=D'4.0E0' - BL @@L26 -@@L13 EQU * - STM 6,7,80(13) ==> xs - LD 2,80(,13) - MD 2,=D'2.5E-1' - STD 2,80(,13) - LM 6,7,80(13) ==> xs - STM 8,9,80(13) ==> pow1 - LD 0,80(,13) - ADR 0,0 - STD 0,80(,13) - LM 8,9,80(13) ==> pow1 - STM 6,7,80(13) ==> xs - LD 0,80(,13) - CD 0,=D'4.0E0' - BNL @@L13 -@@L26 EQU * - SLR 3,3 ==> i - STM 6,7,80(13) ==> xs - LD 2,80(,13) ==> yn - MD 2,=D'5.0E-1' ==> yn -@@L22 EQU * - STM 6,7,80(13) ==> xs - LD 0,80(,13) - DDR 0,2 ==> yn - ADR 0,2 ==> yn - MD 0,=D'5.0E-1' - STD 0,80(,13) - LM 4,5,80(13) ==> ynn - SDR 0,2 ==> yn - STD 0,88(13) - LA 1,88(,13) - L 15,=V(FABS) - BALR 14,15 - L 2,=V(@DBLMIN) - SDR 2,2 - LE 2,0(2) ==> ._Fval - MD 2,=D'1.0E1' - CDR 0,2 - BNH @@L15 - STM 4,5,80(13) ==> ynn - LD 2,80(,13) ==> yn - LA 2,10(0,0) - CR 3,2 ==> i - BH @@L15 - A 3,=F'1' ==> i - B @@L22 -@@L15 EQU * - STM 4,5,80(13) ==> ynn - LD 2,80(,13) - STM 8,9,80(13) ==> pow1 - LD 0,80(,13) - MDR 2,0 -@@L1 EQU * - LDR 0,2 -* Function 'sqrt' epilogue - PDPEPIL -* Function 'sqrt' literal pool - DS 0D - LTORG -* Function 'sqrt' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/srand.c b/src/crent370/clib/srand.c deleted file mode 100644 index 9926363..0000000 --- a/src/crent370/clib/srand.c +++ /dev/null @@ -1,15 +0,0 @@ -/* SRAND.C */ -#define STDLIB_C -#include -#include -#include "clibcrt.h" - -__PDPCLIB_API__ void srand(unsigned int seed) -{ - CLIBCRT *crt = __crtget(); - - if (crt) { - crt->crtseed = seed; - } - return; -} diff --git a/src/crent370/clib/srand.o b/src/crent370/clib/srand.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/srand.s b/src/crent370/clib/srand.s deleted file mode 100644 index 6ceed78..0000000 --- a/src/crent370/clib/srand.s +++ /dev/null @@ -1,53 +0,0 @@ - TITLE '/home/projects/crent370/clib/srand.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'srand' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'srand' -SRAND PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'srand' code - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - LTR 15,15 ==> crt - BE @@L1 - MVC 20(4,15),0(11) ==> .crtseed,seed -@@L1 EQU * -* Function 'srand' epilogue - PDPEPIL -* Function 'srand' literal pool - DS 0D - LTORG -* Function 'srand' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/sscanf.c b/src/crent370/clib/sscanf.c deleted file mode 100644 index 4035b19..0000000 --- a/src/crent370/clib/sscanf.c +++ /dev/null @@ -1,15 +0,0 @@ -/* SSCANF.C */ -#include -#include - -int -sscanf(const char *s, const char *format, ...) -{ - va_list arg; - int ret; - - va_start(arg, format); - ret = vvscanf(format, arg, NULL, s); - va_end(arg); - return (ret); -} diff --git a/src/crent370/clib/sscanf.o b/src/crent370/clib/sscanf.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/sscanf.s b/src/crent370/clib/sscanf.s deleted file mode 100644 index e558aa9..0000000 --- a/src/crent370/clib/sscanf.s +++ /dev/null @@ -1,54 +0,0 @@ - TITLE '/home/projects/crent370/clib/sscanf.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'sscanf' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'sscanf' -SSCANF PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'sscanf' code - MVC 88(4,13),4(11) - LA 2,8(,11) ==> arg - ST 2,92(13) ==> arg - MVC 96(4,13),=F'0' - MVC 100(4,13),0(11) ==> s - LA 1,88(,13) - L 15,=V(VVSCANF) - BALR 14,15 -* Function 'sscanf' epilogue - PDPEPIL -* Function 'sscanf' literal pool - DS 0D - LTORG -* Function 'sscanf' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/stdio.c b/src/crent370/clib/stdio.c deleted file mode 100644 index d4afcb6..0000000 --- a/src/crent370/clib/stdio.c +++ /dev/null @@ -1,55 +0,0 @@ -#define LIB_STDIO -#define STDIO_C -#include "stdio.h" - -#undef getchar -#undef putchar -#undef getc -#undef putc - -static STDIO lib = { - __gtin, - __gtout, - __gterr, - printf, - fopen, - fclose, - fread, - fwrite, - fputc, - fputs, - fprintf, - vfprintf, - remove, - rename, - sprintf, - vsprintf, - fgets, - ungetc, - fgetc, - fseek, - ftell, - fsetpos, - fgetpos, - rewind, - clearerr, - perror, - setvbuf, - setbuf, - freopen, - fflush, - tmpnam, - tmpfile, - fscanf, - scanf, - sscanf, - gets, - puts, - getchar, - putchar, - getc, - putc, - vsnprintf, -}; - -STDIO *stdio = &lib; diff --git a/src/crent370/clib/stdlib.c b/src/crent370/clib/stdlib.c deleted file mode 100644 index 3a518a5..0000000 --- a/src/crent370/clib/stdlib.c +++ /dev/null @@ -1,25 +0,0 @@ -#define LIB_STDLIB -#define STDLIB_C -#include "stdlib.h" - -static STDLIB lib = { - malloc, - calloc, - realloc, - free, - abort, - exit, - qsort, - srand, - rand, - atof, - strtod, - atoi, - atol, - strtol, - strtoul, - getenv, - bsearch, -}; - -STDLIB *stdlib = &lib; diff --git a/src/crent370/clib/strcat.c b/src/crent370/clib/strcat.c deleted file mode 100644 index f430763..0000000 --- a/src/crent370/clib/strcat.c +++ /dev/null @@ -1,21 +0,0 @@ -/* STRCAT.C */ -#include -#include -#include - -#ifdef strcat -#undef strcat -#endif -__PDPCLIB_API__ char *strcat(char *s1, const char *s2) -{ - char *p = s1; - - while (*p != '\0') p++; - - while ((*p = *s2) != '\0') { - p++; - s2++; - } - - return (s1); -} diff --git a/src/crent370/clib/strcat.o b/src/crent370/clib/strcat.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/strcat.s b/src/crent370/clib/strcat.s deleted file mode 100644 index 6f04c34..0000000 --- a/src/crent370/clib/strcat.s +++ /dev/null @@ -1,70 +0,0 @@ - TITLE '/home/projects/crent370/clib/strcat.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'strcat' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'strcat' -STRCAT PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'strcat' code - L 15,0(11) ==> s1 - L 4,4(11) ==> s2 - LR 3,15 ==> p,s1 - IC 2,0(15) ==> s1 - CLM 2,1,=XL1'00' - BE @@L11 -@@L5 EQU * - A 3,=F'1' ==> p - IC 2,0(3) ==> p - CLM 2,1,=XL1'00' - BNE @@L5 -@@L11 EQU * - IC 2,0(4) ==> s2 - STC 2,0(3) ==> p - CLM 2,1,=XL1'00' - BE @@L13 -@@L9 EQU * - A 3,=F'1' ==> p - A 4,=F'1' ==> s2 - IC 2,0(4) ==> s2 - STC 2,0(3) ==> p - CLM 2,1,=XL1'00' - BNE @@L9 -@@L13 EQU * -* Function 'strcat' epilogue - PDPEPIL -* Function 'strcat' literal pool - DS 0D - LTORG -* Function 'strcat' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/strchr.c b/src/crent370/clib/strchr.c deleted file mode 100644 index 07c2186..0000000 --- a/src/crent370/clib/strchr.c +++ /dev/null @@ -1,18 +0,0 @@ -/* STRCHR.C */ -#include -#include -#include - -#ifdef strchr -#undef strchr -#endif -__PDPCLIB_API__ char *strchr(const char *s, int c) -{ - while (*s != '\0') { - if (*s == (char)c) return ((char *)s); - s++; - } - - if (c == '\0') return ((char *)s); - return (NULL); -} diff --git a/src/crent370/clib/strchr.o b/src/crent370/clib/strchr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/strchr.s b/src/crent370/clib/strchr.s deleted file mode 100644 index 466c745..0000000 --- a/src/crent370/clib/strchr.s +++ /dev/null @@ -1,63 +0,0 @@ - TITLE '/home/projects/crent370/clib/strchr.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'strchr' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'strchr' -STRCHR PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'strchr' code - L 15,0(11) ==> s - L 3,4(11) ==> c - IC 2,0(15) ==> s - CLM 2,1,=XL1'00' - BE @@L9 -@@L6 EQU * - CLM 3,1,0(15) ==> c,s - BE @@L1 - A 15,=F'1' ==> s - IC 2,0(15) ==> s - CLM 2,1,=XL1'00' - BNE @@L6 -@@L9 EQU * - LTR 3,3 ==> c - BE @@L1 - SLR 15,15 ==> s -@@L1 EQU * -* Function 'strchr' epilogue - PDPEPIL -* Function 'strchr' literal pool - DS 0D - LTORG -* Function 'strchr' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/strcmp.c b/src/crent370/clib/strcmp.c deleted file mode 100644 index 4af80ff..0000000 --- a/src/crent370/clib/strcmp.c +++ /dev/null @@ -1,25 +0,0 @@ -/* STRCMP.C */ -#include -#include -#include - -#ifdef strcmp -#undef strcmp -#endif -__PDPCLIB_API__ int strcmp(const char *s1, const char *s2) -{ - const unsigned char *p1; - const unsigned char *p2; - - p1 = (const unsigned char *)s1; - p2 = (const unsigned char *)s2; - while (*p1 != '\0') { - if (*p1 < *p2) return (-1); - else if (*p1 > *p2) return (1); - p1++; - p2++; - } - - if (*p2 == '\0') return (0); - else return (-1); -} diff --git a/src/crent370/clib/strcmp.o b/src/crent370/clib/strcmp.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/strcmp.s b/src/crent370/clib/strcmp.s deleted file mode 100644 index a5c4d6b..0000000 --- a/src/crent370/clib/strcmp.s +++ /dev/null @@ -1,75 +0,0 @@ - TITLE '/home/projects/crent370/clib/strcmp.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'strcmp' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'strcmp' -STRCMP PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'strcmp' code - L 15,0(11) ==> p1,s1 - L 3,4(11) ==> p2,s2 - IC 2,0(15) ==> p1 - CLM 2,1,=XL1'00' - BE @@L12 -@@L8 EQU * - CLC 0(1,15),0(3) ==> p1,p2 - BNL @@L5 - L 15,=F'-1' - B @@L1 -@@L5 EQU * - CLC 0(1,15),0(3) ==> p1,p2 - BNH @@L6 - LA 15,1(0,0) - B @@L1 -@@L6 EQU * - A 15,=F'1' ==> p1 - A 3,=F'1' ==> p2 - IC 2,0(15) ==> p1 - CLM 2,1,=XL1'00' - BNE @@L8 -@@L12 EQU * - SLR 2,2 - IC 2,0(3) ==> p2 - LCR 2,2 - LR 15,2 - SRL 15,31 - LCR 15,15 -@@L1 EQU * -* Function 'strcmp' epilogue - PDPEPIL -* Function 'strcmp' literal pool - DS 0D - LTORG -* Function 'strcmp' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/strcoll.c b/src/crent370/clib/strcoll.c deleted file mode 100644 index 0e020a4..0000000 --- a/src/crent370/clib/strcoll.c +++ /dev/null @@ -1,12 +0,0 @@ -/* STRCOLL.C */ -#include -#include -#include - -#ifdef strcoll -#undef strcoll -#endif -__PDPCLIB_API__ int strcoll(const char *s1, const char *s2) -{ - return (strcmp(s1, s2)); -} diff --git a/src/crent370/clib/strcoll.o b/src/crent370/clib/strcoll.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/strcoll.s b/src/crent370/clib/strcoll.s deleted file mode 100644 index 8d229fc..0000000 --- a/src/crent370/clib/strcoll.s +++ /dev/null @@ -1,51 +0,0 @@ - TITLE '/home/projects/crent370/clib/strcoll.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'strcoll' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'strcoll' -STRCOLL PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'strcoll' code - MVC 88(4,13),0(11) ==> s1 - MVC 92(4,13),4(11) ==> s2 - LA 1,88(,13) - L 15,=V(STRCMP) - BALR 14,15 -* Function 'strcoll' epilogue - PDPEPIL -* Function 'strcoll' literal pool - DS 0D - LTORG -* Function 'strcoll' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/strcpy.c b/src/crent370/clib/strcpy.c deleted file mode 100644 index 498307f..0000000 --- a/src/crent370/clib/strcpy.c +++ /dev/null @@ -1,15 +0,0 @@ -/* STRCPY.C */ -#include -#include -#include - -#ifdef strcpy -#undef strcpy -#endif -__PDPCLIB_API__ char *strcpy(char *s1, const char *s2) -{ - char *p = s1; - - while ((*p++ = *s2++) != '\0') ; - return (s1); -} diff --git a/src/crent370/clib/strcpy.o b/src/crent370/clib/strcpy.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/strcpy.s b/src/crent370/clib/strcpy.s deleted file mode 100644 index 305fa85..0000000 --- a/src/crent370/clib/strcpy.s +++ /dev/null @@ -1,56 +0,0 @@ - TITLE '/home/projects/crent370/clib/strcpy.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'strcpy' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'strcpy' -STRCPY PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'strcpy' code - L 15,0(11) ==> s1 - L 4,4(11) ==> s2 - LR 3,15 ==> p,s1 -@@L2 EQU * - MVC 0(1,3),0(4) ==> p,s2 - IC 2,0(3) ==> p - A 4,=F'1' ==> s2 - A 3,=F'1' ==> p - CLM 2,1,=XL1'00' - BNE @@L2 -* Function 'strcpy' epilogue - PDPEPIL -* Function 'strcpy' literal pool - DS 0D - LTORG -* Function 'strcpy' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/strcpyp.c b/src/crent370/clib/strcpyp.c deleted file mode 100644 index 234bc56..0000000 --- a/src/crent370/clib/strcpyp.c +++ /dev/null @@ -1,23 +0,0 @@ -/* STRCPYP.C */ -#include "clibstr.h" - -char * -strcpyp(char *target, int tlen, void *source, int pad ) -{ - char *t = target; - int slen = source ? strlen(source) : 0; - - if (slen > tlen) slen = tlen; - - if (slen > 0) { - memcpy(t, source, slen); - t += slen; - tlen -= slen; - } - - if (tlen > 0) { - memset(t, pad, tlen); - } - - return target; -} diff --git a/src/crent370/clib/strcpyp.o b/src/crent370/clib/strcpyp.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/strcpyp.s b/src/crent370/clib/strcpyp.s deleted file mode 100644 index 549eb45..0000000 --- a/src/crent370/clib/strcpyp.s +++ /dev/null @@ -1,89 +0,0 @@ - TITLE '/home/projects/crent370/clib/strcpyp.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'strcpyp' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'strcpyp' -STRCPYP PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'strcpyp' code - L 6,0(11) ==> target - L 3,4(11) ==> tlen - L 5,8(11) ==> source - L 7,12(11) ==> pad - LR 4,6 ==> t,target - LTR 5,5 ==> source - BE @@L2 - ST 5,88(13) ==> source - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 2,15 ==> slen - B @@L3 -@@L2 EQU * - SLR 2,2 ==> slen -@@L3 EQU * - CR 2,3 ==> slen,tlen - BNH @@L4 - LR 2,3 ==> slen,tlen -@@L4 EQU * - LTR 2,2 ==> slen - BNH @@L5 - ST 4,88(13) ==> t - ST 5,92(13) ==> source - ST 2,96(13) ==> slen - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - AR 4,2 ==> t,slen - SR 3,2 ==> tlen,slen -@@L5 EQU * - LTR 3,3 ==> tlen - BNH @@L6 - -*** MEMSET *** - LR 14,4 => target (s) ==> t - LR 15,3 => length (n) ==> tlen - SLR 0,0 => source (NULL) - LR 1,7 fill character ==> pad - SLL 1,24 move fill to high byte - MVCL 14,0 Set target to fill character -@@L6 EQU * - LR 15,6 ==> target -* Function 'strcpyp' epilogue - PDPEPIL -* Function 'strcpyp' literal pool - DS 0D - LTORG -* Function 'strcpyp' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/strcspn.c b/src/crent370/clib/strcspn.c deleted file mode 100644 index f4da0f8..0000000 --- a/src/crent370/clib/strcspn.c +++ /dev/null @@ -1,25 +0,0 @@ -/* STRCSPN.C */ -#include -#include -#include - -#ifdef strcspn -#undef strcspn -#endif -__PDPCLIB_API__ size_t strcspn(const char *s1, const char *s2) -{ - const char *p1; - const char *p2; - - p1 = s1; - while (*p1 != '\0') { - p2 = s2; - while (*p2 != '\0') { - if (*p1 == *p2) return ((size_t)(p1 - s1)); - p2++; - } - p1++; - } - - return ((size_t)(p1 - s1)); -} diff --git a/src/crent370/clib/strcspn.o b/src/crent370/clib/strcspn.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/strcspn.s b/src/crent370/clib/strcspn.s deleted file mode 100644 index c08687e..0000000 --- a/src/crent370/clib/strcspn.s +++ /dev/null @@ -1,72 +0,0 @@ - TITLE '/home/projects/crent370/clib/strcspn.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'strcspn' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'strcspn' -STRCSPN PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'strcspn' code - L 5,0(11) ==> s1 - L 6,4(11) ==> s2 - LR 15,5 ==> p1,s1 - IC 2,0(5) ==> s1 - CLM 2,1,=XL1'00' - BE @@L12 -@@L10 EQU * - LR 3,6 ==> p2,s2 - IC 2,0(6) ==> p2 - CLM 2,1,=XL1'00' - BE @@L14 - IC 4,0(15) ==> p1 -@@L9 EQU * - CLM 4,1,0(3) ==> p2 - BE @@L12 - A 3,=F'1' ==> p2 - IC 2,0(3) ==> p2 - CLM 2,1,=XL1'00' - BNE @@L9 -@@L14 EQU * - A 15,=F'1' ==> p1 - IC 2,0(15) ==> p1 - CLM 2,1,=XL1'00' - BNE @@L10 -@@L12 EQU * - SR 15,5 ==> s1 -* Function 'strcspn' epilogue - PDPEPIL -* Function 'strcspn' literal pool - DS 0D - LTORG -* Function 'strcspn' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/strdup.c b/src/crent370/clib/strdup.c deleted file mode 100644 index 09764be..0000000 --- a/src/crent370/clib/strdup.c +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -char *strdup(const char *s) -{ - char *str = NULL; - int len; - - if (s) { - len = strlen(s); - - str = calloc(1, len+1); - if (str) memcpy(str, s, len); - } - - return str; -} diff --git a/src/crent370/clib/strdup.o b/src/crent370/clib/strdup.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/strdup.s b/src/crent370/clib/strdup.s deleted file mode 100644 index 78e3a95..0000000 --- a/src/crent370/clib/strdup.s +++ /dev/null @@ -1,73 +0,0 @@ - TITLE '/home/projects/crent370/clib/strdup.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'strdup' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'strdup' -STRDUP PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'strdup' code - L 3,0(11) ==> s - SLR 2,2 ==> str - LTR 3,3 ==> s - BE @@L2 - ST 3,88(13) ==> s - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 4,15 ==> len - MVC 88(4,13),=F'1' - LR 2,15 ==> len - A 2,=F'1' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 2,15 ==> str - LTR 15,15 ==> str - BE @@L2 - ST 15,88(13) ==> str - ST 3,92(13) ==> s - ST 4,96(13) ==> len - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 -@@L2 EQU * - LR 15,2 ==> str -* Function 'strdup' epilogue - PDPEPIL -* Function 'strdup' literal pool - DS 0D - LTORG -* Function 'strdup' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/strerror.c b/src/crent370/clib/strerror.c deleted file mode 100644 index 4fbcab1..0000000 --- a/src/crent370/clib/strerror.c +++ /dev/null @@ -1,156 +0,0 @@ -/* STRERROR.C */ -#include -#include "errno.h" - -static const char *errors[]; - -const char * -strerror(int error) -{ - const char *str = 0; - - if (error >=0 && error <=ENOTRECOVERABLE) { - str = errors[error]; - } - - return str; -} - -static const char *errors[] = { -/* 0 */ "No Error", -/* EPERM 1 */ "Operation not permitted", -/* ENOENT 2 */ "No such file or directory", -/* ESRCH 3 */ "No such process", -/* EINTR 4 */ "Interrupted system call", -/* EIO 5 */ "I/O error", -/* ENXIO 6 */ "No such device or address", -/* E2BIG 7 */ "Argument list too long", -/* ENOEXEC 8 */ "Exec format error", -/* EBADF 9 */ "Bad file number", -/* ECHILD 10 */ "No child processes", -/* EAGAIN 11 */ "Try again", -/* ENOMEM 12 */ "Out of memory", -/* EACCES 13 */ "Permission denied", -/* EFAULT 14 */ "Bad address", -/* ENOTBLK 15 */ "Block device required", -/* EBUSY 16 */ "Device or resource busy", -/* EEXIST 17 */ "File exists", -/* EXDEV 18 */ "Cross-device link", -/* ENODEV 19 */ "No such device", -/* ENOTDIR 20 */ "Not a directory", -/* EISDIR 21 */ "Is a directory", -/* EINVAL 22 */ "Invalid argument", -/* ENFILE 23 */ "File table overflow", -/* EMFILE 24 */ "Too many open files", -/* ENOTTY 25 */ "Not a typewriter", -/* ETXTBSY 26 */ "Text file busy", -/* EFBIG 27 */ "File too large", -/* ENOSPC 28 */ "No space left on device", -/* ESPIPE 29 */ "Illegal seek", -/* EROFS 30 */ "Read-only file system", -/* EMLINK 31 */ "Too many links", -/* EPIPE 32 */ "Broken pipe", -/* EDOM 33 */ "Math argument out of domain of func", -/* ERANGE 34 */ "Math result not representable", -/* EAGAIN 35 */ "Resource temporarily unavailable", -/* EINPROGRESS 36 */ "Operation now in progress", -/* EALREADY 37 */ "Operation already in progress", - -/* ENOTSOCK 38 */ "Socket operation on non-socket", -/* EDESTADDRREQ 39 */ "Destination address required", -/* EMSGSIZE 40 */ "Message too long", -/* EPROTOTYPE 41 */ "Protocol wrong type for socket", -/* ENOPROTOOPT 42 */ "Protocol not available", -/* EPROTONOSUPPORT 43 */ "Protocol not supported", -/* ESOCKTNOSUPPORT 44 */ "Socket type not supported", -/* EOPNOTSUPP 45 */ "Operation not supported", -/* EPFNOSUPPORT 46 */ "Protocol family not supported", -/* EAFNOSUPPORT 47 */ "Address family not supported by protocol family", -/* EADDRINUSE 48 */ "Address already in use", -/* EADDRNOTAVAIL 49 */ "Can't assign requested address", - -/* ENETDOWN 50 */ "Network is down", -/* ENETUNREACH 51 */ "Network is unreachable", -/* ENETRESET 52 */ "Network dropped connection on reset", -/* ECONNABORTED 53 */ "Software caused connection abort", -/* ECONNRESET 54 */ "Connection reset by peer", -/* ENOBUFS 55 */ "No buffer space available", -/* EISCONN 56 */ "Socket is already connected", -/* ENOTCONN 57 */ "Socket is not connected", -/* ESHUTDOWN 58 */ "Can't send after socket shutdown", -/* ETOOMANYREFS 59 */ "Too many references: can't splice", -/* ETIMEDOUT 60 */ "Operation timed out", -/* ECONNREFUSED 61 */ "Connection refused", - -/* ELOOP 62 */ "Too many levels of symbolic links", -/* ENAMETOOLONG 63 */ "File name too long", -/* EHOSTDOWN 64 */ "Host is down", -/* EHOSTUNREACH 65 */ "No route to host", -/* ENOTEMPTY 66 */ "Directory not empty", -/* EPROCLIM 67 */ "Too many processes", -/* EUSERS 68 */ "Too many users", -/* EDQUOT 69 */ "Disc quota exceeded", -/* ESTALE 70 */ "Stale NFS file handle", -/* EREMOTE 71 */ "Too many levels of remote in path", - -/* EMULTIHOP 72 */ "Multihop attempted", -/* EDOTDOT 73 */ "RFS specific error", -/* EBADMSG 74 */ "Not a data message", -/* EOVERFLOW 75 */ "Value too large for defined data type", -/* ENOTUNIQ 76 */ "Name not unique on network", -/* EBADFD 77 */ "File descriptor in bad state", -/* EREMCHG 78 */ "Remote address changed", -/* ELIBACC 79 */ "Can not access a needed shared library", -/* ELIBBAD 80 */ "Accessing a corrupted shared library", -/* ELIBSCN 81 */ ".lib section in a.out corrupted", -/* ELIBMAX 82 */ "Attempting to link in too many shared libraries", -/* ELIBEXEC 83 */ "Cannot exec a shared library directly", -/* EILSEQ 84 */ "Illegal byte sequence", -/* ERESTART 85 */ "Interrupted system call should be restarted", -/* ESTRPIPE 86 */ "Streams pipe error", -/* EUSERS 87 */ "Too many users", -/* ENOTSOCK 88 */ "Socket operation on non-socket", -/* EDESTADDRREQ 89 */ "Destination address required", -/* EMSGSIZE 90 */ "Message too long", -/* EPROTOTYPE 91 */ "Protocol wrong type for socket", -/* ENOPROTOOPT 92 */ "Protocol not available", -/* EPROTONOSUPPORT 93 */ "Protocol not supported", -/* ESOCKTNOSUPPORT 94 */ "Socket type not supported", -/* EOPNOTSUPP 95 */ "Operation not supported on transport endpoint", -/* EPFNOSUPPORT 96 */ "Protocol family not supported", -/* EAFNOSUPPORT 97 */ "Address family not supported by protocol", -/* EADDRINUSE 98 */ "Address already in use", -/* EADDRNOTAVAIL 99 */ "Cannot assign requested address", -/* ENETDOWN 100 */ "Network is down", -/* ENETUNREACH 101 */ "Network is unreachable", -/* ENETRESET 102 */ "Network dropped connection because of reset", -/* ECONNABORTED 103 */ "Software caused connection abort", -/* ECONNRESET 104 */ "Connection reset by peer", -/* ENOBUFS 105 */ "No buffer space available", -/* EISCONN 106 */ "Transport endpoint is already connected", -/* ENOTCONN 107 */ "Transport endpoint is not connected", -/* ESHUTDOWN 108 */ "Cannot send after transport endpoint shutdown", -/* ETOOMANYREFS 109 */ "Too many references: cannot splice", -/* ETIMEDOUT 110 */ "Connection timed out", -/* ECONNREFUSED 111 */ "Connection refused", -/* EHOSTDOWN 112 */ "Host is down", -/* EHOSTUNREACH 113 */ "No route to host", -/* EALREADY 114 */ "Operation already in progress", -/* EINPROGRESS 115 */ "Operation now in progress", -/* ESTALE 116 */ "Stale NFS file handle", -/* EUCLEAN 117 */ "Structure needs cleaning", -/* ENOTNAM 118 */ "Not a named type file", -/* ENAVAIL 119 */ "No semaphores available", -/* EISNAM 120 */ "Is a named type file", -/* EREMOTEIO 121 */ "Remote I/O error", -/* EDQUOT 122 */ "Quota exceeded", -/* ENOMEDIUM 123 */ "No medium found", -/* EMEDIUMTYPE 124 */ "Wrong medium type", -/* ECANCELED 125 */ "Operation Canceled", -/* ENOKEY 126 */ "Required key not available", -/* EKEYEXPIRED 127 */ "Key has expired", -/* EKEYREVOKED 128 */ "Key has been revoked", -/* EKEYREJECTED 129 */ "Key was rejected by service", -/* EOWNERDEAD 130 */ "Owner died", -/* ENOTRECOVERABLE 131 */ "State not recoverable", -}; diff --git a/src/crent370/clib/strerror.o b/src/crent370/clib/strerror.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/strerror.s b/src/crent370/clib/strerror.s deleted file mode 100644 index 1fc7912..0000000 --- a/src/crent370/clib/strerror.s +++ /dev/null @@ -1,523 +0,0 @@ - TITLE '/home/projects/crent370/clib/strerror.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'strerror' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'strerror' -STRERROR PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'strerror' code - L 3,0(11) ==> error - SLR 15,15 ==> str - LA 2,131(0,0) - CLR 3,2 ==> error - BH @@L2 - MH 3,=H'4' - L 2,=A(@@0) - L 15,0(3,2) ==> str,errors -@@L2 EQU * -* Function 'strerror' epilogue - PDPEPIL -* Function 'strerror' literal pool - DS 0D - LTORG -* Function 'strerror' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'No Error' - DC X'0' -@@LC1 EQU * - DC C'Operation not permitted' - DC X'0' -@@LC2 EQU * - DC C'No such file or directory' - DC X'0' -@@LC3 EQU * - DC C'No such process' - DC X'0' -@@LC4 EQU * - DC C'Interrupted system call' - DC X'0' -@@LC5 EQU * - DC C'I/O error' - DC X'0' -@@LC6 EQU * - DC C'No such device or address' - DC X'0' -@@LC7 EQU * - DC C'Argument list too long' - DC X'0' -@@LC8 EQU * - DC C'Exec format error' - DC X'0' -@@LC9 EQU * - DC C'Bad file number' - DC X'0' -@@LC10 EQU * - DC C'No child processes' - DC X'0' -@@LC11 EQU * - DC C'Try again' - DC X'0' -@@LC12 EQU * - DC C'Out of memory' - DC X'0' -@@LC13 EQU * - DC C'Permission denied' - DC X'0' -@@LC14 EQU * - DC C'Bad address' - DC X'0' -@@LC15 EQU * - DC C'Block device required' - DC X'0' -@@LC16 EQU * - DC C'Device or resource busy' - DC X'0' -@@LC17 EQU * - DC C'File exists' - DC X'0' -@@LC18 EQU * - DC C'Cross-device link' - DC X'0' -@@LC19 EQU * - DC C'No such device' - DC X'0' -@@LC20 EQU * - DC C'Not a directory' - DC X'0' -@@LC21 EQU * - DC C'Is a directory' - DC X'0' -@@LC22 EQU * - DC C'Invalid argument' - DC X'0' -@@LC23 EQU * - DC C'File table overflow' - DC X'0' -@@LC24 EQU * - DC C'Too many open files' - DC X'0' -@@LC25 EQU * - DC C'Not a typewriter' - DC X'0' -@@LC26 EQU * - DC C'Text file busy' - DC X'0' -@@LC27 EQU * - DC C'File too large' - DC X'0' -@@LC28 EQU * - DC C'No space left on device' - DC X'0' -@@LC29 EQU * - DC C'Illegal seek' - DC X'0' -@@LC30 EQU * - DC C'Read-only file system' - DC X'0' -@@LC31 EQU * - DC C'Too many links' - DC X'0' -@@LC32 EQU * - DC C'Broken pipe' - DC X'0' -@@LC33 EQU * - DC C'Math argument out of domain of func' - DC X'0' -@@LC34 EQU * - DC C'Math result not representable' - DC X'0' -@@LC35 EQU * - DC C'Resource temporarily unavailable' - DC X'0' -@@LC36 EQU * - DC C'Operation now in progress' - DC X'0' -@@LC37 EQU * - DC C'Operation already in progress' - DC X'0' -@@LC38 EQU * - DC C'Socket operation on non-socket' - DC X'0' -@@LC39 EQU * - DC C'Destination address required' - DC X'0' -@@LC40 EQU * - DC C'Message too long' - DC X'0' -@@LC41 EQU * - DC C'Protocol wrong type for socket' - DC X'0' -@@LC42 EQU * - DC C'Protocol not available' - DC X'0' -@@LC43 EQU * - DC C'Protocol not supported' - DC X'0' -@@LC44 EQU * - DC C'Socket type not supported' - DC X'0' -@@LC45 EQU * - DC C'Operation not supported' - DC X'0' -@@LC46 EQU * - DC C'Protocol family not supported' - DC X'0' -@@LC47 EQU * - DC C'Address family not supported by protocol family' - DC X'0' -@@LC48 EQU * - DC C'Address already in use' - DC X'0' -@@LC49 EQU * - DC C'Can''t assign requested address' - DC X'0' -@@LC50 EQU * - DC C'Network is down' - DC X'0' -@@LC51 EQU * - DC C'Network is unreachable' - DC X'0' -@@LC52 EQU * - DC C'Network dropped connection on reset' - DC X'0' -@@LC53 EQU * - DC C'Software caused connection abort' - DC X'0' -@@LC54 EQU * - DC C'Connection reset by peer' - DC X'0' -@@LC55 EQU * - DC C'No buffer space available' - DC X'0' -@@LC56 EQU * - DC C'Socket is already connected' - DC X'0' -@@LC57 EQU * - DC C'Socket is not connected' - DC X'0' -@@LC58 EQU * - DC C'Can''t send after socket shutdown' - DC X'0' -@@LC59 EQU * - DC C'Too many references: can''t splice' - DC X'0' -@@LC60 EQU * - DC C'Operation timed out' - DC X'0' -@@LC61 EQU * - DC C'Connection refused' - DC X'0' -@@LC62 EQU * - DC C'Too many levels of symbolic links' - DC X'0' -@@LC63 EQU * - DC C'File name too long' - DC X'0' -@@LC64 EQU * - DC C'Host is down' - DC X'0' -@@LC65 EQU * - DC C'No route to host' - DC X'0' -@@LC66 EQU * - DC C'Directory not empty' - DC X'0' -@@LC67 EQU * - DC C'Too many processes' - DC X'0' -@@LC68 EQU * - DC C'Too many users' - DC X'0' -@@LC69 EQU * - DC C'Disc quota exceeded' - DC X'0' -@@LC70 EQU * - DC C'Stale NFS file handle' - DC X'0' -@@LC71 EQU * - DC C'Too many levels of remote in path' - DC X'0' -@@LC72 EQU * - DC C'Multihop attempted' - DC X'0' -@@LC73 EQU * - DC C'RFS specific error' - DC X'0' -@@LC74 EQU * - DC C'Not a data message' - DC X'0' -@@LC75 EQU * - DC C'Value too large for defined data type' - DC X'0' -@@LC76 EQU * - DC C'Name not unique on network' - DC X'0' -@@LC77 EQU * - DC C'File descriptor in bad state' - DC X'0' -@@LC78 EQU * - DC C'Remote address changed' - DC X'0' -@@LC79 EQU * - DC C'Can not access a needed shared library' - DC X'0' -@@LC80 EQU * - DC C'Accessing a corrupted shared library' - DC X'0' -@@LC81 EQU * - DC C'.lib section in a.out corrupted' - DC X'0' -@@LC82 EQU * - DC C'Attempting to link in too many shared libraries' - DC X'0' -@@LC83 EQU * - DC C'Cannot exec a shared library directly' - DC X'0' -@@LC84 EQU * - DC C'Illegal byte sequence' - DC X'0' -@@LC85 EQU * - DC C'Interrupted system call should be restarted' - DC X'0' -@@LC86 EQU * - DC C'Streams pipe error' - DC X'0' -@@LC87 EQU * - DC C'Operation not supported on transport endpoint' - DC X'0' -@@LC88 EQU * - DC C'Address family not supported by protocol' - DC X'0' -@@LC89 EQU * - DC C'Cannot assign requested address' - DC X'0' -@@LC90 EQU * - DC C'Network dropped connection because of reset' - DC X'0' -@@LC91 EQU * - DC C'Transport endpoint is already connected' - DC X'0' -@@LC92 EQU * - DC C'Transport endpoint is not connected' - DC X'0' -@@LC93 EQU * - DC C'Cannot send after transport endpoint shutdown' - DC X'0' -@@LC94 EQU * - DC C'Too many references: cannot splice' - DC X'0' -@@LC95 EQU * - DC C'Connection timed out' - DC X'0' -@@LC96 EQU * - DC C'Structure needs cleaning' - DC X'0' -@@LC97 EQU * - DC C'Not a named type file' - DC X'0' -@@LC98 EQU * - DC C'No semaphores available' - DC X'0' -@@LC99 EQU * - DC C'Is a named type file' - DC X'0' -@@LC100 EQU * - DC C'Remote I/O error' - DC X'0' -@@LC101 EQU * - DC C'Quota exceeded' - DC X'0' -@@LC102 EQU * - DC C'No medium found' - DC X'0' -@@LC103 EQU * - DC C'Wrong medium type' - DC X'0' -@@LC104 EQU * - DC C'Operation Canceled' - DC X'0' -@@LC105 EQU * - DC C'Required key not available' - DC X'0' -@@LC106 EQU * - DC C'Key has expired' - DC X'0' -@@LC107 EQU * - DC C'Key has been revoked' - DC X'0' -@@LC108 EQU * - DC C'Key was rejected by service' - DC X'0' -@@LC109 EQU * - DC C'Owner died' - DC X'0' -@@LC110 EQU * - DC C'State not recoverable' - DC X'0' -* Program data area - DS 0F -@@0 EQU * - DC A(@@LC0) - DC A(@@LC1) - DC A(@@LC2) - DC A(@@LC3) - DC A(@@LC4) - DC A(@@LC5) - DC A(@@LC6) - DC A(@@LC7) - DC A(@@LC8) - DC A(@@LC9) - DC A(@@LC10) - DC A(@@LC11) - DC A(@@LC12) - DC A(@@LC13) - DC A(@@LC14) - DC A(@@LC15) - DC A(@@LC16) - DC A(@@LC17) - DC A(@@LC18) - DC A(@@LC19) - DC A(@@LC20) - DC A(@@LC21) - DC A(@@LC22) - DC A(@@LC23) - DC A(@@LC24) - DC A(@@LC25) - DC A(@@LC26) - DC A(@@LC27) - DC A(@@LC28) - DC A(@@LC29) - DC A(@@LC30) - DC A(@@LC31) - DC A(@@LC32) - DC A(@@LC33) - DC A(@@LC34) - DC A(@@LC35) - DC A(@@LC36) - DC A(@@LC37) - DC A(@@LC38) - DC A(@@LC39) - DC A(@@LC40) - DC A(@@LC41) - DC A(@@LC42) - DC A(@@LC43) - DC A(@@LC44) - DC A(@@LC45) - DC A(@@LC46) - DC A(@@LC47) - DC A(@@LC48) - DC A(@@LC49) - DC A(@@LC50) - DC A(@@LC51) - DC A(@@LC52) - DC A(@@LC53) - DC A(@@LC54) - DC A(@@LC55) - DC A(@@LC56) - DC A(@@LC57) - DC A(@@LC58) - DC A(@@LC59) - DC A(@@LC60) - DC A(@@LC61) - DC A(@@LC62) - DC A(@@LC63) - DC A(@@LC64) - DC A(@@LC65) - DC A(@@LC66) - DC A(@@LC67) - DC A(@@LC68) - DC A(@@LC69) - DC A(@@LC70) - DC A(@@LC71) - DC A(@@LC72) - DC A(@@LC73) - DC A(@@LC74) - DC A(@@LC75) - DC A(@@LC76) - DC A(@@LC77) - DC A(@@LC78) - DC A(@@LC79) - DC A(@@LC80) - DC A(@@LC81) - DC A(@@LC82) - DC A(@@LC83) - DC A(@@LC84) - DC A(@@LC85) - DC A(@@LC86) - DC A(@@LC68) - DC A(@@LC38) - DC A(@@LC39) - DC A(@@LC40) - DC A(@@LC41) - DC A(@@LC42) - DC A(@@LC43) - DC A(@@LC44) - DC A(@@LC87) - DC A(@@LC46) - DC A(@@LC88) - DC A(@@LC48) - DC A(@@LC89) - DC A(@@LC50) - DC A(@@LC51) - DC A(@@LC90) - DC A(@@LC53) - DC A(@@LC54) - DC A(@@LC55) - DC A(@@LC91) - DC A(@@LC92) - DC A(@@LC93) - DC A(@@LC94) - DC A(@@LC95) - DC A(@@LC61) - DC A(@@LC64) - DC A(@@LC65) - DC A(@@LC37) - DC A(@@LC36) - DC A(@@LC70) - DC A(@@LC96) - DC A(@@LC97) - DC A(@@LC98) - DC A(@@LC99) - DC A(@@LC100) - DC A(@@LC101) - DC A(@@LC102) - DC A(@@LC103) - DC A(@@LC104) - DC A(@@LC105) - DC A(@@LC106) - DC A(@@LC107) - DC A(@@LC108) - DC A(@@LC109) - DC A(@@LC110) - END diff --git a/src/crent370/clib/strftime.c b/src/crent370/clib/strftime.c deleted file mode 100644 index 700f7fa..0000000 --- a/src/crent370/clib/strftime.c +++ /dev/null @@ -1,331 +0,0 @@ -/* STRFTIME.C */ -#include "time.h" -#include "stdarg.h" -#include "stdio.h" -#include "stddef.h" -#include "mvssupa.h" - -/* scalar date routines -- public domain by Ray Gardner -** These will work over the range 1-01-01 thru 14699-12-31 -** The functions written by Ray are isleap, months_to_days, -** years_to_days, ymd_to_scalar, scalar_to_ymd. -** modified slightly by Paul Edwards -*/ - -extern int __isleap(unsigned yr); -extern unsigned __mtd(unsigned month); -extern long __ytd(unsigned yr); -extern long __ymdts(unsigned yr, unsigned mo, unsigned day); -extern void __stymd(long scalar, - unsigned *pyr, unsigned *pmo, unsigned *pday); - -#define isleap(y) __isleap(y) -#define months_to_days(m) __mtd(m) -#define years_to_days(y) __ytd(y) -#define ymd_to_scalar(y,m,d) __ymdts((y),(m),(d)) -#define scalar_to_ymd(s,y,m,d) __stymd((s),(y),(m),(d)) - -/* dow - written by Paul Edwards, 1993-01-31 */ -/* Released to the Public Domain */ -/* This routine will work over the range 1-01-01 to 32767-12-31. - It assumes the current calendar system has always been in - place in that time. If you pass 0 or negative years, then - it produces results on the assumption that there is a year - 0. It should always produce a value in the range of 0..6 - if a valid month and day have been passed, no matter what - the year is. However, it has not been tested for negative - years, because the results are meaningless anyway. It is - mainly to stop people playing silly buggers and causing - the macro to crash on negative years. */ - -#define dow(y,m,d) \ - ((((((m)+9)%12+1)<<4)%27 + (d) + 1 + \ - ((y)%400+400) + ((y)%400+400)/4 - ((y)%400+400)/100 + \ - (((m)<=2) ? ( \ - (((((y)%4)==0) && (((y)%100)!=0)) || (((y)%400)==0)) \ - ? 5 : 6) : 0)) % 7) - -/* - * strftime.c - * - * implements the iso c function strftime() - * - * written 1989-09-06 by jim nutt - * released into the public domain by jim nutt - * - * modified 1989-10-21 by Rob Duff - * - * modified 1994-08-26 by Paul Edwards - */ - -static char *aday[] = { - "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" -}; - -static char *day[] = { - "Sunday", "Monday", "Tuesday", "Wednesday", - "Thursday", "Friday", "Saturday" -}; - -static char *amonth[] = { - "Jan", "Feb", "Mar", "Apr", "May", "Jun", - "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" -}; - -static char *month[] = { - "January", "February", "March", "April", "May", "June", - "July", "August", "September", "October", "November", "December" -}; - -static char *__tzname[2] = { "" "" }; - -static void strfmt(char *str, const char *fmt, ...); - -/** - * - * size_t strftime(char *str, - * size_t maxs, - * const char *fmt, - * const struct tm *t) - * - * this functions acts much like a sprintf for time/date output. - * given a pointer to an output buffer, a format string and a - * time, it copies the time to the output buffer formatted in - * accordance with the format string. the parameters are used - * as follows: - * - * str is a pointer to the output buffer, there should - * be at least maxs characters available at the address - * pointed to by str. - * - * maxs is the maximum number of characters to be copied - * into the output buffer, included the '\0' terminator - * - * fmt is the format string. a percent sign (%) is used - * to indicate that the following character is a special - * format character. the following are valid format - * characters: - * - * %A full weekday name (Monday) - * %a abbreviated weekday name (Mon) - * %B full month name (January) - * %b abbreviated month name (Jan) - * %c standard date and time representation - * %d day-of-month (01-31) - * %H hour (24 hour clock) (00-23) - * %I hour (12 hour clock) (01-12) - * %j day-of-year (001-366) - * %M minute (00-59) - * %m month (01-12) - * %p local equivalent of AM or PM - * %S second (00-59) - * %U week-of-year, first day sunday (00-53) - * %W week-of-year, first day monday (00-53) - * %w weekday (0-6, sunday is 0) - * %X standard time representation - * %x standard date representation - * %Y year with century - * %y year without century (00-99) - * %Z timezone name - * %% percent sign - * - * the standard date string is equivalent to: - * - * %a %b %d %Y - * - * the standard time string is equivalent to: - * - * %H:%M:%S - * - * the standard date and time string is equivalent to: - * - * %a %b %d %H:%M:%S %Y - * - * strftime returns the number of characters placed in the - * buffer, not including the terminating \0, or zero if more - * than maxs characters were produced. - * -**/ - -__PDPCLIB_API__ size_t strftime(char *s, - size_t maxs, - const char *f, - const struct tm *t) -{ - int w; - char *p, *q, *r; - char buf[26]; - - p = s; - q = s + maxs - 1; - while ((*f != '\0')) { - if (*f++ == '%') { - r = buf; - switch (*f++) { - case '%' : - r = "%"; - break; - - case 'a' : - r = aday[t->tm_wday]; - break; - - case 'A' : - r = day[t->tm_wday]; - break; - - case 'b' : - r = amonth[t->tm_mon]; - break; - - case 'B' : - r = month[t->tm_mon]; - break; - - case 'c' : - strfmt(r, "%0 %0 %2 %2:%2:%2 %4", - aday[t->tm_wday], amonth[t->tm_mon], - t->tm_mday,t->tm_hour, t->tm_min, - t->tm_sec, t->tm_year+1900); - break; - - case 'd' : - strfmt(r,"%2",t->tm_mday); - break; - - case 'H' : - strfmt(r,"%2",t->tm_hour); - break; - - case 'I' : - strfmt(r,"%2",(t->tm_hour%12)?t->tm_hour%12:12); - break; - - case 'j' : - strfmt(r,"%3",t->tm_yday+1); - break; - - case 'm' : - strfmt(r,"%2",t->tm_mon+1); - break; - - case 'M' : - strfmt(r,"%2",t->tm_min); - break; - - case 'p' : - r = (t->tm_hour>11)?"PM":"AM"; - break; - - case 'S' : - strfmt(r,"%2",t->tm_sec); - break; - - case 'U' : - w = t->tm_yday/7; - if (t->tm_yday%7 > t->tm_wday) - w++; - strfmt(r, "%2", w); - break; - - case 'W' : - w = t->tm_yday/7; - if (t->tm_yday%7 > (t->tm_wday+6)%7) - w++; - strfmt(r, "%2", w); - break; - - case 'w' : - strfmt(r,"%1",t->tm_wday); - break; - - case 'x' : - strfmt(r, "%3s %3s %2 %4", aday[t->tm_wday], - amonth[t->tm_mon], t->tm_mday, t->tm_year+1900); - break; - - case 'X' : - strfmt(r, "%2:%2:%2", t->tm_hour, t->tm_min, t->tm_sec); - break; - - case 'y' : - strfmt(r,"%2",t->tm_year%100); - break; - - case 'Y' : - strfmt(r,"%4",t->tm_year+1900); - break; - - case 'Z' : - r = (t->tm_isdst) ? __tzname[1] : __tzname[0]; - break; - - default: - buf[0] = '%'; /* reconstruct the format */ - buf[1] = f[-1]; - buf[2] = '\0'; - if (buf[1] == 0) - f--; /* back up if at end of string */ - } - while (*r) { - if (p == q) { - *q = '\0'; - return 0; - } - *p++ = *r++; - } - } - else { - if (p == q) { - *q = '\0'; - return 0; - } - *p++ = f[-1]; - } - } - *p = '\0'; - return (size_t)(p - s); -} - -static int pow[5] = { 1, 10, 100, 1000, 10000 }; - -/** - * static void strfmt(char *str, char *fmt); - * - * simple sprintf for strftime - * - * each format descriptor is of the form %n - * where n goes from zero to four - * - * 0 -- string %s - * 1..4 -- int %?.?d - * -**/ - -static void strfmt(char *str, const char *fmt, ...) -{ - int ival, ilen; - char *sval; - va_list vp; - - va_start(vp, fmt); - while (*fmt) { - if (*fmt++ == '%') { - ilen = *fmt++ - '0'; - if (ilen == 0) { /* zero means string arg */ - sval = va_arg(vp, char*); - while (*sval) *str++ = *sval++; - } - else { /* always leading zeros */ - ival = va_arg(vp, int); - while (ilen) { - ival %= pow[ilen--]; - *str++ = (char)('0' + ival / pow[ilen]); - } - } - } - else *str++ = fmt[-1]; - } - *str = '\0'; - va_end(vp); -} diff --git a/src/crent370/clib/strftime.o b/src/crent370/clib/strftime.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/strftime.s b/src/crent370/clib/strftime.s deleted file mode 100644 index e3e11ca..0000000 --- a/src/crent370/clib/strftime.s +++ /dev/null @@ -1,824 +0,0 @@ - TITLE '/home/projects/crent370/clib/strftime.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@LC0 EQU * - DC C'Sun' - DC X'0' -@@LC1 EQU * - DC C'Mon' - DC X'0' -@@LC2 EQU * - DC C'Tue' - DC X'0' -@@LC3 EQU * - DC C'Wed' - DC X'0' -@@LC4 EQU * - DC C'Thu' - DC X'0' -@@LC5 EQU * - DC C'Fri' - DC X'0' -@@LC6 EQU * - DC C'Sat' - DC X'0' -* Program data area - DS 0F -@@0 EQU * - DC A(@@LC0) - DC A(@@LC1) - DC A(@@LC2) - DC A(@@LC3) - DC A(@@LC4) - DC A(@@LC5) - DC A(@@LC6) -* Program text area -@@LC7 EQU * - DC C'Sunday' - DC X'0' -@@LC8 EQU * - DC C'Monday' - DC X'0' -@@LC9 EQU * - DC C'Tuesday' - DC X'0' -@@LC10 EQU * - DC C'Wednesday' - DC X'0' -@@LC11 EQU * - DC C'Thursday' - DC X'0' -@@LC12 EQU * - DC C'Friday' - DC X'0' -@@LC13 EQU * - DC C'Saturday' - DC X'0' -* Program data area - DS 0F -@@1 EQU * - DC A(@@LC7) - DC A(@@LC8) - DC A(@@LC9) - DC A(@@LC10) - DC A(@@LC11) - DC A(@@LC12) - DC A(@@LC13) -* Program text area -@@LC14 EQU * - DC C'Jan' - DC X'0' -@@LC15 EQU * - DC C'Feb' - DC X'0' -@@LC16 EQU * - DC C'Mar' - DC X'0' -@@LC17 EQU * - DC C'Apr' - DC X'0' -@@LC18 EQU * - DC C'May' - DC X'0' -@@LC19 EQU * - DC C'Jun' - DC X'0' -@@LC20 EQU * - DC C'Jul' - DC X'0' -@@LC21 EQU * - DC C'Aug' - DC X'0' -@@LC22 EQU * - DC C'Sep' - DC X'0' -@@LC23 EQU * - DC C'Oct' - DC X'0' -@@LC24 EQU * - DC C'Nov' - DC X'0' -@@LC25 EQU * - DC C'Dec' - DC X'0' -* Program data area - DS 0F -@@2 EQU * - DC A(@@LC14) - DC A(@@LC15) - DC A(@@LC16) - DC A(@@LC17) - DC A(@@LC18) - DC A(@@LC19) - DC A(@@LC20) - DC A(@@LC21) - DC A(@@LC22) - DC A(@@LC23) - DC A(@@LC24) - DC A(@@LC25) -* Program text area -@@LC26 EQU * - DC C'January' - DC X'0' -@@LC27 EQU * - DC C'February' - DC X'0' -@@LC28 EQU * - DC C'March' - DC X'0' -@@LC29 EQU * - DC C'April' - DC X'0' -@@LC30 EQU * - DC C'June' - DC X'0' -@@LC31 EQU * - DC C'July' - DC X'0' -@@LC32 EQU * - DC C'August' - DC X'0' -@@LC33 EQU * - DC C'September' - DC X'0' -@@LC34 EQU * - DC C'October' - DC X'0' -@@LC35 EQU * - DC C'November' - DC X'0' -@@LC36 EQU * - DC C'December' - DC X'0' -* Program data area - DS 0F -@@3 EQU * - DC A(@@LC26) - DC A(@@LC27) - DC A(@@LC28) - DC A(@@LC29) - DC A(@@LC18) - DC A(@@LC30) - DC A(@@LC31) - DC A(@@LC32) - DC A(@@LC33) - DC A(@@LC34) - DC A(@@LC35) - DC A(@@LC36) -* Program text area -@@LC37 EQU * - DC X'0' -* Program data area - DS 0F -@@4 EQU * - DC A(@@LC37) - DC 4X'00' -* Program text area - DS 0F - EJECT -* external function 'strftime' prologue -* frame base=88, local stack=96, call args=40 -&FUNC SETC 'strftime' -STRFTIME PDPPRLG CINDEX=0,FRAME=224,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'strftime' code - SLR 2,2 - SLR 3,3 - ST 2,160(13) - ST 3,4+160(13) - ST 2,168(13) - ST 3,4+168(13) - ST 2,176(13) - ST 3,4+176(13) - ST 2,184(13) - ST 3,4+184(13) - ST 2,192(13) - ST 3,4+192(13) - ST 2,200(13) - ST 3,4+200(13) - ST 2,208(13) - ST 3,4+208(13) - L 9,0(11) ==> s - L 6,8(11) ==> f - L 8,12(11) ==> t - LR 4,9 ==> p,s - LR 7,9 ==> q,s - A 7,4(11) ==> q,maxs - BCTR 7,0 ==> q - IC 2,0(6) ==> f - CLM 2,1,=XL1'00' - L 14,=A(@@L48) - BER 14 -@@L46 EQU * - L 12,0(,10) - IC 2,0(6) ==> f - A 6,=F'1' ==> f - CLM 2,1,=XL1'6C' - L 14,=A(@@L5) - BNER 14 - LA 5,128(,13) ==> r - SLR 2,2 - IC 2,0(6) ==> f - A 2,=F'-108' - A 6,=F'1' ==> f - LA 3,125(0,0) - CLR 2,3 - L 14,=A(@@L36) - BHR 14 - LR 3,2 - MH 3,=H'4' - L 2,=A(@@L38) - L 14,0(3,2) - BR 14 - DS 0F - DS 0F - DS 0F - LTORG - DS 0F -@@L38 EQU * - DC A(@@L7) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L8) - DC A(@@L10) - DC A(@@L12) - DC A(@@L13) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L17) - DC A(@@L36) - DC A(@@L36) - DC A(@@L18) - DC A(@@L36) - DC A(@@L36) - DC A(@@L20) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L28) - DC A(@@L29) - DC A(@@L31) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L9) - DC A(@@L11) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L14) - DC A(@@L15) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L19) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L36) - DC A(@@L23) - DC A(@@L36) - DC A(@@L24) - DC A(@@L36) - DC A(@@L26) - DC A(@@L30) - DC A(@@L32) - DC A(@@L33) -@@L7 EQU * - L 5,=A(@@LC38) ==> r - B @@L6 -@@L8 EQU * - L 3,24(8) ==> .tm_wday - SLL 3,2 - L 2,=A(@@0) - B @@L52 -@@L9 EQU * - L 3,24(8) ==> .tm_wday - SLL 3,2 - L 2,=A(@@1) - B @@L52 -@@L10 EQU * - L 3,16(8) ==> .tm_mon - SLL 3,2 - L 2,=A(@@2) - B @@L52 -@@L11 EQU * - L 3,16(8) ==> .tm_mon - SLL 3,2 - L 2,=A(@@3) -@@L52 EQU * - L 5,0(3,2) ==> r,month - B @@L6 -@@L12 EQU * - ST 5,88(13) ==> r - MVC 92(4,13),=A(@@LC39) - L 3,24(8) ==> .tm_wday - SLL 3,2 - L 2,=A(@@0) - L 2,0(3,2) ==> aday - ST 2,96(13) - L 3,16(8) ==> .tm_mon - SLL 3,2 - L 2,=A(@@2) - L 2,0(3,2) ==> amonth - ST 2,100(13) - MVC 104(4,13),12(8) ==> .tm_mday - MVC 108(4,13),8(8) ==> .tm_hour - MVC 112(4,13),4(8) ==> .tm_min - MVC 116(4,13),0(8) ==> .tm_sec - L 2,20(8) ==> .tm_year - A 2,=F'1900' - ST 2,120(13) - LA 1,88(,13) - L 15,=A(@@5) - BALR 14,15 - B @@L6 -@@L13 EQU * - ST 5,88(13) ==> r - MVC 92(4,13),=A(@@LC40) - MVC 96(4,13),12(8) ==> .tm_mday - B @@L50 -@@L14 EQU * - ST 5,88(13) ==> r - MVC 92(4,13),=A(@@LC40) - MVC 96(4,13),8(8) ==> .tm_hour - B @@L50 -@@L15 EQU * - ST 5,88(13) ==> r - MVC 92(4,13),=A(@@LC40) - MVC 160(4,13),8(8) ==> .tm_hour - L 2,160(13) - L 3,4+160(13) - SRDA 2,32 - LA 15,12(0,0) - DR 2,15 - ST 2,160(13) - ST 3,4+160(13) - L 2,160(13) - LTR 2,2 - BNE @@L54 - LR 2,15 - B @@L54 -@@L17 EQU * - ST 5,88(13) ==> r - MVC 92(4,13),=A(@@LC41) - L 2,28(8) ==> .tm_yday - B @@L55 -@@L18 EQU * - ST 5,88(13) ==> r - MVC 92(4,13),=A(@@LC40) - L 2,16(8) ==> .tm_mon -@@L55 EQU * - A 2,=F'1' - B @@L54 -@@L19 EQU * - ST 5,88(13) ==> r - MVC 92(4,13),=A(@@LC40) - MVC 96(4,13),4(8) ==> .tm_min - B @@L50 -@@L20 EQU * - L 2,8(8) ==> .tm_hour - L 5,=A(@@LC42) ==> r - LA 3,11(0,0) - CR 2,3 - BH @@L6 - L 5,=A(@@LC43) ==> r - B @@L6 -@@L23 EQU * - ST 5,88(13) ==> r - MVC 92(4,13),=A(@@LC40) - MVC 96(4,13),0(8) ==> .tm_sec - B @@L50 -@@L24 EQU * - MVC 168(4,13),28(8) ==> .tm_yday - L 2,168(13) - L 3,4+168(13) - SRDA 2,32 - LA 15,7(0,0) - DR 2,15 - ST 2,168(13) - ST 3,4+168(13) - MVC 216(4,13),172(13) ==> w - MVC 176(4,13),28(8) ==> .tm_yday - L 2,176(13) - L 3,4+176(13) - SRDA 2,32 - DR 2,15 - ST 2,176(13) - ST 3,4+176(13) - L 2,176(13) - C 2,24(8) ==> .tm_wday - BNH @@L27 - B @@L56 -@@L26 EQU * - MVC 184(4,13),28(8) ==> .tm_yday - L 2,184(13) - L 3,4+184(13) - SRDA 2,32 - LA 15,7(0,0) - DR 2,15 - ST 2,184(13) - ST 3,4+184(13) - MVC 216(4,13),188(13) ==> w - MVC 192(4,13),28(8) ==> .tm_yday - L 2,192(13) - L 3,4+192(13) - SRDA 2,32 - DR 2,15 - ST 2,192(13) - ST 3,4+192(13) - L 2,24(8) ==> .tm_wday - A 2,=F'6' - ST 2,200(13) - L 2,200(13) - L 3,4+200(13) - SRDA 2,32 - DR 2,15 - ST 2,200(13) - ST 3,4+200(13) - C 2,192(13) - BNL @@L27 -@@L56 EQU * - L 2,216(13) ==> w - A 2,=F'1' - ST 2,216(13) ==> w -@@L27 EQU * - ST 5,88(13) ==> r - MVC 92(4,13),=A(@@LC40) - MVC 96(4,13),216(13) ==> w - B @@L50 -@@L28 EQU * - ST 5,88(13) ==> r - MVC 92(4,13),=A(@@LC44) - MVC 96(4,13),24(8) ==> .tm_wday - B @@L50 -@@L29 EQU * - ST 5,88(13) ==> r - MVC 92(4,13),=A(@@LC45) - L 3,24(8) ==> .tm_wday - SLL 3,2 - L 2,=A(@@0) - L 2,0(3,2) ==> aday - ST 2,96(13) - L 3,16(8) ==> .tm_mon - SLL 3,2 - L 2,=A(@@2) - L 2,0(3,2) ==> amonth - ST 2,100(13) - MVC 104(4,13),12(8) ==> .tm_mday - L 2,20(8) ==> .tm_year - A 2,=F'1900' - ST 2,108(13) - B @@L51 -@@L30 EQU * - ST 5,88(13) ==> r - MVC 92(4,13),=A(@@LC46) - MVC 96(4,13),8(8) ==> .tm_hour - MVC 100(4,13),4(8) ==> .tm_min - MVC 104(4,13),0(8) ==> .tm_sec -@@L51 EQU * - LA 1,88(,13) - L 15,=A(@@5) - BALR 14,15 - B @@L6 -@@L31 EQU * - ST 5,88(13) ==> r - MVC 92(4,13),=A(@@LC40) - MVC 208(4,13),20(8) ==> .tm_year - L 2,208(13) - L 3,4+208(13) - SRDA 2,32 - LA 15,100(0,0) - DR 2,15 - ST 2,208(13) - ST 3,4+208(13) - MVC 96(4,13),208(13) - B @@L50 -@@L32 EQU * - ST 5,88(13) ==> r - MVC 92(4,13),=A(@@LC47) - L 2,20(8) ==> .tm_year - A 2,=F'1900' -@@L54 EQU * - ST 2,96(13) -@@L50 EQU * - LA 1,88(,13) - L 15,=A(@@5) - BALR 14,15 - B @@L6 -@@L33 EQU * - L 2,32(8) ==> .tm_isdst - LTR 2,2 - BE @@L34 - L 2,=A(@@4) - L 5,4(2) ==> r,__tzname - B @@L6 -@@L34 EQU * - L 2,=A(@@4) - L 5,0(2) ==> r,__tzname - B @@L6 -@@L36 EQU * - MVI 128(13),108 ==> buf - L 2,=F'-1' - IC 3,0(2,6) - STC 3,129(13) ==> buf - MVI 130(13),0 ==> buf - IC 2,0(2,6) - CLM 2,1,=XL1'00' - BNE @@L6 - BCTR 6,0 ==> f -@@L6 EQU * - IC 2,0(5) ==> r - CLM 2,1,=XL1'00' - BE @@L2 -@@L43 EQU * - CLR 4,7 ==> p,q - BE @@L53 - MVC 0(1,4),0(5) ==> p,r - A 5,=F'1' ==> r - A 4,=F'1' ==> p - IC 2,0(5) ==> r - CLM 2,1,=XL1'00' - BE @@L2 - B @@L43 -@@L5 EQU * - CLR 4,7 ==> p,q - BNE @@L45 -@@L53 EQU * - MVI 0(4),0 ==> p - SLR 15,15 - B @@L1 -@@L45 EQU * - L 2,=F'-1' - IC 2,0(2,6) - STC 2,0(4) ==> p - A 4,=F'1' ==> p -@@L2 EQU * - IC 2,0(6) ==> f - CLM 2,1,=XL1'00' - BNE @@L46 -@@L48 EQU * - MVI 0(4),0 ==> p - LR 15,4 ==> p - SR 15,9 ==> s -@@L1 EQU * -* Function 'strftime' epilogue - PDPEPIL -* Function 'strftime' literal pool - DS 0D - LTORG -* Function 'strftime' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC38 EQU * - DC C'%' - DC X'0' -@@LC39 EQU * - DC C'%0 %0 %2 %2:%2:%2 %4' - DC X'0' -@@LC40 EQU * - DC C'%2' - DC X'0' -@@LC41 EQU * - DC C'%3' - DC X'0' -@@LC42 EQU * - DC C'PM' - DC X'0' -@@LC43 EQU * - DC C'AM' - DC X'0' -@@LC44 EQU * - DC C'%1' - DC X'0' -@@LC45 EQU * - DC C'%3s %3s %2 %4' - DC X'0' -@@LC46 EQU * - DC C'%2:%2:%2' - DC X'0' -@@LC47 EQU * - DC C'%4' - DC X'0' -* Program data area - DS 0F -@@6 EQU * - DC F'1' - DC F'10' - DC F'100' - DC F'1000' - DC F'10000' -* Program text area - DS 0F - EJECT -* static function 'strfmt' prologue -* frame base=88, local stack=8, call args=0 -&FUNC SETC 'strfmt' -@@5 PDPPRLG CINDEX=1,FRAME=96,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'strfmt' code - SLR 8,8 ==> ival - SLR 9,9 ==> ival - LR 6,8 ==> ival - LR 7,9 ==> ival - L 4,0(11) ==> str - LA 2,8(,11) - ST 2,88(13) ==> vp - L 2,4(11) - IC 2,0(2) - CLM 2,1,=XL1'00' - BE @@L75 -@@L73 EQU * - L 3,4(11) ==> fmt - IC 2,0(3) - A 3,=F'1' - ST 3,4(11) ==> fmt - CLM 2,1,=XL1'6C' - BNE @@L61 - SLR 2,2 - IC 2,0(3) - LR 15,2 ==> ilen - A 15,=F'-240' ==> ilen - LR 2,3 - A 2,=F'1' - ST 2,4(11) ==> fmt - LTR 15,15 ==> ilen - BNE @@L62 - L 2,88(13) ==> vp - A 2,=F'4' - ST 2,88(13) ==> vp - A 2,=F'-4' - L 3,0(2) ==> sval - IC 2,0(3) ==> sval - CLM 2,1,=XL1'00' - BE @@L58 -@@L66 EQU * - MVC 0(1,4),0(3) ==> str,sval - A 3,=F'1' ==> sval - A 4,=F'1' ==> str - IC 2,0(3) ==> sval - CLM 2,1,=XL1'00' - BE @@L58 - B @@L66 -@@L62 EQU * - L 2,88(13) ==> vp - A 2,=F'4' - ST 2,88(13) ==> vp - A 2,=F'-4' - L 3,0(2) ==> ival - LTR 15,15 ==> ilen - BE @@L58 - L 5,=A(@@6) -@@L71 EQU * - LR 2,15 ==> ilen - MH 2,=H'4' - LR 8,3 ==> ival - SRDA 8,32 ==> ival - D 8,0(2,5) ==> ival,pow - LR 3,8 ==> ival - BCTR 15,0 ==> ilen - LR 2,15 ==> ilen - MH 2,=H'4' - LR 6,8 ==> ival - SRDA 6,32 ==> ival - D 6,0(2,5) ==> ival,pow - LA 2,240(,7) ==> ival - STC 2,0(4) ==> str - A 4,=F'1' ==> str - LTR 15,15 ==> ilen - BE @@L58 - B @@L71 -@@L61 EQU * - L 3,4(11) - L 2,=F'-1' - IC 3,0(2,3) - STC 3,0(4) ==> str - A 4,=F'1' ==> str -@@L58 EQU * - L 2,4(11) - IC 2,0(2) - CLM 2,1,=XL1'00' - BNE @@L73 -@@L75 EQU * - MVI 0(4),0 ==> str -* Function 'strfmt' epilogue - PDPEPIL -* Function 'strfmt' literal pool - DS 0D - LTORG -* Function 'strfmt' page table -@@PGT1 DS 0F - DC A(@@PG1) - END diff --git a/src/crent370/clib/stricmp.c b/src/crent370/clib/stricmp.c deleted file mode 100644 index 34fa4b8..0000000 --- a/src/crent370/clib/stricmp.c +++ /dev/null @@ -1,30 +0,0 @@ -/* STRICMP.C */ -#include -#include -#include -#include - -#ifdef stricmp -#undef stricmp -#endif -__PDPCLIB_API__ int stricmp(const char *s1, const char *s2) -{ - const unsigned char *p1; - const unsigned char *p2; - unsigned char c1; - unsigned char c2; - - p1 = (const unsigned char *)s1; - p2 = (const unsigned char *)s2; - while (*p1 != '\0') { - c1 = tolower(*p1); - c2 = tolower(*p2); - if (c1 < c2) return (-1); - else if (c1 > c2) return (1); - p1++; - p2++; - } - - if (*p2 == '\0') return (0); - else return (-1); -} diff --git a/src/crent370/clib/stricmp.o b/src/crent370/clib/stricmp.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/stricmp.s b/src/crent370/clib/stricmp.s deleted file mode 100644 index 5d50288..0000000 --- a/src/crent370/clib/stricmp.s +++ /dev/null @@ -1,81 +0,0 @@ - TITLE '/home/projects/crent370/clib/stricmp.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'stricmp' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'stricmp' -STRICMP PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'stricmp' code - L 3,0(11) ==> p1,s1 - L 5,4(11) ==> p2,s2 - IC 2,0(3) ==> p1 - CLM 2,1,=XL1'00' - BE @@L12 - L 2,=V(@@TOLOW) - L 6,0(2) ==> __tolow -@@L8 EQU * - SLR 2,2 - IC 2,0(3) ==> p1 - MH 2,=H'2' - IC 4,1(2,6) ==> c1 - SLR 2,2 - IC 2,0(5) ==> p2 - MH 2,=H'2' - IC 2,1(2,6) ==> c2 - L 15,=F'-1' - STC 2,80(,13) ==> c2 - CLM 4,1,80(13) ==> c1 - BL @@L1 - LA 15,1(0,0) - BH @@L1 - A 3,=F'1' ==> p1 - A 5,=F'1' ==> p2 - IC 2,0(3) ==> p1 - CLM 2,1,=XL1'00' - BNE @@L8 -@@L12 EQU * - SLR 2,2 - IC 2,0(5) ==> p2 - LCR 2,2 - LR 15,2 - SRL 15,31 - LCR 15,15 -@@L1 EQU * -* Function 'stricmp' epilogue - PDPEPIL -* Function 'stricmp' literal pool - DS 0D - LTORG -* Function 'stricmp' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/string.c b/src/crent370/clib/string.c deleted file mode 100644 index 94146d7..0000000 --- a/src/crent370/clib/string.c +++ /dev/null @@ -1,33 +0,0 @@ -#define LIB_STRING -#define STRING_C -#include "string.h" - -static STRING lib = { - memcpy, - memmove, - strcpy, - strncpy, - strcat, - strncat, - memcmp, - strcmp, - strcoll, - strncmp, - strxfrm, - memchr, - strchr, - strcspn, - strpbrk, - strrchr, - strspn, - strstr, - strtok, - memset, - strerror, - strlen, - strcpyp, - memcpyp, - __patmat, -}; - -STRING *string = &lib; diff --git a/src/crent370/clib/strlen.c b/src/crent370/clib/strlen.c deleted file mode 100644 index 3318eeb..0000000 --- a/src/crent370/clib/strlen.c +++ /dev/null @@ -1,16 +0,0 @@ -/* STRLEN.C */ -#include -#include -#include - -#ifdef strlen -#undef strlen -#endif -__PDPCLIB_API__ size_t strlen(const char *s) -{ - const char *p; - - p = s; - while (*p != '\0') p++; - return ((size_t)(p - s)); -} diff --git a/src/crent370/clib/strlen.o b/src/crent370/clib/strlen.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/strlen.s b/src/crent370/clib/strlen.s deleted file mode 100644 index bc7f542..0000000 --- a/src/crent370/clib/strlen.s +++ /dev/null @@ -1,58 +0,0 @@ - TITLE '/home/projects/crent370/clib/strlen.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'strlen' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'strlen' -STRLEN PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'strlen' code - L 3,0(11) ==> s - LR 15,3 ==> p,s - IC 2,0(3) ==> s - CLM 2,1,=XL1'00' - BE @@L7 -@@L5 EQU * - A 15,=F'1' ==> p - IC 2,0(15) ==> p - CLM 2,1,=XL1'00' - BNE @@L5 -@@L7 EQU * - SR 15,3 ==> s -* Function 'strlen' epilogue - PDPEPIL -* Function 'strlen' literal pool - DS 0D - LTORG -* Function 'strlen' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/strncat.c b/src/crent370/clib/strncat.c deleted file mode 100644 index 4e4ba66..0000000 --- a/src/crent370/clib/strncat.c +++ /dev/null @@ -1,25 +0,0 @@ -/* STRNCAT.C */ -#include -#include -#include - -#ifdef strncat -#undef strncat -#endif -__PDPCLIB_API__ char *strncat(char *s1, const char *s2, size_t n) -{ - char *p = s1; - size_t x = 0; - - while (*p != '\0') p++; - - while ((*s2 != '\0') && (x < n)) { - *p = *s2; - p++; - s2++; - x++; - } - *p = '\0'; - - return (s1); -} diff --git a/src/crent370/clib/strncat.o b/src/crent370/clib/strncat.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/strncat.s b/src/crent370/clib/strncat.s deleted file mode 100644 index e07c179..0000000 --- a/src/crent370/clib/strncat.s +++ /dev/null @@ -1,78 +0,0 @@ - TITLE '/home/projects/crent370/clib/strncat.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'strncat' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'strncat' -STRNCAT PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'strncat' code - L 15,0(11) ==> s1 - L 5,4(11) ==> s2 - L 7,8(11) ==> n - LR 3,15 ==> p,s1 - SLR 6,6 ==> x - IC 2,0(15) ==> s1 - CLM 2,1,=XL1'00' - BE @@L12 -@@L5 EQU * - A 3,=F'1' ==> p - IC 2,0(3) ==> p - CLM 2,1,=XL1'00' - BNE @@L5 -@@L12 EQU * - IC 2,0(5) ==> s2 - LR 4,2 - CLM 2,1,=XL1'00' - BE @@L7 - CLR 6,7 ==> x,n - BNL @@L7 -@@L10 EQU * - STC 4,0(3) ==> p - A 3,=F'1' ==> p - A 5,=F'1' ==> s2 - A 6,=F'1' ==> x - IC 4,0(5) ==> s2 - CLM 4,1,=XL1'00' - BE @@L7 - CLR 6,7 ==> x,n - BL @@L10 -@@L7 EQU * - MVI 0(3),0 ==> p -* Function 'strncat' epilogue - PDPEPIL -* Function 'strncat' literal pool - DS 0D - LTORG -* Function 'strncat' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/strncmp.c b/src/crent370/clib/strncmp.c deleted file mode 100644 index 516bc34..0000000 --- a/src/crent370/clib/strncmp.c +++ /dev/null @@ -1,25 +0,0 @@ -/* STRNCMP.C */ -#include -#include -#include - -#ifdef strncmp -#undef strncmp -#endif -__PDPCLIB_API__ int strncmp(const char *s1, const char *s2, size_t n) -{ - const unsigned char *p1; - const unsigned char *p2; - size_t x = 0; - - p1 = (const unsigned char *)s1; - p2 = (const unsigned char *)s2; - while (x < n) { - if (p1[x] < p2[x]) return (-1); - else if (p1[x] > p2[x]) return (1); - else if (p1[x] == '\0') return (0); - x++; - } - - return (0); -} diff --git a/src/crent370/clib/strncmp.o b/src/crent370/clib/strncmp.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/strncmp.s b/src/crent370/clib/strncmp.s deleted file mode 100644 index 84a9c93..0000000 --- a/src/crent370/clib/strncmp.s +++ /dev/null @@ -1,75 +0,0 @@ - TITLE '/home/projects/crent370/clib/strncmp.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'strncmp' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'strncmp' -STRNCMP PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'strncmp' code - L 6,8(11) ==> n - SLR 3,3 ==> x - L 4,0(11) ==> p1,s1 - L 5,4(11) ==> p2,s2 - CLR 3,6 ==> x,n - BNL @@L12 -@@L10 EQU * - IC 2,0(3,4) ==> x - IC 7,0(3,5) ==> x - L 15,=F'-1' - STC 7,80(,13) - CLM 2,1,80(13) - BL @@L1 - IC 2,0(3,4) ==> x - IC 7,0(3,5) ==> x - LA 15,1(0,0) - STC 7,80(,13) - CLM 2,1,80(13) - BH @@L1 - IC 2,0(3,4) ==> x - SLR 15,15 - CLM 2,1,=XL1'00' - BE @@L1 - A 3,=F'1' ==> x - CLR 3,6 ==> x,n - BL @@L10 -@@L12 EQU * - SLR 15,15 -@@L1 EQU * -* Function 'strncmp' epilogue - PDPEPIL -* Function 'strncmp' literal pool - DS 0D - LTORG -* Function 'strncmp' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/strncmpi.c b/src/crent370/clib/strncmpi.c deleted file mode 100644 index 45ce3f7..0000000 --- a/src/crent370/clib/strncmpi.c +++ /dev/null @@ -1,30 +0,0 @@ -/* STRNCMPI.C */ -#include -#include -#include - -#ifdef strncmpi -#undef strncmpi -#endif -__PDPCLIB_API__ int strncmpi(const char *s1, const char *s2, size_t n) -{ - const unsigned char *p1; - const unsigned char *p2; - size_t x = 0; - unsigned char c1; - unsigned char c2; - - p1 = (const unsigned char *)s1; - p2 = (const unsigned char *)s2; - while (x < n) { - c1 = tolower(p1[x]); - c2 = tolower(p2[x]); - - if (c1 < c2) return (-1); - else if (c1 > c2) return (1); - else if (c1 == '\0') return (0); - x++; - } - - return (0); -} diff --git a/src/crent370/clib/strncmpi.o b/src/crent370/clib/strncmpi.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/strncmpi.s b/src/crent370/clib/strncmpi.s deleted file mode 100644 index 566c7cd..0000000 --- a/src/crent370/clib/strncmpi.s +++ /dev/null @@ -1,82 +0,0 @@ - TITLE '/home/projects/crent370/clib/strncmpi.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'strncmpi' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'strncmpi' -STRNCMPI PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'strncmpi' code - L 7,8(11) ==> n - SLR 4,4 ==> x - L 6,0(11) ==> p1,s1 - L 5,4(11) ==> p2,s2 - CLR 4,7 ==> x,n - BNL @@L12 -@@L10 EQU * - SLR 2,2 - IC 2,0(4,6) ==> x - ST 2,88(13) - LA 1,88(,13) - L 15,=V(TOLOWER) - BALR 14,15 - LR 3,15 ==> c1 - SLR 2,2 - IC 2,0(4,5) ==> x - ST 2,88(13) - LA 1,88(,13) - L 15,=V(TOLOWER) - BALR 14,15 - L 2,=F'-1' ==> c1 - STC 15,80(,13) ==> c2 - CLM 3,1,80(13) ==> c1 - BL @@L1 - LA 2,1(0,0) ==> c1 - BH @@L1 - SLR 2,2 ==> c1 - CLM 3,1,=XL1'00' ==> c1 - BE @@L1 - A 4,=F'1' ==> x - CLR 4,7 ==> x,n - BL @@L10 -@@L12 EQU * - SLR 2,2 ==> c1 -@@L1 EQU * - LR 15,2 ==> c1 -* Function 'strncmpi' epilogue - PDPEPIL -* Function 'strncmpi' literal pool - DS 0D - LTORG -* Function 'strncmpi' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/strncpy.c b/src/crent370/clib/strncpy.c deleted file mode 100644 index 52fcab0..0000000 --- a/src/crent370/clib/strncpy.c +++ /dev/null @@ -1,26 +0,0 @@ -/* STRNCPY.C */ -#include -#include -#include - -#ifdef strncpy -#undef strncpy -#endif -__PDPCLIB_API__ char *strncpy(char *s1, const char *s2, size_t n) -{ - char *p = s1; - size_t x; - - for (x=0; x < n; x++) { - *p = *s2; - if (*s2 == '\0') break; - p++; - s2++; - } - - for (; x < n; x++) { - *p++ = '\0'; - } - - return (s1); -} diff --git a/src/crent370/clib/strncpy.o b/src/crent370/clib/strncpy.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/strncpy.s b/src/crent370/clib/strncpy.s deleted file mode 100644 index b7b9e44..0000000 --- a/src/crent370/clib/strncpy.s +++ /dev/null @@ -1,73 +0,0 @@ - TITLE '/home/projects/crent370/clib/strncpy.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'strncpy' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'strncpy' -STRNCPY PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'strncpy' code - L 15,0(11) ==> s1 - L 5,4(11) ==> s2 - L 6,8(11) ==> n - LR 3,15 ==> p,s1 - SLR 4,4 ==> x - CLR 4,6 ==> x,n - BNL @@L3 -@@L7 EQU * - MVC 0(1,3),0(5) ==> p,s2 - IC 2,0(5) ==> s2 - CLM 2,1,=XL1'00' - BE @@L3 - A 3,=F'1' ==> p - A 5,=F'1' ==> s2 - A 4,=F'1' ==> x - CLR 4,6 ==> x,n - BL @@L7 -@@L3 EQU * - CLR 4,6 ==> x,n - BNL @@L15 -@@L12 EQU * - MVI 0(3),0 ==> p - A 3,=F'1' ==> p - A 4,=F'1' ==> x - CLR 4,6 ==> x,n - BL @@L12 -@@L15 EQU * -* Function 'strncpy' epilogue - PDPEPIL -* Function 'strncpy' literal pool - DS 0D - LTORG -* Function 'strncpy' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/strpbrk.c b/src/crent370/clib/strpbrk.c deleted file mode 100644 index 529fef5..0000000 --- a/src/crent370/clib/strpbrk.c +++ /dev/null @@ -1,25 +0,0 @@ -/* STRPBRK.C */ -#include -#include -#include - -#ifdef strpbrk -#undef strpbrk -#endif -__PDPCLIB_API__ char *strpbrk(const char *s1, const char *s2) -{ - const char *p1; - const char *p2; - - p1 = s1; - while (*p1 != '\0') { - p2 = s2; - while (*p2 != '\0') { - if (*p1 == *p2) return ((char *)p1); - p2++; - } - p1++; - } - - return (NULL); -} diff --git a/src/crent370/clib/strpbrk.o b/src/crent370/clib/strpbrk.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/strpbrk.s b/src/crent370/clib/strpbrk.s deleted file mode 100644 index 0fd123a..0000000 --- a/src/crent370/clib/strpbrk.s +++ /dev/null @@ -1,72 +0,0 @@ - TITLE '/home/projects/crent370/clib/strpbrk.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'strpbrk' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'strpbrk' -STRPBRK PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'strpbrk' code - L 5,4(11) ==> s2 - L 15,0(11) ==> p1,s1 - IC 2,0(15) ==> p1 - CLM 2,1,=XL1'00' - BE @@L12 -@@L10 EQU * - LR 3,5 ==> p2,s2 - IC 2,0(5) ==> p2 - CLM 2,1,=XL1'00' - BE @@L14 - IC 4,0(15) ==> p1 -@@L9 EQU * - CLM 4,1,0(3) ==> p2 - BE @@L1 - A 3,=F'1' ==> p2 - IC 2,0(3) ==> p2 - CLM 2,1,=XL1'00' - BNE @@L9 -@@L14 EQU * - A 15,=F'1' ==> p1 - IC 2,0(15) ==> p1 - CLM 2,1,=XL1'00' - BNE @@L10 -@@L12 EQU * - SLR 15,15 ==> p1 -@@L1 EQU * -* Function 'strpbrk' epilogue - PDPEPIL -* Function 'strpbrk' literal pool - DS 0D - LTORG -* Function 'strpbrk' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/strrchr.c b/src/crent370/clib/strrchr.c deleted file mode 100644 index 35f8886..0000000 --- a/src/crent370/clib/strrchr.c +++ /dev/null @@ -1,20 +0,0 @@ -/* STRRCHR.C */ -#include -#include -#include - -#ifdef strrchr -#undef strrchr -#endif -__PDPCLIB_API__ char *strrchr(const char *s, int c) -{ - const char *p; - - p = s + strlen(s); - while (p >= s) { - if (*p == (char)c) return ((char *)p); - p--; - } - - return (NULL); -} diff --git a/src/crent370/clib/strrchr.o b/src/crent370/clib/strrchr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/strrchr.s b/src/crent370/clib/strrchr.s deleted file mode 100644 index db9cef9..0000000 --- a/src/crent370/clib/strrchr.s +++ /dev/null @@ -1,64 +0,0 @@ - TITLE '/home/projects/crent370/clib/strrchr.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'strrchr' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'strrchr' -STRRCHR PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'strrchr' code - L 2,0(11) ==> s - L 3,4(11) ==> c - ST 2,88(13) ==> s - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - AR 15,2 ==> p,s - CLR 15,2 ==> p,s - BL @@L8 -@@L6 EQU * - CLM 3,1,0(15) ==> c,p - BE @@L1 - BCTR 15,0 ==> p - CLR 15,2 ==> p,s - BNL @@L6 -@@L8 EQU * - SLR 15,15 ==> p -@@L1 EQU * -* Function 'strrchr' epilogue - PDPEPIL -* Function 'strrchr' literal pool - DS 0D - LTORG -* Function 'strrchr' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/strspn.c b/src/crent370/clib/strspn.c deleted file mode 100644 index 625a560..0000000 --- a/src/crent370/clib/strspn.c +++ /dev/null @@ -1,27 +0,0 @@ -/* STRSPN.C */ -#include -#include -#include - -#ifdef strspn -#undef strspn -#endif -__PDPCLIB_API__ size_t strspn(const char *s1, const char *s2) -{ - const char *p1; - const char *p2; - - p1 = s1; - while (*p1 != '\0') { - p2 = s2; - while (*p2 != '\0') { - if (*p1 == *p2) break; - p2++; - } - - if (*p2 == '\0') return ((size_t)(p1 - s1)); - p1++; - } - - return ((size_t)(p1 - s1)); -} diff --git a/src/crent370/clib/strspn.o b/src/crent370/clib/strspn.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/strspn.s b/src/crent370/clib/strspn.s deleted file mode 100644 index 4c16efe..0000000 --- a/src/crent370/clib/strspn.s +++ /dev/null @@ -1,79 +0,0 @@ - TITLE '/home/projects/crent370/clib/strspn.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'strspn' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'strspn' -STRSPN PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'strspn' code - L 5,0(11) ==> s1 - L 6,4(11) ==> s2 - LR 4,5 ==> p1,s1 - IC 2,0(5) ==> s1 - CLM 2,1,=XL1'00' - BE @@L13 -@@L11 EQU * - LR 15,6 ==> p2,s2 - IC 2,0(6) ==> p2 - CLM 2,1,=XL1'00' - BE @@L6 - IC 3,0(4) ==> p1 -@@L9 EQU * - CLM 3,1,0(15) ==> p2 - BE @@L6 - A 15,=F'1' ==> p2 - IC 2,0(15) ==> p2 - CLM 2,1,=XL1'00' - BNE @@L9 -@@L6 EQU * - IC 2,0(15) ==> p2 - LR 15,4 ==> p1 - SR 15,5 ==> s1 - CLM 2,1,=XL1'00' - BE @@L1 - A 4,=F'1' ==> p1 - IC 2,0(4) ==> p1 - CLM 2,1,=XL1'00' - BNE @@L11 -@@L13 EQU * - LR 15,4 ==> p1 - SR 15,5 ==> s1 -@@L1 EQU * -* Function 'strspn' epilogue - PDPEPIL -* Function 'strspn' literal pool - DS 0D - LTORG -* Function 'strspn' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/strstr.c b/src/crent370/clib/strstr.c deleted file mode 100644 index 63df16c..0000000 --- a/src/crent370/clib/strstr.c +++ /dev/null @@ -1,33 +0,0 @@ -/* STRSTR.C */ -#include -#include -#include - -/* strstr by Frank Adam */ -/* modified by Paul Edwards */ - -#ifdef strstr -#undef strstr -#endif -__PDPCLIB_API__ char *strstr(const char *s1, const char *s2) -{ - const char *p = s1, *p1, *p2 = s2; - - while (*p) { - if (*p == *s2) { - p1 = p; - p2 = s2; - while ((*p2 != '\0') && (*p1 == *p2)) { - p1++; - p2++; - } - - if (*p2 == '\0') { - return (char *)p; - } - } - p++; - } - - return NULL; -} diff --git a/src/crent370/clib/strstr.o b/src/crent370/clib/strstr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/strstr.s b/src/crent370/clib/strstr.s deleted file mode 100644 index e575233..0000000 --- a/src/crent370/clib/strstr.s +++ /dev/null @@ -1,80 +0,0 @@ - TITLE '/home/projects/crent370/clib/strstr.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'strstr' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'strstr' -STRSTR PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'strstr' code - L 5,4(11) ==> s2 - L 4,0(11) ==> p,s1 - IC 2,0(4) ==> p - CLM 2,1,=XL1'00' - BE @@L14 -@@L12 EQU * - IC 2,0(4) ==> p - CLM 2,1,0(5) ==> s2 - BNE @@L5 - LR 3,4 ==> p1,p - LR 15,5 ==> p2,s2 - CLM 2,1,=XL1'00' - BE @@L7 -@@L10 EQU * - A 3,=F'1' ==> p1 - A 15,=F'1' ==> p2 - IC 2,0(15) ==> p2 - CLM 2,1,=XL1'00' - BE @@L7 - CLM 2,1,0(3) ==> p1 - BE @@L10 -@@L7 EQU * - IC 2,0(15) ==> p2 - LR 15,4 ==> p - CLM 2,1,=XL1'00' - BE @@L1 -@@L5 EQU * - A 4,=F'1' ==> p - IC 2,0(4) ==> p - CLM 2,1,=XL1'00' - BNE @@L12 -@@L14 EQU * - SLR 15,15 ==> p -@@L1 EQU * -* Function 'strstr' epilogue - PDPEPIL -* Function 'strstr' literal pool - DS 0D - LTORG -* Function 'strstr' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/strtod.c b/src/crent370/clib/strtod.c deleted file mode 100644 index d164901..0000000 --- a/src/crent370/clib/strtod.c +++ /dev/null @@ -1,86 +0,0 @@ -/* STRTOD.C */ -#include -#include -#include -#include -#include - -__PDPCLIB_API__ double strtod(const char *nptr, char **endptr) -{ - double x = 0.0; - double xs= 1.0; - double es = 1.0; - double xf = 0.0; - double xd = 1.0; - - while( isspace( (unsigned char)*nptr ) ) ++nptr; - if(*nptr == '-') { - xs = -1; - nptr++; - } - else if(*nptr == '+') { - nptr++; - } - - - while (1) { - if (isdigit((unsigned char)*nptr)) { - x = x * 10 + (*nptr - '0'); - nptr++; - } - else { - x = x * xs; - break; - } - } - - if (*nptr == '.') { - nptr++; - while (1) { - if (isdigit((unsigned char)*nptr)) { - xf = xf * 10 + (*nptr - '0'); - xd = xd * 10; - } - else { - x = x + xs * (xf / xd); - break; - } - nptr++; - } - } - - if ((*nptr == 'e') || (*nptr == 'E')) { - nptr++; - if (*nptr == '-') { - es = -1; - nptr++; - } - xd = 1; - xf = 0; - while (1) { - if (isdigit((unsigned char)*nptr)) { - xf = xf * 10 + (*nptr - '0'); - nptr++; - } - else { - while (xf > 0) { - xd *= 10; - xf--; - } - if (es < 0.0) { - x = x / xd; - } - else { - x = x * xd; - } - break; - } - } - } - - if (endptr) { - *endptr = (char *)nptr; - } - - return (x); -} diff --git a/src/crent370/clib/strtod.o b/src/crent370/clib/strtod.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/strtod.s b/src/crent370/clib/strtod.s deleted file mode 100644 index 5bf445a..0000000 --- a/src/crent370/clib/strtod.s +++ /dev/null @@ -1,224 +0,0 @@ - TITLE '/home/projects/crent370/clib/strtod.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'strtod' prologue -* frame base=88, local stack=8, call args=0 -&FUNC SETC 'strtod' -STRTOD PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'strtod' code - L 15,0(11) ==> nptr - L 5,4(11) ==> endptr - LD 6,=D'0.0E0' ==> x - LD 0,=D'1.0E0' - STD 0,88(13) ==> es - STD 0,80(,13) - LM 8,9,80(13) ==> xs - LDR 4,6 ==> xf,x - STD 0,80(,13) - LM 6,7,80(13) ==> xd - SLR 2,2 - IC 2,0(15) ==> nptr - L 3,=V(@@ISBUF) - L 3,0(3) ==> __isbuf - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'256' - CH 2,=H'0' - BE @@L41 -@@L5 EQU * - A 15,=F'1' ==> nptr - SLR 2,2 - IC 2,0(15) ==> nptr - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'256' - CH 2,=H'0' - BNE @@L5 -@@L41 EQU * - CLI 0(15),96 ==> nptr - BNE @@L6 - LM 8,9,=D'-1.0E0' ==> xs - B @@L46 -@@L44 EQU * - LDR 0,4 ==> xf - STM 6,7,80(13) ==> xd - LD 2,80(,13) - DDR 0,2 - STM 8,9,80(13) ==> xs - LD 2,80(,13) - MDR 0,2 - ADR 6,0 ==> x - B @@L15 -@@L45 EQU * - STM 6,7,80(13) ==> xd - LD 0,80(,13) - DDR 6,0 ==> x - B @@L22 -@@L6 EQU * - CLI 0(15),78 ==> nptr - BNE @@L7 -@@L46 EQU * - A 15,=F'1' ==> nptr -@@L7 EQU * - L 2,=V(@@ISBUF) - L 4,0(2) ==> __isbuf -@@L14 EQU * - SLR 3,3 - IC 3,0(15) ==> nptr - LR 2,3 - MH 2,=H'2' - LH 2,0(2,4) - N 2,=F'8' - CH 2,=H'0' - BE @@L12 - LDR 2,6 ==> x - MD 2,=D'1.0E1' - LR 2,3 - A 2,=F'-240' - MVC 80(4,13),=XL8'4E00000080000000' - ST 2,84(,13) - XI 84(13),128 - LD 0,80(,13) - SD 0,=XL8'4E00000080000000' - LDR 6,2 ==> x - ADR 6,0 ==> x - A 15,=F'1' ==> nptr - B @@L14 -@@L12 EQU * - STM 8,9,80(13) ==> xs - LD 2,80(,13) - MDR 6,2 ==> x - CLI 0(15),75 ==> nptr - BNE @@L15 - A 15,=F'1' ==> nptr - L 2,=V(@@ISBUF) - L 3,0(2) ==> __isbuf -@@L21 EQU * - SLR 2,2 - IC 2,0(15) ==> nptr - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'8' - CH 2,=H'0' - BE @@L44 - LDR 0,4 ==> xf - MD 0,=D'1.0E1' - SLR 2,2 - IC 2,0(15) ==> nptr - A 2,=F'-240' - MVC 80(4,13),=XL8'4E00000080000000' - ST 2,84(,13) - XI 84(13),128 - LD 2,80(,13) - SD 2,=XL8'4E00000080000000' - LDR 4,0 ==> xf - ADR 4,2 ==> xf - STM 6,7,80(13) ==> xd - LD 0,80(,13) - MD 0,=D'1.0E1' - STD 0,80(,13) - LM 6,7,80(13) ==> xd - A 15,=F'1' ==> nptr - B @@L21 -@@L15 EQU * - IC 2,0(15) ==> nptr - CLM 2,1,=XL1'85' - BE @@L23 - CLM 2,1,=XL1'C5' - BNE @@L22 -@@L23 EQU * - A 15,=F'1' ==> nptr - CLI 0(15),96 ==> nptr - BNE @@L24 - LD 2,=D'-1.0E0' - STD 2,88(13) ==> es - A 15,=F'1' ==> nptr -@@L24 EQU * - LM 6,7,=D'1.0E0' ==> xd - LD 4,=D'0.0E0' ==> xf - L 2,=V(@@ISBUF) - L 4,0(2) ==> __isbuf -@@L37 EQU * - SLR 3,3 - IC 3,0(15) ==> nptr - LR 2,3 - MH 2,=H'2' - LH 2,0(2,4) - N 2,=F'8' - CH 2,=H'0' - BE @@L28 - LDR 2,4 ==> xf - MD 2,=D'1.0E1' - LR 2,3 - A 2,=F'-240' - MVC 80(4,13),=XL8'4E00000080000000' - ST 2,84(,13) - XI 84(13),128 - LD 0,80(,13) - SD 0,=XL8'4E00000080000000' - LDR 4,2 ==> xf - ADR 4,0 ==> xf - A 15,=F'1' ==> nptr - B @@L37 -@@L28 EQU * - LTDR 4,4 ==> xf - BNH @@L43 -@@L33 EQU * - STM 6,7,80(13) ==> xd - LD 0,80(,13) - MD 0,=D'1.0E1' - STD 0,80(,13) - LM 6,7,80(13) ==> xd - SD 4,=D'1.0E0' ==> xf - BH @@L33 -@@L43 EQU * - LD 2,88(13) ==> es - LTDR 2,2 - BL @@L45 - STM 6,7,80(13) ==> xd - LD 0,80(,13) - MDR 6,0 ==> x -@@L22 EQU * - LTR 5,5 ==> endptr - BE @@L38 - ST 15,0(5) ==> nptr,endptr -@@L38 EQU * - LDR 0,6 ==> x -* Function 'strtod' epilogue - PDPEPIL -* Function 'strtod' literal pool - DS 0D - LTORG -* Function 'strtod' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/strtok.c b/src/crent370/clib/strtok.c deleted file mode 100644 index a735c1b..0000000 --- a/src/crent370/clib/strtok.c +++ /dev/null @@ -1,42 +0,0 @@ -/* STRTOK.C */ -#include -#include -#include -#include "clibcrt.h" - -static char *static_old = NULL; - -#ifdef strtok -#undef strtok -#endif -__PDPCLIB_API__ char *strtok(char *s1, const char *s2) -{ - CLIBCRT *crt = __crtget(); - char **old = crt ? &crt->crtstrtk : &static_old; - char *p; - size_t len; - size_t remain; - - if (s1 != NULL) *old = s1; - if (*old == NULL) return (NULL); - - p = *old; - len = strspn(p, s2); - remain = strlen(p); - if (remain <= len) { - *old = NULL; - return (NULL); - } - - p += len; - len = strcspn(p, s2); - remain = strlen(p); - if (remain <= len) { - *old = NULL; - return (p); - } - - *(p + len) = '\0'; - *old = p + len + 1; - return (p); -} diff --git a/src/crent370/clib/strtok.o b/src/crent370/clib/strtok.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/strtok.s b/src/crent370/clib/strtok.s deleted file mode 100644 index 36fd404..0000000 --- a/src/crent370/clib/strtok.s +++ /dev/null @@ -1,110 +0,0 @@ - TITLE '/home/projects/crent370/clib/strtok.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program data area - DS 0F -@@2 EQU * - DC F'0' -* Program text area - DS 0F - EJECT -* external function 'strtok' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'strtok' -STRTOK PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'strtok' code - L 2,0(11) ==> s1 - L 5,4(11) ==> s2 - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - LR 3,15 ==> old,crt - A 3,=F'276' ==> old - LTR 15,15 ==> crt - BNE @@L3 - L 3,=A(@@2) ==> old -@@L3 EQU * - LTR 2,2 ==> s1 - BE @@L4 - ST 2,0(3) ==> s1,old -@@L4 EQU * - L 2,0(3) ==> p,old - LR 15,2 ==> p - LTR 2,2 ==> p - BE @@L1 - L 4,0(3) ==> p,old - ST 4,88(13) ==> p - ST 5,92(13) ==> s2 - LA 1,88(,13) - L 15,=V(STRSPN) - BALR 14,15 - LR 2,15 ==> len - ST 4,88(13) ==> p - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - CLR 15,2 ==> remain,len - BH @@L6 - MVC 0(4,3),=F'0' ==> old - SLR 15,15 ==> p - B @@L1 -@@L6 EQU * - AR 4,2 ==> p,len - ST 4,88(13) ==> p - ST 5,92(13) ==> s2 - LA 1,88(,13) - L 15,=V(STRCSPN) - BALR 14,15 - LR 2,15 ==> len - ST 4,88(13) ==> p - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - CLR 15,2 ==> remain,len - BH @@L7 - MVC 0(4,3),=F'0' ==> old - B @@L8 -@@L7 EQU * - SLR 5,5 - STC 5,0(2,4) ==> len - AR 2,4 ==> p - A 2,=F'1' - ST 2,0(3) ==> old -@@L8 EQU * - LR 15,4 ==> p -@@L1 EQU * -* Function 'strtok' epilogue - PDPEPIL -* Function 'strtok' literal pool - DS 0D - LTORG -* Function 'strtok' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/strtol.c b/src/crent370/clib/strtol.c deleted file mode 100644 index fd503a2..0000000 --- a/src/crent370/clib/strtol.c +++ /dev/null @@ -1,33 +0,0 @@ -/* STRTOL.C */ -#include -#include -#include - -__PDPCLIB_API__ long int strtol(const char *nptr, char **endptr, int base) -{ - unsigned long y; - long x; - int neg = 0; - - while (isspace((unsigned char)*nptr)) { - nptr++; - } - - if (*nptr == '-') { - neg = 1; - nptr++; - } - else if (*nptr == '+') { - nptr++; - } - - y = strtoul(nptr, endptr, base); - if (neg) { - x = (long)-y; - } - else { - x = (long)y; - } - - return (x); -} diff --git a/src/crent370/clib/strtol.o b/src/crent370/clib/strtol.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/strtol.s b/src/crent370/clib/strtol.s deleted file mode 100644 index eccaf29..0000000 --- a/src/crent370/clib/strtol.s +++ /dev/null @@ -1,89 +0,0 @@ - TITLE '/home/projects/crent370/clib/strtol.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'strtol' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'strtol' -STRTOL PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'strtol' code - L 15,0(11) ==> nptr - SLR 5,5 ==> neg - SLR 2,2 - IC 2,0(15) ==> nptr - L 3,=V(@@ISBUF) - L 3,0(3) ==> __isbuf - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'256' - CH 2,=H'0' - BE @@L12 -@@L5 EQU * - A 15,=F'1' ==> nptr - SLR 2,2 - IC 2,0(15) ==> nptr - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'256' - CH 2,=H'0' - BNE @@L5 -@@L12 EQU * - CLI 0(15),96 ==> nptr - BNE @@L6 - LA 5,1(0,0) ==> neg - AR 15,5 ==> nptr - B @@L7 -@@L6 EQU * - CLI 0(15),78 ==> nptr - BNE @@L7 - A 15,=F'1' ==> nptr -@@L7 EQU * - ST 15,88(13) ==> nptr - MVC 92(4,13),4(11) ==> endptr - MVC 96(4,13),8(11) ==> base - LA 1,88(,13) - L 15,=V(STRTOUL) - BALR 14,15 - LR 2,15 ==> y - LCR 15,15 ==> x,y - LTR 5,5 ==> neg - BNE @@L10 - LR 15,2 ==> x,y -@@L10 EQU * -* Function 'strtol' epilogue - PDPEPIL -* Function 'strtol' literal pool - DS 0D - LTORG -* Function 'strtol' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/strtoul.c b/src/crent370/clib/strtoul.c deleted file mode 100644 index 877dca7..0000000 --- a/src/crent370/clib/strtoul.c +++ /dev/null @@ -1,69 +0,0 @@ -/* STRTOUL.C */ -#include -#include -#include - -/* this logic is also in vvscanf - if you update this, update - that one too */ - -__PDPCLIB_API__ unsigned long int strtoul( - const char *nptr, char **endptr, int base) -{ - unsigned long x = 0; - int undecided = 0; - - if (base == 0) { - undecided = 1; - } - - while (isspace((unsigned char)*nptr)) { - nptr++; - } - - while (1) { - if (isdigit((unsigned char)*nptr)) { - if (base == 0) { - if (*nptr == '0') { - base = 8; - } - else { - base = 10; - undecided = 0; - } - } - x = x * base + (*nptr - '0'); - nptr++; - } - else if (isalpha((unsigned char)*nptr)) { - if ((*nptr == 'X') || (*nptr == 'x')) { - if ((base == 0) || ((base == 8) && undecided)) { - base = 16; - undecided = 0; - nptr++; - } - else if (base == 16) { - /* hex values are allowed to have an optional 0x */ - nptr++; - } - else { - break; - } - } - else if (base <= 10) { - break; - } - else { - x = x * base + (toupper((unsigned char)*nptr) - 'A') + 10; - nptr++; - } - } - else { - break; - } - } - - if (endptr != NULL) { - *endptr = (char *)nptr; - } - return (x); -} diff --git a/src/crent370/clib/strtoul.o b/src/crent370/clib/strtoul.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/strtoul.s b/src/crent370/clib/strtoul.s deleted file mode 100644 index b3492b5..0000000 --- a/src/crent370/clib/strtoul.s +++ /dev/null @@ -1,164 +0,0 @@ - TITLE '/home/projects/crent370/clib/strtoul.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'strtoul' prologue -* frame base=88, local stack=8, call args=0 -&FUNC SETC 'strtoul' -STRTOUL PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'strtoul' code - SLR 2,2 - SLR 3,3 - ST 2,88(13) - ST 3,4+88(13) - LR 6,2 ==> base - LR 7,3 ==> base - L 4,0(11) ==> nptr - L 5,8(11) ==> base - SLR 15,15 ==> x - LPR 8,5 ==> undecided,base - BCTR 8,0 ==> undecided - SRL 8,31 ==> undecided - SLR 2,2 - IC 2,0(4) ==> nptr - L 3,=V(@@ISBUF) - L 3,0(3) ==> __isbuf - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'256' - CH 2,=H'0' - BE @@L27 -@@L6 EQU * - A 4,=F'1' ==> nptr - SLR 2,2 - IC 2,0(4) ==> nptr - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'256' - CH 2,=H'0' - BNE @@L6 -@@L27 EQU * - SLR 2,2 - IC 2,0(4) ==> nptr - L 3,=V(@@ISBUF) - L 3,0(3) ==> __isbuf - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'8' - CH 2,=H'0' - BE @@L10 - LTR 5,5 ==> base - BNE @@L11 - CLI 0(4),240 ==> nptr - BNE @@L12 - LA 5,8(0,0) ==> base - B @@L11 -@@L12 EQU * - LA 5,10(0,0) ==> base - SLR 8,8 ==> undecided -@@L11 EQU * - ST 5,92(13) ==> base - L 2,88(13) - L 3,4+88(13) - MR 2,15 ==> x - ST 2,88(13) - ST 3,4+88(13) - SLR 2,2 - IC 2,0(4) ==> nptr - L 15,92(13) ==> x - AR 15,2 ==> x - A 15,=F'-240' ==> x - B @@L30 -@@L10 EQU * - SLR 2,2 - IC 2,0(4) ==> nptr - L 3,=V(@@ISBUF) - L 3,0(3) ==> __isbuf - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'2' - CH 2,=H'0' - BE @@L8 - IC 2,0(4) ==> nptr - CLM 2,1,=XL1'E7' - BE @@L17 - CLM 2,1,=XL1'A7' - BNE @@L16 -@@L17 EQU * - LTR 5,5 ==> base - BE @@L19 - LA 3,8(0,0) - CLR 5,3 ==> base - BNE @@L18 - LTR 8,8 ==> undecided - BE @@L18 -@@L19 EQU * - LA 5,16(0,0) ==> base - SLR 8,8 ==> undecided - B @@L30 -@@L18 EQU * - LA 2,16(0,0) - CLR 5,2 ==> base - BNE @@L8 - B @@L30 -@@L16 EQU * - LA 3,10(0,0) - CR 5,3 ==> base - BNH @@L8 - LR 7,5 ==> base - MR 6,15 ==> base,x - SLR 2,2 - IC 2,0(4) ==> nptr - L 3,=V(@@TOUP) - L 3,0(3) ==> __toup - MH 2,=H'2' - LH 2,0(2,3) - LR 15,2 ==> x - AR 15,7 ==> x,base - A 15,=F'-183' ==> x -@@L30 EQU * - A 4,=F'1' ==> nptr - B @@L27 -@@L8 EQU * - L 2,4(11) ==> endptr - LTR 2,2 - BE @@L28 - ST 4,0(2) ==> nptr -@@L28 EQU * -* Function 'strtoul' epilogue - PDPEPIL -* Function 'strtoul' literal pool - DS 0D - LTORG -* Function 'strtoul' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/strxfrm.c b/src/crent370/clib/strxfrm.c deleted file mode 100644 index eae3113..0000000 --- a/src/crent370/clib/strxfrm.c +++ /dev/null @@ -1,19 +0,0 @@ -/* STRXFRM.C */ -#include -#include -#include - -#ifdef strxfrm -#undef strxfrm -#endif -__PDPCLIB_API__ size_t strxfrm(char *s1, const char *s2, size_t n) -{ - size_t oldlen; - - oldlen = strlen(s2); - if (oldlen < n) { - memcpy(s1, s2, oldlen); - s1[oldlen] = '\0'; - } - return (oldlen); -} diff --git a/src/crent370/clib/strxfrm.o b/src/crent370/clib/strxfrm.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/strxfrm.s b/src/crent370/clib/strxfrm.s deleted file mode 100644 index 5579bdd..0000000 --- a/src/crent370/clib/strxfrm.s +++ /dev/null @@ -1,65 +0,0 @@ - TITLE '/home/projects/crent370/clib/strxfrm.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'strxfrm' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'strxfrm' -STRXFRM PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'strxfrm' code - L 4,0(11) ==> s1 - L 3,4(11) ==> s2 - ST 3,88(13) ==> s2 - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 2,15 ==> oldlen - CL 15,8(11) ==> oldlen,n - BNL @@L2 - ST 4,88(13) ==> s1 - ST 3,92(13) ==> s2 - ST 15,96(13) ==> oldlen - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - SLR 3,3 - STC 3,0(2,4) ==> oldlen -@@L2 EQU * - LR 15,2 ==> oldlen -* Function 'strxfrm' epilogue - PDPEPIL -* Function 'strxfrm' literal pool - DS 0D - LTORG -* Function 'strxfrm' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/svcmain.c b/src/crent370/clib/svcmain.c deleted file mode 100644 index fd89fad..0000000 --- a/src/crent370/clib/svcmain.c +++ /dev/null @@ -1,70 +0,0 @@ -#include -#include -#include -#include - -/* SVCMAIN() on entry svcregs->r1 has the request code, r15, r0 and r1 parm values are 0 */ -/* After return to @@SVC, r15, r0, and r1 values are returned to caller */ -int svcmain(SVCREGS *svcregs, unsigned *r15, unsigned *r0, unsigned *r1) -{ - RBBASIC *rb = svcregs->rblink; /* callers request block */ - char *p; - - switch(svcregs->r1) { - case SVCMAIN_SUP: - /* switch caller to supervisor state */ - *r15 = !(rb->RBOPSWB2 & RBOPSWPS); - /* R15=0 caller in problem state, otherwise caller already in supervisor state */ - - /* remove problem state bit from callers PSW */ - rb->RBOPSWB2 &= ~RBOPSWPS; - break; - - case SVCMAIN_PROB: - /* switch caller to problem state */ - *r15 = (rb->RBOPSWB2 & RBOPSWPS); - /* R15=0 caller in supervisor state, otherwise caller already in problem state */ - - /* set problem state bit in callers PSW */ - rb->RBOPSWB2 |= RBOPSWPS; - break; - - case SVCMAIN_KEY: - /* return the callers PSW key in R15 */ - *r15 = rb->RBOPSWB2 & 0xF0; - - /* special case, svcregs->r15==0xFF does not change the key */ - /* ... we return the current key in R15 */ - if ((svcregs->r15 & 0xFF) == PSWKEYNONE) break; - - /* if the caller has the key in the lowest bits, shift the key to proper alignment */ - if (svcregs->r15 < 0x10) svcregs->r15 << 4; - - /* remove and replace the callers PSW key value */ - rb->RBOPSWB2 &= 0x0F; /* remove */ - rb->RBOPSWB2 |= (svcregs->r15 & 0xF0); /* replace */ - break; - - case SVCMAIN_AUTHON: - p = svcregs->jscb; /* get JSCB address */ - *r15 = p[0xEC] & 1; /* R15=0 if not auth, =1 if already auth */ - p[0xEC] |= 1; /* set JSCBOPTS JSCBAUTH ON */ - break; - - case SVCMAIN_AUTHOFF: - p = svcregs->jscb; /* get JSCB address */ - *r15 = !(p[0xEC] & 1); /* R15=0 if auth, =1 if already not auth */ - p[0xEC] &= 0xFE; /* set JSCBOPTS JSCBAUTH OFF */ - break; - - default: - /* invalid request */ - *r15 = 0xFFFFFFFF; - break; - } - - return 0; -} -#if 0 -__asm__("IEZJSCB ,"); -#endif diff --git a/src/crent370/clib/svcmain.o b/src/crent370/clib/svcmain.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/svcmain.s b/src/crent370/clib/svcmain.s deleted file mode 100644 index 1422b30..0000000 --- a/src/crent370/clib/svcmain.s +++ /dev/null @@ -1,117 +0,0 @@ - TITLE '/home/projects/crent370/clib/svcmain.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'svcmain' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'svcmain' -SVCMAIN PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'svcmain' code - L 4,0(11) ==> svcregs - L 5,4(11) ==> r15 - L 15,32(4) ==> rb,rblink - L 3,8(4) ==> .r1 - LA 2,4(0,0) - CLR 3,2 - BH @@L10 - MH 3,=H'4' - L 2,=A(@@L11) - L 14,0(3,2) - BR 14 - DS 0F - DS 0F - DS 0F - LTORG - DS 0F -@@L11 EQU * - DC A(@@L3) - DC A(@@L4) - DC A(@@L5) - DC A(@@L8) - DC A(@@L9) -@@L3 EQU * - SLR 2,2 - IC 2,17(15) ==> .rbopsw - X 2,=F'1' - N 2,=F'1' - ST 2,0(5) ==> r15 - NI 17(15),254 ==> .rbopsw - B @@L2 -@@L4 EQU * - IC 2,17(15) ==> .rbopsw - N 2,=F'1' - N 2,=XL4'000000FF' - ST 2,0(5) ==> r15 - OI 17(15),1 ==> .rbopsw - B @@L2 -@@L5 EQU * - IC 2,17(15) ==> .rbopsw - N 2,=F'240' - ST 2,0(5) ==> r15 - CLI 3(4),255 ==> .r15 - BE @@L2 - NI 17(15),15 ==> .rbopsw - IC 2,3(4) ==> .r15 - N 2,=F'-16' - IC 3,17(15) ==> .rbopsw - OR 3,2 - STC 3,17(15) ==> .rbopsw - B @@L2 -@@L8 EQU * - L 3,36(4) ==> p,jscb - IC 2,236(3) - N 2,=F'1' - N 2,=XL4'000000FF' - ST 2,0(5) ==> r15 - OI 236(3),1 - B @@L2 -@@L9 EQU * - L 3,36(4) ==> p,jscb - SLR 2,2 - IC 2,236(3) - X 2,=F'1' - N 2,=F'1' - ST 2,0(5) ==> r15 - NI 236(3),254 - B @@L2 -@@L10 EQU * - MVC 0(4,5),=F'-1' ==> r15 -@@L2 EQU * - SLR 15,15 -* Function 'svcmain' epilogue - PDPEPIL -* Function 'svcmain' literal pool - DS 0D - LTORG -* Function 'svcmain' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/system.c b/src/crent370/clib/system.c deleted file mode 100644 index 63154b2..0000000 --- a/src/crent370/clib/system.c +++ /dev/null @@ -1,49 +0,0 @@ -/* SYSTEM.C */ -#include -#include -#include -#include -#include -#include "clibcrt.h" - -/* The following code was taken from Paul Markham's "EXEC" program, - and adapted to create a system() function. The code is all - public domain */ - -__PDPCLIB_API__ int system(const char *string) -{ - CLIBGRT *grt = __grtget(); - char pgm[9]; - size_t pgm_len; - size_t cnt; - char *p; - - p = strchr(string, ' '); - if (p == NULL) { - p = strchr(string, '\0'); - } - - pgm_len = p - string; - /* don't allow a program name greater than 8 */ - - if (pgm_len > 8) { - return (-1); - } - memcpy(pgm, string, pgm_len); - pgm[pgm_len] = '\0'; - - /* uppercase the program name */ - for (cnt = 0; cnt < pgm_len; cnt++) { - pgm[cnt] = toupper((unsigned char)pgm[cnt]); - } - - /* point to parms */ - if (*p != '\0') { - p++; - } - - /* all parms now available */ - /* we use 1 = batch or 2 = tso */ - return (__system(grt->grtflag1 & GRTFLAG1_TSO ? 2 : 1, - pgm_len, pgm, strlen(p), p)); -} diff --git a/src/crent370/clib/system.o b/src/crent370/clib/system.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/system.s b/src/crent370/clib/system.s deleted file mode 100644 index ae68d8f..0000000 --- a/src/crent370/clib/system.s +++ /dev/null @@ -1,122 +0,0 @@ - TITLE '/home/projects/crent370/clib/system.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'system' prologue -* frame base=88, local stack=16, call args=24 -&FUNC SETC 'system' -SYSTEM PDPPRLG CINDEX=0,FRAME=128,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'system' code - L 3,0(11) ==> string - LA 1,88(,13) - L 15,=V(@@GRTGET) - BALR 14,15 - LR 6,15 ==> grt - ST 3,88(13) ==> string - MVC 92(4,13),=F'64' - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LR 4,15 ==> p - LTR 15,15 ==> p - BNE @@L2 - ST 3,88(13) ==> string - ST 15,92(13) ==> p - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LR 4,15 ==> p -@@L2 EQU * - LR 5,4 ==> pgm_len,p - SR 5,3 ==> pgm_len,string - L 15,=F'-1' ==> grt - LA 2,8(0,0) - CLR 5,2 ==> pgm_len - BH @@L1 - LA 2,112(,13) - ST 2,88(13) - ST 3,92(13) ==> string - ST 5,96(13) ==> pgm_len - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - SLR 2,2 - STC 2,112(13,5) ==> pgm - SLR 3,3 ==> cnt - CLR 3,5 ==> cnt,pgm_len - BNL @@L13 - L 2,=V(@@TOUP) - L 15,0(2) ==> __toup -@@L8 EQU * - SLR 2,2 - IC 2,112(13,3) ==> pgm - MH 2,=H'2' - IC 2,1(2,15) - STC 2,112(13,3) ==> pgm - A 3,=F'1' ==> cnt - CLR 3,5 ==> cnt,pgm_len - BL @@L8 -@@L13 EQU * - IC 2,0(4) ==> p - CLM 2,1,=XL1'00' - BE @@L9 - A 4,=F'1' ==> p -@@L9 EQU * - ST 4,88(13) ==> p - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - IC 2,10(6) ==> .grtflag1 - N 2,=F'64' - N 2,=XL4'000000FF' - BCTR 2,0 - SRL 2,31 - LA 3,2(0,0) - SR 3,2 - ST 3,88(13) - ST 5,92(13) ==> pgm_len - LA 2,112(,13) - ST 2,96(13) - ST 15,100(13) ==> grt - ST 4,104(13) ==> p - LA 1,88(,13) - L 15,=V(@@SYSTEM) - BALR 14,15 -@@L1 EQU * -* Function 'system' epilogue - PDPEPIL -* Function 'system' literal pool - DS 0D - LTORG -* Function 'system' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/tan.c b/src/crent370/clib/tan.c deleted file mode 100644 index 410d74f..0000000 --- a/src/crent370/clib/tan.c +++ /dev/null @@ -1,50 +0,0 @@ -/* TAN.C */ -#if 1 -#include "math.h" -#include "float.h" -#include "errno.h" -#include "stddef.h" - -#if 0 -/* - - Some constants to make life easier elsewhere - (These should I guess be in math.h) - -*/ -static const double pi = 3.1415926535897932384626433832795; -static const double ln10 = 2.3025850929940456840179914546844; -static const double ln2 = 0.69314718055994530941723212145818 ; -#else -#define pi (3.1415926535897932384626433832795) -#define ln10 (2.3025850929940456840179914546844) -#define ln2 (0.69314718055994530941723212145818) -#endif - -#else -#include -#endif - -#ifdef tan -#undef tan -#endif -__PDPCLIB_API__ double tan (double x) -{ -/* - - use tan = sin(x)/cos(x) - if cos(x) is 0 then return HUGE_VAL else return sin/cos - - *** need to set ERROR for overflow *** - -*/ - double temp; - - temp=cos(x); - if (temp == 0.0 ) - { - /* errno=EDOM; don't seem to return an error here */ - return (HUGE_VAL); /* need to set error here */ - } - return ( sin(x)/cos(x) ); -} diff --git a/src/crent370/clib/tan.o b/src/crent370/clib/tan.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/tan.s b/src/crent370/clib/tan.s deleted file mode 100644 index 7b216e8..0000000 --- a/src/crent370/clib/tan.s +++ /dev/null @@ -1,72 +0,0 @@ - TITLE '/home/projects/crent370/clib/tan.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'tan' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'tan' -TAN PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'tan' code - LM 4,5,0(11) ==> x - ST 4,88(13) ==> x - ST 5,4+88(13) ==> x - LA 1,88(,13) - L 15,=V(COS) - BALR 14,15 - LD 2,=D'9.99999999999999983034E72' ==> temp - LTDR 0,0 ==> temp - BE @@L1 - ST 4,88(13) ==> x - ST 5,4+88(13) ==> x - LA 1,88(,13) - L 15,=V(SIN) - BALR 14,15 - STD 0,80(,13) - LM 2,3,80(13) ==> temp - ST 4,88(13) ==> x - ST 5,4+88(13) ==> x - LA 1,88(,13) - L 15,=V(COS) - BALR 14,15 - STM 2,3,80(13) ==> temp - LD 2,80(,13) ==> temp - DDR 2,0 ==> temp -@@L1 EQU * - LDR 0,2 ==> temp -* Function 'tan' epilogue - PDPEPIL -* Function 'tan' literal pool - DS 0D - LTORG -* Function 'tan' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/tanh.c b/src/crent370/clib/tanh.c deleted file mode 100644 index 9fbdf83..0000000 --- a/src/crent370/clib/tanh.c +++ /dev/null @@ -1,38 +0,0 @@ -/* TANH.C */ -#if 1 -#include "math.h" -#include "float.h" -#include "errno.h" -#include "stddef.h" - -#if 0 -/* - - Some constants to make life easier elsewhere - (These should I guess be in math.h) - -*/ -static const double pi = 3.1415926535897932384626433832795; -static const double ln10 = 2.3025850929940456840179914546844; -static const double ln2 = 0.69314718055994530941723212145818 ; -#else -#define pi (3.1415926535897932384626433832795) -#define ln10 (2.3025850929940456840179914546844) -#define ln2 (0.69314718055994530941723212145818) -#endif - -#else -#include -#endif - -/* - tanh returns the hyperbolic area tangent of floating point argument x. -*/ - -__PDPCLIB_API__ double tanh(double x) -{ - double dexp2; - - dexp2 = exp( -2.0 * x); - return ( (1.0 - dexp2) / (1.0 + dexp2) ); -} diff --git a/src/crent370/clib/tanh.o b/src/crent370/clib/tanh.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/tanh.s b/src/crent370/clib/tanh.s deleted file mode 100644 index 2f81e5e..0000000 --- a/src/crent370/clib/tanh.s +++ /dev/null @@ -1,57 +0,0 @@ - TITLE '/home/projects/crent370/clib/tanh.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'tanh' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'tanh' -TANH PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'tanh' code - LD 0,0(11) ==> x - MD 0,=D'-2.0E0' - STD 0,88(13) - LA 1,88(,13) - L 15,=V(EXP) - BALR 14,15 - LD 2,=D'1.0E0' ==> dexp2 - SDR 2,0 ==> dexp2 - AD 0,=D'1.0E0' - DDR 2,0 ==> dexp2 - LDR 0,2 ==> dexp2 -* Function 'tanh' epilogue - PDPEPIL -* Function 'tanh' literal pool - DS 0D - LTORG -* Function 'tanh' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/testlstv.c b/src/crent370/clib/testlstv.c deleted file mode 100644 index bdca58f..0000000 --- a/src/crent370/clib/testlstv.c +++ /dev/null @@ -1,50 +0,0 @@ -#include "clibary.h" -#include "cliblist.h" -#include "stdio.h" -#include "clibwto.h" - -int main(int argc, char **argv) -{ - VOLLIST **vollist = __listvl(NULL, 1, "VATLST00"); - unsigned n, count = array_count(&vollist); - - // wtof("%s: vollist=%p count=%u", __func__, vollist, count); - - if (vollist) { - printf("VOLSER FREE FREE FREE LARGEST CONTIG FREE AREA UNIT DEVICE UCB --STATUS-- ------COMMENTS------\n"); - printf(" CYLS TRKS EXTENTS CYLINDERS TRACKS TYPE\n"); - } - - for(n=0; n < count; n++) { - VOLLIST *v = vollist[n]; - char status[16] = {0}; - char comment[40] = {0}; - - if (!v) continue; - // wtodumpf(v, sizeof(VOLLIST), "%s: vollist[%u]", __func__, n); - - if (v->status & VOLLIST_STATUS_PRV) strcpy(status, "PRIV "); - else if (v->status & VOLLIST_STATUS_PUB) strcpy(status, "PUBL "); - else if (v->status & VOLLIST_STATUS_STG) strcpy(status, "STRG "); - - if (v->status & VOLLIST_STATUS_PRES) strcat(status, "RSDNT"); - else if (v->status & VOLLIST_STATUS_RESV) strcat(status, "RESRV"); - else if (v->status & VOLLIST_STATUS_ONLI) strcat(status, "ONLIN"); - - if (v->comment) { - strncpy(comment, v->comment, sizeof(comment)-1); - comment[sizeof(comment)-1] = 0; - } - else { - strcpy(comment, "no comment"); - } - - printf("%.6s %4u %4u %4u %4u %4u %4X %4X %4X %-12s %s\n", - v->volser, v->freecyls, v->freetrks, v->freeexts, v->maxfreecyls, v->maxfreetrks, v->cuu, v->dasdtype, - v->ucbdasd, status, comment); - } - - __freevl(&vollist); - - return 0; -} diff --git a/src/crent370/clib/testlstv.o b/src/crent370/clib/testlstv.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/testlstv.s b/src/crent370/clib/testlstv.s deleted file mode 100644 index 6ec4c16..0000000 --- a/src/crent370/clib/testlstv.s +++ /dev/null @@ -1,244 +0,0 @@ - TITLE '/home/projects/crent370/clib/testlstv.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - COPY PDPMAIN - EJECT -* external function 'main' prologue -* frame base=88, local stack=64, call args=48 -&FUNC SETC 'main' -MAIN PDPPRLG CINDEX=0,FRAME=200,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'main' code - MVC 88(4,13),=F'0' - MVC 92(4,13),=F'1' - MVC 96(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(@@LISTVL) - BALR 14,15 - ST 15,192(13) ==> count - LA 2,192(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 8,15 ==> count - L 2,192(13) - LTR 2,2 - BE @@L2 - MVC 88(4,13),=A(@@LC1) - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - MVC 88(4,13),=A(@@LC2) - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 -@@L2 EQU * - SLR 7,7 ==> n - CLR 7,8 ==> n,count - BNL @@L22 -@@L20 EQU * - LR 3,7 ==> n - MH 3,=H'4' - L 2,192(13) - L 6,0(3,2) ==> v - LA 4,136(,13) - LA 5,16(0,0) - SLR 2,2 - LR 3,2 - MVCL 4,2 - LA 4,152(,13) - LA 5,40(0,0) - SLR 2,2 - LR 3,2 - MVCL 4,2 - LTR 6,6 ==> v - BE @@L5 - IC 2,7(6) ==> .status - N 2,=F'8' - CLM 2,1,=XL1'00' - BE @@L8 - LA 2,136(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC3) - B @@L23 -@@L8 EQU * - IC 2,7(6) ==> .status - N 2,=F'4' - CLM 2,1,=XL1'00' - BE @@L10 - LA 2,136(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC4) - B @@L23 -@@L10 EQU * - IC 2,7(6) ==> .status - N 2,=F'2' - CLM 2,1,=XL1'00' - BE @@L9 - LA 2,136(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC5) -@@L23 EQU * - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 -@@L9 EQU * - IC 2,7(6) ==> .status - N 2,=F'32' - CLM 2,1,=XL1'00' - BE @@L13 - LA 2,136(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC6) - B @@L24 -@@L13 EQU * - IC 2,7(6) ==> .status - N 2,=F'64' - CLM 2,1,=XL1'00' - BE @@L15 - LA 2,136(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC7) - B @@L24 -@@L15 EQU * - IC 2,7(6) ==> .status - N 2,=F'-128' - CLM 2,1,=XL1'00' - BE @@L14 - LA 2,136(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC8) -@@L24 EQU * - LA 1,88(,13) - L 15,=V(STRCAT) - BALR 14,15 -@@L14 EQU * - L 2,36(6) ==> .comment - LTR 2,2 - BE @@L18 - LA 2,152(,13) - ST 2,88(13) - MVC 92(4,13),36(6) ==> .comment - MVC 96(4,13),=F'39' - LA 1,88(,13) - L 15,=V(STRNCPY) - BALR 14,15 - MVI 191(13),0 ==> comment - B @@L19 -@@L18 EQU * - LA 2,152(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC9) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 -@@L19 EQU * - MVC 88(4,13),=A(@@LC10) - ST 6,92(13) ==> v - MVC 96(4,13),16(6) ==> .freecyls - MVC 100(4,13),20(6) ==> .freetrks - MVC 104(4,13),24(6) ==> .freeexts - MVC 108(4,13),28(6) ==> .maxfreecyls - MVC 112(4,13),32(6) ==> .maxfreetrks - LH 2,12(6) ==> .cuu - N 2,=XL4'0000FFFF' - ST 2,116(13) - LH 2,14(6) ==> .dasdtype - N 2,=XL4'0000FFFF' - ST 2,120(13) - MVC 124(4,13),8(6) ==> .ucbdasd - LA 2,136(,13) - ST 2,128(13) - LA 2,152(,13) - ST 2,132(13) - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 -@@L5 EQU * - A 7,=F'1' ==> n - CLR 7,8 ==> n,count - BL @@L20 -@@L22 EQU * - LA 2,192(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@FREEVL) - BALR 14,15 - SLR 15,15 -* Function 'main' epilogue - PDPEPIL -* Function 'main' literal pool - DS 0D - LTORG -* Function 'main' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'VATLST00' - DC X'0' -@@LC1 EQU * - DC C'VOLSER FREE FREE FREE LARGEST CONTIG FREE ' - DC C'AREA UNIT DEVICE UCB --STATUS-- ------CO' - DC C'MMENTS------' - DC X'15' - DC X'0' -@@LC2 EQU * - DC C' CYLS TRKS EXTENTS CYLINDERS TRACKS' - DC C' TYPE' - DC X'15' - DC X'0' -@@LC3 EQU * - DC C'PRIV ' - DC X'0' -@@LC4 EQU * - DC C'PUBL ' - DC X'0' -@@LC5 EQU * - DC C'STRG ' - DC X'0' -@@LC6 EQU * - DC C'RSDNT' - DC X'0' -@@LC7 EQU * - DC C'RESRV' - DC X'0' -@@LC8 EQU * - DC C'ONLIN' - DC X'0' -@@LC9 EQU * - DC C'no comment' - DC X'0' -@@LC10 EQU * - DC C'%.6s %4u %4u %4u %4u %4u %4' - DC C'X %4X %4X %-12s %s' - DC X'15' - DC X'0' - END @@MAIN diff --git a/src/crent370/clib/time.c b/src/crent370/clib/time.c deleted file mode 100644 index f4d518c..0000000 --- a/src/crent370/clib/time.c +++ /dev/null @@ -1,40 +0,0 @@ -/* TIME.C */ -#include "time.h" -#include "stdarg.h" -#include "stdio.h" -#include "stddef.h" -#include "mvssupa.h" - -/* scalar date routines -- public domain by Ray Gardner -** These will work over the range 1-01-01 thru 14699-12-31 -** The functions written by Ray are isleap, months_to_days, -** years_to_days, ymd_to_scalar, scalar_to_ymd. -** modified slightly by Paul Edwards -*/ - -extern int __isleap(unsigned yr); -extern unsigned __mtd(unsigned month); -extern long __ytd(unsigned yr); -extern long __ymdts(unsigned yr, unsigned mo, unsigned day); -extern void __stymd(long scalar, - unsigned *pyr, unsigned *pmo, unsigned *pday); - -#define isleap(y) __isleap(y) -#define months_to_days(m) __mtd(m) -#define years_to_days(y) __ytd(y) -#define ymd_to_scalar(y,m,d) __ymdts((y),(m),(d)) -#define scalar_to_ymd(s,y,m,d) __stymd((s),(y),(m),(d)) - -__PDPCLIB_API__ time_t time(time_t *timer) -{ - time_t tt; - unsigned int clk[2]; - - tt = __getclk(clk); - - if (timer != NULL) { - *timer = tt; - } - - return (tt); -} diff --git a/src/crent370/clib/time.o b/src/crent370/clib/time.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/time.s b/src/crent370/clib/time.s deleted file mode 100644 index 19e11dc..0000000 --- a/src/crent370/clib/time.s +++ /dev/null @@ -1,56 +0,0 @@ - TITLE '/home/projects/crent370/clib/time.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'time' prologue -* frame base=88, local stack=8, call args=8 -&FUNC SETC 'time' -TIME PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'time' code - L 3,0(11) ==> timer - LA 2,96(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@GETCLK) - BALR 14,15 - LTR 3,3 ==> timer - BE @@L2 - ST 15,0(3) ==> tt,timer -@@L2 EQU * -* Function 'time' epilogue - PDPEPIL -* Function 'time' literal pool - DS 0D - LTORG -* Function 'time' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/tmpfile.c b/src/crent370/clib/tmpfile.c deleted file mode 100644 index 54f4bcb..0000000 --- a/src/crent370/clib/tmpfile.c +++ /dev/null @@ -1,12 +0,0 @@ -/* TMPFILE.C */ -#include - -FILE * -tmpfile(void) -{ - char fn[FILENAME_MAX]; - - tmpnam(fn); - - return (fopen(fn, "wb")); -} diff --git a/src/crent370/clib/tmpfile.o b/src/crent370/clib/tmpfile.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/tmpfile.s b/src/crent370/clib/tmpfile.s deleted file mode 100644 index 82297fc..0000000 --- a/src/crent370/clib/tmpfile.s +++ /dev/null @@ -1,59 +0,0 @@ - TITLE '/home/projects/crent370/clib/tmpfile.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'tmpfile' prologue -* frame base=88, local stack=264, call args=8 -&FUNC SETC 'tmpfile' -TMPFILE PDPPRLG CINDEX=0,FRAME=360,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'tmpfile' code - LA 2,96(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(TMPNAM) - BALR 14,15 - ST 2,88(13) - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(FOPEN) - BALR 14,15 -* Function 'tmpfile' epilogue - PDPEPIL -* Function 'tmpfile' literal pool - DS 0D - LTORG -* Function 'tmpfile' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'wb' - DC X'0' - END diff --git a/src/crent370/clib/tmpnam.c b/src/crent370/clib/tmpnam.c deleted file mode 100644 index 9d6b29a..0000000 --- a/src/crent370/clib/tmpnam.c +++ /dev/null @@ -1,28 +0,0 @@ -#include -#include -#include -#include "cliblock.h" -#include "clibcrt.h" - -__PDPCLIB_API__ char *tmpnam(char *s) -{ - CLIBCRT *crt = __crtget(); - CLIBGRT *grt = crt ? crt->crtgrt : 0; - unsigned *cnt; - char *buf; - - if (!grt) return NULL; - - cnt = &grt->grttmpnm; /* => counter in CLIBGRT (process) */ - buf = crt->crttmpnm; /* => buffer in CLIBCRT (task) */ - - if (!s) s = buf; - - lock(cnt, 0); - if (*cnt >= 99999) *cnt = 0; - *cnt = (*cnt + 1); - sprintf(s, "&&TMP%05u", *cnt); - unlock(cnt, 0); - - return (s); -} diff --git a/src/crent370/clib/tmpnam.o b/src/crent370/clib/tmpnam.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/tmpnam.s b/src/crent370/clib/tmpnam.s deleted file mode 100644 index 4e1ff15..0000000 --- a/src/crent370/clib/tmpnam.s +++ /dev/null @@ -1,98 +0,0 @@ - TITLE '/home/projects/crent370/clib/tmpnam.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'tmpnam' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'tmpnam' -TMPNAM PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'tmpnam' code - L 4,0(11) ==> s - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - SLR 2,2 ==> grt - LTR 15,15 ==> crt - BE @@L3 - L 2,280(15) ==> grt,crtgrt -@@L3 EQU * - LR 3,2 ==> s,grt - LTR 2,2 ==> grt - BE @@L1 - LR 3,2 ==> cnt,grt - A 3,=F'12' ==> cnt - A 15,=F'284' ==> buf - LTR 4,4 ==> s - BNE @@L5 - LR 4,15 ==> s,buf -@@L5 EQU * - ST 3,88(13) ==> cnt - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - L 2,0(3) ==> cnt - L 5,=F'99998' - CLR 2,5 - BNH @@L6 - MVC 0(4,3),=F'0' ==> cnt -@@L6 EQU * - L 2,0(3) ==> cnt - A 2,=F'1' - ST 2,0(3) ==> cnt - ST 4,88(13) ==> s - MVC 92(4,13),=A(@@LC0) - MVC 96(4,13),0(3) ==> cnt - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - ST 3,88(13) ==> cnt - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 3,4 ==> s -@@L1 EQU * - LR 15,3 ==> s -* Function 'tmpnam' epilogue - PDPEPIL -* Function 'tmpnam' literal pool - DS 0D - LTORG -* Function 'tmpnam' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC X'50' - DC X'50' - DC C'TMP%05u' - DC X'0' - END diff --git a/src/crent370/clib/tolower.c b/src/crent370/clib/tolower.c deleted file mode 100644 index aec4459..0000000 --- a/src/crent370/clib/tolower.c +++ /dev/null @@ -1,11 +0,0 @@ -/* TOLOWER.C */ -#include - -extern unsigned short *__isbuf; -extern short *__tolow; -extern short *__toup; - -__PDPCLIB_API__ int tolower(int c) -{ - return (__tolow[(c)]); -} diff --git a/src/crent370/clib/tolower.o b/src/crent370/clib/tolower.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/tolower.s b/src/crent370/clib/tolower.s deleted file mode 100644 index e18bb6a..0000000 --- a/src/crent370/clib/tolower.s +++ /dev/null @@ -1,51 +0,0 @@ - TITLE '/home/projects/crent370/clib/tolower.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'tolower' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'tolower' -TOLOWER PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'tolower' code - L 2,=V(@@TOLOW) - L 3,0(2) ==> __tolow - L 2,0(11) ==> c - SLL 2,1 - LH 15,0(2,3) -* Function 'tolower' epilogue - PDPEPIL -* Function 'tolower' literal pool - DS 0D - LTORG -* Function 'tolower' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/toupper.c b/src/crent370/clib/toupper.c deleted file mode 100644 index 0eff1e8..0000000 --- a/src/crent370/clib/toupper.c +++ /dev/null @@ -1,11 +0,0 @@ -/* TOUPPER.C */ -#include - -extern unsigned short *__isbuf; -extern short *__tolow; -extern short *__toup; - -__PDPCLIB_API__ int toupper(int c) -{ - return (__toup[(c)]); -} diff --git a/src/crent370/clib/toupper.o b/src/crent370/clib/toupper.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/toupper.s b/src/crent370/clib/toupper.s deleted file mode 100644 index b57927d..0000000 --- a/src/crent370/clib/toupper.s +++ /dev/null @@ -1,51 +0,0 @@ - TITLE '/home/projects/crent370/clib/toupper.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'toupper' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'toupper' -TOUPPER PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'toupper' code - L 2,=V(@@TOUP) - L 3,0(2) ==> __toup - L 2,0(11) ==> c - SLL 2,1 - LH 15,0(2,3) -* Function 'toupper' epilogue - PDPEPIL -* Function 'toupper' literal pool - DS 0D - LTORG -* Function 'toupper' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/tsocmd.c b/src/crent370/clib/tsocmd.c deleted file mode 100644 index 71c4ec3..0000000 --- a/src/crent370/clib/tsocmd.c +++ /dev/null @@ -1,79 +0,0 @@ -#include - -#include -#include /* __link() */ -#include /* CPPL typedef */ -#include /* ECT typedef */ - -/* tsocmd() - link to pgm as TSO command processor */ -int tsocmd(const char *pgm, const char *buf) -{ - int rc = 8; - int pgmlen = 0; - int buflen = 0; - int i; - CLIBPPA *ppa = __ppaget(); - ECT *ect = NULL; - TSOCBUF *cbuf = NULL; - CPPL cppl = {0}; - - if (!pgm) { - wtof("%s: Missing pgm pointer", __func__); - goto quit; - } - - if (!ppa) { - wtof("%s: No PPA", __func__); - goto quit; - } - - if (!ppa->ppacppl) { - wtof("%s: No CPPL", __func__); - goto quit; - } - - if (pgm && *pgm) { - pgmlen = strlen(pgm); - } - if (buf && *buf) { - buflen = strlen(buf); - } - - cbuf = calloc(1, pgmlen + buflen + sizeof(TSOCBUF) + 2); - if (!cbuf) { - wtof("%s: No memory for CBUF", __func__); - goto quit; - } - - memcpy(&cppl, ppa->ppacppl, sizeof(cppl)); - ect = cppl.cpplect; - - /* put pgm name in ect as primary command */ - memset(ect->ectpcmd, ' ', sizeof(ect->ectpcmd)); - if (pgmlen > sizeof(ect->ectpcmd)) pgmlen = sizeof(ect->ectpcmd); - memcpy(ect->ectpcmd, pgm, pgmlen); - - cbuf->cbuflen = 4; - cbuf->cmdlen = pgmlen; - if (!buflen) { - ect->ectsws |= ECTNOPD; /* turn on NO OPERANDS switch */ - cbuf->cbuflen += sprintf(cbuf->cmdname, "%s", pgm); - } - else { - ect->ectsws &= ~ECTNOPD; /* turn off NO OPERANDS switch */ - cbuf->cbuflen += sprintf(cbuf->cmdname, "%s %s", pgm, buf); - cbuf->cmdlen++; - } - - cppl.cpplcbuf = cbuf; - - // wtodumpf(&cppl, sizeof(cppl), "CPPL"); - // wtodumpf(cbuf, cbuf->cbuflen, "CBUF"); - - __link(pgm, NULL, &cppl, &rc); - -quit: - if (cbuf) free(cbuf); - - return rc; -} diff --git a/src/crent370/clib/tsocmd.o b/src/crent370/clib/tsocmd.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/tsocmd.s b/src/crent370/clib/tsocmd.s deleted file mode 100644 index 13916de..0000000 --- a/src/crent370/clib/tsocmd.s +++ /dev/null @@ -1,229 +0,0 @@ - TITLE '/home/projects/crent370/clib/tsocmd.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@6 EQU * - DC C'tsocmd' - DC X'0' - DS 0F - EJECT -* external function 'tsocmd' prologue -* frame base=88, local stack=24, call args=16 -&FUNC SETC 'tsocmd' -TSOCMD PDPPRLG CINDEX=0,FRAME=128,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'tsocmd' code - L 8,0(11) ==> pgm - MVC 120(4,13),=F'8' - SLR 9,9 ==> buflen - ST 9,124(13) ==> buflen,pgmlen - LA 1,88(,13) - L 15,=V(@@PPAGET) - BALR 14,15 - LR 7,15 ==> ppa - LR 6,9 ==> cbuf,buflen - LA 4,104(,13) - LA 5,16(0,0) - LR 2,9 ==> cbuf - LR 3,9 ==> cbuf - MVCL 4,2 ==> cbuf - LTR 8,8 ==> pgm - BNE @@L2 - MVC 88(4,13),=A(@@LC0) - B @@L14 -@@L2 EQU * - LTR 15,15 ==> ppa - BNE @@L4 - MVC 88(4,13),=A(@@LC1) - B @@L14 -@@L4 EQU * - L 2,44(15) ==> .ppacppl - LTR 2,2 - BNE @@L5 - MVC 88(4,13),=A(@@LC2) - B @@L14 -@@L5 EQU * - LTR 8,8 ==> pgm - BE @@L6 - IC 2,0(8) ==> pgm - CLM 2,1,=XL1'00' - BE @@L6 - ST 8,88(13) ==> pgm - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - ST 15,124(13) ==> pgmlen -@@L6 EQU * - L 2,4(11) ==> buf - LTR 2,2 - BE @@L7 - IC 2,0(2) - CLM 2,1,=XL1'00' - BE @@L7 - MVC 88(4,13),4(11) ==> buf - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 9,15 ==> buflen -@@L7 EQU * - MVC 88(4,13),=F'1' - L 2,124(13) ==> pgmlen - AR 2,9 ==> buflen - A 2,=F'8' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 6,15 ==> cbuf - LTR 15,15 ==> cbuf - BNE @@L8 - MVC 88(4,13),=A(@@LC3) -@@L14 EQU * - MVC 92(4,13),=A(@@6) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - B @@L3 -@@L8 EQU * - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),44(7) ==> .ppacppl - MVC 96(4,13),=F'16' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - L 5,116(13) ==> ect,cpplect - LR 3,5 ==> s,ect - A 3,=F'12' ==> s - LA 2,64(0,0) ==> c - LA 4,8(0,0) ==> n - -*** MEMSET *** - LR 14,3 => target (s) ==> s - LR 15,4 => length (n) ==> n - SLR 0,0 => source (NULL) - LR 1,2 fill character ==> c - SLL 1,24 move fill to high byte - MVCL 14,0 Set target to fill character - L 2,124(13) ==> pgmlen - CLR 2,4 - BNH @@L10 - ST 4,124(13) ==> n,pgmlen -@@L10 EQU * - LR 2,5 ==> ect - A 2,=F'12' - ST 2,88(13) - ST 8,92(13) ==> pgm - MVC 96(4,13),124(13) ==> pgmlen - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - MVC 0(2,6),=H'4' ==> .cbuflen - L 3,124(13) ==> pgmlen - STH 3,2(6) ==> .cmdlen - LTR 9,9 ==> buflen - BNE @@L11 - OI 28(5),128 ==> .ectsws - LR 2,6 ==> cbuf - A 2,=F'4' - ST 2,88(13) - MVC 92(4,13),=A(@@LC4) - ST 8,96(13) ==> pgm - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - SLL 15,16 ==> ppa - SRA 15,16 ==> ppa - AH 15,0(6) ==> .cbuflen - STH 15,0(6) ==> .cbuflen - B @@L12 -@@L11 EQU * - NI 28(5),127 ==> .ectsws - LR 2,6 ==> cbuf - A 2,=F'4' - ST 2,88(13) - MVC 92(4,13),=A(@@LC5) - ST 8,96(13) ==> pgm - MVC 100(4,13),4(11) ==> buf - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - SLL 15,16 ==> ppa - SRA 15,16 ==> ppa - AH 15,0(6) ==> .cbuflen - STH 15,0(6) ==> .cbuflen - LH 2,2(6) ==> .cmdlen - AH 2,=H'1' - STH 2,2(6) ==> .cmdlen -@@L12 EQU * - ST 6,104(13) ==> cbuf,cpplcbuf - ST 8,88(13) ==> pgm - MVC 92(4,13),=F'0' - LA 2,104(,13) - ST 2,96(13) - LA 2,120(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@LINK) - BALR 14,15 -@@L3 EQU * - LTR 6,6 ==> cbuf - BE @@L13 - ST 6,88(13) ==> cbuf - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L13 EQU * - L 15,120(13) -* Function 'tsocmd' epilogue - PDPEPIL -* Function 'tsocmd' literal pool - DS 0D - LTORG -* Function 'tsocmd' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s: Missing pgm pointer' - DC X'0' -@@LC1 EQU * - DC C'%s: No PPA' - DC X'0' -@@LC2 EQU * - DC C'%s: No CPPL' - DC X'0' -@@LC3 EQU * - DC C'%s: No memory for CBUF' - DC X'0' -@@LC4 EQU * - DC C'%s' - DC X'0' -@@LC5 EQU * - DC C'%s %s' - DC X'0' - END diff --git a/src/crent370/clib/tsocmdf.c b/src/crent370/clib/tsocmdf.c deleted file mode 100644 index fe2e7e6..0000000 --- a/src/crent370/clib/tsocmdf.c +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include - -int tsocmdf(const char *pgm, const char *format, ...) -{ - va_list arg; - int rc; - char buf[1024]; - - va_start(arg, format); - vsnprintf(buf, sizeof(buf), format, arg); - va_end(arg); - - rc = tsocmd(pgm, buf); - - return rc; -} diff --git a/src/crent370/clib/tsocmdf.o b/src/crent370/clib/tsocmdf.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/tsocmdf.s b/src/crent370/clib/tsocmdf.s deleted file mode 100644 index 9468749..0000000 --- a/src/crent370/clib/tsocmdf.s +++ /dev/null @@ -1,60 +0,0 @@ - TITLE '/home/projects/crent370/clib/tsocmdf.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'tsocmdf' prologue -* frame base=88, local stack=1024, call args=16 -&FUNC SETC 'tsocmdf' -TSOCMDF PDPPRLG CINDEX=0,FRAME=1128,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'tsocmdf' code - LA 3,104(,13) - ST 3,88(13) - MVC 92(4,13),=F'1024' - MVC 96(4,13),4(11) - LA 2,8(,11) ==> arg - ST 2,100(13) ==> arg - LA 1,88(,13) - L 15,=V(VSNPRINT) - BALR 14,15 - MVC 88(4,13),0(11) ==> pgm - ST 3,92(13) - LA 1,88(,13) - L 15,=V(TSOCMD) - BALR 14,15 -* Function 'tsocmdf' epilogue - PDPEPIL -* Function 'tsocmdf' literal pool - DS 0D - LTORG -* Function 'tsocmdf' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/tzset.c b/src/crent370/clib/tzset.c deleted file mode 100644 index c022319..0000000 --- a/src/crent370/clib/tzset.c +++ /dev/null @@ -1,92 +0,0 @@ -/* TZSET.C */ -#include -#include -#include "clibenv.h" -#include "clibcrt.h" - -void -tzset(void) -{ - int *cvt; - char *tz; - char *p; - CLIBCRT *crt; - int tzoffset; - int rem; - int neg; - int tmp; - - tz = getenv("tz"); - if (!tz) tz = getenv("TZ"); - - if (tz) { - /* assume TZ is "[-]HH[:MM][:SS]" format */ - p = tz; - tzoffset = 0; - neg = 0; - /* wtof("%s: procesing TZ=\"%s\"", __func__, p); */ - - while (*p=='-') { - neg = 1; - p++; - /* wtof("%s: neg=1", __func__); */ - } - - if (isdigit(*p)) { - /* hours */ - tmp = atoi(p); - /* wtof("%s: hours=%d", __func__, tmp); */ - tzoffset += tmp * 60 * 60; - p = strchr(p, ':'); - - if (p) { - /* minutes */ - p++; - tmp = atoi(p); - /* wtof("%s: minutes=%d", __func__, tmp); */ - tzoffset += tmp * 60; - p = strchr(p, ':'); - } - - if (p) { - /* seconds */ - p++; - tmp = atoi(p); - /* wtof("%s: seconds=%d", __func__, tmp); */ - tzoffset += tmp; - } - - if (neg) tzoffset = 0 - tzoffset; - /* wtof("%s: tzoffset=%d", __func__, tzoffset); */ - goto done; - } - - wtof("%s: Invalid time zone format in TZ variable \"%s\"", __func__, tz); - wtof("%s: Expected format is TZ=[-]HH[:MM][:SS]", __func__); - wtof("%s: Defaulting to time zone offset calculated from CVTTZ", __func__); - } - - /* calculate time zone offset from system CVTTZ value */ - cvt = *(int**)16; /* get CVT pointer from PSA */ - tzoffset = (int)(cvt[0x130/4] * 1.0485765); /* convert CVTTZ to seconds from UTC */ - - /* attempt to correct for cast/rounding errors */ - /* wtof("%s: tzoffset=%d", __func__, tzoffset); */ - if (tzoffset < 0) { - rem = (-tzoffset) % 10; - /* wtof("%s: rem=%d", __func__, rem); */ - - if (rem) tzoffset -= (10 - rem); /* correct tzoffset */ - /* wtof("%s: tzoffset=%d", __func__, tzoffset); */ - } - else if (tzoffset > 0) { - rem = tzoffset % 10; - /* wtof("%s: rem=%d", __func__, rem); */ - - if (rem) tzoffset += (10 - rem); /* correct tzoffset */ - /* wtof("%s: tzoffset=%d", __func__, tzoffset); */ - } - -done: - __tzset(tzoffset); -} diff --git a/src/crent370/clib/tzset.o b/src/crent370/clib/tzset.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/tzset.s b/src/crent370/clib/tzset.s deleted file mode 100644 index e4a0719..0000000 --- a/src/crent370/clib/tzset.s +++ /dev/null @@ -1,207 +0,0 @@ - TITLE '/home/projects/crent370/clib/tzset.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@2 EQU * - DC C'tzset' - DC X'0' - DS 0F - EJECT -* external function 'tzset' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'tzset' -TZSET PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'tzset' code - SLR 8,8 ==> rem - SLR 9,9 ==> rem - LR 6,8 ==> tzoffset - LR 7,9 ==> tzoffset - MVC 88(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(GETENV) - BALR 14,15 - LR 4,15 ==> tz - LTR 15,15 ==> tz - BNE @@L2 - MVC 88(4,13),=A(@@LC1) - LA 1,88(,13) - L 15,=V(GETENV) - BALR 14,15 - LR 4,15 ==> tz -@@L2 EQU * - LTR 4,4 ==> tz - BE @@L3 - LR 3,4 ==> p,tz - SLR 5,5 ==> tzoffset - ST 5,104(13) ==> tzoffset,neg - CLI 0(4),96 ==> tz - BNE @@L19 - MVC 104(4,13),=F'1' ==> neg -@@L7 EQU * - A 3,=F'1' ==> p - CLI 0(3),96 ==> p - BE @@L7 -@@L19 EQU * - SLR 2,2 - IC 2,0(3) ==> p - ST 2,88(13) - LA 1,88(,13) - L 15,=V(ISDIGIT) - BALR 14,15 - LTR 15,15 ==> tz - BE @@L8 - ST 3,88(13) ==> p - LA 1,88(,13) - L 15,=V(ATOI) - BALR 14,15 - LR 2,15 ==> tmp - MH 2,=H'3600' - AR 5,2 ==> tzoffset - ST 3,88(13) ==> p - MVC 92(4,13),=F'122' - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LR 3,15 ==> p - LTR 15,15 ==> p - BE @@L9 - A 3,=F'1' ==> p - ST 3,88(13) ==> p - LA 1,88(,13) - L 15,=V(ATOI) - BALR 14,15 - LR 2,15 ==> tmp - SLL 2,4 - SR 2,15 ==> tmp - SLL 2,2 - AR 5,2 ==> tzoffset - ST 3,88(13) ==> p - MVC 92(4,13),=F'122' - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LR 3,15 ==> p -@@L9 EQU * - LTR 3,3 ==> p - BE @@L10 - A 3,=F'1' ==> p - ST 3,88(13) ==> p - LA 1,88(,13) - L 15,=V(ATOI) - BALR 14,15 - AR 5,15 ==> tzoffset,tmp -@@L10 EQU * - L 2,104(13) ==> neg - LTR 2,2 - BE @@L12 - LCR 5,5 ==> tzoffset - B @@L12 -@@L8 EQU * - MVC 88(4,13),=A(@@LC2) - MVC 92(4,13),=A(@@2) - ST 4,96(13) ==> tz - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC3) - MVC 92(4,13),=A(@@2) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC4) - MVC 92(4,13),=A(@@2) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L3 EQU * - LA 2,16(0,0) - L 2,0(2) ==> cvt - L 2,304(2) - MVC 80(4,13),=XL8'4E00000080000000' - ST 2,84(,13) - XI 84(13),128 - LD 2,80(,13) - SD 2,=XL8'4E00000080000000' - MD 2,=D'1.04857649999999980039E0' - LDR 0,2 - AD 0,=XL8'4F08000000000000' - STD 0,80(,13) - L 5,84(,13) ==> tzoffset - LTR 5,5 ==> tzoffset - BNL @@L13 - LCR 8,5 ==> tzoffset - SRDA 8,32 ==> rem - LA 2,10(0,0) - DR 8,2 ==> rem - LTR 8,8 ==> rem - BE @@L12 - AR 5,8 ==> tzoffset,rem - A 5,=F'-10' ==> tzoffset - B @@L12 -@@L13 EQU * - LTR 5,5 ==> tzoffset - BNH @@L12 - LR 6,5 ==> tzoffset - SRDA 6,32 ==> tzoffset - LA 2,10(0,0) - DR 6,2 ==> tzoffset - LTR 6,6 ==> rem - BE @@L12 - SR 5,6 ==> tzoffset,rem - A 5,=F'10' ==> tzoffset -@@L12 EQU * - ST 5,88(13) ==> tzoffset - LA 1,88(,13) - L 15,=V(@@TZSET) - BALR 14,15 -* Function 'tzset' epilogue - PDPEPIL -* Function 'tzset' literal pool - DS 0D - LTORG -* Function 'tzset' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'tz' - DC X'0' -@@LC1 EQU * - DC C'TZ' - DC X'0' -@@LC2 EQU * - DC C'%s: Invalid time zone format in TZ variable "%s"' - DC X'0' -@@LC3 EQU * - DC C'%s: Expected format is TZ=[-]HH[:MM][:SS]' - DC X'0' -@@LC4 EQU * - DC C'%s: Defaulting to time zone offset calculated fr' - DC C'om CVTTZ' - DC X'0' - END diff --git a/src/crent370/clib/ungetc.c b/src/crent370/clib/ungetc.c deleted file mode 100644 index 009e342..0000000 --- a/src/crent370/clib/ungetc.c +++ /dev/null @@ -1,20 +0,0 @@ -/* UNGETC.C */ -#include "clibio.h" -#include "cliblock.h" - -int -ungetc(int c, FILE *fp) -{ - lock(fp,0); - - if ((fp->ungetch != -1) || (c == EOF)) { - c = EOF; - } - else { - fp->ungetch = (unsigned char)c; - } - - unlock(fp,0); - - return c; -} diff --git a/src/crent370/clib/ungetc.o b/src/crent370/clib/ungetc.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/ungetc.s b/src/crent370/clib/ungetc.s deleted file mode 100644 index 38c2c28..0000000 --- a/src/crent370/clib/ungetc.s +++ /dev/null @@ -1,73 +0,0 @@ - TITLE '/home/projects/crent370/clib/ungetc.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'ungetc' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'ungetc' -UNGETC PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ungetc' code - L 3,0(11) ==> c - L 4,4(11) ==> fp - ST 4,88(13) ==> fp - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - L 2,20(4) ==> .ungetch - L 5,=F'-1' - CLR 2,5 - BNE @@L3 - CLR 3,5 ==> c - BNE @@L2 -@@L3 EQU * - L 3,=F'-1' ==> c - B @@L4 -@@L2 EQU * - LR 2,3 - N 2,=XL4'000000FF' ==> c - ST 2,20(4) ==> c,ungetch -@@L4 EQU * - ST 4,88(13) ==> fp - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,3 ==> c -* Function 'ungetc' epilogue - PDPEPIL -* Function 'ungetc' literal pool - DS 0D - LTORG -* Function 'ungetc' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/unsetenv.c b/src/crent370/clib/unsetenv.c deleted file mode 100644 index 78b85f9..0000000 --- a/src/crent370/clib/unsetenv.c +++ /dev/null @@ -1,40 +0,0 @@ -/* UNSETENV.C */ -#include -#include -#include -#include -#include "clibenv.h" -#include "clibary.h" -#include "cliblock.h" -#include "clibcrt.h" - -int -unsetenv(const char *name) -{ - CLIBGRT *grt = __grtget(); - __ENVVAR *envvar; - int i; - - lock(&grt->grtenv,0); - if (name && grt->grtenv) { - unsigned count = arraycount(&grt->grtenv); - for(i=0; i < count; i++) { - envvar = grt->grtenv[i]; - if (!envvar) continue; - if (!envvar->name) { - free(envvar); - grt->grtenv[i] = NULL; - continue; - } - - if (strcmp(envvar->name, name)==0) { - free(envvar); - grt->grtenv[i] = NULL; - continue; - } - } - } - unlock(&grt->grtenv,0); - - return 0; -} diff --git a/src/crent370/clib/unsetenv.o b/src/crent370/clib/unsetenv.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/unsetenv.s b/src/crent370/clib/unsetenv.s deleted file mode 100644 index 41d2c23..0000000 --- a/src/crent370/clib/unsetenv.s +++ /dev/null @@ -1,118 +0,0 @@ - TITLE '/home/projects/crent370/clib/unsetenv.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'unsetenv' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'unsetenv' -UNSETENV PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'unsetenv' code - L 8,0(11) ==> name - LA 1,88(,13) - L 15,=V(@@GRTGET) - BALR 14,15 - LR 5,15 ==> grt - LR 3,15 ==> grt - A 3,=F'32' - ST 3,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LTR 8,8 ==> name - BE @@L2 - L 2,0(3) ==> .grtenv - LTR 2,2 - BE @@L2 - ST 3,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 7,15 ==> count - SLR 6,6 ==> i - CLR 6,15 ==> i,count - BNL @@L2 -@@L10 EQU * - L 2,32(5) ==> .grtenv - LR 4,6 ==> i - MH 4,=H'4' - L 2,0(4,2) ==> envvar - LTR 2,2 ==> envvar - BE @@L5 - L 3,0(2) ==> .name - LTR 3,3 - BNE @@L8 - ST 2,88(13) ==> envvar - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - L 2,32(5) ==> .grtenv - ST 3,0(4,2) - B @@L5 -@@L8 EQU * - MVC 88(4,13),0(2) ==> .name - ST 8,92(13) ==> name - LA 1,88(,13) - L 15,=V(STRCMP) - BALR 14,15 - LR 4,15 ==> grt - LTR 15,15 ==> grt - BNE @@L5 - ST 2,88(13) ==> envvar - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - L 3,32(5) ==> .grtenv - LR 2,6 ==> i - MH 2,=H'4' - ST 4,0(2,3) ==> grt -@@L5 EQU * - A 6,=F'1' ==> i - CLR 6,7 ==> i,count - BL @@L10 -@@L2 EQU * - LR 2,5 ==> grt - A 2,=F'32' - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - SLR 15,15 -* Function 'unsetenv' epilogue - PDPEPIL -* Function 'unsetenv' literal pool - DS 0D - LTORG -* Function 'unsetenv' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/usleep.c b/src/crent370/clib/usleep.c deleted file mode 100644 index 8677435..0000000 --- a/src/crent370/clib/usleep.c +++ /dev/null @@ -1,15 +0,0 @@ - -int -usleep(unsigned usec) -{ - /* 1 TUNITVL == 26.04166 microseconds */ - /* 1 microsecond == .000001 seconds */ - unsigned t = usec / 26; /* 26 is close enough for this */ - - if (!t) t = 1; /* sleep at least 26.04166 microsends */ - - __asm__("STIMER WAIT,TUINTVL=%0" - : : "m"(t): "0", "1", "14", "15"); - - return 0; -} diff --git a/src/crent370/clib/usleep.o b/src/crent370/clib/usleep.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/usleep.s b/src/crent370/clib/usleep.s deleted file mode 100644 index 6af7bac..0000000 --- a/src/crent370/clib/usleep.s +++ /dev/null @@ -1,59 +0,0 @@ - TITLE '/home/projects/crent370/clib/usleep.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'usleep' prologue -* frame base=88, local stack=8, call args=0 -&FUNC SETC 'usleep' -USLEEP PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'usleep' code - SLR 2,2 ==> usec - SLR 3,3 ==> usec - L 2,0(11) ==> usec - SRDL 2,32 ==> usec - LA 4,26(0,0) - DR 2,4 ==> usec - ST 3,88(13) ==> usec - LTR 3,3 - BNE @@L2 - MVC 88(4,13),=F'1' -@@L2 EQU * - STIMER WAIT,TUINTVL=88(13) ==> t - SLR 15,15 -* Function 'usleep' epilogue - PDPEPIL -* Function 'usleep' literal pool - DS 0D - LTORG -* Function 'usleep' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/vfprintf.c b/src/crent370/clib/vfprintf.c deleted file mode 100644 index 1be7dae..0000000 --- a/src/crent370/clib/vfprintf.c +++ /dev/null @@ -1,12 +0,0 @@ -/* VFPRINTF.C */ -#include - -int -vfprintf(FILE *stream, const char *format, va_list arg) -{ - int ret; - - ret = vvprintf(format, arg, stream, NULL); - - return (ret); -} diff --git a/src/crent370/clib/vfprintf.o b/src/crent370/clib/vfprintf.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/vfprintf.s b/src/crent370/clib/vfprintf.s deleted file mode 100644 index 9d0cff7..0000000 --- a/src/crent370/clib/vfprintf.s +++ /dev/null @@ -1,53 +0,0 @@ - TITLE '/home/projects/crent370/clib/vfprintf.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'vfprintf' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'vfprintf' -VFPRINTF PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'vfprintf' code - MVC 88(4,13),4(11) ==> format - MVC 92(4,13),8(11) ==> arg - MVC 96(4,13),0(11) ==> stream - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(VVPRINTF) - BALR 14,15 -* Function 'vfprintf' epilogue - PDPEPIL -* Function 'vfprintf' literal pool - DS 0D - LTORG -* Function 'vfprintf' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/vscinv.c b/src/crent370/clib/vscinv.c deleted file mode 100644 index ea54ca0..0000000 --- a/src/crent370/clib/vscinv.c +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" -#include "cliblock.h" - -unsigned -vscinv(VSFILE *vs) -{ - unsigned cinv = 0; - - lock(vs,0); - - cinv = __vscinv(vs); - - unlock(vs,0); - - return cinv; -} diff --git a/src/crent370/clib/vscinv.o b/src/crent370/clib/vscinv.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/vscinv.s b/src/crent370/clib/vscinv.s deleted file mode 100644 index 96047ef..0000000 --- a/src/crent370/clib/vscinv.s +++ /dev/null @@ -1,63 +0,0 @@ - TITLE '/home/projects/crent370/clib/vscinv.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'vscinv' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'vscinv' -VSCINV PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'vscinv' code - L 2,0(11) ==> vs - ST 2,88(13) ==> vs - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - ST 2,88(13) ==> vs - LA 1,88(,13) - L 15,=V(@@VSCINV) - BALR 14,15 - LR 3,15 ==> cinv - ST 2,88(13) ==> vs - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,3 ==> cinv -* Function 'vscinv' epilogue - PDPEPIL -* Function 'vscinv' literal pool - DS 0D - LTORG -* Function 'vscinv' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/vsclear.c b/src/crent370/clib/vsclear.c deleted file mode 100644 index 5191330..0000000 --- a/src/crent370/clib/vsclear.c +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" -#include "cliblock.h" - -int -vsclear(VSFILE *vs) -{ - int rc; - - lock(vs,0); - - rc = __vsclr(vs); - - unlock(vs,0); - - return rc; -} diff --git a/src/crent370/clib/vsclear.o b/src/crent370/clib/vsclear.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/vsclear.s b/src/crent370/clib/vsclear.s deleted file mode 100644 index b845297..0000000 --- a/src/crent370/clib/vsclear.s +++ /dev/null @@ -1,63 +0,0 @@ - TITLE '/home/projects/crent370/clib/vsclear.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'vsclear' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'vsclear' -VSCLEAR PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'vsclear' code - L 2,0(11) ==> vs - ST 2,88(13) ==> vs - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - ST 2,88(13) ==> vs - LA 1,88(,13) - L 15,=V(@@VSCLR) - BALR 14,15 - LR 3,15 ==> rc - ST 2,88(13) ==> vs - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,3 ==> rc -* Function 'vsclear' epilogue - PDPEPIL -* Function 'vsclear' literal pool - DS 0D - LTORG -* Function 'vsclear' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/vsclose.c b/src/crent370/clib/vsclose.c deleted file mode 100644 index daf633b..0000000 --- a/src/crent370/clib/vsclose.c +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" -#include "cliblock.h" - -int -vsclose(VSFILE *vs) -{ - int rc; - - lock(vs,0); - - rc = __vsclos(vs); - - unlock(vs,0); - - return rc; -} diff --git a/src/crent370/clib/vsclose.o b/src/crent370/clib/vsclose.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/vsclose.s b/src/crent370/clib/vsclose.s deleted file mode 100644 index 6aa4367..0000000 --- a/src/crent370/clib/vsclose.s +++ /dev/null @@ -1,63 +0,0 @@ - TITLE '/home/projects/crent370/clib/vsclose.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'vsclose' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'vsclose' -VSCLOSE PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'vsclose' code - L 2,0(11) ==> vs - ST 2,88(13) ==> vs - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - ST 2,88(13) ==> vs - LA 1,88(,13) - L 15,=V(@@VSCLOS) - BALR 14,15 - LR 3,15 ==> rc - ST 2,88(13) ==> vs - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,3 ==> rc -* Function 'vsclose' epilogue - PDPEPIL -* Function 'vsclose' literal pool - DS 0D - LTORG -* Function 'vsclose' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/vsdelete.c b/src/crent370/clib/vsdelete.c deleted file mode 100644 index 6bee157..0000000 --- a/src/crent370/clib/vsdelete.c +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" -#include "cliblock.h" - -int -vsdelete(VSFILE *vs, void *rec, int reclen) -{ - int rc; - - lock(vs,0); - - rc = __vsdel(vs, rec, reclen); - - unlock(vs,0); - - return rc; -} diff --git a/src/crent370/clib/vsdelete.o b/src/crent370/clib/vsdelete.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/vsdelete.s b/src/crent370/clib/vsdelete.s deleted file mode 100644 index 30d2a5b..0000000 --- a/src/crent370/clib/vsdelete.s +++ /dev/null @@ -1,65 +0,0 @@ - TITLE '/home/projects/crent370/clib/vsdelete.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'vsdelete' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'vsdelete' -VSDELETE PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'vsdelete' code - L 2,0(11) ==> vs - ST 2,88(13) ==> vs - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - ST 2,88(13) ==> vs - MVC 92(4,13),4(11) ==> rec - MVC 96(4,13),8(11) ==> reclen - LA 1,88(,13) - L 15,=V(@@VSDEL) - BALR 14,15 - LR 3,15 ==> rc - ST 2,88(13) ==> vs - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,3 ==> rc -* Function 'vsdelete' epilogue - PDPEPIL -* Function 'vsdelete' literal pool - DS 0D - LTORG -* Function 'vsdelete' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/vseof.c b/src/crent370/clib/vseof.c deleted file mode 100644 index d78a605..0000000 --- a/src/crent370/clib/vseof.c +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" -#include "cliblock.h" - -int -vseof(VSFILE *vs) -{ - int rc; - - lock(vs,0); - - rc = __vseof(vs); - - unlock(vs,0); - - return rc; -} diff --git a/src/crent370/clib/vseof.o b/src/crent370/clib/vseof.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/vseof.s b/src/crent370/clib/vseof.s deleted file mode 100644 index e6d21ba..0000000 --- a/src/crent370/clib/vseof.s +++ /dev/null @@ -1,63 +0,0 @@ - TITLE '/home/projects/crent370/clib/vseof.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'vseof' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'vseof' -VSEOF PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'vseof' code - L 2,0(11) ==> vs - ST 2,88(13) ==> vs - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - ST 2,88(13) ==> vs - LA 1,88(,13) - L 15,=V(@@VSEOF) - BALR 14,15 - LR 3,15 ==> rc - ST 2,88(13) ==> vs - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,3 ==> rc -* Function 'vseof' epilogue - PDPEPIL -* Function 'vseof' literal pool - DS 0D - LTORG -* Function 'vseof' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/vserror.c b/src/crent370/clib/vserror.c deleted file mode 100644 index a40bdad..0000000 --- a/src/crent370/clib/vserror.c +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" -#include "cliblock.h" - -int -vserror(VSFILE *vs) -{ - int rc; - - lock(vs,0); - - rc = __vserr(vs); - - unlock(vs,0); - - return rc; -} diff --git a/src/crent370/clib/vserror.o b/src/crent370/clib/vserror.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/vserror.s b/src/crent370/clib/vserror.s deleted file mode 100644 index 1056be9..0000000 --- a/src/crent370/clib/vserror.s +++ /dev/null @@ -1,63 +0,0 @@ - TITLE '/home/projects/crent370/clib/vserror.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'vserror' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'vserror' -VSERROR PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'vserror' code - L 2,0(11) ==> vs - ST 2,88(13) ==> vs - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - ST 2,88(13) ==> vs - LA 1,88(,13) - L 15,=V(@@VSERR) - BALR 14,15 - LR 3,15 ==> rc - ST 2,88(13) ==> vs - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,3 ==> rc -* Function 'vserror' epilogue - PDPEPIL -* Function 'vserror' literal pool - DS 0D - LTORG -* Function 'vserror' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/vslrecl.c b/src/crent370/clib/vslrecl.c deleted file mode 100644 index 8818672..0000000 --- a/src/crent370/clib/vslrecl.c +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" -#include "cliblock.h" - -unsigned -vslrecl(VSFILE *vs) -{ - unsigned lrecl = 0; - - lock(vs,0); - - lrecl = __vslrec(vs); - - unlock(vs,0); - - return lrecl; -} diff --git a/src/crent370/clib/vslrecl.o b/src/crent370/clib/vslrecl.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/vslrecl.s b/src/crent370/clib/vslrecl.s deleted file mode 100644 index b97c50d..0000000 --- a/src/crent370/clib/vslrecl.s +++ /dev/null @@ -1,63 +0,0 @@ - TITLE '/home/projects/crent370/clib/vslrecl.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'vslrecl' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'vslrecl' -VSLRECL PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'vslrecl' code - L 2,0(11) ==> vs - ST 2,88(13) ==> vs - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - ST 2,88(13) ==> vs - LA 1,88(,13) - L 15,=V(@@VSLREC) - BALR 14,15 - LR 3,15 ==> lrecl - ST 2,88(13) ==> vs - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,3 ==> lrecl -* Function 'vslrecl' epilogue - PDPEPIL -* Function 'vslrecl' literal pool - DS 0D - LTORG -* Function 'vslrecl' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/vsnprint.c b/src/crent370/clib/vsnprint.c deleted file mode 100644 index 726a731..0000000 --- a/src/crent370/clib/vsnprint.c +++ /dev/null @@ -1,485 +0,0 @@ -/* VSNPRINT.C */ -#define STDIO_C -#include "stdio.h" -#include "string.h" -#include "stdlib.h" -#include "stdarg.h" -#include "ctype.h" -#include "errno.h" -#include "float.h" -#include "limits.h" -#include "stddef.h" -#include - -#define outch(ch) *s++ = (char)ch - -#if 0 /* we're using __examin() instead of our static examine() function */ -static int -examine(char *s, int n, const char **formt, va_list *arg); -#endif - -extern void -__dblcvt(double num, char cnvtype, size_t nwidth, int nprecision, char *result); - -int -vsnprintf(char *s, int n, const char *format, va_list arg) -{ - char *sin = s; - int fin = 0; - int chcount = 0; - int vint; - double vdbl; - unsigned int uvint; - const char *vcptr; - int len; - int i; - char numbuf[50]; - char *nptr; - int *viptr; - - while (!fin) { - if (*format == '\0') { - /* end of format string */ - fin = 1; - goto next; - } - - if (*format == '%') { - /* format sequence */ - format++; - if (*format == 'd') { - /* format signed int */ - vint = va_arg(arg, int); - if (vint < 0) { - uvint = -vint; - } - else { - uvint = vint; - } - - nptr = numbuf; - do { - *nptr++ = (char)('0' + uvint % 10); - uvint /= 10; - } while (uvint > 0); - - if (vint < 0) { - *nptr++ = '-'; - } - - do { - nptr--; - if (chcount < n) outch(*nptr); - chcount++; - } while (nptr != numbuf); - } - else if (strchr("eEgGfF", *format) != NULL && *format != 0) { - /* format floating point */ - vdbl = va_arg(arg, double); - __dblcvt(vdbl, *format, 0, 6, numbuf); /* 'e','f' etc. */ - len = strlen(numbuf); - - for(i=0; i < len; i++) { - if (chcount < n) outch(numbuf[i]); - chcount++; - } - } - else if (*format == 's') { - /* format string */ - vcptr = va_arg(arg, const char *); - - if (vcptr == NULL) { - vcptr = "(null)"; - } - - len = strlen(vcptr); - for(i=0; i < len; i++) { - if (chcount < n) outch(vcptr[i]); - chcount++; - } - } - else if (*format == 'c') { - /* format character */ - vint = va_arg(arg, int); - if (chcount < n) outch(vint); - chcount++; - } - else if (*format == 'n') { - /* format number of character output so far */ - viptr = va_arg(arg, int *); - *viptr = chcount; - } - else if (*format == '%') { - /* format escape character % */ - if (chcount < n) outch('%'); - chcount++; - } - else { - /* any other format sequence */ - int extraCh; - - extraCh = n-chcount; - if (extraCh < 0) extraCh = 0; -#if 0 - extraCh = examine(s, extraCh, &format, &arg); -#else - extraCh = __examin(&format, NULL, s, &arg, extraCh); -#endif - if (s!=NULL) { - for(i=0; i < extraCh; i++) { - if (chcount < n) s++; - chcount++; - } - } - else { - chcount += extraCh; - } - } - goto next; - } - - /* default, output next character */ - if (chcount < n) outch(*format); - chcount++; - -next: - format++; - } - - if (chcount < n) outch(0); - - return (chcount); -} - -#if 0 /* we use __examin() instead */ -static const char DIGITS[] = "0123456789ABCDEF"; -static const char digits[] = "0123456789abcdef"; - -static int -examine(char *s, int n, const char **formt, va_list *arg) -{ - int extraCh = 0; - int flagMinus = 0; - int flagPlus = 0; - int flagSpace = 0; - int flagHash = 0; - int flagZero = 0; - int width = 0; - int precision = -1; - int half = 0; - int lng = 0; - int specifier = 0; - int fin; - long lvalue; - short int hvalue; - int ivalue; - unsigned long ulvalue; - double vdbl; - char *svalue; - char work[50]; - int x; - int y; - int i; - int rem; - const char *format; - int base; - int fillCh; - int neg; - int length; - size_t slen; - /* support for long long (64 bit values ) */ - __64 value64; - __64 rem64; - __64 div64; - __64 base64; - - format = *formt; - - /* processing flags */ - fin = 0; - while (!fin) { - switch (*format) { - case '-': flagMinus = 1; - break; - case '+': flagPlus = 1; - break; - case ' ': flagSpace = 1; - break; - case '#': flagHash = 1; - break; - case '0': flagZero = 1; - break; - case '*': width = va_arg(*arg, int); - if (width < 0) - { - flagMinus = 1; - width = -width; - } - break; - default: fin = 1; - break; - } - - if (!fin) { - format++; - } - else { - if (flagSpace && flagPlus) { - flagSpace = 0; - } - if (flagMinus) { - flagZero = 0; - } - } - } - - /* processing width */ - if (isdigit((unsigned char)*format)) { - while (isdigit((unsigned char)*format)) { - width = width * 10 + (*format - '0'); - format++; - } - } - - /* processing precision */ - if (*format == '.') { - format++; - if (*format == '*') { - precision = va_arg(*arg, int); - format++; - } - else { - precision = 0; - while (isdigit((unsigned char)*format)) { - precision = precision * 10 + (*format - '0'); - format++; - } - } - } - - /* processing h/l/L */ - if (*format == 'h') { - /* all environments should promote shorts to ints, - so we should be able to ignore the 'h' specifier. - It will create problems otherwise. */ - /* half = 1; */ - } - else if (*format == 'l') { - lng = 1; - if (*(format+1) == 'l') { - lng = 2; - format++; - } - } - else if (*format == 'L') { - lng = 1; - if (*(format+1) == 'L') { - lng = 2; - format++; - } - } - else { - format--; - } - format++; - - /* processing specifier */ - specifier = *format; - - if (strchr("dxXuiop", specifier) != NULL && specifier != 0) { - if (precision < 0) { - precision = 1; - } - - if (lng==1) { - lvalue = va_arg(*arg, long); - } - else if (lng==2) { - lvalue = va_arg(*arg, long); - ((unsigned long*)&value64)[0] = (unsigned long)lvalue; - lvalue = va_arg(*arg, long); - ((unsigned long*)&value64)[1] = (unsigned long)lvalue; - } - else if (half) { - /* short is promoted to int, so use int */ - hvalue = va_arg(*arg, int); - if (specifier == 'u') lvalue = (unsigned short)hvalue; - else lvalue = hvalue; - } - else { - ivalue = va_arg(*arg, int); - if (specifier == 'u') lvalue = (unsigned int)ivalue; - else lvalue = ivalue; - } - - ulvalue = (unsigned long)lvalue; - if ((lvalue < 0) && ((specifier == 'd') || (specifier == 'i'))) { - neg = 1; - ulvalue = -lvalue; - } - else { - neg = 0; - } - - if ((specifier == 'X') || (specifier == 'x') || (specifier == 'p')) { - base = 16; - } - else if (specifier == 'o') { - base = 8; - } - else { - base = 10; - } - - if (specifier == 'p') { - precision = 8; - } - - x = 0; - if (lng==2) { - /* 64 bit variables */ - __64_from_i32(&base64, base); - neg = 0; /* __64 values are unsigned */ - while (!(__64_is_zero(&value64))) { - __64_divmod(&value64, &base64, &div64, &rem64); - rem = (int)__64_to_int(&rem64); - - if ((specifier == 'X') || (specifier == 'p')) { - work[x] = DIGITS[rem]; /* uppercase digits */ - } - else { - work[x] = digits[rem]; /* lowercase digits */ - } - x++; - __64_copy(&div64, &value64); - } - } - else { - while (ulvalue > 0) { - rem = (int)(ulvalue % base); - if ((specifier == 'X') || (specifier == 'p')) { - work[x] = DIGITS[rem]; /* uppercase digits */ - } - else { - work[x] = digits[rem]; /* lowercase digits */ - } - x++; - ulvalue = ulvalue / base; - } - } - - while (x < precision) { - work[x] = '0'; - x++; - } - - if (neg) { - work[x++] = '-'; - } - else if (flagPlus) { - work[x++] = '+'; - } - - if (flagZero) { - fillCh = '0'; - } - else { - fillCh = ' '; - } - - y = x; - if (!flagMinus) { - while (y < width) { - if (extraCh < n) outch(fillCh); - extraCh++; - y++; - } - } - - if (flagHash && ((unsigned char)specifier == 'X' || - (unsigned char)specifier == 'x')) { - if (extraCh < n) outch('0'); - extraCh++; - if (extraCh < n) outch('x'); - extraCh++; - } - - x--; - while (x >= 0) { - if (extraCh < n) outch(work[x]); - extraCh++; - x--; - } - - if (flagMinus) { - while (y < width) { - if (extraCh < n) outch(fillCh); - extraCh++; - y++; - } - } - } - else if (strchr("eEgGfF", specifier) != NULL && specifier != 0) { - if (precision < 0) { - precision = 6; - } - - vdbl = va_arg(*arg, double); - __dblcvt(vdbl, specifier, width, precision, work); /* 'e','f' etc. */ - slen = strlen(work); - - for(i=0; i < slen; i++) { - if (extraCh < n) outch(work[i]); - extraCh++; - } - } - else if (specifier == 's') { - svalue = va_arg(*arg, char *); - fillCh = ' '; - if (precision > 0) { - char *p; - - p = memchr(svalue, '\0', precision); - if (p != NULL) { - length = (int)(p - svalue); - } - else { - length = precision; - } - } - else if (precision < 0) { - length = strlen(svalue); - } - else { - length = 0; - } - - if (!flagMinus) { - if (length < width) { - extraCh += (width - length); - for (x = 0; x < (width - length); x++) { - if (extraCh < n) outch(fillCh); - } - } - } - - for (x = 0; x < length; x++) { - if (extraCh < n) outch(svalue[x]); - } - - extraCh += length; - if (flagMinus) { - if (length < width) { - for (x = 0; x < (width - length); x++) { - if (extraCh < n) outch(fillCh); - extraCh++; - } - } - } - } - - *formt = format; - return (extraCh); -} -#endif - diff --git a/src/crent370/clib/vsnprint.o b/src/crent370/clib/vsnprint.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/vsnprint.s b/src/crent370/clib/vsnprint.s deleted file mode 100644 index 75d8218..0000000 --- a/src/crent370/clib/vsnprint.s +++ /dev/null @@ -1,292 +0,0 @@ - TITLE '/home/projects/crent370/clib/vsnprint.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'vsnprintf' prologue -* frame base=88, local stack=72, call args=24 -&FUNC SETC 'vsnprintf' -VSNPRINT PDPPRLG CINDEX=0,FRAME=184,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'vsnprintf' code - SLR 6,6 ==> uvint - SLR 7,7 ==> uvint - LR 4,6 ==> uvint - LR 5,7 ==> uvint - L 9,0(11) ==> s - SLR 8,8 ==> chcount - ST 8,168(13) ==> chcount,fin -@@L57 EQU * - L 2,8(11) - IC 2,0(2) - CLM 2,1,=XL1'00' - BNE @@L5 - MVC 168(4,13),=F'1' ==> fin - B @@L6 -@@L5 EQU * - L 2,8(11) - CLI 0(2),108 - BNE @@L7 - A 2,=F'1' - ST 2,8(11) - CLI 0(2),132 - BNE @@L8 - L 2,12(11) - A 2,=F'4' - ST 2,12(11) - A 2,=F'-4' - MVC 172(4,13),0(2) ==> vint - L 2,172(13) ==> vint - LPR 15,2 ==> uvint - LA 3,112(,13) ==> nptr -@@L11 EQU * - LR 6,15 ==> uvint - SRDL 6,32 ==> uvint - LA 2,10(0,0) - DR 6,2 ==> uvint - LA 2,240(,6) - STC 2,0(3) ==> nptr - A 3,=F'1' ==> nptr - LR 4,15 ==> uvint - SRDL 4,32 ==> uvint - LA 2,10(0,0) - DR 4,2 ==> uvint - LR 15,5 ==> uvint - LTR 5,5 ==> uvint - BNE @@L11 - L 2,172(13) ==> vint - LTR 2,2 - BNL @@L15 - MVI 0(3),96 ==> nptr - A 3,=F'1' ==> nptr -@@L15 EQU * - LA 2,112(,13) -@@L16 EQU * - BCTR 3,0 ==> nptr - C 8,4(11) ==> chcount,n - BNL @@L19 - MVC 0(1,9),0(3) ==> s,nptr - A 9,=F'1' ==> s -@@L19 EQU * - A 8,=F'1' ==> chcount - CLR 3,2 ==> nptr - BE @@L6 - B @@L16 -@@L8 EQU * - MVC 88(4,13),=A(@@LC0) - L 2,8(11) - SLR 3,3 - IC 3,0(2) - ST 3,92(13) - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LTR 15,15 ==> len - BE @@L22 - L 2,8(11) - IC 2,0(2) - CLM 2,1,=XL1'00' - BE @@L22 - L 2,12(11) - A 2,=F'8' - ST 2,12(11) - A 2,=F'-8' - MVC 88(8,13),0(2) - L 2,8(11) - SLR 3,3 - IC 3,0(2) - ST 3,96(13) - MVC 100(4,13),=F'0' - MVC 104(4,13),=F'6' - LA 2,112(,13) - ST 2,108(13) - LA 1,88(,13) - L 15,=V(@@DBLCVT) - BALR 14,15 - ST 2,88(13) - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - SLR 3,3 ==> i - CR 3,15 ==> i,len - BNL @@L6 -@@L28 EQU * - C 8,4(11) ==> chcount,n - BNL @@L27 - IC 2,112(13,3) ==> numbuf - STC 2,0(9) ==> s - A 9,=F'1' ==> s -@@L27 EQU * - A 8,=F'1' ==> chcount - A 3,=F'1' ==> i - CR 3,15 ==> i,len - BNL @@L6 - B @@L28 -@@L22 EQU * - L 2,8(11) - CLI 0(2),162 - BNE @@L30 - L 2,12(11) - A 2,=F'4' - ST 2,12(11) - A 2,=F'-4' - MVC 176(4,13),0(2) ==> vcptr - L 3,176(13) ==> vcptr - LTR 3,3 - BNE @@L31 - MVC 176(4,13),=A(@@LC1) ==> vcptr -@@L31 EQU * - MVC 88(4,13),176(13) ==> vcptr - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - SLR 3,3 ==> i - CR 3,15 ==> i,len - BNL @@L6 -@@L37 EQU * - C 8,4(11) ==> chcount,n - BNL @@L36 - L 2,176(13) ==> vcptr - IC 2,0(3,2) ==> i - STC 2,0(9) ==> s - A 9,=F'1' ==> s -@@L36 EQU * - A 8,=F'1' ==> chcount - A 3,=F'1' ==> i - CR 3,15 ==> i,len - BNL @@L6 - B @@L37 -@@L30 EQU * - L 2,8(11) - IC 2,0(2) - SLL 2,24 - SRA 2,24 - C 2,=F'-125' - BNE @@L39 - L 2,12(11) - A 2,=F'4' - ST 2,12(11) - A 2,=F'-4' - MVC 172(4,13),0(2) ==> vint - C 8,4(11) ==> chcount,n - BNL @@L56 - MVC 0(1,9),175(13) ==> s,vint - B @@L64 -@@L39 EQU * - L 2,8(11) - CLI 0(2),149 - BNE @@L42 - L 2,12(11) - A 2,=F'4' - ST 2,12(11) - A 2,=F'-4' - L 2,0(2) ==> viptr - ST 8,0(2) ==> chcount,viptr - B @@L6 -@@L42 EQU * - L 2,8(11) - IC 2,0(2) - SLL 2,24 - SRA 2,24 - C 2,=F'108' - BNE @@L44 - C 8,4(11) ==> chcount,n - BNL @@L56 - STC 2,0(9) ==> s - B @@L64 -@@L44 EQU * - L 15,4(11) ==> extraCh,n - SR 15,8 ==> extraCh,chcount - BNL @@L47 - SLR 15,15 ==> extraCh -@@L47 EQU * - LA 2,8(,11) - ST 2,88(13) - MVC 92(4,13),=F'0' - ST 9,96(13) ==> s - LA 2,12(,11) - ST 2,100(13) - ST 15,104(13) ==> extraCh - LA 1,88(,13) - L 15,=V(@@EXAMIN) - BALR 14,15 - LTR 9,9 ==> s - BE @@L48 - SLR 3,3 ==> i - CR 3,15 ==> i,extraCh - BNL @@L6 -@@L54 EQU * - C 8,4(11) ==> chcount,n - BNL @@L53 - A 9,=F'1' ==> s -@@L53 EQU * - A 8,=F'1' ==> chcount - A 3,=F'1' ==> i - CR 3,15 ==> i,extraCh - BNL @@L6 - B @@L54 -@@L48 EQU * - AR 8,15 ==> chcount,extraCh - B @@L6 -@@L7 EQU * - C 8,4(11) ==> chcount,n - BNL @@L56 - L 2,8(11) - MVC 0(1,9),0(2) ==> s -@@L64 EQU * - A 9,=F'1' ==> s -@@L56 EQU * - A 8,=F'1' ==> chcount -@@L6 EQU * - L 2,8(11) - A 2,=F'1' - ST 2,8(11) - L 3,168(13) ==> fin - LTR 3,3 - BE @@L57 - C 8,4(11) ==> chcount,n - BNL @@L58 - MVI 0(9),0 ==> s -@@L58 EQU * - LR 15,8 ==> chcount -* Function 'vsnprintf' epilogue - PDPEPIL -* Function 'vsnprintf' literal pool - DS 0D - LTORG -* Function 'vsnprintf' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'eEgGfF' - DC X'0' -@@LC1 EQU * - DC C'(null)' - DC X'0' - END diff --git a/src/crent370/clib/vsnprtf@.c b/src/crent370/clib/vsnprtf@.c deleted file mode 100644 index f40ff7a..0000000 --- a/src/crent370/clib/vsnprtf@.c +++ /dev/null @@ -1,9 +0,0 @@ -#define PRINTF_PRIVATE -#include - -__asm__("\n&FUNC SETC 'vsnprintf_'"); -int vsnprintf_(char* buffer, size_t count, const char* format, va_list va) -{ - return _vsnprintf(_out_buffer, buffer, count, format, va); -} - diff --git a/src/crent370/clib/vsnprtf@.o b/src/crent370/clib/vsnprtf@.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/vsnprtf@.s b/src/crent370/clib/vsnprtf@.s deleted file mode 100644 index 344980a..0000000 --- a/src/crent370/clib/vsnprtf@.s +++ /dev/null @@ -1,59 +0,0 @@ - TITLE '/home/projects/crent370/clib/vsnprtf@.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'vsnprintf_' -* Program text area - DS 0F - EJECT -* external function 'vsnprintf_' prologue -* frame base=88, local stack=0, call args=24 -&FUNC SETC 'vsnprintf_' -VSNPRTF@ PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'vsnprintf_' code - L 2,=V(@@PRTFX) - L 2,0(2) ==> __prtfx - MVC 88(4,13),0(2) ==> ._out_buffer - MVC 92(4,13),0(11) ==> buffer - MVC 96(4,13),4(11) ==> count - MVC 100(4,13),8(11) ==> format - MVC 104(4,13),12(11) ==> va - L 2,44(2) ==> ._vsnprintf - LA 1,88(,13) - LA 15,0(2) - BALR 14,15 -* Function 'vsnprintf_' epilogue - PDPEPIL -* Function 'vsnprintf_' literal pool - DS 0D - LTORG -* Function 'vsnprintf_' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/vsopen.c b/src/crent370/clib/vsopen.c deleted file mode 100644 index e136247..0000000 --- a/src/crent370/clib/vsopen.c +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" -int -vsopen(const char *ddname, VSTYPE t, VSACCESS a, VSMODE m, VSFILE **vsfile) -{ - int rc = 0; - - rc = __vsopen(ddname, t, a, m, vsfile); - - return rc; -} diff --git a/src/crent370/clib/vsopen.o b/src/crent370/clib/vsopen.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/vsopen.s b/src/crent370/clib/vsopen.s deleted file mode 100644 index b1354be..0000000 --- a/src/crent370/clib/vsopen.s +++ /dev/null @@ -1,54 +0,0 @@ - TITLE '/home/projects/crent370/clib/vsopen.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'vsopen' prologue -* frame base=88, local stack=0, call args=24 -&FUNC SETC 'vsopen' -VSOPEN PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'vsopen' code - MVC 88(4,13),0(11) ==> ddname - MVC 92(4,13),4(11) ==> t - MVC 96(4,13),8(11) ==> a - MVC 100(4,13),12(11) ==> m - MVC 104(4,13),16(11) ==> vsfile - LA 1,88(,13) - L 15,=V(@@VSOPEN) - BALR 14,15 -* Function 'vsopen' epilogue - PDPEPIL -* Function 'vsopen' literal pool - DS 0D - LTORG -* Function 'vsopen' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/vsprintf.c b/src/crent370/clib/vsprintf.c deleted file mode 100644 index ca72d11..0000000 --- a/src/crent370/clib/vsprintf.c +++ /dev/null @@ -1,16 +0,0 @@ -/* VSPRINTF.C */ -#define STDIO_C -#include - -int -vsprintf(char *s, const char *format, va_list arg) -{ - int ret; - - ret = vvprintf(format, arg, NULL, s); - if (ret >= 0) - { - *(s + ret) = '\0'; - } - return (ret); -} diff --git a/src/crent370/clib/vsprintf.o b/src/crent370/clib/vsprintf.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/vsprintf.s b/src/crent370/clib/vsprintf.s deleted file mode 100644 index 62b375c..0000000 --- a/src/crent370/clib/vsprintf.s +++ /dev/null @@ -1,59 +0,0 @@ - TITLE '/home/projects/crent370/clib/vsprintf.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'vsprintf' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'vsprintf' -VSPRINTF PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'vsprintf' code - L 2,0(11) ==> s - MVC 88(4,13),4(11) ==> format - MVC 92(4,13),8(11) ==> arg - MVC 96(4,13),=F'0' - ST 2,100(13) ==> s - LA 1,88(,13) - L 15,=V(VVPRINTF) - BALR 14,15 - LTR 15,15 ==> ret - BL @@L2 - SLR 3,3 - STC 3,0(15,2) ==> ret -@@L2 EQU * -* Function 'vsprintf' epilogue - PDPEPIL -* Function 'vsprintf' literal pool - DS 0D - LTORG -* Function 'vsprintf' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/vsprtf@.c b/src/crent370/clib/vsprtf@.c deleted file mode 100644 index b6d9399..0000000 --- a/src/crent370/clib/vsprtf@.c +++ /dev/null @@ -1,10 +0,0 @@ -#define PRINTF_PRIVATE -#include - -__asm__("\n&FUNC SETC 'vsprintf_'"); -int vsprintf_(char* buffer, const char* format, va_list va) -{ - return _vsnprintf(_out_buffer, buffer, (size_t)-1, format, va); -} - - diff --git a/src/crent370/clib/vsprtf@.o b/src/crent370/clib/vsprtf@.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/vsprtf@.s b/src/crent370/clib/vsprtf@.s deleted file mode 100644 index 902aae5..0000000 --- a/src/crent370/clib/vsprtf@.s +++ /dev/null @@ -1,59 +0,0 @@ - TITLE '/home/projects/crent370/clib/vsprtf@.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'vsprintf_' -* Program text area - DS 0F - EJECT -* external function 'vsprintf_' prologue -* frame base=88, local stack=0, call args=24 -&FUNC SETC 'vsprintf_' -VSPRTF@ PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'vsprintf_' code - L 2,=V(@@PRTFX) - L 2,0(2) ==> __prtfx - MVC 88(4,13),0(2) ==> ._out_buffer - MVC 92(4,13),0(11) ==> buffer - MVC 96(4,13),=F'-1' - MVC 100(4,13),4(11) ==> format - MVC 104(4,13),8(11) ==> va - L 2,44(2) ==> ._vsnprintf - LA 1,88(,13) - LA 15,0(2) - BALR 14,15 -* Function 'vsprintf_' epilogue - PDPEPIL -* Function 'vsprintf_' literal pool - DS 0D - LTORG -* Function 'vsprintf_' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/vsread.c b/src/crent370/clib/vsread.c deleted file mode 100644 index 69fc69a..0000000 --- a/src/crent370/clib/vsread.c +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" -#include "cliblock.h" - -int -vsread(VSFILE *vs, void *rec, int reclen, void *key, int keylen) -{ - int rc = 0; - - lock(vs,0); - - rc = __vsread(vs, rec, reclen, key, keylen); - - unlock(vs,0); - - return rc; -} diff --git a/src/crent370/clib/vsread.o b/src/crent370/clib/vsread.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/vsread.s b/src/crent370/clib/vsread.s deleted file mode 100644 index f221f8d..0000000 --- a/src/crent370/clib/vsread.s +++ /dev/null @@ -1,67 +0,0 @@ - TITLE '/home/projects/crent370/clib/vsread.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'vsread' prologue -* frame base=88, local stack=0, call args=24 -&FUNC SETC 'vsread' -VSREAD PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'vsread' code - L 3,0(11) ==> vs - ST 3,88(13) ==> vs - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - ST 3,88(13) ==> vs - MVC 92(4,13),4(11) ==> rec - MVC 96(4,13),8(11) ==> reclen - MVC 100(4,13),12(11) ==> key - MVC 104(4,13),16(11) ==> keylen - LA 1,88(,13) - L 15,=V(@@VSREAD) - BALR 14,15 - LR 2,15 ==> rc - ST 3,88(13) ==> vs - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,2 ==> rc -* Function 'vsread' epilogue - PDPEPIL -* Function 'vsread' literal pool - DS 0D - LTORG -* Function 'vsread' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/vssteq.c b/src/crent370/clib/vssteq.c deleted file mode 100644 index 9c8b8c7..0000000 --- a/src/crent370/clib/vssteq.c +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" -#include "cliblock.h" - -int -vssteq(VSFILE *vs, void *rec, int reclen, void *key, int keylen) -{ - int rc = 0; - - lock(vs,0); - - rc = __vssteq(vs, rec, reclen, key, keylen); - - unlock(vs,0); - - return rc; -} diff --git a/src/crent370/clib/vssteq.o b/src/crent370/clib/vssteq.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/vssteq.s b/src/crent370/clib/vssteq.s deleted file mode 100644 index 54b460f..0000000 --- a/src/crent370/clib/vssteq.s +++ /dev/null @@ -1,67 +0,0 @@ - TITLE '/home/projects/crent370/clib/vssteq.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'vssteq' prologue -* frame base=88, local stack=0, call args=24 -&FUNC SETC 'vssteq' -VSSTEQ PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'vssteq' code - L 3,0(11) ==> vs - ST 3,88(13) ==> vs - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - ST 3,88(13) ==> vs - MVC 92(4,13),4(11) ==> rec - MVC 96(4,13),8(11) ==> reclen - MVC 100(4,13),12(11) ==> key - MVC 104(4,13),16(11) ==> keylen - LA 1,88(,13) - L 15,=V(@@VSSTEQ) - BALR 14,15 - LR 2,15 ==> rc - ST 3,88(13) ==> vs - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,2 ==> rc -* Function 'vssteq' epilogue - PDPEPIL -* Function 'vssteq' literal pool - DS 0D - LTORG -* Function 'vssteq' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/vsstge.c b/src/crent370/clib/vsstge.c deleted file mode 100644 index 30a5c1a..0000000 --- a/src/crent370/clib/vsstge.c +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" -#include "cliblock.h" - -int -vsstge(VSFILE *vs, void *rec, int reclen, void *key, int keylen) -{ - int rc = 0; - - lock(vs,0); - - rc = __vsstge(vs, rec, reclen, key, keylen); - - unlock(vs,0); - - return rc; -} diff --git a/src/crent370/clib/vsstge.o b/src/crent370/clib/vsstge.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/vsstge.s b/src/crent370/clib/vsstge.s deleted file mode 100644 index 288dc14..0000000 --- a/src/crent370/clib/vsstge.s +++ /dev/null @@ -1,67 +0,0 @@ - TITLE '/home/projects/crent370/clib/vsstge.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'vsstge' prologue -* frame base=88, local stack=0, call args=24 -&FUNC SETC 'vsstge' -VSSTGE PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'vsstge' code - L 3,0(11) ==> vs - ST 3,88(13) ==> vs - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - ST 3,88(13) ==> vs - MVC 92(4,13),4(11) ==> rec - MVC 96(4,13),8(11) ==> reclen - MVC 100(4,13),12(11) ==> key - MVC 104(4,13),16(11) ==> keylen - LA 1,88(,13) - L 15,=V(@@VSSTGE) - BALR 14,15 - LR 2,15 ==> rc - ST 3,88(13) ==> vs - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,2 ==> rc -* Function 'vsstge' epilogue - PDPEPIL -* Function 'vsstge' literal pool - DS 0D - LTORG -* Function 'vsstge' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/vstell.c b/src/crent370/clib/vstell.c deleted file mode 100644 index 307e1d1..0000000 --- a/src/crent370/clib/vstell.c +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" -#include "cliblock.h" - -unsigned -vstell(VSFILE *vs) -{ - unsigned rba = 0; - - lock(vs,0); - - rba = __vstell(vs); - - unlock(vs,0); - -quit: - return rba; -} diff --git a/src/crent370/clib/vstell.o b/src/crent370/clib/vstell.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/vstell.s b/src/crent370/clib/vstell.s deleted file mode 100644 index 52b9356..0000000 --- a/src/crent370/clib/vstell.s +++ /dev/null @@ -1,64 +0,0 @@ - TITLE '/home/projects/crent370/clib/vstell.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'vstell' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'vstell' -VSTELL PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'vstell' code - L 2,0(11) ==> vs - ST 2,88(13) ==> vs - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - ST 2,88(13) ==> vs - LA 1,88(,13) - L 15,=V(@@VSTELL) - BALR 14,15 - LR 3,15 ==> rba - ST 2,88(13) ==> vs - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L2 EQU * - LR 15,3 ==> rba -* Function 'vstell' epilogue - PDPEPIL -* Function 'vstell' literal pool - DS 0D - LTORG -* Function 'vstell' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/vsupdate.c b/src/crent370/clib/vsupdate.c deleted file mode 100644 index a260ecc..0000000 --- a/src/crent370/clib/vsupdate.c +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" -#include "cliblock.h" - -int -vsupdate(VSFILE *vs, void *rec, int reclen) -{ - int rc = 0; - - lock(vs,0); - - rc = __vsupdt(vs, rec, reclen); - - unlock(vs,0); - -quit: - return rc; -} diff --git a/src/crent370/clib/vsupdate.o b/src/crent370/clib/vsupdate.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/vsupdate.s b/src/crent370/clib/vsupdate.s deleted file mode 100644 index e6b485b..0000000 --- a/src/crent370/clib/vsupdate.s +++ /dev/null @@ -1,66 +0,0 @@ - TITLE '/home/projects/crent370/clib/vsupdate.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'vsupdate' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'vsupdate' -VSUPDATE PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'vsupdate' code - L 2,0(11) ==> vs - ST 2,88(13) ==> vs - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - ST 2,88(13) ==> vs - MVC 92(4,13),4(11) ==> rec - MVC 96(4,13),8(11) ==> reclen - LA 1,88(,13) - L 15,=V(@@VSUPDT) - BALR 14,15 - LR 3,15 ==> rc - ST 2,88(13) ==> vs - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L2 EQU * - LR 15,3 ==> rc -* Function 'vsupdate' epilogue - PDPEPIL -* Function 'vsupdate' literal pool - DS 0D - LTORG -* Function 'vsupdate' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/vswrite.c b/src/crent370/clib/vswrite.c deleted file mode 100644 index bc64fa2..0000000 --- a/src/crent370/clib/vswrite.c +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" -#include "cliblock.h" - -int -vswrite(VSFILE *vs, void *rec, int reclen, void *key, int keylen) -{ - int rc = 0; - - lock(vs,0); - - rc = __vswrit(vs, rec, reclen, key, keylen); - - unlock(vs,0); - - return rc; -} diff --git a/src/crent370/clib/vswrite.o b/src/crent370/clib/vswrite.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/vswrite.s b/src/crent370/clib/vswrite.s deleted file mode 100644 index 0c7cc28..0000000 --- a/src/crent370/clib/vswrite.s +++ /dev/null @@ -1,67 +0,0 @@ - TITLE '/home/projects/crent370/clib/vswrite.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'vswrite' prologue -* frame base=88, local stack=0, call args=24 -&FUNC SETC 'vswrite' -VSWRITE PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'vswrite' code - L 3,0(11) ==> vs - ST 3,88(13) ==> vs - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - ST 3,88(13) ==> vs - MVC 92(4,13),4(11) ==> rec - MVC 96(4,13),8(11) ==> reclen - MVC 100(4,13),12(11) ==> key - MVC 104(4,13),16(11) ==> keylen - LA 1,88(,13) - L 15,=V(@@VSWRIT) - BALR 14,15 - LR 2,15 ==> rc - ST 3,88(13) ==> vs - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,2 ==> rc -* Function 'vswrite' epilogue - PDPEPIL -* Function 'vswrite' literal pool - DS 0D - LTORG -* Function 'vswrite' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/vvprintf.c b/src/crent370/clib/vvprintf.c deleted file mode 100644 index 8a8bd34..0000000 --- a/src/crent370/clib/vvprintf.c +++ /dev/null @@ -1,134 +0,0 @@ -/* VVPRINTF.C */ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define unused(x) ((void)(x)) -#define outch(ch) ((fq == NULL) ? *s++ = (char)ch : __fputc(ch,fq)) -#if 0 -#define inch() ((fp == NULL) ? \ - (ch = (unsigned char)*s++) : (ch = getc(fp))) -#endif - -extern void -__dblcvt(double num, char cnvtype, size_t nwidth, int nprecision, char *result); -extern int -__examin(const char **formt, FILE *fq, char *s, va_list *arg, int chcount); - -int -vvprintf(const char *format, va_list arg, FILE *fq, char *s) -{ - int fin = 0; - int vint; - double vdbl; - unsigned uvint; - const char *vcptr; - int chcount = 0; - size_t len; - char numbuf[50]; - char *nptr; - int *viptr; - - if (fq) lock(fq,0); /* lock file handle (required for __fputc() call) */ - - while (!fin) { - if (*format == '\0') { - fin = 1; - } - else if (*format == '%') { - format++; - if (*format == 'd') { - vint = va_arg(arg, int); - - if (vint < 0) { - uvint = -vint; - } - else { - uvint = vint; - } - - nptr = numbuf; - do { - *nptr++ = (char)('0' + uvint % 10); - uvint /= 10; - } while (uvint > 0); - - if (vint < 0) { - *nptr++ = '-'; - } - - do { - nptr--; - outch(*nptr); - chcount++; - } while (nptr != numbuf); - } - else if (strchr("eEgGfF", *format) != NULL && *format != 0) { - vdbl = va_arg(arg, double); - __dblcvt(vdbl, *format, 0, 6, numbuf); /* 'e','f' etc. */ - len = strlen(numbuf); - if (fq == NULL) { - memcpy(s, numbuf, len); - s += len; - } - else { - fputs(numbuf, fq); - } - chcount += len; - } - else if (*format == 's') { - vcptr = va_arg(arg, const char *); - if (vcptr == NULL) { - vcptr = "(null)"; - } - if (fq == NULL) { - len = strlen(vcptr); - memcpy(s, vcptr, len); - s += len; - chcount += len; - } - else { - fputs(vcptr, fq); - chcount += strlen(vcptr); - } - } - else if (*format == 'c') { - vint = va_arg(arg, int); - outch(vint); - chcount++; - } - else if (*format == 'n') { - viptr = va_arg(arg, int *); - *viptr = chcount; - } - else if (*format == '%') { - outch('%'); - chcount++; - } - else { - int extraCh; - - extraCh = __examin(&format, fq, s, &arg, chcount); - chcount += extraCh; - if (s != NULL) { - s += extraCh; - } - } - } - else { - outch(*format); - chcount++; - } - format++; - } - - if (fq) unlock(fq,0); - - return (chcount); -} diff --git a/src/crent370/clib/vvprintf.o b/src/crent370/clib/vvprintf.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/vvprintf.s b/src/crent370/clib/vvprintf.s deleted file mode 100644 index 8a43dc8..0000000 --- a/src/crent370/clib/vvprintf.s +++ /dev/null @@ -1,321 +0,0 @@ - TITLE '/home/projects/crent370/clib/vvprintf.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'vvprintf' prologue -* frame base=88, local stack=64, call args=24 -&FUNC SETC 'vvprintf' -VVPRINTF PDPPRLG CINDEX=0,FRAME=176,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'vvprintf' code - SLR 6,6 ==> uvint - SLR 7,7 ==> uvint - LR 4,6 ==> uvint - LR 5,7 ==> uvint - L 9,12(11) ==> s - SLR 8,8 ==> chcount - ST 8,168(13) ==> chcount,fin - L 2,8(11) ==> fq - LTR 2,2 - BE @@L2 - ST 2,88(13) - ST 8,92(13) ==> chcount - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 -@@L2 EQU * - L 3,168(13) ==> fin - LTR 3,3 - BNE @@L50 -@@L47 EQU * - L 2,0(11) - IC 2,0(2) - CLM 2,1,=XL1'00' - BNE @@L6 - MVC 168(4,13),=F'1' ==> fin - B @@L7 -@@L6 EQU * - L 2,0(11) - CLI 0(2),108 - BNE @@L8 - A 2,=F'1' - ST 2,0(11) - CLI 0(2),132 - BNE @@L9 - L 2,4(11) - A 2,=F'4' - ST 2,4(11) - A 2,=F'-4' - MVC 172(4,13),0(2) ==> vint - L 2,172(13) ==> vint - LPR 15,2 ==> uvint - LA 3,112(,13) ==> nptr -@@L12 EQU * - LR 6,15 ==> uvint - SRDL 6,32 ==> uvint - LA 2,10(0,0) - DR 6,2 ==> uvint - LA 2,240(,6) - STC 2,0(3) ==> nptr - A 3,=F'1' ==> nptr - LR 4,15 ==> uvint - SRDL 4,32 ==> uvint - LA 15,10(0,0) - DR 4,15 ==> uvint - LR 15,5 ==> uvint - LTR 5,5 ==> uvint - BNE @@L12 - L 2,172(13) ==> vint - LTR 2,2 - BNL @@L17 - MVI 0(3),96 ==> nptr - A 3,=F'1' ==> nptr -@@L17 EQU * - BCTR 3,0 ==> nptr - L 15,8(11) ==> fq - LTR 15,15 - BNE @@L20 - MVC 0(1,9),0(3) ==> s,nptr - A 9,=F'1' ==> s - B @@L21 -@@L20 EQU * - SLR 2,2 - IC 2,0(3) ==> nptr - ST 2,88(13) - MVC 92(4,13),8(11) ==> fq - LA 1,88(,13) - L 15,=V(@@FPUTC) - BALR 14,15 -@@L21 EQU * - A 8,=F'1' ==> chcount - LA 2,112(,13) - CLR 3,2 ==> nptr - BE @@L7 - B @@L17 -@@L9 EQU * - MVC 88(4,13),=A(@@LC0) - L 2,0(11) - SLR 3,3 - IC 3,0(2) - ST 3,92(13) - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LTR 15,15 ==> len - BE @@L24 - L 2,0(11) - IC 2,0(2) - CLM 2,1,=XL1'00' - BE @@L24 - L 2,4(11) - A 2,=F'8' - ST 2,4(11) - A 2,=F'-8' - MVC 88(8,13),0(2) - L 2,0(11) - SLR 15,15 - IC 15,0(2) - ST 15,96(13) - MVC 100(4,13),=F'0' - MVC 104(4,13),=F'6' - LA 2,112(,13) - ST 2,108(13) - LA 1,88(,13) - L 15,=V(@@DBLCVT) - BALR 14,15 - ST 2,88(13) - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 3,15 ==> len - L 15,8(11) ==> fq - LTR 15,15 - BE @@L54 - LA 2,112(,13) - ST 2,88(13) - MVC 92(4,13),8(11) ==> fq - LA 1,88(,13) - L 15,=V(FPUTS) - BALR 14,15 - B @@L51 -@@L24 EQU * - L 2,0(11) - CLI 0(2),162 - BNE @@L28 - L 2,4(11) - A 2,=F'4' - ST 2,4(11) - A 2,=F'-4' - L 2,0(2) ==> vcptr - LTR 2,2 ==> vcptr - BNE @@L29 - L 2,=A(@@LC1) ==> vcptr -@@L29 EQU * - L 3,8(11) ==> fq - LTR 3,3 - BNE @@L30 - ST 2,88(13) ==> vcptr - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 3,15 ==> len -@@L54 EQU * - ST 9,88(13) ==> s - ST 2,92(13) ==> vcptr - ST 3,96(13) ==> len - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - AR 9,3 ==> s,len -@@L51 EQU * - AR 8,3 ==> chcount,len - B @@L7 -@@L30 EQU * - ST 2,88(13) ==> vcptr - MVC 92(4,13),8(11) ==> fq - LA 1,88(,13) - L 15,=V(FPUTS) - BALR 14,15 - ST 2,88(13) ==> vcptr - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - AR 8,15 ==> chcount,len - B @@L7 -@@L28 EQU * - L 2,0(11) - CLI 0(2),131 - BNE @@L33 - L 2,4(11) - A 2,=F'4' - ST 2,4(11) - A 2,=F'-4' - MVC 172(4,13),0(2) ==> vint - L 15,8(11) ==> fq - LTR 15,15 - BNE @@L34 - MVC 0(1,9),175(13) ==> s,vint - B @@L53 -@@L34 EQU * - MVC 88(4,13),172(13) ==> vint - B @@L52 -@@L33 EQU * - L 2,0(11) - CLI 0(2),149 - BNE @@L37 - L 2,4(11) - A 2,=F'4' - ST 2,4(11) - A 2,=F'-4' - L 2,0(2) ==> viptr - ST 8,0(2) ==> chcount,viptr - B @@L7 -@@L37 EQU * - L 2,0(11) - IC 2,0(2) - CLM 2,1,=XL1'6C' - BNE @@L39 - L 3,8(11) ==> fq - LTR 3,3 - BNE @@L40 - STC 2,0(9) ==> s - B @@L53 -@@L40 EQU * - MVC 88(4,13),=F'108' - B @@L52 -@@L39 EQU * - ST 11,88(13) - MVC 92(4,13),8(11) ==> fq - ST 9,96(13) ==> s - LA 2,4(,11) - ST 2,100(13) - ST 8,104(13) ==> chcount - LA 1,88(,13) - L 15,=V(@@EXAMIN) - BALR 14,15 - AR 8,15 ==> chcount,extraCh - LTR 9,9 ==> s - BE @@L7 - AR 9,15 ==> s,extraCh - B @@L7 -@@L8 EQU * - L 15,8(11) ==> fq - LTR 15,15 - BNE @@L45 - L 2,0(11) - MVC 0(1,9),0(2) ==> s -@@L53 EQU * - A 9,=F'1' ==> s - B @@L46 -@@L45 EQU * - L 2,0(11) - SLR 3,3 - IC 3,0(2) - ST 3,88(13) -@@L52 EQU * - MVC 92(4,13),8(11) ==> fq - LA 1,88(,13) - L 15,=V(@@FPUTC) - BALR 14,15 -@@L46 EQU * - A 8,=F'1' ==> chcount -@@L7 EQU * - L 2,0(11) - A 2,=F'1' - ST 2,0(11) - L 15,168(13) ==> fin - LTR 15,15 - BE @@L47 -@@L50 EQU * - L 2,8(11) ==> fq - LTR 2,2 - BE @@L48 - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L48 EQU * - LR 15,8 ==> chcount -* Function 'vvprintf' epilogue - PDPEPIL -* Function 'vvprintf' literal pool - DS 0D - LTORG -* Function 'vvprintf' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'eEgGfF' - DC X'0' -@@LC1 EQU * - DC C'(null)' - DC X'0' - END diff --git a/src/crent370/clib/vvscanf.c b/src/crent370/clib/vvscanf.c deleted file mode 100644 index 614807f..0000000 --- a/src/crent370/clib/vvscanf.c +++ /dev/null @@ -1,449 +0,0 @@ -/* VVSCANF.C */ -#include -#include -#include -#include - -#define inch() ((fp == NULL) ? \ - (ch = (unsigned char)*s++) : (ch = getc(fp))) - -/* vvscanf - the guts of the input scanning */ -/* several mods by Dave Edwards */ -int -vvscanf(const char *format, va_list arg, FILE *fp, const char *s) -{ - int ch; - int fin = 0; - int cnt = 0; - char *cptr; - int *iptr; - unsigned int *uptr; - long *lptr; - unsigned long *luptr; - short *hptr; - unsigned short *huptr; - double *dptr; - float *fptr; - long startpos; - const char *startp; - int skipvar; /* nonzero if we are skipping this variable */ - int modlong; /* nonzero if "l" modifier found */ - int modshort; /* nonzero if "h" modifier found */ - int informatitem; /* nonzero if % format item started */ - /* informatitem is 1 if we have processed "%l" but not the - type letter (s,d,e,f,g,...) yet. */ - - if (fp != NULL) { - startpos = ftell(fp); - } - else { - startp = s; - } - - inch(); - informatitem = 0; /* init */ - /* don't bail out at end of data as there may be a %n */ - /*if ((fp != NULL && ch == EOF) || (fp == NULL && ch == 0)) return EOF; */ - /* initially at EOF or end of string */ - while (!fin) { - if (*format == '\0') { - fin = 1; - } - else if (*format == '%' || informatitem) { - if(*format=='%') { /* starting a format item */ - format++; - modlong=0; /* init */ - modshort=0; - skipvar = 0; - if (*format == '*') { - skipvar = 1; - format++; - } - } - - if (*format == '%') { /* %% */ - if (ch != '%') return (cnt); - inch(); - informatitem=0; - } - else if (*format == 'l') { - /* Type modifier: l (e.g. %ld) */ - modlong=1; - informatitem=1; - } - else if (*format == 'h') { - /* Type modifier: h (short int) */ - modshort=1; - informatitem=1; - } - else { /* process a type character: */ - informatitem=0; /* end of format item */ - if (*format == 's') { - if (!skipvar) { - cptr = va_arg(arg, char *); - } - - /* Skip leading whitespace: */ - while (ch>=0 && isspace(ch)) inch(); - if ((fp != NULL && ch == EOF) || (fp == NULL && ch == 0)) { - /* at EOF or end of string */ - if (!skipvar) { - *cptr = 0; /* give a null string */ - } - continue; - } - else { - for(;;) { - if (isspace(ch)) break; - if ((fp != NULL && ch == EOF) - || (fp == NULL && ch == 0)) { - break; - } - - if (!skipvar) { - *cptr++ = (char)ch; - } - inch(); - } - - if (!skipvar) { - *cptr = '\0'; - } - cnt++; - } - } - else if (*format == '[') { - int reverse = 0; - int found; - const char *first; - const char *last; - size_t size; - size_t mcnt = 0; - - if (!skipvar) { - cptr = va_arg(arg, char *); - } - - format++; - if (*format == '^') { - reverse = 1; - format++; - } - - if (*format == '\0') break; - - first = format; - format++; - last = strchr(format, ']'); - if (last == NULL) return (cnt); - - size = (size_t)(last - first); - while (1) { - /* note that C90 doesn't require special - processing for '-' so it hasn't been - added */ - found = (memchr(first, ch, size) != NULL); - if (found && reverse) break; - if (!found && !reverse) break; - if (!skipvar) { - *cptr++ = (char)ch; - } - mcnt++; - inch(); - /* if at EOF or end of string, bug out */ - if ((fp != NULL && ch == EOF) - || (fp == NULL && ch == 0)) { - break; - } - } - - if (mcnt > 0) { - if (!skipvar) { - *cptr++ = '\0'; - } - cnt++; - } - else { - break; - } - format = last + 1; - } - else if (*format == 'c') { - if (!skipvar) { - cptr = va_arg(arg, char *); - } - - if ((fp != NULL && ch == EOF) - || (fp == NULL && ch == 0)) { - /* do nothing */ - } - else { - if (!skipvar) { - *cptr = ch; - } - cnt++; - inch(); - } - } - else if (*format == 'n') { - uptr = va_arg(arg, unsigned int *); - if (fp != NULL) { - *uptr = (unsigned int)(ftell(fp) - startpos); - } - else { - /* we need a -1 because s will point to - the character after the NUL */ - *uptr = (unsigned int)(s - startp - 1); - } - } - else if (*format == 'd' || *format == 'u' - || *format == 'x' || *format == 'o' - || *format == 'p' - || *format == 'i') { - int neg = 0; - unsigned long x = 0; - int undecided = 0; - int base = 10; - int mcnt = 0; - - if (*format == 'x') base = 16; - else if (*format == 'p') base = 16; - else if (*format == 'o') base = 8; - else if (*format == 'i') base = 0; - if (!skipvar) { - if ((*format == 'd') || (*format == 'i')) { - if (modlong) lptr = va_arg(arg, long *); - else if (modshort) hptr = va_arg(arg, short *); - else iptr = va_arg(arg, int *); - } - else { - if (modlong) luptr = va_arg(arg, unsigned long *); - else if (modshort) huptr = - va_arg(arg, unsigned short *); - else uptr = va_arg(arg, unsigned int *); - } - } - - /* Skip leading whitespace: */ - while (ch>=0 && isspace(ch)) inch(); - if (ch == '-') { - neg = 1; - inch(); - } - else if(ch == '+') inch(); - - /* this logic is the same as strtoul so if you - change this, change that one too */ - - if (base == 0) { - undecided = 1; - } - - while (!((fp != NULL && ch == EOF) - || (fp == NULL && ch == 0))) { - if (isdigit((unsigned char)ch)) { - if (base == 0) { - if (ch == '0') { - base = 8; - } - else { - base = 10; - undecided = 0; - } - } - x = x * base + (ch - '0'); - inch(); - } - else if (isalpha((unsigned char)ch)) { - if ((ch == 'X') || (ch == 'x')) { - if ((base == 0) || ((base == 8) && undecided)) { - base = 16; - undecided = 0; - inch(); - } - else if (base == 16) { - /* hex values are allowed to have an - optional 0x */ - inch(); - } - else { - break; - } - } - else if (base <= 10) { - break; - } - else { - x = x * base + - (toupper((unsigned char)ch) - 'A') + 10; - inch(); - } - } - else { - break; - } - mcnt++; - } - - /* end of strtoul logic */ - - /* If we didn't get any characters, don't go any - further */ - if (mcnt == 0) { - break; - } - - - if (!skipvar) { - if ((*format == 'd') || (*format == 'i')) { - long lval; - - if (neg) { - lval = (long)-x; - } - else { - lval = (long)x; - } - - if (modlong) *lptr=lval; - /* l modifier: assign to long */ - else if (modshort) *hptr = (short)lval; - /* h modifier */ - else *iptr=(int)lval; - } - else { - if (modlong) *luptr = (unsigned long)x; - else if (modshort) *huptr = (unsigned short)x; - else *uptr = (unsigned int)x; - } - } - cnt++; - } - else if (*format=='e' || *format=='f' || *format=='g' || - *format=='E' || *format=='G') { - /* Floating-point (double or float) input item */ - int negsw1,negsw2,dotsw,expsw,ndigs1,ndigs2,nfdigs; - int ntrailzer,expnum,expsignsw; - double fpval,pow10; - - if (!skipvar) { - if (modlong) dptr = va_arg(arg, double *); - else fptr = va_arg(arg, float *); - } - negsw1=0; /* init */ - negsw2=0; - dotsw=0; - expsw=0; - ndigs1=0; - ndigs2=0; - nfdigs=0; - ntrailzer=0; /* # of trailing 0's unaccounted for */ - expnum=0; - expsignsw=0; /* nonzero means done +/- on exponent */ - fpval=0.0; - /* Skip leading whitespace: */ - while (ch>=0 && isspace(ch)) inch(); - if (ch=='-') { - negsw1=1; - inch(); - } - else if (ch=='+') inch(); - - while (ch>0) { - if (ch=='.' && dotsw==0 && expsw==0) dotsw=1; - else if (isdigit(ch)) { - if(expsw) { - ndigs2++; - expnum=expnum*10+(ch-'0'); - } - else { - /* To avoid overflow or loss of precision, - skip leading and trailing zeros unless - really needed. (Automatic for leading - 0's, since 0.0*10.0 is 0.0) */ - ndigs1++; - if (dotsw) nfdigs++; - if (ch=='0' && fpval!=0.) { - /* Possible trailing 0 */ - ntrailzer++; - } - else { - /* Account for any preceding zeros */ - while (ntrailzer>0) { - fpval*=10.; - ntrailzer--; - } - fpval=fpval*10.0+(ch-'0'); - } - } - } - else if ((ch=='e' || ch=='E') && expsw==0) expsw=1; - else if ((ch=='+' || ch=='-') && expsw==1 - && ndigs2==0 && expsignsw==0) { - expsignsw=1; - if (ch=='-') negsw2=1; - } - else break; /* bad char: end of input item */ - inch(); - } - - /* don't finish at end of input there may be a %n */ - /*if ((fp != NULL && ch == EOF) - || (fp == NULL && ch == 0)) fin=1;*/ - /* Check for a valid fl-pt value: */ - if (ndigs1==0 || (expsw && ndigs2==0)) return(cnt); - /* Complete the fl-pt value: */ - if (negsw2) expnum=-expnum; - expnum+=ntrailzer-nfdigs; - if (expnum!=0 && fpval!=0.0) { - negsw2=0; - if (expnum<0) { - expnum=-expnum; - negsw2=1; - } - /* Multiply or divide by 10.0**expnum, using - bits of expnum (fast method) */ - pow10=10.0; - for (;;) { - if (expnum & 1) { /* low-order bit */ - if (negsw2) fpval/=pow10; - else fpval*=pow10; - } - expnum>>=1; /* shift right 1 bit */ - if (expnum==0) break; - pow10*=pow10; /* 10.**n where n is power of 2 */ - } - } - - if (negsw1) fpval=-fpval; - if (!skipvar) { - /* l modifier: assign to double */ - if (modlong) *dptr=fpval; - else *fptr=(float)fpval; - } - cnt++; - } - } - } - else if (isspace((unsigned char)(*format))) { - /* Whitespace char in format string: skip next whitespace - chars in input data. This supports input of multiple - data items. */ - while (ch>=0 && isspace(ch)) { - inch(); - } - } - else { /* some other character in the format string */ - if (ch != *format) return (cnt); - inch(); - } - format++; - /* don't bail out at end of string as there may be a %n */ - /*if ((fp != NULL && ch == EOF) || (fp == NULL && ch == 0)) fin = 1;*/ - /* EOF */ - } - - if (fp != NULL) ungetc(ch, fp); - - return (cnt); -} diff --git a/src/crent370/clib/vvscanf.o b/src/crent370/clib/vvscanf.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/vvscanf.s b/src/crent370/clib/vvscanf.s deleted file mode 100644 index c88cffb..0000000 --- a/src/crent370/clib/vvscanf.s +++ /dev/null @@ -1,1219 +0,0 @@ - TITLE '/home/projects/crent370/clib/vvscanf.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'vvscanf' prologue -* frame base=88, local stack=136, call args=16 -&FUNC SETC 'vvscanf' -VVSCANF PDPPRLG CINDEX=0,FRAME=240,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'vvscanf' code - SLR 2,2 - SLR 3,3 - ST 2,184(13) - ST 3,4+184(13) - ST 2,192(13) - ST 3,4+192(13) - L 5,0(11) ==> format - L 6,8(11) ==> fp - L 9,12(11) ==> s - MVC 108(4,13),=F'0' ==> cnt - MVC 104(4,13),108(13) ==> fin,cnt - LTR 6,6 ==> fp - BE @@L2 - ST 6,88(13) ==> fp - LA 1,88(,13) - L 15,=V(FTELL) - BALR 14,15 - ST 15,148(13) ==> startpos - B @@L3 -@@L2 EQU * - ST 9,152(13) ==> s,startp -@@L3 EQU * - LTR 6,6 ==> fp - BNE @@L4 - SLR 4,4 ==> ch - IC 4,0(9) ==> ch,s - A 9,=F'1' ==> s - B @@L5 -@@L4 EQU * - ST 6,88(13) ==> fp - LA 1,88(,13) - L 15,=V(FGETC) - BALR 14,15 - LR 4,15 ==> ch -@@L5 EQU * - MVC 168(4,13),=F'0' ==> informatitem - L 3,104(13) ==> fin - LTR 3,3 - L 14,=A(@@L7) - BNER 14 -@@L245 EQU * - L 12,0(,10) - IC 2,0(5) ==> format - CLM 2,1,=XL1'00' - BNE @@L9 - MVC 104(4,13),=F'1' ==> fin - L 14,=A(@@L10) - BR 14 -@@L9 EQU * - CLI 0(5),108 ==> format - BE @@L12 - L 15,168(13) ==> informatitem - LTR 15,15 - L 14,=A(@@L11) - BER 14 -@@L12 EQU * - CLI 0(5),108 ==> format - BNE @@L13 - A 5,=F'1' ==> format - MVC 160(4,13),=F'0' ==> modlong - MVC 164(4,13),160(13) ==> modshort,modlong - MVC 156(4,13),160(13) ==> skipvar,modlong - CLI 0(5),92 ==> format - BNE @@L13 - MVC 156(4,13),=F'1' ==> skipvar - A 5,=F'1' ==> format -@@L13 EQU * - CLI 0(5),108 ==> format - BNE @@L15 - L 15,108(13) ==> cnt - LA 2,108(0,0) - CLR 4,2 ==> ch - L 14,=A(@@L1) - BNER 14 - LTR 6,6 ==> fp - BNE @@L17 - SLR 4,4 ==> ch - IC 4,0(9) ==> ch,s - A 9,=F'1' ==> s - B @@L18 -@@L17 EQU * - ST 6,88(13) ==> fp - LA 1,88(,13) - L 15,=V(FGETC) - BALR 14,15 - LR 4,15 ==> ch -@@L18 EQU * - MVC 168(4,13),=F'0' ==> informatitem - L 14,=A(@@L10) - BR 14 -@@L15 EQU * - CLI 0(5),147 ==> format - BNE @@L20 - MVC 160(4,13),=F'1' ==> modlong - B @@L265 -@@L20 EQU * - CLI 0(5),136 ==> format - BNE @@L22 - MVC 164(4,13),=F'1' ==> modshort -@@L265 EQU * - MVC 168(4,13),=F'1' ==> informatitem - L 14,=A(@@L10) - BR 14 -@@L22 EQU * - MVC 168(4,13),=F'0' ==> informatitem - CLI 0(5),162 ==> format - BNE @@L24 - L 3,156(13) ==> skipvar - LTR 3,3 - BNE @@L25 - L 15,4(11) ==> arg - A 15,=F'4' - ST 15,4(11) ==> arg - LR 2,15 - A 2,=F'-4' - MVC 112(4,13),0(2) ==> cptr -@@L25 EQU * - LTR 4,4 ==> ch - BL @@L27 - L 2,=V(@@ISBUF) - L 3,0(2) ==> __isbuf - LR 2,4 ==> ch - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'256' - CH 2,=H'0' - BE @@L27 -@@L32 EQU * - LTR 6,6 ==> fp - BNE @@L30 - SLR 4,4 ==> ch - IC 4,0(9) ==> ch,s - A 9,=F'1' ==> s - B @@L26 -@@L30 EQU * - ST 6,88(13) ==> fp - LA 1,88(,13) - L 15,=V(FGETC) - BALR 14,15 - LR 4,15 ==> ch -@@L26 EQU * - LTR 4,4 ==> ch - BL @@L27 - L 2,=V(@@ISBUF) - L 3,0(2) ==> __isbuf - LR 2,4 ==> ch - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'256' - CH 2,=H'0' - BNE @@L32 -@@L27 EQU * - LTR 6,6 ==> fp - BE @@L35 - L 2,=F'-1' - CLR 4,2 ==> ch - BE @@L34 -@@L35 EQU * - LTR 6,6 ==> fp - BNE @@L38 - LTR 4,4 ==> ch - BNE @@L38 -@@L34 EQU * - L 3,156(13) ==> skipvar - LTR 3,3 - L 14,=A(@@L6) - BNER 14 - L 15,112(13) ==> cptr - MVC 0(1,15),159(13) ==> skipvar - L 14,=A(@@L6) - BR 14 -@@L38 EQU * - L 2,=V(@@ISBUF) - L 3,0(2) ==> __isbuf - LR 2,4 ==> ch - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'256' - CH 2,=H'0' - BNE @@L39 - LTR 6,6 ==> fp - BE @@L44 - L 2,=F'-1' - CLR 4,2 ==> ch - BE @@L39 -@@L44 EQU * - LTR 6,6 ==> fp - BNE @@L42 - LTR 4,4 ==> ch - BE @@L39 -@@L42 EQU * - L 3,156(13) ==> skipvar - LTR 3,3 - BNE @@L45 - L 15,112(13) ==> cptr - STC 4,0(15) ==> ch - A 15,=F'1' - ST 15,112(13) ==> cptr -@@L45 EQU * - LTR 6,6 ==> fp - BNE @@L46 - SLR 4,4 ==> ch - IC 4,0(9) ==> ch,s - A 9,=F'1' ==> s - B @@L38 -@@L46 EQU * - ST 6,88(13) ==> fp - LA 1,88(,13) - L 15,=V(FGETC) - BALR 14,15 - LR 4,15 ==> ch - B @@L38 -@@L39 EQU * - L 2,156(13) ==> skipvar - LTR 2,2 - BNE @@L48 - L 3,112(13) ==> cptr - MVC 0(1,3),159(13) ==> skipvar -@@L48 EQU * - L 15,108(13) ==> cnt - A 15,=F'1' - ST 15,108(13) ==> cnt - L 14,=A(@@L10) - BR 14 -@@L24 EQU * - CLI 0(5),173 ==> format - BNE @@L50 - SLR 3,3 ==> mcnt - LR 8,3 ==> reverse,mcnt - L 2,156(13) ==> skipvar - LTR 2,2 - BNE @@L51 - L 15,4(11) ==> arg - A 15,=F'4' - ST 15,4(11) ==> arg - LR 2,15 - A 2,=F'-4' - MVC 112(4,13),0(2) ==> cptr -@@L51 EQU * - A 5,=F'1' ==> format - CLI 0(5),95 ==> format - BNE @@L52 - LA 8,1(0,0) ==> reverse - AR 5,8 ==> format -@@L52 EQU * - IC 2,0(5) ==> format - CLM 2,1,=XL1'00' - L 14,=A(@@L7) - BER 14 - LR 7,5 ==> first,format - A 5,=F'1' ==> format - ST 5,88(13) ==> format - MVC 92(4,13),=F'189' - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LR 2,15 ==> last - L 15,108(13) ==> cnt - LTR 2,2 ==> last - L 14,=A(@@L1) - BER 14 - LR 5,2 ==> size,last - SR 5,7 ==> size,first -@@L67 EQU * - ST 7,88(13) ==> first - ST 4,92(13) ==> ch - ST 5,96(13) ==> size - LA 1,88(,13) - L 15,=V(MEMCHR) - BALR 14,15 - LTR 15,15 ==> found - BE @@L58 - LA 15,1(0,0) ==> found -@@L58 EQU * - LTR 15,15 ==> found - BE @@L59 - LTR 8,8 ==> reverse - BNE @@L56 -@@L59 EQU * - LTR 15,15 ==> found - BNE @@L60 - LTR 8,8 ==> reverse - BE @@L56 -@@L60 EQU * - L 15,156(13) ==> skipvar - LTR 15,15 - BNE @@L61 - L 15,112(13) ==> cptr - STC 4,0(15) ==> ch - A 15,=F'1' - ST 15,112(13) ==> cptr -@@L61 EQU * - A 3,=F'1' ==> mcnt - LTR 6,6 ==> fp - BNE @@L62 - SLR 4,4 ==> ch - IC 4,0(9) ==> ch,s - A 9,=F'1' ==> s - B @@L63 -@@L62 EQU * - ST 6,88(13) ==> fp - LA 1,88(,13) - L 15,=V(FGETC) - BALR 14,15 - LR 4,15 ==> ch -@@L63 EQU * - LTR 6,6 ==> fp - BE @@L66 - L 15,=F'-1' - CLR 4,15 ==> ch - BE @@L56 -@@L66 EQU * - LTR 6,6 ==> fp - BNE @@L67 - LTR 4,4 ==> ch - BNE @@L67 -@@L56 EQU * - LTR 3,3 ==> mcnt - L 14,=A(@@L7) - BER 14 - L 3,156(13) ==> skipvar - LTR 3,3 - BNE @@L69 - L 15,112(13) ==> cptr - MVC 0(1,15),159(13) ==> skipvar - A 15,=F'1' - ST 15,112(13) ==> cptr -@@L69 EQU * - L 3,108(13) ==> cnt - A 3,=F'1' - ST 3,108(13) ==> cnt - LR 5,2 ==> format,last - A 5,=F'1' ==> format - L 14,=A(@@L10) - BR 14 -@@L50 EQU * - CLI 0(5),131 ==> format - BNE @@L72 - L 15,156(13) ==> skipvar - LTR 15,15 - BNE @@L73 - L 2,4(11) ==> arg - A 2,=F'4' - ST 2,4(11) ==> arg - A 2,=F'-4' - MVC 112(4,13),0(2) ==> cptr -@@L73 EQU * - LTR 6,6 ==> fp - BE @@L76 - L 3,=F'-1' - CLR 4,3 ==> ch - L 14,=A(@@L10) - BER 14 -@@L76 EQU * - LTR 6,6 ==> fp - BNE @@L74 - LTR 4,4 ==> ch - L 14,=A(@@L10) - BER 14 -@@L74 EQU * - L 15,156(13) ==> skipvar - LTR 15,15 - BNE @@L78 - L 2,112(13) ==> cptr - STC 4,0(2) ==> ch -@@L78 EQU * - L 3,108(13) ==> cnt - A 3,=F'1' - ST 3,108(13) ==> cnt - L 14,=A(@@L269) - BR 14 -@@L72 EQU * - CLI 0(5),149 ==> format - BNE @@L82 - L 15,4(11) ==> arg - A 15,=F'4' - ST 15,4(11) ==> arg - LR 2,15 - A 2,=F'-4' - MVC 120(4,13),0(2) ==> uptr - LTR 6,6 ==> fp - BE @@L83 - ST 6,88(13) ==> fp - LA 1,88(,13) - L 15,=V(FTELL) - BALR 14,15 - S 15,148(13) ==> startpos - L 2,120(13) ==> uptr - ST 15,0(2) - L 14,=A(@@L10) - BR 14 -@@L83 EQU * - LR 2,9 ==> s - S 2,152(13) ==> startp - BCTR 2,0 - L 3,120(13) ==> uptr - ST 2,0(3) - L 14,=A(@@L10) - BR 14 -@@L82 EQU * - IC 2,0(5) ==> format - CLM 2,1,=XL1'84' - BE @@L87 - CLM 2,1,=XL1'A4' - BE @@L87 - CLM 2,1,=XL1'A7' - BE @@L87 - CLM 2,1,=XL1'96' - BE @@L87 - CLM 2,1,=XL1'97' - BE @@L87 - CLM 2,1,=XL1'89' - L 14,=A(@@L86) - BNER 14 -@@L87 EQU * - SLR 7,7 ==> x - ST 7,172(13) ==> x,neg - ST 7,176(13) ==> x,undecided - LA 8,10(0,0) ==> base - ST 7,180(13) ==> x,mcnt - CLI 0(5),167 ==> format - BE @@L258 - CLI 0(5),151 ==> format - BNE @@L90 -@@L258 EQU * - LA 8,16(0,0) ==> base - B @@L89 -@@L90 EQU * - CLI 0(5),150 ==> format - BNE @@L92 - LA 8,8(0,0) ==> base - B @@L89 -@@L92 EQU * - CLI 0(5),137 ==> format - BNE @@L89 - SLR 8,8 ==> base -@@L89 EQU * - L 15,156(13) ==> skipvar - LTR 15,15 - BNE @@L95 - IC 2,0(5) ==> format - CLM 2,1,=XL1'84' - BE @@L97 - CLM 2,1,=XL1'89' - BNE @@L96 -@@L97 EQU * - L 2,160(13) ==> modlong - LTR 2,2 - BE @@L98 - L 3,4(11) ==> arg - A 3,=F'4' - ST 3,4(11) ==> arg - LR 2,3 - A 2,=F'-4' - MVC 124(4,13),0(2) ==> lptr - B @@L95 -@@L98 EQU * - L 15,164(13) ==> modshort - LTR 15,15 - BE @@L100 - L 2,4(11) ==> arg - A 2,=F'4' - ST 2,4(11) ==> arg - A 2,=F'-4' - MVC 132(4,13),0(2) ==> hptr - B @@L95 -@@L100 EQU * - L 3,4(11) ==> arg - A 3,=F'4' - ST 3,4(11) ==> arg - LR 2,3 - A 2,=F'-4' - MVC 116(4,13),0(2) ==> iptr - B @@L95 -@@L96 EQU * - L 15,160(13) ==> modlong - LTR 15,15 - BE @@L103 - L 2,4(11) ==> arg - A 2,=F'4' - ST 2,4(11) ==> arg - A 2,=F'-4' - MVC 128(4,13),0(2) ==> luptr - B @@L95 -@@L103 EQU * - L 3,164(13) ==> modshort - LTR 3,3 - BE @@L105 - L 15,4(11) ==> arg - A 15,=F'4' - ST 15,4(11) ==> arg - LR 2,15 - A 2,=F'-4' - MVC 136(4,13),0(2) ==> huptr - B @@L95 -@@L105 EQU * - L 2,4(11) ==> arg - A 2,=F'4' - ST 2,4(11) ==> arg - A 2,=F'-4' - MVC 120(4,13),0(2) ==> uptr -@@L95 EQU * - LTR 4,4 ==> ch - BL @@L108 - L 2,=V(@@ISBUF) - L 3,0(2) ==> __isbuf - LR 2,4 ==> ch - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'256' - CH 2,=H'0' - BE @@L108 -@@L113 EQU * - LTR 6,6 ==> fp - BNE @@L111 - SLR 4,4 ==> ch - IC 4,0(9) ==> ch,s - A 9,=F'1' ==> s - B @@L107 -@@L111 EQU * - ST 6,88(13) ==> fp - LA 1,88(,13) - L 15,=V(FGETC) - BALR 14,15 - LR 4,15 ==> ch -@@L107 EQU * - LTR 4,4 ==> ch - BL @@L108 - L 2,=V(@@ISBUF) - L 3,0(2) ==> __isbuf - LR 2,4 ==> ch - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'256' - CH 2,=H'0' - BNE @@L113 -@@L108 EQU * - LA 3,96(0,0) - CLR 4,3 ==> ch - BNE @@L114 - MVC 172(4,13),=F'1' ==> neg - B @@L266 -@@L114 EQU * - LA 15,78(0,0) - CLR 4,15 ==> ch - BNE @@L117 -@@L266 EQU * - LTR 6,6 ==> fp - BNE @@L119 - SLR 4,4 ==> ch - IC 4,0(9) ==> ch,s - A 9,=F'1' ==> s - B @@L117 -@@L119 EQU * - ST 6,88(13) ==> fp - LA 1,88(,13) - L 15,=V(FGETC) - BALR 14,15 - LR 4,15 ==> ch -@@L117 EQU * - LTR 8,8 ==> base - BNE @@L122 - MVC 176(4,13),=F'1' ==> undecided - B @@L122 -@@L152 EQU * - LR 2,4 - N 2,=XL4'000000FF' ==> ch - L 3,=V(@@ISBUF) - L 3,0(3) ==> __isbuf - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'8' - CH 2,=H'0' - BE @@L127 - LTR 8,8 ==> base - BNE @@L128 - LA 8,8(0,0) ==> base - LA 2,240(0,0) - CLR 4,2 ==> ch - BE @@L128 - LA 8,10(0,0) ==> base - MVC 176(4,13),=F'0' ==> undecided -@@L128 EQU * - ST 8,188(13) ==> base - L 2,184(13) - L 3,4+184(13) - MR 2,7 ==> x - ST 2,184(13) - ST 3,4+184(13) - L 7,188(13) ==> x - AR 7,4 ==> x,ch - A 7,=F'-240' ==> x - B @@L267 -@@L127 EQU * - LR 2,4 - N 2,=XL4'000000FF' ==> ch - L 3,=V(@@ISBUF) - L 3,0(3) ==> __isbuf - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'2' - CH 2,=H'0' - BE @@L123 - LA 3,231(0,0) - CLR 4,3 ==> ch - BE @@L136 - LA 15,167(0,0) - CLR 4,15 ==> ch - BNE @@L135 -@@L136 EQU * - LTR 8,8 ==> base - BE @@L138 - LA 2,8(0,0) - CLR 8,2 ==> base - BNE @@L137 - L 3,176(13) ==> undecided - LTR 3,3 - BE @@L137 -@@L138 EQU * - LA 8,16(0,0) ==> base - MVC 176(4,13),=F'0' ==> undecided - B @@L267 -@@L137 EQU * - LA 15,16(0,0) - CLR 8,15 ==> base - BNE @@L123 - B @@L267 -@@L135 EQU * - LA 2,10(0,0) - CR 8,2 ==> base - BNH @@L123 - ST 8,196(13) ==> base - L 2,192(13) - L 3,4+192(13) - MR 2,7 ==> x - ST 2,192(13) - ST 3,4+192(13) - LR 2,4 - N 2,=XL4'000000FF' ==> ch - L 3,=V(@@TOUP) - L 3,0(3) ==> __toup - MH 2,=H'2' - LH 2,0(2,3) - L 7,196(13) ==> x - AR 7,2 ==> x - A 7,=F'-183' ==> x -@@L267 EQU * - LTR 6,6 ==> fp - BNE @@L149 - SLR 4,4 ==> ch - IC 4,0(9) ==> ch,s - A 9,=F'1' ==> s - B @@L133 -@@L149 EQU * - ST 6,88(13) ==> fp - LA 1,88(,13) - L 15,=V(FGETC) - BALR 14,15 - LR 4,15 ==> ch -@@L133 EQU * - L 3,180(13) ==> mcnt - A 3,=F'1' - ST 3,180(13) ==> mcnt -@@L122 EQU * - LTR 6,6 ==> fp - BE @@L126 - L 15,=F'-1' - CLR 4,15 ==> ch - BE @@L123 -@@L126 EQU * - LTR 6,6 ==> fp - BNE @@L152 - LTR 4,4 ==> ch - BNE @@L152 -@@L123 EQU * - L 2,180(13) ==> mcnt - LTR 2,2 - L 14,=A(@@L7) - BER 14 - L 3,156(13) ==> skipvar - LTR 3,3 - L 14,=A(@@L229) - BNER 14 - IC 2,0(5) ==> format - CLM 2,1,=XL1'84' - BE @@L156 - CLM 2,1,=XL1'89' - BNE @@L155 -@@L156 EQU * - LCR 2,7 ==> lval,x - L 15,172(13) ==> neg - LTR 15,15 - BNE @@L158 - LR 2,7 ==> lval,x -@@L158 EQU * - L 3,160(13) ==> modlong - LTR 3,3 - BE @@L159 - L 15,124(13) ==> lptr - ST 2,0(15) ==> lval - L 14,=A(@@L229) - BR 14 -@@L159 EQU * - L 3,164(13) ==> modshort - LTR 3,3 - BE @@L161 - L 15,132(13) ==> hptr - STH 2,0(15) ==> lval - L 14,=A(@@L229) - BR 14 -@@L161 EQU * - L 3,116(13) ==> iptr - ST 2,0(3) ==> lval - L 14,=A(@@L229) - BR 14 -@@L155 EQU * - L 15,160(13) ==> modlong - LTR 15,15 - BE @@L164 - L 2,128(13) ==> luptr - B @@L261 -@@L164 EQU * - L 3,164(13) ==> modshort - LTR 3,3 - BE @@L166 - L 15,136(13) ==> huptr - STH 7,0(15) ==> x - L 14,=A(@@L229) - BR 14 -@@L166 EQU * - L 2,120(13) ==> uptr -@@L261 EQU * - ST 7,0(2) ==> x - L 14,=A(@@L229) - BR 14 -@@L86 EQU * - IC 15,0(5) ==> format - LA 2,123(,15) - CLM 2,1,=XL1'02' - BNH @@L170 - CLM 15,1,=XL1'C5' - BE @@L170 - CLM 15,1,=XL1'C7' - L 14,=A(@@L10) - BNER 14 -@@L170 EQU * - L 2,156(13) ==> skipvar - LTR 2,2 - BNE @@L171 - L 3,160(13) ==> modlong - LTR 3,3 - BE @@L172 - L 15,4(11) ==> arg - A 15,=F'4' - ST 15,4(11) ==> arg - LR 2,15 - A 2,=F'-4' - MVC 140(4,13),0(2) ==> dptr - B @@L171 -@@L172 EQU * - L 2,4(11) ==> arg - A 2,=F'4' - ST 2,4(11) ==> arg - A 2,=F'-4' - MVC 144(4,13),0(2) ==> fptr -@@L171 EQU * - MVC 200(4,13),=F'0' ==> negsw1 - MVC 204(4,13),200(13) ==> negsw2,negsw1 - MVC 208(4,13),200(13) ==> dotsw,negsw1 - MVC 212(4,13),200(13) ==> expsw,negsw1 - MVC 216(4,13),200(13) ==> ndigs1,negsw1 - MVC 220(4,13),200(13) ==> ndigs2,negsw1 - MVC 224(4,13),200(13) ==> nfdigs,negsw1 - SLR 7,7 ==> ntrailzer - SLR 8,8 ==> expnum - ST 7,228(13) ==> expsignsw - LD 0,=D'0.0E0' - STD 0,232(13) ==> fpval - LTR 4,4 ==> ch - BL @@L175 - L 2,=V(@@ISBUF) - L 3,0(2) ==> __isbuf - LR 2,4 ==> ch - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'256' - CH 2,=H'0' - BE @@L175 -@@L180 EQU * - LTR 6,6 ==> fp - BNE @@L178 - SLR 4,4 ==> ch - IC 4,0(9) ==> ch,s - A 9,=F'1' ==> s - B @@L174 -@@L178 EQU * - ST 6,88(13) ==> fp - LA 1,88(,13) - L 15,=V(FGETC) - BALR 14,15 - LR 4,15 ==> ch -@@L174 EQU * - LTR 4,4 ==> ch - BL @@L175 - L 2,=V(@@ISBUF) - L 3,0(2) ==> __isbuf - LR 2,4 ==> ch - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'256' - CH 2,=H'0' - BNE @@L180 -@@L175 EQU * - LA 2,96(0,0) - CLR 4,2 ==> ch - BNE @@L181 - MVC 200(4,13),=F'1' ==> negsw1 - B @@L268 -@@L181 EQU * - LA 3,78(0,0) - CLR 4,3 ==> ch - BNE @@L184 -@@L268 EQU * - LTR 6,6 ==> fp - BNE @@L186 - SLR 4,4 ==> ch - IC 4,0(9) ==> ch,s - A 9,=F'1' ==> s - B @@L184 -@@L186 EQU * - ST 6,88(13) ==> fp - LA 1,88(,13) - L 15,=V(FGETC) - BALR 14,15 - LR 4,15 ==> ch -@@L184 EQU * - LTR 4,4 ==> ch - L 14,=A(@@L189) - BNHR 14 -@@L214 EQU * - L 12,0(,10) - LA 15,75(0,0) - CLR 4,15 ==> ch - BNE @@L191 - L 2,208(13) ==> dotsw - LTR 2,2 - BNE @@L191 - L 3,212(13) ==> expsw - LTR 3,3 - BNE @@L191 - MVC 208(4,13),=F'1' ==> dotsw - L 14,=A(@@L192) - BR 14 -@@L191 EQU * - L 2,=V(@@ISBUF) - L 3,0(2) ==> __isbuf - LR 2,4 ==> ch - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'8' - CH 2,=H'0' - L 14,=A(@@L193) - BER 14 - L 15,212(13) ==> expsw - LTR 15,15 - BE @@L194 - L 2,220(13) ==> ndigs2 - A 2,=F'1' - ST 2,220(13) ==> ndigs2 - LR 2,8 ==> expnum - SLL 2,3 - AR 2,8 ==> expnum - AR 2,8 ==> expnum - AR 2,4 ==> ch - LR 8,2 ==> expnum - A 8,=F'-240' ==> expnum - L 14,=A(@@L192) - BR 14 -@@L194 EQU * - L 3,216(13) ==> ndigs1 - A 3,=F'1' - ST 3,216(13) ==> ndigs1 - L 15,208(13) ==> dotsw - LTR 15,15 - BE @@L196 - L 2,224(13) ==> nfdigs - A 2,=F'1' - ST 2,224(13) ==> nfdigs -@@L196 EQU * - LA 3,240(0,0) - CLR 4,3 ==> ch - BNE @@L197 - LD 0,232(13) ==> fpval - LTDR 0,0 - BE @@L197 - A 7,=F'1' ==> ntrailzer - L 14,=A(@@L192) - BR 14 -@@L197 EQU * - LTR 7,7 ==> ntrailzer - BNH @@L253 -@@L203 EQU * - LD 2,232(13) ==> fpval - MD 2,=D'1.0E1' - STD 2,232(13) ==> fpval - BCTR 7,0 ==> ntrailzer - LTR 7,7 ==> ntrailzer - BH @@L203 -@@L253 EQU * - LD 0,232(13) ==> fpval - MD 0,=D'1.0E1' - STD 0,232(13) ==> fpval - LR 2,4 ==> ch - A 2,=F'-240' - MVC 80(4,13),=XL8'4E00000080000000' - ST 2,84(,13) - XI 84(13),128 - LD 0,80(,13) - SD 0,=XL8'4E00000080000000' - AD 0,232(13) ==> fpval - STD 0,232(13) ==> fpval - L 14,=A(@@L192) - BR 14 -@@L193 EQU * - LA 2,133(0,0) - CLR 4,2 ==> ch - BE @@L206 - LA 3,197(0,0) - CLR 4,3 ==> ch - BNE @@L205 -@@L206 EQU * - L 15,212(13) ==> expsw - LTR 15,15 - BNE @@L205 - MVC 212(4,13),=F'1' ==> expsw - B @@L192 -@@L205 EQU * - LA 2,78(0,0) - CLR 4,2 ==> ch - BE @@L209 - LA 3,96(0,0) - CLR 4,3 ==> ch - L 14,=A(@@L189) - BNER 14 -@@L209 EQU * - L 2,212(13) ==> expsw - LA 15,1(0,0) - CLR 2,15 - L 14,=A(@@L189) - BNER 14 - L 3,220(13) ==> ndigs2 - LTR 3,3 - L 14,=A(@@L189) - BNER 14 - L 15,228(13) ==> expsignsw - LTR 15,15 - BNE @@L189 - ST 2,228(13) ==> expsignsw - LA 2,96(0,0) - CLR 4,2 ==> ch - BNE @@L192 - MVC 204(4,13),212(13) ==> negsw2,expsw -@@L192 EQU * - LTR 6,6 ==> fp - BNE @@L212 - SLR 4,4 ==> ch - IC 4,0(9) ==> ch,s - A 9,=F'1' ==> s - B @@L188 -@@L212 EQU * - ST 6,88(13) ==> fp - LA 1,88(,13) - L 15,=V(FGETC) - BALR 14,15 - LR 4,15 ==> ch -@@L188 EQU * - LTR 4,4 ==> ch - BH @@L214 -@@L189 EQU * - L 3,216(13) ==> ndigs1 - LTR 3,3 - L 14,=A(@@L246) - BER 14 - L 15,212(13) ==> expsw - LTR 15,15 - BE @@L215 - L 2,220(13) ==> ndigs2 - LTR 2,2 - L 14,=A(@@L246) - BER 14 -@@L215 EQU * - L 3,204(13) ==> negsw2 - LTR 3,3 - BE @@L217 - LCR 8,8 ==> expnum -@@L217 EQU * - LR 2,7 ==> ntrailzer - S 2,224(13) ==> nfdigs - AR 8,2 ==> expnum - L 14,=A(@@L218) - BER 14 - LD 0,232(13) ==> fpval - LTDR 0,0 - L 14,=A(@@L218) - BER 14 - MVC 204(4,13),=F'0' ==> negsw2 - LTR 8,8 ==> expnum - BNL @@L220 - LCR 8,8 ==> expnum - MVC 204(4,13),=F'1' ==> negsw2 -@@L220 EQU * - LD 0,=D'1.0E1' ==> pow10 -@@L221 EQU * - L 12,0(,10) - LR 2,8 ==> expnum - N 2,=F'1' - LTR 2,2 - L 14,=A(@@L224) - BER 14 - L 2,204(13) ==> negsw2 - LTR 2,2 - B @@PGE0 - DS 0F - LTORG - DS 0F -@@PGE0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - BE @@L225 - LD 2,232(13) ==> fpval - DDR 2,0 ==> pow10 - B @@L263 -@@L225 EQU * - L 12,4(,10) - LD 2,232(13) ==> fpval - MDR 2,0 ==> pow10 -@@L263 EQU * - L 12,4(,10) - STD 2,232(13) ==> fpval -@@L224 EQU * - L 12,4(,10) - SRA 8,1 ==> expnum - BE @@L218 - MDR 0,0 ==> pow10 - L 14,=A(@@L221) - BR 14 -@@L218 EQU * - L 12,4(,10) - L 2,200(13) ==> negsw1 - LTR 2,2 - BE @@L228 - LD 0,232(13) ==> fpval - LCDR 0,0 - STD 0,232(13) ==> fpval -@@L228 EQU * - L 12,4(,10) - L 2,156(13) ==> skipvar - LTR 2,2 - BNE @@L229 - L 3,160(13) ==> modlong - LTR 3,3 - BE @@L230 - LD 0,232(13) ==> fpval - L 15,140(13) ==> dptr - STD 0,0(15) - B @@L229 -@@L230 EQU * - L 12,4(,10) - LD 2,232(13) ==> fpval - LRER 0,2 - L 2,144(13) ==> fptr - STE 0,0(2) -@@L229 EQU * - L 12,4(,10) - L 3,108(13) ==> cnt - A 3,=F'1' - ST 3,108(13) ==> cnt - B @@L10 -@@L11 EQU * - L 12,4(,10) - SLR 2,2 - IC 2,0(5) ==> format - L 3,=V(@@ISBUF) - L 3,0(3) ==> __isbuf - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'256' - CH 2,=H'0' - BE @@L233 - LTR 4,4 ==> ch - BL @@L10 - LR 2,4 ==> ch - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'256' - CH 2,=H'0' - BE @@L10 -@@L240 EQU * - L 12,4(,10) - LTR 6,6 ==> fp - BNE @@L238 - SLR 4,4 ==> ch - IC 4,0(9) ==> ch,s - A 9,=F'1' ==> s - B @@L234 -@@L238 EQU * - L 12,4(,10) - ST 6,88(13) ==> fp - LA 1,88(,13) - L 15,=V(FGETC) - BALR 14,15 - LR 4,15 ==> ch -@@L234 EQU * - L 12,4(,10) - LTR 4,4 ==> ch - BL @@L10 - L 2,=V(@@ISBUF) - L 3,0(2) ==> __isbuf - LR 2,4 ==> ch - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'256' - CH 2,=H'0' - BNE @@L240 - B @@L10 -@@L233 EQU * - L 12,4(,10) - SLR 2,2 - IC 2,0(5) ==> format - L 15,108(13) ==> cnt - CLR 4,2 ==> ch - BNE @@L1 -@@L269 EQU * - L 12,4(,10) - LTR 6,6 ==> fp - BNE @@L243 - SLR 4,4 ==> ch - IC 4,0(9) ==> ch,s - A 9,=F'1' ==> s - B @@L10 -@@L243 EQU * - L 12,4(,10) - ST 6,88(13) ==> fp - LA 1,88(,13) - L 15,=V(FGETC) - BALR 14,15 - LR 4,15 ==> ch -@@L10 EQU * - L 12,4(,10) - A 5,=F'1' ==> format -@@L6 EQU * - L 12,4(,10) - L 15,104(13) ==> fin - LTR 15,15 - L 14,=A(@@L245) - BER 14 -@@L7 EQU * - L 12,4(,10) - LTR 6,6 ==> fp - BE @@L246 - ST 4,88(13) ==> ch - ST 6,92(13) ==> fp - LA 1,88(,13) - L 15,=V(UNGETC) - BALR 14,15 -@@L246 EQU * - L 12,4(,10) - L 15,108(13) ==> cnt -@@L1 EQU * - L 12,4(,10) -* Function 'vvscanf' epilogue - PDPEPIL -* Function 'vvscanf' literal pool - DS 0D - LTORG -* Function 'vvscanf' page table -@@PGT0 DS 0F - DC A(@@PG0) - DC A(@@PG1) - END diff --git a/src/crent370/clib/vwtof.c b/src/crent370/clib/vwtof.c deleted file mode 100644 index 7d1e79b..0000000 --- a/src/crent370/clib/vwtof.c +++ /dev/null @@ -1,44 +0,0 @@ -/* VWTOF.C */ -#define CLIB_C -#include -#include -#include -#include -#include -#include -#include -#include "clib.h" - -void -vwtof(const char *text, va_list tList) -{ - int len; - char *p; - char buf[4096]; - - len = vsnprintf(buf, sizeof(buf), text, tList); - if (len >= sizeof(buf)) len = sizeof(buf) - 1; - buf[len] = 0; - - /* if the buffer is formatted with newlines */ - p = strchr(buf, '\n'); - if (p) { - while(p) { - /* truncate at the newline */ - *p++ = 0; - /* write out the buffer */ - wto(buf); - /* shift everything left */ - strcpy(buf, p); - /* look for next newline */ - p = strchr(buf, '\n'); - } - /* done */ - len = strlen(buf); - if (len==0) return; - } - - /* no newlines, do normal wto processing */ - buf[len] = 0; - wto(buf); -} diff --git a/src/crent370/clib/vwtof.o b/src/crent370/clib/vwtof.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/vwtof.s b/src/crent370/clib/vwtof.s deleted file mode 100644 index 4f7f0f4..0000000 --- a/src/crent370/clib/vwtof.s +++ /dev/null @@ -1,109 +0,0 @@ - TITLE '/home/projects/crent370/clib/vwtof.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'vwtof' prologue -* frame base=88, local stack=4096, call args=16 -&FUNC SETC 'vwtof' -VWTOF PDPPRLG CINDEX=0,FRAME=4200,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'vwtof' code - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=F'4096' - MVC 96(4,13),0(11) ==> text - MVC 100(4,13),4(11) ==> tList - LA 1,88(,13) - L 15,=V(VSNPRINT) - BALR 14,15 - LR 3,15 ==> len - LA 2,4095(0,0) - CLR 15,2 ==> len - BNH @@L2 - LR 3,2 ==> len -@@L2 EQU * - SLR 2,2 - STC 2,104(13,3) ==> buf - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=F'21' - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LR 2,15 ==> p - LTR 15,15 ==> p - BE @@L3 - LA 3,104(,13) -@@L7 EQU * - MVI 0(2),0 ==> p - A 2,=F'1' ==> p - ST 3,88(13) - LA 1,88(,13) - L 15,=V(WTO) - BALR 14,15 - ST 3,88(13) - ST 2,92(13) ==> p - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - ST 3,88(13) - MVC 92(4,13),=F'21' - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LR 2,15 ==> p - LTR 15,15 ==> p - BNE @@L7 - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 3,15 ==> len - LTR 15,15 ==> len - BE @@L1 -@@L3 EQU * - SLR 2,2 - STC 2,104(13,3) ==> buf - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(WTO) - BALR 14,15 -@@L1 EQU * -* Function 'vwtof' epilogue - PDPEPIL -* Function 'vwtof' literal pool - DS 0D - LTORG -* Function 'vwtof' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/vwtorf.c b/src/crent370/clib/vwtorf.c deleted file mode 100644 index 3d3b553..0000000 --- a/src/crent370/clib/vwtorf.c +++ /dev/null @@ -1,44 +0,0 @@ -/* VWTOF.C */ -#define CLIB_C -#include -#include -#include -#include -#include -#include -#include -#include "clib.h" - -void -vwtorf(char *reply, unsigned replymax, const char *text, va_list tList) -{ - int len; - char *p; - char buf[4096]; - - len = vsnprintf(buf, sizeof(buf), text, tList); - if (len >= sizeof(buf)) len = sizeof(buf) - 1; - buf[len] = 0; - - /* if the buffer is formatted with newlines */ - p = strchr(buf, '\n'); - if (p) { - while(p) { - /* truncate at the newline */ - *p++ = 0; - /* write out the buffer */ - wto(buf); - /* shift everything left */ - strcpy(buf, p); - /* look for next newline */ - p = strchr(buf, '\n'); - } - /* done */ - len = strlen(buf); - if (len==0) return; - } - - /* no newlines, do normal wto processing */ - buf[len] = 0; - wtor(reply, replymax, buf); -} diff --git a/src/crent370/clib/vwtorf.o b/src/crent370/clib/vwtorf.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/vwtorf.s b/src/crent370/clib/vwtorf.s deleted file mode 100644 index 7a30b93..0000000 --- a/src/crent370/clib/vwtorf.s +++ /dev/null @@ -1,111 +0,0 @@ - TITLE '/home/projects/crent370/clib/vwtorf.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'vwtorf' prologue -* frame base=88, local stack=4096, call args=16 -&FUNC SETC 'vwtorf' -VWTORF PDPPRLG CINDEX=0,FRAME=4200,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'vwtorf' code - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=F'4096' - MVC 96(4,13),8(11) ==> text - MVC 100(4,13),12(11) ==> tList - LA 1,88(,13) - L 15,=V(VSNPRINT) - BALR 14,15 - LR 3,15 ==> len - LA 2,4095(0,0) - CLR 15,2 ==> len - BNH @@L2 - LR 3,2 ==> len -@@L2 EQU * - SLR 2,2 - STC 2,104(13,3) ==> buf - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=F'21' - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LR 2,15 ==> p - LTR 15,15 ==> p - BE @@L3 - LA 3,104(,13) -@@L7 EQU * - MVI 0(2),0 ==> p - A 2,=F'1' ==> p - ST 3,88(13) - LA 1,88(,13) - L 15,=V(WTO) - BALR 14,15 - ST 3,88(13) - ST 2,92(13) ==> p - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - ST 3,88(13) - MVC 92(4,13),=F'21' - LA 1,88(,13) - L 15,=V(STRCHR) - BALR 14,15 - LR 2,15 ==> p - LTR 15,15 ==> p - BNE @@L7 - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 3,15 ==> len - LTR 15,15 ==> len - BE @@L1 -@@L3 EQU * - SLR 2,2 - STC 2,104(13,3) ==> buf - MVC 88(4,13),0(11) ==> reply - MVC 92(4,13),4(11) ==> replymax - LA 2,104(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(WTOR) - BALR 14,15 -@@L1 EQU * -* Function 'vwtorf' epilogue - PDPEPIL -* Function 'vwtorf' literal pool - DS 0D - LTORG -* Function 'vwtorf' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/wcstombs.c b/src/crent370/clib/wcstombs.c deleted file mode 100644 index 1111881..0000000 --- a/src/crent370/clib/wcstombs.c +++ /dev/null @@ -1,14 +0,0 @@ -/* WCSTOMBS.C */ -#include -#include -#include - -__PDPCLIB_API__ size_t wcstombs(char *s, const wchar_t *pwcs, size_t n) -{ - strncpy(s, (const char *)pwcs, n); - if (strlen((const char *)pwcs) >= n) - { - return (n); - } - return (strlen(s)); -} diff --git a/src/crent370/clib/wcstombs.o b/src/crent370/clib/wcstombs.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/wcstombs.s b/src/crent370/clib/wcstombs.s deleted file mode 100644 index 7474ac6..0000000 --- a/src/crent370/clib/wcstombs.s +++ /dev/null @@ -1,69 +0,0 @@ - TITLE '/home/projects/crent370/clib/wcstombs.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'wcstombs' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'wcstombs' -WCSTOMBS PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'wcstombs' code - L 4,0(11) ==> s - L 3,4(11) ==> pwcs - L 2,8(11) ==> n - ST 4,88(13) ==> s - ST 3,92(13) ==> pwcs - ST 2,96(13) ==> n - LA 1,88(,13) - L 15,=V(STRNCPY) - BALR 14,15 - ST 3,88(13) ==> pwcs - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 3,2 ==> n - CLR 15,2 ==> n - BNL @@L1 - ST 4,88(13) ==> s - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 3,15 ==> n -@@L1 EQU * - LR 15,3 ==> n -* Function 'wcstombs' epilogue - PDPEPIL -* Function 'wcstombs' literal pool - DS 0D - LTORG -* Function 'wcstombs' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/wctomb.c b/src/crent370/clib/wctomb.c deleted file mode 100644 index 589ed88..0000000 --- a/src/crent370/clib/wctomb.c +++ /dev/null @@ -1,14 +0,0 @@ -/* WCTOMB.C */ -#include -#include - -__PDPCLIB_API__ int wctomb(char *s, wchar_t wchar) -{ - if (s != NULL) { - *s = wchar; - return (1); - } - else { - return (0); - } -} diff --git a/src/crent370/clib/wctomb.o b/src/crent370/clib/wctomb.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/wctomb.s b/src/crent370/clib/wctomb.s deleted file mode 100644 index 08d9259..0000000 --- a/src/crent370/clib/wctomb.s +++ /dev/null @@ -1,56 +0,0 @@ - TITLE '/home/projects/crent370/clib/wctomb.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'wctomb' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'wctomb' -WCTOMB PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'wctomb' code - L 2,0(11) ==> s - L 15,4(11) ==> wchar - LTR 2,2 ==> s - BE @@L2 - STC 15,0(2) ==> wchar,s - LA 15,1(0,0) - B @@L1 -@@L2 EQU * - SLR 15,15 -@@L1 EQU * -* Function 'wctomb' epilogue - PDPEPIL -* Function 'wctomb' literal pool - DS 0D - LTORG -* Function 'wctomb' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/wto.c b/src/crent370/clib/wto.c deleted file mode 100644 index a1c7db5..0000000 --- a/src/crent370/clib/wto.c +++ /dev/null @@ -1,55 +0,0 @@ -/* WTO.C */ -#include -#include -#include -#include -#include -#include -#include - -typedef struct wtomsg { - short len; - short mcsflags; - char buf[128]; -} WTOMSG; - -extern void wtoline(const WTOMSG *msg); - -void -wto(char *buf) -{ - int len = strlen(buf); - WTOMSG msg; - - do { - if (len <= 124) { - msg.len = len + 4; - msg.mcsflags = 0; - if (len > 0) memcpy(msg.buf, buf, len); - len = 0; - } - else { - char *p = &buf[124]; - - while(*p != ' ' && p > buf) p--; - - if (p==buf) { - p = &buf[124]; /* no spaces, use 124 characters */ - } - else if (*p==' ') { - p++; /* include last space */ - } - - msg.len = (int)(p-buf); /* length of message segment */ - msg.mcsflags = 0; - memcpy(msg.buf, buf, msg.len); - msg.buf[msg.len] = 0; - /* shift the buffer left and adjust length */ - len -= msg.len; - if (len > 0) memcpy(buf, p, len); - buf[len] = 0; - msg.len += 4; - } - wtoline(&msg); - } while(len > 0); -} diff --git a/src/crent370/clib/wto.o b/src/crent370/clib/wto.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/wto.s b/src/crent370/clib/wto.s deleted file mode 100644 index afd88a3..0000000 --- a/src/crent370/clib/wto.s +++ /dev/null @@ -1,135 +0,0 @@ - TITLE '/home/projects/crent370/clib/wto.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'wto' prologue -* frame base=88, local stack=136, call args=16 -&FUNC SETC 'wto' -WTO PDPPRLG CINDEX=0,FRAME=240,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'wto' code - L 5,0(11) ==> buf - ST 5,88(13) ==> buf - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 4,15 ==> len -@@L2 EQU * - LA 2,124(0,0) - CR 4,2 ==> len - BH @@L5 - LR 2,4 ==> len - A 2,=F'4' - STH 2,104(13) ==> .len - MVC 106(2,13),=H'0' ==> .mcsflags - LTR 4,4 ==> len - BNH @@L6 - LA 2,108(,13) - ST 2,88(13) - ST 5,92(13) ==> buf - ST 4,96(13) ==> len - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 -@@L6 EQU * - SLR 4,4 ==> len - B @@L7 -@@L5 EQU * - LR 3,5 ==> p,buf - A 3,=F'124' ==> p - CLI 0(3),64 ==> p - BE @@L9 - CLR 3,5 ==> p,buf - BNH @@L9 -@@L12 EQU * - BCTR 3,0 ==> p - CLI 0(3),64 ==> p - BE @@L9 - CLR 3,5 ==> p,buf - BH @@L12 -@@L9 EQU * - CLR 3,5 ==> p,buf - BNE @@L13 - LR 3,5 ==> p,buf - A 3,=F'124' ==> p - B @@L14 -@@L13 EQU * - CLI 0(3),64 ==> p - BNE @@L14 - A 3,=F'1' ==> p -@@L14 EQU * - LR 2,3 ==> p - SR 2,5 ==> buf - STH 2,104(13) ==> .len - MVC 106(2,13),=H'0' ==> .mcsflags - LA 2,108(,13) - ST 2,88(13) - ST 5,92(13) ==> buf - LH 6,104(13) ==> .len - SLL 6,16 - SRA 6,16 - ST 6,96(13) - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - LH 2,104(13) ==> .len - SLR 6,6 - STC 6,108(2,13) ==> .buf - SR 4,2 ==> len - BNH @@L16 - ST 5,88(13) ==> buf - ST 3,92(13) ==> p - ST 4,96(13) ==> len - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 -@@L16 EQU * - SLR 2,2 - STC 2,0(4,5) ==> len - LH 2,104(13) ==> .len - AH 2,=H'4' - STH 2,104(13) ==> .len -@@L7 EQU * - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(WTOLINE) - BALR 14,15 - LTR 4,4 ==> len - BH @@L2 -* Function 'wto' epilogue - PDPEPIL -* Function 'wto' literal pool - DS 0D - LTORG -* Function 'wto' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/wtodump.c b/src/crent370/clib/wtodump.c deleted file mode 100644 index d1e8c71..0000000 --- a/src/crent370/clib/wtodump.c +++ /dev/null @@ -1,49 +0,0 @@ -/* WTODUMP.C */ -#define CLIB_C -#include -#include -#include -#include "clib.h" - -void -wtodump(const char *title, void *varea, int size, int chunk) -{ - int indent = 0; - int i, j; - int iHex = 0; - int ie = 0; - int x = (chunk * 2) + ((chunk / 4) - 1); - unsigned char *area = (unsigned char*)varea; - unsigned char e; - char sHex[80]; - char eChar[80]; - - wtof("%*.*sDump of %08X \"%s\" (%d bytes)\n", - indent, indent, "", - area, title, size); - - for (i=0, j=0; size > 0;i++ ) { - if ( i==chunk ) { - wtof("%*.*s+%05X %-*.*s :%-*.*s:\n", - indent, indent, "", j, x, x, sHex, chunk, chunk, eChar); - j += i; - ie = iHex = i = 0; - } - iHex += sprintf(&sHex[iHex],"%02X",*area); - if ((i & 3) == 3) iHex += sprintf(&sHex[iHex]," "); - - e = *area; - - ie += sprintf(&eChar[ie],"%c", isgraph(e)?e:e==' '?e:'.'); - area++; - size--; - } - - if ( iHex ) { - wtof("%*.*s+%05X %-*.*s :%-*.*s:\n", - indent, indent, "", j, x, x, sHex, chunk, chunk, eChar); - } - -quit: - return; -} diff --git a/src/crent370/clib/wtodump.o b/src/crent370/clib/wtodump.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/wtodump.s b/src/crent370/clib/wtodump.s deleted file mode 100644 index c5f526a..0000000 --- a/src/crent370/clib/wtodump.s +++ /dev/null @@ -1,197 +0,0 @@ - TITLE '/home/projects/crent370/clib/wtodump.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'wtodump' prologue -* frame base=88, local stack=168, call args=48 -&FUNC SETC 'wtodump' -WTODUMP PDPPRLG CINDEX=0,FRAME=304,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'wtodump' code - L 6,8(11) ==> size - SLR 7,7 ==> iHex - ST 7,300(13) ==> ie - L 9,12(11) ==> x,chunk - MH 9,=H'2' ==> x - L 2,12(11) ==> chunk - LTR 2,2 ==> chunk - BNL @@L2 - A 2,=F'3' ==> chunk -@@L2 EQU * - SRA 2,2 - AR 9,2 ==> x - BCTR 9,0 ==> x - L 5,4(11) ==> area,varea - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'0' - MVC 100(4,13),=A(@@LC1) - ST 5,104(13) ==> area - MVC 108(4,13),0(11) ==> title - ST 6,112(13) ==> size - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 296(4,13),=F'0' ==> j - SLR 8,8 ==> i - LTR 6,6 ==> size - BNH @@L17 -@@L13 EQU * - CL 8,12(11) ==> i,chunk - BNE @@L7 - MVC 88(4,13),=A(@@LC2) - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'0' - MVC 100(4,13),=A(@@LC1) - MVC 104(4,13),296(13) ==> j - ST 9,108(13) ==> x - ST 9,112(13) ==> x - LA 2,136(,13) - ST 2,116(13) - MVC 120(4,13),12(11) ==> chunk - MVC 124(4,13),12(11) ==> chunk - LA 2,216(,13) - ST 2,128(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - L 2,296(13) ==> j - A 2,12(11) ==> chunk - ST 2,296(13) ==> j - SLR 7,7 ==> iHex - LR 8,7 ==> i,iHex - ST 7,300(13) ==> iHex,ie -@@L7 EQU * - LA 3,136(,13) - LR 2,3 - AR 2,7 ==> iHex - ST 2,88(13) - MVC 92(4,13),=A(@@LC3) - SLR 2,2 - IC 2,0(5) ==> area - ST 2,96(13) - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - AR 7,15 ==> iHex - LR 2,8 ==> i - N 2,=F'3' - LA 4,3(0,0) - CLR 2,4 - BNE @@L8 - LR 2,3 - AR 2,7 ==> iHex - ST 2,88(13) - MVC 92(4,13),=A(@@LC4) - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - AR 7,15 ==> iHex -@@L8 EQU * - IC 15,0(5) ==> e,area - LA 2,216(,13) - A 2,300(13) ==> ie - ST 2,88(13) - MVC 92(4,13),=A(@@LC5) - LR 4,15 ==> e - N 4,=XL4'000000FF' ==> e - L 2,=V(@@ISBUF) - L 3,0(2) ==> __isbuf - LR 2,4 ==> e - MH 2,=H'2' - LH 2,0(2,3) - N 2,=F'16' - CH 2,=H'0' - BNE @@L10 - LA 4,64(0,0) ==> e - CLM 15,1,=XL1'40' ==> e - BE @@L10 - LA 4,75(0,0) ==> e -@@L10 EQU * - ST 4,96(13) ==> e - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - A 15,300(13) ==> ie - ST 15,300(13) ==> ie - A 5,=F'1' ==> area - BCTR 6,0 ==> size - A 8,=F'1' ==> i - LTR 6,6 ==> size - BH @@L13 -@@L17 EQU * - LTR 7,7 ==> iHex - BE @@L1 - MVC 88(4,13),=A(@@LC2) - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'0' - MVC 100(4,13),=A(@@LC1) - MVC 104(4,13),296(13) ==> j - ST 9,108(13) ==> x - ST 9,112(13) ==> x - LA 2,136(,13) - ST 2,116(13) - MVC 120(4,13),12(11) ==> chunk - MVC 124(4,13),12(11) ==> chunk - LA 2,216(,13) - ST 2,128(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L15 EQU * -@@L1 EQU * -* Function 'wtodump' epilogue - PDPEPIL -* Function 'wtodump' literal pool - DS 0D - LTORG -* Function 'wtodump' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%*.*sDump of %08X "%s" (%d bytes)' - DC X'15' - DC X'0' -@@LC1 EQU * - DC X'0' -@@LC2 EQU * - DC C'%*.*s+%05X %-*.*s :%-*.*s:' - DC X'15' - DC X'0' -@@LC3 EQU * - DC C'%02X' - DC X'0' -@@LC4 EQU * - DC C' ' - DC X'0' -@@LC5 EQU * - DC C'%c' - DC X'0' - END diff --git a/src/crent370/clib/wtodumpf.c b/src/crent370/clib/wtodumpf.c deleted file mode 100644 index 47bc6c8..0000000 --- a/src/crent370/clib/wtodumpf.c +++ /dev/null @@ -1,21 +0,0 @@ -/* WTODUMPF.C */ -#include -#include -#include -#include - -void -wtodumpf(void *buf, int len, const char *fmt, ...) -{ - int rc = 0; - va_list list; - char title[80]; - - va_start(list, fmt); - vsprintf(title, fmt, list); - va_end(list); - - wtodump(title, buf, len, 16); - - return; -} diff --git a/src/crent370/clib/wtodumpf.o b/src/crent370/clib/wtodumpf.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/wtodumpf.s b/src/crent370/clib/wtodumpf.s deleted file mode 100644 index fbea66b..0000000 --- a/src/crent370/clib/wtodumpf.s +++ /dev/null @@ -1,61 +0,0 @@ - TITLE '/home/projects/crent370/clib/wtodumpf.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'wtodumpf' prologue -* frame base=88, local stack=80, call args=16 -&FUNC SETC 'wtodumpf' -WTODUMPF PDPPRLG CINDEX=0,FRAME=184,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'wtodumpf' code - LA 3,104(,13) - ST 3,88(13) - MVC 92(4,13),8(11) - LA 2,12(,11) ==> list - ST 2,96(13) ==> list - LA 1,88(,13) - L 15,=V(VSPRINTF) - BALR 14,15 - ST 3,88(13) - MVC 92(4,13),0(11) ==> buf - MVC 96(4,13),4(11) ==> len - MVC 100(4,13),=F'16' - LA 1,88(,13) - L 15,=V(WTODUMP) - BALR 14,15 -* Function 'wtodumpf' epilogue - PDPEPIL -* Function 'wtodumpf' literal pool - DS 0D - LTORG -* Function 'wtodumpf' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/wtof.c b/src/crent370/clib/wtof.c deleted file mode 100644 index cb16aa7..0000000 --- a/src/crent370/clib/wtof.c +++ /dev/null @@ -1,20 +0,0 @@ -/* WTOF.C */ -#define CLIB_C -#include -#include -#include -#include -#include -#include -#include -#include "clib.h" - -void -wtof(const char *text, ...) -{ - va_list tList; - - va_start(tList, text); - vwtof(text, tList); - va_end(tList); -} diff --git a/src/crent370/clib/wtof.o b/src/crent370/clib/wtof.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/wtof.s b/src/crent370/clib/wtof.s deleted file mode 100644 index cd619c5..0000000 --- a/src/crent370/clib/wtof.s +++ /dev/null @@ -1,52 +0,0 @@ - TITLE '/home/projects/crent370/clib/wtof.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'wtof' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'wtof' -WTOF PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'wtof' code - MVC 88(4,13),0(11) - LA 2,4(,11) ==> tList - ST 2,92(13) ==> tList - LA 1,88(,13) - L 15,=V(VWTOF) - BALR 14,15 -* Function 'wtof' epilogue - PDPEPIL -* Function 'wtof' literal pool - DS 0D - LTORG -* Function 'wtof' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/wtoline.c b/src/crent370/clib/wtoline.c deleted file mode 100644 index 9385fc6..0000000 --- a/src/crent370/clib/wtoline.c +++ /dev/null @@ -1,23 +0,0 @@ -/* WTOLINE.C */ -#include -#include -#include -#include -#include -#include -#include - -typedef struct wtomsg { - short len; - short mcsflags; - char buf[128]; -} WTOMSG; - -void -wtoline(const WTOMSG *msg) -{ - __asm__("LA\t1,0(,%0)\n\t" - "SVC\t35 WTO" - : /* no output */ - : "r" (msg)); -} diff --git a/src/crent370/clib/wtoline.o b/src/crent370/clib/wtoline.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/wtoline.s b/src/crent370/clib/wtoline.s deleted file mode 100644 index 8fc4489..0000000 --- a/src/crent370/clib/wtoline.s +++ /dev/null @@ -1,49 +0,0 @@ - TITLE '/home/projects/crent370/clib/wtoline.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'wtoline' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'wtoline' -WTOLINE PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'wtoline' code - L 2,0(11) ==> msg - LA 1,0(,2) ==> msg - SVC 35 WTO -* Function 'wtoline' epilogue - PDPEPIL -* Function 'wtoline' literal pool - DS 0D - LTORG -* Function 'wtoline' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/wtor.c b/src/crent370/clib/wtor.c deleted file mode 100644 index 5a119c3..0000000 --- a/src/crent370/clib/wtor.c +++ /dev/null @@ -1,54 +0,0 @@ -/* WTO.C */ -#include -#include -#include -#include -#include -#include -#include - -typedef struct wtormsg { - union { - unsigned reply; - struct { - char reply_len; - char reply_addr[3]; - } __attribute__((packed)); - }; - unsigned *ecb; - unsigned short text_len; - unsigned short mcs_flags; - char text[122]; -} WTORMSG; - -void -wtor(char *reply, unsigned replymax, const char *text) -{ - unsigned ecb = 0; - unsigned len = 0; - WTORMSG msg = {0}; - - if (text) { - len = strlen(text); - if (len > sizeof(msg.text)) len = sizeof(msg.text); - } - - if (reply && replymax) { - if (replymax > 119) replymax = 119; - msg.reply = (unsigned)reply; - msg.reply_len = replymax; - msg.ecb = &ecb; - } - - if (len) { - msg.text_len = sizeof(msg.text_len) + sizeof(msg.mcs_flags) + len; - memcpy(msg.text, text, len); - } - - __asm__("LR\t1,%0\n\t" - "SVC\t35" : : "r"(&msg) : "0", "1", "14", "15"); - - if (msg.ecb) { - __asm__("WAIT\t1,ECB=(%0)" : : "r"(msg.ecb) : "0", "1", "14", "15"); - } -} diff --git a/src/crent370/clib/wtor.o b/src/crent370/clib/wtor.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/wtor.s b/src/crent370/clib/wtor.s deleted file mode 100644 index afae062..0000000 --- a/src/crent370/clib/wtor.s +++ /dev/null @@ -1,102 +0,0 @@ - TITLE '/home/projects/crent370/clib/wtor.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'wtor' prologue -* frame base=88, local stack=144, call args=16 -&FUNC SETC 'wtor' -WTOR PDPPRLG CINDEX=0,FRAME=248,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'wtor' code - L 8,0(11) ==> reply - L 6,4(11) ==> replymax - L 7,8(11) ==> text - MVC 240(4,13),=F'0' - SLR 15,15 ==> len - LA 4,104(,13) - LA 5,136(0,0) - LR 2,15 ==> len - LR 3,15 ==> len - MVCL 4,2 ==> len - LTR 7,7 ==> text - BE @@L2 - ST 7,88(13) ==> text - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LA 2,122(0,0) - CLR 15,2 ==> len - BNH @@L2 - LR 15,2 ==> len -@@L2 EQU * - LTR 8,8 ==> reply - BE @@L4 - LTR 6,6 ==> replymax - BE @@L4 - LA 2,119(0,0) - CLR 6,2 ==> replymax - BNH @@L5 - LR 6,2 ==> replymax -@@L5 EQU * - ST 8,104(13) ==> reply,reply - STC 6,104(13) ==> replymax,reply_len - LA 2,240(,13) - ST 2,108(13) ==> .ecb -@@L4 EQU * - LTR 15,15 ==> len - BE @@L6 - LR 2,15 ==> len - A 2,=F'4' - STH 2,112(13) ==> .text_len - LA 2,116(,13) - ST 2,88(13) - ST 7,92(13) ==> text - ST 15,96(13) ==> len - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 -@@L6 EQU * - LA 2,104(,13) - LR 1,2 - SVC 35 - L 2,108(13) ==> .ecb - LTR 2,2 - BE @@L1 - WAIT 1,ECB=(2) -@@L1 EQU * -* Function 'wtor' epilogue - PDPEPIL -* Function 'wtor' literal pool - DS 0D - LTORG -* Function 'wtor' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/clib/wtorf.c b/src/crent370/clib/wtorf.c deleted file mode 100644 index 55f916a..0000000 --- a/src/crent370/clib/wtorf.c +++ /dev/null @@ -1,20 +0,0 @@ -/* WTORF.C */ -#define CLIB_C -#include -#include -#include -#include -#include -#include -#include -#include "clib.h" - -void -wtorf(char *reply, unsigned replymax, const char *text, ...) -{ - va_list tList; - - va_start(tList, text); - vwtorf(reply, replymax, text, tList); - va_end(tList); -} diff --git a/src/crent370/clib/wtorf.o b/src/crent370/clib/wtorf.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/clib/wtorf.s b/src/crent370/clib/wtorf.s deleted file mode 100644 index b22673a..0000000 --- a/src/crent370/clib/wtorf.s +++ /dev/null @@ -1,54 +0,0 @@ - TITLE '/home/projects/crent370/clib/wtorf.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'wtorf' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'wtorf' -WTORF PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'wtorf' code - MVC 88(4,13),0(11) ==> reply - MVC 92(4,13),4(11) ==> replymax - MVC 96(4,13),8(11) - LA 2,12(,11) ==> tList - ST 2,100(13) ==> tList - LA 1,88(,13) - L 15,=V(VWTORF) - BALR 14,15 -* Function 'wtorf' epilogue - PDPEPIL -* Function 'wtorf' literal pool - DS 0D - LTORG -* Function 'wtorf' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/crypto/bfishdec.c b/src/crent370/crypto/bfishdec.c deleted file mode 100644 index 53145f0..0000000 --- a/src/crent370/crypto/bfishdec.c +++ /dev/null @@ -1,57 +0,0 @@ -/********************************************************************* -* Author: Brad Conte (brad AT bradconte.com) -* Copyright: -* Disclaimer: This code is presented "as is" without any guarantees. -* Details: Implementation of the Blowfish encryption algorithm. - Modes of operation (such as CBC) are not included. - Algorithm specification can be found here: - * http://www.schneier.com/blowfish.html -*********************************************************************/ - -/*************************** HEADER FILES ***************************/ -#include -#include "blowfish.h" - -/****************************** MACROS ******************************/ -#define F(x,t) t = keystruct->s[0][(x) >> 24]; \ - t += keystruct->s[1][((x) >> 16) & 0xff]; \ - t ^= keystruct->s[2][((x) >> 8) & 0xff]; \ - t += keystruct->s[3][(x) & 0xff]; -#define swap(r,l,t) t = l; l = r; r = t; -#define ITERATION(l,r,t,pval) l ^= keystruct->p[pval]; F(l,t); r^= t; swap(r,l,t); - -void blowfish_decrypt(const unsigned char in[], unsigned char out[], const BLOWFISH_KEY *keystruct) -{ - unsigned int l,r,t; //,i; - - l = (in[0] << 24) | (in[1] << 16) | (in[2] << 8) | (in[3]); - r = (in[4] << 24) | (in[5] << 16) | (in[6] << 8) | (in[7]); - - ITERATION(l,r,t,17); - ITERATION(l,r,t,16); - ITERATION(l,r,t,15); - ITERATION(l,r,t,14); - ITERATION(l,r,t,13); - ITERATION(l,r,t,12); - ITERATION(l,r,t,11); - ITERATION(l,r,t,10); - ITERATION(l,r,t,9); - ITERATION(l,r,t,8); - ITERATION(l,r,t,7); - ITERATION(l,r,t,6); - ITERATION(l,r,t,5); - ITERATION(l,r,t,4); - ITERATION(l,r,t,3); - l ^= keystruct->p[2]; F(l,t); r^= t; //Last iteration has no swap() - r ^= keystruct->p[1]; - l ^= keystruct->p[0]; - - out[0] = l >> 24; - out[1] = l >> 16; - out[2] = l >> 8; - out[3] = l; - out[4] = r >> 24; - out[5] = r >> 16; - out[6] = r >> 8; - out[7] = r; -} diff --git a/src/crent370/crypto/bfishdec.o b/src/crent370/crypto/bfishdec.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/crypto/bfishdec.s b/src/crent370/crypto/bfishdec.s deleted file mode 100644 index 6673bab..0000000 --- a/src/crent370/crypto/bfishdec.s +++ /dev/null @@ -1,431 +0,0 @@ - TITLE '/home/projects/crent370/crypto/bfishdec.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/crypto -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'blowfish_decrypt' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'blowfish_decrypt' -BFISHDEC PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'blowfish_decrypt' code - L 3,0(11) ==> in - L 5,4(11) ==> out - L 4,8(11) ==> keystruct - IC 15,0(3) ==> in - SLL 15,24 ==> l - SLR 2,2 - IC 2,1(3) - SLL 2,16 - OR 15,2 ==> l - SLR 2,2 - IC 2,2(3) - SLL 2,8 - OR 15,2 ==> l - SLR 2,2 - IC 2,3(3) - OR 15,2 ==> l - IC 6,4(3) - SLL 6,24 ==> r - SLR 2,2 - IC 2,5(3) - SLL 2,16 - OR 6,2 ==> r - SLR 2,2 - IC 2,6(3) - SLL 2,8 - OR 6,2 ==> r - SLR 2,2 - IC 2,7(3) - OR 6,2 ==> r - X 15,68(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - LR 3,15 ==> t,l - LR 15,6 ==> l,r - LR 6,3 ==> r,t - X 15,64(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - LR 3,15 ==> t,l - LR 15,6 ==> l,r - LR 6,3 ==> r,t - X 15,60(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - LR 3,15 ==> t,l - LR 15,6 ==> l,r - LR 6,3 ==> r,t - X 15,56(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - LR 3,15 ==> t,l - LR 15,6 ==> l,r - LR 6,3 ==> r,t - X 15,52(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - LR 3,15 ==> t,l - LR 15,6 ==> l,r - LR 6,3 ==> r,t - X 15,48(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - LR 3,15 ==> t,l - LR 15,6 ==> l,r - LR 6,3 ==> r,t - X 15,44(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - LR 3,15 ==> t,l - LR 15,6 ==> l,r - LR 6,3 ==> r,t - X 15,40(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - LR 3,15 ==> t,l - LR 15,6 ==> l,r - LR 6,3 ==> r,t - X 15,36(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - LR 3,15 ==> t,l - LR 15,6 ==> l,r - LR 6,3 ==> r,t - X 15,32(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - LR 3,15 ==> t,l - LR 15,6 ==> l,r - LR 6,3 ==> r,t - X 15,28(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - LR 3,15 ==> t,l - LR 15,6 ==> l,r - LR 6,3 ==> r,t - X 15,24(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - LR 3,15 ==> t,l - LR 15,6 ==> l,r - LR 6,3 ==> r,t - X 15,20(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - LR 3,15 ==> t,l - LR 15,6 ==> l,r - LR 6,3 ==> r,t - X 15,16(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - LR 3,15 ==> t,l - LR 15,6 ==> l,r - LR 6,3 ==> r,t - X 15,12(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - LR 3,15 ==> t,l - LR 15,6 ==> l,r - LR 6,3 ==> r,t - X 15,8(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - X 6,4(4) ==> r,p - X 15,0(4) ==> l,p - LR 2,15 ==> l - SRL 2,24 - STC 2,0(5) ==> out - LR 2,15 ==> l - SRL 2,16 - STC 2,1(5) - LR 2,15 ==> l - SRL 2,8 - STC 2,2(5) - STC 15,3(5) ==> l - LR 2,6 ==> r - SRL 2,24 - STC 2,4(5) - LR 2,6 ==> r - SRL 2,16 - STC 2,5(5) - LR 2,6 ==> r - SRL 2,8 - STC 2,6(5) - STC 6,7(5) ==> r -* Function 'blowfish_decrypt' epilogue - PDPEPIL -* Function 'blowfish_decrypt' literal pool - DS 0D - LTORG -* Function 'blowfish_decrypt' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/crypto/bfishenc.c b/src/crent370/crypto/bfishenc.c deleted file mode 100644 index c8a799d..0000000 --- a/src/crent370/crypto/bfishenc.c +++ /dev/null @@ -1,58 +0,0 @@ -/********************************************************************* -* Author: Brad Conte (brad AT bradconte.com) -* Copyright: -* Disclaimer: This code is presented "as is" without any guarantees. -* Details: Implementation of the Blowfish encryption algorithm. - Modes of operation (such as CBC) are not included. - Algorithm specification can be found here: - * http://www.schneier.com/blowfish.html -*********************************************************************/ - -/*************************** HEADER FILES ***************************/ -#include -#include "blowfish.h" - -/****************************** MACROS ******************************/ -#define F(x,t) t = keystruct->s[0][(x) >> 24]; \ - t += keystruct->s[1][((x) >> 16) & 0xff]; \ - t ^= keystruct->s[2][((x) >> 8) & 0xff]; \ - t += keystruct->s[3][(x) & 0xff]; -#define swap(r,l,t) t = l; l = r; r = t; -#define ITERATION(l,r,t,pval) l ^= keystruct->p[pval]; F(l,t); r^= t; swap(r,l,t); - -/*********************** FUNCTION DEFINITIONS ***********************/ -void blowfish_encrypt(const unsigned char in[], unsigned char out[], const BLOWFISH_KEY *keystruct) -{ - unsigned int l,r,t; //,i; - - l = (in[0] << 24) | (in[1] << 16) | (in[2] << 8) | (in[3]); - r = (in[4] << 24) | (in[5] << 16) | (in[6] << 8) | (in[7]); - - ITERATION(l,r,t,0); - ITERATION(l,r,t,1); - ITERATION(l,r,t,2); - ITERATION(l,r,t,3); - ITERATION(l,r,t,4); - ITERATION(l,r,t,5); - ITERATION(l,r,t,6); - ITERATION(l,r,t,7); - ITERATION(l,r,t,8); - ITERATION(l,r,t,9); - ITERATION(l,r,t,10); - ITERATION(l,r,t,11); - ITERATION(l,r,t,12); - ITERATION(l,r,t,13); - ITERATION(l,r,t,14); - l ^= keystruct->p[15]; F(l,t); r^= t; //Last iteration has no swap() - r ^= keystruct->p[16]; - l ^= keystruct->p[17]; - - out[0] = l >> 24; - out[1] = l >> 16; - out[2] = l >> 8; - out[3] = l; - out[4] = r >> 24; - out[5] = r >> 16; - out[6] = r >> 8; - out[7] = r; -} diff --git a/src/crent370/crypto/bfishenc.o b/src/crent370/crypto/bfishenc.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/crypto/bfishenc.s b/src/crent370/crypto/bfishenc.s deleted file mode 100644 index d9e7ee4..0000000 --- a/src/crent370/crypto/bfishenc.s +++ /dev/null @@ -1,431 +0,0 @@ - TITLE '/home/projects/crent370/crypto/bfishenc.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/crypto -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'blowfish_encrypt' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'blowfish_encrypt' -BFISHENC PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'blowfish_encrypt' code - L 3,0(11) ==> in - L 5,4(11) ==> out - L 4,8(11) ==> keystruct - IC 15,0(3) ==> in - SLL 15,24 ==> l - SLR 2,2 - IC 2,1(3) - SLL 2,16 - OR 15,2 ==> l - SLR 2,2 - IC 2,2(3) - SLL 2,8 - OR 15,2 ==> l - SLR 2,2 - IC 2,3(3) - OR 15,2 ==> l - IC 6,4(3) - SLL 6,24 ==> r - SLR 2,2 - IC 2,5(3) - SLL 2,16 - OR 6,2 ==> r - SLR 2,2 - IC 2,6(3) - SLL 2,8 - OR 6,2 ==> r - SLR 2,2 - IC 2,7(3) - OR 6,2 ==> r - X 15,0(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - LR 3,15 ==> t,l - LR 15,6 ==> l,r - LR 6,3 ==> r,t - X 15,4(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - LR 3,15 ==> t,l - LR 15,6 ==> l,r - LR 6,3 ==> r,t - X 15,8(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - LR 3,15 ==> t,l - LR 15,6 ==> l,r - LR 6,3 ==> r,t - X 15,12(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - LR 3,15 ==> t,l - LR 15,6 ==> l,r - LR 6,3 ==> r,t - X 15,16(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - LR 3,15 ==> t,l - LR 15,6 ==> l,r - LR 6,3 ==> r,t - X 15,20(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - LR 3,15 ==> t,l - LR 15,6 ==> l,r - LR 6,3 ==> r,t - X 15,24(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - LR 3,15 ==> t,l - LR 15,6 ==> l,r - LR 6,3 ==> r,t - X 15,28(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - LR 3,15 ==> t,l - LR 15,6 ==> l,r - LR 6,3 ==> r,t - X 15,32(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - LR 3,15 ==> t,l - LR 15,6 ==> l,r - LR 6,3 ==> r,t - X 15,36(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - LR 3,15 ==> t,l - LR 15,6 ==> l,r - LR 6,3 ==> r,t - X 15,40(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - LR 3,15 ==> t,l - LR 15,6 ==> l,r - LR 6,3 ==> r,t - X 15,44(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - LR 3,15 ==> t,l - LR 15,6 ==> l,r - LR 6,3 ==> r,t - X 15,48(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - LR 3,15 ==> t,l - LR 15,6 ==> l,r - LR 6,3 ==> r,t - X 15,52(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - LR 3,15 ==> t,l - LR 15,6 ==> l,r - LR 6,3 ==> r,t - X 15,56(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - LR 3,15 ==> t,l - LR 15,6 ==> l,r - LR 6,3 ==> r,t - X 15,60(4) ==> l,p - LR 3,15 ==> l - SRL 3,24 - MH 3,=H'4' - LR 2,15 ==> l - SRL 2,14 - N 2,=F'1020' - L 3,72(4,3) ==> t,s - A 3,1096(4,2) ==> t,s - LR 2,15 ==> l - SRL 2,6 - N 2,=F'1020' - X 3,2120(4,2) ==> t,s - LR 2,15 ==> l - N 2,=F'255' - MH 2,=H'4' - A 3,3144(4,2) ==> t,s - XR 6,3 ==> r,t - X 6,64(4) ==> r,p - X 15,68(4) ==> l,p - LR 2,15 ==> l - SRL 2,24 - STC 2,0(5) ==> out - LR 2,15 ==> l - SRL 2,16 - STC 2,1(5) - LR 2,15 ==> l - SRL 2,8 - STC 2,2(5) - STC 15,3(5) ==> l - LR 2,6 ==> r - SRL 2,24 - STC 2,4(5) - LR 2,6 ==> r - SRL 2,16 - STC 2,5(5) - LR 2,6 ==> r - SRL 2,8 - STC 2,6(5) - STC 6,7(5) ==> r -* Function 'blowfish_encrypt' epilogue - PDPEPIL -* Function 'blowfish_encrypt' literal pool - DS 0D - LTORG -* Function 'blowfish_encrypt' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/crypto/bfishkey.c b/src/crent370/crypto/bfishkey.c deleted file mode 100644 index 2e7d664..0000000 --- a/src/crent370/crypto/bfishkey.c +++ /dev/null @@ -1,197 +0,0 @@ -/********************************************************************* -* Author: Brad Conte (brad AT bradconte.com) -* Copyright: -* Disclaimer: This code is presented "as is" without any guarantees. -* Details: Implementation of the Blowfish encryption algorithm. - Modes of operation (such as CBC) are not included. - Algorithm specification can be found here: - * http://www.schneier.com/blowfish.html -*********************************************************************/ - -/*************************** HEADER FILES ***************************/ -#include -#include "blowfish.h" - -/****************************** MACROS ******************************/ -#define F(x,t) t = keystruct->s[0][(x) >> 24]; \ - t += keystruct->s[1][((x) >> 16) & 0xff]; \ - t ^= keystruct->s[2][((x) >> 8) & 0xff]; \ - t += keystruct->s[3][(x) & 0xff]; -#define swap(r,l,t) t = l; l = r; r = t; -#define ITERATION(l,r,t,pval) l ^= keystruct->p[pval]; F(l,t); r^= t; swap(r,l,t); - -/**************************** VARIABLES *****************************/ -static const unsigned int p_perm[18]; -static const unsigned int s_perm[4][256]; - -void blowfish_key_setup(const unsigned char user_key[], BLOWFISH_KEY *keystruct, size_t len) -{ - unsigned char block[8]; - int idx,idx2; - - // Copy over the constant init array vals (so the originals aren't destroyed). - memcpy(keystruct->p,p_perm,sizeof(unsigned int) * 18); - memcpy(keystruct->s,s_perm,sizeof(unsigned int) * 1024); - - // Combine the key with the P box. Assume key is standard 448 bits (56 bytes) or less. - for (idx = 0, idx2 = 0; idx < 18; ++idx, idx2 += 4) - keystruct->p[idx] ^= (user_key[idx2 % len] << 24) | (user_key[(idx2+1) % len] << 16) - | (user_key[(idx2+2) % len] << 8) | (user_key[(idx2+3) % len]); - // Re-calculate the P box. - memset(block, 0, 8); - for (idx = 0; idx < 18; idx += 2) { - blowfish_encrypt(block,block,keystruct); - keystruct->p[idx] = (block[0] << 24) | (block[1] << 16) | (block[2] << 8) | block[3]; - keystruct->p[idx+1]=(block[4] << 24) | (block[5] << 16) | (block[6] << 8) | block[7]; - } - // Recalculate the S-boxes. - for (idx = 0; idx < 4; ++idx) { - for (idx2 = 0; idx2 < 256; idx2 += 2) { - blowfish_encrypt(block,block,keystruct); - keystruct->s[idx][idx2] = (block[0] << 24) | (block[1] << 16) | - (block[2] << 8) | block[3]; - keystruct->s[idx][idx2+1] = (block[4] << 24) | (block[5] << 16) | - (block[6] << 8) | block[7]; - } - } -} - -static const unsigned int p_perm[18] = { - 0x243F6A88,0x85A308D3,0x13198A2E,0x03707344,0xA4093822,0x299F31D0,0x082EFA98, - 0xEC4E6C89,0x452821E6,0x38D01377,0xBE5466CF,0x34E90C6C,0xC0AC29B7,0xC97C50DD, - 0x3F84D5B5,0xB5470917,0x9216D5D9,0x8979FB1B -}; - -static const unsigned int s_perm[4][256] = { { - 0xD1310BA6,0x98DFB5AC,0x2FFD72DB,0xD01ADFB7,0xB8E1AFED,0x6A267E96,0xBA7C9045,0xF12C7F99, - 0x24A19947,0xB3916CF7,0x0801F2E2,0x858EFC16,0x636920D8,0x71574E69,0xA458FEA3,0xF4933D7E, - 0x0D95748F,0x728EB658,0x718BCD58,0x82154AEE,0x7B54A41D,0xC25A59B5,0x9C30D539,0x2AF26013, - 0xC5D1B023,0x286085F0,0xCA417918,0xB8DB38EF,0x8E79DCB0,0x603A180E,0x6C9E0E8B,0xB01E8A3E, - 0xD71577C1,0xBD314B27,0x78AF2FDA,0x55605C60,0xE65525F3,0xAA55AB94,0x57489862,0x63E81440, - 0x55CA396A,0x2AAB10B6,0xB4CC5C34,0x1141E8CE,0xA15486AF,0x7C72E993,0xB3EE1411,0x636FBC2A, - 0x2BA9C55D,0x741831F6,0xCE5C3E16,0x9B87931E,0xAFD6BA33,0x6C24CF5C,0x7A325381,0x28958677, - 0x3B8F4898,0x6B4BB9AF,0xC4BFE81B,0x66282193,0x61D809CC,0xFB21A991,0x487CAC60,0x5DEC8032, - 0xEF845D5D,0xE98575B1,0xDC262302,0xEB651B88,0x23893E81,0xD396ACC5,0x0F6D6FF3,0x83F44239, - 0x2E0B4482,0xA4842004,0x69C8F04A,0x9E1F9B5E,0x21C66842,0xF6E96C9A,0x670C9C61,0xABD388F0, - 0x6A51A0D2,0xD8542F68,0x960FA728,0xAB5133A3,0x6EEF0B6C,0x137A3BE4,0xBA3BF050,0x7EFB2A98, - 0xA1F1651D,0x39AF0176,0x66CA593E,0x82430E88,0x8CEE8619,0x456F9FB4,0x7D84A5C3,0x3B8B5EBE, - 0xE06F75D8,0x85C12073,0x401A449F,0x56C16AA6,0x4ED3AA62,0x363F7706,0x1BFEDF72,0x429B023D, - 0x37D0D724,0xD00A1248,0xDB0FEAD3,0x49F1C09B,0x075372C9,0x80991B7B,0x25D479D8,0xF6E8DEF7, - 0xE3FE501A,0xB6794C3B,0x976CE0BD,0x04C006BA,0xC1A94FB6,0x409F60C4,0x5E5C9EC2,0x196A2463, - 0x68FB6FAF,0x3E6C53B5,0x1339B2EB,0x3B52EC6F,0x6DFC511F,0x9B30952C,0xCC814544,0xAF5EBD09, - 0xBEE3D004,0xDE334AFD,0x660F2807,0x192E4BB3,0xC0CBA857,0x45C8740F,0xD20B5F39,0xB9D3FBDB, - 0x5579C0BD,0x1A60320A,0xD6A100C6,0x402C7279,0x679F25FE,0xFB1FA3CC,0x8EA5E9F8,0xDB3222F8, - 0x3C7516DF,0xFD616B15,0x2F501EC8,0xAD0552AB,0x323DB5FA,0xFD238760,0x53317B48,0x3E00DF82, - 0x9E5C57BB,0xCA6F8CA0,0x1A87562E,0xDF1769DB,0xD542A8F6,0x287EFFC3,0xAC6732C6,0x8C4F5573, - 0x695B27B0,0xBBCA58C8,0xE1FFA35D,0xB8F011A0,0x10FA3D98,0xFD2183B8,0x4AFCB56C,0x2DD1D35B, - 0x9A53E479,0xB6F84565,0xD28E49BC,0x4BFB9790,0xE1DDF2DA,0xA4CB7E33,0x62FB1341,0xCEE4C6E8, - 0xEF20CADA,0x36774C01,0xD07E9EFE,0x2BF11FB4,0x95DBDA4D,0xAE909198,0xEAAD8E71,0x6B93D5A0, - 0xD08ED1D0,0xAFC725E0,0x8E3C5B2F,0x8E7594B7,0x8FF6E2FB,0xF2122B64,0x8888B812,0x900DF01C, - 0x4FAD5EA0,0x688FC31C,0xD1CFF191,0xB3A8C1AD,0x2F2F2218,0xBE0E1777,0xEA752DFE,0x8B021FA1, - 0xE5A0CC0F,0xB56F74E8,0x18ACF3D6,0xCE89E299,0xB4A84FE0,0xFD13E0B7,0x7CC43B81,0xD2ADA8D9, - 0x165FA266,0x80957705,0x93CC7314,0x211A1477,0xE6AD2065,0x77B5FA86,0xC75442F5,0xFB9D35CF, - 0xEBCDAF0C,0x7B3E89A0,0xD6411BD3,0xAE1E7E49,0x00250E2D,0x2071B35E,0x226800BB,0x57B8E0AF, - 0x2464369B,0xF009B91E,0x5563911D,0x59DFA6AA,0x78C14389,0xD95A537F,0x207D5BA2,0x02E5B9C5, - 0x83260376,0x6295CFA9,0x11C81968,0x4E734A41,0xB3472DCA,0x7B14A94A,0x1B510052,0x9A532915, - 0xD60F573F,0xBC9BC6E4,0x2B60A476,0x81E67400,0x08BA6FB5,0x571BE91F,0xF296EC6B,0x2A0DD915, - 0xB6636521,0xE7B9F9B6,0xFF34052E,0xC5855664,0x53B02D5D,0xA99F8FA1,0x08BA4799,0x6E85076A -},{ - 0x4B7A70E9,0xB5B32944,0xDB75092E,0xC4192623,0xAD6EA6B0,0x49A7DF7D,0x9CEE60B8,0x8FEDB266, - 0xECAA8C71,0x699A17FF,0x5664526C,0xC2B19EE1,0x193602A5,0x75094C29,0xA0591340,0xE4183A3E, - 0x3F54989A,0x5B429D65,0x6B8FE4D6,0x99F73FD6,0xA1D29C07,0xEFE830F5,0x4D2D38E6,0xF0255DC1, - 0x4CDD2086,0x8470EB26,0x6382E9C6,0x021ECC5E,0x09686B3F,0x3EBAEFC9,0x3C971814,0x6B6A70A1, - 0x687F3584,0x52A0E286,0xB79C5305,0xAA500737,0x3E07841C,0x7FDEAE5C,0x8E7D44EC,0x5716F2B8, - 0xB03ADA37,0xF0500C0D,0xF01C1F04,0x0200B3FF,0xAE0CF51A,0x3CB574B2,0x25837A58,0xDC0921BD, - 0xD19113F9,0x7CA92FF6,0x94324773,0x22F54701,0x3AE5E581,0x37C2DADC,0xC8B57634,0x9AF3DDA7, - 0xA9446146,0x0FD0030E,0xECC8C73E,0xA4751E41,0xE238CD99,0x3BEA0E2F,0x3280BBA1,0x183EB331, - 0x4E548B38,0x4F6DB908,0x6F420D03,0xF60A04BF,0x2CB81290,0x24977C79,0x5679B072,0xBCAF89AF, - 0xDE9A771F,0xD9930810,0xB38BAE12,0xDCCF3F2E,0x5512721F,0x2E6B7124,0x501ADDE6,0x9F84CD87, - 0x7A584718,0x7408DA17,0xBC9F9ABC,0xE94B7D8C,0xEC7AEC3A,0xDB851DFA,0x63094366,0xC464C3D2, - 0xEF1C1847,0x3215D908,0xDD433B37,0x24C2BA16,0x12A14D43,0x2A65C451,0x50940002,0x133AE4DD, - 0x71DFF89E,0x10314E55,0x81AC77D6,0x5F11199B,0x043556F1,0xD7A3C76B,0x3C11183B,0x5924A509, - 0xF28FE6ED,0x97F1FBFA,0x9EBABF2C,0x1E153C6E,0x86E34570,0xEAE96FB1,0x860E5E0A,0x5A3E2AB3, - 0x771FE71C,0x4E3D06FA,0x2965DCB9,0x99E71D0F,0x803E89D6,0x5266C825,0x2E4CC978,0x9C10B36A, - 0xC6150EBA,0x94E2EA78,0xA5FC3C53,0x1E0A2DF4,0xF2F74EA7,0x361D2B3D,0x1939260F,0x19C27960, - 0x5223A708,0xF71312B6,0xEBADFE6E,0xEAC31F66,0xE3BC4595,0xA67BC883,0xB17F37D1,0x018CFF28, - 0xC332DDEF,0xBE6C5AA5,0x65582185,0x68AB9802,0xEECEA50F,0xDB2F953B,0x2AEF7DAD,0x5B6E2F84, - 0x1521B628,0x29076170,0xECDD4775,0x619F1510,0x13CCA830,0xEB61BD96,0x0334FE1E,0xAA0363CF, - 0xB5735C90,0x4C70A239,0xD59E9E0B,0xCBAADE14,0xEECC86BC,0x60622CA7,0x9CAB5CAB,0xB2F3846E, - 0x648B1EAF,0x19BDF0CA,0xA02369B9,0x655ABB50,0x40685A32,0x3C2AB4B3,0x319EE9D5,0xC021B8F7, - 0x9B540B19,0x875FA099,0x95F7997E,0x623D7DA8,0xF837889A,0x97E32D77,0x11ED935F,0x16681281, - 0x0E358829,0xC7E61FD6,0x96DEDFA1,0x7858BA99,0x57F584A5,0x1B227263,0x9B83C3FF,0x1AC24696, - 0xCDB30AEB,0x532E3054,0x8FD948E4,0x6DBC3128,0x58EBF2EF,0x34C6FFEA,0xFE28ED61,0xEE7C3C73, - 0x5D4A14D9,0xE864B7E3,0x42105D14,0x203E13E0,0x45EEE2B6,0xA3AAABEA,0xDB6C4F15,0xFACB4FD0, - 0xC742F442,0xEF6ABBB5,0x654F3B1D,0x41CD2105,0xD81E799E,0x86854DC7,0xE44B476A,0x3D816250, - 0xCF62A1F2,0x5B8D2646,0xFC8883A0,0xC1C7B6A3,0x7F1524C3,0x69CB7492,0x47848A0B,0x5692B285, - 0x095BBF00,0xAD19489D,0x1462B174,0x23820E00,0x58428D2A,0x0C55F5EA,0x1DADF43E,0x233F7061, - 0x3372F092,0x8D937E41,0xD65FECF1,0x6C223BDB,0x7CDE3759,0xCBEE7460,0x4085F2A7,0xCE77326E, - 0xA6078084,0x19F8509E,0xE8EFD855,0x61D99735,0xA969A7AA,0xC50C06C2,0x5A04ABFC,0x800BCADC, - 0x9E447A2E,0xC3453484,0xFDD56705,0x0E1E9EC9,0xDB73DBD3,0x105588CD,0x675FDA79,0xE3674340, - 0xC5C43465,0x713E38D8,0x3D28F89E,0xF16DFF20,0x153E21E7,0x8FB03D4A,0xE6E39F2B,0xDB83ADF7 -},{ - 0xE93D5A68,0x948140F7,0xF64C261C,0x94692934,0x411520F7,0x7602D4F7,0xBCF46B2E,0xD4A20068, - 0xD4082471,0x3320F46A,0x43B7D4B7,0x500061AF,0x1E39F62E,0x97244546,0x14214F74,0xBF8B8840, - 0x4D95FC1D,0x96B591AF,0x70F4DDD3,0x66A02F45,0xBFBC09EC,0x03BD9785,0x7FAC6DD0,0x31CB8504, - 0x96EB27B3,0x55FD3941,0xDA2547E6,0xABCA0A9A,0x28507825,0x530429F4,0x0A2C86DA,0xE9B66DFB, - 0x68DC1462,0xD7486900,0x680EC0A4,0x27A18DEE,0x4F3FFEA2,0xE887AD8C,0xB58CE006,0x7AF4D6B6, - 0xAACE1E7C,0xD3375FEC,0xCE78A399,0x406B2A42,0x20FE9E35,0xD9F385B9,0xEE39D7AB,0x3B124E8B, - 0x1DC9FAF7,0x4B6D1856,0x26A36631,0xEAE397B2,0x3A6EFA74,0xDD5B4332,0x6841E7F7,0xCA7820FB, - 0xFB0AF54E,0xD8FEB397,0x454056AC,0xBA489527,0x55533A3A,0x20838D87,0xFE6BA9B7,0xD096954B, - 0x55A867BC,0xA1159A58,0xCCA92963,0x99E1DB33,0xA62A4A56,0x3F3125F9,0x5EF47E1C,0x9029317C, - 0xFDF8E802,0x04272F70,0x80BB155C,0x05282CE3,0x95C11548,0xE4C66D22,0x48C1133F,0xC70F86DC, - 0x07F9C9EE,0x41041F0F,0x404779A4,0x5D886E17,0x325F51EB,0xD59BC0D1,0xF2BCC18F,0x41113564, - 0x257B7834,0x602A9C60,0xDFF8E8A3,0x1F636C1B,0x0E12B4C2,0x02E1329E,0xAF664FD1,0xCAD18115, - 0x6B2395E0,0x333E92E1,0x3B240B62,0xEEBEB922,0x85B2A20E,0xE6BA0D99,0xDE720C8C,0x2DA2F728, - 0xD0127845,0x95B794FD,0x647D0862,0xE7CCF5F0,0x5449A36F,0x877D48FA,0xC39DFD27,0xF33E8D1E, - 0x0A476341,0x992EFF74,0x3A6F6EAB,0xF4F8FD37,0xA812DC60,0xA1EBDDF8,0x991BE14C,0xDB6E6B0D, - 0xC67B5510,0x6D672C37,0x2765D43B,0xDCD0E804,0xF1290DC7,0xCC00FFA3,0xB5390F92,0x690FED0B, - 0x667B9FFB,0xCEDB7D9C,0xA091CF0B,0xD9155EA3,0xBB132F88,0x515BAD24,0x7B9479BF,0x763BD6EB, - 0x37392EB3,0xCC115979,0x8026E297,0xF42E312D,0x6842ADA7,0xC66A2B3B,0x12754CCC,0x782EF11C, - 0x6A124237,0xB79251E7,0x06A1BBE6,0x4BFB6350,0x1A6B1018,0x11CAEDFA,0x3D25BDD8,0xE2E1C3C9, - 0x44421659,0x0A121386,0xD90CEC6E,0xD5ABEA2A,0x64AF674E,0xDA86A85F,0xBEBFE988,0x64E4C3FE, - 0x9DBC8057,0xF0F7C086,0x60787BF8,0x6003604D,0xD1FD8346,0xF6381FB0,0x7745AE04,0xD736FCCC, - 0x83426B33,0xF01EAB71,0xB0804187,0x3C005E5F,0x77A057BE,0xBDE8AE24,0x55464299,0xBF582E61, - 0x4E58F48F,0xF2DDFDA2,0xF474EF38,0x8789BDC2,0x5366F9C3,0xC8B38E74,0xB475F255,0x46FCD9B9, - 0x7AEB2661,0x8B1DDF84,0x846A0E79,0x915F95E2,0x466E598E,0x20B45770,0x8CD55591,0xC902DE4C, - 0xB90BACE1,0xBB8205D0,0x11A86248,0x7574A99E,0xB77F19B6,0xE0A9DC09,0x662D09A1,0xC4324633, - 0xE85A1F02,0x09F0BE8C,0x4A99A025,0x1D6EFE10,0x1AB93D1D,0x0BA5A4DF,0xA186F20F,0x2868F169, - 0xDCB7DA83,0x573906FE,0xA1E2CE9B,0x4FCD7F52,0x50115E01,0xA70683FA,0xA002B5C4,0x0DE6D027, - 0x9AF88C27,0x773F8641,0xC3604C06,0x61A806B5,0xF0177A28,0xC0F586E0,0x006058AA,0x30DC7D62, - 0x11E69ED7,0x2338EA63,0x53C2DD94,0xC2C21634,0xBBCBEE56,0x90BCB6DE,0xEBFC7DA1,0xCE591D76, - 0x6F05E409,0x4B7C0188,0x39720A3D,0x7C927C24,0x86E3725F,0x724D9DB9,0x1AC15BB4,0xD39EB8FC, - 0xED545578,0x08FCA5B5,0xD83D7CD3,0x4DAD0FC4,0x1E50EF5E,0xB161E6F8,0xA28514D9,0x6C51133C, - 0x6FD5C7E7,0x56E14EC4,0x362ABFCE,0xDDC6C837,0xD79A3234,0x92638212,0x670EFA8E,0x406000E0 -},{ - 0x3A39CE37,0xD3FAF5CF,0xABC27737,0x5AC52D1B,0x5CB0679E,0x4FA33742,0xD3822740,0x99BC9BBE, - 0xD5118E9D,0xBF0F7315,0xD62D1C7E,0xC700C47B,0xB78C1B6B,0x21A19045,0xB26EB1BE,0x6A366EB4, - 0x5748AB2F,0xBC946E79,0xC6A376D2,0x6549C2C8,0x530FF8EE,0x468DDE7D,0xD5730A1D,0x4CD04DC6, - 0x2939BBDB,0xA9BA4650,0xAC9526E8,0xBE5EE304,0xA1FAD5F0,0x6A2D519A,0x63EF8CE2,0x9A86EE22, - 0xC089C2B8,0x43242EF6,0xA51E03AA,0x9CF2D0A4,0x83C061BA,0x9BE96A4D,0x8FE51550,0xBA645BD6, - 0x2826A2F9,0xA73A3AE1,0x4BA99586,0xEF5562E9,0xC72FEFD3,0xF752F7DA,0x3F046F69,0x77FA0A59, - 0x80E4A915,0x87B08601,0x9B09E6AD,0x3B3EE593,0xE990FD5A,0x9E34D797,0x2CF0B7D9,0x022B8B51, - 0x96D5AC3A,0x017DA67D,0xD1CF3ED6,0x7C7D2D28,0x1F9F25CF,0xADF2B89B,0x5AD6B472,0x5A88F54C, - 0xE029AC71,0xE019A5E6,0x47B0ACFD,0xED93FA9B,0xE8D3C48D,0x283B57CC,0xF8D56629,0x79132E28, - 0x785F0191,0xED756055,0xF7960E44,0xE3D35E8C,0x15056DD4,0x88F46DBA,0x03A16125,0x0564F0BD, - 0xC3EB9E15,0x3C9057A2,0x97271AEC,0xA93A072A,0x1B3F6D9B,0x1E6321F5,0xF59C66FB,0x26DCF319, - 0x7533D928,0xB155FDF5,0x03563482,0x8ABA3CBB,0x28517711,0xC20AD9F8,0xABCC5167,0xCCAD925F, - 0x4DE81751,0x3830DC8E,0x379D5862,0x9320F991,0xEA7A90C2,0xFB3E7BCE,0x5121CE64,0x774FBE32, - 0xA8B6E37E,0xC3293D46,0x48DE5369,0x6413E680,0xA2AE0810,0xDD6DB224,0x69852DFD,0x09072166, - 0xB39A460A,0x6445C0DD,0x586CDECF,0x1C20C8AE,0x5BBEF7DD,0x1B588D40,0xCCD2017F,0x6BB4E3BB, - 0xDDA26A7E,0x3A59FF45,0x3E350A44,0xBCB4CDD5,0x72EACEA8,0xFA6484BB,0x8D6612AE,0xBF3C6F47, - 0xD29BE463,0x542F5D9E,0xAEC2771B,0xF64E6370,0x740E0D8D,0xE75B1357,0xF8721671,0xAF537D5D, - 0x4040CB08,0x4EB4E2CC,0x34D2466A,0x0115AF84,0xE1B00428,0x95983A1D,0x06B89FB4,0xCE6EA048, - 0x6F3F3B82,0x3520AB82,0x011A1D4B,0x277227F8,0x611560B1,0xE7933FDC,0xBB3A792B,0x344525BD, - 0xA08839E1,0x51CE794B,0x2F32C9B7,0xA01FBAC9,0xE01CC87E,0xBCC7D1F6,0xCF0111C3,0xA1E8AAC7, - 0x1A908749,0xD44FBD9A,0xD0DADECB,0xD50ADA38,0x0339C32A,0xC6913667,0x8DF9317C,0xE0B12B4F, - 0xF79E59B7,0x43F5BB3A,0xF2D519FF,0x27D9459C,0xBF97222C,0x15E6FC2A,0x0F91FC71,0x9B941525, - 0xFAE59361,0xCEB69CEB,0xC2A86459,0x12BAA8D1,0xB6C1075E,0xE3056A0C,0x10D25065,0xCB03A442, - 0xE0EC6E0E,0x1698DB3B,0x4C98A0BE,0x3278E964,0x9F1F9532,0xE0D392DF,0xD3A0342B,0x8971F21E, - 0x1B0A7441,0x4BA3348C,0xC5BE7120,0xC37632D8,0xDF359F8D,0x9B992F2E,0xE60B6F47,0x0FE3F11D, - 0xE54CDA54,0x1EDAD891,0xCE6279CF,0xCD3E7E6F,0x1618B166,0xFD2C1D05,0x848FD2C5,0xF6FB2299, - 0xF523F357,0xA6327623,0x93A83531,0x56CCCD02,0xACF08162,0x5A75EBB5,0x6E163697,0x88D273CC, - 0xDE966292,0x81B949D0,0x4C50901B,0x71C65614,0xE6C6C7BD,0x327A140A,0x45E1D006,0xC3F27B9A, - 0xC9AA53FD,0x62A80F00,0xBB25BFE2,0x35BDD2F6,0x71126905,0xB2040222,0xB6CBCF7C,0xCD769C2B, - 0x53113EC0,0x1640E3D3,0x38ABBD60,0x2547ADF0,0xBA38209C,0xF746CE76,0x77AFA1C5,0x20756060, - 0x85CBFE4E,0x8AE88DD8,0x7AAAF9B0,0x4CF9AA7E,0x1948C25C,0x02FB8A8C,0x01C36AE4,0xD6EBE1F9, - 0x90D4F869,0xA65CDEA0,0x3F09252D,0xC208E69F,0xB74E6132,0xCE77E25B,0x578FDFE3,0x3AC372E6 -} }; diff --git a/src/crent370/crypto/bfishkey.o b/src/crent370/crypto/bfishkey.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/crypto/bfishkey.s b/src/crent370/crypto/bfishkey.s deleted file mode 100644 index 2e69953..0000000 --- a/src/crent370/crypto/bfishkey.s +++ /dev/null @@ -1,1360 +0,0 @@ - TITLE '/home/projects/crent370/crypto/bfishkey.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/crypto -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'blowfish_key_setup' prologue -* frame base=88, local stack=56, call args=16 -&FUNC SETC 'blowfish_key_setup' -BFISHKEY PDPPRLG CINDEX=0,FRAME=160,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'blowfish_key_setup' code - SLR 2,2 - SLR 3,3 - ST 2,120(13) - ST 3,4+120(13) - ST 2,136(13) - ST 3,4+136(13) - ST 2,144(13) - ST 3,4+144(13) - ST 2,152(13) - ST 3,4+152(13) - L 7,4(11) ==> keystruct - L 3,8(11) ==> len - ST 7,88(13) ==> keystruct - MVC 92(4,13),=A(@@0) - MVC 96(4,13),=F'72' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - LR 2,7 ==> keystruct - A 2,=F'72' - ST 2,88(13) - MVC 92(4,13),=A(@@1) - MVC 96(4,13),=F'4096' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - SLR 6,6 ==> idx - LR 5,6 ==> idx2,idx - ST 3,128(13) ==> len -@@L18 EQU * - LR 15,6 ==> idx - MH 15,=H'4' - ST 15,112(13) - ST 5,120(13) ==> idx2 - CLR 3,5 ==> len - BH @@L8 - LTR 3,3 ==> len - BL @@L7 - LA 4,1(0,0) - CLR 3,4 ==> len - BE @@L6 - L 8,120(13) - L 9,4+120(13) - SRDL 8,32 - DR 8,3 ==> len - ST 8,120(13) - ST 9,4+120(13) - B @@L8 -@@L6 EQU * - MVC 120(4,13),=F'0' - B @@L8 -@@L7 EQU * - L 9,120(13) - S 9,128(13) - ST 9,120(13) -@@L8 EQU * - L 2,120(13) - L 8,0(11) ==> user_key - IC 4,0(2,8) - SLL 4,24 - LR 9,5 ==> idx2 - A 9,=F'1' - ST 9,136(13) - CLR 3,9 ==> len - BH @@L11 - LTR 3,3 ==> len - BL @@L10 - LA 2,1(0,0) - CLR 3,2 ==> len - BE @@L9 - L 8,136(13) - L 9,4+136(13) - SRDL 8,32 - DR 8,3 ==> len - ST 8,136(13) - ST 9,4+136(13) - B @@L11 -@@L9 EQU * - MVC 136(4,13),=F'0' - B @@L11 -@@L10 EQU * - L 9,136(13) - SR 9,3 ==> len - ST 9,136(13) -@@L11 EQU * - L 2,136(13) - L 8,0(11) ==> user_key - SLR 9,9 - IC 9,0(2,8) - LR 2,9 - SLL 2,16 - OR 4,2 - LR 2,5 ==> idx2 - A 2,=F'2' - ST 2,144(13) - CL 3,144(13) ==> len - BH @@L14 - LTR 3,3 ==> len - BL @@L13 - LA 8,1(0,0) - CLR 3,8 ==> len - BE @@L12 - L 8,144(13) - L 9,4+144(13) - SRDL 8,32 - DR 8,3 ==> len - ST 8,144(13) - ST 9,4+144(13) - B @@L14 -@@L12 EQU * - MVC 144(4,13),=F'0' - B @@L14 -@@L13 EQU * - L 9,144(13) - SR 9,3 ==> len - ST 9,144(13) -@@L14 EQU * - L 2,144(13) - L 8,0(11) ==> user_key - SLR 9,9 - IC 9,0(2,8) - LR 2,9 - SLL 2,8 - OR 4,2 - LR 2,5 ==> idx2 - A 2,=F'3' - ST 2,152(13) - CL 3,152(13) ==> len - BH @@L17 - LTR 3,3 ==> len - BL @@L16 - LA 8,1(0,0) - CLR 3,8 ==> len - BE @@L15 - L 8,152(13) - L 9,4+152(13) - SRDL 8,32 - DR 8,3 ==> len - ST 8,152(13) - ST 9,4+152(13) - B @@L17 -@@L15 EQU * - MVC 152(4,13),=F'0' - B @@L17 -@@L16 EQU * - L 9,152(13) - SR 9,3 ==> len - ST 9,152(13) -@@L17 EQU * - L 2,152(13) - L 8,0(11) ==> user_key - SLR 9,9 - IC 9,0(2,8) - LR 2,9 - OR 2,4 - L 4,112(13) - X 2,0(4,7) ==> .p - ST 2,0(15,7) ==> .p - A 6,=F'1' ==> idx - A 5,=F'4' ==> idx2 - LA 8,17(0,0) - CR 6,8 ==> idx - BNH @@L18 - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'8' - LA 1,88(,13) - L 15,=V(MEMSET) - BALR 14,15 - SLR 6,6 ==> idx - LA 5,4(0,0) -@@L23 EQU * - LA 2,104(,13) - ST 2,88(13) - ST 2,92(13) - ST 7,96(13) ==> keystruct - LA 1,88(,13) - L 15,=V(BFISHENC) - BALR 14,15 - LR 4,6 ==> idx - MH 4,=H'4' - IC 3,104(13) - SLL 3,24 - SLR 2,2 - IC 2,105(13) ==> block - SLL 2,16 - OR 3,2 - SLR 2,2 - IC 2,106(13) ==> block - SLL 2,8 - OR 3,2 - SLR 2,2 - IC 2,107(13) ==> block - OR 3,2 - ST 3,0(4,7) ==> .p - AR 4,7 ==> keystruct - IC 3,104(5,13) ==> block - SLL 3,24 - SLR 2,2 - IC 2,109(13) ==> block - SLL 2,16 - OR 3,2 - SLR 2,2 - IC 2,110(13) ==> block - SLL 2,8 - OR 3,2 - SLR 2,2 - IC 2,111(13) ==> block - OR 3,2 - ST 3,0(5,4) ==> .p - A 6,=F'2' ==> idx - LA 9,17(0,0) - CR 6,9 ==> idx - BNH @@L23 - SLR 6,6 ==> idx -@@L33 EQU * - SLR 5,5 ==> idx2 -@@L32 EQU * - LA 2,104(,13) - ST 2,88(13) - ST 2,92(13) - ST 7,96(13) ==> keystruct - LA 1,88(,13) - L 15,=V(BFISHENC) - BALR 14,15 - LR 4,6 ==> idx - MH 4,=H'256' - AR 4,5 ==> idx2 - MH 4,=H'4' - AR 4,7 ==> keystruct - IC 3,104(13) - SLL 3,24 - SLR 2,2 - IC 2,105(13) ==> block - SLL 2,16 - OR 3,2 - SLR 2,2 - IC 2,106(13) ==> block - SLL 2,8 - OR 3,2 - SLR 2,2 - IC 2,107(13) ==> block - OR 3,2 - ST 3,72(4) ==> .s - IC 3,108(13) ==> block - SLL 3,24 - SLR 2,2 - IC 2,109(13) ==> block - SLL 2,16 - OR 3,2 - SLR 2,2 - IC 2,110(13) ==> block - SLL 2,8 - OR 3,2 - SLR 2,2 - IC 2,111(13) ==> block - OR 3,2 - ST 3,76(4) ==> .s - A 5,=F'2' ==> idx2 - LA 2,255(0,0) - CR 5,2 ==> idx2 - BNH @@L32 - A 6,=F'1' ==> idx - LA 3,3(0,0) - CR 6,3 ==> idx - BNH @@L33 -* Function 'blowfish_key_setup' epilogue - PDPEPIL -* Function 'blowfish_key_setup' literal pool - DS 0D - LTORG -* Function 'blowfish_key_setup' page table -@@PGT0 DS 0F - DC A(@@PG0) - DS 0F -@@0 EQU * - DC F'608135816' - DC F'-2052912941' - DC F'320440878' - DC F'57701188' - DC F'-1542899678' - DC F'698298832' - DC F'137296536' - DC F'-330404727' - DC F'1160258022' - DC F'953160567' - DC F'-1101764913' - DC F'887688300' - DC F'-1062458953' - DC F'-914599715' - DC F'1065670069' - DC F'-1253635817' - DC F'-1843997223' - DC F'-1988494565' - DS 0F -@@1 EQU * - DC F'-785314906' - DC F'-1730169428' - DC F'805139163' - DC F'-803545161' - DC F'-1193168915' - DC F'1780907670' - DC F'-1166241723' - DC F'-248741991' - DC F'614570311' - DC F'-1282315017' - DC F'134345442' - DC F'-2054226922' - DC F'1667834072' - DC F'1901547113' - DC F'-1537671517' - DC F'-191677058' - DC F'227898511' - DC F'1921955416' - DC F'1904987480' - DC F'-2112533778' - DC F'2069144605' - DC F'-1034266187' - DC F'-1674521287' - DC F'720527379' - DC F'-976113629' - DC F'677414384' - DC F'-901678824' - DC F'-1193592593' - DC F'-1904616272' - DC F'1614419982' - DC F'1822297739' - DC F'-1340175810' - DC F'-686458943' - DC F'-1120842969' - DC F'2024746970' - DC F'1432378464' - DC F'-430627341' - DC F'-1437226092' - DC F'1464375394' - DC F'1676153920' - DC F'1439316330' - DC F'715854006' - DC F'-1261675468' - DC F'289532110' - DC F'-1588296017' - DC F'2087905683' - DC F'-1276242927' - DC F'1668267050' - DC F'732546397' - DC F'1947742710' - DC F'-832815594' - DC F'-1685613794' - DC F'-1344882125' - DC F'1814351708' - DC F'2050118529' - DC F'680887927' - DC F'999245976' - DC F'1800124847' - DC F'-994056165' - DC F'1713906067' - DC F'1641548236' - DC F'-81679983' - DC F'1216130144' - DC F'1575780402' - DC F'-276538019' - DC F'-377129551' - DC F'-601480446' - DC F'-345695352' - DC F'596196993' - DC F'-745100091' - DC F'258830323' - DC F'-2081144263' - DC F'772490370' - DC F'-1534844924' - DC F'1774776394' - DC F'-1642095778' - DC F'566650946' - DC F'-152474470' - DC F'1728879713' - DC F'-1412200208' - DC F'1783734482' - DC F'-665571480' - DC F'-1777359064' - DC F'-1420741725' - DC F'1861159788' - DC F'326777828' - DC F'-1170476976' - DC F'2130389656' - DC F'-1578015459' - DC F'967770486' - DC F'1724537150' - DC F'-2109534584' - DC F'-1930525159' - DC F'1164943284' - DC F'2105845187' - DC F'998989502' - DC F'-529566248' - DC F'-2050940813' - DC F'1075463327' - DC F'1455516326' - DC F'1322494562' - DC F'910128902' - DC F'469688178' - DC F'1117454909' - DC F'936433444' - DC F'-804646328' - DC F'-619713837' - DC F'1240580251' - DC F'122909385' - DC F'-2137449605' - DC F'634681816' - DC F'-152510729' - DC F'-469872614' - DC F'-1233564613' - DC F'-1754472259' - DC F'79693498' - DC F'-1045868618' - DC F'1084186820' - DC F'1583128258' - DC F'426386531' - DC F'1761308591' - DC F'1047286709' - DC F'322548459' - DC F'995290223' - DC F'1845252383' - DC F'-1691314900' - DC F'-863943356' - DC F'-1352745719' - DC F'-1092366332' - DC F'-567063811' - DC F'1712269319' - DC F'422464435' - DC F'-1060394921' - DC F'1170764815' - DC F'-771006663' - DC F'-1177289765' - DC F'1434042557' - DC F'442511882' - DC F'-694091578' - DC F'1076654713' - DC F'1738483198' - DC F'-81812532' - DC F'-1901729288' - DC F'-617471240' - DC F'1014306527' - DC F'-43947243' - DC F'793779912' - DC F'-1392160085' - DC F'842905082' - DC F'-48003232' - DC F'1395751752' - DC F'1040244610' - DC F'-1638115397' - DC F'-898659168' - DC F'445077038' - DC F'-552113701' - DC F'-717051658' - DC F'679411651' - DC F'-1402522938' - DC F'-1940957837' - DC F'1767581616' - DC F'-1144366904' - DC F'-503340195' - DC F'-1192226400' - DC F'284835224' - DC F'-48135240' - DC F'1258075500' - DC F'768725851' - DC F'-1705778055' - DC F'-1225243291' - DC F'-762426948' - DC F'1274779536' - DC F'-505548070' - DC F'-1530167757' - DC F'1660621633' - DC F'-823867672' - DC F'-283063590' - DC F'913787905' - DC F'-797008130' - DC F'737222580' - DC F'-1780753843' - DC F'-1366257256' - DC F'-357724559' - DC F'1804850592' - DC F'-795946544' - DC F'-1345903136' - DC F'-1908647121' - DC F'-1904896841' - DC F'-1879645445' - DC F'-233690268' - DC F'-2004305902' - DC F'-1878134756' - DC F'1336762016' - DC F'1754252060' - DC F'-774901359' - DC F'-1280786003' - DC F'791618072' - DC F'-1106372745' - DC F'-361419266' - DC F'-1962795103' - DC F'-442446833' - DC F'-1250986776' - DC F'413987798' - DC F'-829824359' - DC F'-1264037920' - DC F'-49028937' - DC F'2093235073' - DC F'-760370983' - DC F'375366246' - DC F'-2137688315' - DC F'-1815317740' - DC F'555357303' - DC F'-424861595' - DC F'2008414854' - DC F'-950779147' - DC F'-73583153' - DC F'-338841844' - DC F'2067696032' - DC F'-700376109' - DC F'-1373733303' - DC F'2428461' - DC F'544322398' - DC F'577241275' - DC F'1471733935' - DC F'610547355' - DC F'-267798242' - DC F'1432588573' - DC F'1507829418' - DC F'2025931657' - DC F'-648391809' - DC F'545086370' - DC F'48609733' - DC F'-2094660746' - DC F'1653985193' - DC F'298326376' - DC F'1316178497' - DC F'-1287180854' - DC F'2064951626' - DC F'458293330' - DC F'-1705826027' - DC F'-703637697' - DC F'-1130641692' - DC F'727753846' - DC F'-2115603456' - DC F'146436021' - DC F'1461446943' - DC F'-224990101' - DC F'705550613' - DC F'-1235000031' - DC F'-407242314' - DC F'-13368018' - DC F'-981117340' - DC F'1404054877' - DC F'-1449160799' - DC F'146425753' - DC F'1854211946' - DC F'1266315497' - DC F'-1246549692' - DC F'-613086930' - DC F'-1004984797' - DC F'-1385257296' - DC F'1235738493' - DC F'-1662099272' - DC F'-1880247706' - DC F'-324367247' - DC F'1771706367' - DC F'1449415276' - DC F'-1028546847' - DC F'422970021' - DC F'1963543593' - DC F'-1604775104' - DC F'-468174274' - DC F'1062508698' - DC F'1531092325' - DC F'1804592342' - DC F'-1711849514' - DC F'-1580033017' - DC F'-269995787' - DC F'1294809318' - DC F'-265986623' - DC F'1289560198' - DC F'-2072974554' - DC F'1669523910' - DC F'35572830' - DC F'157838143' - DC F'1052438473' - DC F'1016535060' - DC F'1802137761' - DC F'1753167236' - DC F'1386275462' - DC F'-1214491899' - DC F'-1437595849' - DC F'1040679964' - DC F'2145300060' - DC F'-1904392980' - DC F'1461121720' - DC F'-1338320329' - DC F'-263189491' - DC F'-266592508' - DC F'33600511' - DC F'-1374882534' - DC F'1018524850' - DC F'629373528' - DC F'-603381315' - DC F'-779021319' - DC F'2091462646' - DC F'-1808644237' - DC F'586499841' - DC F'988145025' - DC F'935516892' - DC F'-927631820' - DC F'-1695294041' - DC F'-1455136442' - DC F'265290510' - DC F'-322386114' - DC F'-1535828415' - DC F'-499593831' - DC F'1005194799' - DC F'847297441' - DC F'406762289' - DC F'1314163512' - DC F'1332590856' - DC F'1866599683' - DC F'-167115585' - DC F'750260880' - DC F'613907577' - DC F'1450815602' - DC F'-1129346641' - DC F'-560302305' - DC F'-644675568' - DC F'-1282691566' - DC F'-590397650' - DC F'1427272223' - DC F'778793252' - DC F'1343938022' - DC F'-1618686585' - DC F'2052605720' - DC F'1946737175' - DC F'-1130390852' - DC F'-380928628' - DC F'-327488454' - DC F'-612033030' - DC F'1661551462' - DC F'-1000029230' - DC F'-283371449' - DC F'840292616' - DC F'-582796489' - DC F'616741398' - DC F'312560963' - DC F'711312465' - DC F'1351876610' - DC F'322626781' - DC F'1910503582' - DC F'271666773' - DC F'-2119403562' - DC F'1594956187' - DC F'70604529' - DC F'-677132437' - DC F'1007753275' - DC F'1495573769' - DC F'-225450259' - DC F'-1745748998' - DC F'-1631928532' - DC F'504708206' - DC F'-2031925904' - DC F'-353800271' - DC F'-2045878774' - DC F'1514023603' - DC F'1998579484' - DC F'1312622330' - DC F'694541497' - DC F'-1712906993' - DC F'-2143385130' - DC F'1382467621' - DC F'776784248' - DC F'-1676627094' - DC F'-971698502' - DC F'-1797068168' - DC F'-1510196141' - DC F'503983604' - DC F'-218673497' - DC F'907881277' - DC F'423175695' - DC F'432175456' - DC F'1378068232' - DC F'-149744970' - DC F'-340918674' - DC F'-356311194' - DC F'-474200683' - DC F'-1501837181' - DC F'-1317062703' - DC F'26017576' - DC F'-1020076561' - DC F'-1100195163' - DC F'1700274565' - DC F'1756076034' - DC F'-288447217' - DC F'-617638597' - DC F'720338349' - DC F'1533947780' - DC F'354530856' - DC F'688349552' - DC F'-321042571' - DC F'1637815568' - DC F'332179504' - DC F'-345916010' - DC F'53804574' - DC F'-1442618417' - DC F'-1250730864' - DC F'1282449977' - DC F'-711025141' - DC F'-877994476' - DC F'-288586052' - DC F'1617046695' - DC F'-1666491221' - DC F'-1292663698' - DC F'1686838959' - DC F'431878346' - DC F'-1608291911' - DC F'1700445008' - DC F'1080580658' - DC F'1009431731' - DC F'832498133' - DC F'-1071531785' - DC F'-1688990951' - DC F'-2023776103' - DC F'-1778935426' - DC F'1648197032' - DC F'-130578278' - DC F'-1746719369' - DC F'300782431' - DC F'375919233' - DC F'238389289' - DC F'-941219882' - DC F'-1763778655' - DC F'2019080857' - DC F'1475708069' - DC F'455242339' - DC F'-1685863425' - DC F'448939670' - DC F'-843904277' - DC F'1395535956' - DC F'-1881585436' - DC F'1841049896' - DC F'1491858159' - DC F'885456874' - DC F'-30872223' - DC F'-293847949' - DC F'1565136089' - DC F'-396052509' - DC F'1108368660' - DC F'540939232' - DC F'1173283510' - DC F'-1549095958' - DC F'-613658859' - DC F'-87339056' - DC F'-951913406' - DC F'-278217803' - DC F'1699691293' - DC F'1103962373' - DC F'-669091426' - DC F'-2038084153' - DC F'-464828566' - DC F'1031889488' - DC F'-815619598' - DC F'1535977030' - DC F'-58162272' - DC F'-1043876189' - DC F'2132092099' - DC F'1774941330' - DC F'1199868427' - DC F'1452454533' - DC F'157007616' - DC F'-1390851939' - DC F'342012276' - DC F'595725824' - DC F'1480756522' - DC F'206960106' - DC F'497939518' - DC F'591360097' - DC F'863170706' - DC F'-1919713727' - DC F'-698356495' - DC F'1814182875' - DC F'2094937945' - DC F'-873565088' - DC F'1082520231' - DC F'-831049106' - DC F'-1509457788' - DC F'435703966' - DC F'-386934699' - DC F'1641649973' - DC F'-1452693590' - DC F'-989067582' - DC F'1510255612' - DC F'-2146710820' - DC F'-1639679442' - DC F'-1018874748' - DC F'-36346107' - DC F'236887753' - DC F'-613164077' - DC F'274041037' - DC F'1734335097' - DC F'-479771840' - DC F'-976997275' - DC F'1899903192' - DC F'1026095262' - DC F'-244449504' - DC F'356393447' - DC F'-1884275382' - DC F'-421290197' - DC F'-612127241' - DC F'-381855128' - DC F'-1803468553' - DC F'-162781668' - DC F'-1805047500' - DC F'1091903735' - DC F'1979897079' - DC F'-1124832466' - DC F'-727580568' - DC F'-737663887' - DC F'857797738' - DC F'1136121015' - DC F'1342202287' - DC F'507115054' - DC F'-1759230650' - DC F'337727348' - DC F'-1081374656' - DC F'1301675037' - DC F'-1766485585' - DC F'1895095763' - DC F'1721773893' - DC F'-1078195732' - DC F'62756741' - DC F'2142006736' - DC F'835421444' - DC F'-1762973773' - DC F'1442658625' - DC F'-635090970' - DC F'-1412822374' - DC F'676362277' - DC F'1392781812' - DC F'170690266' - DC F'-373920261' - DC F'1759253602' - DC F'-683120384' - DC F'1745797284' - DC F'664899054' - DC F'1329594018' - DC F'-393761396' - DC F'-1249058810' - DC F'2062866102' - DC F'-1429332356' - DC F'-751345684' - DC F'-830954599' - DC F'1080764994' - DC F'553557557' - DC F'-638351943' - DC F'-298199125' - DC F'991055499' - DC F'499776247' - DC F'1265440854' - DC F'648242737' - DC F'-354183246' - DC F'980351604' - DC F'-581221582' - DC F'1749149687' - DC F'-898096901' - DC F'-83167922' - DC F'-654396521' - DC F'1161844396' - DC F'-1169648345' - DC F'1431517754' - DC F'545492359' - DC F'-26498633' - DC F'-795437749' - DC F'1437099964' - DC F'-1592419752' - DC F'-861329053' - DC F'-1713251533' - DC F'-1507177898' - DC F'1060185593' - DC F'1593081372' - DC F'-1876348548' - DC F'-34019326' - DC F'69676912' - DC F'-2135222948' - DC F'86519011' - DC F'-1782508216' - DC F'-456757982' - DC F'1220612927' - DC F'-955283748' - DC F'133810670' - DC F'1090789135' - DC F'1078426020' - DC F'1569222167' - DC F'845107691' - DC F'-711212847' - DC F'-222510705' - DC F'1091646820' - DC F'628848692' - DC F'1613405280' - DC F'-537335645' - DC F'526609435' - DC F'236106946' - DC F'48312990' - DC F'-1352249391' - DC F'-892239595' - DC F'1797494240' - DC F'859738849' - DC F'992217954' - DC F'-289490654' - DC F'-2051890674' - DC F'-424014439' - DC F'-562951028' - DC F'765654824' - DC F'-804095931' - DC F'-1783130883' - DC F'1685915746' - DC F'-405998096' - DC F'1414112111' - DC F'-2021832454' - DC F'-1013056217' - DC F'-214004450' - DC F'172450625' - DC F'-1724973196' - DC F'980381355' - DC F'-185008841' - DC F'-1475158944' - DC F'-1578377736' - DC F'-1726226100' - DC F'-613520627' - DC F'-964995824' - DC F'1835478071' - DC F'660984891' - DC F'-590288892' - DC F'-248967737' - DC F'-872349789' - DC F'-1254551662' - DC F'1762651403' - DC F'1719377915' - DC F'-824476260' - DC F'-1601057013' - DC F'-652910941' - DC F'-1156370552' - DC F'1364962596' - DC F'2073328063' - DC F'1983633131' - DC F'926494387' - DC F'-871278215' - DC F'-2144935273' - DC F'-198299347' - DC F'1749200295' - DC F'-966120645' - DC F'309677260' - DC F'2016342300' - DC F'1779581495' - DC F'-1215147545' - DC F'111262694' - DC F'1274766160' - DC F'443224088' - DC F'298511866' - DC F'1025883608' - DC F'-488520759' - DC F'1145181785' - DC F'168956806' - DC F'-653464466' - DC F'-710153686' - DC F'1689216846' - DC F'-628709281' - DC F'-1094719096' - DC F'1692713982' - DC F'-1648590761' - DC F'-252198778' - DC F'1618508792' - DC F'1610833997' - DC F'-771914938' - DC F'-164094032' - DC F'2001055236' - DC F'-684262196' - DC F'-2092799181' - DC F'-266425487' - DC F'-1333771897' - DC F'1006657119' - DC F'2006996926' - DC F'-1108824540' - DC F'1430667929' - DC F'-1084739999' - DC F'1314452623' - DC F'-220332638' - DC F'-193663176' - DC F'-2021016126' - DC F'1399257539' - DC F'-927756684' - DC F'-1267338667' - DC F'1190975929' - DC F'2062231137' - DC F'-1960976508' - DC F'-2073424263' - DC F'-1856006686' - DC F'1181637006' - DC F'548689776' - DC F'-1932175983' - DC F'-922558900' - DC F'-1190417183' - DC F'-1149106736' - DC F'296247880' - DC F'1970579870' - DC F'-1216407114' - DC F'-525738999' - DC F'1714227617' - DC F'-1003338189' - DC F'-396747006' - DC F'166772364' - DC F'1251581989' - DC F'493813264' - DC F'448347421' - DC F'195405023' - DC F'-1584991729' - DC F'677966185' - DC F'-591930749' - DC F'1463355134' - DC F'-1578971493' - DC F'1338867538' - DC F'1343315457' - DC F'-1492745222' - DC F'-1610435132' - DC F'233230375' - DC F'-1694987225' - DC F'2000651841' - DC F'-1017099258' - DC F'1638401717' - DC F'-266896856' - DC F'-1057650976' - DC F'6314154' - DC F'819756386' - DC F'300326615' - DC F'590932579' - DC F'1405279636' - DC F'-1027467724' - DC F'-1144263082' - DC F'-1866680610' - DC F'-335774303' - DC F'-833020554' - DC F'1862657033' - DC F'1266418056' - DC F'963775037' - DC F'2089974820' - DC F'-2031914401' - DC F'1917689273' - DC F'448879540' - DC F'-744572676' - DC F'-313240200' - DC F'150775221' - DC F'-667058989' - DC F'1303187396' - DC F'508620638' - DC F'-1318983944' - DC F'-1568336679' - DC F'1817252668' - DC F'1876281319' - DC F'1457606340' - DC F'908771278' - DC F'-574175177' - DC F'-677760460' - DC F'-1838972398' - DC F'1729034894' - DC F'1080033504' - DC F'976866871' - DC F'-738527793' - DC F'-1413318857' - DC F'1522871579' - DC F'1555064734' - DC F'1336096578' - DC F'-746444992' - DC F'-1715692610' - DC F'-720269667' - DC F'-1089506539' - DC F'-701686658' - DC F'-956251013' - DC F'-1215554709' - DC F'564236357' - DC F'-1301368386' - DC F'1781952180' - DC F'1464380207' - DC F'-1131123079' - DC F'-962365742' - DC F'1699332808' - DC F'1393555694' - DC F'1183702653' - DC F'-713881059' - DC F'1288719814' - DC F'691649499' - DC F'-1447410096' - DC F'-1399511320' - DC F'-1101077756' - DC F'-1577396752' - DC F'1781354906' - DC F'1676643554' - DC F'-1702433246' - DC F'-1064713544' - DC F'1126444790' - DC F'-1524759638' - DC F'-1661808476' - DC F'-2084544070' - DC F'-1679201715' - DC F'-1880812208' - DC F'-1167828010' - DC F'673620729' - DC F'-1489356063' - DC F'1269405062' - DC F'-279616791' - DC F'-953159725' - DC F'-145557542' - DC F'1057255273' - DC F'2012875353' - DC F'-2132498155' - DC F'-2018474495' - DC F'-1693849939' - DC F'993977747' - DC F'-376373926' - DC F'-1640704105' - DC F'753973209' - DC F'36408145' - DC F'-1764381638' - DC F'25011837' - DC F'-774947114' - DC F'2088578344' - DC F'530523599' - DC F'-1376601957' - DC F'1524020338' - DC F'1518925132' - DC F'-534139791' - DC F'-535190042' - DC F'1202760957' - DC F'-309069157' - DC F'-388774771' - DC F'674977740' - DC F'-120232407' - DC F'2031300136' - DC F'2019492241' - DC F'-311074731' - DC F'-141160892' - DC F'-472686964' - DC F'352677332' - DC F'-1997247046' - DC F'60907813' - DC F'90501309' - DC F'-1007968747' - DC F'1016092578' - DC F'-1759044884' - DC F'-1455814870' - DC F'457141659' - DC F'509813237' - DC F'-174299397' - DC F'652014361' - DC F'1966332200' - DC F'-1319764491' - DC F'55981186' - DC F'-1967506245' - DC F'676427537' - DC F'-1039476232' - DC F'-1412673177' - DC F'-861040033' - DC F'1307055953' - DC F'942726286' - DC F'933058658' - DC F'-1826555503' - DC F'-361066302' - DC F'-79791154' - DC F'1361170020' - DC F'2001714738' - DC F'-1464409218' - DC F'-1020707514' - DC F'1222529897' - DC F'1679025792' - DC F'-1565652976' - DC F'-580013532' - DC F'1770335741' - DC F'151462246' - DC F'-1281735158' - DC F'1682292957' - DC F'1483529935' - DC F'471910574' - DC F'1539241949' - DC F'458788160' - DC F'-858652289' - DC F'1807016891' - DC F'-576558466' - DC F'978976581' - DC F'1043663428' - DC F'-1129001515' - DC F'1927990952' - DC F'-94075717' - DC F'-1922690386' - DC F'-1086558393' - DC F'-761535389' - DC F'1412390302' - DC F'-1362987237' - DC F'-162634896' - DC F'1947078029' - DC F'-413461673' - DC F'-126740879' - DC F'-1353482915' - DC F'1077988104' - DC F'1320477388' - DC F'886195818' - DC F'18198404' - DC F'-508558296' - DC F'-1785185763' - DC F'112762804' - DC F'-831610808' - DC F'1866414978' - DC F'891333506' - DC F'18488651' - DC F'661792760' - DC F'1628790961' - DC F'-409780260' - DC F'-1153795797' - DC F'876946877' - DC F'-1601685023' - DC F'1372485963' - DC F'791857591' - DC F'-1608533303' - DC F'-534984578' - DC F'-1127755274' - DC F'-822013501' - DC F'-1578587449' - DC F'445679433' - DC F'-732971622' - DC F'-790962485' - DC F'-720709064' - DC F'54117162' - DC F'-963561881' - DC F'-1913048708' - DC F'-525259953' - DC F'-140617289' - DC F'1140177722' - DC F'-220915201' - DC F'668550556' - DC F'-1080614356' - DC F'367459370' - DC F'261225585' - DC F'-1684794075' - DC F'-85617823' - DC F'-826893077' - DC F'-1029151655' - DC F'314222801' - DC F'-1228863650' - DC F'-486184436' - DC F'282218597' - DC F'-888953790' - DC F'-521376242' - DC F'379116347' - DC F'1285071038' - DC F'846784868' - DC F'-1625320142' - DC F'-523005217' - DC F'-744475605' - DC F'-1989021154' - DC F'453669953' - DC F'1268987020' - DC F'-977374944' - DC F'-1015663912' - DC F'-550133875' - DC F'-1684459730' - DC F'-435458233' - DC F'266596637' - DC F'-447948204' - DC F'517658769' - DC F'-832407089' - DC F'-851542417' - DC F'370717030' - DC F'-47440635' - DC F'-2070949179' - DC F'-151313767' - DC F'-182193321' - DC F'-1506642397' - DC F'-1817692879' - DC F'1456262402' - DC F'-1393524382' - DC F'1517677493' - DC F'1846949527' - DC F'-1999473716' - DC F'-560569710' - DC F'-2118563376' - DC F'1280348187' - DC F'1908823572' - DC F'-423180355' - DC F'846861322' - DC F'1172426758' - DC F'-1007518822' - DC F'-911584259' - DC F'1655181056' - DC F'-1155153950' - DC F'901632758' - DC F'1897031941' - DC F'-1308360158' - DC F'-1228157060' - DC F'-847864789' - DC F'1393639104' - DC F'373351379' - DC F'950779232' - DC F'625454576' - DC F'-1170726756' - DC F'-146354570' - DC F'2007998917' - DC F'544563296' - DC F'-2050228658' - DC F'-1964470824' - DC F'2058025392' - DC F'1291430526' - DC F'424198748' - DC F'50039436' - DC F'29584100' - DC F'-689184263' - DC F'-1865090967' - DC F'-1503863136' - DC F'1057563949' - DC F'-1039604065' - DC F'-1219600078' - DC F'-831004069' - DC F'1469046755' - DC F'985887462' - END diff --git a/src/crent370/crypto/makefile b/src/crent370/crypto/makefile deleted file mode 100644 index 96c1381..0000000 --- a/src/crent370/crypto/makefile +++ /dev/null @@ -1,67 +0,0 @@ -# -# makefile for crent370/crypto c files -# -# gccmvs compiler flags -INC1 := -I. -INC2 := -I/home/projects/crent370/crypto -INC3 := -I/home/projects/crent370/include -CC := c2asm370 -CFLAGS := -fverbose-asm -S -O1 $(INC1) $(INC2) $(INC3) -#CFLAGS := -S $(INC1) $(INC2) $(INC3) -# -# c source code files -C_FILES := bfishdec.c \ - bfishenc.c \ - bfishkey.c \ - sha256t.c \ - sha256i.c \ - sha256u.c \ - sha256f.c \ - sha256.c - -#deprecated: - -# non-generated .asm assembler source files -A_FILES := - -# generated .s assembler source files (one for each source file) -S_FILES := $(foreach filename,$(C_FILES),$(filename:.c=.s)) - -# object files (one for each .c and .asm source file) -O_FILES := $(foreach filename,$(C_FILES),$(filename:.c=.o)) \ - $(foreach filename,$(A_FILES),$(filename:.asm=.o)) - -# export MACn variables for mvsasm->jobasm script -export MAC1=MDR.CRENT370.MACLIB - -# export dataset names used by mvsasm script -export MVSASM_PUNCH=MDR.CRENT370.OBJECT -export MVSASM_SYSLMOD=MDR.CRENT370.NCALIB - -all: $(S_FILES) $(O_FILES) - @echo "Done" -# Note: PHONY is important here. Without it, implicit rules will try -# to build the executable "all", since the prereqs are ".o" files. -.PHONY: all - -# build object files from the generated assembler files (.s) -%.o: %.s - @echo "mvsasm $(notdir $<)" - @mvsasm "$<" - @touch "$@" - -# build object files from assembler files (.asm) -%.o: %.asm - @echo "mvsasm $(notdir $<)" - @mvsasm "$<" - @touch "$@" - -# compile C source files (.c) into assembler files (.s) -%.s: %.c - @echo "Compile $(notdir $<)" - $(CC) $(CFLAGS) -c $< -o $@ - -# remove generated files -clean: - @rm -f $(S_FILES) $(O_FILES) - diff --git a/src/crent370/crypto/sha256.c b/src/crent370/crypto/sha256.c deleted file mode 100644 index 3907b99..0000000 --- a/src/crent370/crypto/sha256.c +++ /dev/null @@ -1,124 +0,0 @@ -/********************************************************************* -* Filename: sha256.c -* Author: Brad Conte (brad AT bradconte.com) -* Copyright: -* Disclaimer: This code is presented "as is" without any guarantees. -* Details: Performs known-answer tests on the corresponding SHA1 - implementation. These tests do not encompass the full - range of available test vectors, however, if the tests - pass it is very, very likely that the code is correct - and was compiled properly. This code also serves as - example usage of the functions. -*********************************************************************/ - -/*************************** HEADER FILES ***************************/ -#include -#include -#include "sha256.h" - -typedef unsigned char BYTE; -typedef unsigned int WORD; - -/*********************** FUNCTION DEFINITIONS ***********************/ -static unsigned char e2a[256] = { - 0x00, 0x01, 0x02, 0x03, 0x9c, 0x09, 0x86, 0x7f, /* x00-x07 */ - 0x97, 0x8d, 0x8e, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* x08-x0F */ - 0x10, 0x11, 0x12, 0x13, 0x9d, 0x85, 0x08, 0x87, /* x10-x17 */ - 0x18, 0x19, 0x92, 0x8f, 0x1c, 0x1d, 0x1e, 0x1f, /* x18-x1F */ - 0x80, 0x81, 0x82, 0x83, 0x84, 0x0a, 0x17, 0x1b, /* x20-x27 */ - 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x05, 0x06, 0x07, /* x28-x2F */ - 0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04, /* x30-x37 */ - 0x98, 0x99, 0x9a, 0x9b, 0x14, 0x15, 0x9e, 0x1a, /* x38-x3F */ - 0x20, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, /* x40-x47 */ - 0xa7, 0xa8, 0x5b, 0x2e, 0x3c, 0x28, 0x2b, 0x5d, /* x48-x4F */ - 0x26, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* x50-x57 */ - 0xb0, 0xb1, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0x5e, /* x58-x5F */ - 0x2d, 0x2f, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* x60-x67 */ - 0xb8, 0xb9, 0x7c, 0x2c, 0x25, 0x5f, 0x3e, 0x3f, /* x68-x6F */ - 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, /* x70-x77 */ - 0xc2, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, /* x78-x7F */ - 0xc3, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* x80-x87 */ - 0x68, 0x69, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, /* x88-x8F */ - 0xca, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, /* x90-x97 */ - 0x71, 0x72, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, /* x98-x9F */ - 0xd1, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, /* xA0-xA7 */ - /* 0x79, 0x7a, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* xA8-xAF */ - 0x79, 0x7a, 0xd2, 0xd3, 0xd4, 0x5b, 0xd6, 0xd7, /* xA8-xAF */ - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* xB0-xB7 */ - /* 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* xB8-xBF */ - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0x5d, 0xe6, 0xe7, /* xB8-xBF */ - 0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /* xC0-xC7 */ - 0x48, 0x49, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, /* xC8-xCF */ - 0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, /* xD0-xD7 */ - 0x51, 0x52, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, /* xD8-xDF */ - 0x5c, 0x9f, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, /* xE0-xE7 */ - 0x59, 0x5a, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, /* xE8-xEF */ - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* xF0-xF7 */ - 0x38, 0x39, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff /* xF8-xFF */ -}; -static unsigned char *ebc2asc = e2a; - -static char *mem2asc(BYTE *in, BYTE *out, WORD len) -{ - WORD i; - - for(i=0; i < len; i++) { - BYTE c = in[i]; - out[i] = ebc2asc[c]; - } - - return out; -} - -static int sha256_test() -{ - BYTE text1[] = {"abc"}; - BYTE text2[] = {"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"}; - BYTE text3[] = {"aaaaaaaaaa"}; - BYTE hash1[SHA256_BLOCK_SIZE] = {0xba,0x78,0x16,0xbf,0x8f,0x01,0xcf,0xea,0x41,0x41,0x40,0xde,0x5d,0xae,0x22,0x23, - 0xb0,0x03,0x61,0xa3,0x96,0x17,0x7a,0x9c,0xb4,0x10,0xff,0x61,0xf2,0x00,0x15,0xad}; - BYTE hash2[SHA256_BLOCK_SIZE] = {0x24,0x8d,0x6a,0x61,0xd2,0x06,0x38,0xb8,0xe5,0xc0,0x26,0x93,0x0c,0x3e,0x60,0x39, - 0xa3,0x3c,0xe4,0x59,0x64,0xff,0x21,0x67,0xf6,0xec,0xed,0xd4,0x19,0xdb,0x06,0xc1}; - BYTE hash3[SHA256_BLOCK_SIZE] = {0xcd,0xc7,0x6e,0x5c,0x99,0x14,0xfb,0x92,0x81,0xa1,0xc7,0xe2,0x84,0xd7,0x3e,0x67, - 0xf1,0x80,0x9a,0x48,0xa4,0x97,0x20,0x0e,0x04,0x6d,0x39,0xcc,0xc7,0x11,0x2c,0xd0}; - BYTE buf[SHA256_BLOCK_SIZE]; - BYTE abuf[256]; - SHA256_CTX ctx; - int idx; - int pass = 1; - int len1 = strlen(text1); - int len2 = strlen(text2); - int len3 = strlen(text3); - - - sha256_init(&ctx); - mem2asc(text1, abuf, len1); - sha256_update(&ctx, abuf, len1); - sha256_final(&ctx, buf); - wtodumpf(buf, sizeof(buf), "text1 \"%s\" sha256", text1); - pass = pass && !memcmp(hash1, buf, SHA256_BLOCK_SIZE); - - sha256_init(&ctx); - mem2asc(text2, abuf, len2); - sha256_update(&ctx, abuf, len2); - sha256_final(&ctx, buf); - wtodumpf(buf, sizeof(buf), "text2 \"%s\" sha256", text2); - pass = pass && !memcmp(hash2, buf, SHA256_BLOCK_SIZE); - - sha256_init(&ctx); - mem2asc(text3, abuf, len3); - for (idx = 0; idx < 100000; ++idx) - sha256_update(&ctx, abuf, len3); - sha256_final(&ctx, buf); - wtodumpf(buf, sizeof(buf), "text3 \"%s\" sha256", text3); - pass = pass && !memcmp(hash3, buf, SHA256_BLOCK_SIZE); - - return(pass); -} - -int main() -{ - wtof("SHA-256 tests: %s", sha256_test() ? "SUCCEEDED" : "FAILED"); - - return(0); -} diff --git a/src/crent370/crypto/sha256.o b/src/crent370/crypto/sha256.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/crypto/sha256.s b/src/crent370/crypto/sha256.s deleted file mode 100644 index c14459f..0000000 --- a/src/crent370/crypto/sha256.s +++ /dev/null @@ -1,696 +0,0 @@ - TITLE '/home/projects/crent370/crypto/sha256.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/crypto -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program data area -@@2 EQU * - DC X'00' - DC X'01' - DC X'02' - DC X'03' - DC X'9C' - DC X'09' - DC X'86' - DC X'7F' - DC X'97' - DC X'8D' - DC X'8E' - DC X'0B' - DC X'0C' - DC X'0D' - DC X'0E' - DC X'0F' - DC X'10' - DC X'11' - DC X'12' - DC X'13' - DC X'9D' - DC X'85' - DC X'08' - DC X'87' - DC X'18' - DC X'19' - DC X'92' - DC X'8F' - DC X'1C' - DC X'1D' - DC X'1E' - DC X'1F' - DC X'80' - DC X'81' - DC X'82' - DC X'83' - DC X'84' - DC X'0A' - DC X'17' - DC X'1B' - DC X'88' - DC X'89' - DC X'8A' - DC X'8B' - DC X'8C' - DC X'05' - DC X'06' - DC X'07' - DC X'90' - DC X'91' - DC X'16' - DC X'93' - DC X'94' - DC X'95' - DC X'96' - DC X'04' - DC X'98' - DC X'99' - DC X'9A' - DC X'9B' - DC X'14' - DC X'15' - DC X'9E' - DC X'1A' - DC X'20' - DC X'A0' - DC X'A1' - DC X'A2' - DC X'A3' - DC X'A4' - DC X'A5' - DC X'A6' - DC X'A7' - DC X'A8' - DC X'5B' - DC X'2E' - DC X'3C' - DC X'28' - DC X'2B' - DC X'5D' - DC X'26' - DC X'A9' - DC X'AA' - DC X'AB' - DC X'AC' - DC X'AD' - DC X'AE' - DC X'AF' - DC X'B0' - DC X'B1' - DC X'21' - DC X'24' - DC X'2A' - DC X'29' - DC X'3B' - DC X'5E' - DC X'2D' - DC X'2F' - DC X'B2' - DC X'B3' - DC X'B4' - DC X'B5' - DC X'B6' - DC X'B7' - DC X'B8' - DC X'B9' - DC X'7C' - DC X'2C' - DC X'25' - DC X'5F' - DC X'3E' - DC X'3F' - DC X'BA' - DC X'BB' - DC X'BC' - DC X'BD' - DC X'BE' - DC X'BF' - DC X'C0' - DC X'C1' - DC X'C2' - DC X'60' - DC X'3A' - DC X'23' - DC X'40' - DC X'27' - DC X'3D' - DC X'22' - DC X'C3' - DC X'61' - DC X'62' - DC X'63' - DC X'64' - DC X'65' - DC X'66' - DC X'67' - DC X'68' - DC X'69' - DC X'C4' - DC X'C5' - DC X'C6' - DC X'C7' - DC X'C8' - DC X'C9' - DC X'CA' - DC X'6A' - DC X'6B' - DC X'6C' - DC X'6D' - DC X'6E' - DC X'6F' - DC X'70' - DC X'71' - DC X'72' - DC X'CB' - DC X'CC' - DC X'CD' - DC X'CE' - DC X'CF' - DC X'D0' - DC X'D1' - DC X'7E' - DC X'73' - DC X'74' - DC X'75' - DC X'76' - DC X'77' - DC X'78' - DC X'79' - DC X'7A' - DC X'D2' - DC X'D3' - DC X'D4' - DC X'5B' - DC X'D6' - DC X'D7' - DC X'D8' - DC X'D9' - DC X'DA' - DC X'DB' - DC X'DC' - DC X'DD' - DC X'DE' - DC X'DF' - DC X'E0' - DC X'E1' - DC X'E2' - DC X'E3' - DC X'E4' - DC X'5D' - DC X'E6' - DC X'E7' - DC X'7B' - DC X'41' - DC X'42' - DC X'43' - DC X'44' - DC X'45' - DC X'46' - DC X'47' - DC X'48' - DC X'49' - DC X'E8' - DC X'E9' - DC X'EA' - DC X'EB' - DC X'EC' - DC X'ED' - DC X'7D' - DC X'4A' - DC X'4B' - DC X'4C' - DC X'4D' - DC X'4E' - DC X'4F' - DC X'50' - DC X'51' - DC X'52' - DC X'EE' - DC X'EF' - DC X'F0' - DC X'F1' - DC X'F2' - DC X'F3' - DC X'5C' - DC X'9F' - DC X'53' - DC X'54' - DC X'55' - DC X'56' - DC X'57' - DC X'58' - DC X'59' - DC X'5A' - DC X'F4' - DC X'F5' - DC X'F6' - DC X'F7' - DC X'F8' - DC X'F9' - DC X'30' - DC X'31' - DC X'32' - DC X'33' - DC X'34' - DC X'35' - DC X'36' - DC X'37' - DC X'38' - DC X'39' - DC X'FA' - DC X'FB' - DC X'FC' - DC X'FD' - DC X'FE' - DC X'FF' - DS 0F -@@3 EQU * - DC A(@@2) -* Program text area - DS 0F - EJECT -* static function 'mem2asc' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'mem2asc' -@@4 PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=NO - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'mem2asc' code - L 7,0(11) ==> in - L 15,4(11) ==> out - L 6,8(11) ==> len - SLR 4,4 ==> i - CLR 4,6 ==> i,len - BNL @@L8 - L 5,=A(@@3) -@@L6 EQU * - SLR 3,3 ==> c - IC 3,0(4,7) ==> c,i - L 2,0(5) ==> ebc2asc - IC 2,0(3,2) ==> c - STC 2,0(4,15) ==> i - A 4,=F'1' ==> i - CLR 4,6 ==> i,len - BL @@L6 -@@L8 EQU * -* Function 'mem2asc' epilogue - PDPEPIL -* Function 'mem2asc' literal pool - DS 0D - LTORG -* Function 'mem2asc' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC3 EQU * - DC X'BA' - DC X'78' - DC X'16' - DC X'BF' - DC X'8F' - DC X'01' - DC X'CF' - DC X'EA' - DC X'41' - DC X'41' - DC X'40' - DC X'DE' - DC X'5D' - DC X'AE' - DC X'22' - DC X'23' - DC X'B0' - DC X'03' - DC X'61' - DC X'A3' - DC X'96' - DC X'17' - DC X'7A' - DC X'9C' - DC X'B4' - DC X'10' - DC X'FF' - DC X'61' - DC X'F2' - DC X'00' - DC X'15' - DC X'AD' -@@LC4 EQU * - DC X'24' - DC X'8D' - DC X'6A' - DC X'61' - DC X'D2' - DC X'06' - DC X'38' - DC X'B8' - DC X'E5' - DC X'C0' - DC X'26' - DC X'93' - DC X'0C' - DC X'3E' - DC X'60' - DC X'39' - DC X'A3' - DC X'3C' - DC X'E4' - DC X'59' - DC X'64' - DC X'FF' - DC X'21' - DC X'67' - DC X'F6' - DC X'EC' - DC X'ED' - DC X'D4' - DC X'19' - DC X'DB' - DC X'06' - DC X'C1' -@@LC5 EQU * - DC X'CD' - DC X'C7' - DC X'6E' - DC X'5C' - DC X'99' - DC X'14' - DC X'FB' - DC X'92' - DC X'81' - DC X'A1' - DC X'C7' - DC X'E2' - DC X'84' - DC X'D7' - DC X'3E' - DC X'67' - DC X'F1' - DC X'80' - DC X'9A' - DC X'48' - DC X'A4' - DC X'97' - DC X'20' - DC X'0E' - DC X'04' - DC X'6D' - DC X'39' - DC X'CC' - DC X'C7' - DC X'11' - DC X'2C' - DC X'D0' - DS 0F - EJECT -* static function 'sha256_test' prologue -* frame base=88, local stack=584, call args=16 -&FUNC SETC 'sha256_test' -@@5 PDPPRLG CINDEX=1,FRAME=688,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'sha256_test' code - L 2,=A(@@LC0) - MVC 680(4,13),0(2) - L 2,=A(@@LC1) - MVC 104(57,13),0(2) ==> text2 - L 2,=A(@@LC2) - MVC 168(11,13),0(2) ==> text3 - L 2,=A(@@LC3) - MVC 184(32,13),0(2) ==> hash1 - L 2,=A(@@LC4) - MVC 216(32,13),0(2) ==> hash2 - L 2,=A(@@LC5) - MVC 248(32,13),0(2) ==> hash3 - LA 6,1(0,0) ==> pass - LA 2,680(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 4,15 ==> len1 - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 7,15 ==> len2 - LA 2,168(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LR 5,15 ==> len3 - LA 3,568(,13) - ST 3,88(13) - LA 1,88(,13) - L 15,=V(SHA256I) - BALR 14,15 - LA 2,680(,13) - ST 2,88(13) - LA 2,312(,13) - ST 2,92(13) - ST 4,96(13) ==> len1 - LA 1,88(,13) - L 15,=A(@@4) - BALR 14,15 - ST 3,88(13) - ST 2,92(13) - ST 4,96(13) ==> len1 - LA 1,88(,13) - L 15,=V(SHA256U) - BALR 14,15 - ST 3,88(13) - LA 3,280(,13) - ST 3,92(13) - LA 1,88(,13) - L 15,=V(SHA256F) - BALR 14,15 - ST 3,88(13) - MVC 92(4,13),=F'32' - MVC 96(4,13),=A(@@LC6) - LA 2,680(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(WTODUMPF) - BALR 14,15 - SLR 4,4 ==> pass - LA 2,184(,13) - ST 2,88(13) - ST 3,92(13) - MVC 96(4,13),=F'32' - LA 1,88(,13) - L 15,=V(MEMCMP) - BALR 14,15 - LTR 15,15 ==> len1 - BNE @@L10 - LR 4,6 ==> pass -@@L10 EQU * - LR 6,4 ==> pass - LA 2,568(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(SHA256I) - BALR 14,15 - LA 4,104(,13) - ST 4,88(13) - LA 3,312(,13) - ST 3,92(13) - ST 7,96(13) ==> len2 - LA 1,88(,13) - L 15,=A(@@4) - BALR 14,15 - ST 2,88(13) - ST 3,92(13) - ST 7,96(13) ==> len2 - LA 1,88(,13) - L 15,=V(SHA256U) - BALR 14,15 - ST 2,88(13) - LA 3,280(,13) - ST 3,92(13) - LA 1,88(,13) - L 15,=V(SHA256F) - BALR 14,15 - ST 3,88(13) - MVC 92(4,13),=F'32' - MVC 96(4,13),=A(@@LC7) - ST 4,100(13) - LA 1,88(,13) - L 15,=V(WTODUMPF) - BALR 14,15 - SLR 4,4 ==> pass - LTR 6,6 ==> pass - BE @@L11 - LA 2,216(,13) - ST 2,88(13) - ST 3,92(13) - MVC 96(4,13),=F'32' - LA 1,88(,13) - L 15,=V(MEMCMP) - BALR 14,15 - LTR 15,15 ==> len1 - BNE @@L11 - LA 4,1(0,0) ==> pass -@@L11 EQU * - LR 6,4 ==> pass - LA 2,568(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(SHA256I) - BALR 14,15 - LA 2,168(,13) - ST 2,88(13) - LA 2,312(,13) - ST 2,92(13) - ST 5,96(13) ==> len3 - LA 1,88(,13) - L 15,=A(@@4) - BALR 14,15 - SLR 2,2 ==> idx - LA 4,568(,13) - LA 3,312(,13) -@@L16 EQU * - ST 4,88(13) - ST 3,92(13) - ST 5,96(13) ==> len3 - LA 1,88(,13) - L 15,=V(SHA256U) - BALR 14,15 - A 2,=F'1' ==> idx - L 7,=F'99999' - CR 2,7 ==> idx - BNH @@L16 - LA 2,568(,13) - ST 2,88(13) - LA 3,280(,13) - ST 3,92(13) - LA 1,88(,13) - L 15,=V(SHA256F) - BALR 14,15 - ST 3,88(13) - MVC 92(4,13),=F'32' - MVC 96(4,13),=A(@@LC8) - LA 2,168(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(WTODUMPF) - BALR 14,15 - SLR 4,4 ==> pass - LTR 6,6 ==> pass - BE @@L17 - LA 2,248(,13) - ST 2,88(13) - ST 3,92(13) - MVC 96(4,13),=F'32' - LA 1,88(,13) - L 15,=V(MEMCMP) - BALR 14,15 - LTR 15,15 ==> len1 - BNE @@L17 - LA 4,1(0,0) ==> pass -@@L17 EQU * - LR 15,4 ==> pass -* Function 'sha256_test' epilogue - PDPEPIL -* Function 'sha256_test' literal pool - DS 0D - LTORG -* Function 'sha256_test' page table -@@PGT1 DS 0F - DC A(@@PG1) -@@LC0 EQU * - DC C'abc' - DC X'0' -@@LC1 EQU * - DC C'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmno' - DC C'mnopnopq' - DC X'0' -@@LC2 EQU * - DC C'aaaaaaaaaa' - DC X'0' -@@LC6 EQU * - DC C'text1 "%s" sha256' - DC X'0' -@@LC7 EQU * - DC C'text2 "%s" sha256' - DC X'0' -@@LC8 EQU * - DC C'text3 "%s" sha256' - DC X'0' - DS 0F - COPY PDPMAIN - EJECT -* external function 'main' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'main' -MAIN PDPPRLG CINDEX=2,FRAME=96,BASER=12,ENTRY=YES - B @@FEN2 - LTORG -@@FEN2 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG2 EQU * - LR 11,1 - L 10,=A(@@PGT2) -* Function 'main' code - LA 1,88(,13) - L 15,=A(@@5) - BALR 14,15 - L 2,=A(@@LC9) - LTR 15,15 - BNE @@L22 - L 2,=A(@@LC10) -@@L22 EQU * - MVC 88(4,13),=A(@@LC11) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - SLR 15,15 -* Function 'main' epilogue - PDPEPIL -* Function 'main' literal pool - DS 0D - LTORG -* Function 'main' page table -@@PGT2 DS 0F - DC A(@@PG2) -@@LC9 EQU * - DC C'SUCCEEDED' - DC X'0' -@@LC10 EQU * - DC C'FAILED' - DC X'0' -@@LC11 EQU * - DC C'SHA-256 tests: %s' - DC X'0' - END @@MAIN diff --git a/src/crent370/crypto/sha256f.c b/src/crent370/crypto/sha256f.c deleted file mode 100644 index 53cfce8..0000000 --- a/src/crent370/crypto/sha256f.c +++ /dev/null @@ -1,75 +0,0 @@ -/********************************************************************* -* Author: Brad Conte (brad AT bradconte.com) -* Copyright: -* Disclaimer: This code is presented "as is" without any guarantees. -* Details: Implementation of the SHA-256 hashing algorithm. - SHA-256 is one of the three algorithms in the SHA2 - specification. The others, SHA-384 and SHA-512, are not - offered in this implementation. - Algorithm specification can be found here: - * http://csrc.nist.gov/publications/fips/fips180-2/fips180-2withchangenotice.pdf - This implementation uses little endian byte order. -*********************************************************************/ - -/*************************** HEADER FILES ***************************/ -#include -#include "sha256.h" -typedef unsigned char BYTE; -typedef unsigned int WORD; - -void sha256_final(SHA256_CTX *ctx, BYTE hash[]) -{ - WORD i; - - i = ctx->datalen; - - // Pad whatever data is left in the buffer. - if (ctx->datalen < 56) { - ctx->data[i++] = 0x80; - while (i < 56) - ctx->data[i++] = 0x00; - } - else { - ctx->data[i++] = 0x80; - while (i < 64) - ctx->data[i++] = 0x00; - sha256_transform(ctx, ctx->data); - memset(ctx->data, 0, 56); - } - - // Append to the padding the total message's length in bits and transform. - __64_add_u32(&ctx->bitlen, ctx->datalen * 8, &ctx->bitlen); -#if 0 - ctx->data[63] = ctx->bitlen.u32[1]; - ctx->data[62] = ctx->bitlen.u32[1] >> 8; - ctx->data[61] = ctx->bitlen.u32[1] >> 16; - ctx->data[60] = ctx->bitlen.u32[1] >> 24; - ctx->data[59] = ctx->bitlen.u32[0]; - ctx->data[58] = ctx->bitlen.u32[0] >> 8; - ctx->data[57] = ctx->bitlen.u32[0] >> 16; - ctx->data[56] = ctx->bitlen.u32[0] >> 24; -#else - memcpy(&ctx->data[56], &ctx->bitlen, 8); -#endif - - sha256_transform(ctx, ctx->data); - -#if 0 - // Since this implementation uses little endian byte ordering and SHA uses big endian, - // reverse all the bytes when copying the final state to the output hash. - for (i = 0; i < 4; ++i) { - hash[i] = (ctx->state[0] >> (24 - i * 8)) & 0x000000ff; - hash[i + 4] = (ctx->state[1] >> (24 - i * 8)) & 0x000000ff; - hash[i + 8] = (ctx->state[2] >> (24 - i * 8)) & 0x000000ff; - hash[i + 12] = (ctx->state[3] >> (24 - i * 8)) & 0x000000ff; - hash[i + 16] = (ctx->state[4] >> (24 - i * 8)) & 0x000000ff; - hash[i + 20] = (ctx->state[5] >> (24 - i * 8)) & 0x000000ff; - hash[i + 24] = (ctx->state[6] >> (24 - i * 8)) & 0x000000ff; - hash[i + 28] = (ctx->state[7] >> (24 - i * 8)) & 0x000000ff; - } -#else - /* we're on MVS, so we have big endian byte order already */ - memcpy(hash, ctx->state, SHA256_BLOCK_SIZE); -#endif - -} diff --git a/src/crent370/crypto/sha256f.o b/src/crent370/crypto/sha256f.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/crypto/sha256f.s b/src/crent370/crypto/sha256f.s deleted file mode 100644 index cc2192e..0000000 --- a/src/crent370/crypto/sha256f.s +++ /dev/null @@ -1,129 +0,0 @@ - TITLE '/home/projects/crent370/crypto/sha256f.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/crypto -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'sha256_final' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'sha256_final' -SHA256F PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'sha256_final' code - L 3,0(11) ==> ctx - L 15,8(3) ==> i,datalen - LA 2,55(0,0) - CLR 15,2 ==> i - BH @@L2 - L 5,=F'-128' - STC 5,44(3,15) ==> .data - A 15,=F'1' ==> i - CLR 15,2 ==> i - BH @@L7 - LA 4,40(0,0) -@@L6 EQU * - LR 2,15 ==> i - AR 2,3 ==> ctx - SLR 5,5 - STC 5,4(4,2) ==> .data - A 15,=F'1' ==> i - LA 2,55(0,0) - CLR 15,2 ==> i - BH @@L7 - B @@L6 -@@L2 EQU * - L 5,=F'-128' - STC 5,44(3,15) ==> .data - A 15,=F'1' ==> i - LA 2,63(0,0) - CLR 15,2 ==> i - BH @@L14 - LA 4,40(0,0) -@@L11 EQU * - LR 2,15 ==> i - AR 2,3 ==> ctx - SLR 5,5 - STC 5,4(4,2) ==> .data - A 15,=F'1' ==> i - LA 2,63(0,0) - CLR 15,2 ==> i - BNH @@L11 -@@L14 EQU * - ST 3,88(13) ==> ctx - LR 2,3 ==> ctx - A 2,=F'44' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(SHA256T) - BALR 14,15 - ST 2,88(13) - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'56' - LA 1,88(,13) - L 15,=V(MEMSET) - BALR 14,15 -@@L7 EQU * - ST 3,88(13) ==> ctx - L 2,8(3) ==> .datalen - SLL 2,3 - ST 2,92(13) - ST 3,96(13) ==> ctx - LA 1,88(,13) - L 15,=V(@@64AU32) - BALR 14,15 - LR 2,3 ==> ctx - A 2,=F'100' - ST 2,88(13) - ST 3,92(13) ==> ctx - MVC 96(4,13),=F'8' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - ST 3,88(13) ==> ctx - A 2,=F'-56' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(SHA256T) - BALR 14,15 - MVC 88(4,13),4(11) ==> hash - A 2,=F'-32' - ST 2,92(13) - MVC 96(4,13),=F'32' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 -* Function 'sha256_final' epilogue - PDPEPIL -* Function 'sha256_final' literal pool - DS 0D - LTORG -* Function 'sha256_final' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/crypto/sha256i.c b/src/crent370/crypto/sha256i.c deleted file mode 100644 index 72e8406..0000000 --- a/src/crent370/crypto/sha256i.c +++ /dev/null @@ -1,32 +0,0 @@ -/********************************************************************* -* Author: Brad Conte (brad AT bradconte.com) -* Copyright: -* Disclaimer: This code is presented "as is" without any guarantees. -* Details: Implementation of the SHA-256 hashing algorithm. - SHA-256 is one of the three algorithms in the SHA2 - specification. The others, SHA-384 and SHA-512, are not - offered in this implementation. - Algorithm specification can be found here: - * http://csrc.nist.gov/publications/fips/fips180-2/fips180-2withchangenotice.pdf - This implementation uses little endian byte order. -*********************************************************************/ - -/*************************** HEADER FILES ***************************/ -#include -#include "sha256.h" -typedef unsigned char BYTE; -typedef unsigned int WORD; - -void sha256_init(SHA256_CTX *ctx) -{ - ctx->datalen = 0; - __64_init(&ctx->bitlen); - ctx->state[0] = 0x6a09e667; - ctx->state[1] = 0xbb67ae85; - ctx->state[2] = 0x3c6ef372; - ctx->state[3] = 0xa54ff53a; - ctx->state[4] = 0x510e527f; - ctx->state[5] = 0x9b05688c; - ctx->state[6] = 0x1f83d9ab; - ctx->state[7] = 0x5be0cd19; -} diff --git a/src/crent370/crypto/sha256i.o b/src/crent370/crypto/sha256i.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/crypto/sha256i.s b/src/crent370/crypto/sha256i.s deleted file mode 100644 index 39eb600..0000000 --- a/src/crent370/crypto/sha256i.s +++ /dev/null @@ -1,61 +0,0 @@ - TITLE '/home/projects/crent370/crypto/sha256i.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/crypto -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'sha256_init' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'sha256_init' -SHA256I PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'sha256_init' code - L 2,0(11) ==> ctx - MVC 8(4,2),=F'0' ==> .datalen - ST 2,88(13) ==> ctx - LA 1,88(,13) - L 15,=V(@@64INIT) - BALR 14,15 - MVC 12(4,2),=F'1779033703' ==> .state - MVC 16(4,2),=F'-1150833019' ==> .state - MVC 20(4,2),=F'1013904242' ==> .state - MVC 24(4,2),=F'-1521486534' ==> .state - MVC 28(4,2),=F'1359893119' ==> .state - MVC 32(4,2),=F'-1694144372' ==> .state - MVC 36(4,2),=F'528734635' ==> .state - MVC 40(4,2),=F'1541459225' ==> .state -* Function 'sha256_init' epilogue - PDPEPIL -* Function 'sha256_init' literal pool - DS 0D - LTORG -* Function 'sha256_init' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/crypto/sha256t.c b/src/crent370/crypto/sha256t.c deleted file mode 100644 index 8b9f6f6..0000000 --- a/src/crent370/crypto/sha256t.c +++ /dev/null @@ -1,83 +0,0 @@ -/********************************************************************* -* Author: Brad Conte (brad AT bradconte.com) -* Copyright: -* Disclaimer: This code is presented "as is" without any guarantees. -* Details: Implementation of the SHA-256 hashing algorithm. - SHA-256 is one of the three algorithms in the SHA2 - specification. The others, SHA-384 and SHA-512, are not - offered in this implementation. - Algorithm specification can be found here: - * http://csrc.nist.gov/publications/fips/fips180-2/fips180-2withchangenotice.pdf - This implementation uses little endian byte order. -*********************************************************************/ - -/*************************** HEADER FILES ***************************/ -#include -#include "sha256.h" -typedef unsigned char BYTE; -typedef unsigned int WORD; - -/****************************** MACROS ******************************/ -#define ROTLEFT(a,b) (((a) << (b)) | ((a) >> (32-(b)))) -#define ROTRIGHT(a,b) (((a) >> (b)) | ((a) << (32-(b)))) - -#define CH(x,y,z) (((x) & (y)) ^ (~(x) & (z))) -#define MAJ(x,y,z) (((x) & (y)) ^ ((x) & (z)) ^ ((y) & (z))) -#define EP0(x) (ROTRIGHT(x,2) ^ ROTRIGHT(x,13) ^ ROTRIGHT(x,22)) -#define EP1(x) (ROTRIGHT(x,6) ^ ROTRIGHT(x,11) ^ ROTRIGHT(x,25)) -#define SIG0(x) (ROTRIGHT(x,7) ^ ROTRIGHT(x,18) ^ ((x) >> 3)) -#define SIG1(x) (ROTRIGHT(x,17) ^ ROTRIGHT(x,19) ^ ((x) >> 10)) - -/**************************** VARIABLES *****************************/ -static const WORD k[64] = { - 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5,0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5, - 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174, - 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da, - 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7,0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967, - 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13,0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85, - 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3,0xd192e819,0xd6990624,0xf40e3585,0x106aa070, - 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5,0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3, - 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208,0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2 -}; - -/*********************** FUNCTION DEFINITIONS ***********************/ -void sha256_transform(SHA256_CTX *ctx, const BYTE data[]) -{ - WORD a, b, c, d, e, f, g, h, i, j, t1, t2, m[64]; - - for (i = 0, j = 0; i < 16; ++i, j += 4) - m[i] = (data[j] << 24) | (data[j + 1] << 16) | (data[j + 2] << 8) | (data[j + 3]); - for ( ; i < 64; ++i) - m[i] = SIG1(m[i - 2]) + m[i - 7] + SIG0(m[i - 15]) + m[i - 16]; - - a = ctx->state[0]; - b = ctx->state[1]; - c = ctx->state[2]; - d = ctx->state[3]; - e = ctx->state[4]; - f = ctx->state[5]; - g = ctx->state[6]; - h = ctx->state[7]; - - for (i = 0; i < 64; ++i) { - t1 = h + EP1(e) + CH(e,f,g) + k[i] + m[i]; - t2 = EP0(a) + MAJ(a,b,c); - h = g; - g = f; - f = e; - e = d + t1; - d = c; - c = b; - b = a; - a = t1 + t2; - } - - ctx->state[0] += a; - ctx->state[1] += b; - ctx->state[2] += c; - ctx->state[3] += d; - ctx->state[4] += e; - ctx->state[5] += f; - ctx->state[6] += g; - ctx->state[7] += h; -} diff --git a/src/crent370/crypto/sha256t.o b/src/crent370/crypto/sha256t.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/crypto/sha256t.s b/src/crent370/crypto/sha256t.s deleted file mode 100644 index 62c9bf4..0000000 --- a/src/crent370/crypto/sha256t.s +++ /dev/null @@ -1,297 +0,0 @@ - TITLE '/home/projects/crent370/crypto/sha256t.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/crypto -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F -@@0 EQU * - DC F'1116352408' - DC F'1899447441' - DC F'-1245643825' - DC F'-373957723' - DC F'961987163' - DC F'1508970993' - DC F'-1841331548' - DC F'-1424204075' - DC F'-670586216' - DC F'310598401' - DC F'607225278' - DC F'1426881987' - DC F'1925078388' - DC F'-2132889090' - DC F'-1680079193' - DC F'-1046744716' - DC F'-459576895' - DC F'-272742522' - DC F'264347078' - DC F'604807628' - DC F'770255983' - DC F'1249150122' - DC F'1555081692' - DC F'1996064986' - DC F'-1740746414' - DC F'-1473132947' - DC F'-1341970488' - DC F'-1084653625' - DC F'-958395405' - DC F'-710438585' - DC F'113926993' - DC F'338241895' - DC F'666307205' - DC F'773529912' - DC F'1294757372' - DC F'1396182291' - DC F'1695183700' - DC F'1986661051' - DC F'-2117940946' - DC F'-1838011259' - DC F'-1564481375' - DC F'-1474664885' - DC F'-1035236496' - DC F'-949202525' - DC F'-778901479' - DC F'-694614492' - DC F'-200395387' - DC F'275423344' - DC F'430227734' - DC F'506948616' - DC F'659060556' - DC F'883997877' - DC F'958139571' - DC F'1322822218' - DC F'1537002063' - DC F'1747873779' - DC F'1955562222' - DC F'2024104815' - DC F'-2067236844' - DC F'-1933114872' - DC F'-1866530822' - DC F'-1538233109' - DC F'-1090935817' - DC F'-965641998' - DS 0F - EJECT -* external function 'sha256_transform' prologue -* frame base=88, local stack=272, call args=0 -&FUNC SETC 'sha256_transform' -SHA256T PDPPRLG CINDEX=0,FRAME=360,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'sha256_transform' code - L 6,4(11) ==> data - SLR 15,15 ==> i - LR 5,15 ==> j,i -@@L6 EQU * - LR 4,15 ==> i - MH 4,=H'4' - IC 3,0(5,6) ==> j - SLL 3,24 - SLR 2,2 - IC 2,1(5,6) - SLL 2,16 - OR 3,2 - SLR 2,2 - IC 2,2(5,6) - SLL 2,8 - OR 3,2 - SLR 2,2 - IC 2,3(5,6) - OR 3,2 - ST 3,88(13,4) ==> m - A 15,=F'1' ==> i - A 5,=F'4' ==> j - LA 2,15(0,0) - CLR 15,2 ==> i - BNH @@L6 - LA 3,63(0,0) - CLR 15,3 ==> i - BH @@L20 - L 9,=F'-8' -@@L11 EQU * - LR 8,15 ==> i - MH 8,=H'4' - LA 2,88(,13) - LR 6,8 - AR 6,2 - LR 4,6 - AR 4,9 - L 3,0(4) ==> m - LR 5,3 - SLL 5,15 - LR 2,3 - SRL 2,17 - OR 5,2 - LR 2,3 - SLL 2,13 - SRL 3,19 - OR 2,3 - XR 5,2 - L 2,0(4) ==> m - SRL 2,10 - XR 5,2 - LR 2,6 - A 2,=F'-28' - A 5,0(2) ==> m - LR 7,6 - A 7,=F'-60' - L 4,0(7) ==> m - LR 2,4 - SLL 2,25 - LR 3,4 - SRL 3,7 - OR 2,3 - LR 3,4 - SLL 3,14 - SRL 4,18 - OR 3,4 - XR 2,3 - L 3,0(7) ==> m - SRL 3,3 - XR 2,3 - AR 5,2 - A 6,=F'-64' - A 5,0(6) ==> m - ST 5,88(13,8) ==> m - A 15,=F'1' ==> i - LA 2,63(0,0) - CLR 15,2 ==> i - BNH @@L11 -@@L20 EQU * - L 3,0(11) ==> ctx - L 6,12(3) ==> a,state - L 8,16(3) ==> b,state - L 9,20(3) ==> c,state - MVC 344(4,13),24(3) ==> d,state - L 7,28(3) ==> e,state - MVC 348(4,13),32(3) ==> f,state - MVC 352(4,13),36(3) ==> g,state - MVC 356(4,13),40(3) ==> h,state - SLR 15,15 ==> i -@@L16 EQU * - LR 3,7 ==> e - SLL 3,26 - LR 2,7 ==> e - SRL 2,6 - OR 3,2 - LR 2,7 ==> e - SLL 2,21 - LR 4,7 ==> e - SRL 4,11 - OR 2,4 - XR 3,2 - LR 2,7 ==> e - SLL 2,7 - LR 4,7 ==> e - SRL 4,25 - OR 2,4 - XR 3,2 - L 5,356(13) ==> h - AR 5,3 - L 3,348(13) ==> f - NR 3,7 ==> e - LR 2,7 ==> e - X 2,=F'-1' - N 2,352(13) ==> g - XR 3,2 - AR 5,3 - LR 2,15 ==> i - MH 2,=H'4' - L 3,=A(@@0) - A 5,0(2,3) ==> k - A 5,88(13,2) ==> t1,m - LR 4,6 ==> a - SLL 4,30 - LR 2,6 ==> a - SRL 2,2 - OR 4,2 - LR 2,6 ==> a - SLL 2,19 - LR 3,6 ==> a - SRL 3,13 - OR 2,3 - XR 4,2 - LR 2,6 ==> a - SLL 2,10 - LR 3,6 ==> a - SRL 3,22 - OR 2,3 - XR 4,2 - LR 2,9 ==> c - XR 2,8 ==> b - NR 2,6 ==> a - LR 3,8 ==> b - NR 3,9 ==> c - XR 2,3 - AR 4,2 ==> t2 - MVC 356(4,13),352(13) ==> h,g - MVC 352(4,13),348(13) ==> g,f - ST 7,348(13) ==> e,f - L 7,344(13) ==> e,d - AR 7,5 ==> e,t1 - ST 9,344(13) ==> c,d - LR 9,8 ==> c,b - LR 8,6 ==> b,a - LR 6,5 ==> a,t1 - AR 6,4 ==> a,t2 - A 15,=F'1' ==> i - LA 2,63(0,0) - CLR 15,2 ==> i - BNH @@L16 - LR 2,6 ==> a - L 3,0(11) ==> ctx - A 2,12(3) ==> .state - ST 2,12(3) ==> .state - LR 2,8 ==> b - A 2,16(3) ==> .state - ST 2,16(3) ==> .state - LR 2,9 ==> c - A 2,20(3) ==> .state - ST 2,20(3) ==> .state - L 2,344(13) ==> d - A 2,24(3) ==> .state - ST 2,24(3) ==> .state - LR 2,7 ==> e - A 2,28(3) ==> .state - ST 2,28(3) ==> .state - L 2,348(13) ==> f - A 2,32(3) ==> .state - ST 2,32(3) ==> .state - L 2,352(13) ==> g - A 2,36(3) ==> .state - ST 2,36(3) ==> .state - L 2,356(13) ==> h - A 2,40(3) ==> .state - ST 2,40(3) ==> .state -* Function 'sha256_transform' epilogue - PDPEPIL -* Function 'sha256_transform' literal pool - DS 0D - LTORG -* Function 'sha256_transform' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/crypto/sha256u.c b/src/crent370/crypto/sha256u.c deleted file mode 100644 index 59ce220..0000000 --- a/src/crent370/crypto/sha256u.c +++ /dev/null @@ -1,33 +0,0 @@ -/********************************************************************* -* Author: Brad Conte (brad AT bradconte.com) -* Copyright: -* Disclaimer: This code is presented "as is" without any guarantees. -* Details: Implementation of the SHA-256 hashing algorithm. - SHA-256 is one of the three algorithms in the SHA2 - specification. The others, SHA-384 and SHA-512, are not - offered in this implementation. - Algorithm specification can be found here: - * http://csrc.nist.gov/publications/fips/fips180-2/fips180-2withchangenotice.pdf - This implementation uses little endian byte order. -*********************************************************************/ - -/*************************** HEADER FILES ***************************/ -#include -#include "sha256.h" -typedef unsigned char BYTE; -typedef unsigned int WORD; - -void sha256_update(SHA256_CTX *ctx, const BYTE data[], size_t len) -{ - WORD i; - - for (i = 0; i < len; ++i) { - ctx->data[ctx->datalen] = data[i]; - ctx->datalen++; - if (ctx->datalen == 64) { - sha256_transform(ctx, ctx->data); - __64_add_u32(&ctx->bitlen, 512, &ctx->bitlen); - ctx->datalen = 0; - } - } -} diff --git a/src/crent370/crypto/sha256u.o b/src/crent370/crypto/sha256u.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/crypto/sha256u.s b/src/crent370/crypto/sha256u.s deleted file mode 100644 index 6b08568..0000000 --- a/src/crent370/crypto/sha256u.s +++ /dev/null @@ -1,81 +0,0 @@ - TITLE '/home/projects/crent370/crypto/sha256u.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/crypto -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'sha256_update' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'sha256_update' -SHA256U PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'sha256_update' code - L 3,0(11) ==> ctx - L 6,4(11) ==> data - L 5,8(11) ==> len - SLR 4,4 ==> i - CLR 4,5 ==> i,len - BNL @@L9 -@@L7 EQU * - L 2,8(3) ==> .datalen - IC 7,0(4,6) ==> i - STC 7,44(3,2) ==> .data - A 2,=F'1' - ST 2,8(3) ==> .datalen - LA 7,64(0,0) - CLR 2,7 - BNE @@L4 - ST 3,88(13) ==> ctx - LR 2,3 ==> ctx - A 2,=F'44' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(SHA256T) - BALR 14,15 - ST 3,88(13) ==> ctx - MVC 92(4,13),=F'512' - ST 3,96(13) ==> ctx - LA 1,88(,13) - L 15,=V(@@64AU32) - BALR 14,15 - MVC 8(4,3),=F'0' ==> .datalen -@@L4 EQU * - A 4,=F'1' ==> i - CLR 4,5 ==> i,len - BL @@L7 -@@L9 EQU * -* Function 'sha256_update' epilogue - PDPEPIL -* Function 'sha256_update' literal pool - DS 0D - LTORG -* Function 'sha256_update' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/dyn75/@@75.c b/src/crent370/dyn75/@@75.c deleted file mode 100644 index 870c14a..0000000 --- a/src/crent370/dyn75/@@75.c +++ /dev/null @@ -1,77 +0,0 @@ -/* @@75.C -** Interface to X'75xxxxxx' TCPIP in Hercules -*/ -#include "__75.h" -#include "socket.h" - -/* __75() - call TCPIP interface via X'75xxxxxx' instruction. */ -__asm__("\n&FUNC SETC '@@75'"); -#if 1 -int -__75(PL75 *pl) -{ - int rc; - unsigned regs[12]; -#if 0 - unsigned *psa = 0; /* low core == PSA */ - void *tcb = (void*)psa[0x21c/4]; /* TCB == PSATOLD */ - char caller[40]=""; - - __caller(caller); - if (strcmp(caller, "@@75send")==0) { - wtof("__75() caller=%s, TCB=%08X", caller, tcb); - wtodumpf(pl, sizeof(PL75), "PL75"); - } -#endif - __asm__( - "LR\t14,%2 => save area for regs\n\t" - "STM\t0,11,0(14) Save R0-R11 in stack save area\n\t" - "LR\t11,%1 => PL75\n\t" - "LM\t0,9,0(11) Load R0-R9 from parameter list\n" -"*\n\t" - "LA\t3,0 To Host PC\n\t" - "SLR\t0,0 Restart = No\n\t" - "DC\tX'75005000' TCPIP 0,000(0,R5)\n\t" - "LTR\t15,15 Check for error\n\t" - "BNZ\tDYN75ERR\n" -"*\n\t" - "LA\t3,1 From Host PC\n\t" - "SLR\t0,0 Restart = No\n\t" - "DC\tX'75006000' TCPIP 0,000(0,R6)\n" -"DYN75ERR DS\t0H\n\t" - "STM\t0,15,0(11) Save results in parameter list\n\t" - "LM\t0,11,0(14) Restore registers\n\t" - "LR\t%0,15" - : "=r" (rc) : "r" (pl), "r" (regs) : "0", "1", "14", "15"); - - return rc; -} -#else -int -__75(PL75 *pl) -{ - int rc; - - __asm__( - "STM\t0,11,20(13) Save R0-R11 in stack save area\n\t" - "LR\t11,%1 => PL75\n\t" - "LM\t0,9,0(11) Load R0-R9 from parameter list\n" -"*\n\t" - "LA\t3,0 To Host PC\n\t" - "SLR\t0,0 Restart = No\n\t" - "DC\tX'75005000' TCPIP 0,000(0,R5)\n\t" - "LTR\t15,15 Check for error\n\t" - "BNZ\tDYN75ERR\n" -"*\n\t" - "LA\t3,1 From Host PC\n\t" - "SLR\t0,0 Restart = No\n\t" - "DC\tX'75006000' TCPIP 0,000(0,R6)\n" -"DYN75ERR DS\t0H\n\t" - "STM\t0,15,0(11) Save results in parameter list\n\t" - "LM\t0,11,20(13) Restore registers from stack\n\t" - "LR\t%0,15" - : "=r" (rc) : "r" (pl) : "0", "1", "15"); - - return rc; -} -#endif diff --git a/src/crent370/dyn75/@@75acce.c b/src/crent370/dyn75/@@75acce.c deleted file mode 100644 index d9a734d..0000000 --- a/src/crent370/dyn75/@@75acce.c +++ /dev/null @@ -1,73 +0,0 @@ -/* @@75ACCE.C -** Accept socket connection -*/ -#include "__75.h" -#include "socket.h" -#include "errno.h" -#include "clibsock.h" - -/* accept() */ -__asm__("\n&FUNC SETC 'accept'"); -extern int -accept(int ss, struct sockaddr_in *name, int *length) -{ - int rc; - PL75 pl; - struct sockaddr_in temp; - - if (!name) { - name = &temp; -#if 0 - memset(&temp, 0, sizeof(temp)); -#else - __asm__("XC\t0(16,%0),0(%0) clear temp sockaddr_in" : : "r"(name)); -#endif - } - -#if 0 - memset(&pl, 0, sizeof(pl)); -#else - __asm__("XC\t0(64,%0),0(%0) clear __75 parameter list" : : "r" (&pl)); -#endif - - for(;;) { - pl.r1 = (unsigned) 0; - pl.r6 = (unsigned) name; - pl.r7 = (unsigned) 9; /* function code for accept() */ - pl.r8 = (unsigned) ss; - - __75(&pl); - - rc = (int) pl.r4; - if (rc!=-2) break; - - /* we need to wait */ - __asm__("STIMER WAIT,BINTVL==F'8' 0.08 seconds" : : : "0", "1"); - } - - if (rc >= 0) { - /* success */ - struct sockaddr addr = {0}; - int addrlen = sizeof(addr); - - /* get the local socket name (address and port) */ - __75snam(rc, &addr, &addrlen); - - /* save new socket, local and remote information */ - __soadd(rc, &addr, name); /* socket, local, remote */ - } - - if (rc==-1) { - pl.r1 = (unsigned) 0; - pl.r7 = (unsigned) 2; /* get error code */ - __75(&pl); -#if 0 - __75vect->error = (int) pl.r4; - errno = __75vect->error; -#else - errno = (int) pl.r4; -#endif - } - - return rc; -} diff --git a/src/crent370/dyn75/@@75bind.c b/src/crent370/dyn75/@@75bind.c deleted file mode 100644 index 8ddd368..0000000 --- a/src/crent370/dyn75/@@75bind.c +++ /dev/null @@ -1,73 +0,0 @@ -/* @@75BIND.C -** request socket bind -*/ -#include "__75.h" -#include "socket.h" -#include "errno.h" -#include "time.h" -#include "clibsock.h" -#include "clibwto.h" - -/* bind() */ -__asm__("\n&FUNC SETC 'bind'"); -extern int -bind(int ss, struct sockaddr_in * name, int length) -{ - int rc; - PL75 pl; - - if (name->sin_port==0) { - /* caller wants system to assign a random port */ - int i; - time_t now; - - time(&now); - srand(now & 0X7FFF); - for(i=0; i < 100; i++) { - name->sin_port = (unsigned short) (rand() & 0x7FFF) + 10000; - rc = __75bind(ss, name, length); - if (rc==0) return rc; - } - name->sin_port = 0; /* reset port back to 0 */ - } - -#if 0 - memset(&pl, 0, sizeof(pl)); -#else - __asm__("XC\t0(64,%0),0(%0) clear __75 parameter list" : : "r" (&pl)); -#endif - - pl.r7 = (unsigned) ((ss<<16) BOR 6); /* socket in high half */ - pl.r8 = (unsigned) name->sin_addr.s_addr; - pl.r9 = (unsigned) - (((name->sin_family << 16) BOR name->sin_port) & 0x00FFFFFF); - /* wtof("%s r9=%08X, family=%04X, port=%04X", __func__, pl.r9, name->sin_family, name->sin_port); */ - /* wtodumpf(name, sizeof(struct sockaddr_in), "%s sockaddr_in", __func__); */ - - /* wtodumpf(&pl, sizeof(pl), "%s regs before", __func__); */ - - __75(&pl); - - /* wtodumpf(&pl, sizeof(pl), "%s regs after", __func__); */ - rc = (int) pl.r4; - if (rc>=0) { - /* success */ - __soupd(ss, name, 0); - goto quit; - } - - /* failed, get error code */ - pl.r1 = (unsigned) 0; /* clear */ - pl.r8 = (unsigned) ss; /* socket */ - pl.r7 = (unsigned) 2; /* function get error(sock) */ - - __75(&pl); -#if 0 - __75vect->error = (int) pl.r4; /* save error code */ - errno = __75vect->error; -#else - errno = (int) pl.r4; -#endif -quit: - return rc; -}; diff --git a/src/crent370/dyn75/@@75clos.c b/src/crent370/dyn75/@@75clos.c deleted file mode 100644 index bf23d05..0000000 --- a/src/crent370/dyn75/@@75clos.c +++ /dev/null @@ -1,30 +0,0 @@ -/* @@75CLOS.C -** Close socket -*/ -#include "__75.h" -#include "socket.h" -#include "clibsock.h" - -/* closesocket() */ -__asm__("\n&FUNC SETC 'closesocket'"); -extern int -closesocket(int ss) -{ - int rc = 0; - PL75 pl; - -#if 0 - memset(&pl, 0, sizeof(pl)); -#else - __asm__("XC\t0(64,%0),0(%0) clear __75 parameter list" : : "r" (&pl)); -#endif - - pl.r7 = (unsigned) 12; /* function code for closesocket() */ - pl.r8 = (unsigned) ss; /* socket */ - - __75(&pl); - - __sodel(ss); - - return rc; -} diff --git a/src/crent370/dyn75/@@75conn.c b/src/crent370/dyn75/@@75conn.c deleted file mode 100644 index 0cc6cfc..0000000 --- a/src/crent370/dyn75/@@75conn.c +++ /dev/null @@ -1,86 +0,0 @@ -/* @@75CONN.C -** Connect socket to destination -*/ -#include "__75.h" -#include "socket.h" -#include "errno.h" -#include "clibsock.h" - -/* connect() */ -__asm__("\n&FUNC SETC 'connect'"); -extern int -connect(int ss, struct sockaddr_in *name, int length) -{ - int rc; - int i; - PL75 pl; - -#if 0 - memset(&pl, 0, sizeof(pl)); -#else - __asm__("XC\t0(64,%0),0(%0) clear __75 parameter list" : : "r" (&pl)); -#endif - - pl.r7 = (unsigned) 1; - - for(i=0; i < 2; i++) { - pl.r1 = (unsigned) 0; - pl.r7 = (unsigned) (pl.r7 << 24); - pl.r7 = (unsigned) (pl.r7 >> 16); - pl.r7 = (unsigned) (pl.r7 + 7); /* connect */ - pl.r7 = (unsigned) (pl.r7 + (ss << 16)); /* socket */ - - pl.r8 = (unsigned) (name->sin_addr.s_addr); - pl.r9 = (unsigned) - ((name->sin_family << 16) BOR name->sin_port) & 0x00FFFFFF; - - __75(&pl); - - if (pl.r4!=-2) break; - - pl.r7 = (unsigned) (pl.r7<<16); - pl.r7 = (unsigned) (pl.r7>>24); - if (pl.r7==0) { - rc = -1; -#if 0 - __75vect->error = 61; /* ECONNREFUSED */ -#else - errno = ECONNREFUSED; -#endif - goto quit; - } - - pl.r7 = (unsigned) (pl.r7 - 1); - - /* wait one second */ - __asm__("STIMER WAIT,BINTVL==F'100' 1.00 seconds" - : : : "0", "1", "15"); - } - - /* check for error */ - rc = (unsigned) pl.r4; - if (rc>=0) { - struct sockaddr addr = {0}; - int addrlen = sizeof(addr); - __75snam(ss, &addr, &addrlen); - __soupd(ss, &addr, name); - goto quit; - } - - /* get error code */ - pl.r1 = (unsigned) 0; - pl.r8 = (unsigned) ss; /* socket */ - pl.r7 = (unsigned) 2; /* get error(sock) function */ - - __75(&pl); - -#if 0 - __75vect->error = (int) pl.r4; /* remember the error */ - errno = __75vect->error; -#else - errno = (int) pl.r4; -#endif - -quit: - return rc; -} diff --git a/src/crent370/dyn75/@@75exit.c b/src/crent370/dyn75/@@75exit.c deleted file mode 100644 index b910a9d..0000000 --- a/src/crent370/dyn75/@@75exit.c +++ /dev/null @@ -1,30 +0,0 @@ -/* @@75EXIT.C -** Close any sockets we allocated but haven't closed yet. -*/ -#include "__75.h" -#include "socket.h" - -extern void -__75exit(void) -{ - int i; - - printf("in __75exit(), inuse=%08X\n", __75vect->inuse); - if (__75vect->inuse) { - unsigned char *p = (unsigned char*)__75vect->inuse; - for(i=0; iinuse)) { - printf("closing socket %d\n", i); - __75clos(i); - } - else { - printf("socket %d is not in use\n", i); - } - } - } - printf("leaving __75exit()\n"); -} diff --git a/src/crent370/dyn75/@@75gabn.c b/src/crent370/dyn75/@@75gabn.c deleted file mode 100644 index 7ab494a..0000000 --- a/src/crent370/dyn75/@@75gabn.c +++ /dev/null @@ -1,35 +0,0 @@ -/* @@75GABN.C -** Get address by name -*/ -#include "__75.h" -#include "socket.h" -#include "stdlib.h" -#include "string.h" - -extern unsigned char *ebc2asc; - -/* gethostbyname() */ -__asm__("\n&FUNC SETC 'getaddrbyname'"); -extern unsigned -getaddrbyname(const char *name) -{ - unsigned addr = 0; - int len; - PL75 pl; - - __asm__("XC\t0(64,%0),0(%0) clear __75 parameter list" : : "r" (&pl)); - - len = strlen(name); - if (!len) goto quit; - - pl.r1 = (unsigned) len; - pl.r5 = (unsigned) name; - pl.r7 = (unsigned) 4; - - __75(&pl); - - addr = pl.r4; /* returned ip address */ - -quit: - return addr; -} diff --git a/src/crent370/dyn75/@@75ghba.c b/src/crent370/dyn75/@@75ghba.c deleted file mode 100644 index 3fe6803..0000000 --- a/src/crent370/dyn75/@@75ghba.c +++ /dev/null @@ -1,72 +0,0 @@ -/* @@75GHBA.C -** Get host by address -*/ -#include "__75.h" -#include "socket.h" -#include "stdlib.h" -#include "string.h" -#include "clibcrt.h" - -extern unsigned char *asc2ebc; - -/* gethostbyaddr() */ -__asm__("\n&FUNC SETC 'gethostbyaddr'"); -struct hostent * -gethostbyaddr(void *addr) -{ - CLIBCRT *crt = __crtget(); - struct hostent *h = NULL; - int len; - int i; - PL75 pl; - char name[256]; - - if (!crt) goto quit; - - __asm__("XC\t0(64,%0),0(%0) clear __75 parameter list" : : "r" (&pl)); - __asm__("XC\t0(256,%0),0(%0) clear name buffer" : : "r" (name)); - - /* crthoste[0] A(alias) */ - /* crthoste[1] addr */ - /* crthoste[2] A(addr) */ - /* crthoste[3] 0 */ - /* crthoste[4] hostent */ - crt->crthoste[0] = 0; - crt->crthoste[1] = 0; - crt->crthoste[2] = (unsigned)&crt->crthoste[1]; - crt->crthoste[3] = 0; - h = (struct hostent*) &crt->crthoste[4]; - h->h_name = crt->crthostn; - h->h_aliases = (char**)&crt->crthoste[0]; - h->h_addrtype = AF_INET; - h->h_length = 4; - h->h_addr_list = (char**)&crt->crthoste[2]; - h = NULL; - - crt->crthostn[0] = 0; - - crt->crthoste[1] = *(unsigned*)addr; - printf("__75ghba() addr=%08X, *addr=%08X\n", - addr, *(unsigned*)addr); - - /* get host name for address */ - pl.r6 = (unsigned) name; /* A(name) */ - pl.r7 = (unsigned) 18; /* function code gethostbyaddr */ - pl.r8 = (unsigned) crt->crthoste[1]; /* addr */ - - __75(&pl); - if (!name[0]) goto quit; - - /* success, we found host name for this IP address */ - h = (struct hostent*) &crt->crthoste[4]; - len = strlen(name); - - if (len>=sizeof(crt->crthostn)) len = sizeof(crt->crthostn)-1; - for(i=0;i < len; i++) { - crt->crthostn[i] = name[i]; - } - crt->crthostn[len] = 0; - -quit: - return h; -} diff --git a/src/crent370/dyn75/@@75ghbn.c b/src/crent370/dyn75/@@75ghbn.c deleted file mode 100644 index feef96f..0000000 --- a/src/crent370/dyn75/@@75ghbn.c +++ /dev/null @@ -1,56 +0,0 @@ -/* @@75GHBN.C -** Get host by name -** -** Note: the interface provided by DYN75 only returns a single IP -** address for any given name. As such, the hostent we return -** is very limited and does not contain any additional information. -*/ -#include "socket.h" -#include "stdlib.h" -#include "string.h" -#include "clibcrt.h" - -/* gethostbyname() */ -__asm__("\n&FUNC SETC 'gethostbyname'"); -struct hostent * -gethostbyname(const char *name) -{ - CLIBCRT *crt = __crtget(); - struct hostent *h = NULL; - int len; - - if (!crt) goto quit; - - /* crthoste[0] A(alias) */ - /* crthoste[1] addr */ - /* crthoste[2] A(addr) */ - /* crthoste[3] 0 */ - /* crthoste[4] hostent */ - crt->crthoste[0] = 0; - crt->crthoste[1] = 0; - crt->crthoste[2] = (unsigned)&crt->crthoste[1]; - crt->crthoste[3] = 0; - h = (struct hostent*) &crt->crthoste[4]; - h->h_name = crt->crthostn; - h->h_aliases = (char**)&crt->crthoste[0]; - h->h_addrtype = AF_INET; - h->h_length = 4; - h->h_addr_list = (char**)&crt->crthoste[2]; - h = NULL; - - crt->crthostn[0] = 0; - - crt->crthoste[1] = getaddrbyname(name); - if (!crt->crthoste[1]) goto quit; - - /* success, we found an IP address for this name */ - h = (struct hostent*) &crt->crthoste[4]; - len = strlen(name); - - if (len>=sizeof(crt->crthostn)) len = sizeof(crt->crthostn)-1; - memcpy(crt->crthostn, name, len); - crt->crthostn[len] = 0; - -quit: - return h; -} diff --git a/src/crent370/dyn75/@@75init.c b/src/crent370/dyn75/@@75init.c deleted file mode 100644 index fd7e6b2..0000000 --- a/src/crent370/dyn75/@@75init.c +++ /dev/null @@ -1,39 +0,0 @@ -/* @@75INIT.C -** Initialize API -*/ -#include "__75.h" -#include "socket.h" -#include "clibsock.h" -#include "cliblock.h" -#include "clibary.h" -#include "clibgrt.h" - -__asm__("\n&FUNC SETC '@@75init'"); -extern int -__75init(void) -{ - CLIBGRT *grt = __grtget(); - PL75 pl; - - lock(&grt->grtsock, 0); - if (!grt->grtsock) { - grt->grtsock = arraynew(FD_SETSIZE); - } - unlock(&grt->grtsock, 0); - -#if 0 - memset(&pl, 0, sizeof(pl)); -#else - __asm__("XC\t0(64,%0),0(%0) clear __75 parameter list" : : "r" (&pl)); -#endif - - pl.r7 = (unsigned) 1; - - __75(&pl); - - lock(&grt->grtsock, 0); - grt->grtflag1 |= GRTFLAG1_SOCKINIT; - unlock(&grt->grtsock, 0); - - return pl.r15; -} diff --git a/src/crent370/dyn75/@@75ioct.c b/src/crent370/dyn75/@@75ioct.c deleted file mode 100644 index 65b9627..0000000 --- a/src/crent370/dyn75/@@75ioct.c +++ /dev/null @@ -1,60 +0,0 @@ -/* @@75IOCT.C -** ioctl for socket -*/ -#include "__75.h" -#include "socket.h" -#include "errno.h" - -/* ioctlsocket() */ -__asm__("\n&FUNC SETC 'ioctlsocket'"); -extern int -ioctlsocket(int ss, int cmd, void *argp) -{ - int rc; - PL75 pl; - -#if 0 - memset(&pl, 0, sizeof(pl)); -#else - __asm__("XC\t0(64,%0),0(%0) clear __75 parameter list" : : "r" (&pl)); -#endif - - pl.r7 = (unsigned) 15; /* function code for ioctlsocket() */ - pl.r7 = (unsigned) pl.r7 BOR (ss << 16); /* socket in high half */ - pl.r8 = (unsigned) cmd; /* command code */ - pl.r9 = (unsigned) argp; /* args pointer */ - - __75(&pl); - - if (cmd==FIONBIO) { - /* FIONBIO can't produce an error */ - goto success; - } - - rc = (int) pl.r4; - if (rc==-1) { - /* get error */ - pl.r1 = (unsigned) 0; - pl.r7 = (unsigned) 2; /* function code for get error */ - pl.r8 = (unsigned) ss; /* socket */ - - __75(&pl); -#if 0 - __75vect->error = (int) pl.r4; - errno = __75vect->error; -#else - errno = (int) pl.r4; -#endif - goto quit; - } - -success: - /* success, return result */ - if (argp) { - *(unsigned*)argp = pl.r4; - } - rc = 0; - -quit: - return rc; -} diff --git a/src/crent370/dyn75/@@75list.c b/src/crent370/dyn75/@@75list.c deleted file mode 100644 index 81d2d01..0000000 --- a/src/crent370/dyn75/@@75list.c +++ /dev/null @@ -1,44 +0,0 @@ -/* @@75LIST.C -** listen() -*/ -#include "__75.h" -#include "socket.h" -#include "errno.h" - -/* listen() */ -__asm__("\n&FUNC SETC 'listen'"); -extern int -listen(int ss, int backlog) -{ - int rc; - PL75 pl; - -#if 0 - memset(&pl, 0, sizeof(pl)); -#else - __asm__("XC\t0(64,%0),0(%0) clear __75 parameter list" : : "r" (&pl)); -#endif - - pl.r7 = (unsigned) 8; /* function code for listen() */ - pl.r8 = (unsigned) ss; /* socket */ - pl.r9 = (unsigned) backlog; - - __75(&pl); - - rc = (int)pl.r4; /* success? */ - if (rc==0) goto quit; /* yes, we're done */ - - /* get error code */ - pl.r1 = (unsigned) 0; - pl.r7 = (unsigned) 2; /* function code for get error */ - - __75(&pl); -#if 0 - __75vect->error = (int)pl.r4; /* save error code */ - errno = __75vect->error; -#else - errno = (int) pl.r4; -#endif -quit: - return rc; -} diff --git a/src/crent370/dyn75/@@75pnam.c b/src/crent370/dyn75/@@75pnam.c deleted file mode 100644 index 19b589d..0000000 --- a/src/crent370/dyn75/@@75pnam.c +++ /dev/null @@ -1,55 +0,0 @@ -/* @@75PNAM.C -** getpeername() -*/ -#include "__75.h" -#include "socket.h" -#include "errno.h" -#include "clibsock.h" - -/* getpeername() */ -__asm__("\n&FUNC SETC 'getpeername'"); -extern int -getpeername(int ss, struct sockaddr *addr, int *addrlen) -{ - CLIBSOCK *s = 0; - int rc = 0; - PL75 pl; - - if (addr) { - /* do we have this socket in our cache? */ - if (__sofind(ss,&s)) { - /* yes, do we have socket name? */ - if (s && memcmp(s->name, "\x00\x00\x00\x00", 4)!= 0) { - /* yes, return cached name */ - int len = addrlen ? *addrlen : sizeof(*addr); - if (len > sizeof(s->name)) len = sizeof(s->name); - memcpy(addr, s->name, len); - goto quit; - } - } - } - -#if 0 - memset(&pl, 0, sizeof(pl)); -#else - __asm__("XC\t0(64,%0),0(%0) clear __75 parameter list" : : "r" (&pl)); -#endif - - pl.r6 = (unsigned) addr; /* sockaddr pointer */ - pl.r7 = (unsigned) 19; /* function code for getpeername() */ - pl.r8 = (unsigned) ss; /* socket */ - - __75(&pl); - - rc = (int) pl.r4; - if (rc!=-1) goto quit; - - pl.r1 = (unsigned) 0; - pl.r7 = (unsigned) 2; /* function code for get error */ - __75(&pl); - errno = (int)pl.r4; - -quit: - if (addrlen) *addrlen = sizeof(struct sockaddr); - return rc; -} diff --git a/src/crent370/dyn75/@@75recv.c b/src/crent370/dyn75/@@75recv.c deleted file mode 100644 index d7447b4..0000000 --- a/src/crent370/dyn75/@@75recv.c +++ /dev/null @@ -1,46 +0,0 @@ -/* @@75RECV.C -** Receive data from a socket -*/ -#include "__75.h" -#include "socket.h" -#include "errno.h" - -/* recv() */ -__asm__("\n&FUNC SETC 'recv'"); -extern int -recv(int ss, void *buf, int len, int flags) -{ - int rc; - PL75 pl; - - for(;;) { - __asm__("XC\t0(64,%0),0(%0) clear __75 parameter list" - : : "r" (&pl)); - pl.r6 = (unsigned) buf; - pl.r7 = (unsigned) 11; /* function code for recv() */ - pl.r8 = (unsigned) ss; - pl.r9 = (unsigned) len; - - __75(&pl); - - rc = (int) pl.r4; - if (rc!=-2) break; - - /* we need to wait */ - __asm__("STIMER WAIT,BINTVL==F'8' 0.08 seconds" : : : "0", "1"); - } - - if (rc==-1) { - pl.r1 = (unsigned) 0; - pl.r7 = (unsigned) 2; /* function code for get error */ - __75(&pl); -#if 0 - __75vect->error = (int) pl.r4; - errno = __75vect->error; -#else - errno = (int) pl.r4; -#endif - } - - return rc; -} diff --git a/src/crent370/dyn75/@@75sele.c b/src/crent370/dyn75/@@75sele.c deleted file mode 100644 index c23c9fc..0000000 --- a/src/crent370/dyn75/@@75sele.c +++ /dev/null @@ -1,28 +0,0 @@ -/* @@75SELE.C -** select ready socket(s). -** -** __75() select() sub codes (r8): -** 0 = initialize select, allocates buffers -** 1 = set select read fd_set -** 2 = set select write fd_set -** 3 = set select exception fd_set -** 4 = run select, does not block or obey timeval -** 5 = get select read fd_set -** 6 = get select write fd_set -** 7 = get select exception fd_set -** 8 = terminate select, deallocate buffers -*/ -#include "__75.h" -#include "socket.h" -#include "errno.h" - -/* select() */ -__asm__("\n&FUNC SETC 'select'"); -extern int -select(int maxsock, fd_set *r, fd_set *w, fd_set *e, timeval * t) -{ - /* use the selectex() function with a NULL ECB list/array */ - int rc = __75selx(maxsock, r, w, e, t, (void*)0); - - return rc; -} diff --git a/src/crent370/dyn75/@@75selx.c b/src/crent370/dyn75/@@75selx.c deleted file mode 100644 index 5601b7f..0000000 --- a/src/crent370/dyn75/@@75selx.c +++ /dev/null @@ -1,190 +0,0 @@ -/* @@75SELX.C -** select ready socket(s) and wait for ECB post. -** -** __75() selectex() sub codes (r8): -** 0 = initialize select, allocates buffers -** 1 = set select read fd_set -** 2 = set select write fd_set -** 3 = set select exception fd_set -** 4 = run select, does not block or obey timeval -** 5 = get select read fd_set -** 6 = get select write fd_set -** 7 = get select exception fd_set -** 8 = terminate select, deallocate buffers -*/ -#include "__75.h" -#include "socket.h" -#include "errno.h" -#include "clibary.h" - -/* selectex() */ -__asm__("\n&FUNC SETC 'selectex'"); -extern int -selectex(int maxsock, fd_set *r, fd_set *w, fd_set *e, timeval * t, - unsigned **ecblist) -{ - unsigned wait = 0; - unsigned count = 0; - unsigned n; - unsigned *ecb; - int rc; - int bytes; - PL75 pl; - - __asm__("XC\t0(64,%0),0(%0) clear __75 parameter list" : : "r" (&pl)); - - /* maxsock *should* be highest sockets plus 1, so min is 2 - ** since the DYN75 code starts socket assignment with 1. - */ - if (maxsock < 2) { - rc = 0; - goto quit; - } - - if (ecblist) { - count = arraycount(&ecblist); - } - - pl.r7 = (unsigned) ((maxsock-1) << 16) BOR 17; - pl.r8 = (unsigned) 0; /* subcode 0 - initialize for select() */ - pl.r9 = (unsigned) maxsock; - - __75(&pl); - - /* calculate number of bytes we need for fd_set of maxsize */ - bytes = (((maxsock+31)/32)*4); - if (r) { - pl.r1 = (unsigned) bytes; - pl.r5 = (unsigned) r; - pl.r8 = (unsigned) 1; /* subcode 1 - set read */ - __75(&pl); - } - - if (w) { - pl.r1 = (unsigned) bytes; - pl.r5 = (unsigned) w; - pl.r8 = (unsigned) 2; /* subcode 2 - set write */ - __75(&pl); - } - - if (e) { - pl.r1 = (unsigned) bytes; - pl.r5 = (unsigned) e; - pl.r8 = (unsigned) 3; /* subcode 3 - set exception */ - __75(&pl); - } - - if (t) { - /* calculate number of 0.08 seconds we need to wait */ - wait = (unsigned) (t->tv_sec << 5); /* times 32 */ - wait = (unsigned) ((wait << 1) + wait); /* times 64 + */ - wait = (unsigned) (wait >> 3); /* # of .08 sec waits */ - if (t->tv_usec) { - if (t->tv_usec > 64) { - wait = (unsigned) (wait + (t->tv_usec >> 6)); - } - else { - wait++; /* insure at least one .08 sec wait */ - } - } - } - - for(;;) { - /* this is basically a spin loop with a slight delay of - ** 0.08 seconds for each poll to see if we have a ready - ** socket from any of the fd_set's. - */ - pl.r1 = (unsigned) 0; - pl.r8 = (unsigned) 4; /* sub code 4 *** select ***/ - __75(&pl); - - rc = (int)pl.r4; - if (rc!=-2) break; /* no wait */ - - /* no ready socket, we need to wait */ - pl.r4 = (unsigned) 0; /* assume timeout or ECB posted */ - - /* do we have a timeval? */ - if (t) { - /* has the timeval expired? */ - if (wait==0) break; /* no more time, return 0 */ - wait--; /* decrement remainting count */ - } - - /* do we have an ECB list or array? */ - if (ecblist) { - if (count) { - /* array, was an ECB posted? */ - for(n=0; n < count; n++) { - ecb = ecblist[n]; - - if (!ecb) continue; /* skip NULL pointers */ - - /* was this ECB posted? */ - if ((*ecb) & 0x40000000) goto check; /* yes */ - } - } - else { - /* list, was an ECB posted? */ - for(n=0; ecblist[n]; n++) { - ecb = ecblist[n]; - - /* check for NULL end of ECB list */ - if ((unsigned)ecb == 0x80000000) break; - - /* was this ECB posted? */ - if ((*ecb) & 0x40000000) goto check; /* yes */ - - /* check for end of ECB list */ - if ((unsigned)ecb & 0x80000000) break; - } - } - } - - /* we need to wait 0.08 seconds */ - __asm__("STIMER WAIT,BINTVL==F'8' 0.08 seconds" : : : "0", "1"); - } - -check: - rc = (int) pl.r4; /* get return code */ - if (rc==-1) { - /* get error */ - pl.r1 = (unsigned) 0; - pl.r8 = (unsigned) (pl.r7 >> 16); /* get socket */ - pl.r7 = (unsigned) 2; - __75(&pl); -#if 0 - __75vect->error = (int) pl.r4; - errno = __75vect->error; -#else - errno = (int) pl.r4; -#endif - } - - if (r) { - pl.r1 = (unsigned) 0; - pl.r6 = (unsigned) r; - pl.r8 = (unsigned) 5; /* sub code 5 - get read */ - __75(&pl); - } - - if (w) { - pl.r1 = (unsigned) 0; - pl.r6 = (unsigned) w; - pl.r8 = (unsigned) 6; /* sub code 6 - get write */ - __75(&pl); - } - - if (e) { - pl.r1 = (unsigned) 0; - pl.r6 = (unsigned) e; - pl.r8 = (unsigned) 7; /* sub code 7 - get exception */ - __75(&pl); - } - - pl.r8 = (unsigned) 8; /* sub code 8 - clean up */ - __75(&pl); - -quit: - return rc; -} diff --git a/src/crent370/dyn75/@@75send.c b/src/crent370/dyn75/@@75send.c deleted file mode 100644 index 5ae6f50..0000000 --- a/src/crent370/dyn75/@@75send.c +++ /dev/null @@ -1,51 +0,0 @@ -/* @@75SEND.C -** Send data to a socket -*/ -#include "__75.h" -#include "socket.h" -#include "errno.h" - -/* send() */ -__asm__("\n&FUNC SETC 'send'"); -extern int -send(int ss, const void *buf, int len, int flags) -{ - int rc; - PL75 pl; - -#if 0 - memset(&pl, 0, sizeof(pl)); -#else - __asm__("XC\t0(64,%0),0(%0) clear __75 parameter list" : : "r" (&pl)); -#endif - -#if 0 - wtof("__75send(%d,%08X,%d,%d)", ss, buf, len, flags); - wtof("%-60.60s", buf); -#endif - - pl.r1 = (unsigned) len; - pl.r5 = (unsigned) buf; - pl.r7 = (unsigned) 10; /* function code for send() */ - pl.r8 = (unsigned) ss; - - __75(&pl); - - rc = (int) pl.r4; -#if 0 - wtof("__75send() rc=%d", rc); -#endif - if (rc!=-1) goto quit; - - pl.r1 = (unsigned) 0; - pl.r7 = (unsigned) 2; /* function code for get error */ - __75(&pl); -#if 0 - __75vect->error = (int) pl.r4; - errno = __75vect->error; -#else - errno = (int) pl.r4; -#endif -quit: - return rc; -} diff --git a/src/crent370/dyn75/@@75snam.c b/src/crent370/dyn75/@@75snam.c deleted file mode 100644 index 9a7b074..0000000 --- a/src/crent370/dyn75/@@75snam.c +++ /dev/null @@ -1,60 +0,0 @@ -/* @@75SNAM.C -** getsockname() -*/ -#include "__75.h" -#include "socket.h" -#include "errno.h" -#include "clibsock.h" - -/* getsockname() */ -__asm__("\n&FUNC SETC 'getsockname'"); -extern int -getsockname(int ss, struct sockaddr *addr, int *addrlen) -{ - CLIBSOCK *s = 0; - int rc = 0; - PL75 pl; - - if (addr) { - /* do we have this socket in our cache? */ - if (__sofind(ss,&s)) { - /* yes, do we have socket name? */ - if (s && memcmp(s->name, "\x00\x00\x00\x00", 4)!= 0) { - /* yes, return cached name */ - int len = addrlen ? *addrlen : sizeof(*addr); - if (len > sizeof(s->name)) len = sizeof(s->name); - memcpy(addr, s->name, len); - goto quit; - } - } - } - -#if 0 - memset(&pl, 0, sizeof(pl)); -#else - __asm__("XC\t0(64,%0),0(%0) clear __75 parameter list" : : "r" (&pl)); -#endif - - pl.r6 = (unsigned) addr; /* sockaddr pointer */ - pl.r7 = (unsigned) 16; /* function code for getsockname() */ - pl.r8 = (unsigned) ss; /* socket */ - - __75(&pl); - - rc = (int) pl.r4; - if (rc!=-1) goto quit; - - pl.r1 = (unsigned) 0; - pl.r7 = (unsigned) 2; /* function code for get error */ - __75(&pl); -#if 0 - __75vect->error = (int) pl.r4; /* save error code */ - errno = __75vect->error; -#else - errno = (int)pl.r4; -#endif - -quit: - if (addrlen) *addrlen = sizeof(struct sockaddr); - return rc; -} diff --git a/src/crent370/dyn75/@@75sock.c b/src/crent370/dyn75/@@75sock.c deleted file mode 100644 index 1969682..0000000 --- a/src/crent370/dyn75/@@75sock.c +++ /dev/null @@ -1,58 +0,0 @@ -/* @@75SOCK.C -** request socket allocation -*/ -#include "__75.h" -#include "socket.h" -#include "errno.h" -#include "clibsock.h" -#include "clibgrt.h" - -/* socket() */ -__asm__("\n&FUNC SETC 'socket'"); -extern int -socket(int af, int type, int protocol) -{ - CLIBGRT *grt = __grtget(); - int socket = -1; - PL75 pl; - -#if 0 - memset(&pl, 0, sizeof(pl)); -#else - __asm__("XC\t0(64,%0),0(%0) clear __75 parameter list" : : "r" (&pl)); -#endif - - if (!(grt->grtflag1 & GRTFLAG1_SOCKINIT)) { - /* Need a socket before anything else... */ - __75init(); /* so it's the best place to init. */ - /* The Host PC has it's own trigger too! */ - } - - pl.r8 = (unsigned) af << 16; /* address family */ - pl.r9 = (unsigned) type; /* socket type */ - pl.r8 = pl.r8 BOR pl.r9; - pl.r9 = (unsigned) protocol; /* protocol */ - pl.r7 = (unsigned) 5; /* function code */ - - __75(&pl); - - socket = (int) pl.r4; /* socket or error (-1) */ - if (socket >= 0) { - /* success */ - __soadd(socket, 0, 0); - goto quit; - } - - pl.r1 = (unsigned) 0; - pl.r7 = (unsigned) 3; /* function code for get error */ - - __75(&pl); -#if 0 - __75vect->error = (int) pl.r4; /* remember error */ - errno = __75vect->error; -#else - errno = (int) pl.r4; -#endif -quit: - return socket; -} diff --git a/src/crent370/dyn75/@@75vect.c b/src/crent370/dyn75/@@75vect.c deleted file mode 100644 index c7f5c97..0000000 --- a/src/crent370/dyn75/@@75vect.c +++ /dev/null @@ -1,49 +0,0 @@ -/* @@75VECT.C -** TCPIP Vector -*/ -#include "__75.h" -#include "socket.h" - -#if 0 -extern unsigned __75gabn(const char *name); -extern struct hostent * __75ghbn(const char *name); -extern int __75sock(int af, int type, int protocol); -extern int __75bind(int ss, struct sockaddr_in * name, int length); -extern int __75conn(int ss, struct sockaddr_in *name, int length); -extern int __75list(int ss, int backlog); -extern int __75acce(int ss, struct sockaddr_in *name, int *length); -extern int __75send(int ss, const void *buf, int len, int flags); -extern int __75recv(int ss, void *buf, int len, int flags); -extern int __75clos(int ss); -extern int __75ioct(int ss, int cmd, void *argp); -extern int __75snam(int ss, struct sockaddr *addr, int *addrlen); -extern int __75sele(int maxsock, fd_set *r, fd_set *w, fd_set *e, timeval * t); -extern int __75selx(int, fd_set *, fd_set *, fd_set *, timeval *, unsigned **); -extern int __75pnam(int ss, struct sockaddr *addr, int *addrlen); -extern struct hostent * __75ghba(void *addr); -#endif - -static fd_set inuse; -static __75VECT vect = { - 0, /* 00 inited (deprecated) */ - 0, /* 04 error (deprecated) */ - &inuse, /* 08 sockets in use (deprecated) */ - __75gabn, /* 0C getaddrbyname() */ - __75ghbn, /* 10 gethostbyname() */ - __75sock, /* 14 socket() */ - __75bind, /* 18 bind() */ - __75conn, /* 1C connect() */ - __75list, /* 20 listen() */ - __75acce, /* 24 accept() */ - __75send, /* 28 send() */ - __75recv, /* 2C recv() */ - __75clos, /* 30 closesocket() */ - __75ioct, /* 34 ioctlsocket() */ - __75snam, /* 38 getsockname() */ - __75sele, /* 3C select() */ - __75selx, /* 40 selectex() */ - __75pnam, /* 44 getpeername() */ - __75ghba, /* 48 gethostbyaddr() */ -}; - -__75VECT *__75vect = &vect; diff --git a/src/crent370/dyn75/asc2ebc.c b/src/crent370/dyn75/asc2ebc.c deleted file mode 100644 index adcf04f..0000000 --- a/src/crent370/dyn75/asc2ebc.c +++ /dev/null @@ -1,36 +0,0 @@ -static unsigned char a2e[256] = { - 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f, - 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26, - 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f, - 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d, - 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61, - 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, - 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f, - 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, - 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, - 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, - 0xe7, 0xe8, 0xe9, 0x4a, 0xe0, 0x4f, 0x5f, 0x6d, - 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, - 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, - 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, - 0xa7, 0xa8, 0xa9, 0xc0, 0x6a, 0xd0, 0xa1, 0x07, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b, - 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08, - 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xe1, - 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, - 0x49, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, - 0x76, 0x77, 0x78, 0x80, 0x8a, 0x8b, 0x8c, 0x8d, - 0x8e, 0x8f, 0x90, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, - 0x9f, 0xa0, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, - 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xda, 0xdb, - 0xdc, 0xdd, 0xde, 0xdf, 0xea, 0xeb, 0xec, 0xed, - 0xee, 0xef, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff -}; - -unsigned char *asc2ebc = a2e; diff --git a/src/crent370/dyn75/ebc2asc.c b/src/crent370/dyn75/ebc2asc.c deleted file mode 100644 index c0da45e..0000000 --- a/src/crent370/dyn75/ebc2asc.c +++ /dev/null @@ -1,35 +0,0 @@ -static unsigned char e2a[256] = { - 0x00, 0x01, 0x02, 0x03, 0x9c, 0x09, 0x86, 0x7f, - 0x97, 0x8d, 0x8e, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x9d, 0x85, 0x08, 0x87, - 0x18, 0x19, 0x92, 0x8f, 0x1c, 0x1d, 0x1e, 0x1f, - 0x80, 0x81, 0x82, 0x83, 0x84, 0x0a, 0x17, 0x1b, - 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x05, 0x06, 0x07, - 0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04, - 0x98, 0x99, 0x9a, 0x9b, 0x14, 0x15, 0x9e, 0x1a, - 0x20, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, - 0xa7, 0xa8, 0x5b, 0x2e, 0x3c, 0x28, 0x2b, 0x5d, - 0x26, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, - 0xb0, 0xb1, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0x5e, - 0x2d, 0x2f, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, - 0xb8, 0xb9, 0x7c, 0x2c, 0x25, 0x5f, 0x3e, 0x3f, - 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1, - 0xc2, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22, - 0xc3, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, - 0xca, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, - 0x71, 0x72, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, - 0xd1, 0x7e, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, - 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, - 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, - 0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, - 0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, - 0x51, 0x52, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3, - 0x5c, 0x9f, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, - 0x59, 0x5a, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff -}; -unsigned char *ebc2asc = e2a; diff --git a/src/crent370/emfile/@@emamod.c b/src/crent370/emfile/@@emamod.c deleted file mode 100644 index 34467be..0000000 --- a/src/crent370/emfile/@@emamod.c +++ /dev/null @@ -1,49 +0,0 @@ -#include "emfilei.h" - -int emfile_allocate_mod(EMFILE *f, char *ddname) -{ - int err = 1; - unsigned count = 0; - TXT99 **txt99 = NULL; - RB99 rb99 = {0}; - - wtof("%s: enter dsn=\"%s\"", __func__, f->dsname); - - /* we want the DDNAME returned to us */ - err = __txrddn(&txt99, NULL); - if (err) goto quit; - - /* allocate this dataset */ - err = __txdsn(&txt99, f->dsname); - if (err) goto quit; - - /* DISP=MOD */ - err = __txmod(&txt99, NULL); - if (err) goto quit; - - count = arraycount(&txt99); - if (!count) goto quit; - - /* Set high order bit to mark end of list */ - count--; - txt99[count] = (TXT99*)((unsigned)txt99[count] | 0x80000000); - - /* construct the request block for dynamic allocation */ - rb99.len = sizeof(RB99); - rb99.request = S99VRBAL; - rb99.flag1 = S99NOCNV; - rb99.txtptr = txt99; - - /* SVC 99 */ - err = __svc99(&rb99); - if (err) goto quit; - - /* return DDNAME */ - emfile_set_ddn(txt99[0]->text, ddname); - -quit: - if (txt99) FreeTXT99Array(&txt99); - - wtof("%s: exit rc=%d", __func__, err); - return err; -} diff --git a/src/crent370/emfile/@@emamod.o b/src/crent370/emfile/@@emamod.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emamod.s b/src/crent370/emfile/@@emamod.s deleted file mode 100644 index 1c8a33a..0000000 --- a/src/crent370/emfile/@@emamod.s +++ /dev/null @@ -1,149 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emamod.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@6 EQU * - DC C'emfile_allocate_mod' - DC X'0' - DS 0F - EJECT -* external function 'emfile_allocate_mod' prologue -* frame base=88, local stack=32, call args=16 -&FUNC SETC 'emfile_allocate_mod' -@@EMAMOD PDPPRLG CINDEX=0,FRAME=136,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_allocate_mod' code - SLR 6,6 ==> count - ST 6,128(13) ==> count - LA 4,104(,13) - LA 5,20(0,0) - LR 2,6 ==> count - LR 3,6 ==> count - MVCL 4,2 ==> count - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@6) - L 3,0(11) ==> f - A 3,=F'77' - ST 3,96(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LA 2,128(,13) - ST 2,88(13) - ST 6,92(13) ==> count - LA 1,88(,13) - L 15,=V(@@TXRDDN) - BALR 14,15 - LR 4,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LA 2,128(,13) - ST 2,88(13) - ST 3,92(13) - LA 1,88(,13) - L 15,=V(@@TXDSN) - BALR 14,15 - LR 4,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LA 2,128(,13) - ST 2,88(13) - ST 15,92(13) ==> err - LA 1,88(,13) - L 15,=V(@@TXMOD) - BALR 14,15 - LR 4,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LA 2,128(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 6,15 ==> count - LTR 15,15 ==> count - BE @@L3 - BCTR 6,0 ==> count - L 4,128(13) - LR 3,6 ==> count - MH 3,=H'4' - L 2,0(3,4) - O 2,=F'-2147483648' - ST 2,0(3,4) - MVI 104(13),20 ==> .len - MVI 105(13),1 ==> .request - MVI 106(13),64 ==> .flag1 - MVC 112(4,13),128(13) ==> .txtptr - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@SVC99) - BALR 14,15 - LR 4,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - L 2,128(13) - L 2,0(2) - A 2,=F'6' - ST 2,88(13) - MVC 92(4,13),4(11) ==> ddname - LA 1,88(,13) - L 15,=V(@@EMSDDN) - BALR 14,15 -@@L3 EQU * - L 2,128(13) - LTR 2,2 - BE @@L8 - LA 2,128(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@FRTX9A) - BALR 14,15 -@@L8 EQU * - MVC 88(4,13),=A(@@LC1) - MVC 92(4,13),=A(@@6) - ST 4,96(13) ==> err - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LR 15,4 ==> err -* Function 'emfile_allocate_mod' epilogue - PDPEPIL -* Function 'emfile_allocate_mod' literal pool - DS 0D - LTORG -* Function 'emfile_allocate_mod' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s: enter dsn="%s"' - DC X'0' -@@LC1 EQU * - DC C'%s: exit rc=%d' - DC X'0' - END diff --git a/src/crent370/emfile/@@emanew.c b/src/crent370/emfile/@@emanew.c deleted file mode 100644 index bf2259b..0000000 --- a/src/crent370/emfile/@@emanew.c +++ /dev/null @@ -1,100 +0,0 @@ -#include "emfilei.h" - -int emfile_allocate_new(EMFILE *f) -{ - EMFILEWSA *wsa = emfile_get_wsa(); - int err = 1; - unsigned count = 0; - TXT99 **txt99 = NULL; - RB99 rb99 = {0}; - char blkstr[16]; - char prisec[40]; - - wtof("%s: enter dsn=\"%s\"", __func__, f->dsname); - - snprintf(blkstr, sizeof(blkstr), "%u", wsa->blksize); - blkstr[sizeof(blkstr)-1] = 0; - - snprintf(prisec, sizeof(prisec)-1, "%u,%u", wsa->primary, wsa->secondary); - prisec[sizeof(prisec)-1] = 0; - - /* we want the DDNAME returned to us */ - err = __txrddn(&txt99, NULL); - if (err) goto quit; - - /* allocate this dataset */ - err = __txdsn(&txt99, f->dsname); - if (err) goto quit; - - /* DISP=NEW */ - err = __txnew(&txt99, NULL); - if (err) goto quit; - - /* DISP=(,CATLG) */ - err = __txcat(&txt99, NULL); - if (err) goto quit; - - /* BLKSIZE=4096 */ - err = __txbksz(&txt99, blkstr); - if (err) goto quit; - - /* LRECL=4096 */ - err = __txlrec(&txt99, blkstr); - if (err) goto quit; - - /* SPACE=...(pri,sec) */ - err = __txspac(&txt99, prisec); - if (err) goto quit; - - if (wsa->space == EMFILE_SPACE_TRACK) { - /* SPACE=TRACKS */ - err = __txtrk(&txt99, NULL); - } - else { - /* SPACE=CYL */ - err = __txcyl(&txt99, NULL); - } - if (err) goto quit; - - /* RECFM=FB */ - err = __txrecf(&txt99, "FB"); - if (err) goto quit; - - /* DSORG=PS */ - err = __txorg(&txt99, "PS"); - if (err) goto quit; - - if (wsa->vols) { - /* VOLSER=... */ - err = __txvols(&txt99, wsa->vols); - if (err) goto quit; - } - - count = arraycount(&txt99); - if (!count) goto quit; - - /* Set high order bit to mark end of list */ - count--; - txt99[count] = (TXT99*)((unsigned)txt99[count] | 0x80000000); - - /* construct the request block for dynamic allocation */ - rb99.len = sizeof(RB99); - rb99.request = S99VRBAL; - rb99.flag1 = S99NOCNV; - rb99.txtptr = txt99; - - /* SVC 99 */ - err = __svc99(&rb99); - if (err) goto quit; - - /* return DDNAME */ - emfile_set_ddn(txt99[0]->text, f->ddname); - f->flags |= EMFILE_FLAG_DYNAMIC; - f->flags |= EMFILE_FLAG_NEW; - -quit: - if (txt99) FreeTXT99Array(&txt99); - - wtof("%s: exit rc=%d", __func__, err); - return err; -} diff --git a/src/crent370/emfile/@@emanew.o b/src/crent370/emfile/@@emanew.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emanew.s b/src/crent370/emfile/@@emanew.s deleted file mode 100644 index 9d301b0..0000000 --- a/src/crent370/emfile/@@emanew.s +++ /dev/null @@ -1,276 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emanew.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@6 EQU * - DC C'emfile_allocate_new' - DC X'0' - DS 0F - EJECT -* external function 'emfile_allocate_new' prologue -* frame base=88, local stack=88, call args=24 -&FUNC SETC 'emfile_allocate_new' -@@EMANEW PDPPRLG CINDEX=0,FRAME=200,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_allocate_new' code - L 9,0(11) ==> f - LA 1,88(,13) - L 15,=V(@@EMGWSA) - BALR 14,15 - LR 7,15 ==> wsa - SLR 6,6 ==> count - ST 6,192(13) ==> count - LA 4,112(,13) - LA 5,20(0,0) - LR 2,6 ==> count - LR 3,6 ==> count - MVCL 4,2 ==> count - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@6) - LR 4,9 ==> f - A 4,=F'77' - ST 4,96(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LA 5,136(,13) - ST 5,88(13) - MVC 92(4,13),=F'16' - MVC 96(4,13),=A(@@LC1) - MVC 100(4,13),12(7) ==> .blksize - LA 1,88(,13) - L 15,=V(SNPRINTF) - BALR 14,15 - STC 6,151(13) ==> count,blkstr - LA 8,152(,13) - ST 8,88(13) - MVC 92(4,13),=F'39' - MVC 96(4,13),=A(@@LC2) - MVC 100(4,13),16(7) ==> .primary - MVC 104(4,13),20(7) ==> .secondary - LA 1,88(,13) - L 15,=V(SNPRINTF) - BALR 14,15 - STC 6,191(13) ==> count,prisec - LA 2,192(,13) - ST 2,88(13) - ST 6,92(13) ==> count - LA 1,88(,13) - L 15,=V(@@TXRDDN) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LA 2,192(,13) - ST 2,88(13) - ST 4,92(13) - LA 1,88(,13) - L 15,=V(@@TXDSN) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LA 2,192(,13) - ST 2,88(13) - ST 15,92(13) ==> err - LA 1,88(,13) - L 15,=V(@@TXNEW) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LA 2,192(,13) - ST 2,88(13) - ST 15,92(13) ==> err - LA 1,88(,13) - L 15,=V(@@TXCAT) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LA 2,192(,13) - ST 2,88(13) - ST 5,92(13) - LA 1,88(,13) - L 15,=V(@@TXBKSZ) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LA 2,192(,13) - ST 2,88(13) - ST 5,92(13) - LA 1,88(,13) - L 15,=V(@@TXLREC) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LA 2,192(,13) - ST 2,88(13) - ST 8,92(13) - LA 1,88(,13) - L 15,=V(@@TXSPAC) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - L 2,8(7) ==> .space - LTR 2,2 - BNE @@L10 - LA 2,192(,13) - ST 2,88(13) - ST 15,92(13) ==> err - LA 1,88(,13) - L 15,=V(@@TXTRK) - BALR 14,15 - B @@L20 -@@L10 EQU * - LA 2,192(,13) - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@TXCYL) - BALR 14,15 -@@L20 EQU * - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LA 2,192(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC3) - LA 1,88(,13) - L 15,=V(@@TXRECF) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LA 2,192(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC4) - LA 1,88(,13) - L 15,=V(@@TXORG) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - L 2,24(7) ==> .vols - LTR 2,2 - BE @@L15 - LA 2,192(,13) - ST 2,88(13) - MVC 92(4,13),24(7) ==> .vols - LA 1,88(,13) - L 15,=V(@@TXVOLS) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L3 -@@L15 EQU * - LA 2,192(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 6,15 ==> count - LTR 15,15 ==> count - BE @@L3 - BCTR 6,0 ==> count - L 4,192(13) - LR 3,6 ==> count - MH 3,=H'4' - L 2,0(3,4) - O 2,=F'-2147483648' - ST 2,0(3,4) - MVI 112(13),20 ==> .len - MVI 113(13),1 ==> .request - MVI 114(13),64 ==> .flag1 - MVC 120(4,13),192(13) ==> .txtptr - LA 2,112(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@SVC99) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - L 2,192(13) - L 2,0(2) - A 2,=F'6' - ST 2,88(13) - LR 2,9 ==> f - A 2,=F'68' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@EMSDDN) - BALR 14,15 - OC 122(2,9),=H'12' ==> .flags -@@L3 EQU * - L 2,192(13) - LTR 2,2 - BE @@L19 - LA 2,192(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@FRTX9A) - BALR 14,15 -@@L19 EQU * - MVC 88(4,13),=A(@@LC5) - MVC 92(4,13),=A(@@6) - ST 3,96(13) ==> err - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LR 15,3 ==> err -* Function 'emfile_allocate_new' epilogue - PDPEPIL -* Function 'emfile_allocate_new' literal pool - DS 0D - LTORG -* Function 'emfile_allocate_new' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s: enter dsn="%s"' - DC X'0' -@@LC1 EQU * - DC C'%u' - DC X'0' -@@LC2 EQU * - DC C'%u,%u' - DC X'0' -@@LC3 EQU * - DC C'FB' - DC X'0' -@@LC4 EQU * - DC C'PS' - DC X'0' -@@LC5 EQU * - DC C'%s: exit rc=%d' - DC X'0' - END diff --git a/src/crent370/emfile/@@emaold.c b/src/crent370/emfile/@@emaold.c deleted file mode 100644 index 521e244..0000000 --- a/src/crent370/emfile/@@emaold.c +++ /dev/null @@ -1,50 +0,0 @@ -#include "emfilei.h" - -int emfile_allocate_old(EMFILE *f) -{ - int err = 1; - unsigned count = 0; - TXT99 **txt99 = NULL; - RB99 rb99 = {0}; - - wtof("%s: enter dsn=\"%s\"", __func__, f->dsname); - - /* we want the DDNAME returned to us */ - err = __txrddn(&txt99, NULL); - if (err) goto quit; - - /* allocate this dataset */ - err = __txdsn(&txt99, f->dsname); - if (err) goto quit; - - /* DISP=OLD */ - err = __txold(&txt99, NULL); - if (err) goto quit; - - count = arraycount(&txt99); - if (!count) goto quit; - - /* Set high order bit to mark end of list */ - count--; - txt99[count] = (TXT99*)((unsigned)txt99[count] | 0x80000000); - - /* construct the request block for dynamic allocation */ - rb99.len = sizeof(RB99); - rb99.request = S99VRBAL; - rb99.flag1 = S99NOCNV; - rb99.txtptr = txt99; - - /* SVC 99 */ - err = __svc99(&rb99); - if (err) goto quit; - - /* return DDNAME */ - emfile_set_ddn(txt99[0]->text, f->ddname); - f->flags |= EMFILE_FLAG_DYNAMIC; - -quit: - if (txt99) FreeTXT99Array(&txt99); - - wtof("%s: exit rc=%d", __func__, err); - return err; -} diff --git a/src/crent370/emfile/@@emaold.o b/src/crent370/emfile/@@emaold.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emaold.s b/src/crent370/emfile/@@emaold.s deleted file mode 100644 index 2eb685d..0000000 --- a/src/crent370/emfile/@@emaold.s +++ /dev/null @@ -1,153 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emaold.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@6 EQU * - DC C'emfile_allocate_old' - DC X'0' - DS 0F - EJECT -* external function 'emfile_allocate_old' prologue -* frame base=88, local stack=32, call args=16 -&FUNC SETC 'emfile_allocate_old' -@@EMAOLD PDPPRLG CINDEX=0,FRAME=136,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_allocate_old' code - L 7,0(11) ==> f - SLR 6,6 ==> count - ST 6,128(13) ==> count - LA 4,104(,13) - LA 5,20(0,0) - LR 2,6 ==> count - LR 3,6 ==> count - MVCL 4,2 ==> count - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@6) - LR 3,7 ==> f - A 3,=F'77' - ST 3,96(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LA 2,128(,13) - ST 2,88(13) - ST 6,92(13) ==> count - LA 1,88(,13) - L 15,=V(@@TXRDDN) - BALR 14,15 - LR 4,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LA 2,128(,13) - ST 2,88(13) - ST 3,92(13) - LA 1,88(,13) - L 15,=V(@@TXDSN) - BALR 14,15 - LR 4,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LA 2,128(,13) - ST 2,88(13) - ST 15,92(13) ==> err - LA 1,88(,13) - L 15,=V(@@TXOLD) - BALR 14,15 - LR 4,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LA 2,128(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 6,15 ==> count - LTR 15,15 ==> count - BE @@L3 - BCTR 6,0 ==> count - L 4,128(13) - LR 3,6 ==> count - MH 3,=H'4' - L 2,0(3,4) - O 2,=F'-2147483648' - ST 2,0(3,4) - MVI 104(13),20 ==> .len - MVI 105(13),1 ==> .request - MVI 106(13),64 ==> .flag1 - MVC 112(4,13),128(13) ==> .txtptr - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@SVC99) - BALR 14,15 - LR 4,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - L 2,128(13) - L 2,0(2) - A 2,=F'6' - ST 2,88(13) - LR 2,7 ==> f - A 2,=F'68' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@EMSDDN) - BALR 14,15 - OC 122(2,7),=H'8' ==> .flags -@@L3 EQU * - L 2,128(13) - LTR 2,2 - BE @@L8 - LA 2,128(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@FRTX9A) - BALR 14,15 -@@L8 EQU * - MVC 88(4,13),=A(@@LC1) - MVC 92(4,13),=A(@@6) - ST 4,96(13) ==> err - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LR 15,4 ==> err -* Function 'emfile_allocate_old' epilogue - PDPEPIL -* Function 'emfile_allocate_old' literal pool - DS 0D - LTORG -* Function 'emfile_allocate_old' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s: enter dsn="%s"' - DC X'0' -@@LC1 EQU * - DC C'%s: exit rc=%d' - DC X'0' - END diff --git a/src/crent370/emfile/@@emashr.c b/src/crent370/emfile/@@emashr.c deleted file mode 100644 index 618a655..0000000 --- a/src/crent370/emfile/@@emashr.c +++ /dev/null @@ -1,50 +0,0 @@ -#include "emfilei.h" - -int emfile_allocate_shr(EMFILE *f) -{ - int err = 1; - unsigned count = 0; - TXT99 **txt99 = NULL; - RB99 rb99 = {0}; - - wtof("%s: enter dsn=\"%s\"", __func__, f->dsname); - - /* we want the DDNAME returned to us */ - err = __txrddn(&txt99, NULL); - if (err) goto quit; - - /* allocate this dataset */ - err = __txdsn(&txt99, f->dsname); - if (err) goto quit; - - /* DISP=SHR */ - err = __txshr(&txt99, NULL); - if (err) goto quit; - - count = arraycount(&txt99); - if (!count) goto quit; - - /* Set high order bit to mark end of list */ - count--; - txt99[count] = (TXT99*)((unsigned)txt99[count] | 0x80000000); - - /* construct the request block for dynamic allocation */ - rb99.len = sizeof(RB99); - rb99.request = S99VRBAL; - rb99.flag1 = S99NOCNV; - rb99.txtptr = txt99; - - /* SVC 99 */ - err = __svc99(&rb99); - if (err) goto quit; - - /* return DDNAME */ - emfile_set_ddn(txt99[0]->text, f->ddname); - f->flags |= EMFILE_FLAG_DYNAMIC; - -quit: - if (txt99) FreeTXT99Array(&txt99); - - wtof("%s: exit rc=%d", __func__, err); - return err; -} diff --git a/src/crent370/emfile/@@emashr.o b/src/crent370/emfile/@@emashr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emashr.s b/src/crent370/emfile/@@emashr.s deleted file mode 100644 index 49cdd4b..0000000 --- a/src/crent370/emfile/@@emashr.s +++ /dev/null @@ -1,153 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emashr.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@6 EQU * - DC C'emfile_allocate_shr' - DC X'0' - DS 0F - EJECT -* external function 'emfile_allocate_shr' prologue -* frame base=88, local stack=32, call args=16 -&FUNC SETC 'emfile_allocate_shr' -@@EMASHR PDPPRLG CINDEX=0,FRAME=136,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_allocate_shr' code - L 7,0(11) ==> f - SLR 6,6 ==> count - ST 6,128(13) ==> count - LA 4,104(,13) - LA 5,20(0,0) - LR 2,6 ==> count - LR 3,6 ==> count - MVCL 4,2 ==> count - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@6) - LR 3,7 ==> f - A 3,=F'77' - ST 3,96(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LA 2,128(,13) - ST 2,88(13) - ST 6,92(13) ==> count - LA 1,88(,13) - L 15,=V(@@TXRDDN) - BALR 14,15 - LR 4,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LA 2,128(,13) - ST 2,88(13) - ST 3,92(13) - LA 1,88(,13) - L 15,=V(@@TXDSN) - BALR 14,15 - LR 4,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LA 2,128(,13) - ST 2,88(13) - ST 15,92(13) ==> err - LA 1,88(,13) - L 15,=V(@@TXSHR) - BALR 14,15 - LR 4,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LA 2,128(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 6,15 ==> count - LTR 15,15 ==> count - BE @@L3 - BCTR 6,0 ==> count - L 4,128(13) - LR 3,6 ==> count - MH 3,=H'4' - L 2,0(3,4) - O 2,=F'-2147483648' - ST 2,0(3,4) - MVI 104(13),20 ==> .len - MVI 105(13),1 ==> .request - MVI 106(13),64 ==> .flag1 - MVC 112(4,13),128(13) ==> .txtptr - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@SVC99) - BALR 14,15 - LR 4,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - L 2,128(13) - L 2,0(2) - A 2,=F'6' - ST 2,88(13) - LR 2,7 ==> f - A 2,=F'68' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@EMSDDN) - BALR 14,15 - OC 122(2,7),=H'8' ==> .flags -@@L3 EQU * - L 2,128(13) - LTR 2,2 - BE @@L8 - LA 2,128(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@FRTX9A) - BALR 14,15 -@@L8 EQU * - MVC 88(4,13),=A(@@LC1) - MVC 92(4,13),=A(@@6) - ST 4,96(13) ==> err - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LR 15,4 ==> err -* Function 'emfile_allocate_shr' epilogue - PDPEPIL -* Function 'emfile_allocate_shr' literal pool - DS 0D - LTORG -* Function 'emfile_allocate_shr' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s: enter dsn="%s"' - DC X'0' -@@LC1 EQU * - DC C'%s: exit rc=%d' - DC X'0' - END diff --git a/src/crent370/emfile/@@emchdr.c b/src/crent370/emfile/@@emchdr.c deleted file mode 100644 index 5b23707..0000000 --- a/src/crent370/emfile/@@emchdr.c +++ /dev/null @@ -1,24 +0,0 @@ -#include "emfilei.h" - -int emfile_create_header(char *buf, __64 size) -{ - int rc = 0; - EMFILE10 *hdr = (EMFILE10 *)buf; - - // wtof("%s: enter buf=0x%08X, size=%llu", __func__, buf, size); - - // wtodumpf(hdr, sizeof(EMFILE10), "%s HDR Before", __func__); - - /* update header record */ - if (!hdr->eye[0]) strcpy(hdr->eye, EMFILEEYE10); - hdr->modified = time64(NULL); - if (__64_is_zero(&hdr->create)) { - hdr->create = hdr->modified; - } - hdr->size = size; - - // wtodumpf(hdr, sizeof(EMFILE10), "%s HDR After", __func__); - - // wtof("%s: exit rc=%d", __func__, rc); - return rc; -} diff --git a/src/crent370/emfile/@@emchdr.o b/src/crent370/emfile/@@emchdr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emchdr.s b/src/crent370/emfile/@@emchdr.s deleted file mode 100644 index cd2bc0c..0000000 --- a/src/crent370/emfile/@@emchdr.s +++ /dev/null @@ -1,80 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emchdr.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'emfile_create_header' prologue -* frame base=88, local stack=8, call args=8 -&FUNC SETC 'emfile_create_header' -@@EMCHDR PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_create_header' code - L 4,4(11) ==> size - L 5,4+4(11) ==> size - L 3,0(11) ==> hdr,buf - IC 2,0(3) ==> .eye - CLM 2,1,=XL1'00' - BNE @@L2 - ST 3,88(13) ==> hdr - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 -@@L2 EQU * - MVC 88(4,13),=F'0' - LA 0,96(,13) - LA 1,88(,13) - L 15,=V(TM64TIME) - BALR 14,15 - MVC 24(8,3),96(13) ==> .modified - LR 2,3 ==> hdr - A 2,=F'16' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64IS0) - BALR 14,15 - LTR 15,15 ==> rc - BE @@L3 - MVC 0(8,2),24(3) ==> .create,modified -@@L3 EQU * - ST 4,32(3) ==> size,size - ST 5,4+32(3) ==> size,size - SLR 15,15 -* Function 'emfile_create_header' epilogue - PDPEPIL -* Function 'emfile_create_header' literal pool - DS 0D - LTORG -* Function 'emfile_create_header' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'EMFILE MVS 1.0' - DC X'0' - END diff --git a/src/crent370/emfile/@@emclos.c b/src/crent370/emfile/@@emclos.c deleted file mode 100644 index 61e8415..0000000 --- a/src/crent370/emfile/@@emclos.c +++ /dev/null @@ -1,60 +0,0 @@ -#include "emfilei.h" - -int emfile_close(EMFILE *f) -{ - int rc = 0; - unsigned count; - unsigned n; - - // wtof("%s: enter", __func__); - - if (!f) goto quit; - if (memcmp(f->eye, EMFILE_EYE, strlen(EMFILE_EYE))!= 0) goto quit; - - if (f->growdd) { - emfile_unallocate(f->growdd); - free(f->growdd); - f->growdd = NULL; - } - - if (f->bdamdcb) { - /* flush any pending output, sync header */ - rc = emfile_sync(f); - - osdclose(f->bdamdcb, - 1); /* free dcb */ - f->bdamdcb = NULL; - } - - if (f->bdamdecb) { - free(f->bdamdecb); - f->bdamdcb = NULL; - } - - if (f->buf) { - free(f->buf); - f->buf = NULL; - } - - if (f->r0) { - free(f->r0); - f->r0 = NULL; - } - - if (f->volser) { - count = array_count(&f->volser); - for(n=count; n > 0; n--) { - char *vol = array_del(&f, n); - if (!vol) continue; - free(vol); - } - array_free(&f->volser); - } - - memset(f->eye, 0, sizeof(f->eye)); - free(f); - -quit: - // wtof("%s: exit rc=%d", __func__, rc); - return rc; -} diff --git a/src/crent370/emfile/@@emclos.o b/src/crent370/emfile/@@emclos.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emclos.s b/src/crent370/emfile/@@emclos.s deleted file mode 100644 index 42b0241..0000000 --- a/src/crent370/emfile/@@emclos.s +++ /dev/null @@ -1,186 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emclos.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'emfile_close' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'emfile_close' -@@EMCLOS PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_close' code - SLR 5,5 ==> rc - L 2,0(11) - LTR 2,2 - BE @@L3 - MVC 88(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - MVC 88(4,13),0(11) - MVC 92(4,13),=A(@@LC0) - ST 15,96(13) ==> rc - LA 1,88(,13) - L 15,=V(MEMCMP) - BALR 14,15 - LTR 15,15 ==> rc - BNE @@L3 - L 2,0(11) - L 2,132(2) ==> .growdd - LTR 2,2 - BE @@L5 - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@EMUNAL) - BALR 14,15 - L 2,0(11) - MVC 88(4,13),132(2) ==> .growdd - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - L 2,0(11) - ST 5,132(2) ==> rc,growdd -@@L5 EQU * - L 3,0(11) - L 2,52(3) ==> .bdamdcb - LTR 2,2 - BE @@L6 - ST 3,88(13) - LA 1,88(,13) - L 15,=V(@@EMSYNC) - BALR 14,15 - LR 5,15 ==> rc - L 2,0(11) - MVC 88(4,13),52(2) ==> .bdamdcb - MVC 92(4,13),=F'1' - LA 1,88(,13) - L 15,=V(OSDCLOSE) - BALR 14,15 - L 2,0(11) - MVC 52(4,2),=F'0' ==> .bdamdcb -@@L6 EQU * - L 2,0(11) - L 2,56(2) ==> .bdamdecb - LTR 2,2 - BE @@L7 - ST 2,88(13) - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - L 2,0(11) - MVC 52(4,2),=F'0' ==> .bdamdcb -@@L7 EQU * - L 2,0(11) - L 2,60(2) ==> .buf - LTR 2,2 - BE @@L8 - ST 2,88(13) - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - L 2,0(11) - MVC 60(4,2),=F'0' ==> .buf -@@L8 EQU * - L 2,0(11) - L 2,64(2) ==> .r0 - LTR 2,2 - BE @@L9 - ST 2,88(13) - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - L 2,0(11) - MVC 64(4,2),=F'0' ==> .r0 -@@L9 EQU * - L 2,0(11) - L 2,124(2) ==> .volser - LTR 2,2 - BE @@L10 - L 2,0(11) - A 2,=F'124' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 2,15 ==> n - LTR 15,15 ==> n - BE @@L19 -@@L16 EQU * - ST 11,88(13) - ST 2,92(13) ==> n - LA 1,88(,13) - L 15,=V(@@ARDEL) - BALR 14,15 - LTR 15,15 ==> vol - BE @@L13 - ST 15,88(13) ==> vol - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L13 EQU * - BCTR 2,0 ==> n - LTR 2,2 ==> n - BNE @@L16 -@@L19 EQU * - L 2,0(11) - A 2,=F'124' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARFRE) - BALR 14,15 -@@L10 EQU * - L 2,0(11) ==> s - SLR 4,4 ==> c - LA 3,8(0,0) ==> n - -*** MEMSET *** - LR 14,2 => target (s) ==> s - LR 15,3 => length (n) ==> n - SLR 0,0 => source (NULL) - LR 1,4 fill character ==> c - SLL 1,24 move fill to high byte - MVCL 14,0 Set target to fill character - ST 2,88(13) ==> s - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L3 EQU * - LR 15,5 ==> rc -* Function 'emfile_close' epilogue - PDPEPIL -* Function 'emfile_close' literal pool - DS 0D - LTORG -* Function 'emfile_close' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'*EMFILE*' - DC X'0' - END diff --git a/src/crent370/emfile/@@emcrea.c b/src/crent370/emfile/@@emcrea.c deleted file mode 100644 index 9324f55..0000000 --- a/src/crent370/emfile/@@emcrea.c +++ /dev/null @@ -1,60 +0,0 @@ -#include "emfilei.h" - -EMFILE *emfile_create(const char *dsn) -{ - int rc; - EMFILE *f = NULL; - char flag = EMFILE_FLAG_UPDATE; - char c; - - wtof("%s: enter dsn=\"%s\"", __func__, dsn); - - if (!dsn) { - wtof("%s: dsn=NULL", __func__); - errno = EINVAL; - goto failed; - } - - /* allocate a 'file' handle */ - f = calloc(1, sizeof(EMFILE)); - if (!f) { - wtof("%s: emfile handle no memory", __func__); - errno = ENOMEM; - goto quit; - } - strcpy(f->eye, EMFILE_EYE); - f->flags = flag; - - if (toupper(dsn[0])=='D' && toupper(dsn[1])=='D' && dsn[2]==':') { - /* copy the ddname into our handle */ - // wtof("%s: dsn is dd name", __func__); - emfile_set_ddn(&dsn[3], f->ddname); - } - else { - /* copy the dataset name into our handle */ - // wtof("%s: dsn is dsn", __func__); - emfile_set_dsn(dsn, f->dsname); - - /* DISP=NEW */ - rc = emfile_allocate_new(f); - // wtof("%s: emfile_allocate_new() rc=%d", __func__, rc); - if (rc) goto failed; - } - - f->flags |= flag; - - /* perform common setup of emulated 'file' */ - rc = emfile_setup(f); - // wtof("%s: emfile_setup() rc=%d", __func__, rc); - if (rc==0) goto quit; - -failed: - if (f) { - emfile_close(f); - f = NULL; - } - -quit: - wtof("%s: exit emfile=0x%08X", __func__, f); - return f; -} diff --git a/src/crent370/emfile/@@emcrea.o b/src/crent370/emfile/@@emcrea.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emcrea.s b/src/crent370/emfile/@@emcrea.s deleted file mode 100644 index 882e9b9..0000000 --- a/src/crent370/emfile/@@emcrea.s +++ /dev/null @@ -1,185 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emcrea.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@6 EQU * - DC C'emfile_create' - DC X'0' - DS 0F - EJECT -* external function 'emfile_create' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'emfile_create' -@@EMCREA PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_create' code - L 4,0(11) ==> dsn - SLR 3,3 ==> f - L 5,=F'-64' ==> flag - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@6) - ST 4,96(13) ==> dsn - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LTR 4,4 ==> dsn - BNE @@L2 - MVC 88(4,13),=A(@@LC1) - MVC 92(4,13),=A(@@6) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - MVC 0(4,15),=F'22' ==> rc - B @@L3 -@@L2 EQU * - MVC 88(4,13),=F'1' - MVC 92(4,13),=F'144' - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 3,15 ==> f - LTR 15,15 ==> f - BNE @@L4 - MVC 88(4,13),=A(@@LC2) - MVC 92(4,13),=A(@@6) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - MVC 0(4,15),=F'12' ==> rc - B @@L5 -@@L4 EQU * - ST 15,88(13) ==> f - MVC 92(4,13),=A(@@LC3) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - LR 2,5 ==> flag - N 2,=XL4'000000FF' ==> flag - STH 2,122(3) ==> flag,flags - SLR 2,2 - IC 2,0(4) ==> dsn - ST 2,88(13) - LA 1,88(,13) - L 15,=V(TOUPPER) - BALR 14,15 - LA 2,196(0,0) - CLR 15,2 ==> rc - BNE @@L6 - SLR 2,2 - IC 2,1(4) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(TOUPPER) - BALR 14,15 - LA 2,196(0,0) - CLR 15,2 ==> rc - BNE @@L6 - CLI 2(4),122 - BNE @@L6 - LR 2,4 ==> dsn - A 2,=F'3' - ST 2,88(13) - LR 2,3 ==> f - A 2,=F'68' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@EMSDDN) - BALR 14,15 - B @@L7 -@@L6 EQU * - ST 4,88(13) ==> dsn - LR 2,3 ==> f - A 2,=F'77' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@EMSDSN) - BALR 14,15 - ST 3,88(13) ==> f - LA 1,88(,13) - L 15,=V(@@EMANEW) - BALR 14,15 - LTR 15,15 ==> rc - BNE @@L3 -@@L7 EQU * - LR 2,5 ==> flag - N 2,=XL4'000000FF' ==> flag - LH 4,122(3) ==> .flags - OR 4,2 ==> flag - STH 4,122(3) ==> .flags - ST 3,88(13) ==> f - LA 1,88(,13) - L 15,=V(@@EMSETU) - BALR 14,15 - LTR 15,15 ==> rc - BE @@L5 -@@L3 EQU * - LTR 3,3 ==> f - BE @@L5 - ST 3,88(13) ==> f - LA 1,88(,13) - L 15,=V(@@EMCLOS) - BALR 14,15 - SLR 3,3 ==> f -@@L5 EQU * - MVC 88(4,13),=A(@@LC4) - MVC 92(4,13),=A(@@6) - ST 3,96(13) ==> f - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LR 15,3 ==> f -* Function 'emfile_create' epilogue - PDPEPIL -* Function 'emfile_create' literal pool - DS 0D - LTORG -* Function 'emfile_create' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s: enter dsn="%s"' - DC X'0' -@@LC1 EQU * - DC C'%s: dsn=NULL' - DC X'0' -@@LC2 EQU * - DC C'%s: emfile handle no memory' - DC X'0' -@@LC3 EQU * - DC C'*EMFILE*' - DC X'0' -@@LC4 EQU * - DC C'%s: exit emfile=0x%08X' - DC X'0' - END diff --git a/src/crent370/emfile/@@emcsiz.c b/src/crent370/emfile/@@emcsiz.c deleted file mode 100644 index 160978c..0000000 --- a/src/crent370/emfile/@@emcsiz.c +++ /dev/null @@ -1,88 +0,0 @@ -#include "emfilei.h" - -int emfile_calc_size(EMFILE *f) -{ - int rc; - DSCB dscb = {0}; - DSCB1 *dscb1 = &dscb.dscb1; - int i; - DVATAB dvatab = {0}; - unsigned count; - unsigned n; - unsigned tracks; - unsigned blocks; - - // wtof("%s: enter", __func__); - - f->tracks = 0; - f->blocks = 0; - f->blkstrk = 0; - - count = array_count(&f->volser); - for(n=1; n <= count; n++) { - char *volser = array_get(&f->volser, n); - - if (!volser) continue; - - /* get the DSCB for this dataset + volser */ - rc = __dscbdv(f->dsname, volser, &dscb); - if (rc) { - /* if we've already read the first DSCB we likely have - * an uninitialized multi volume dataset so we continue. - */ - if (n > 1) { - rc = 0; - continue; - } - - wtof("%s: Unable to read DSCB for \"%s\" volser=\"%s\" rc=%d", - __func__, f->dsname, volser, rc); - goto quit; - } - - if (!f->blksize) f->blksize = dscb1->blksz; - - if (!f->blkstrk) { - /* get the device type information for the DDNAME */ - __asm__("LR\t0,%0 Output area\n\t" - "LCR\t0,0 DEVTAB desired\n\t" - "LR\t1,%1 DD name\n\t" - "SVC\t24 DEVTYPE" - : - : "r"(&dvatab), "r"(f->ddname) ); - f->devtype = dvatab.dvaunit; - - /* get the number of blocks per track for this device type */ - f->blkstrk = trkcalc((DEVTYPE)f->devtype, 0, (int)f->blksize); - } - - /* calculate size of dataset */ - /* tracks is relative to 0 in lstar */ - tracks = (dscb1->lstar[0] << 8 | dscb1->lstar[1]); - f->tracks += tracks; - - /* calculate allocated blocks */ - blocks = dscb1->lstar[2]; - blocks += (tracks * f->blkstrk); - f->blocks += blocks; - - /* make tracks relative to 1 */ - f->tracks++; - } - - /* calculate allocated bytes for 'file' use */ - /* we check for > 1 because the first block is reserved for the header */ - if (f->blocks > 1) { - /* calc allocated bytes for file (capacity) */ - __64_from_u32(&f->alloc, f->blksize); - __64_mul_u32(&f->alloc, f->blocks-1, &f->alloc); - } - else { - /* clear the allocated bytes for file */ - __64_from_u32(&f->alloc, 0); - } - -quit: - // wtof("%s: exit rc=%d", __func__, rc); - return rc; -} diff --git a/src/crent370/emfile/@@emcsiz.o b/src/crent370/emfile/@@emcsiz.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emcsiz.s b/src/crent370/emfile/@@emcsiz.s deleted file mode 100644 index b435fbc..0000000 --- a/src/crent370/emfile/@@emcsiz.s +++ /dev/null @@ -1,201 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emcsiz.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@6 EQU * - DC C'emfile_calc_size' - DC X'0' - DS 0F - EJECT -* external function 'emfile_calc_size' prologue -* frame base=88, local stack=184, call args=24 -&FUNC SETC 'emfile_calc_size' -@@EMCSIZ PDPPRLG CINDEX=0,FRAME=296,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_calc_size' code - SLR 8,8 - SLR 9,9 - L 6,0(11) ==> f - LA 4,112(,13) - LA 5,146(0,0) - SLR 2,2 - LR 3,2 - MVCL 4,2 - LA 4,264(,13) - LA 5,24(0,0) - SLR 2,2 - LR 3,2 - MVCL 4,2 - MVC 40(4,6),=F'0' ==> .tracks - MVC 36(4,6),=F'0' ==> .blocks - MVC 44(4,6),=F'0' ==> .blkstrk - LR 2,6 ==> f - A 2,=F'124' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - ST 15,288(13) ==> count - LA 5,1(0,0) ==> n - CLR 5,15 ==> n - BH @@L16 -@@L12 EQU * - LR 2,6 ==> f - A 2,=F'124' - ST 2,88(13) - ST 5,92(13) ==> n - LA 1,88(,13) - L 15,=V(@@ARGET) - BALR 14,15 - LR 4,15 ==> volser - LTR 15,15 ==> volser - BE @@L4 - A 2,=F'-47' - ST 2,88(13) - ST 15,92(13) ==> volser - LA 2,112(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@DSCBDV) - BALR 14,15 - LR 7,15 ==> rc - LTR 15,15 ==> rc - BE @@L7 - LA 2,1(0,0) - CLR 5,2 ==> n - BNH @@L8 - SLR 7,7 ==> rc - B @@L4 -@@L8 EQU * - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@6) - LR 2,6 ==> f - A 2,=F'77' - ST 2,96(13) - ST 4,100(13) ==> volser - ST 15,104(13) ==> rc - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - B @@L9 -@@L7 EQU * - L 2,48(6) ==> .blksize - LTR 2,2 - BNE @@L10 - LH 2,154(13) ==> .blksz - N 2,=XL4'0000FFFF' - ST 2,48(6) ==> .blksize -@@L10 EQU * - L 2,44(6) ==> .blkstrk - LTR 2,2 - BNE @@L11 - LA 3,264(,13) - LR 2,6 ==> f - A 2,=F'68' - LR 0,3 Output area - LCR 0,0 DEVTAB desired - LR 1,2 DD name - SVC 24 DEVTYPE - MVC 136(1,6),267(13) ==> .devtype,dvaunit - SLR 2,2 - IC 2,136(6) ==> .devtype - ST 2,88(13) - MVC 92(4,13),=F'0' - MVC 96(4,13),48(6) ==> .blksize - LA 1,88(,13) - L 15,=V(TRKCALC) - BALR 14,15 - ST 15,44(6) ==> count,blkstrk -@@L11 EQU * - SLR 3,3 ==> tracks - IC 3,166(13) ==> tracks,lstar - SLL 3,8 ==> tracks - SLR 2,2 - IC 2,167(13) ==> .lstar - OR 3,2 ==> tracks - LR 2,3 ==> tracks - A 2,40(6) ==> .tracks - ST 2,40(6) ==> .tracks - SLR 2,2 ==> blocks - IC 2,168(13) ==> blocks,lstar - L 9,44(6) ==> .blkstrk - MR 8,3 ==> tracks - AR 2,9 ==> blocks - A 2,36(6) ==> .blocks - ST 2,36(6) ==> .blocks - L 2,40(6) ==> .tracks - A 2,=F'1' - ST 2,40(6) ==> .tracks -@@L4 EQU * - A 5,=F'1' ==> n - CL 5,288(13) ==> n,count - BNH @@L12 -@@L16 EQU * - L 2,36(6) ==> .blocks - LA 3,1(0,0) - CLR 2,3 - BNH @@L13 - LR 3,6 ==> f - A 3,=F'8' - ST 3,88(13) - MVC 92(4,13),48(6) ==> .blksize - LA 1,88(,13) - L 15,=V(@@64FU32) - BALR 14,15 - ST 3,88(13) - L 2,36(6) ==> .blocks - BCTR 2,0 - ST 2,92(13) - ST 3,96(13) - LA 1,88(,13) - L 15,=V(@@64MU32) - BALR 14,15 - B @@L9 -@@L13 EQU * - LR 2,6 ==> f - A 2,=F'8' - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@64FU32) - BALR 14,15 -@@L9 EQU * - LR 15,7 ==> rc -* Function 'emfile_calc_size' epilogue - PDPEPIL -* Function 'emfile_calc_size' literal pool - DS 0D - LTORG -* Function 'emfile_calc_size' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s: Unable to read DSCB for "%s" volser="%s" rc=' - DC C'%d' - DC X'0' - END diff --git a/src/crent370/emfile/@@emdump.c b/src/crent370/emfile/@@emdump.c deleted file mode 100644 index b2a5a99..0000000 --- a/src/crent370/emfile/@@emdump.c +++ /dev/null @@ -1,91 +0,0 @@ -#include "emfilei.h" - -void emfile_dump(EMFILE *f) -{ - unsigned flag = f->flags; - unsigned type = flag & EMFILE_FLAG_UPDATE; - unsigned count; - unsigned n; - - wtof("%s: enter", __func__); - - if (!f) goto quit; - - wtof("--------------------------------------------------"); - wtof(" emfile handle : 0x%08X", f); - wtof(" eye catcher : %.8s", f->eye); - wtof(" alloc bytes : %llu", f->alloc); - wtof(" used bytes : %llu", f->used); - wtof(" offset bytes : %llu", f->offset); - wtof(" current block : %u", f->block); - wtof(" total blocks : %u", f->blocks); - wtof(" total tracks : %u", f->tracks); - wtof("blocks per track : %u", f->blkstrk); - wtof(" block size : %u", f->blksize); - wtof(" BDAM DCB : 0x%08X", f->bdamdcb); - wtof(" BDAM DECB : 0x%08X", f->bdamdecb); - wtof(" buffer address : 0x%08X", f->buf); - wtof(" header buffer : 0x%08X", f->r0); - if (f->r0) { - EMFILE10 *hdr = (EMFILE10 *)f->r0; - - wtof(" : eye catcher %s", hdr->eye); - wtof(" : created %s", ctime64(&hdr->create)); - wtof(" : modified %s", ctime64(&hdr->modified)); - wtof(" : file size %llu", hdr->size); - } - wtof(" ddname : %s", f->ddname); - wtof(" dsname : %s", f->dsname); - wtof(" flags : 0x%04X", f->flags); - if (flag & EMFILE_FLAG_MULTIV) { - wtof(" : MULTIV (multiple volumes)"); - } - if (flag & EMFILE_FLAG_FULL) { - wtof(" : FULL (full initialization)"); - } - if (flag & EMFILE_FLAG_GROW) { - wtof(" : GROW (grow dataset possible)"); - } - - if (type == EMFILE_FLAG_UPDATE) { - wtof(" : UPDATE (READ + WRITE)"); - } - else if (type == EMFILE_FLAG_READ) { - wtof(" : READ ONLY"); - } - else if (type == EMFILE_FLAG_WRITE) { - wtof(" : WRITE ONLY"); - } - - if (flag & EMFILE_FLAG_APPEND) { - wtof(" : APPEND (seek to EOF at open)"); - } - if (flag & EMFILE_FLAG_CREATE) { - wtof(" : CREATE (create if not exist)"); - } - if (flag & EMFILE_FLAG_DYNAMIC) { - wtof(" : DYNAMIC (allocated via SVC 99)"); - } - if (flag & EMFILE_FLAG_NEW) { - wtof(" : NEW (dataset was created)"); - } - if (flag & EMFILE_FLAG_EOF) { - wtof(" : EOF (end of file)"); - } - if (flag & EMFILE_FLAG_DIRTY) { - wtof(" : DIRTY (buffer has unwritten data)"); - } - count = array_count(&f->volser); - wtof(" volumes : %u", count); - for(n=1; n <= count; n++) { - char *vol = array_get(&f->volser, n); - wtof(" : %s", vol); - } - wtof(" last error : %d", f->error); - wtof(" grow ddname : %s", f->growdd); - wtof(" devtype : 0x%02X", f->devtype); - wtof("--------------------------------------------------"); - -quit: - wtof("%s: exit", __func__); -} diff --git a/src/crent370/emfile/@@emdump.o b/src/crent370/emfile/@@emdump.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emdump.s b/src/crent370/emfile/@@emdump.s deleted file mode 100644 index 8ad0b1d..0000000 --- a/src/crent370/emfile/@@emdump.s +++ /dev/null @@ -1,478 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emdump.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@6 EQU * - DC C'emfile_dump' - DC X'0' - DS 0F - EJECT -* external function 'emfile_dump' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'emfile_dump' -@@EMDUMP PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_dump' code - L 5,0(11) ==> f - LH 4,122(5) ==> .flags - N 4,=XL4'0000FFFF' - LR 6,4 ==> type,flag - N 6,=F'192' ==> type - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@6) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LTR 5,5 ==> f - BE @@L3 - MVC 88(4,13),=A(@@LC1) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC2) - ST 5,92(13) ==> f - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC3) - ST 5,92(13) ==> f - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC4) - MVC 92(8,13),8(5) ==> .alloc - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC5) - MVC 92(8,13),16(5) ==> .used - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC6) - MVC 92(8,13),24(5) ==> .offset - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC7) - MVC 92(4,13),32(5) ==> .block - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC8) - MVC 92(4,13),36(5) ==> .blocks - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC9) - MVC 92(4,13),40(5) ==> .tracks - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC10) - MVC 92(4,13),44(5) ==> .blkstrk - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC11) - MVC 92(4,13),48(5) ==> .blksize - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC12) - MVC 92(4,13),52(5) ==> .bdamdcb - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC13) - MVC 92(4,13),56(5) ==> .bdamdecb - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC14) - MVC 92(4,13),60(5) ==> .buf - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC15) - MVC 92(4,13),64(5) ==> .r0 - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - L 3,64(5) ==> .r0 - LTR 3,3 - BE @@L4 - MVC 88(4,13),=A(@@LC16) - ST 3,92(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LR 2,3 - A 2,=F'16' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(TM64CTI) - BALR 14,15 - MVC 88(4,13),=A(@@LC17) - ST 15,92(13) ==> count - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - A 2,=F'8' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(TM64CTI) - BALR 14,15 - MVC 88(4,13),=A(@@LC18) - ST 15,92(13) ==> count - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC19) - MVC 92(8,13),32(3) ==> .size - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L4 EQU * - MVC 88(4,13),=A(@@LC20) - LR 2,5 ==> f - A 2,=F'68' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC21) - A 2,=F'9' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC22) - LH 2,122(5) ==> .flags - N 2,=XL4'0000FFFF' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LR 2,4 ==> flag - N 2,=F'32768' - LTR 2,2 - BE @@L5 - MVC 88(4,13),=A(@@LC23) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L5 EQU * - LR 2,4 ==> flag - N 2,=F'8192' - LTR 2,2 - BE @@L6 - MVC 88(4,13),=A(@@LC24) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L6 EQU * - LR 2,4 ==> flag - N 2,=F'16384' - LTR 2,2 - BE @@L7 - MVC 88(4,13),=A(@@LC25) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L7 EQU * - LA 2,192(0,0) - CLR 6,2 ==> type - BNE @@L8 - MVC 88(4,13),=A(@@LC26) - B @@L26 -@@L8 EQU * - LA 2,128(0,0) - CLR 6,2 ==> type - BNE @@L10 - MVC 88(4,13),=A(@@LC27) - B @@L26 -@@L10 EQU * - LA 2,64(0,0) - CLR 6,2 ==> type - BNE @@L9 - MVC 88(4,13),=A(@@LC28) -@@L26 EQU * - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L9 EQU * - LR 2,4 ==> flag - N 2,=F'32' - LTR 2,2 - BE @@L13 - MVC 88(4,13),=A(@@LC29) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L13 EQU * - LR 2,4 ==> flag - N 2,=F'16' - LTR 2,2 - BE @@L14 - MVC 88(4,13),=A(@@LC30) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L14 EQU * - LR 2,4 ==> flag - N 2,=F'8' - LTR 2,2 - BE @@L15 - MVC 88(4,13),=A(@@LC31) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L15 EQU * - LR 2,4 ==> flag - N 2,=F'4' - LTR 2,2 - BE @@L16 - MVC 88(4,13),=A(@@LC32) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L16 EQU * - LR 2,4 ==> flag - N 2,=F'2' - LTR 2,2 - BE @@L17 - MVC 88(4,13),=A(@@LC33) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L17 EQU * - LR 2,4 ==> flag - N 2,=F'1' - LTR 2,2 - BE @@L18 - MVC 88(4,13),=A(@@LC34) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L18 EQU * - LR 2,5 ==> f - A 2,=F'124' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 3,15 ==> count - MVC 88(4,13),=A(@@LC35) - ST 15,92(13) ==> count - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LA 2,1(0,0) ==> n - CLR 2,3 ==> n,count - BH @@L25 - LR 4,5 ==> f - A 4,=F'124' -@@L23 EQU * - ST 4,88(13) - ST 2,92(13) ==> n - LA 1,88(,13) - L 15,=V(@@ARGET) - BALR 14,15 - MVC 88(4,13),=A(@@LC36) - ST 15,92(13) ==> vol - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - A 2,=F'1' ==> n - CLR 2,3 ==> n,count - BNH @@L23 -@@L25 EQU * - MVC 88(4,13),=A(@@LC37) - MVC 92(4,13),128(5) ==> .error - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC38) - MVC 92(4,13),132(5) ==> .growdd - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC39) - SLR 2,2 - IC 2,136(5) ==> .devtype - ST 2,92(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=A(@@LC1) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L3 EQU * - MVC 88(4,13),=A(@@LC40) - MVC 92(4,13),=A(@@6) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -* Function 'emfile_dump' epilogue - PDPEPIL -* Function 'emfile_dump' literal pool - DS 0D - LTORG -* Function 'emfile_dump' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s: enter' - DC X'0' -@@LC1 EQU * - DC C'------------------------------------------------' - DC C'--' - DC X'0' -@@LC2 EQU * - DC C' emfile handle : 0x%08X' - DC X'0' -@@LC3 EQU * - DC C' eye catcher : %.8s' - DC X'0' -@@LC4 EQU * - DC C' alloc bytes : %llu' - DC X'0' -@@LC5 EQU * - DC C' used bytes : %llu' - DC X'0' -@@LC6 EQU * - DC C' offset bytes : %llu' - DC X'0' -@@LC7 EQU * - DC C' current block : %u' - DC X'0' -@@LC8 EQU * - DC C' total blocks : %u' - DC X'0' -@@LC9 EQU * - DC C' total tracks : %u' - DC X'0' -@@LC10 EQU * - DC C'blocks per track : %u' - DC X'0' -@@LC11 EQU * - DC C' block size : %u' - DC X'0' -@@LC12 EQU * - DC C' BDAM DCB : 0x%08X' - DC X'0' -@@LC13 EQU * - DC C' BDAM DECB : 0x%08X' - DC X'0' -@@LC14 EQU * - DC C' buffer address : 0x%08X' - DC X'0' -@@LC15 EQU * - DC C' header buffer : 0x%08X' - DC X'0' -@@LC16 EQU * - DC C' : eye catcher %s' - DC X'0' -@@LC17 EQU * - DC C' : created %s' - DC X'0' -@@LC18 EQU * - DC C' : modified %s' - DC X'0' -@@LC19 EQU * - DC C' : file size %llu' - DC X'0' -@@LC20 EQU * - DC C' ddname : %s' - DC X'0' -@@LC21 EQU * - DC C' dsname : %s' - DC X'0' -@@LC22 EQU * - DC C' flags : 0x%04X' - DC X'0' -@@LC23 EQU * - DC C' : MULTIV (multiple volumes)' - DC X'0' -@@LC24 EQU * - DC C' : FULL (full initialization)' - DC X'0' -@@LC25 EQU * - DC C' : GROW (grow dataset possibl' - DC C'e)' - DC X'0' -@@LC26 EQU * - DC C' : UPDATE (READ + WRITE)' - DC X'0' -@@LC27 EQU * - DC C' : READ ONLY' - DC X'0' -@@LC28 EQU * - DC C' : WRITE ONLY' - DC X'0' -@@LC29 EQU * - DC C' : APPEND (seek to EOF at open)' - DC X'0' -@@LC30 EQU * - DC C' : CREATE (create if not exist)' - DC X'0' -@@LC31 EQU * - DC C' : DYNAMIC (allocated via SVC 99' - DC C')' - DC X'0' -@@LC32 EQU * - DC C' : NEW (dataset was created)' - DC X'0' -@@LC33 EQU * - DC C' : EOF (end of file)' - DC X'0' -@@LC34 EQU * - DC C' : DIRTY (buffer has unwritten' - DC C' data)' - DC X'0' -@@LC35 EQU * - DC C' volumes : %u' - DC X'0' -@@LC36 EQU * - DC C' : %s' - DC X'0' -@@LC37 EQU * - DC C' last error : %d' - DC X'0' -@@LC38 EQU * - DC C' grow ddname : %s' - DC X'0' -@@LC39 EQU * - DC C' devtype : 0x%02X' - DC X'0' -@@LC40 EQU * - DC C'%s: exit' - DC X'0' - END diff --git a/src/crent370/emfile/@@emflus.c b/src/crent370/emfile/@@emflus.c deleted file mode 100644 index f092255..0000000 --- a/src/crent370/emfile/@@emflus.c +++ /dev/null @@ -1,21 +0,0 @@ -#include "emfilei.h" - -int emfile_flush(EMFILE *f) -{ - int rc = 0; - - // wtof("%s: enter", __func__); - - /* make sure we can write to this dataset */ - if (!(f->flags & EMFILE_FLAG_WRITE)) goto quit; - - /* flush any pending output to disk */ - if (f->flags & EMFILE_FLAG_DIRTY) { - rc = emfile_write_block(f, f->block, f->buf); - if (rc) goto quit; - } - -quit: - // wtof("%s: exit rc=%d", __func__, rc); - return rc; -} diff --git a/src/crent370/emfile/@@emflus.o b/src/crent370/emfile/@@emflus.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emflus.s b/src/crent370/emfile/@@emflus.s deleted file mode 100644 index 4acba08..0000000 --- a/src/crent370/emfile/@@emflus.s +++ /dev/null @@ -1,64 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emflus.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'emfile_flush' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'emfile_flush' -@@EMFLUS PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_flush' code - L 4,0(11) ==> f - SLR 15,15 ==> rc - LH 3,122(4) ==> .flags - LR 2,3 - N 2,=F'64' - CH 2,=H'0' - BE @@L3 - LR 2,3 - N 2,=F'1' - CH 2,=H'0' - BE @@L3 - ST 4,88(13) ==> f - MVC 92(4,13),32(4) ==> .block - MVC 96(4,13),60(4) ==> .buf - LA 1,88(,13) - L 15,=V(@@EMWBLK) - BALR 14,15 -@@L3 EQU * -* Function 'emfile_flush' epilogue - PDPEPIL -* Function 'emfile_flush' literal pool - DS 0D - LTORG -* Function 'emfile_flush' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/emfile/@@emfull.c b/src/crent370/emfile/@@emfull.c deleted file mode 100644 index 784665d..0000000 --- a/src/crent370/emfile/@@emfull.c +++ /dev/null @@ -1,119 +0,0 @@ -#include "emfilei.h" - -int emfile_full_init(const char *ddname, unsigned blksize, JFCB *jfcb) -{ - int rc = 1; - unsigned block = 0; - unsigned blocks = 0; - unsigned tracks = 0; - unsigned blkstrk = 0; - unsigned pri = 0; - unsigned sec = 0; - char *buf = NULL; - DCB *dcb = NULL; - DVATAB dvatab = {0}; - DECB decb = {0}; - __64 zero; - - wtof("%s: enter", __func__); - - /* calculate the number of blocks to initialize */ - - /* get the device type information for the DDNAME */ - __asm__("LR\t0,%0 Output area\n\t" - "LCR\t0,0 DEVTAB desired\n\t" - "LR\t1,%1 DD name\n\t" - "SVC\t24 DEVTYPE" - : - : "r"(&dvatab), "r"(ddname) ); - - /* get the number of blocks per track for this device type */ - blkstrk = trkcalc((DEVTYPE)dvatab.dvaunit, 0, blksize); - wtof("%s: blocks per track=%u", __func__, blkstrk); - - /* get the primary and secondary allocation size */ - pri = (jfcb->jfcbpqty[0] << 16 | jfcb->jfcbpqty[1] << 8 | jfcb->jfcbpqty[2]); - sec = (jfcb->jfcbsqty[0] << 16 | jfcb->jfcbsqty[1] << 8 | jfcb->jfcbsqty[2]); - wtof("%s: pri=%u sec=%u", __func__, pri, sec); - - if ((jfcb->jfcbctri & JFCBCYL) == JFCBCYL) { - pri *= 15; - sec *= 15; - wtof("%s: CYL adjusted pri=%u sec=%u", __func__, pri, sec); - } - - /* first volume tracks */ - tracks = pri + (sec * 15); - wtof("%s: first volume tracks=%u", __func__, tracks); - - if (jfcb->jfcbnvol > 1) { - tracks += (sec * 16) * (jfcb->jfcbnvol - 1); - wtof("%s: plus additional volumes tracks=%u", __func__, tracks); - } - - blocks = blkstrk * tracks; - wtof("%s: total blocks=%u", __func__, blocks); - - buf = calloc(1, blksize); - if (!buf) { - wtof("%s: calloc() failed for %u bytes", __func__, blksize); - errno = ENOMEM; - goto quit; - } - - dcb = osbdcb(ddname, NULL); - if (!dcb) { - wtof("%s: osbdcb(\"%s\", NULL) failed", __func__, ddname); - errno = ENOMEM; - goto quit; - } - - /* set block size in DCB */ - dcb->dcbrecfm = DCBRECF; - dcb->dcbblksi = (unsigned short)blksize; - dcb->dcblrecl = (unsigned short)blksize; - - /* open BSAM dataset in "load" mode */ - rc = osbopen(dcb, 0, "load"); - if (rc) { - wtof("%s: osbopen() failed with rc=%d", __func__, rc); - goto quit; - } - - wtodumpf(dcb, sizeof(DCB), "%s: DCB", __func__); - - /* format a header record in our buf */ - __64_from_u32(&zero, 0); - rc = emfile_create_header(buf, zero); - if (rc) goto quit; - - wtof("%s: initializing %u blocks", __func__, blocks); - - /* we are going to write a header and then empty blocks to all extents and volumes */ - /* rc=4 is end of track, rc=8 is end of extent, rc=12 is write error, no more tracks (SB37) */ - for(block=0; rc < 12 && block < blocks; block++) { - rc = oswrite(&decb, dcb, buf, blksize); - - /* check for real write errors */ - if (rc > 8) { - wtof("%s: oswrite() returned rc=%d for block %d", __func__, rc, block); - goto quit; - } - - /* we have to CHECK to make sure the write completed okay */ - oscheck(&decb); - - if (block==0) { - memset(buf, 0, blksize); - } - } - - wtof("%s: initialized %u blocks", __func__, block); - rc = 0; - -quit: - if (dcb) osbclose(dcb, NULL, 1, 0); - if (buf) free(buf); - wtof("%s: exit rc=%d", __func__, rc); - return rc; -} diff --git a/src/crent370/emfile/@@emfull.o b/src/crent370/emfile/@@emfull.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emfull.s b/src/crent370/emfile/@@emfull.s deleted file mode 100644 index aba5180..0000000 --- a/src/crent370/emfile/@@emfull.s +++ /dev/null @@ -1,397 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emfull.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@6 EQU * - DC C'emfile_full_init' - DC X'0' - DS 0F - EJECT -* external function 'emfile_full_init' prologue -* frame base=88, local stack=80, call args=16 -&FUNC SETC 'emfile_full_init' -@@EMFULL PDPPRLG CINDEX=0,FRAME=184,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_full_init' code - SLR 2,2 - SLR 3,3 - ST 2,176(13) - ST 3,4+176(13) - LR 8,2 ==> tracks - LR 9,3 ==> tracks - L 6,8(11) ==> jfcb - MVC 168(4,13),=F'1' ==> rc - SLR 7,7 ==> buf - ST 7,172(13) ==> buf,dcb - LA 4,104(,13) - LA 5,24(0,0) - LR 2,7 ==> buf - LR 3,7 ==> buf - MVCL 4,2 ==> buf - LA 4,128(,13) - LA 5,32(0,0) - LR 2,7 ==> buf - LR 3,7 ==> buf - MVCL 4,2 ==> buf - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@6) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LA 2,104(,13) - L 3,0(11) ==> ddname - LR 0,2 Output area - LCR 0,0 DEVTAB desired - LR 1,3 DD name - SVC 24 DEVTYPE - SLR 2,2 - IC 2,107(13) ==> .dvaunit - ST 2,88(13) - MVC 92(4,13),=F'0' - MVC 96(4,13),4(11) ==> blksize - LA 1,88(,13) - L 15,=V(TRKCALC) - BALR 14,15 - LR 5,15 ==> blkstrk - MVC 88(4,13),=A(@@LC1) - MVC 92(4,13),=A(@@6) - ST 15,96(13) ==> blkstrk - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - SLR 4,4 ==> pri - IC 4,152(6) ==> pri,jfcbpqty - SLL 4,16 ==> pri - SLR 2,2 - IC 2,153(6) ==> .jfcbpqty - SLL 2,8 - OR 4,2 ==> pri - SLR 2,2 - IC 2,154(6) ==> .jfcbpqty - OR 4,2 ==> pri - SLR 3,3 ==> sec - IC 3,156(6) ==> sec,jfcbsqty - SLL 3,16 ==> sec - SLR 2,2 - IC 2,157(6) ==> .jfcbsqty - SLL 2,8 - OR 3,2 ==> sec - SLR 2,2 - IC 2,158(6) ==> .jfcbsqty - OR 3,2 ==> sec - MVC 88(4,13),=A(@@LC2) - MVC 92(4,13),=A(@@6) - ST 4,96(13) ==> pri - ST 3,100(13) ==> sec - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - IC 2,155(6) ==> .jfcbctri - N 2,=F'-64' - CLM 2,1,=XL1'C0' - BNE @@L2 - LR 2,4 ==> pri - SLL 2,4 - SR 2,4 ==> pri - LR 4,2 ==> pri - LR 2,3 ==> sec - SLL 2,4 - SR 2,3 ==> sec - LR 3,2 ==> sec - MVC 88(4,13),=A(@@LC3) - MVC 92(4,13),=A(@@6) - ST 4,96(13) ==> pri - ST 2,100(13) ==> sec - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L2 EQU * - LR 2,3 ==> sec - SLL 2,4 - SR 2,3 ==> sec - AR 4,2 ==> tracks - MVC 88(4,13),=A(@@LC4) - MVC 92(4,13),=A(@@6) - ST 4,96(13) ==> tracks - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - CLI 117(6),1 ==> .jfcbnvol - BNH @@L3 - SLR 2,2 - IC 2,117(6) ==> .jfcbnvol - BCTR 2,0 - ST 2,180(13) - L 6,176(13) - L 7,4+176(13) - MR 6,3 ==> sec - ST 6,176(13) - ST 7,4+176(13) - L 2,180(13) - SLL 2,4 - AR 4,2 ==> tracks - MVC 88(4,13),=A(@@LC5) - MVC 92(4,13),=A(@@6) - ST 4,96(13) ==> tracks - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L3 EQU * - LR 9,4 ==> tracks - MR 8,5 ==> tracks,blkstrk - LR 4,9 ==> blocks,tracks - MVC 88(4,13),=A(@@LC6) - MVC 92(4,13),=A(@@6) - ST 9,96(13) ==> tracks - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=F'1' - MVC 92(4,13),4(11) ==> blksize - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 7,15 ==> buf - LTR 15,15 ==> buf - BNE @@L4 - MVC 88(4,13),=A(@@LC7) - MVC 92(4,13),=A(@@6) - MVC 96(4,13),4(11) ==> blksize - B @@L23 -@@L4 EQU * - MVC 88(4,13),0(11) ==> ddname - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(OSBDCB) - BALR 14,15 - ST 15,172(13) ==> dcb - LTR 15,15 - BNE @@L6 - MVC 88(4,13),=A(@@LC8) - MVC 92(4,13),=A(@@6) - MVC 96(4,13),0(11) ==> ddname -@@L23 EQU * - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - MVC 0(4,15),=F'12' ==> blkstrk - B @@L5 -@@L6 EQU * - L 2,172(13) ==> dcb - MVI 36(2),128 ==> .dcbrecfm - L 2,4(11) ==> blksize - SLL 2,16 ==> blksize - SRA 2,16 ==> blksize - L 3,172(13) ==> dcb - STH 2,62(3) ==> blksize,dcbblksi - STH 2,82(3) ==> blksize,dcblrecl - MVC 88(4,13),172(13) ==> dcb - MVC 92(4,13),=F'0' - MVC 96(4,13),=A(@@LC9) - LA 1,88(,13) - L 15,=V(OSBOPEN) - BALR 14,15 - ST 15,168(13) ==> rc - LTR 15,15 - BE @@L7 - MVC 88(4,13),=A(@@LC10) - MVC 92(4,13),=A(@@6) - ST 15,96(13) - B @@L22 -@@L21 EQU * - MVC 88(4,13),=A(@@LC13) - MVC 92(4,13),=A(@@6) - MVC 96(4,13),168(13) ==> rc - ST 3,100(13) ==> block -@@L22 EQU * - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - B @@L5 -@@L7 EQU * - MVC 88(4,13),172(13) ==> dcb - MVC 92(4,13),=F'104' - MVC 96(4,13),=A(@@LC11) - MVC 100(4,13),=A(@@6) - LA 1,88(,13) - L 15,=V(WTODUMPF) - BALR 14,15 - LA 2,160(,13) - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@64FU32) - BALR 14,15 - ST 7,88(13) ==> buf - MVC 92(8,13),160(13) - LA 1,88(,13) - L 15,=V(@@EMCHDR) - BALR 14,15 - ST 15,168(13) ==> rc - LTR 15,15 - BNE @@L5 - MVC 88(4,13),=A(@@LC12) - MVC 92(4,13),=A(@@6) - ST 9,96(13) ==> blocks - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - L 3,168(13) ==> block,rc - CLR 3,9 ==> block,blocks - BNL @@L10 -@@L17 EQU * - LA 2,128(,13) - ST 2,88(13) - MVC 92(4,13),172(13) ==> dcb - ST 7,96(13) ==> buf - MVC 100(4,13),4(11) ==> blksize - LA 1,88(,13) - L 15,=V(OSWRITE) - BALR 14,15 - ST 15,168(13) ==> rc - LA 5,8(0,0) - CR 15,5 - BH @@L21 - LA 2,128(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(OSCHECK) - BALR 14,15 - LTR 3,3 ==> block - BNE @@L11 - L 6,4(11) ==> blksize - -*** MEMSET *** - LR 14,7 => target (s) ==> buf - LR 15,6 => length (n) - SLR 0,0 => source (NULL) - LR 1,3 fill character ==> block - SLL 1,24 move fill to high byte - MVCL 14,0 Set target to fill character -@@L11 EQU * - A 3,=F'1' ==> block - L 5,168(13) ==> rc - LA 2,11(0,0) - CR 5,2 - BH @@L10 - CLR 3,4 ==> block,blocks - BL @@L17 -@@L10 EQU * - MVC 88(4,13),=A(@@LC14) - MVC 92(4,13),=A(@@6) - ST 3,96(13) ==> block - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 168(4,13),=F'0' ==> rc -@@L5 EQU * - L 6,172(13) ==> dcb - LTR 6,6 - BE @@L18 - ST 6,88(13) - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'1' - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(OSBCLOSE) - BALR 14,15 -@@L18 EQU * - LTR 7,7 ==> buf - BE @@L19 - ST 7,88(13) ==> buf - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L19 EQU * - MVC 88(4,13),=A(@@LC15) - MVC 92(4,13),=A(@@6) - MVC 96(4,13),168(13) ==> rc - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - L 15,168(13) ==> rc -* Function 'emfile_full_init' epilogue - PDPEPIL -* Function 'emfile_full_init' literal pool - DS 0D - LTORG -* Function 'emfile_full_init' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s: enter' - DC X'0' -@@LC1 EQU * - DC C'%s: blocks per track=%u' - DC X'0' -@@LC2 EQU * - DC C'%s: pri=%u sec=%u' - DC X'0' -@@LC3 EQU * - DC C'%s: CYL adjusted pri=%u sec=%u' - DC X'0' -@@LC4 EQU * - DC C'%s: first volume tracks=%u' - DC X'0' -@@LC5 EQU * - DC C'%s: plus additional volumes tracks=%u' - DC X'0' -@@LC6 EQU * - DC C'%s: total blocks=%u' - DC X'0' -@@LC7 EQU * - DC C'%s: calloc() failed for %u bytes' - DC X'0' -@@LC8 EQU * - DC C'%s: osbdcb("%s", NULL) failed' - DC X'0' -@@LC9 EQU * - DC C'load' - DC X'0' -@@LC10 EQU * - DC C'%s: osbopen() failed with rc=%d' - DC X'0' -@@LC13 EQU * - DC C'%s: oswrite() returned rc=%d for block %d' - DC X'0' -@@LC11 EQU * - DC C'%s: DCB' - DC X'0' -@@LC12 EQU * - DC C'%s: initializing %u blocks' - DC X'0' -@@LC14 EQU * - DC C'%s: initialized %u blocks' - DC X'0' -@@LC15 EQU * - DC C'%s: exit rc=%d' - DC X'0' - END diff --git a/src/crent370/emfile/@@emgerr.c b/src/crent370/emfile/@@emgerr.c deleted file mode 100644 index 69b2c79..0000000 --- a/src/crent370/emfile/@@emgerr.c +++ /dev/null @@ -1,16 +0,0 @@ -#include "emfilei.h" - -int emfile_get_error(EMFILE *f) -{ - int last_error = 0; - - wtof("%s: enter", __func__); - - if (f) { - last_error = f->error; - f->error = 0; - } - - wtof("%s: exit error=%d", __func__, last_error); - return last_error; -} diff --git a/src/crent370/emfile/@@emgerr.o b/src/crent370/emfile/@@emgerr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emgerr.s b/src/crent370/emfile/@@emgerr.s deleted file mode 100644 index 16f7f04..0000000 --- a/src/crent370/emfile/@@emgerr.s +++ /dev/null @@ -1,74 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emgerr.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@6 EQU * - DC C'emfile_get_error' - DC X'0' - DS 0F - EJECT -* external function 'emfile_get_error' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'emfile_get_error' -@@EMGERR PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_get_error' code - L 2,0(11) ==> f - SLR 3,3 ==> last_error - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@6) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LTR 2,2 ==> f - BE @@L2 - L 3,128(2) ==> last_error,error - MVC 128(4,2),=F'0' ==> .error -@@L2 EQU * - MVC 88(4,13),=A(@@LC1) - MVC 92(4,13),=A(@@6) - ST 3,96(13) ==> last_error - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LR 15,3 ==> last_error -* Function 'emfile_get_error' epilogue - PDPEPIL -* Function 'emfile_get_error' literal pool - DS 0D - LTORG -* Function 'emfile_get_error' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s: enter' - DC X'0' -@@LC1 EQU * - DC C'%s: exit error=%d' - DC X'0' - END diff --git a/src/crent370/emfile/@@emgetc.c b/src/crent370/emfile/@@emgetc.c deleted file mode 100644 index b749cf4..0000000 --- a/src/crent370/emfile/@@emgetc.c +++ /dev/null @@ -1,23 +0,0 @@ -#include "emfilei.h" - -int emfile_getc(EMFILE *f) -{ - int rc; - char buf[4] = {0}; - - // wtof("%s: enter", __func__); - - rc = emfile_read_bytes(f, buf, 1, NULL); - // wtodumpf(buf, sizeof(buf), "%s: buf rc=%d", __func__, rc); - if (rc==1) { - /* success is we read 1 byte */ - rc = buf[0]; - } - else { - /* otherwise error */ - rc = EOF; - } - - // wtof("%s: exit rc=%d", __func__, rc); - return rc; -} diff --git a/src/crent370/emfile/@@emgetc.o b/src/crent370/emfile/@@emgetc.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emgetc.s b/src/crent370/emfile/@@emgetc.s deleted file mode 100644 index de273e9..0000000 --- a/src/crent370/emfile/@@emgetc.s +++ /dev/null @@ -1,65 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emgetc.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'emfile_getc' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'emfile_getc' -@@EMGETC PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_getc' code - SLR 3,3 - ST 3,104(13) - MVC 88(4,13),0(11) ==> f - LA 2,104(,13) - ST 2,92(13) - MVC 96(4,13),=F'1' - ST 3,100(13) - LA 1,88(,13) - L 15,=V(@@EMRBYT) - BALR 14,15 - LA 2,1(0,0) - CLR 15,2 ==> rc - BNE @@L2 - SLR 15,15 ==> rc - IC 15,104(13) ==> rc - B @@L3 -@@L2 EQU * - L 15,=F'-1' ==> rc -@@L3 EQU * -* Function 'emfile_getc' epilogue - PDPEPIL -* Function 'emfile_getc' literal pool - DS 0D - LTORG -* Function 'emfile_getc' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/emfile/@@emgets.c b/src/crent370/emfile/@@emgets.c deleted file mode 100644 index eff414b..0000000 --- a/src/crent370/emfile/@@emgets.c +++ /dev/null @@ -1,32 +0,0 @@ -#include "emfilei.h" - -char *emfile_gets(char *str, int size, EMFILE *f) -{ - int rc; - - // wtof("%s: enter", __func__); - - if (!str) goto quit; - - /* the size of the str needs to be at least 2 bytes */ - if (size <= 1) { - *str = 0; - str = NULL; - goto quit; - } - - rc = emfile_read_bytes(f, str, size-1, "\n"); - str[size-1] = 0; - - if (rc <= 0) str = NULL; - -#if 0 /* debug stuff */ - if (str) { - wtodumpf(str, strlen(str), "%s: str", __func__); - } -#endif - -quit: - // wtof("%s: exit str=0x%08X", __func__, str); - return str; -} diff --git a/src/crent370/emfile/@@emgets.o b/src/crent370/emfile/@@emgets.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emgets.s b/src/crent370/emfile/@@emgets.s deleted file mode 100644 index 9f1b335..0000000 --- a/src/crent370/emfile/@@emgets.s +++ /dev/null @@ -1,78 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emgets.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'emfile_gets' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'emfile_gets' -@@EMGETS PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_gets' code - L 3,0(11) ==> str - L 4,4(11) ==> size - LTR 3,3 ==> str - BE @@L3 - LA 2,1(0,0) - CR 4,2 ==> size - BH @@L4 - MVI 0(3),0 ==> str - B @@L6 -@@L4 EQU * - MVC 88(4,13),8(11) ==> f - ST 3,92(13) ==> str - LR 2,4 ==> size - BCTR 2,0 - ST 2,96(13) - MVC 100(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(@@EMRBYT) - BALR 14,15 - LR 2,3 ==> str - AR 2,4 ==> size - BCTR 2,0 - MVI 0(2),0 - LTR 15,15 ==> rc - BH @@L3 -@@L6 EQU * - SLR 3,3 ==> str -@@L3 EQU * - LR 15,3 ==> str -* Function 'emfile_gets' epilogue - PDPEPIL -* Function 'emfile_gets' literal pool - DS 0D - LTORG -* Function 'emfile_gets' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC X'15' - DC X'0' - END diff --git a/src/crent370/emfile/@@emgpos.c b/src/crent370/emfile/@@emgpos.c deleted file mode 100644 index 5862f64..0000000 --- a/src/crent370/emfile/@@emgpos.c +++ /dev/null @@ -1,20 +0,0 @@ -#include "emfilei.h" - -int emfile_getpos(EMFILE *f, __64 *pos) -{ - int rc = EBADF; - - wtof("%s: enter", __func__); - - if (!f) goto quit; - if (!pos) goto quit; - - *pos = f->offset; - rc = 0; - -quit: - if (rc) errno = rc; - - wtof("%s: exit rc=%d", __func__, rc); - return rc; -} diff --git a/src/crent370/emfile/@@emgpos.o b/src/crent370/emfile/@@emgpos.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emgpos.s b/src/crent370/emfile/@@emgpos.s deleted file mode 100644 index 412ba8c..0000000 --- a/src/crent370/emfile/@@emgpos.s +++ /dev/null @@ -1,84 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emgpos.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@6 EQU * - DC C'emfile_getpos' - DC X'0' - DS 0F - EJECT -* external function 'emfile_getpos' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'emfile_getpos' -@@EMGPOS PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_getpos' code - L 4,0(11) ==> f - L 3,4(11) ==> pos - LA 2,9(0,0) ==> rc - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@6) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LTR 4,4 ==> f - BE @@L3 - LTR 3,3 ==> pos - BE @@L3 - MVC 0(8,3),24(4) ==> pos,offset - SLR 2,2 ==> rc -@@L3 EQU * - LTR 2,2 ==> rc - BE @@L5 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - ST 2,0(15) ==> rc -@@L5 EQU * - MVC 88(4,13),=A(@@LC1) - MVC 92(4,13),=A(@@6) - ST 2,96(13) ==> rc - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LR 15,2 ==> rc -* Function 'emfile_getpos' epilogue - PDPEPIL -* Function 'emfile_getpos' literal pool - DS 0D - LTORG -* Function 'emfile_getpos' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s: enter' - DC X'0' -@@LC1 EQU * - DC C'%s: exit rc=%d' - DC X'0' - END diff --git a/src/crent370/emfile/@@emgrow.c b/src/crent370/emfile/@@emgrow.c deleted file mode 100644 index b1c1caa..0000000 --- a/src/crent370/emfile/@@emgrow.c +++ /dev/null @@ -1,144 +0,0 @@ -#include "emfilei.h" - -/* attempt to grow our dataset to accomodate the requested - * number of bytes. - */ -int emfile_grow(EMFILE *f, unsigned bytes) -{ - int rc = 0; - unsigned asize = f->blksize - 1; - unsigned blocks = ((bytes+asize) / f->blksize); - unsigned block = 0; - unsigned adjust = 0; - char *buf = NULL; - DCB *dcb = NULL; - DECB decb = {0}; - char ddname[12] = ""; - int i; - - wtof("%s: enter bytes=%u", __func__, bytes); - - if (!f->growdd) { - /* attempt to allocate our dataset with DISP=MOD */ - rc = emfile_allocate_mod(f, ddname); - // wtof("%s: emfile_allocate_mod() rc=%d ddname=%s", __func__, rc, ddname); - if (rc) goto quit; - - f->growdd = strdup(ddname); - if (!f->growdd) { - errno = rc = ENOMEM; - goto quit; - } - } - - /* allocate a buffer for our writes */ - buf = calloc(1, f->blksize); - if (!buf) { - wtof("%s: calloc() failed for %u bytes", __func__, f->blksize); - errno = rc = ENOMEM; - goto quit; - } - - /* open a DCB for this ddname */ - dcb = osbdcb(f->growdd, NULL); - if (!dcb) { - wtof("%s: osbdcb(\"%s\", NULL) failed", __func__, f->growdd); - errno = rc = ENOMEM; - goto quit; - } - - /* set block size in DCB */ - dcb->dcbrecfm = DCBRECF; - dcb->dcbblksi = (unsigned short)f->blksize; - dcb->dcblrecl = (unsigned short)f->blksize; - - /* open BSAM dataset in write mode */ - rc = osbopen(dcb, 0, "w"); - if (rc) { - wtof("%s: osbopen() failed with rc=%d", __func__, rc); - errno = rc = EIO; - goto quit; - } - - rc = 0; - -#if 1 /* new code testing */ - /* for performance reasons we want to grow a full track at a time - * so we'll adjust the blocks count to the blocks per track - */ - // wtof("%s: f->blocks=%u f->blkstrk=%u", __func__, f->blocks, f->blkstrk); - adjust = f->blkstrk - ((f->blocks + blocks) % f->blkstrk); - // wtof("%s: adjust=%u", __func__, adjust); - - /* adjust is how many blocks we need to align to track boundary */ - if (adjust > 0 && adjust <= f->blkstrk) { - blocks += adjust; - // wtof("%s:adjusted blocks=%u", __func__, blocks); - } -#endif - - /* we're extending the blocks in this dataset - * rc=4 is end of track, rc=8 is end of extent, - * rc=12 is write error, - * no more tracks (SB37) - * no more extents (SD37) - */ - // wtof("%s: blocks=%u", __func__, blocks); - - for(block=0; block < blocks && rc<=8; block++) { - rc = oswrite(&decb, dcb, buf, f->blksize); - - /* check for real write errors */ - if (rc > 8) { - wtof("%s: oswrite() returned rc=%d for block %d", __func__, rc, block); - goto quit; - } - - /* we have to CHECK to make sure the write completed okay */ - rc = oscheck(&decb); - // wtof("%s: oscheck() rc=%d", __func__, rc); - // wtodumpf(&decb, sizeof(DECB), "%s: DECB", __func__); - if (rc) { - unsigned abcode = (unsigned)rc & 0x00FFFFFF; - unsigned sysabend = abcode >> 12; - unsigned userabend = abcode & 0xFFF; - - if (sysabend) { - if (sysabend == 0x0B37 || sysabend == 0x0D37 || sysabend == 0x0E37) { - wtof("%s: S%03X Abend attempting to grow dataset %s", __func__, sysabend, "ENOSPC"); - errno = rc = ENOSPC; - } - else { - wtof("%s: S%03X Abend attempting to grow dataset %s", __func__, sysabend, "EIO"); - errno = rc = EIO; - } - break; - } - if (userabend) { - wtof("%s: U%04u Abend attempting to grow dataset EINTR", __func__, userabend); - errno = rc = EINTR; - break; - } - wtof("%s: Unexpected error rc=%d 0x%08X EIO", __func__, rc, rc); - errno = rc = EIO; - break; - } - } - - // wtof("%s: wrote %u blocks", __func__, block); - // wtof("%s: old blocks=%u", __func__, f->blocks); - -quit: - if (dcb) { - osbclose(dcb, NULL, 1, 0); - dcb = NULL; - } - if (buf) free(buf); - - /* even if we failed we should recalculate the dataset size */ - emfile_calc_size(f); - // wtof("%s: new blocks=%u", __func__, f->blocks); - - wtof("%s: exit rc=%d", __func__, rc); - return rc; -} diff --git a/src/crent370/emfile/@@emgrow.o b/src/crent370/emfile/@@emgrow.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emgrow.s b/src/crent370/emfile/@@emgrow.s deleted file mode 100644 index d818333..0000000 --- a/src/crent370/emfile/@@emgrow.s +++ /dev/null @@ -1,379 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emgrow.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@6 EQU * - DC C'emfile_grow' - DC X'0' - DS 0F - EJECT -* external function 'emfile_grow' prologue -* frame base=88, local stack=56, call args=16 -&FUNC SETC 'emfile_grow' -@@EMGROW PDPPRLG CINDEX=0,FRAME=160,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_grow' code - SLR 4,4 ==> blocks - SLR 5,5 ==> blocks - LR 8,4 - LR 9,5 - L 6,0(11) ==> f - L 15,4(11) ==> bytes - L 2,48(6) ==> asize,blksize - BCTR 2,0 ==> asize - LR 4,15 ==> bytes - AR 4,2 ==> asize - L 2,48(6) ==> .blksize - SLR 5,5 ==> blocks - CLR 2,4 - BH @@L4 - LTR 2,2 - BL @@L3 - LA 3,1(0,0) - CLR 2,3 - BE @@L2 - SRDL 4,32 ==> blocks - DR 4,2 ==> blocks - B @@L4 -@@L2 EQU * - LR 5,4 ==> blocks - B @@L4 -@@L3 EQU * - LA 5,1(0,0) ==> blocks -@@L4 EQU * - ST 5,152(13) ==> blocks - SLR 7,7 ==> buf - ST 7,156(13) ==> buf,dcb - LA 4,104(,13) - LA 5,32(0,0) - LR 2,7 ==> buf - LR 3,7 ==> buf - MVCL 4,2 ==> buf - L 2,=A(@@LC0) - MVC 136(1,13),0(2) ==> ddname - LA 4,137(,13) - LA 5,11(0,0) - LR 2,7 ==> buf - LR 3,7 ==> buf - MVCL 4,2 ==> buf - MVC 88(4,13),=A(@@LC1) - MVC 92(4,13),=A(@@6) - ST 15,96(13) ==> bytes - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - L 2,132(6) ==> .growdd - LTR 2,2 - BNE @@L5 - ST 6,88(13) ==> f - LA 2,136(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@EMAMOD) - BALR 14,15 - LR 3,15 ==> rc - LTR 15,15 ==> rc - BNE @@L7 - ST 2,88(13) - LA 1,88(,13) - L 15,=V(STRDUP) - BALR 14,15 - ST 15,132(6) ==> rc,growdd - LTR 15,15 ==> rc - BNE @@L5 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - B @@L37 -@@L5 EQU * - MVC 88(4,13),=F'1' - MVC 92(4,13),48(6) ==> .blksize - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 7,15 ==> buf - LTR 15,15 ==> buf - BNE @@L9 - MVC 88(4,13),=A(@@LC2) - MVC 92(4,13),=A(@@6) - MVC 96(4,13),48(6) ==> .blksize - B @@L38 -@@L9 EQU * - MVC 88(4,13),132(6) ==> .growdd - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(OSBDCB) - BALR 14,15 - ST 15,156(13) ==> dcb - LTR 15,15 - BNE @@L10 - MVC 88(4,13),=A(@@LC3) - MVC 92(4,13),=A(@@6) - MVC 96(4,13),132(6) ==> .growdd -@@L38 EQU * - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 -@@L37 EQU * - LA 3,12(0,0) ==> rc - B @@L35 -@@L10 EQU * - L 4,156(13) ==> dcb - MVI 36(4),128 ==> .dcbrecfm - MVC 62(2,4),50(6) ==> .dcbblksi,blksize - MVC 82(2,4),50(6) ==> .dcblrecl,blksize - MVC 88(4,13),156(13) ==> dcb - MVC 92(4,13),=F'0' - MVC 96(4,13),=A(@@LC4) - LA 1,88(,13) - L 15,=V(OSBOPEN) - BALR 14,15 - LTR 15,15 ==> rc - BE @@L11 - MVC 88(4,13),=A(@@LC5) - MVC 92(4,13),=A(@@6) - ST 15,96(13) ==> rc - B @@L34 -@@L32 EQU * - MVC 88(4,13),=A(@@LC6) - MVC 92(4,13),=A(@@6) - ST 3,96(13) ==> rc - ST 4,100(13) ==> block - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - B @@L7 -@@L33 EQU * - MVC 88(4,13),=A(@@LC10) - MVC 92(4,13),=A(@@6) - ST 4,96(13) ==> userabend - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - LA 3,4(0,0) ==> rc - B @@L35 -@@L11 EQU * - SLR 3,3 ==> rc - L 8,152(13) ==> blocks - A 8,36(6) ==> .blocks - L 2,44(6) ==> .blkstrk - CLR 2,8 - BH @@L14 - LTR 2,2 - BL @@L13 - LA 4,1(0,0) - CLR 2,4 - BE @@L12 - SRDL 8,32 - DR 8,2 - B @@L14 -@@L12 EQU * - SLR 8,8 - B @@L14 -@@L13 EQU * - SR 8,2 -@@L14 EQU * - L 2,44(6) ==> adjust,blkstrk - SR 2,8 ==> adjust - BE @@L15 - CL 2,44(6) ==> adjust,blkstrk - BH @@L15 - A 2,152(13) ==> adjust,blocks - ST 2,152(13) ==> adjust,blocks -@@L15 EQU * - SLR 4,4 ==> block - CL 4,152(13) ==> block,blocks - BNL @@L7 - LA 2,8(0,0) - CR 3,2 ==> rc - BH @@L7 -@@L28 EQU * - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),156(13) ==> dcb - ST 7,96(13) ==> buf - MVC 100(4,13),48(6) ==> .blksize - LA 1,88(,13) - L 15,=V(OSWRITE) - BALR 14,15 - LR 3,15 ==> rc - LA 2,8(0,0) - CR 15,2 ==> rc - BH @@L32 - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(OSCHECK) - BALR 14,15 - LR 3,15 ==> rc - LTR 15,15 ==> rc - BE @@L18 - LR 2,15 ==> abcode,rc - N 2,=F'16777215' ==> abcode - SRL 2,12 ==> sysabend - LR 4,15 ==> userabend,rc - N 4,=F'4095' ==> userabend - LTR 2,2 ==> sysabend - BE @@L23 - LA 3,2871(0,0) - CLR 2,3 ==> sysabend - BE @@L25 - LA 4,3383(0,0) - CLR 2,4 ==> sysabend - BE @@L25 - LA 3,3639(0,0) - CLR 2,3 ==> sysabend - BNE @@L24 -@@L25 EQU * - MVC 88(4,13),=A(@@LC7) - MVC 92(4,13),=A(@@6) - ST 2,96(13) ==> sysabend - MVC 100(4,13),=A(@@LC8) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - LA 3,28(0,0) ==> rc - B @@L35 -@@L24 EQU * - MVC 88(4,13),=A(@@LC7) - MVC 92(4,13),=A(@@6) - ST 2,96(13) ==> sysabend - MVC 100(4,13),=A(@@LC9) - B @@L34 -@@L23 EQU * - LTR 4,4 ==> userabend - BNE @@L33 - MVC 88(4,13),=A(@@LC11) - MVC 92(4,13),=A(@@6) - ST 15,96(13) ==> rc - ST 15,100(13) ==> rc -@@L34 EQU * - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - LA 3,5(0,0) ==> rc -@@L35 EQU * - ST 3,0(15) ==> rc - B @@L7 -@@L18 EQU * - A 4,=F'1' ==> block - CL 4,152(13) ==> block,blocks - BNL @@L7 - LA 2,8(0,0) - CR 15,2 ==> rc - BNH @@L28 -@@L7 EQU * - L 4,156(13) ==> dcb - LTR 4,4 - BE @@L29 - ST 4,88(13) - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'1' - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(OSBCLOSE) - BALR 14,15 -@@L29 EQU * - LTR 7,7 ==> buf - BE @@L30 - ST 7,88(13) ==> buf - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L30 EQU * - ST 6,88(13) ==> f - LA 1,88(,13) - L 15,=V(@@EMCSIZ) - BALR 14,15 - MVC 88(4,13),=A(@@LC12) - MVC 92(4,13),=A(@@6) - ST 3,96(13) ==> rc - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LR 15,3 ==> rc -* Function 'emfile_grow' epilogue - PDPEPIL -* Function 'emfile_grow' literal pool - DS 0D - LTORG -* Function 'emfile_grow' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC X'0' - DC 11X'00' -@@LC1 EQU * - DC C'%s: enter bytes=%u' - DC X'0' -@@LC2 EQU * - DC C'%s: calloc() failed for %u bytes' - DC X'0' -@@LC3 EQU * - DC C'%s: osbdcb("%s", NULL) failed' - DC X'0' -@@LC4 EQU * - DC C'w' - DC X'0' -@@LC5 EQU * - DC C'%s: osbopen() failed with rc=%d' - DC X'0' -@@LC6 EQU * - DC C'%s: oswrite() returned rc=%d for block %d' - DC X'0' -@@LC10 EQU * - DC C'%s: U%04u Abend attempting to grow dataset EINTR' - DC X'0' -@@LC7 EQU * - DC C'%s: S%03X Abend attempting to grow dataset %s' - DC X'0' -@@LC8 EQU * - DC C'ENOSPC' - DC X'0' -@@LC9 EQU * - DC C'EIO' - DC X'0' -@@LC11 EQU * - DC C'%s: Unexpected error rc=%d 0x%08X EIO' - DC X'0' -@@LC12 EQU * - DC C'%s: exit rc=%d' - DC X'0' - END diff --git a/src/crent370/emfile/@@emgwsa.c b/src/crent370/emfile/@@emgwsa.c deleted file mode 100644 index e49c4b1..0000000 --- a/src/crent370/emfile/@@emgwsa.c +++ /dev/null @@ -1,19 +0,0 @@ -#include "emfilei.h" - -static EMFILEWSA static_config = { - EMFILEWSA_EYE, /* 00 eye catcher */ - EMFILE_SPACE_TRACK, /* 08 EMFILE_SPACE_ TRACK or CYL */ - 4096, /* 0C block and lrecl size */ - 15, /* 10 primary track/cyl */ - 15, /* 14 secondary track/cyl */ - NULL /* 18 volume serial number */ -}; /* 1C (28 bytes) */ -#define EMFILEWSA_KEY (void*)(&static_config) -#define EMFILEWSA_LEN sizeof(static_config) - -EMFILEWSA *emfile_get_wsa(void) -{ - EMFILEWSA *wsa = (EMFILEWSA*) __wsaget(EMFILEWSA_KEY, EMFILEWSA_LEN); - - return wsa; -} diff --git a/src/crent370/emfile/@@emgwsa.o b/src/crent370/emfile/@@emgwsa.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emgwsa.s b/src/crent370/emfile/@@emgwsa.s deleted file mode 100644 index 685c06d..0000000 --- a/src/crent370/emfile/@@emgwsa.s +++ /dev/null @@ -1,60 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emgwsa.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program data area - DS 0F -@@6 EQU * - DC C'*EMFWSA*' - DC F'0' - DC F'4096' - DC F'15' - DC F'15' - DC F'0' -* Program text area - DS 0F - EJECT -* external function 'emfile_get_wsa' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'emfile_get_wsa' -@@EMGWSA PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_get_wsa' code - MVC 88(4,13),=A(@@6) - MVC 92(4,13),=F'28' - LA 1,88(,13) - L 15,=V(@@WSAGET) - BALR 14,15 -* Function 'emfile_get_wsa' epilogue - PDPEPIL -* Function 'emfile_get_wsa' literal pool - DS 0D - LTORG -* Function 'emfile_get_wsa' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/emfile/@@eminit.c b/src/crent370/emfile/@@eminit.c deleted file mode 100644 index 401a3d4..0000000 --- a/src/crent370/emfile/@@eminit.c +++ /dev/null @@ -1,74 +0,0 @@ -#include "emfilei.h" - -int emfile_init(const char *ddname, unsigned blksize, JFCB *jfcb) -{ - int rc = 1; - unsigned block = 0; - char *buf = NULL; - DCB *dcb = NULL; - DECB decb = {0}; - __64 zero; - - wtof("%s: enter", __func__); - - buf = calloc(1, blksize); - if (!buf) { - wtof("%s: calloc() failed for %u bytes", __func__, blksize); - errno = ENOMEM; - goto quit; - } - - dcb = osbdcb(ddname, NULL); - if (!dcb) { - wtof("%s: osbdcb(\"%s\", NULL) failed", __func__, ddname); - errno = ENOMEM; - goto quit; - } - - /* set block size in DCB */ - dcb->dcbrecfm = DCBRECF; - dcb->dcbblksi = (unsigned short)blksize; - dcb->dcblrecl = (unsigned short)blksize; - - /* open BSAM dataset in "load" mode */ - rc = osbopen(dcb, 0, "load"); - if (rc) { - wtof("%s: osbopen() failed with rc=%d", __func__, rc); - goto quit; - } - - wtodumpf(dcb, sizeof(DCB), "%s: DCB", __func__); - - /* create initial header record in our buf */ - __64_from_u32(&zero, 0); - rc = emfile_create_header(buf, zero); - if (rc) goto quit; - - /* we only want to initialize the primary extent, skip secondary extents even if allocated */ - /* rc=4 is end of track, rc=8 is end of extent, rc=12 is write error, no more tracks (SB37) */ - for(block=0; rc < 4; block++) { - rc = oswrite(&decb, dcb, buf, blksize); - - /* check for real write errors */ - if (rc > 8) { - wtof("%s: oswrite() returned rc=%d for block %d", __func__, rc, block); - goto quit; - } - - /* we have to CHECK to make sure the write completed okay */ - oscheck(&decb); - - if (block==0) { - memset(buf, 0, blksize); - } - } - - wtof("%s: initialized %u blocks", __func__, block); - rc = 0; - -quit: - if (dcb) osbclose(dcb, NULL, 1, 0); - if (buf) free(buf); - wtof("%s: exit rc=%d", __func__, rc); - return rc; -} diff --git a/src/crent370/emfile/@@eminit.o b/src/crent370/emfile/@@eminit.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@eminit.s b/src/crent370/emfile/@@eminit.s deleted file mode 100644 index 1277c2a..0000000 --- a/src/crent370/emfile/@@eminit.s +++ /dev/null @@ -1,247 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@eminit.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@6 EQU * - DC C'emfile_init' - DC X'0' - DS 0F - EJECT -* external function 'emfile_init' prologue -* frame base=88, local stack=40, call args=16 -&FUNC SETC 'emfile_init' -@@EMINIT PDPPRLG CINDEX=0,FRAME=144,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_init' code - L 9,4(11) ==> blksize - LA 6,1(0,0) ==> rc - SLR 7,7 ==> buf - LR 8,7 ==> dcb,buf - LA 4,104(,13) - LA 5,32(0,0) - LR 2,7 ==> buf - LR 3,7 ==> buf - MVCL 4,2 ==> buf - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@6) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - ST 6,88(13) ==> rc - ST 9,92(13) ==> blksize - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 7,15 ==> buf - LTR 15,15 ==> buf - BNE @@L2 - MVC 88(4,13),=A(@@LC1) - MVC 92(4,13),=A(@@6) - ST 9,96(13) ==> blksize - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - B @@L21 -@@L2 EQU * - MVC 88(4,13),0(11) ==> ddname - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(OSBDCB) - BALR 14,15 - LR 8,15 ==> dcb - LTR 15,15 ==> dcb - BNE @@L4 - MVC 88(4,13),=A(@@LC2) - MVC 92(4,13),=A(@@6) - MVC 96(4,13),0(11) ==> ddname - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 -@@L21 EQU * - MVC 0(4,15),=F'12' ==> dcb - B @@L3 -@@L4 EQU * - MVI 36(15),128 ==> .dcbrecfm - LR 2,9 ==> blksize - SLL 2,16 ==> blksize - SRA 2,16 ==> blksize - STH 2,62(15) ==> blksize,dcbblksi - STH 2,82(15) ==> blksize,dcblrecl - ST 15,88(13) ==> dcb - MVC 92(4,13),=F'0' - MVC 96(4,13),=A(@@LC3) - LA 1,88(,13) - L 15,=V(OSBOPEN) - BALR 14,15 - LR 6,15 ==> rc - LTR 15,15 ==> rc - BE @@L5 - MVC 88(4,13),=A(@@LC4) - MVC 92(4,13),=A(@@6) - ST 15,96(13) ==> rc - B @@L20 -@@L19 EQU * - MVC 88(4,13),=A(@@LC6) - MVC 92(4,13),=A(@@6) - ST 6,96(13) ==> rc - ST 3,100(13) ==> block -@@L20 EQU * - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - B @@L3 -@@L5 EQU * - ST 8,88(13) ==> dcb - MVC 92(4,13),=F'104' - MVC 96(4,13),=A(@@LC5) - MVC 100(4,13),=A(@@6) - LA 1,88(,13) - L 15,=V(WTODUMPF) - BALR 14,15 - LA 2,136(,13) - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@64FU32) - BALR 14,15 - ST 7,88(13) ==> buf - MVC 92(8,13),136(13) - LA 1,88(,13) - L 15,=V(@@EMCHDR) - BALR 14,15 - LR 6,15 ==> rc - LTR 15,15 ==> rc - BNE @@L3 - LR 3,15 ==> block,rc -@@L14 EQU * - LA 2,104(,13) - ST 2,88(13) - ST 8,92(13) ==> dcb - ST 7,96(13) ==> buf - ST 9,100(13) ==> blksize - LA 1,88(,13) - L 15,=V(OSWRITE) - BALR 14,15 - LR 6,15 ==> rc - LA 2,8(0,0) - CR 15,2 ==> rc - BH @@L19 - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(OSCHECK) - BALR 14,15 - LTR 3,3 ==> block - BNE @@L9 - -*** MEMSET *** - LR 14,7 => target (s) ==> buf - LR 15,9 => length (n) ==> blksize - SLR 0,0 => source (NULL) - LR 1,3 fill character ==> block - SLL 1,24 move fill to high byte - MVCL 14,0 Set target to fill character -@@L9 EQU * - A 3,=F'1' ==> block - LA 2,3(0,0) - CR 6,2 ==> rc - BNH @@L14 - MVC 88(4,13),=A(@@LC7) - MVC 92(4,13),=A(@@6) - ST 3,96(13) ==> block - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - SLR 6,6 ==> rc -@@L3 EQU * - LTR 8,8 ==> dcb - BE @@L15 - ST 8,88(13) ==> dcb - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'1' - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(OSBCLOSE) - BALR 14,15 -@@L15 EQU * - LTR 7,7 ==> buf - BE @@L16 - ST 7,88(13) ==> buf - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L16 EQU * - MVC 88(4,13),=A(@@LC8) - MVC 92(4,13),=A(@@6) - ST 6,96(13) ==> rc - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LR 15,6 ==> rc -* Function 'emfile_init' epilogue - PDPEPIL -* Function 'emfile_init' literal pool - DS 0D - LTORG -* Function 'emfile_init' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s: enter' - DC X'0' -@@LC1 EQU * - DC C'%s: calloc() failed for %u bytes' - DC X'0' -@@LC2 EQU * - DC C'%s: osbdcb("%s", NULL) failed' - DC X'0' -@@LC3 EQU * - DC C'load' - DC X'0' -@@LC4 EQU * - DC C'%s: osbopen() failed with rc=%d' - DC X'0' -@@LC6 EQU * - DC C'%s: oswrite() returned rc=%d for block %d' - DC X'0' -@@LC5 EQU * - DC C'%s: DCB' - DC X'0' -@@LC7 EQU * - DC C'%s: initialized %u blocks' - DC X'0' -@@LC8 EQU * - DC C'%s: exit rc=%d' - DC X'0' - END diff --git a/src/crent370/emfile/@@emobpo.c b/src/crent370/emfile/@@emobpo.c deleted file mode 100644 index 06cc36e..0000000 --- a/src/crent370/emfile/@@emobpo.c +++ /dev/null @@ -1,26 +0,0 @@ -#include "emfilei.h" - -int emfile_offset_block_pos(EMFILE *f, unsigned *b, unsigned *p) -{ - int rc = 0; - __64 block64; - __64 pos64; - - // wtof("%s: enter offset=%llu", __func__, f->offset); - - /* calculate buffer position and block number */ - __64_divmod_u32(&f->offset, f->blksize, &block64, &pos64); - - /* adjust block calculations up by 1 block */ - __64_add_u32(&block64, 1, &block64); - - rc = block64.u32[0]; /* !=0 overflow occured */ - - if (b) *b = block64.u32[1]; - if (p) *p = pos64.u32[1]; - -quit: - // wtof("%s: exit block=%u pos=%u%s", - // __func__, block64.u32[1], pos64.u32[1], rc ? " OVERFLOW" : ""); - return rc; -} diff --git a/src/crent370/emfile/@@emobpo.o b/src/crent370/emfile/@@emobpo.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emobpo.s b/src/crent370/emfile/@@emobpo.s deleted file mode 100644 index 0f8b42b..0000000 --- a/src/crent370/emfile/@@emobpo.s +++ /dev/null @@ -1,76 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emobpo.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'emfile_offset_block_pos' prologue -* frame base=88, local stack=16, call args=16 -&FUNC SETC 'emfile_offset_block_pos' -@@EMOBPO PDPPRLG CINDEX=0,FRAME=120,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_offset_block_pos' code - L 3,0(11) ==> f - L 4,4(11) ==> b - L 5,8(11) ==> p - LR 2,3 ==> f - A 2,=F'24' - ST 2,88(13) - MVC 92(4,13),48(3) ==> .blksize - LA 2,104(,13) - ST 2,96(13) - LA 2,112(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@64VU32) - BALR 14,15 - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=F'1' - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64AU32) - BALR 14,15 - L 15,104(13) ==> rc - LTR 4,4 ==> b - BE @@L2 - MVC 0(4,4),108(13) ==> b,u32 -@@L2 EQU * - LTR 5,5 ==> p - BE @@L4 - MVC 0(4,5),116(13) ==> p,u32 -@@L4 EQU * -* Function 'emfile_offset_block_pos' epilogue - PDPEPIL -* Function 'emfile_offset_block_pos' literal pool - DS 0D - LTORG -* Function 'emfile_offset_block_pos' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/emfile/@@emopen.c b/src/crent370/emfile/@@emopen.c deleted file mode 100644 index cb17900..0000000 --- a/src/crent370/emfile/@@emopen.c +++ /dev/null @@ -1,123 +0,0 @@ -#include "emfilei.h" - -static unsigned char parse_mode(const char *mode); - -EMFILE *emfile_open(const char *dsn, const char *mode) -{ - int rc; - EMFILE *f = NULL; - char flag = 0; - char c; - - wtof("%s: enter dsn=\"%s\"", __func__, dsn); - - if (!dsn) { - errno = EINVAL; - goto failed; - } - - if (!mode) { - errno = EINVAL; - goto failed; - } - - /* decode the mode string into flags */ - flag = parse_mode(mode); - if (!flag) { - errno = EINVAL; - goto failed; - } - - f = calloc(1, sizeof(EMFILE)); - if (!f) { - errno = ENOMEM; - goto quit; - } - strcpy(f->eye, EMFILE_EYE); - f->flags = flag; - - if (toupper(dsn[0])=='D' && toupper(dsn[1])=='D' && dsn[2]==':') { - /* copy the ddname into our handle */ - emfile_set_ddn(&dsn[3], f->ddname); - } - else { - /* copy the dataset name into our handle */ - emfile_set_dsn(dsn, f->dsname); - - if (flag & EMFILE_FLAG_WRITE) { - /* DISP=OLD for WRITE or UPDATE */ - rc = emfile_allocate_old(f); - } - else if (flag & EMFILE_FLAG_READ) { - /* DISP=SHR okay for read only */ - rc = emfile_allocate_shr(f); - } - - if (rc && (flag & EMFILE_FLAG_CREATE)) { - /* DISP=NEW for CREATE */ - rc = emfile_allocate_new(f); - } - - if (rc) goto failed; - } - - /* perform common setup of emulated 'file' */ - rc = emfile_setup(f); - if (rc) goto failed; - - if (flag & EMFILE_FLAG_APPEND) { - /* APPEND (implies WRITE) */ - rc = emfile_seek(f, 0, SEEK_END); - if (rc) goto failed; - } - else if ((flag & EMFILE_FLAG_WRITE) && !(flag & EMFILE_FLAG_READ)) { - /* WRITE without READ == truncate */ - rc = emfile_truncate(f, 0); - if (rc) goto failed; - } - goto quit; - -failed: - if (f) { - emfile_close(f); - f = NULL; - } - -quit: - wtof("%s: exit emfile=0x%08X", __func__, f); - return f; -} - -static unsigned char parse_mode(const char *mode) -{ - unsigned char flags = 0; - char c; - - // wtof("%s: enter", __func__); - - if (!mode) goto quit; - - c = tolower(*mode); - if (c == 'r') { - flags = EMFILE_FLAG_READ; - } - else if (c == 'w') { - flags = EMFILE_FLAG_WRITE | EMFILE_FLAG_CREATE; - } - else if (c == 'a') { - flags = EMFILE_FLAG_WRITE | EMFILE_FLAG_CREATE | EMFILE_FLAG_APPEND; - } - - for(mode++; *mode; mode++) { - c = tolower(*mode); - - if (c == '+') { - flags |= EMFILE_FLAG_READ | EMFILE_FLAG_WRITE; - } - /* we ignore any other character in the mode string */ - } - -quit: - // wtof("%s: exit flags=0x%02X", __func__, flags); - return flags; -} diff --git a/src/crent370/emfile/@@emopen.o b/src/crent370/emfile/@@emopen.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emopen.s b/src/crent370/emfile/@@emopen.s deleted file mode 100644 index e9e1f59..0000000 --- a/src/crent370/emfile/@@emopen.s +++ /dev/null @@ -1,303 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emopen.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@6 EQU * - DC C'emfile_open' - DC X'0' - DS 0F - EJECT -* external function 'emfile_open' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'emfile_open' -@@EMOPEN PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_open' code - L 3,0(11) ==> dsn - L 2,4(11) ==> mode - SLR 4,4 ==> f - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@6) - ST 3,96(13) ==> dsn - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LTR 3,3 ==> dsn - BNE @@L2 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - B @@L25 -@@L2 EQU * - LTR 2,2 ==> mode - BE @@L24 - ST 2,88(13) ==> mode - LA 1,88(,13) - L 15,=A(@@7) - BALR 14,15 - LR 5,15 ==> flag - CLM 15,1,=XL1'00' ==> flag - BNE @@L5 -@@L24 EQU * - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 -@@L25 EQU * - MVC 0(4,15),=F'22' ==> flag - B @@L3 -@@L5 EQU * - MVC 88(4,13),=F'1' - MVC 92(4,13),=F'144' - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 4,15 ==> f - LTR 15,15 ==> f - BNE @@L6 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - MVC 0(4,15),=F'12' ==> flag - B @@L7 -@@L6 EQU * - ST 15,88(13) ==> f - MVC 92(4,13),=A(@@LC1) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - LR 2,5 ==> flag - N 2,=XL4'000000FF' ==> flag - STH 2,122(4) ==> flag,flags - SLR 2,2 - IC 2,0(3) ==> dsn - ST 2,88(13) - LA 1,88(,13) - L 15,=V(TOUPPER) - BALR 14,15 - LA 2,196(0,0) - CLR 15,2 ==> flag - BNE @@L8 - SLR 2,2 - IC 2,1(3) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(TOUPPER) - BALR 14,15 - LA 2,196(0,0) - CLR 15,2 ==> flag - BNE @@L8 - CLI 2(3),122 - BNE @@L8 - LR 2,3 ==> dsn - A 2,=F'3' - ST 2,88(13) - LR 2,4 ==> f - A 2,=F'68' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@EMSDDN) - BALR 14,15 - B @@L9 -@@L8 EQU * - ST 3,88(13) ==> dsn - LR 2,4 ==> f - A 2,=F'77' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@EMSDSN) - BALR 14,15 - LR 2,5 ==> flag - N 2,=F'64' - CLM 2,1,=XL1'00' - BE @@L10 - ST 4,88(13) ==> f - LA 1,88(,13) - L 15,=V(@@EMAOLD) - BALR 14,15 - B @@L22 -@@L10 EQU * - LR 2,5 ==> flag - N 2,=F'-128' - CLM 2,1,=XL1'00' - BE @@L11 - ST 4,88(13) ==> f - LA 1,88(,13) - L 15,=V(@@EMASHR) - BALR 14,15 -@@L22 EQU * - LR 6,15 ==> rc -@@L11 EQU * - LTR 6,6 ==> rc - BE @@L13 - LR 2,5 ==> flag - N 2,=F'16' - CLM 2,1,=XL1'00' - BE @@L13 - ST 4,88(13) ==> f - LA 1,88(,13) - L 15,=V(@@EMANEW) - BALR 14,15 - LR 6,15 ==> rc -@@L13 EQU * - LTR 6,6 ==> rc - BNE @@L3 -@@L9 EQU * - ST 4,88(13) ==> f - LA 1,88(,13) - L 15,=V(@@EMSETU) - BALR 14,15 - LTR 15,15 ==> rc - BNE @@L3 - LR 2,5 ==> flag - N 2,=F'32' - CLM 2,1,=XL1'00' - BE @@L16 - ST 4,88(13) ==> f - ST 15,92(13) ==> rc - MVC 96(4,13),=F'2' - LA 1,88(,13) - L 15,=V(@@EMSEEK) - BALR 14,15 - B @@L23 -@@L16 EQU * - LR 2,5 ==> flag - N 2,=F'-64' - CLM 2,1,=XL1'40' - BNE @@L7 - ST 4,88(13) ==> f - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@EMTRUN) - BALR 14,15 -@@L23 EQU * - LTR 15,15 ==> rc - BE @@L7 -@@L3 EQU * - LTR 4,4 ==> f - BE @@L7 - ST 4,88(13) ==> f - LA 1,88(,13) - L 15,=V(@@EMCLOS) - BALR 14,15 - SLR 4,4 ==> f -@@L7 EQU * - MVC 88(4,13),=A(@@LC2) - MVC 92(4,13),=A(@@6) - ST 4,96(13) ==> f - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LR 15,4 ==> f -* Function 'emfile_open' epilogue - PDPEPIL -* Function 'emfile_open' literal pool - DS 0D - LTORG -* Function 'emfile_open' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s: enter dsn="%s"' - DC X'0' -@@LC1 EQU * - DC C'*EMFILE*' - DC X'0' -@@LC2 EQU * - DC C'%s: exit emfile=0x%08X' - DC X'0' - DS 0F - EJECT -* static function 'parse_mode' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'parse_mode' -@@7 PDPPRLG CINDEX=1,FRAME=96,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'parse_mode' code - L 3,0(11) ==> mode - SLR 4,4 ==> flags - LTR 3,3 ==> mode - BE @@L28 - SLR 2,2 - IC 2,0(3) ==> mode - ST 2,88(13) - LA 1,88(,13) - L 15,=V(TOLOWER) - BALR 14,15 - CLM 15,1,=XL1'99' ==> c - BNE @@L29 - L 4,=F'-128' ==> flags - B @@L30 -@@L29 EQU * - CLM 15,1,=XL1'A6' ==> c - BNE @@L31 - LA 4,80(0,0) ==> flags - B @@L30 -@@L31 EQU * - CLM 15,1,=XL1'81' ==> c - BNE @@L30 - LA 4,112(0,0) ==> flags -@@L30 EQU * - A 3,=F'1' ==> mode - IC 2,0(3) ==> mode - CLM 2,1,=XL1'00' - BE @@L28 -@@L39 EQU * - SLR 2,2 - IC 2,0(3) ==> mode - ST 2,88(13) - LA 1,88(,13) - L 15,=V(TOLOWER) - BALR 14,15 - CLM 15,1,=XL1'4E' ==> c - BNE @@L36 - O 4,=F'-64' ==> flags -@@L36 EQU * - A 3,=F'1' ==> mode - IC 2,0(3) ==> mode - CLM 2,1,=XL1'00' - BNE @@L39 -@@L28 EQU * - LR 15,4 ==> flags - N 15,=XL4'000000FF' ==> flags -* Function 'parse_mode' epilogue - PDPEPIL -* Function 'parse_mode' literal pool - DS 0D - LTORG -* Function 'parse_mode' page table -@@PGT1 DS 0F - DC A(@@PG1) - END diff --git a/src/crent370/emfile/@@emprtf.c b/src/crent370/emfile/@@emprtf.c deleted file mode 100644 index a5d0b30..0000000 --- a/src/crent370/emfile/@@emprtf.c +++ /dev/null @@ -1,16 +0,0 @@ -#include "emfilei.h" - -int emfile_printf(EMFILE *f, const char *format, ...) -{ - int rc; - va_list args; - - // wtof("%s: enter format=\"%s\"", __func__, format); - - va_start(args, format); - rc = emfile_vprintf(f, format, args); - va_end(args); - - // wtof("%s: exit rc=%d", __func__, rc); - return rc; -} diff --git a/src/crent370/emfile/@@emprtf.o b/src/crent370/emfile/@@emprtf.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emprtf.s b/src/crent370/emfile/@@emprtf.s deleted file mode 100644 index 553d1fd..0000000 --- a/src/crent370/emfile/@@emprtf.s +++ /dev/null @@ -1,53 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emprtf.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'emfile_printf' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'emfile_printf' -@@EMPRTF PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_printf' code - MVC 88(4,13),0(11) ==> f - MVC 92(4,13),4(11) - LA 2,8(,11) ==> args - ST 2,96(13) ==> args - LA 1,88(,13) - L 15,=V(@@EMVPRT) - BALR 14,15 -* Function 'emfile_printf' epilogue - PDPEPIL -* Function 'emfile_printf' literal pool - DS 0D - LTORG -* Function 'emfile_printf' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/emfile/@@emputc.c b/src/crent370/emfile/@@emputc.c deleted file mode 100644 index ebc1177..0000000 --- a/src/crent370/emfile/@@emputc.c +++ /dev/null @@ -1,29 +0,0 @@ -#include "emfilei.h" - -int emfile_putc(int c, EMFILE *f) -{ - int rc = 0; - char buf[2]; - - wtof("%s: enter", __func__); - - if (!f) goto failed; - - if (!(f->flags & EMFILE_FLAG_WRITE)) goto failed; - - buf[0] = (char)c; - buf[1] = 0; - - rc = emfile_write_bytes(f, buf, 1); - if (rc) goto failed; - - rc = c; - goto quit; - -failed: - rc = -1; - -quit: - wtof("%s: exit rc=%d", __func__, rc); - return rc; -} diff --git a/src/crent370/emfile/@@emputc.o b/src/crent370/emfile/@@emputc.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emputc.s b/src/crent370/emfile/@@emputc.s deleted file mode 100644 index 72b8f59..0000000 --- a/src/crent370/emfile/@@emputc.s +++ /dev/null @@ -1,97 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emputc.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@6 EQU * - DC C'emfile_putc' - DC X'0' - DS 0F - EJECT -* external function 'emfile_putc' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'emfile_putc' -@@EMPUTC PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_putc' code - L 5,0(11) ==> c - L 4,4(11) ==> f - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@6) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LTR 4,4 ==> f - BE @@L3 - LH 2,122(4) ==> .flags - N 2,=F'64' - CH 2,=H'0' - BE @@L3 - LR 2,5 - SLL 2,16+8 - SRA 2,16 - LH 3,104(13) - N 3,=F'255' - STH 3,104(13) - OR 3,2 - STH 3,104(13) - MVI 105(13),0 ==> buf - ST 4,88(13) ==> f - LA 2,104(,13) - ST 2,92(13) - MVC 96(4,13),=F'1' - LA 1,88(,13) - L 15,=V(@@EMWBYT) - BALR 14,15 - LR 2,5 ==> rc,c - LTR 15,15 ==> rc - BE @@L6 -@@L3 EQU * - L 2,=F'-1' ==> rc -@@L6 EQU * - MVC 88(4,13),=A(@@LC1) - MVC 92(4,13),=A(@@6) - ST 2,96(13) ==> rc - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LR 15,2 ==> rc -* Function 'emfile_putc' epilogue - PDPEPIL -* Function 'emfile_putc' literal pool - DS 0D - LTORG -* Function 'emfile_putc' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s: enter' - DC X'0' -@@LC1 EQU * - DC C'%s: exit rc=%d' - DC X'0' - END diff --git a/src/crent370/emfile/@@emputs.c b/src/crent370/emfile/@@emputs.c deleted file mode 100644 index c01fb88..0000000 --- a/src/crent370/emfile/@@emputs.c +++ /dev/null @@ -1,22 +0,0 @@ -#include "emfilei.h" - -int emfile_puts(const char *str, EMFILE *f) -{ - int rc = 0; - int len; - - wtof("%s: enter str=\"%s\"", __func__, str); - - len = strlen(str); - if (len) { - rc = emfile_write_bytes(f, str, len); - if (rc) { - if (!f->error) f->error = rc; - rc = -1; - } - } - -quit: - wtof("%s: exit rc=%d", __func__, rc); - return rc; -} diff --git a/src/crent370/emfile/@@emputs.o b/src/crent370/emfile/@@emputs.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emputs.s b/src/crent370/emfile/@@emputs.s deleted file mode 100644 index 782a6e0..0000000 --- a/src/crent370/emfile/@@emputs.s +++ /dev/null @@ -1,93 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emputs.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@6 EQU * - DC C'emfile_puts' - DC X'0' - DS 0F - EJECT -* external function 'emfile_puts' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'emfile_puts' -@@EMPUTS PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_puts' code - L 2,0(11) ==> str - L 4,4(11) ==> f - SLR 3,3 ==> rc - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@6) - ST 2,96(13) ==> str - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - ST 2,88(13) ==> str - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LTR 15,15 ==> len - BE @@L5 - ST 4,88(13) ==> f - ST 2,92(13) ==> str - ST 15,96(13) ==> len - LA 1,88(,13) - L 15,=V(@@EMWBYT) - BALR 14,15 - LR 3,15 ==> rc - LTR 15,15 ==> rc - BE @@L5 - L 2,128(4) ==> .error - LTR 2,2 - BNE @@L4 - ST 15,128(4) ==> rc,error -@@L4 EQU * - L 3,=F'-1' ==> rc -@@L5 EQU * - MVC 88(4,13),=A(@@LC1) - MVC 92(4,13),=A(@@6) - ST 3,96(13) ==> rc - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LR 15,3 ==> rc -* Function 'emfile_puts' epilogue - PDPEPIL -* Function 'emfile_puts' literal pool - DS 0D - LTORG -* Function 'emfile_puts' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s: enter str="%s"' - DC X'0' -@@LC1 EQU * - DC C'%s: exit rc=%d' - DC X'0' - END diff --git a/src/crent370/emfile/@@emrblk.c b/src/crent370/emfile/@@emrblk.c deleted file mode 100644 index 0e51ac7..0000000 --- a/src/crent370/emfile/@@emrblk.c +++ /dev/null @@ -1,106 +0,0 @@ -#include "emfilei.h" - -int emfile_read_block(EMFILE *f, unsigned block, char *buf) -{ - int rc = 0; - int retry = 0; - void *old_synad = 0; - void *new_synad = 0; - unsigned ecb; - - // wtof("%s: enter block=%u", __func__, block); - - /* if the data in the buffer has changed we need to write - * that data to disk before we read in the next block. - */ - rc = emfile_flush(f); - if (rc) goto quit; - - if (!f->blocks) { - /* empty file, fail the read */ - wtof("%s: empty file", __func__); - rc = 8; - goto quit; - } - - if (block > f->blocks) { - /* attempt to read past end of dataset */ - wtof("%s: desired block %u beyond EOF %u", - __func__, block, f->blocks); - rc = 12; - goto quit; - } - - /* When we've added another track vai emfile_grow() creating - * additional blocks, the existing BDAM DCB doesn't know about - * the new tracks and will fail the read generating IEC020 - * messages along the way. - * - * To prevent this unwanted behavior we're going to use a dummy - * SYNAD routine (see after end of thsi function) so that control - * returns without generating any message. - * - * It's then up to us to check the ECB in the DECB area as - * being POSTED with the error information. - */ - - __asm__("LA\t0,RDSYNAD\n\t" - "ST\t0,0(,%0)" : : "r"(&new_synad)); - old_synad = f->bdamdcb->dcbsynad; - f->bdamdcb->dcbsynad = new_synad; - -again: - rc = osdread(f->bdamdecb, f->bdamdcb, buf, f->blksize, block); - if (rc) { - wtof("%s: osdread() block=%u rc=%d", __func__, block, rc); - wtodumpf(f->bdamdcb, sizeof(DCB), "%s: BDAMDCB", __func__); - goto quit; - } - - rc = oscheck(f->bdamdecb); - ecb = f->bdamdecb->decsdecb; - - // wtodumpf(f->bdamdecb, sizeof(DECB), "%s: BDAMDECB", __func__); - if (rc || ecb != 0x40000000) { - wtof("%s: oscheck() block=%u rc=%d ecb=0x%08X", __func__, block, rc, ecb); - // wtodumpf(f->bdamdcb, sizeof(DCB), "%s: BDAMDCB", __func__); - if (!retry) { - retry++; - /* lets try closing and reopening */ - // wtof("%s: closing f->bdamdcb=0x%08X", __func__, f->bdamdcb); - osdclose(f->bdamdcb, 1); - - // wtof("%s: opening f->ddname=%s", __func__, f->ddname); - f->bdamdcb = osddcb(f->ddname); - // wtof("%s: f->bdamdcb=0x%08X", __func__, f->bdamdcb); - - rc = osdopen(f->bdamdcb, 0); - // wtof("%s: osdopen() rc=%d", __func__, rc); - - /* install out dummy SYNAD routine */ - f->bdamdcb->dcbsynad = new_synad; - - /* clear the DECB area */ - memset(f->bdamdecb, 0, sizeof(DECB)); - if (rc==0) goto again; - } - if (!rc) rc = ecb; /* we don't want to exit rc=0 if we failed */ - } - - /* restore previous synad */ - f->bdamdcb->dcbsynad = old_synad; - - if ((rc==0) && (buf == f->buf)) { - f->block = block; - f->flags &= ~EMFILE_FLAG_DIRTY; - } - -quit: - // wtof("%s: exit rc=%d", __func__, rc); - return rc; -} -__asm__("DS\t0H\n" -"* Dummy SYNAD for our READ BDAM DCB\n" -"RDSYNAD\tDS\t0H\n" -" BR\t14" -); diff --git a/src/crent370/emfile/@@emrblk.o b/src/crent370/emfile/@@emrblk.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emrblk.s b/src/crent370/emfile/@@emrblk.s deleted file mode 100644 index 32f1091..0000000 --- a/src/crent370/emfile/@@emrblk.s +++ /dev/null @@ -1,210 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emrblk.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@6 EQU * - DC C'emfile_read_block' - DC X'0' - DS 0F - EJECT -* external function 'emfile_read_block' prologue -* frame base=88, local stack=8, call args=24 -&FUNC SETC 'emfile_read_block' -@@EMRBLK PDPPRLG CINDEX=0,FRAME=120,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_read_block' code - L 6,0(11) ==> f - L 9,4(11) ==> block - SLR 5,5 ==> rc - LR 8,5 ==> retry,rc - ST 5,112(13) ==> rc - ST 6,88(13) ==> f - LA 1,88(,13) - L 15,=V(@@EMFLUS) - BALR 14,15 - LR 5,15 ==> rc - LTR 15,15 ==> rc - BNE @@L3 - L 2,36(6) ==> .blocks - LTR 2,2 - BNE @@L4 - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@6) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LA 5,8(0,0) ==> rc - B @@L3 -@@L4 EQU * - CL 9,36(6) ==> block,blocks - BNH @@L5 - MVC 88(4,13),=A(@@LC1) - MVC 92(4,13),=A(@@6) - ST 9,96(13) ==> block - MVC 100(4,13),36(6) ==> .blocks - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LA 5,12(0,0) ==> rc - B @@L3 -@@L5 EQU * - LA 2,112(,13) - LA 0,RDSYNAD - ST 0,0(,2) - L 2,52(6) ==> .bdamdcb - MVC 116(4,13),56(2) ==> old_synad,dcbsynad - MVC 56(4,2),112(13) ==> .dcbsynad -@@L6 EQU * - MVC 88(4,13),56(6) ==> .bdamdecb - MVC 92(4,13),52(6) ==> .bdamdcb - MVC 96(4,13),8(11) ==> buf - MVC 100(4,13),48(6) ==> .blksize - ST 9,104(13) ==> block - LA 1,88(,13) - L 15,=V(OSDREAD) - BALR 14,15 - LR 5,15 ==> rc - LTR 15,15 ==> rc - BE @@L7 - MVC 88(4,13),=A(@@LC2) - MVC 92(4,13),=A(@@6) - ST 9,96(13) ==> block - ST 15,100(13) ==> rc - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),52(6) ==> .bdamdcb - MVC 92(4,13),=F'104' - MVC 96(4,13),=A(@@LC3) - MVC 100(4,13),=A(@@6) - LA 1,88(,13) - L 15,=V(WTODUMPF) - BALR 14,15 - B @@L3 -@@L7 EQU * - MVC 88(4,13),56(6) ==> .bdamdecb - LA 1,88(,13) - L 15,=V(OSCHECK) - BALR 14,15 - LR 5,15 ==> rc - L 2,56(6) ==> .bdamdecb - L 7,0(2) ==> ecb,decsdecb - LTR 15,15 ==> rc - BNE @@L9 - L 2,=F'1073741824' - CLR 7,2 ==> ecb - BE @@L8 -@@L9 EQU * - MVC 88(4,13),=A(@@LC4) - MVC 92(4,13),=A(@@6) - ST 9,96(13) ==> block - ST 5,100(13) ==> rc - ST 7,104(13) ==> ecb - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LTR 8,8 ==> retry - BNE @@L10 - LA 8,1(0,0) ==> retry - MVC 88(4,13),52(6) ==> .bdamdcb - ST 8,92(13) ==> retry - LA 1,88(,13) - L 15,=V(OSDCLOSE) - BALR 14,15 - LR 2,6 ==> f - A 2,=F'68' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(OSDDCB) - BALR 14,15 - ST 15,52(6) ==> rc,bdamdcb - ST 15,88(13) ==> rc - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(OSDOPEN) - BALR 14,15 - LR 5,15 ==> rc - L 2,52(6) ==> .bdamdcb - MVC 56(4,2),112(13) ==> .dcbsynad - L 4,56(6) ==> s,bdamdecb - SLR 3,3 ==> c - LA 2,32(0,0) ==> n - -*** MEMSET *** - LR 14,4 => target (s) ==> s - LR 15,2 => length (n) ==> n - SLR 0,0 => source (NULL) - LR 1,3 fill character ==> c - SLL 1,24 move fill to high byte - MVCL 14,0 Set target to fill character - LTR 5,5 ==> rc - BE @@L6 -@@L10 EQU * - LTR 5,5 ==> rc - BNE @@L8 - LR 5,7 ==> rc,ecb -@@L8 EQU * - L 2,52(6) ==> .bdamdcb - MVC 56(4,2),116(13) ==> .dcbsynad,old_synad - LTR 5,5 ==> rc - BNE @@L3 - L 2,8(11) ==> buf - CL 2,60(6) ==> .buf - BNE @@L3 - ST 9,32(6) ==> block,block - NC 122(2,6),=H'-2' ==> .flags -@@L3 EQU * - LR 15,5 ==> rc -* Function 'emfile_read_block' epilogue - PDPEPIL -* Function 'emfile_read_block' literal pool - DS 0D - LTORG -* Function 'emfile_read_block' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s: empty file' - DC X'0' -@@LC1 EQU * - DC C'%s: desired block %u beyond EOF %u' - DC X'0' -@@LC2 EQU * - DC C'%s: osdread() block=%u rc=%d' - DC X'0' -@@LC3 EQU * - DC C'%s: BDAMDCB' - DC X'0' -@@LC4 EQU * - DC C'%s: oscheck() block=%u rc=%d ecb=0x%08X' - DC X'0' - DS 0H -* Dummy SYNAD for our READ BDAM DCB -RDSYNAD DS 0H - BR 14 - END diff --git a/src/crent370/emfile/@@emrbyt.c b/src/crent370/emfile/@@emrbyt.c deleted file mode 100644 index f5ecd89..0000000 --- a/src/crent370/emfile/@@emrbyt.c +++ /dev/null @@ -1,115 +0,0 @@ -#include "emfilei.h" - -/* returns bytes read (>=0) or error (<0) */ -int emfile_read_bytes(EMFILE *f, char *buf, unsigned size, const char *stopc) -{ - int rc = EPERM; - char *cp = NULL; - int read = 0; - unsigned length = (unsigned)size; - unsigned len; - unsigned block; - unsigned pos; - __64 toffset; - - // wtof("%s: enter", __func__); - - if (!(f->flags & EMFILE_FLAG_READ)) goto quit; - - if (f->flags & EMFILE_FLAG_EOF) { - read = EOF; - goto quit_eof; - } - - rc = 0; - while (size > 0) { - if (__64_cmp(&f->offset, &f->used) != __64_SMALLER) { - f->flags |= EMFILE_FLAG_EOF; - /* we don't set f->error as EOF is not an error */ - break; /* we'll return the bytes we've already read */ - } - - /* calculate buffer position and block number */ - rc = emfile_offset_block_pos(f, &block, &pos); - if (rc) goto quit; - - // wtof("%s: block=%u pos=%u", __func__, block, pos); - - if (block != f->block) { - /* flush any pending output */ - rc = emfile_flush(f); - if (rc) goto quit; - - /* read the block for this write */ - rc = emfile_read_block(f, block, f->buf); - if (rc) goto quit; - } - - if ((pos + size) > f->blksize) { - len = f->blksize - pos; - } - else { - len = size; - } - - /* if (offset + len > used) len = used - offset; */ - // wtof("%s: f->offset=%llu len=%u f->used=%llu", __func__, f->offset, len, f->used); - __64_add_u32(&f->offset, len, &toffset); - if (__64_cmp(&toffset, &f->used) == __64_LARGER) { - __64_sub(&f->used, &f->offset, &toffset); - len = toffset.u32[1]; - // wtof("%s: new len=%u", __func__, len); - } - - if (!len) { - // wtof("%s: len==0 EOF detected", __func__); - f->flags |= EMFILE_FLAG_EOF; - break; - } - if (len > f->blksize) { - /* should never happen */ - // wtof("%s: len > f->blksize", __func__); - rc = EPERM; - goto quit; - } - - memcpy(buf, &f->buf[pos], len); - if (len < size) buf[len] = 0; - if (stopc) { - cp = memchr(buf, *stopc, len); - // wtof("%s: len=%u buf=0x%08X cp=0x%08X", __func__, len, buf, cp); - - if (cp) { - unsigned bytes = (unsigned)((cp - buf) + 1); - unsigned i = len - bytes; - - // wtof("%s: stopc=0x%02X bytes=%u i=%u", __func__, *stopc, bytes, i); - if (i>0) memset(&buf[bytes], 0, i); - // wtodumpf(buf, len, "%s: buf", __func__); - len = bytes; - } - } - - read += len; - buf += len; - size -= len; - __64_add_u32(&f->offset, len, &f->offset); - // wtof("%s: f->offset=%llu f->used=%llu", __func__, f->offset, f->used); - - if (cp) break; - } - - rc = 0; - -quit: - if (rc) { - f->error = rc; - if (!errno) errno = rc; - if (rc > 0) rc *= -1; /* make rc negative value */ - read = rc; - } - -quit_eof: - // wtof("%s: exit rc=%d", __func__, read); - return read; -} diff --git a/src/crent370/emfile/@@emrbyt.o b/src/crent370/emfile/@@emrbyt.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emrbyt.s b/src/crent370/emfile/@@emrbyt.s deleted file mode 100644 index 649cacd..0000000 --- a/src/crent370/emfile/@@emrbyt.s +++ /dev/null @@ -1,243 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emrbyt.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'emfile_read_bytes' prologue -* frame base=88, local stack=24, call args=16 -&FUNC SETC 'emfile_read_bytes' -@@EMRBYT PDPPRLG CINDEX=0,FRAME=128,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_read_bytes' code - L 6,0(11) ==> f - L 8,4(11) ==> buf - L 7,8(11) ==> size - LA 4,1(0,0) ==> rc - SLR 9,9 ==> read - ST 9,120(13) ==> read,cp - LH 3,122(6) ==> .flags - LR 2,3 - N 2,=F'128' - CH 2,=H'0' - BE @@L3 - LR 2,3 - N 2,=F'2' - CH 2,=H'0' - BE @@L4 - L 9,=F'-1' ==> read - B @@L5 -@@L31 EQU * - OC 122(2,6),=H'2' ==> .flags - B @@L7 -@@L32 EQU * - LA 4,1(0,0) ==> rc - B @@L3 -@@L4 EQU * - LTR 7,7 ==> size - BE @@L7 -@@L25 EQU * - LR 2,6 ==> f - A 2,=F'24' - ST 2,88(13) - A 2,=F'-8' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@64CMP) - BALR 14,15 - L 2,=F'-1' - CLR 15,2 ==> rc - BNE @@L31 - ST 6,88(13) ==> f - LA 2,104(,13) - ST 2,92(13) - LA 2,108(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@EMOBPO) - BALR 14,15 - LR 4,15 ==> rc - LTR 15,15 ==> rc - BNE @@L3 - L 2,104(13) - CL 2,32(6) ==> .block - BE @@L11 - ST 6,88(13) ==> f - LA 1,88(,13) - L 15,=V(@@EMFLUS) - BALR 14,15 - LR 4,15 ==> rc - LTR 15,15 ==> rc - BNE @@L3 - ST 6,88(13) ==> f - MVC 92(4,13),104(13) - MVC 96(4,13),60(6) ==> .buf - LA 1,88(,13) - L 15,=V(@@EMRBLK) - BALR 14,15 - LR 4,15 ==> rc - LTR 15,15 ==> rc - BNE @@L3 -@@L11 EQU * - LR 2,7 ==> size - A 2,108(13) - CL 2,48(6) ==> .blksize - BNH @@L14 - L 3,48(6) ==> len,blksize - S 3,108(13) ==> len - B @@L15 -@@L14 EQU * - LR 3,7 ==> len,size -@@L15 EQU * - LR 4,6 ==> f - A 4,=F'24' - ST 4,88(13) - ST 3,92(13) ==> len - LA 2,112(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64AU32) - BALR 14,15 - LA 2,112(,13) - ST 2,88(13) - LR 2,6 ==> f - A 2,=F'16' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@64CMP) - BALR 14,15 - LA 5,1(0,0) - CLR 15,5 ==> rc - BNE @@L16 - ST 2,88(13) - ST 4,92(13) - LA 2,112(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64SUB) - BALR 14,15 - L 3,116(13) ==> len,u32 -@@L16 EQU * - LTR 3,3 ==> len - BE @@L31 - CL 3,48(6) ==> len,blksize - BH @@L32 - ST 8,88(13) ==> buf - L 2,60(6) ==> .buf - A 2,108(13) - ST 2,92(13) - ST 3,96(13) ==> len - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - CLR 3,7 ==> len,size - BNL @@L19 - SLR 2,2 - STC 2,0(3,8) ==> len -@@L19 EQU * - L 4,12(11) ==> stopc - LTR 4,4 - BE @@L20 - ST 8,88(13) ==> buf - SLR 2,2 - IC 2,0(4) - ST 2,92(13) - ST 3,96(13) ==> len - LA 1,88(,13) - L 15,=V(MEMCHR) - BALR 14,15 - ST 15,120(13) ==> cp - LTR 15,15 - BE @@L20 - LR 4,15 ==> bytes - SR 4,8 ==> bytes,buf - A 4,=F'1' ==> bytes - LR 5,3 ==> i,len - SR 5,4 ==> i,bytes - BE @@L22 - LR 3,8 ==> s,buf - AR 3,4 ==> s,bytes - SLR 2,2 ==> c - -*** MEMSET *** - LR 14,3 => target (s) ==> s - LR 15,5 => length (n) ==> i - SLR 0,0 => source (NULL) - LR 1,2 fill character ==> c - SLL 1,24 move fill to high byte - MVCL 14,0 Set target to fill character -@@L22 EQU * - LR 3,4 ==> len,bytes -@@L20 EQU * - AR 9,3 ==> read,len - AR 8,3 ==> buf,len - SR 7,3 ==> size,len - LR 2,6 ==> f - A 2,=F'24' - ST 2,88(13) - ST 3,92(13) ==> len - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64AU32) - BALR 14,15 - L 5,120(13) ==> cp - LTR 5,5 - BNE @@L7 - LTR 7,7 ==> size - BNE @@L25 -@@L7 EQU * - SLR 4,4 ==> rc -@@L3 EQU * - LTR 4,4 ==> rc - BE @@L5 - ST 4,128(6) ==> rc,error - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - L 2,0(15) ==> rc - LTR 2,2 - BNE @@L27 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - ST 4,0(15) ==> rc -@@L27 EQU * - LPR 4,4 ==> rc - LCR 4,4 ==> rc - LR 9,4 ==> read,rc -@@L5 EQU * - LR 15,9 ==> read -* Function 'emfile_read_bytes' epilogue - PDPEPIL -* Function 'emfile_read_bytes' literal pool - DS 0D - LTORG -* Function 'emfile_read_bytes' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/emfile/@@emrhdr.c b/src/crent370/emfile/@@emrhdr.c deleted file mode 100644 index 8ec9e7e..0000000 --- a/src/crent370/emfile/@@emrhdr.c +++ /dev/null @@ -1,36 +0,0 @@ -#include "emfilei.h" - -int emfile_read_header(EMFILE *f) -{ - int rc = 0; - EMFILE10 *hdr = (EMFILE10 *)f->r0; - char *buf = NULL; - - // wtof("%s: enter", __func__); - - buf = calloc(1, f->blksize); - if (!buf) { - errno = ENOMEM; - rc = -1; - goto quit; - } - - rc = emfile_read_block(f, 0, buf); - if (rc) goto quit; - - /* copy header record */ - memcpy(f->r0, buf, sizeof(EMFILE10)); - - /* update emfile handle */ - f->used = hdr->size; - - /* sanity check, offset must be less than or equal to bytes */ - if (__64_cmp(&f->used, &f->offset) == __64_SMALLER) { - f->offset = f->used; - } - -quit: - if (buf) free(buf); - // wtof("%s: exit rc=%d", __func__, rc); - return rc; -} diff --git a/src/crent370/emfile/@@emrhdr.o b/src/crent370/emfile/@@emrhdr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emrhdr.s b/src/crent370/emfile/@@emrhdr.s deleted file mode 100644 index 3cd846e..0000000 --- a/src/crent370/emfile/@@emrhdr.s +++ /dev/null @@ -1,100 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emrhdr.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'emfile_read_header' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'emfile_read_header' -@@EMRHDR PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_read_header' code - L 2,0(11) ==> f - L 5,64(2) ==> hdr,r0 - MVC 88(4,13),=F'1' - MVC 92(4,13),48(2) ==> .blksize - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 3,15 ==> buf - LTR 15,15 ==> buf - BNE @@L2 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - MVC 0(4,15),=F'12' ==> rc - L 4,=F'-1' ==> rc - B @@L3 -@@L2 EQU * - ST 2,88(13) ==> f - MVC 92(4,13),=F'0' - ST 15,96(13) ==> buf - LA 1,88(,13) - L 15,=V(@@EMRBLK) - BALR 14,15 - LR 4,15 ==> rc - LTR 15,15 ==> rc - BNE @@L3 - MVC 88(4,13),64(2) ==> .r0 - ST 3,92(13) ==> buf - MVC 96(4,13),=F'40' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - MVC 16(8,2),32(5) ==> .used,size - LR 5,2 ==> f - A 5,=F'16' - ST 5,88(13) - A 2,=F'24' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@64CMP) - BALR 14,15 - L 6,=F'-1' - CLR 15,6 ==> rc - BNE @@L3 - MVC 0(8,2),0(5) ==> .offset,used -@@L3 EQU * - LTR 3,3 ==> buf - BE @@L6 - ST 3,88(13) ==> buf - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L6 EQU * - LR 15,4 ==> rc -* Function 'emfile_read_header' epilogue - PDPEPIL -* Function 'emfile_read_header' literal pool - DS 0D - LTORG -* Function 'emfile_read_header' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/emfile/@@emscfg.c b/src/crent370/emfile/@@emscfg.c deleted file mode 100644 index 8f12abc..0000000 --- a/src/crent370/emfile/@@emscfg.c +++ /dev/null @@ -1,61 +0,0 @@ -#include "emfilei.h" - -int emfile_set_config( /* ... (default value) */ - EMFILE_SPACE space, /* EMFILE_SPACE_ TRACK or CYL (track) */ - unsigned blksize, /* block size (4096) */ - unsigned primary, /* primary tracks or cylinders (15) */ - unsigned secondary, /* secondary tracks or cylinders (15) */ - const char *vols) /* volume serial names (none) */ -{ - int rc = ENOSPC; - EMFILEWSA *wsa = emfile_get_wsa(); - int i; - - if (!wsa) goto quit; - - if (space == EMFILE_SPACE_TRACK) { - wsa->space = EMFILE_SPACE_TRACK; - } - else { - wsa->space = EMFILE_SPACE_CYL; - } - - if (blksize) { - wsa->blksize = blksize; - } - else { - wsa->blksize = 4096; /* default block size */ - } - - if (primary) { - wsa->primary = primary; - } - else { - wsa->primary = 15; /* default primary space */ - } - - wsa->secondary = secondary; - - if (wsa->vols) { - free(wsa->vols); - wsa->vols = NULL; - } - - if (vols) { - wsa->vols = strdup(vols); - if (!wsa->vols) { - rc = ENOSPC; - goto quit; - } - for(i=0; wsa->vols[i]; i++) { - /* fold volser characters to upper case */ - wsa->vols[i] = toupper(wsa->vols[i]); - } - } - - rc = 0; - -quit: - if (rc) errno = rc; - return rc; -} diff --git a/src/crent370/emfile/@@emscfg.o b/src/crent370/emfile/@@emscfg.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emscfg.s b/src/crent370/emfile/@@emscfg.s deleted file mode 100644 index 52b810a..0000000 --- a/src/crent370/emfile/@@emscfg.s +++ /dev/null @@ -1,125 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emscfg.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'emfile_set_config' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'emfile_set_config' -@@EMSCFG PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_set_config' code - L 3,4(11) ==> blksize - L 5,8(11) ==> primary - L 6,16(11) ==> vols - LA 2,28(0,0) ==> rc - LA 1,88(,13) - L 15,=V(@@EMGWSA) - BALR 14,15 - LR 4,15 ==> wsa - LTR 15,15 ==> wsa - BE @@L3 - L 7,0(11) ==> space - LPR 2,7 - LCR 2,2 - SRL 2,31 - ST 2,8(15) ==> .space - LTR 3,3 ==> blksize - BE @@L6 - ST 3,12(15) ==> blksize,blksize - B @@L7 -@@L6 EQU * - MVC 12(4,15),=F'4096' ==> .blksize -@@L7 EQU * - LTR 5,5 ==> primary - BE @@L8 - ST 5,16(4) ==> primary,primary - B @@L9 -@@L8 EQU * - MVC 16(4,4),=F'15' ==> .primary -@@L9 EQU * - MVC 20(4,4),12(11) ==> .secondary,secondary - L 2,24(4) ==> .vols - LTR 2,2 - BE @@L10 - ST 2,88(13) - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - MVC 24(4,4),=F'0' ==> .vols -@@L10 EQU * - LTR 6,6 ==> vols - BE @@L11 - ST 6,88(13) ==> vols - LA 1,88(,13) - L 15,=V(STRDUP) - BALR 14,15 - ST 15,24(4) ==> wsa,vols - LA 2,28(0,0) ==> rc - LTR 15,15 ==> wsa - BE @@L3 - SLR 5,5 ==> i - L 2,24(4) ==> .vols - IC 2,0(2) - CLM 2,1,=XL1'00' - BE @@L11 -@@L17 EQU * - L 3,24(4) ==> .vols - SLR 2,2 - IC 2,0(5,3) ==> i - ST 2,88(13) - LA 1,88(,13) - L 15,=V(TOUPPER) - BALR 14,15 - STC 15,0(5,3) ==> wsa,i - A 5,=F'1' ==> i - L 2,24(4) ==> .vols - IC 2,0(5,2) ==> i - CLM 2,1,=XL1'00' - BNE @@L17 -@@L11 EQU * - SLR 2,2 ==> rc -@@L3 EQU * - LTR 2,2 ==> rc - BE @@L18 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - ST 2,0(15) ==> rc,wsa -@@L18 EQU * - LR 15,2 ==> rc -* Function 'emfile_set_config' epilogue - PDPEPIL -* Function 'emfile_set_config' literal pool - DS 0D - LTORG -* Function 'emfile_set_config' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/emfile/@@emsddn.c b/src/crent370/emfile/@@emsddn.c deleted file mode 100644 index 6dc5511..0000000 --- a/src/crent370/emfile/@@emsddn.c +++ /dev/null @@ -1,14 +0,0 @@ -#include "emfilei.h" - -int emfile_set_ddn(const char *ddn, char *dest) -{ - int rc = 0; - int i; - - for(i=0; (i < MAXDDN) && (ddn[i]); i++) { - dest[i] = toupper(ddn[i]); - } - dest[i] = 0; - - return rc; -} diff --git a/src/crent370/emfile/@@emsddn.o b/src/crent370/emfile/@@emsddn.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emsddn.s b/src/crent370/emfile/@@emsddn.s deleted file mode 100644 index 4fb92da..0000000 --- a/src/crent370/emfile/@@emsddn.s +++ /dev/null @@ -1,72 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emsddn.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'emfile_set_ddn' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'emfile_set_ddn' -@@EMSDDN PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_set_ddn' code - L 4,0(11) ==> ddn - L 5,4(11) ==> dest - SLR 6,6 ==> rc - LR 3,6 ==> i,rc - IC 2,0(4) ==> ddn - CLM 2,1,=XL1'00' - BE @@L3 -@@L7 EQU * - SLR 2,2 - IC 2,0(3,4) ==> i - ST 2,88(13) - LA 1,88(,13) - L 15,=V(TOUPPER) - BALR 14,15 - STC 15,0(3,5) ==> rc,i - A 3,=F'1' ==> i - LA 2,7(0,0) - CR 3,2 ==> i - BH @@L3 - IC 2,0(3,4) ==> i - CLM 2,1,=XL1'00' - BNE @@L7 -@@L3 EQU * - SLR 2,2 - STC 2,0(3,5) ==> i - LR 15,6 ==> rc -* Function 'emfile_set_ddn' epilogue - PDPEPIL -* Function 'emfile_set_ddn' literal pool - DS 0D - LTORG -* Function 'emfile_set_ddn' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/emfile/@@emsdsn.c b/src/crent370/emfile/@@emsdsn.c deleted file mode 100644 index 0ad9117..0000000 --- a/src/crent370/emfile/@@emsdsn.c +++ /dev/null @@ -1,15 +0,0 @@ -#include "emfilei.h" - -int emfile_set_dsn(const char *dsn, char *dest) -{ - int rc = 0; - int i; - - for(i=0; (i < MAXDSN) && (dsn[i] > ' '); i++) { - if (!dsn[i]) break; - dest[i] = toupper(dsn[i]); - } - dest[i] = 0; - - return rc; -} diff --git a/src/crent370/emfile/@@emsdsn.o b/src/crent370/emfile/@@emsdsn.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emsdsn.s b/src/crent370/emfile/@@emsdsn.s deleted file mode 100644 index 8d70aab..0000000 --- a/src/crent370/emfile/@@emsdsn.s +++ /dev/null @@ -1,74 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emsdsn.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'emfile_set_dsn' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'emfile_set_dsn' -@@EMSDSN PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_set_dsn' code - L 4,0(11) ==> dsn - L 5,4(11) ==> dest - SLR 6,6 ==> rc - LR 3,6 ==> i,rc - CLI 0(4),64 ==> dsn - BNH @@L3 -@@L8 EQU * - IC 2,0(3,4) ==> i - CLM 2,1,=XL1'00' - BE @@L3 - SLR 2,2 - IC 2,0(3,4) ==> i - ST 2,88(13) - LA 1,88(,13) - L 15,=V(TOUPPER) - BALR 14,15 - STC 15,0(3,5) ==> rc,i - A 3,=F'1' ==> i - LA 2,43(0,0) - CR 3,2 ==> i - BH @@L3 - IC 2,0(3,4) ==> i - CLM 2,1,=XL1'40' - BH @@L8 -@@L3 EQU * - SLR 2,2 - STC 2,0(3,5) ==> i - LR 15,6 ==> rc -* Function 'emfile_set_dsn' epilogue - PDPEPIL -* Function 'emfile_set_dsn' literal pool - DS 0D - LTORG -* Function 'emfile_set_dsn' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/emfile/@@emseek.c b/src/crent370/emfile/@@emseek.c deleted file mode 100644 index 2197831..0000000 --- a/src/crent370/emfile/@@emseek.c +++ /dev/null @@ -1,117 +0,0 @@ -#include "emfilei.h" - -int emfile_seek(EMFILE *f, long int offset, int origin) -{ - int rc = 0; - - // wtof("%s: enter", __func__); - - if (!f) { - errno = rc = EBADF; - goto quit; - } - - switch(origin) { - case SEEK_SET: - // wtof("%s: SEEK_SET offset=%d", __func__, offset); - if (offset >= 0) { - __64_from_u32(&f->offset, (unsigned)offset); - } - else { - __64_from_u32(&f->offset, 0); - } - break; - - case SEEK_CUR: - // wtof("%s: SEEK_CUR offset=%d", __func__, offset); - if (offset >= 0) { - __64_add_u32(&f->offset, (unsigned)offset, &f->offset); - } - else { - offset *= -1; /* make positive value */ - if (__64_cmp_u32(&f->offset, (unsigned)offset) != __64_SMALLER) { - __64_sub_u32(&f->offset, (unsigned)offset, &f->offset); - } - else { - /* new offset is start of file */ - __64_from_u32(&f->offset, 0); - } - } - break; - - case SEEK_END: - // wtof("%s: SEEK_END offset=%d", __func__, offset); - if (offset >= 0) { - /* this will cause the file to grow beyond end of file */ - __64_add_u32(&f->used, (unsigned)offset, &f->offset); - } - else { - offset *= -1; /* make positive value */ - if (__64_cmp_u32(&f->used, (unsigned)offset) != __64_SMALLER) { - __64_sub_u32(&f->used, (unsigned)offset, &f->offset); - } - else { - /* new offset is start of file */ - __64_from_u32(&f->offset, 0); - } - } - break; - - default: - errno = rc = EINVAL; - goto quit; - } - - /* Here we attempt to handle the case of the new offset being - * beyond the logical end of file (f->used) and adjust the - * offset (READ ONLY) or grow the file to accomodate the new - * offset and adjust the end of file for the new offset. - */ - - if (__64_cmp(&f->offset, &f->used)==__64_LARGER) { - /* offset is beyond logical end of file */ - __64 diff; - - if (!(f->flags & EMFILE_FLAG_WRITE)) { - /* read only file */ - f->offset = f->used; /* let's keep them in bounds for now */ - goto quit; - } - - /* write enabled file */ - - /* is offset <= allocated bytes? */ - if (__64_cmp(&f->offset, &f->alloc) != __64_LARGER) { - /* Yes, move end of file to offset */ - f->used = f->offset; - goto quit; - } - - /* offset is larger than allocated bytes */ - - /* move end of file to total allocated bytes */ - f->used = f->alloc; - - /* calculate how many bytes we need to grow the file */ - __64_sub(&f->offset, &f->alloc, &diff); - if (diff.u32[1]) { - rc = emfile_grow(f, diff.u32[1]); - if (rc) goto quit; - - /* add bytes we grew to the end of file offset */ - __64_add(&f->used, &diff, &f->used); - } - } - -quit: - if (rc==0) { - /* A successful seek always resets the EOF flag */ - f->flags &= ~EMFILE_FLAG_EOF; /* reset EOF flag */ - } - if (f) { - // wtof("%s: alloc=%llu used=%llu offset=%llu", - // __func__, f->alloc, f->used, f->offset); - } - // wtof("%s: exit rc=%d", __func__, rc); - return rc; -} diff --git a/src/crent370/emfile/@@emseek.o b/src/crent370/emfile/@@emseek.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emseek.s b/src/crent370/emfile/@@emseek.s deleted file mode 100644 index 089eac1..0000000 --- a/src/crent370/emfile/@@emseek.s +++ /dev/null @@ -1,227 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emseek.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'emfile_seek' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'emfile_seek' -@@EMSEEK PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_seek' code - L 5,0(11) ==> f - L 3,4(11) ==> offset - L 2,8(11) ==> origin - SLR 6,6 ==> rc - LTR 5,5 ==> f - BNE @@L2 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - LA 6,9(0,0) ==> rc - B @@L31 -@@L2 EQU * - LA 4,1(0,0) - CR 2,4 ==> origin - BE @@L8 - BH @@L20 - LTR 2,2 ==> origin - BE @@L5 - B @@L18 -@@L20 EQU * - LA 4,2(0,0) - CLR 2,4 ==> origin - BE @@L13 - B @@L18 -@@L5 EQU * - LTR 3,3 ==> offset - BL @@L16 - LR 2,5 ==> f - A 2,=F'24' - ST 2,88(13) - ST 3,92(13) ==> offset - B @@L30 -@@L8 EQU * - LTR 3,3 ==> offset - BL @@L9 - LR 2,5 ==> f - A 2,=F'24' - ST 2,88(13) - ST 3,92(13) ==> offset - B @@L29 -@@L9 EQU * - LCR 3,3 ==> offset - LR 2,5 ==> f - A 2,=F'24' - ST 2,88(13) - ST 3,92(13) ==> offset - LA 1,88(,13) - L 15,=V(@@64CU32) - BALR 14,15 - L 4,=F'-1' - CLR 15,4 ==> rc - BE @@L16 - ST 2,88(13) - ST 3,92(13) ==> offset - B @@L28 -@@L13 EQU * - LTR 3,3 ==> offset - BL @@L14 - LR 2,5 ==> f - A 2,=F'16' - ST 2,88(13) - ST 3,92(13) ==> offset - A 2,=F'8' -@@L29 EQU * - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64AU32) - BALR 14,15 - B @@L4 -@@L14 EQU * - LCR 3,3 ==> offset - LR 2,5 ==> f - A 2,=F'16' - ST 2,88(13) - ST 3,92(13) ==> offset - LA 1,88(,13) - L 15,=V(@@64CU32) - BALR 14,15 - L 4,=F'-1' - CLR 15,4 ==> rc - BE @@L16 - ST 2,88(13) - ST 3,92(13) ==> offset - A 2,=F'8' -@@L28 EQU * - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64SU32) - BALR 14,15 - B @@L4 -@@L16 EQU * - LR 2,5 ==> f - A 2,=F'24' - ST 2,88(13) - MVC 92(4,13),=F'0' -@@L30 EQU * - LA 1,88(,13) - L 15,=V(@@64FU32) - BALR 14,15 - B @@L4 -@@L18 EQU * - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - LA 6,22(0,0) ==> rc -@@L31 EQU * - ST 6,0(15) ==> rc - B @@L3 -@@L4 EQU * - LR 4,5 ==> f - A 4,=F'24' - ST 4,88(13) - LR 3,5 ==> f - A 3,=F'16' - ST 3,92(13) - LA 1,88(,13) - L 15,=V(@@64CMP) - BALR 14,15 - LA 2,1(0,0) - CLR 15,2 ==> rc - BNE @@L3 - LH 2,122(5) ==> .flags - N 2,=F'64' - CH 2,=H'0' - BNE @@L22 - MVC 0(8,4),0(3) ==> .offset,used - B @@L3 -@@L22 EQU * - LR 3,5 ==> f - A 3,=F'24' - ST 3,88(13) - LR 2,5 ==> f - A 2,=F'8' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@64CMP) - BALR 14,15 - LA 4,1(0,0) - CLR 15,4 ==> rc - BE @@L23 - MVC 16(8,5),0(3) ==> .used,offset - B @@L3 -@@L23 EQU * - MVC 16(8,5),8(5) ==> .used,alloc - LR 2,5 ==> f - A 2,=F'24' - ST 2,88(13) - A 2,=F'-16' - ST 2,92(13) - LA 2,104(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64SUB) - BALR 14,15 - LA 3,108(,13) - L 2,0(3) ==> .u32 - LTR 2,2 - BE @@L3 - ST 5,88(13) ==> f - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@EMGROW) - BALR 14,15 - LR 6,15 ==> rc - LTR 15,15 ==> rc - BNE @@L3 - LR 3,5 ==> f - A 3,=F'16' - ST 3,88(13) - LA 2,104(,13) - ST 2,92(13) - ST 3,96(13) - LA 1,88(,13) - L 15,=V(@@64ADD) - BALR 14,15 -@@L3 EQU * - LTR 6,6 ==> rc - BNE @@L26 - NC 122(2,5),=H'-3' ==> .flags -@@L26 EQU * - LR 15,6 ==> rc -* Function 'emfile_seek' epilogue - PDPEPIL -* Function 'emfile_seek' literal pool - DS 0D - LTORG -* Function 'emfile_seek' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/emfile/@@emsetu.c b/src/crent370/emfile/@@emsetu.c deleted file mode 100644 index 274fa93..0000000 --- a/src/crent370/emfile/@@emsetu.c +++ /dev/null @@ -1,136 +0,0 @@ -#include "emfilei.h" - -int emfile_setup(EMFILE *f) -{ - EMFILEWSA *wsa = emfile_get_wsa(); - int rc; - JFCB jfcb = {0}; - - /* common setup for emfile_open() and emfile_create() */ - // wtof("%s: enter", __func__); - - f->bdamdecb = calloc(1, sizeof(DECB)); - if (!f->bdamdecb) { - wtof("%s: bdamdecb no memory", __func__); - rc = ENOMEM; - goto failed; - } - - /* allocate a BDAM DCB */ - f->bdamdcb = osddcb(f->ddname); - if (!f->bdamdcb) { - wtof("%s: no memory", __func__); - rc = ENOMEM; - goto failed; - } - - /* get the dataset name from the Job File Control Block */ - rc = rdjfcb(f->bdamdcb, &jfcb); - if (rc) { - wtof("%s: rdjfcb() failed rc=%d", __func__, rc); - rc = EACCES; - goto failed; - } - wtodumpf(&jfcb, sizeof(JFCB), "%s: new code JFCB", __func__); - - emfile_set_dsn(jfcb.jfcbdsnm, f->dsname); - - emfile_set_volser(f, &jfcb); - - f->blksize = jfcb.jfcblksi; - wtof("%s: jfcb.jfcblksi=%u", __func__, jfcb.jfcblksi); - - /* calculate size of dataset */ - rc = emfile_calc_size(f); - // wtof("%s: emfile_calc_size() rc=%d", __func__, rc); - if (rc) goto failed; - - wtof("%s: f->blksize=%u", __func__, f->blksize); - - f->buf = calloc(1, f->blksize); - if (!f->buf) { - wtof("%s: f->buf no memory", __func__); - rc = ENOMEM; - goto failed; - } - - /* allocate buffer for header record */ - f->r0 = calloc(1, sizeof(EMFILE10)); - if (!f->r0) { - wtof("%s: f->r0 no memory", __func__); - rc = ENOMEM; - goto failed; - } - - /* check for empty dataset */ - wtof("%s: f->blocks=%u", __func__, f->blocks); - - /* check for empty dataset */ - // wtof("%s: f->blocks=%u", __func__, f->blocks); - if (f->blocks) goto open; - - /* dataset is empty */ - if (!(f->flags & EMFILE_FLAG_WRITE)) goto failed; - - /* dataset is empty and in WRITE/UPDATE mode */ - f->flags |= EMFILE_FLAG_NEW; /* a fresh virgin 'file' */ - - /* initialize dataset as emulated file */ - if (jfcb.jfcbnvol > 1) { - /* multi volume dataset, initialize all extents on all volumes */ - f->flags |= EMFILE_FLAG_MULTIV; - rc = emfile_full_init(f->ddname, f->blksize, &jfcb); - // wtof("%s: emfile_full_init(\"%s\",%u) rc=%d", - // __func__, f->ddname, f->blksize, rc); - if (rc) goto failed; - - /* full init was performed */ - f->flags |= EMFILE_FLAG_FULL; - } - else { - rc = emfile_init(f->ddname, f->blksize, &jfcb); - // wtof("%s: emfile_init(\"%s\",%u) rc=%d", - // __func__, f->ddname, f->blksize, rc); - if (rc) goto failed; - - /* partial init was performed */ - f->flags |= EMFILE_FLAG_GROW; - } - - /* calculate space used */ - rc = emfile_calc_size(f); - // wtof("%s: emfile_calc_size() rc=%d", __func__, rc); - if (rc) goto failed; - -open: - /* open the BDAM dataset */ - rc = osdopen(f->bdamdcb, 0); - if (rc) { - wtof("%s: osdopen() failed rc=%d", __func__, rc); - rc = EACCES; - goto failed; - } - - // wtodumpf(f->bdamdcb, sizeof(DCB), "%s: BDAMDCB", __func__); - -validate: - emfile_dump(f); - - /* read the header */ - rc = emfile_read_header(f); - if (rc) goto failed; - - /* validate header from block 0 */ - rc = emfile_validate(f); - // wtof("%s: emfile_validate() rc=%d", __func__, rc); - if (rc==0) goto quit; /* success */ - -failed: - // wtof("%s: failed", __func__); - f->error = rc; - errno = rc; - -quit: - // wtof("%s: exit rc=%d", __func__, rc); - return rc; -} diff --git a/src/crent370/emfile/@@emsetu.o b/src/crent370/emfile/@@emsetu.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emsetu.s b/src/crent370/emfile/@@emsetu.s deleted file mode 100644 index d857a57..0000000 --- a/src/crent370/emfile/@@emsetu.s +++ /dev/null @@ -1,295 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emsetu.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@6 EQU * - DC C'emfile_setup' - DC X'0' - DS 0F - EJECT -* external function 'emfile_setup' prologue -* frame base=88, local stack=176, call args=16 -&FUNC SETC 'emfile_setup' -@@EMSETU PDPPRLG CINDEX=0,FRAME=280,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_setup' code - L 6,0(11) ==> f - LA 1,88(,13) - L 15,=V(@@EMGWSA) - BALR 14,15 - LA 4,104(,13) - LA 5,176(0,0) - SLR 2,2 - LR 3,2 - MVCL 4,2 - MVC 88(4,13),=F'1' - MVC 92(4,13),=F'32' - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - ST 15,56(6) ==> wsa,bdamdecb - LTR 15,15 ==> wsa - BNE @@L2 - MVC 88(4,13),=A(@@LC0) - B @@L22 -@@L2 EQU * - LR 2,6 ==> f - A 2,=F'68' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(OSDDCB) - BALR 14,15 - ST 15,52(6) ==> wsa,bdamdcb - LTR 15,15 ==> wsa - BNE @@L4 - MVC 88(4,13),=A(@@LC1) - B @@L22 -@@L4 EQU * - MVC 88(4,13),52(6) ==> .bdamdcb - LA 2,104(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(RDJFCB) - BALR 14,15 - LR 3,15 ==> rc - LTR 15,15 ==> rc - BE @@L5 - MVC 88(4,13),=A(@@LC2) - B @@L23 -@@L5 EQU * - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=F'176' - MVC 96(4,13),=A(@@LC3) - MVC 100(4,13),=A(@@6) - LA 1,88(,13) - L 15,=V(WTODUMPF) - BALR 14,15 - ST 2,88(13) - LR 3,6 ==> f - A 3,=F'77' - ST 3,92(13) - LA 1,88(,13) - L 15,=V(@@EMSDSN) - BALR 14,15 - ST 6,88(13) ==> f - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@EMSVOL) - BALR 14,15 - LH 2,206(13) ==> .jfcblksi - N 2,=XL4'0000FFFF' - ST 2,48(6) ==> .blksize - MVC 88(4,13),=A(@@LC4) - MVC 92(4,13),=A(@@6) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - ST 6,88(13) ==> f - LA 1,88(,13) - L 15,=V(@@EMCSIZ) - BALR 14,15 - LR 3,15 ==> rc - LTR 15,15 ==> rc - BNE @@L3 - MVC 88(4,13),=A(@@LC5) - MVC 92(4,13),=A(@@6) - MVC 96(4,13),48(6) ==> .blksize - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=F'1' - MVC 92(4,13),48(6) ==> .blksize - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - ST 15,60(6) ==> wsa,buf - LTR 15,15 ==> wsa - BNE @@L7 - MVC 88(4,13),=A(@@LC6) - B @@L22 -@@L7 EQU * - MVC 88(4,13),=F'1' - MVC 92(4,13),=F'40' - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - ST 15,64(6) ==> wsa,r0 - LTR 15,15 ==> wsa - BNE @@L8 - MVC 88(4,13),=A(@@LC7) -@@L22 EQU * - MVC 92(4,13),=A(@@6) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LA 3,12(0,0) ==> rc - B @@L3 -@@L8 EQU * - MVC 88(4,13),=A(@@LC8) - MVC 92(4,13),=A(@@6) - MVC 96(4,13),36(6) ==> .blocks - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - L 2,36(6) ==> .blocks - LTR 2,2 - BNE @@L10 - LH 4,122(6) ==> .flags - LR 2,4 - N 2,=F'64' - CH 2,=H'0' - BE @@L3 - LR 2,4 - O 2,=F'4' - STH 2,122(6) ==> .flags - CLI 221(13),1 ==> .jfcbnvol - BNH @@L12 - O 4,=F'-32764' - STH 4,122(6) ==> .flags - LR 2,6 ==> f - A 2,=F'68' - ST 2,88(13) - MVC 92(4,13),48(6) ==> .blksize - LA 2,104(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@EMFULL) - BALR 14,15 - LR 3,15 ==> rc - LTR 15,15 ==> rc - BNE @@L3 - OC 122(2,6),=H'8192' ==> .flags - B @@L14 -@@L12 EQU * - LR 2,6 ==> f - A 2,=F'68' - ST 2,88(13) - MVC 92(4,13),48(6) ==> .blksize - LA 2,104(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@EMINIT) - BALR 14,15 - LR 3,15 ==> rc - LTR 15,15 ==> rc - BNE @@L3 - OC 122(2,6),=H'16384' ==> .flags -@@L14 EQU * - ST 6,88(13) ==> f - LA 1,88(,13) - L 15,=V(@@EMCSIZ) - BALR 14,15 - LR 3,15 ==> rc - LTR 15,15 ==> rc - BNE @@L3 -@@L10 EQU * - MVC 88(4,13),52(6) ==> .bdamdcb - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(OSDOPEN) - BALR 14,15 - LR 3,15 ==> rc - LTR 15,15 ==> rc - BE @@L18 - MVC 88(4,13),=A(@@LC9) -@@L23 EQU * - MVC 92(4,13),=A(@@6) - ST 3,96(13) ==> rc - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LA 3,13(0,0) ==> rc - B @@L3 -@@L18 EQU * - ST 6,88(13) ==> f - LA 1,88(,13) - L 15,=V(@@EMDUMP) - BALR 14,15 - ST 6,88(13) ==> f - LA 1,88(,13) - L 15,=V(@@EMRHDR) - BALR 14,15 - LR 3,15 ==> rc - LTR 15,15 ==> rc - BNE @@L3 - ST 6,88(13) ==> f - LA 1,88(,13) - L 15,=V(@@EMVALI) - BALR 14,15 - LR 3,15 ==> rc - LTR 15,15 ==> rc - BE @@L21 -@@L3 EQU * - ST 3,128(6) ==> rc,error - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - ST 3,0(15) ==> rc,wsa -@@L21 EQU * - LR 15,3 ==> rc -* Function 'emfile_setup' epilogue - PDPEPIL -* Function 'emfile_setup' literal pool - DS 0D - LTORG -* Function 'emfile_setup' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s: bdamdecb no memory' - DC X'0' -@@LC1 EQU * - DC C'%s: no memory' - DC X'0' -@@LC2 EQU * - DC C'%s: rdjfcb() failed rc=%d' - DC X'0' -@@LC3 EQU * - DC C'%s: new code JFCB' - DC X'0' -@@LC4 EQU * - DC C'%s: jfcb.jfcblksi=%u' - DC X'0' -@@LC5 EQU * - DC C'%s: f->blksize=%u' - DC X'0' -@@LC6 EQU * - DC C'%s: f->buf no memory' - DC X'0' -@@LC7 EQU * - DC C'%s: f->r0 no memory' - DC X'0' -@@LC8 EQU * - DC C'%s: f->blocks=%u' - DC X'0' -@@LC9 EQU * - DC C'%s: osdopen() failed rc=%d' - DC X'0' - END diff --git a/src/crent370/emfile/@@emspos.c b/src/crent370/emfile/@@emspos.c deleted file mode 100644 index d409491..0000000 --- a/src/crent370/emfile/@@emspos.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "emfilei.h" - -int emfile_setpos(EMFILE *f, const __64 *pos) -{ - int rc = EBADF; - - wtof("%s: enter", __func__); - - if (!f) goto quit; - if (!pos) goto quit; - - if (__64_cmp((__64*)pos, &f->used) == __64_LARGER) { - f->error = rc = EINVAL; - goto quit; - } - - f->offset = *pos; - rc = 0; - -quit: - if (rc==0) { - /* reset the EOF flag */ - f->flags &= ~EMFILE_FLAG_EOF; - } - else { - errno = rc; - } - - wtof("%s: exit rc=%d", __func__, rc); - return rc; -} diff --git a/src/crent370/emfile/@@emspos.o b/src/crent370/emfile/@@emspos.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emspos.s b/src/crent370/emfile/@@emspos.s deleted file mode 100644 index 42fe672..0000000 --- a/src/crent370/emfile/@@emspos.s +++ /dev/null @@ -1,101 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emspos.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@6 EQU * - DC C'emfile_setpos' - DC X'0' - DS 0F - EJECT -* external function 'emfile_setpos' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'emfile_setpos' -@@EMSPOS PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_setpos' code - L 3,0(11) ==> f - L 4,4(11) ==> pos - LA 2,9(0,0) ==> rc - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@6) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LTR 3,3 ==> f - BE @@L3 - LTR 4,4 ==> pos - BE @@L3 - ST 4,88(13) ==> pos - LR 2,3 ==> f - A 2,=F'16' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@64CMP) - BALR 14,15 - LA 2,1(0,0) - CLR 15,2 ==> rc - BNE @@L5 - LA 2,22(0,0) ==> rc - ST 2,128(3) ==> rc,error - B @@L3 -@@L5 EQU * - MVC 24(8,3),0(4) ==> .offset,pos - SLR 2,2 ==> rc -@@L3 EQU * - LTR 2,2 ==> rc - BNE @@L6 - NC 122(2,3),=H'-3' ==> .flags - B @@L7 -@@L6 EQU * - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - ST 2,0(15) ==> rc -@@L7 EQU * - MVC 88(4,13),=A(@@LC1) - MVC 92(4,13),=A(@@6) - ST 2,96(13) ==> rc - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LR 15,2 ==> rc -* Function 'emfile_setpos' epilogue - PDPEPIL -* Function 'emfile_setpos' literal pool - DS 0D - LTORG -* Function 'emfile_setpos' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s: enter' - DC X'0' -@@LC1 EQU * - DC C'%s: exit rc=%d' - DC X'0' - END diff --git a/src/crent370/emfile/@@emsvol.c b/src/crent370/emfile/@@emsvol.c deleted file mode 100644 index db232b2..0000000 --- a/src/crent370/emfile/@@emsvol.c +++ /dev/null @@ -1,46 +0,0 @@ -#include "emfilei.h" - -int emfile_set_volser(EMFILE *f, JFCB *jfcb) -{ - int rc = 0; - int i; - unsigned count; - unsigned n; - unsigned maxvol = sizeof(jfcb->jfcbvols) / 6; - - if (f->volser) { - count = array_count(&f->volser); - for(n=count; n > 0; n--) { - char *vol = array_del(&f, n); - if (!vol) continue; - free(vol); - } - array_free(&f->volser); - } - - if (jfcb->jfcbnvol < maxvol) maxvol = jfcb->jfcbnvol; - - for(n=0; n < maxvol; n++) { - char *volser = &jfcb->jfcbvols[n*6]; - char *dest = calloc(1, 8); - - if (!dest) { - rc = ENOSPC; - goto quit; - } - - for(i=0; (i < 6) && (volser[i]); i++) { - dest[i] = toupper(volser[i]); - } - dest[i] = 0; - - rc = array_add(&f->volser, dest); - if (rc) { - rc = ENOSPC; - goto quit; - } - } - -quit: - return rc; -} diff --git a/src/crent370/emfile/@@emsvol.o b/src/crent370/emfile/@@emsvol.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emsvol.s b/src/crent370/emfile/@@emsvol.s deleted file mode 100644 index 6ae9b4d..0000000 --- a/src/crent370/emfile/@@emsvol.s +++ /dev/null @@ -1,152 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emsvol.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'emfile_set_volser' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'emfile_set_volser' -@@EMSVOL PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_set_volser' code - L 8,4(11) ==> jfcb - SLR 3,3 ==> rc - LA 7,5(0,0) ==> maxvol - L 2,0(11) - L 2,124(2) ==> .volser - LTR 2,2 - BE @@L2 - L 2,0(11) - A 2,=F'124' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 6,15 ==> n - LTR 15,15 ==> n - BE @@L25 -@@L8 EQU * - ST 11,88(13) - ST 6,92(13) ==> n - LA 1,88(,13) - L 15,=V(@@ARDEL) - BALR 14,15 - LTR 15,15 ==> vol - BE @@L5 - ST 15,88(13) ==> vol - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L5 EQU * - BCTR 6,0 ==> n - LTR 6,6 ==> n - BNE @@L8 -@@L25 EQU * - L 2,0(11) - A 2,=F'124' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARFRE) - BALR 14,15 -@@L2 EQU * - SLR 2,2 ==> maxvol - IC 2,117(8) ==> maxvol,jfcbnvol - CLR 2,7 ==> maxvol - BNL @@L9 - LR 7,2 ==> maxvol -@@L9 EQU * - SLR 6,6 ==> n - CLR 6,7 ==> n,maxvol - BNL @@L15 -@@L23 EQU * - LR 2,6 ==> n - SLL 2,2 - AR 2,6 ==> n - AR 2,6 ==> n - AR 2,8 ==> jfcb - LR 4,2 ==> volser - A 4,=F'118' ==> volser - MVC 88(4,13),=F'1' - MVC 92(4,13),=F'8' - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 5,15 ==> dest - LA 3,28(0,0) ==> rc - LTR 15,15 ==> dest - BE @@L15 - SLR 3,3 ==> i - IC 2,0(4) ==> volser - CLM 2,1,=XL1'00' - BE @@L17 -@@L21 EQU * - SLR 2,2 - IC 2,0(3,4) ==> i - ST 2,88(13) - LA 1,88(,13) - L 15,=V(TOUPPER) - BALR 14,15 - STC 15,0(3,5) ==> count,i - A 3,=F'1' ==> i - LA 2,5(0,0) - CR 3,2 ==> i - BH @@L17 - IC 2,0(3,4) ==> i - CLM 2,1,=XL1'00' - BNE @@L21 -@@L17 EQU * - SLR 2,2 - STC 2,0(3,5) ==> i - L 2,0(11) - A 2,=F'124' - ST 2,88(13) - ST 5,92(13) ==> dest - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - LR 3,15 ==> rc - LTR 15,15 ==> rc - BE @@L12 - LA 3,28(0,0) ==> rc - B @@L15 -@@L12 EQU * - A 6,=F'1' ==> n - CLR 6,7 ==> n,maxvol - BL @@L23 -@@L15 EQU * - LR 15,3 ==> rc -* Function 'emfile_set_volser' epilogue - PDPEPIL -* Function 'emfile_set_volser' literal pool - DS 0D - LTORG -* Function 'emfile_set_volser' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/emfile/@@emsync.c b/src/crent370/emfile/@@emsync.c deleted file mode 100644 index 5bfa6f9..0000000 --- a/src/crent370/emfile/@@emsync.c +++ /dev/null @@ -1,24 +0,0 @@ -#include "emfilei.h" - -int emfile_sync(EMFILE *f) -{ - int rc = 0; - - // wtof("%s: enter", __func__); - - if (!f) goto quit; - - /* make sure we can write to this dataset */ - if (!(f->flags & EMFILE_FLAG_WRITE)) goto quit; - - /* flush any pending output to disk */ - rc = emfile_flush(f); - if (rc) goto quit; - - /* rewrite the dataset header */ - rc = emfile_write_header(f); - -quit: - // wtof("%s: exit rc=%d", __func__, rc); - return rc; -} diff --git a/src/crent370/emfile/@@emsync.o b/src/crent370/emfile/@@emsync.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emsync.s b/src/crent370/emfile/@@emsync.s deleted file mode 100644 index b8571cd..0000000 --- a/src/crent370/emfile/@@emsync.s +++ /dev/null @@ -1,65 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emsync.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'emfile_sync' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'emfile_sync' -@@EMSYNC PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_sync' code - L 3,0(11) ==> f - SLR 15,15 ==> rc - LTR 3,3 ==> f - BE @@L3 - LH 2,122(3) ==> .flags - N 2,=F'64' - CH 2,=H'0' - BE @@L3 - ST 3,88(13) ==> f - LA 1,88(,13) - L 15,=V(@@EMFLUS) - BALR 14,15 - LTR 15,15 ==> rc - BNE @@L3 - ST 3,88(13) ==> f - LA 1,88(,13) - L 15,=V(@@EMWHDR) - BALR 14,15 -@@L3 EQU * -* Function 'emfile_sync' epilogue - PDPEPIL -* Function 'emfile_sync' literal pool - DS 0D - LTORG -* Function 'emfile_sync' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/emfile/@@emte64.c b/src/crent370/emfile/@@emte64.c deleted file mode 100644 index 0bce931..0000000 --- a/src/crent370/emfile/@@emte64.c +++ /dev/null @@ -1,17 +0,0 @@ -#include "emfilei.h" - -__64 emfile_tell64(EMFILE *f) -{ - __64 offset; - - if (f) { - offset = f->offset; - } - else { - offset.u32[0] = 0xFFFFFFFF; - offset.u32[1] = 0xFFFFFFFF; - errno = EBADF; - } - - return offset; -} diff --git a/src/crent370/emfile/@@emte64.o b/src/crent370/emfile/@@emte64.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emte64.s b/src/crent370/emfile/@@emte64.s deleted file mode 100644 index db95e3a..0000000 --- a/src/crent370/emfile/@@emte64.s +++ /dev/null @@ -1,64 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emte64.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'emfile_tell64' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'emfile_tell64' -@@EMTE64 PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_tell64' code - LR 4,0 - L 15,0(11) ==> f - LTR 15,15 ==> f - BE @@L2 - L 2,24(15) ==> offset,offset - L 3,4+24(15) ==> offset,offset - B @@L3 -@@L2 EQU * - L 2,=F'-1' - LR 3,2 ==> offset - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - MVC 0(4,15),=F'9' -@@L3 EQU * - ST 2,0(4) ==> offset, - ST 3,4+0(4) ==> offset, - LR 15,4 -* Function 'emfile_tell64' epilogue - PDPEPIL -* Function 'emfile_tell64' literal pool - DS 0D - LTORG -* Function 'emfile_tell64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/emfile/@@emtell.c b/src/crent370/emfile/@@emtell.c deleted file mode 100644 index 059b0bb..0000000 --- a/src/crent370/emfile/@@emtell.c +++ /dev/null @@ -1,25 +0,0 @@ -#include "emfilei.h" - -long emfile_tell(EMFILE *f) -{ - long offset = 0; - - // wtof("%s: enter", __func__); - - if (f) { - if (f->offset.u32[0] || f->offset.u32[1] > 0x7FFFFFFF) { - offset = (long)-1; - errno = EOVERFLOW; - } - else { - offset = (long)f->offset.u32[1]; - } - } - else { - offset = (long)-1; - errno = EBADF; - } - - // wtof("%s: exit offset=%u", __func__, offset); - return offset; -} diff --git a/src/crent370/emfile/@@emtell.o b/src/crent370/emfile/@@emtell.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emtell.s b/src/crent370/emfile/@@emtell.s deleted file mode 100644 index d06b110..0000000 --- a/src/crent370/emfile/@@emtell.s +++ /dev/null @@ -1,73 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emtell.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'emfile_tell' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'emfile_tell' -@@EMTELL PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_tell' code - L 15,0(11) ==> f - LTR 15,15 ==> f - BE @@L2 - L 2,24(15) ==> .u32 - LTR 2,2 - BNE @@L4 - L 2,28(15) ==> .u32 - LTR 2,2 - BNL @@L3 -@@L4 EQU * - L 2,=F'-1' ==> offset - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - MVC 0(4,15),=F'75' ==> offset - B @@L6 -@@L3 EQU * - L 2,28(15) ==> offset,u32 - B @@L6 -@@L2 EQU * - L 2,=F'-1' ==> offset - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - MVC 0(4,15),=F'9' ==> offset -@@L6 EQU * - LR 15,2 ==> offset -* Function 'emfile_tell' epilogue - PDPEPIL -* Function 'emfile_tell' literal pool - DS 0D - LTORG -* Function 'emfile_tell' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/emfile/@@emtest.c b/src/crent370/emfile/@@emtest.c deleted file mode 100644 index 44ef0e0..0000000 --- a/src/crent370/emfile/@@emtest.c +++ /dev/null @@ -1,99 +0,0 @@ -#include "emfilei.h" - -int main(int argc, char **argv) -{ - int rc = 0; - EMFILE *f = NULL; - int i; - char *buf = NULL; - char *p; - int c; - long offset; - - wtof("%s: enter", __func__); - - rc = emfile_set_config(EMFILE_SPACE_CYL, 0, 1, 2, "TSO001,TSO002"); - if (rc) goto quit; - -#define TESTFILE "MDR.CRENT370.EMFILE.TEST" - - f = emfile_open(TESTFILE, "w+") ; - wtof("%s: emfile_open(\"%s\",\"%s\") f=0x%08X", - __func__, TESTFILE, "w+", f); - -#if 0 - if (!f) { - f = emfile_create(TESTFILE); - wtof("%s: emfile_create(\"%s\") f=0x%08X", - __func__, TESTFILE, f); - } -#endif - - if (!f) { - rc = errno; - goto quit; - } - - // wtodumpf(f, sizeof(EMFILE), "%s: EMFILE", __func__); - emfile_dump(f); - - buf = calloc(1, 4096+1); - if (!buf) { - rc = 12; - goto quit; - } - - for(i=0; i < 256; i++) { - memset(buf, i, 4096); - rc = emfile_write_bytes(f, buf, 4096); - wtof("%s: emfile_write_bytes(4096) rc=%d", __func__, rc); - if (rc) goto quit; - } - - emfile_dump(f); - - offset = emfile_tell(f); - wtof("%s: offset=%d", __func__, offset); - - for(i=0; i < 256; i++) { - rc = emfile_printf(f, "This is a test\nThis is also a test\nMe too \"%s\"\n", "arg1"); - if (rc < 0) goto quit; - } - - emfile_dump(f); - - rc = emfile_seek(f, offset + 100, SEEK_SET); - wtof("%s: emfile_seek(%d, SEEK_SET) rc=%d", __func__, offset+100, rc); - if (rc) goto quit; - - offset = emfile_tell(f); - wtof("%s: offset=%d", __func__, offset); - - rc = emfile_truncate(f, offset); - wtof("%s: emfile_truncate() rc=%d", __func__, rc); - emfile_dump(f); - - rc = emfile_seek(f, offset - 100, SEEK_SET); -#if 0 - while(p=emfile_gets(buf, 256, f)) { - if (*p) wtodumpf(p, strlen(p), "%s: emfile_gets(256)", __func__); - } -#endif - -#if 0 - while((c=emfile_getc(f)) != EOF) { - wtodumpf(&c, sizeof(c), "%s: emfile_getc()", __func__); - } -#endif - -quit: - wtof("%s: quit", __func__); - if (buf) free(buf); - if (f) { - emfile_dump(f); - emfile_close(f); - } - - wtof("%s: exit rc=%d", __func__, rc); - return rc; -} diff --git a/src/crent370/emfile/@@emtest.o b/src/crent370/emfile/@@emtest.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emtest.s b/src/crent370/emfile/@@emtest.s deleted file mode 100644 index e5d0779..0000000 --- a/src/crent370/emfile/@@emtest.s +++ /dev/null @@ -1,296 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emtest.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@6 EQU * - DC C'main' - DC X'0' - DS 0F - COPY PDPMAIN - EJECT -* external function 'main' prologue -* frame base=88, local stack=0, call args=24 -&FUNC SETC 'main' -MAIN PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'main' code - SLR 3,3 ==> rc - LR 5,3 ==> f,rc - LR 6,3 ==> buf,rc - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@6) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - MVC 88(4,13),=F'1' - ST 3,92(13) ==> rc - MVC 96(4,13),=F'1' - MVC 100(4,13),=F'2' - MVC 104(4,13),=A(@@LC1) - LA 1,88(,13) - L 15,=V(@@EMSCFG) - BALR 14,15 - LR 3,15 ==> rc - LTR 15,15 ==> rc - BNE @@L3 - MVC 88(4,13),=A(@@LC2) - MVC 92(4,13),=A(@@LC3) - LA 1,88(,13) - L 15,=V(@@EMOPEN) - BALR 14,15 - LR 5,15 ==> f - MVC 88(4,13),=A(@@LC4) - MVC 92(4,13),=A(@@6) - MVC 96(4,13),=A(@@LC2) - MVC 100(4,13),=A(@@LC3) - ST 15,104(13) ==> f - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LTR 5,5 ==> f - BNE @@L4 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - L 3,0(15) ==> rc - B @@L3 -@@L4 EQU * - ST 5,88(13) ==> f - LA 1,88(,13) - L 15,=V(@@EMDUMP) - BALR 14,15 - MVC 88(4,13),=F'1' - MVC 92(4,13),=F'4097' - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 6,15 ==> buf - LA 3,12(0,0) ==> rc - LTR 15,15 ==> buf - BE @@L3 - SLR 2,2 ==> i - L 4,=F'4096' ==> n -@@L12 EQU * - -*** MEMSET *** - LR 14,6 => target (s) ==> buf - LR 15,4 => length (n) ==> n - SLR 0,0 => source (NULL) - LR 1,2 fill character ==> i - SLL 1,24 move fill to high byte - MVCL 14,0 Set target to fill character - ST 5,88(13) ==> f - ST 6,92(13) ==> buf - ST 4,96(13) ==> n - LA 1,88(,13) - L 15,=V(@@EMWBYT) - BALR 14,15 - LR 3,15 ==> rc - MVC 88(4,13),=A(@@LC5) - MVC 92(4,13),=A(@@6) - ST 15,96(13) ==> rc - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LTR 3,3 ==> rc - BNE @@L3 - A 2,=F'1' ==> i - LA 3,255(0,0) - CR 2,3 ==> i - BNH @@L12 - ST 5,88(13) ==> f - LA 1,88(,13) - L 15,=V(@@EMDUMP) - BALR 14,15 - ST 5,88(13) ==> f - LA 1,88(,13) - L 15,=V(@@EMTELL) - BALR 14,15 - LR 4,15 ==> offset - MVC 88(4,13),=A(@@LC6) - MVC 92(4,13),=A(@@6) - ST 15,96(13) ==> offset - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - SLR 2,2 ==> i -@@L18 EQU * - ST 5,88(13) ==> f - MVC 92(4,13),=A(@@LC7) - MVC 96(4,13),=A(@@LC8) - LA 1,88(,13) - L 15,=V(@@EMPRTF) - BALR 14,15 - LR 3,15 ==> rc - LTR 15,15 ==> rc - BL @@L3 - A 2,=F'1' ==> i - LA 3,255(0,0) - CR 2,3 ==> i - BNH @@L18 - ST 5,88(13) ==> f - LA 1,88(,13) - L 15,=V(@@EMDUMP) - BALR 14,15 - ST 5,88(13) ==> f - LR 2,4 ==> offset - A 2,=F'100' - ST 2,92(13) - MVC 96(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@EMSEEK) - BALR 14,15 - LR 3,15 ==> rc - MVC 88(4,13),=A(@@LC9) - MVC 92(4,13),=A(@@6) - ST 2,96(13) - ST 15,100(13) ==> rc - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LTR 3,3 ==> rc - BNE @@L3 - ST 5,88(13) ==> f - LA 1,88(,13) - L 15,=V(@@EMTELL) - BALR 14,15 - LR 4,15 ==> offset - MVC 88(4,13),=A(@@LC6) - MVC 92(4,13),=A(@@6) - ST 15,96(13) ==> offset - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - ST 5,88(13) ==> f - ST 4,92(13) ==> offset - LA 1,88(,13) - L 15,=V(@@EMTRUN) - BALR 14,15 - MVC 88(4,13),=A(@@LC10) - MVC 92(4,13),=A(@@6) - ST 15,96(13) ==> rc - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - ST 5,88(13) ==> f - LA 1,88(,13) - L 15,=V(@@EMDUMP) - BALR 14,15 - ST 5,88(13) ==> f - LR 2,4 ==> offset - A 2,=F'-100' - ST 2,92(13) - MVC 96(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@EMSEEK) - BALR 14,15 - LR 3,15 ==> rc -@@L3 EQU * - MVC 88(4,13),=A(@@LC11) - MVC 92(4,13),=A(@@6) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LTR 6,6 ==> buf - BE @@L20 - ST 6,88(13) ==> buf - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L20 EQU * - LTR 5,5 ==> f - BE @@L21 - ST 5,88(13) ==> f - LA 1,88(,13) - L 15,=V(@@EMDUMP) - BALR 14,15 - ST 5,88(13) ==> f - LA 1,88(,13) - L 15,=V(@@EMCLOS) - BALR 14,15 -@@L21 EQU * - MVC 88(4,13),=A(@@LC12) - MVC 92(4,13),=A(@@6) - ST 3,96(13) ==> rc - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LR 15,3 ==> rc -* Function 'main' epilogue - PDPEPIL -* Function 'main' literal pool - DS 0D - LTORG -* Function 'main' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s: enter' - DC X'0' -@@LC1 EQU * - DC C'TSO001,TSO002' - DC X'0' -@@LC2 EQU * - DC C'MDR.CRENT370.EMFILE.TEST' - DC X'0' -@@LC3 EQU * - DC C'w+' - DC X'0' -@@LC4 EQU * - DC C'%s: emfile_open("%s","%s") f=0x%08X' - DC X'0' -@@LC5 EQU * - DC C'%s: emfile_write_bytes(4096) rc=%d' - DC X'0' -@@LC6 EQU * - DC C'%s: offset=%d' - DC X'0' -@@LC7 EQU * - DC C'This is a test' - DC X'15' - DC C'This is also a test' - DC X'15' - DC C'Me too "%s"' - DC X'15' - DC X'0' -@@LC8 EQU * - DC C'arg1' - DC X'0' -@@LC9 EQU * - DC C'%s: emfile_seek(%d, SEEK_SET) rc=%d' - DC X'0' -@@LC10 EQU * - DC C'%s: emfile_truncate() rc=%d' - DC X'0' -@@LC11 EQU * - DC C'%s: quit' - DC X'0' -@@LC12 EQU * - DC C'%s: exit rc=%d' - DC X'0' - END @@MAIN diff --git a/src/crent370/emfile/@@emtrun.c b/src/crent370/emfile/@@emtrun.c deleted file mode 100644 index 79d732e..0000000 --- a/src/crent370/emfile/@@emtrun.c +++ /dev/null @@ -1,85 +0,0 @@ -#include "emfilei.h" - -/* this function is limited to 2G-1 size files */ -int emfile_truncate(EMFILE *f, long int length) -{ - int rc = 0; - __64 diff; - __64 offset; - unsigned len; - unsigned block; - unsigned pos; - unsigned size; - - wtof("%s: enter length=%u", __func__, length); - - if (length < 0) { - errno = f->error = EINVAL; - rc = -1; - goto quit; - } - - /* position to the desired offset (length) */ - rc = emfile_seek(f, length, SEEK_SET); - if (rc) goto quit; - - /* remember our truncation offset */ - offset = f->offset; - - if (__64_cmp(&f->used, &f->offset) == __64_LARGER) { - /* we need to clear the bytes after end of file */ - __64_sub(&f->used, &f->offset, &diff); - size = diff.u32[1]; - wtof("%s: erasing %u bytes", __func__, size); - - while (size > 0) { - /* calculate buffer position and block number */ - rc = emfile_offset_block_pos(f, &block, &pos); - wtof("%s: emfile_offset_block_pos() rc=%d", __func__, rc); - if (rc) goto quit; - - if (block != f->block) { - /* flush any pending output */ - rc = emfile_flush(f); - wtof("%s: emfile_flush() rc=%d", __func__, rc); - if (rc) goto quit; - - /* read the block for this write */ - rc = emfile_read_block(f, block, f->buf); - wtof("%s: emfile_read_block() rc=%d", __func__, rc); - if (rc) goto quit; - } - - if ((pos + size) > f->blksize) { - len = f->blksize - pos; - } - else { - len = size; - } - - wtof("%s: clearing block=%u pos=%u bytes=%u", - __func__, block, pos, len); - memset(&f->buf[pos], 0, len); - f->flags |= EMFILE_FLAG_DIRTY; - - size -= len; - __64_add_u32(&f->offset, len, &f->offset); - } - } - - /* truncate the file */ - f->offset = offset; - f->used = offset; - - /* reset the EOF flag */ - f->flags &= ~EMFILE_FLAG_EOF; - - /* sync the file */ - rc = emfile_sync(f); - wtof("%s: emfile_sync() rc=%d", __func__, rc); - if (rc) goto quit; - -quit: - // wtof("%s: exit rc=%d", __func__, rc); - return rc; -} diff --git a/src/crent370/emfile/@@emtrun.o b/src/crent370/emfile/@@emtrun.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emtrun.s b/src/crent370/emfile/@@emtrun.s deleted file mode 100644 index 3354a9a..0000000 --- a/src/crent370/emfile/@@emtrun.s +++ /dev/null @@ -1,237 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emtrun.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@6 EQU * - DC C'emfile_truncate' - DC X'0' - DS 0F - EJECT -* external function 'emfile_truncate' prologue -* frame base=88, local stack=16, call args=24 -&FUNC SETC 'emfile_truncate' -@@EMTRUN PDPPRLG CINDEX=0,FRAME=128,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_truncate' code - L 5,0(11) ==> f - L 2,4(11) ==> length - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@6) - ST 2,96(13) ==> length - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LTR 2,2 ==> length - BNL @@L2 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - MVC 128(4,5),=F'22' ==> .error - MVC 0(4,15),=F'22' ==> rc - L 2,=F'-1' ==> rc - B @@L3 -@@L2 EQU * - ST 5,88(13) ==> f - ST 2,92(13) ==> length - MVC 96(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@EMSEEK) - BALR 14,15 - LR 2,15 ==> rc - LTR 15,15 ==> rc - BNE @@L3 - L 8,24(5) ==> offset,offset - L 9,4+24(5) ==> offset,offset - LR 3,5 ==> f - A 3,=F'16' - ST 3,88(13) - LR 2,5 ==> f - A 2,=F'24' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@64CMP) - BALR 14,15 - LA 4,1(0,0) - CLR 15,4 ==> rc - BNE @@L5 - ST 3,88(13) - ST 2,92(13) - LA 2,112(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64SUB) - BALR 14,15 - L 6,116(13) ==> size,u32 - MVC 88(4,13),=A(@@LC1) - MVC 92(4,13),=A(@@6) - ST 6,96(13) ==> size - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LTR 6,6 ==> size - BE @@L5 -@@L16 EQU * - ST 5,88(13) ==> f - LA 2,120(,13) - ST 2,92(13) - LA 2,124(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@EMOBPO) - BALR 14,15 - LR 2,15 ==> rc - MVC 88(4,13),=A(@@LC2) - MVC 92(4,13),=A(@@6) - ST 15,96(13) ==> rc - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LTR 2,2 ==> rc - BNE @@L3 - L 2,120(13) - CL 2,32(5) ==> .block - BE @@L10 - ST 5,88(13) ==> f - LA 1,88(,13) - L 15,=V(@@EMFLUS) - BALR 14,15 - LR 2,15 ==> rc - MVC 88(4,13),=A(@@LC3) - MVC 92(4,13),=A(@@6) - ST 15,96(13) ==> rc - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LTR 2,2 ==> rc - BNE @@L3 - ST 5,88(13) ==> f - MVC 92(4,13),120(13) - MVC 96(4,13),60(5) ==> .buf - LA 1,88(,13) - L 15,=V(@@EMRBLK) - BALR 14,15 - LR 2,15 ==> rc - MVC 88(4,13),=A(@@LC4) - MVC 92(4,13),=A(@@6) - ST 15,96(13) ==> rc - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LTR 2,2 ==> rc - BNE @@L3 -@@L10 EQU * - LR 2,6 ==> size - A 2,124(13) - CL 2,48(5) ==> .blksize - BNH @@L13 - L 4,48(5) ==> len,blksize - S 4,124(13) ==> len - B @@L14 -@@L13 EQU * - LR 4,6 ==> len,size -@@L14 EQU * - MVC 88(4,13),=A(@@LC5) - MVC 92(4,13),=A(@@6) - MVC 96(4,13),120(13) - MVC 100(4,13),124(13) - ST 4,104(13) ==> len - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - L 2,60(5) ==> s,buf - A 2,124(13) ==> s - SLR 3,3 ==> c - -*** MEMSET *** - LR 14,2 => target (s) ==> s - LR 15,4 => length (n) ==> len - SLR 0,0 => source (NULL) - LR 1,3 fill character ==> c - SLL 1,24 move fill to high byte - MVCL 14,0 Set target to fill character - OC 122(2,5),=H'1' ==> .flags - SR 6,4 ==> size,len - LR 2,5 ==> f - A 2,=F'24' - ST 2,88(13) - ST 4,92(13) ==> len - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64AU32) - BALR 14,15 - LTR 6,6 ==> size - BNE @@L16 -@@L5 EQU * - ST 8,24(5) ==> offset,offset - ST 9,4+24(5) ==> offset,offset - ST 8,16(5) ==> offset,used - ST 9,4+16(5) ==> offset,used - NC 122(2,5),=H'-3' ==> .flags - ST 5,88(13) ==> f - LA 1,88(,13) - L 15,=V(@@EMSYNC) - BALR 14,15 - LR 2,15 ==> rc - MVC 88(4,13),=A(@@LC6) - MVC 92(4,13),=A(@@6) - ST 15,96(13) ==> rc - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L3 EQU * - LR 15,2 ==> rc -* Function 'emfile_truncate' epilogue - PDPEPIL -* Function 'emfile_truncate' literal pool - DS 0D - LTORG -* Function 'emfile_truncate' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s: enter length=%u' - DC X'0' -@@LC1 EQU * - DC C'%s: erasing %u bytes' - DC X'0' -@@LC2 EQU * - DC C'%s: emfile_offset_block_pos() rc=%d' - DC X'0' -@@LC3 EQU * - DC C'%s: emfile_flush() rc=%d' - DC X'0' -@@LC4 EQU * - DC C'%s: emfile_read_block() rc=%d' - DC X'0' -@@LC5 EQU * - DC C'%s: clearing block=%u pos=%u bytes=%u' - DC X'0' -@@LC6 EQU * - DC C'%s: emfile_sync() rc=%d' - DC X'0' - END diff --git a/src/crent370/emfile/@@emunal.c b/src/crent370/emfile/@@emunal.c deleted file mode 100644 index 1f934d7..0000000 --- a/src/crent370/emfile/@@emunal.c +++ /dev/null @@ -1,41 +0,0 @@ -#include "emfilei.h" - -int emfile_unallocate(const char *ddname) -{ - int err = 1; - unsigned count = 0; - TXT99 **txt99 = NULL; - RB99 rb99 = {0}; - - wtof("%s: enter ddname=\"%s\"", __func__, ddname); - - /* we want to unallocate the DDNAME */ - err = __txddn(&txt99, ddname); - if (err) goto quit; - - count = arraycount(&txt99); - if (!count) goto quit; - - /* Set high order bit to mark end of list */ - count--; - txt99[count] = (TXT99*)((unsigned)txt99[count] | 0x80000000); - - /* construct the request block for dynamic allocation */ - rb99.len = sizeof(RB99); - rb99.request = S99VRBUN; - rb99.flag1 = S99NOCNV; - rb99.txtptr = txt99; - - /* SVC 99 */ - err = __svc99(&rb99); - if (err) { - wtof("%s: err=%d error=0x%04X info=0x%04X", __func__, err, rb99.error, rb99.info); - goto quit; - } - -quit: - if (txt99) FreeTXT99Array(&txt99); - - wtof("%s: exit rc=%d", __func__, err); - return err; -} diff --git a/src/crent370/emfile/@@emunal.o b/src/crent370/emfile/@@emunal.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emunal.s b/src/crent370/emfile/@@emunal.s deleted file mode 100644 index e25f540..0000000 --- a/src/crent370/emfile/@@emunal.s +++ /dev/null @@ -1,138 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emunal.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@6 EQU * - DC C'emfile_unallocate' - DC X'0' - DS 0F - EJECT -* external function 'emfile_unallocate' prologue -* frame base=88, local stack=32, call args=24 -&FUNC SETC 'emfile_unallocate' -@@EMUNAL PDPPRLG CINDEX=0,FRAME=144,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_unallocate' code - L 3,0(11) ==> ddname - SLR 15,15 ==> count - ST 15,136(13) ==> count - LA 6,112(,13) - LA 7,20(0,0) - LR 4,15 ==> count - LR 5,15 ==> count - MVCL 6,4 ==> count - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@6) - ST 3,96(13) ==> ddname - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LA 2,136(,13) - ST 2,88(13) - ST 3,92(13) ==> ddname - LA 1,88(,13) - L 15,=V(@@TXDDN) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BNE @@L3 - LA 2,136(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LTR 15,15 ==> count - BE @@L3 - BCTR 15,0 ==> count - L 4,136(13) - LR 3,15 ==> count - MH 3,=H'4' - L 2,0(3,4) - O 2,=F'-2147483648' - ST 2,0(3,4) - MVI 112(13),20 ==> .len - MVI 113(13),2 ==> .request - MVI 114(13),64 ==> .flag1 - MVC 120(4,13),136(13) ==> .txtptr - LA 2,112(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@SVC99) - BALR 14,15 - LR 3,15 ==> err - LTR 15,15 ==> err - BE @@L3 - MVC 88(4,13),=A(@@LC1) - MVC 92(4,13),=A(@@6) - ST 15,96(13) ==> err - LH 2,116(13) ==> .error - SLL 2,16 - SRA 2,16 - ST 2,100(13) - LH 2,118(13) ==> .info - SLL 2,16 - SRA 2,16 - ST 2,104(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L3 EQU * - L 2,136(13) - LTR 2,2 - BE @@L6 - LA 2,136(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@FRTX9A) - BALR 14,15 -@@L6 EQU * - MVC 88(4,13),=A(@@LC2) - MVC 92(4,13),=A(@@6) - ST 3,96(13) ==> err - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LR 15,3 ==> err -* Function 'emfile_unallocate' epilogue - PDPEPIL -* Function 'emfile_unallocate' literal pool - DS 0D - LTORG -* Function 'emfile_unallocate' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s: enter ddname="%s"' - DC X'0' -@@LC1 EQU * - DC C'%s: err=%d error=0x%04X info=0x%04X' - DC X'0' -@@LC2 EQU * - DC C'%s: exit rc=%d' - DC X'0' - END diff --git a/src/crent370/emfile/@@emvali.c b/src/crent370/emfile/@@emvali.c deleted file mode 100644 index 8fd1ea4..0000000 --- a/src/crent370/emfile/@@emvali.c +++ /dev/null @@ -1,53 +0,0 @@ -#include "emfilei.h" - -/* emfile_validate() - validate the header (r0) values */ -int emfile_validate(EMFILE *f) -{ - int rc; - EMFILE10 *hdr = (EMFILE10 *)f->r0; - - // wtof("%s: enter hdr=0x%08X", __func__, hdr); - - if (!hdr) goto failed; - - // wtodumpf(hdr, sizeof(EMFILE10), "%s EMFILE10", __func__); - - /* eye catcher should be "EMFILE MVS" */ - if (memcmp(hdr->eye, EMFILEMVS, strlen(EMFILEMVS))!=0) goto failed; - // wtof("%s: hdr->eye OKAY", __func__); - - /* the create date should not be zero */ - if (__64_is_zero(&hdr->create)) goto failed; - // wtof("%s: hdr->create OKAY", __func__); - - /* the modified date should not be zero */ - if (__64_is_zero(&hdr->modified)) goto failed; - // wtof("%s: hdr->modified OKAY", __func__); - - /* the create date should not be greater than the modified date */ - if (__64_cmp(&hdr->create, &hdr->modified) == __64_LARGER) goto failed; - // wtof("%s: hdr->create <= hdr->modified OKAY", __func__); - -#if 0 /* not really needed here as this should have been detected long ago */ - if (f->bdamdcb) { - /* block size should be a multiple of 512 bytes */ - if (f->bdamdcb->dcbblksi & 0x1ff) goto failed; - /* lrecl should be same as block size */ - if (f->bdamdcb->dcblrecl != f->bdamdcb->dcbblksi) goto failed; - /* record format should be fixed */ - if ((f->bdamdcb->dcbrecfm & DCBRECU) != DCBRECF) goto failed; - } -#endif - - rc = 0; - goto quit; - -failed: - rc = EINVAL; - errno = EINVAL; - wtof("%s: dsn=\"%s\" failed validation check", __func__, f->dsname); - -quit: - // wtof("%s: exit rc=%d", __func__, rc); - return rc; -} diff --git a/src/crent370/emfile/@@emvali.o b/src/crent370/emfile/@@emvali.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emvali.s b/src/crent370/emfile/@@emvali.s deleted file mode 100644 index e2e5f4c..0000000 --- a/src/crent370/emfile/@@emvali.s +++ /dev/null @@ -1,112 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emvali.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@6 EQU * - DC C'emfile_validate' - DC X'0' - DS 0F - EJECT -* external function 'emfile_validate' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'emfile_validate' -@@EMVALI PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_validate' code - L 4,0(11) ==> f - L 2,64(4) ==> hdr,r0 - LTR 2,2 ==> hdr - BE @@L3 - MVC 88(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - ST 2,88(13) ==> hdr - MVC 92(4,13),=A(@@LC0) - ST 15,96(13) ==> rc - LA 1,88(,13) - L 15,=V(MEMCMP) - BALR 14,15 - LTR 15,15 ==> rc - BNE @@L3 - LR 3,2 ==> hdr - A 3,=F'16' - ST 3,88(13) - LA 1,88(,13) - L 15,=V(@@64IS0) - BALR 14,15 - LTR 15,15 ==> rc - BNE @@L3 - A 2,=F'24' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64IS0) - BALR 14,15 - LR 5,15 ==> rc - LTR 15,15 ==> rc - BNE @@L3 - ST 3,88(13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@64CMP) - BALR 14,15 - LR 3,5 ==> rc - LA 2,1(0,0) - CLR 15,2 ==> rc - BNE @@L8 -@@L3 EQU * - LA 3,22(0,0) ==> rc - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - ST 3,0(15) ==> rc - MVC 88(4,13),=A(@@LC1) - MVC 92(4,13),=A(@@6) - LR 2,4 ==> f - A 2,=F'77' - ST 2,96(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L8 EQU * - LR 15,3 ==> rc -* Function 'emfile_validate' epilogue - PDPEPIL -* Function 'emfile_validate' literal pool - DS 0D - LTORG -* Function 'emfile_validate' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'EMFILE MVS' - DC X'0' -@@LC1 EQU * - DC C'%s: dsn="%s" failed validation check' - DC X'0' - END diff --git a/src/crent370/emfile/@@emvprt.c b/src/crent370/emfile/@@emvprt.c deleted file mode 100644 index 05137d7..0000000 --- a/src/crent370/emfile/@@emvprt.c +++ /dev/null @@ -1,33 +0,0 @@ -#include "emfilei.h" - -int emfile_vprintf(EMFILE *f, const char *format, va_list arg) -{ - int rc; - int len; - char buf[8192]; - - // wtof("%s: enter format=\"%s\"", __func__, format); - - if (!f) { - errno = EBADF; - if (!f->error) f->error = EBADF; - rc = -1; - goto quit; - } - - len = vsnprintf(buf, sizeof(buf), format, arg); - if (len > sizeof(buf)) len = sizeof(buf); - - rc = emfile_write_bytes(f, buf, len); - if (rc) { - if (!f->error) f->error = rc; - rc = -1; - } - else { - rc = len; - } - -quit: - // wtof("%s: exit rc=%d", __func__, rc); - return rc; -} diff --git a/src/crent370/emfile/@@emvprt.o b/src/crent370/emfile/@@emvprt.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emvprt.s b/src/crent370/emfile/@@emvprt.s deleted file mode 100644 index cb64306..0000000 --- a/src/crent370/emfile/@@emvprt.s +++ /dev/null @@ -1,92 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emvprt.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'emfile_vprintf' prologue -* frame base=88, local stack=8192, call args=16 -&FUNC SETC 'emfile_vprintf' -@@EMVPRT PDPPRLG CINDEX=0,FRAME=8296,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_vprintf' code - L 4,0(11) ==> f - LTR 4,4 ==> f - BNE @@L2 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - MVC 0(4,15),=F'9' ==> len - L 2,128(4) ==> .error - LTR 2,2 - BNE @@L7 - MVC 128(4,4),=F'9' ==> .error - B @@L7 -@@L2 EQU * - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=F'8192' - MVC 96(4,13),4(11) ==> format - MVC 100(4,13),8(11) ==> arg - LA 1,88(,13) - L 15,=V(VSNPRINT) - BALR 14,15 - LR 3,15 ==> len - L 2,=F'8192' - CLR 15,2 ==> len - BNH @@L5 - LR 3,2 ==> len -@@L5 EQU * - ST 4,88(13) ==> f - LA 2,104(,13) - ST 2,92(13) - ST 3,96(13) ==> len - LA 1,88(,13) - L 15,=V(@@EMWBYT) - BALR 14,15 - LTR 15,15 ==> rc - BE @@L6 - L 2,128(4) ==> .error - LTR 2,2 - BNE @@L7 - ST 15,128(4) ==> rc,error -@@L7 EQU * - L 15,=F'-1' ==> rc - B @@L4 -@@L6 EQU * - LR 15,3 ==> rc,len -@@L4 EQU * -* Function 'emfile_vprintf' epilogue - PDPEPIL -* Function 'emfile_vprintf' literal pool - DS 0D - LTORG -* Function 'emfile_vprintf' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/emfile/@@emwblk.c b/src/crent370/emfile/@@emwblk.c deleted file mode 100644 index 7f924cd..0000000 --- a/src/crent370/emfile/@@emwblk.c +++ /dev/null @@ -1,38 +0,0 @@ -#include "emfilei.h" - -int emfile_write_block(EMFILE *f, unsigned block, char *buf) -{ - int rc; - - // wtof("%s: enter block=%u", __func__, block); - - if (!(f->flags & EMFILE_FLAG_WRITE)) { - wtof("%s: attempt to write block %u of READONLY dataset", - __func__, block); - errno = EINVAL; - rc = 8; - goto quit; - } - - rc = osdwrite(f->bdamdecb, f->bdamdcb, buf, f->blksize, block); - if (rc) { - wtof("%s: osdwrite() rc=%d", __func__, rc); - goto quit; - } - - rc = oscheck(f->bdamdecb); - if (rc) { - wtof("%s: oscheck() rc=%d", __func__, rc); - goto quit; - } - - /* success */ - if (buf == f->buf) { - // wtof("%s: reset DIRTY flag", __func__); - f->flags &= ~EMFILE_FLAG_DIRTY; /* block was written */ - } - -quit: - // wtof("%s: exit rc=%d", __func__, rc); - return rc; -} diff --git a/src/crent370/emfile/@@emwblk.o b/src/crent370/emfile/@@emwblk.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emwblk.s b/src/crent370/emfile/@@emwblk.s deleted file mode 100644 index 7764e74..0000000 --- a/src/crent370/emfile/@@emwblk.s +++ /dev/null @@ -1,114 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emwblk.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@6 EQU * - DC C'emfile_write_block' - DC X'0' - DS 0F - EJECT -* external function 'emfile_write_block' prologue -* frame base=88, local stack=0, call args=24 -&FUNC SETC 'emfile_write_block' -@@EMWBLK PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_write_block' code - L 3,0(11) ==> f - L 15,4(11) ==> block - L 4,8(11) ==> buf - LH 2,122(3) ==> .flags - N 2,=F'64' - CH 2,=H'0' - BNE @@L2 - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@6) - ST 15,96(13) ==> block - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - MVC 0(4,15),=F'22' ==> rc - LA 2,8(0,0) ==> rc - B @@L3 -@@L2 EQU * - MVC 88(4,13),56(3) ==> .bdamdecb - MVC 92(4,13),52(3) ==> .bdamdcb - ST 4,96(13) ==> buf - MVC 100(4,13),48(3) ==> .blksize - ST 15,104(13) ==> block - LA 1,88(,13) - L 15,=V(OSDWRITE) - BALR 14,15 - LR 2,15 ==> rc - LTR 15,15 ==> rc - BE @@L4 - MVC 88(4,13),=A(@@LC1) - B @@L7 -@@L4 EQU * - MVC 88(4,13),56(3) ==> .bdamdecb - LA 1,88(,13) - L 15,=V(OSCHECK) - BALR 14,15 - LR 2,15 ==> rc - LTR 15,15 ==> rc - BE @@L5 - MVC 88(4,13),=A(@@LC2) -@@L7 EQU * - MVC 92(4,13),=A(@@6) - ST 2,96(13) ==> rc - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - B @@L3 -@@L5 EQU * - CL 4,60(3) ==> buf,buf - BNE @@L3 - NC 122(2,3),=H'-2' ==> .flags -@@L3 EQU * - LR 15,2 ==> rc -* Function 'emfile_write_block' epilogue - PDPEPIL -* Function 'emfile_write_block' literal pool - DS 0D - LTORG -* Function 'emfile_write_block' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s: attempt to write block %u of READONLY datase' - DC C't' - DC X'0' -@@LC1 EQU * - DC C'%s: osdwrite() rc=%d' - DC X'0' -@@LC2 EQU * - DC C'%s: oscheck() rc=%d' - DC X'0' - END diff --git a/src/crent370/emfile/@@emwbyt.c b/src/crent370/emfile/@@emwbyt.c deleted file mode 100644 index 92d8e7a..0000000 --- a/src/crent370/emfile/@@emwbyt.c +++ /dev/null @@ -1,69 +0,0 @@ -#include "emfilei.h" - -int emfile_write_bytes(EMFILE *f, const char *buf, unsigned size) -{ - int rc = EPERM; - unsigned length = (unsigned)size; - unsigned len; - unsigned block; - unsigned pos; - - // wtof("%s: enter", __func__); - - if (!(f->flags & EMFILE_FLAG_WRITE)) goto quit; - - while (size > 0) { - /* calculate buffer position and block number */ - rc = emfile_offset_block_pos(f, &block, &pos); - if (rc) goto quit; - - // wtof("%s: block=%u pos=%u", __func__, block, pos); - - if (block != f->block) { - /* flush any pending output */ - rc = emfile_flush(f); - wtof("%s: emfile_flush() rc=%d", __func__, rc); - if (rc) goto quit; - - /* check if we need to grow the file */ - if (block >= f->blocks) { - rc = emfile_grow(f, size); - wtof("%s: emfile_grow(%u) rc=%d", __func__, size, rc); - if (rc) goto quit; - } - - /* read the block for this write */ - rc = emfile_read_block(f, block, f->buf); - wtof("%s: emfile_read_block(%u) rc=%d", __func__, block, rc); - if (rc) goto quit; - } - - if ((pos + size) > f->blksize) { - len = f->blksize - pos; - } - else { - len = size; - } - - memcpy(&f->buf[pos], buf, len); - f->flags |= EMFILE_FLAG_DIRTY; - - buf += len; - size -= len; - __64_add_u32(&f->offset, len, &f->offset); - if (__64_cmp(&f->offset, &f->used) == __64_LARGER) { - f->used = f->offset; - } - } - - rc = 0; - -quit: - if (rc) { - f->error = rc; - if (!errno) errno = rc; - } - - // wtof("%s: exit rc=%d", __func__, rc); - return rc; -} diff --git a/src/crent370/emfile/@@emwbyt.o b/src/crent370/emfile/@@emwbyt.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emwbyt.s b/src/crent370/emfile/@@emwbyt.s deleted file mode 100644 index 0092d98..0000000 --- a/src/crent370/emfile/@@emwbyt.s +++ /dev/null @@ -1,193 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emwbyt.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@6 EQU * - DC C'emfile_write_bytes' - DC X'0' - DS 0F - EJECT -* external function 'emfile_write_bytes' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'emfile_write_bytes' -@@EMWBYT PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_write_bytes' code - L 4,0(11) ==> f - L 6,4(11) ==> buf - L 5,8(11) ==> size - LA 3,1(0,0) ==> rc - LH 2,122(4) ==> .flags - N 2,=F'64' - CH 2,=H'0' - BE @@L3 - LTR 5,5 ==> size - BE @@L20 -@@L16 EQU * - ST 4,88(13) ==> f - LA 2,104(,13) - ST 2,92(13) - LA 2,108(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@EMOBPO) - BALR 14,15 - LR 3,15 ==> rc - LTR 15,15 ==> rc - BNE @@L3 - L 2,104(13) - CL 2,32(4) ==> .block - BE @@L8 - ST 4,88(13) ==> f - LA 1,88(,13) - L 15,=V(@@EMFLUS) - BALR 14,15 - LR 3,15 ==> rc - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@6) - ST 15,96(13) ==> rc - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LTR 3,3 ==> rc - BNE @@L3 - L 2,104(13) - CL 2,36(4) ==> .blocks - BL @@L10 - ST 4,88(13) ==> f - ST 5,92(13) ==> size - LA 1,88(,13) - L 15,=V(@@EMGROW) - BALR 14,15 - LR 3,15 ==> rc - MVC 88(4,13),=A(@@LC1) - MVC 92(4,13),=A(@@6) - ST 5,96(13) ==> size - ST 15,100(13) ==> rc - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LTR 3,3 ==> rc - BNE @@L3 -@@L10 EQU * - ST 4,88(13) ==> f - MVC 92(4,13),104(13) - MVC 96(4,13),60(4) ==> .buf - LA 1,88(,13) - L 15,=V(@@EMRBLK) - BALR 14,15 - LR 3,15 ==> rc - MVC 88(4,13),=A(@@LC2) - MVC 92(4,13),=A(@@6) - MVC 96(4,13),104(13) - ST 15,100(13) ==> rc - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LTR 3,3 ==> rc - BNE @@L3 -@@L8 EQU * - LR 2,5 ==> size - A 2,108(13) - CL 2,48(4) ==> .blksize - BNH @@L13 - L 3,48(4) ==> len,blksize - S 3,108(13) ==> len - B @@L14 -@@L13 EQU * - LR 3,5 ==> len,size -@@L14 EQU * - L 2,60(4) ==> .buf - A 2,108(13) - ST 2,88(13) - ST 6,92(13) ==> buf - ST 3,96(13) ==> len - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - OC 122(2,4),=H'1' ==> .flags - AR 6,3 ==> buf,len - SR 5,3 ==> size,len - LR 2,4 ==> f - A 2,=F'24' - ST 2,88(13) - ST 3,92(13) ==> len - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64AU32) - BALR 14,15 - ST 2,88(13) - LR 3,4 ==> f - A 3,=F'16' - ST 3,92(13) - LA 1,88(,13) - L 15,=V(@@64CMP) - BALR 14,15 - LA 7,1(0,0) - CLR 15,7 ==> rc - BNE @@L4 - MVC 0(8,3),0(2) ==> .used,offset -@@L4 EQU * - LTR 5,5 ==> size - BNE @@L16 -@@L20 EQU * - SLR 3,3 ==> rc -@@L3 EQU * - LTR 3,3 ==> rc - BE @@L17 - ST 3,128(4) ==> rc,error - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - L 2,0(15) ==> rc - LTR 2,2 - BNE @@L17 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - ST 3,0(15) ==> rc -@@L17 EQU * - LR 15,3 ==> rc -* Function 'emfile_write_bytes' epilogue - PDPEPIL -* Function 'emfile_write_bytes' literal pool - DS 0D - LTORG -* Function 'emfile_write_bytes' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s: emfile_flush() rc=%d' - DC X'0' -@@LC1 EQU * - DC C'%s: emfile_grow(%u) rc=%d' - DC X'0' -@@LC2 EQU * - DC C'%s: emfile_read_block(%u) rc=%d' - DC X'0' - END diff --git a/src/crent370/emfile/@@emwhdr.c b/src/crent370/emfile/@@emwhdr.c deleted file mode 100644 index 9080e70..0000000 --- a/src/crent370/emfile/@@emwhdr.c +++ /dev/null @@ -1,41 +0,0 @@ -#include "emfilei.h" - -int emfile_write_header(EMFILE *f) -{ - int rc = 0; - EMFILE10 *hdr = NULL; - char *buf = NULL; - - // wtof("%s: enter", __func__); - - /* make sure we can write to this dataset */ - if (!(f->flags & EMFILE_FLAG_WRITE)) goto quit; - - buf = calloc(1, f->blksize); - if (!buf) { - errno = ENOMEM; - rc = -1; - goto quit; - } - - /* read header block */ - rc = emfile_read_block(f, 0, buf); - if (rc) goto quit; - - /* update header record */ - rc = emfile_create_header(f->r0, f->used); - if (rc) goto quit; - hdr = (EMFILE10 *)f->r0; - - /* copy header record */ - memset(buf, 0, f->blksize); - memcpy(buf, hdr, sizeof(EMFILE10)); - - /* write header record to dataset */ - rc = emfile_write_block(f, 0, buf); - -quit: - if (buf) free(buf); - // wtof("%s: exit rc=%d", __func__, rc); - return rc; -} diff --git a/src/crent370/emfile/@@emwhdr.o b/src/crent370/emfile/@@emwhdr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emwhdr.s b/src/crent370/emfile/@@emwhdr.s deleted file mode 100644 index b8aa02a..0000000 --- a/src/crent370/emfile/@@emwhdr.s +++ /dev/null @@ -1,117 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emwhdr.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'emfile_write_header' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'emfile_write_header' -@@EMWHDR PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_write_header' code - L 6,0(11) ==> f - SLR 4,4 ==> rc - LR 5,4 ==> buf,rc - LH 2,122(6) ==> .flags - N 2,=F'64' - CH 2,=H'0' - BE @@L3 - MVC 88(4,13),=F'1' - MVC 92(4,13),48(6) ==> .blksize - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 5,15 ==> buf - LTR 15,15 ==> buf - BNE @@L4 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - MVC 0(4,15),=F'12' ==> rc - L 4,=F'-1' ==> rc - B @@L3 -@@L4 EQU * - ST 6,88(13) ==> f - MVC 92(4,13),=F'0' - ST 15,96(13) ==> buf - LA 1,88(,13) - L 15,=V(@@EMRBLK) - BALR 14,15 - LR 4,15 ==> rc - LTR 15,15 ==> rc - BNE @@L3 - MVC 88(4,13),64(6) ==> .r0 - MVC 92(8,13),16(6) ==> .used - LA 1,88(,13) - L 15,=V(@@EMCHDR) - BALR 14,15 - LR 4,15 ==> rc - LTR 15,15 ==> rc - BNE @@L3 - L 3,64(6) ==> hdr,r0 - L 2,48(6) ==> n,blksize - -*** MEMSET *** - LR 14,5 => target (s) ==> buf - LR 15,2 => length (n) ==> n - SLR 0,0 => source (NULL) - LR 1,4 fill character ==> rc - SLL 1,24 move fill to high byte - MVCL 14,0 Set target to fill character - ST 5,88(13) ==> buf - ST 3,92(13) ==> hdr - MVC 96(4,13),=F'40' - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - ST 6,88(13) ==> f - ST 4,92(13) ==> rc - ST 5,96(13) ==> buf - LA 1,88(,13) - L 15,=V(@@EMWBLK) - BALR 14,15 - LR 4,15 ==> rc -@@L3 EQU * - LTR 5,5 ==> buf - BE @@L8 - ST 5,88(13) ==> buf - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L8 EQU * - LR 15,4 ==> rc -* Function 'emfile_write_header' epilogue - PDPEPIL -* Function 'emfile_write_header' literal pool - DS 0D - LTORG -* Function 'emfile_write_header' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/emfile/@@emwrit.c b/src/crent370/emfile/@@emwrit.c deleted file mode 100644 index 9dfa98b..0000000 --- a/src/crent370/emfile/@@emwrit.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "emfilei.h" - -size_t -emfile_write(const void *ptr, size_t size, size_t nmemb, EMFILE *f) -{ - size_t written = 0; - const char *buf = (const char*)ptr; - unsigned bytes; - int rc; - - wtof("%s: enter", __func__); - - if (!(f->flags & EMFILE_FLAG_WRITE)) goto quit; - - while(nmemb > 0) { - rc = emfile_write_bytes(f, buf, size); - if (rc) break; - written++; - buf += size; - nmemb--; - } - - if (rc) { - f->error = errno; - if (!f->error) f->error = rc; - } - -quit: - wtof("%s: exit written=%u", __func__, written); - return written; -} diff --git a/src/crent370/emfile/@@emwrit.o b/src/crent370/emfile/@@emwrit.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/emfile/@@emwrit.s b/src/crent370/emfile/@@emwrit.s deleted file mode 100644 index 14db20c..0000000 --- a/src/crent370/emfile/@@emwrit.s +++ /dev/null @@ -1,105 +0,0 @@ - TITLE '/home/projects/crent370/emfile/@@emwrit.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/include -* -iprefix -D__GNUC__=3 -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -* -D__GXX_ABI_VERSION=102 -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -* -Asystem=mvs -Acpu=i370 -Amachine=i370 -D__OPTIMIZE__ -* -D__STDC_HOSTED__=1 -trigraphs -O1 -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@6 EQU * - DC C'emfile_write' - DC X'0' - DS 0F - EJECT -* external function 'emfile_write' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'emfile_write' -@@EMWRIT PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'emfile_write' code - L 8,4(11) ==> size - L 4,8(11) ==> nmemb - L 7,12(11) ==> f - SLR 6,6 ==> written - L 3,0(11) ==> buf,ptr - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@6) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LH 2,122(7) ==> .flags - N 2,=F'64' - CH 2,=H'0' - BE @@L3 - LTR 4,4 ==> nmemb - BE @@L5 -@@L8 EQU * - ST 7,88(13) ==> f - ST 3,92(13) ==> buf - ST 8,96(13) ==> size - LA 1,88(,13) - L 15,=V(@@EMWBYT) - BALR 14,15 - LR 5,15 ==> rc - LTR 15,15 ==> rc - BNE @@L5 - A 6,=F'1' ==> written - AR 3,8 ==> buf,size - BCTR 4,0 ==> nmemb - LTR 4,4 ==> nmemb - BNE @@L8 -@@L5 EQU * - LTR 5,5 ==> rc - BE @@L3 - LA 1,88(,13) - L 15,=V(@@ERRNO) - BALR 14,15 - MVC 128(4,7),0(15) ==> .error,rc - L 2,128(7) ==> .error - LTR 2,2 - BNE @@L3 - ST 5,128(7) ==> rc,error -@@L3 EQU * - MVC 88(4,13),=A(@@LC1) - MVC 92(4,13),=A(@@6) - ST 6,96(13) ==> written - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LR 15,6 ==> written -* Function 'emfile_write' epilogue - PDPEPIL -* Function 'emfile_write' literal pool - DS 0D - LTORG -* Function 'emfile_write' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s: enter' - DC X'0' -@@LC1 EQU * - DC C'%s: exit written=%u' - DC X'0' - END diff --git a/src/crent370/emfile/makefile b/src/crent370/emfile/makefile deleted file mode 100644 index 1c09cb9..0000000 --- a/src/crent370/emfile/makefile +++ /dev/null @@ -1,110 +0,0 @@ -# -# makefile for EMFILE c files -# -# Location of EMFILE headers and source -TOP := /home/projects/crent370 -SRC := $(TOP)/emfile -HDR := $(TOP)/include -# includes -INCS = -I. -INCS += -I$(HDR) -# dependencies -DEPS = $(HDR)/emfile.h -DEPS += $(HDR)/emfilei.h -# compiler command line -CFLAGS := -fverbose-asm -S -O1 $(INCS) -# -# C files -C_FILES := \ - @@emamod.c \ - @@emanew.c \ - @@emaold.c \ - @@emashr.c \ - @@emchdr.c \ - @@emclos.c \ - @@emcrea.c \ - @@emcsiz.c \ - @@emdump.c \ - @@emflus.c \ - @@emfull.c \ - @@emgerr.c \ - @@emgetc.c \ - @@emgets.c \ - @@emgrow.c \ - @@emgpos.c \ - @@emgwsa.c \ - @@eminit.c \ - @@emobpo.c \ - @@emopen.c \ - @@emprtf.c \ - @@emputc.c \ - @@emputs.c \ - @@emrblk.c \ - @@emrbyt.c \ - @@emrhdr.c \ - @@emscfg.c \ - @@emsddn.c \ - @@emsdsn.c \ - @@emseek.c \ - @@emsetu.c \ - @@emspos.c \ - @@emsvol.c \ - @@emsync.c \ - @@emte64.c \ - @@emtell.c \ - @@emtest.c \ - @@emtrun.c \ - @@emunal.c \ - @@emvali.c \ - @@emvprt.c \ - @@emwblk.c \ - @@emwbyt.c \ - @@emwhdr.c \ - @@emwrit.c - -#deprecated: - -# non-generated .asm assembler source files -A_FILES := - -# generated .s assembler source files (one for each source file) -S_FILES := $(foreach filename,$(C_FILES),$(filename:.c=.s)) - -# object files (one for each .c and .asm source file) -O_FILES := $(foreach filename,$(C_FILES),$(filename:.c=.o)) \ - $(foreach filename,$(A_FILES),$(filename:.asm=.o)) - -# export MACn variables for mvsasm->jobasm script -export MAC1=MDR.CRENT370.MACLIB - -# export dataset names used by mvsasm script -export MVSASM_PUNCH=MDR.CRENT370.OBJECT -export MVSASM_SYSLMOD=MDR.CRENT370.NCALIB - -all: $(S_FILES) $(O_FILES) - @echo "Done" -# Note: PHONY is important here. Without it, implicit rules will try -# to build the executable "all", since the prereqs are ".o" files. -.PHONY: all - -# build object files from the generated assembler files (.s) -%.o: %.s - @echo "mvsasm $(notdir $<)" - @mvsasm "$<" - @touch "$@" - -# build object files from assembler files (.asm) -%.o: %.asm - @echo "mvsasm $(notdir $<)" - @mvsasm "$<" - @touch "$@" - -# compile C source files (.c) into assembler files (.s) -%.s: %.c $(DEPS) - @echo "Compile $(notdir $<)" - c2asm370 $(CFLAGS) -c $< -o $@ - -# remove generated files -clean: - @rm -f $(S_FILES) $(O_FILES) - diff --git a/src/crent370/include/@@75.h b/src/crent370/include/@@75.h deleted file mode 100644 index f7d3626..0000000 --- a/src/crent370/include/@@75.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef __75_H -#define __75_H - -/* Parameter list for DYN75 calls */ -typedef struct pl75 { - unsigned r0; /* 0 (Initially, but turns to > 0 after call. 00 */ - unsigned r1; /** Byte Counter to send 04 */ - unsigned r2; /* Source/Destination of PC buffer. 32bits. 08 */ - unsigned r3; /* Direction (0 = to Host PC, 1 = from Host PC) 0C */ - unsigned r4; /* Returned Bytes/Code/Socket etc. 10 */ - unsigned r5; /** Source Buffer 14 */ - unsigned r6; /** Destination Buffer (If required) 18 */ - unsigned r7; /** Function Code (+ Socket for 'Connect', 'ioctl' &1C - 'select') */ - unsigned r8; /** Aux. Data (Socket, or Port for 'Connect'...) 20 */ - unsigned r9; /** Aux. Data (Port, or IP Address for 'Connect'...)24 */ - unsigned r10; /* 28 */ - unsigned r11; /* 2C */ - unsigned r12; /* 30 */ - unsigned r13; /* 34 */ - unsigned r14; /* Identifier (returned & passed back for 38 - conversations.) */ - unsigned r15; /* Work Variable / Return Code 3C */ -} PL75; /* 40 */ - -/* __75() - call TCPIP interface via X'75xxxxxx' instruction. */ -extern int __75(PL75 *pl); - -#endif diff --git a/src/crent370/include/@@memmgr.h b/src/crent370/include/@@memmgr.h deleted file mode 100644 index 0970479..0000000 --- a/src/crent370/include/@@memmgr.h +++ /dev/null @@ -1,101 +0,0 @@ -/*********************************************************************/ -/* */ -/* This Program Written By Paul Edwards. */ -/* Released to the public domain. */ -/* */ -/*********************************************************************/ - -#ifndef MEMMGR_INCLUDED -#define MEMMGR_INCLUDED - -#include - -/* Do you want memmgr to perform lots of integrity checks? */ -/* Note that this will slow down the system, but it doesn't - print out anything or change the functionality of your - application. */ -/* #define __MEMMGR_INTEGRITY 1 */ - -/* Do you want lots of debugging output? */ -/* Note that you still need to set the memmgrDebug variable to 1 - before it is actually activated */ -/* #define __MEMMGR_DEBUG 1 */ - -typedef struct memmgrn { -#ifdef __MEMMGR_INTEGRITY - int eyecheck1; -#endif - struct memmgrn *next; - struct memmgrn *prev; - struct memmgrn *nextf; - struct memmgrn *prevf; - int fixed; - size_t size; /* size of memory available to user */ - int allocated; - int id; -#ifdef __MEMMGR_INTEGRITY - int eyecheck2; -#endif - size_t filler; /* we add this so that *(p - size_t) is writable */ -} MEMMGRN; - -typedef struct { - MEMMGRN *start; - MEMMGRN *startf; -} MEMMGR; - -/* What boundary we want the memmgr control block to be a multiple of */ -#define MEMMGR_ALIGN 8 - -#define MEMMGRN_SZ \ - ((sizeof(MEMMGRN) % MEMMGR_ALIGN == 0) ? \ - sizeof(MEMMGRN) : \ - ((sizeof(MEMMGRN) / MEMMGR_ALIGN + 1) * MEMMGR_ALIGN)) - -/* Let's make sure that the minimum free data area is at least - as big as the node itself, so that we don't have more than - 50% of the available memory used up by control blocks due - to fragmentation */ -#define MEMMGR_MINFREE MEMMGRN_SZ - -/* total size of the minimum free area, including room for the - control block */ -#define MEMMGR_MINFRTOT (MEMMGRN_SZ + MEMMGR_MINFREE) - -/* do you want to crash whenever an integrity problem arises? */ -#ifndef MEMMGR_CRASH -#define MEMMGR_CRASH 1 -#endif - -#define memmgrDefaults __mmDef -#define memmgrInit __mmInit -#define memmgrTerm __mmTerm -#define memmgrSupply __mmSupply -#define memmgrAllocate __mmAlloc -#define memmgrFree __mmFree -#define memmgrFreeId __mmFId -#define memmgrMaxSize __mmMaxSize -#define memmgrTotSize __mmTotSize -#define memmgrIntegrity __mmIntegrity -#define memmgrRealloc __mmRealloc -#define memmgrDebug __mmDebug -#define memmgrDebug2 __mmDbg2 - -void memmgrDefaults(MEMMGR *memmgr); -void memmgrInit(MEMMGR *memmgr); -void memmgrTerm(MEMMGR *memmgr); -void memmgrSupply(MEMMGR *memmgr, void *buffer, size_t szbuf); -void *memmgrAllocate(MEMMGR *memmgr, size_t bytes, int id); -void memmgrFree(MEMMGR *memmgr, void *ptr); -void memmgrFreeId(MEMMGR *memmgr, int id); -size_t memmgrMaxSize(MEMMGR *memmgr); -size_t memmgrTotSize(MEMMGR *memmgr); -void memmgrIntegrity(MEMMGR *memmgr); -int memmgrRealloc(MEMMGR *memmgr, void *ptr, size_t newsize); - -extern int memmgrDebug; -extern int memmgrDebug2; - -extern MEMMGR __memmgr; - -#endif diff --git a/src/crent370/include/__75.h b/src/crent370/include/__75.h deleted file mode 100644 index f7d3626..0000000 --- a/src/crent370/include/__75.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef __75_H -#define __75_H - -/* Parameter list for DYN75 calls */ -typedef struct pl75 { - unsigned r0; /* 0 (Initially, but turns to > 0 after call. 00 */ - unsigned r1; /** Byte Counter to send 04 */ - unsigned r2; /* Source/Destination of PC buffer. 32bits. 08 */ - unsigned r3; /* Direction (0 = to Host PC, 1 = from Host PC) 0C */ - unsigned r4; /* Returned Bytes/Code/Socket etc. 10 */ - unsigned r5; /** Source Buffer 14 */ - unsigned r6; /** Destination Buffer (If required) 18 */ - unsigned r7; /** Function Code (+ Socket for 'Connect', 'ioctl' &1C - 'select') */ - unsigned r8; /** Aux. Data (Socket, or Port for 'Connect'...) 20 */ - unsigned r9; /** Aux. Data (Port, or IP Address for 'Connect'...)24 */ - unsigned r10; /* 28 */ - unsigned r11; /* 2C */ - unsigned r12; /* 30 */ - unsigned r13; /* 34 */ - unsigned r14; /* Identifier (returned & passed back for 38 - conversations.) */ - unsigned r15; /* Work Variable / Return Code 3C */ -} PL75; /* 40 */ - -/* __75() - call TCPIP interface via X'75xxxxxx' instruction. */ -extern int __75(PL75 *pl); - -#endif diff --git a/src/crent370/include/acee.h b/src/crent370/include/acee.h deleted file mode 100644 index a6e0c55..0000000 --- a/src/crent370/include/acee.h +++ /dev/null @@ -1,106 +0,0 @@ -#ifndef ACEE_H -#define ACEE_H - -typedef struct acee ACEE; -typedef struct conngrp CONNGRP; - -struct conngrp { - CONNGRP *next; /* 00 next connect group */ - char group[9]; /* 04 1 byte len, group name */ -}; - -struct acee { /* ACCESSOR ENVIRONMENT ELEMENT */ - char aceeacee[4]; /* 00 ACRONYM IN EBCDIC -ACEE- */ - char aceesp; /* 04 ACEE SUBPOOL NUMBER */ - char aceelen[3]; /* 05 LENGTH OF ACEE */ - char aceevrsn; /* 08 ACEE VERSION NUMBER = 1. */ - char unused1[3]; /* 09 RESERVED */ - void *aceeiep; /* 0C RESERVED FOR INSTALLATION */ - void *aceeinst; /* 10 ADDRESS OF INSTALLATION SUPPLIED - USER DATA - FROM USER ENTRY */ - char aceeuser[9]; /* 14 USERID INFORMATION */ - char aceegrp[9]; /* 1D GROUP NAME INFORMATION */ - char aceeflg1; /* 26 USER FLAGS */ -#define ACEESPEC 0x80 /* ... 1 - SPECIAL ATTRIBUTE */ -#define ACEEADSP 0x40 /* ... 1 - AUTOMATIC DATA SECURITY - PROTECTION */ -#define ACEEOPER 0x20 /* ... 1 - OPERATIONS ATTRIBUTE */ -#define ACEEAUDT 0x10 /* ... 1 - AUDITOR ATTRIBUTE */ -#define ACEELOGU 0x08 /* ... 1 - USER IS TO HAVE MOST RACF - FUNCTIONS LOGGED */ -#define ACEEPRIV 0x02 /* ... 1 - USER IS A STARTED PROCEDURE - WITH THE PRIVELEGED ATTRIBUTE */ -#define ACEERACF 0x01 /* ... 1 - RACF DEFINED USER */ - - char aceeflg2; /* 27 DEFAULT UNIVERSAL ACCESS */ -#define ACEEALTR 0x80 /* ... 1 - ALTER AUTORITY TO RESOURCE */ -#define ACEECNTL 0x40 /* ... 1 - CONTROL AUTHORITY TO RESOURCE */ -#define ACEEUPDT 0x20 /* ... 1 - UPDATE AUTHORITY TO RESOURCE */ -#define ACEEREAD 0x10 /* ... 1 - READ AUTHORITY TO RESOURCE */ -#define ACEENONE 0x01 /* ... 1 - NO AUTHORITY TO RESOURCE */ - - char aceeflg3; /* 28 MISCELLANEOUS FLAGS */ -#define ACEEGRPA 0x80 /* ... ACCESS LIST OF GROUP DS TO CONTAIN - 0 - USERID - 1 - GROUP NAME AND USERID */ - char aceedate[3]; /* 29 DATE OF RACINIT */ - - char aceeproc[8]; /* 2C NAME OF STARTED PROC OR BLANKS - IF NOT A STARTED PROC */ - void *aceetrmp; /* 34 ADDRESS OF TERMINAL RELATED - INFORMATION. ZERO FOR NON-TERMINAL - USERS */ - char aceeflg4[2]; /* 38 MISCELLANEOUS FLAGS 2 */ -#define ACEEUATH 0x20 /* ... 1 - USER IS AUTHORIZED TO DEFINE - OTHER USERS */ -#define ACEEDASD 0x08 /* ... 1 - USER IS AUTHORIZED TO PROTECT - DASD VOLUMES */ -#define ACEETAPE 0x04 /* ... 1 - USER IS AUTHORIZED TO PROTECT - TAPE VOLUMES */ -#define ACEETERM 0x02 /* ... 1 - USER IS AUTHORIZED TO PROTECT - TERMINALS */ - - char aceeaplv; /* 3A APPLICTAION LEVEL NUMBER */ - char aceetrlv; /* 3B TERMINAL LEVEL NUMBER */ - - void *aceetrda; /* 3C ADDRESS OF INSTALLATION SUPPLIED - DATA FROM TERMINAL ENTRY */ - - char aceetrid[8]; /* 40 TERMINAL ID */ - void *aceeamp; /* 48 ADDRESS 1ST ANCHORED MODEL */ - char aceeclth[4]; /* 4C USER CLASS AUTHORIZATIONS - - THESE BIT POSITIONS ARE MAPPED - BY THE CLASS DESCRIPTOR ENTRIES - ANCHORED OFF THE RACF CVT */ - - void *aceeclcp; /* 50 ANCHOR FOR INSTORAGE PROFILE - TREES BUILT BY THE RACLIST FUNCTION */ - void *aceeaptr; /* 54 ADDRESS FIELD RESERVED FOR - APPLICATION USAGE */ - char aceeapln[8]; /* 58 NAME OF APPLICATION TO WHICH - USER IS CONNECTED OR BLANKS - IF NO APPLICATION SPECIFIED */ - - void *aceeapda; /* 60 ADDRESS INSTALLATION SUPPLIED - DATA FROM APPLICATION ENTRY */ - void *aceeunam; /* 64 ADDRESS OF USER NAME STRING. - ZERO, IF NO NAME PRESENT. - IF PRESENT, THE FIRST BYTE IS - A LENGTH FIELD FOLLOWED BY THE - NAME STRING. */ - void *aceemdls; /* 68 ADDRESS OF THE MODEL NAME - ARRAY. ZERO, IF ARRAY NOT - OBTAINED BY RACINIT. */ - CONNGRP *aceecgrp; /* 6C ADDRESS OF TABLE CONTAINING - THE LIST OF GROUPS THIS - USERID IS A MEMBER OF. */ - - void *aceegata; /* 70 ADDRESS OF THE GENERIC ANCHOR TABLE */ - void *aceefcgp; /* 74 ADDRESS OF LIST OF GROUPS USER - IS A MEMBER OF, BUILT BY RACINIT, - USED BY FRACHECK, IT IS NOT - AUTOMATICALLY REFRESHED */ - unsigned unused2[6]; /* 78 RESERVED. */ -}; /* 90 (144) */ - -#endif diff --git a/src/crent370/include/assert.h b/src/crent370/include/assert.h deleted file mode 100644 index a27bb72..0000000 --- a/src/crent370/include/assert.h +++ /dev/null @@ -1,25 +0,0 @@ -/*********************************************************************/ -/* */ -/* This Program Written by Paul Edwards. */ -/* Released to the Public Domain */ -/* */ -/*********************************************************************/ -/*********************************************************************/ -/* */ -/* assert.h - assert header file. */ -/* */ -/*********************************************************************/ - -#ifndef __ASSERT_INCLUDED -#define __ASSERT_INCLUDED - -int __assert(char *x, char *y, int z); - -#ifdef NDEBUG -#define assert(ignore) ((void)0) -#else -#define assert(x) (x) ? ((void)0) : \ - __assert(#x, __FILE__, __LINE__) -#endif - -#endif diff --git a/src/crent370/include/blowfish.h b/src/crent370/include/blowfish.h deleted file mode 100644 index e0a33ed..0000000 --- a/src/crent370/include/blowfish.h +++ /dev/null @@ -1,29 +0,0 @@ -/********************************************************************* -* Filename: blowfish.h -* Author: Brad Conte (brad AT bradconte.com) -* Copyright: -* Disclaimer: This code is presented "as is" without any guarantees. -* Details: Defines the API for the corresponding Blowfish implementation. -*********************************************************************/ - -#ifndef BLOWFISH_H -#define BLOWFISH_H - -/*************************** HEADER FILES ***************************/ -#include - -/****************************** MACROS ******************************/ -#define BLOWFISH_BLOCK_SIZE 8 // Blowfish operates on 8 bytes at a time - -/**************************** DATA TYPES ****************************/ -typedef struct { - unsigned int p[18]; - unsigned int s[4][256]; -} BLOWFISH_KEY; - -/*********************** FUNCTION DECLARATIONS **********************/ -void blowfish_key_setup(const unsigned char user_key[], BLOWFISH_KEY *keystruct, size_t len) asm("BFISHKEY"); -void blowfish_encrypt(const unsigned char in[], unsigned char out[], const BLOWFISH_KEY *keystruct) asm("BFISHENC"); -void blowfish_decrypt(const unsigned char in[], unsigned char out[], const BLOWFISH_KEY *keystruct) asm("BFISHDEC"); - -#endif // BLOWFISH_H diff --git a/src/crent370/include/cde.h b/src/crent370/include/cde.h deleted file mode 100644 index c683171..0000000 --- a/src/crent370/include/cde.h +++ /dev/null @@ -1,72 +0,0 @@ -#ifndef CDE_H -#define CDE_H -#include - -typedef struct cde CDE; - -#pragma pack(1) -struct cde { -/*********************************************************************** - * MACCOMP OS/VS2,RELEASE 4 SC1CJ/PZD81 * - * * - * MACSTAT OS/VS2,RELEASE 4 74240 * - * * - * MACMEAN CDE MEANS CONTENTS DIRECTORY ENTRY * - ***********************************************************************/ - CDE *CDCHAIN; /* 00 ADDRESS OF NEXT CDE IN QUEUE (EITHER JPAQ - OR LPAQ) */ - unsigned CDRRBP; /* 04 IF THE MODULE IS REENTERABLE, THIS FIELD - CONTAINS THE ADDRESS OF THE LAST RB THAT - CONTROLLED THE MODULE. IF THE MODULE IS - SERIALLY REUSABLE, THIS FIELD CONTAINS - THE ADDRESS OF THE RB AT THE TOP OF THE - WAITING (RBPGMQ) QUEUE. IF THE MODULE - WAS REQUESTED ONLY THROUGH LOAD MACRO - INSTRUCTIONS, CONTAINS ZERO. */ - unsigned char CDNAME[8]; /* 08 8-BYTE NAME */ - unsigned CDENTPT; /* 10 MODULE'S RELOCATED ENTRY POINT ADDRESS */ - union { - unsigned CDXLMJP; /* 14 EXTENT LIST ADDRESS OR MAJOR CDE ADDRESS - IF THIS CDE IS A MINOR */ - XTLST *xtlst; /* 14 extent list address, if (!(CDATTR & CDMIN)) */ - CDE *major; /* 14 contents directory entry, if (CDATTR & CDMIN) */ - }; - unsigned short CDUSE; /* 18 VALUE CONTAINS THE TOTAL MODULE USE - COUNT */ - unsigned char CDATTRB; /* 1A FLAG BYTE */ -#define CDIDENTY 0x40 /* ... ON=MAJOR BUILT BY IDENTIFY FOR AN - UNAUTHORIZED CALLER THAT IDENTIFIED TO - AN APF LIBRARY JPA MODULE */ -#define CDCONTMN 0x02 /* ... ON=CONTAMINATION */ - - unsigned char CDRESV1; /* 1B RESERVED - D */ - - unsigned char CDATTR; /* 1C ATTRIBUTE FLAGS */ -#define CDNIP 0x80 /* ... MODULE LOADED BY NIP OR FIXED/MODIFIED - LPA MODULE */ -#define CDNIC 0x40 /* ... MODULE IS IN PROCESS OF BEING LOADED */ -#define CDREN 0x20 /* ... MODULE IS REENTERABLE */ -#define CDSER 0x10 /* ... MODULE IS SERIALLY REUSABLE */ -#define CDNFN 0x08 /* ... MODULE IS NOT REUSABLE (NON-FUNCTIONAL)*/ -#define CDMIN 0x04 /* ... THIS IS A MINOR CDE */ -#define CDJPA 0x02 /* ... MODULE IS IN JOB PACK AREA */ -#define CDNLR 0x01 /* ... MODULE IS NOT LOADABLE-ONLY */ - - unsigned char CDATTR2; /* 1D SECOND ATTRIBUTE FIELD */ -#define CDSPZ 0x80 /* ... MODULE IS IN SUBPOOL ZERO */ -#define CDREL 0x40 /* ... MODULE IS INACTIVE AND MAY BE RELEASED*/ -#define CDXLE 0x20 /* ... EXTENT LIST HAS BEEN BUILT FOR MODULE. - MAIN STORAGE OCCUPIED BY MODULE IS - DESCRIBED THEREIN. */ -#define CDRLC 0x10 /* ... THIS CDE CONTAINS A MINOR ENTRY POINT - ADDRESS THAT HAS BEEN RELOCATED BY THE - PROGRAM FETCH ROUTINE */ -#define CDOLY 0x04 /* ... MODULE IS IN OVERLAY FORMAT */ -#define CDSYSLIB 0x02 /* ... AUTHORIZED LIBRARY MODULE */ -#define CDAUTH 0x01 /* ... PROGRAM AUTHORIZATION FLAG */ - - unsigned short CDATTR3; /* 1E RESERVED */ -}; -#pragma pack(reset) - -#endif diff --git a/src/crent370/include/clib.h b/src/crent370/include/clib.h deleted file mode 100644 index fb8f9ee..0000000 --- a/src/crent370/include/clib.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef CLIB_H -#define CLIB_H - -#include -#include -#include -#include -#include - -#define __getcrt() (__crtget()) -#define __rescrt() (__crtres()) -#define __setcrt() (__crtset()) -#define __getgrt() (__grtget()) -#define __resgrt() (__grtres()) -#define __setgrt() (__grtset()) -#define __getwsa(key,len) (__wsaget((key),(len))) -#define __getjpa() (__jpaget()) - -#endif - diff --git a/src/crent370/include/clib64.h b/src/crent370/include/clib64.h deleted file mode 100644 index 139a90b..0000000 --- a/src/crent370/include/clib64.h +++ /dev/null @@ -1,113 +0,0 @@ -#ifndef CLIB64_H -#define CLIB64_H -#include - -/* This macro defines the word size in bytes of the array that constitues the big-number data structure. */ -/* Since our target machine has 32 bit integers maximum, we need to use half that for the array */ -#define __64_WORD_SIZE 2 /* 2==16 bit array elements */ - -/* Size of big-numbers in bytes */ -#define __64_ARRAY_SIZE (8 / __64_WORD_SIZE) /* we only need 64 bit values for time64 so we use 8 bytes */ - -#define __64_DTYPE uint16_t -#define __64_DTYPE_TMP uint32_t -#define __64_DTYPE_MSB ((__64_DTYPE_TMP)(0x8000)) -#define __64_SPRINTF_FORMAT_STR "%.04x" -#define __64_SSCANF_FORMAT_STR "%4hx" -#define __64_MAX_VAL ((__64_DTYPE_TMP)0xFFFF) - -/* Data-holding structure: array of __64_DTYPEs */ -typedef union { - uint64_t u64; /* used internally for bit operations and assigments */ - uint32_t u32[2]; /* used internally for initialization */ - __64_DTYPE array[__64_ARRAY_SIZE]; /* used internally for arithmatic operations */ -} __64; - -/* Tokens returned by __64_cmp() for value comparison */ -enum { __64_SMALLER = -1, __64_EQUAL = 0, __64_LARGER = 1 }; - - -/* Initialization functions: */ -void __64_init(__64* n) asm("@@64INIT"); -void __64_from_i32(__64* n, int32_t i32) asm("@@64FI32"); -void __64_from_u32(__64* n, uint32_t u32) asm("@@64FU32"); -void __64_from_u64(__64* n, uint64_t u64) asm("@@64FU64"); - -int32_t __64_to_i32(__64* n) asm("@@64TI32"); -uint32_t __64_to_u32(__64* n) asm("@@64TU32"); -uint64_t __64_to_u64(__64 *n) asm("@@64TU64"); - -void __64_from_string(__64* n, char* str) asm("@@64FSTR"); -void __64_to_string(__64* n, char* str, int maxsize) asm("@@64TSTR"); - -/* Basic arithmetic operations: */ -void __64_add(__64* a, __64* b, __64* c) asm("@@64ADD"); /* c = a + b */ -void __64_add_i32(__64* a, int32_t b, __64* c) asm("@@64AI32"); /* c = a + b */ -void __64_add_u32(__64* a, uint32_t b, __64* c) asm("@@64AU32"); /* c = a + b */ -void __64_add_u64(__64* a, uint64_t b, __64* c) asm("@@64AU64"); /* c = a + b */ - -void __64_sub(__64* a, __64* b, __64* c) asm("@@64SUB"); /* c = a - b */ -void __64_sub_i32(__64* a, int32_t b, __64* c) asm("@@64SI32"); /* c = a - b */ -void __64_sub_u32(__64* a, uint32_t b, __64* c) asm("@@64SU32"); /* c = a - b */ -void __64_sub_u64(__64* a, uint64_t b, __64* c) asm("@@64SU64"); /* c = a - b */ - -void __64_mul(__64* a, __64* b, __64* c) asm("@@64MUL"); /* c = a * b */ -void __64_mul_i32(__64 *a, int32_t b, __64* c) asm("@@64MI32"); /* c = a * b */ -void __64_mul_u32(__64 *a, uint32_t b, __64* c) asm("@@64MU32"); /* c = a * b */ -void __64_mul_u64(__64 *a, uint64_t b, __64 *c) asm("@@64MU64"); /* c = a * b */ - -void __64_div(__64* a, __64* b, __64* c) asm("@@64DIV"); /* c = a / b */ -void __64_div_i32(__64* a, int32_t b, __64* c) asm("@@64DI32"); /* c = a / b */ -void __64_div_u32(__64* a, uint32_t b, __64* c) asm("@@64DU32"); /* c = a / b */ -void __64_div_u64(__64* a, uint64_t b, __64* c) asm("@@64DU64"); /* c = a / b */ - -void __64_mod(__64* a, __64* b, __64* c) asm("@@64MOD"); /* c = a % b */ -void __64_mod_i32(__64* a, int32_t b, __64* c) asm("@@64QI32"); /* c = a % b */ -void __64_mod_u32(__64* a, uint32_t b, __64* c) asm("@@64QU32"); /* c = a % b */ -void __64_mod_u64(__64* a, uint64_t b, __64* c) asm("@@64QU64"); /* c = a % b */ - -void __64_divmod(__64* a, __64* b, __64* c, __64* d) asm("@@64DMOD"); /* c = a/b, d = a%b */ -void __64_divmod_i32(__64* a, int32_t b, __64* c, __64* d) asm("@@64VI32");/* c = a/b, d = a%b */ -void __64_divmod_u32(__64* a, uint32_t b, __64* c, __64* d) asm("@@64VU32");/* c = a/b, d = a%b */ -void __64_divmod_u64(__64* a, uint64_t b, __64* c, __64* d) asm("@@64VU64");/* c = a/b, d = a%b */ - -/* Bitwise operations: */ -void __64_and(__64* a, __64* b, __64* c) asm("@@64AND"); /* c = a & b */ -void __64_and_i32(__64* a, int32_t b, __64* c) asm("@@64NI32"); /* c = a & b */ -void __64_and_u32(__64* a, uint32_t b, __64* c) asm("@@64NU32"); /* c = a & b */ -void __64_and_u64(__64* a, uint64_t b, __64* c) asm("@@64NU64"); /* c = a & b */ - -void __64_or(__64* a, __64* b, __64* c) asm("@@64OR"); /* c = a | b */ -void __64_or_i32(__64* a, int32_t b, __64* c) asm("@@64OI32"); /* c = a | b */ -void __64_or_u32(__64* a, uint32_t b, __64* c) asm("@@64OU32"); /* c = a | b */ -void __64_or_u64(__64* a, uint64_t b, __64* c) asm("@@64OU64"); /* c = a | b */ - -void __64_xor(__64* a, __64* b, __64* c) asm("@@64XOR"); /* c = a ^ b */ -void __64_xor_i32(__64* a, int32_t b, __64* c) asm("@@64XI32"); /* c = a ^ b */ -void __64_xor_u32(__64* a, uint32_t b, __64* c) asm("@@64XU32"); /* c = a ^ b */ -void __64_xor_u64(__64* a, uint64_t b, __64* c) asm("@@64XU64"); /* c = a ^ b */ - -void __64_lshift(__64* a, __64* b, int nbits) asm("@@64LSFT"); /* b = a << nbits */ -void __64_rshift(__64* a, __64* b, int nbits) asm("@@64RSFT"); /* b = a >> nbits */ - -/* Special operators and comparison */ -int __64_cmp(__64* a, __64* b) asm("@@64CMP"); /* Compare: returns LARGER, EQUAL or SMALLER */ -int __64_cmp_i32(__64* a, int32_t b) asm("@@64CI32");/* Compare: returns LARGER, EQUAL or SMALLER */ -int __64_cmp_u32(__64* a, uint32_t b) asm("@@64CU32");/* Compare: returns LARGER, EQUAL or SMALLER */ -int __64_cmp_u64(__64* a, uint64_t b) asm("@@64CU64");/* Compare: returns LARGER, EQUAL or SMALLER */ - -int __64_is_zero(__64* n) asm("@@64IS0"); /* For comparison with zero */ -void __64_inc(__64* n) asm("@@64INC"); /* Increment: add one to n */ -void __64_dec(__64* n) asm("@@64DEC"); /* Decrement: subtract one from n */ -void __64_pow(__64* a, __64* b, __64* c) asm("@@64POW"); /* Calculate a^b -- e.g. 2^10 => 1024 */ -void __64_isqrt(__64* a, __64* b) asm("@@64ISQR");/* Integer square root -- e.g. isqrt(5) => 2*/ -void __64_copy(__64* src, __64* dst) asm("@@64COPY");/* Copy src into dst -- dst := src */ -#define __64_assign(dst,src) __64_copy((src),(dst)) - -/* Functions for shifting number in-place. */ -void __64_lshift_one_bit(__64* a) asm("@@64LSH1"); -void __64_rshift_one_bit(__64* a) asm("@@64RSH1"); -void __64_lshift_word(__64* a, int nwords) asm("@@64LSHW"); -void __64_rshift_word(__64* a, int nwords) asm("@@64RSHW"); - -#endif /* CLIB64_H */ diff --git a/src/crent370/include/clibary.h b/src/crent370/include/clibary.h deleted file mode 100644 index 040d1a7..0000000 --- a/src/crent370/include/clibary.h +++ /dev/null @@ -1,77 +0,0 @@ -/* CLIBARY.H */ -#ifndef CLIBARY_H -#define CLIBARY_H -#include -#include -#include - -typedef struct array ARRAY; - -/* internal structure of an array */ -struct array { - char eye[4]; -#define ARRAY_EYE "ARRY" - unsigned size; - unsigned count; -}; - -#define ARRAY_SIZE (sizeof(ARRAY) / sizeof(void *)) -#define ARRAY_DEFAULT 20 /* default for new array size */ - -/* allocate a new array of size elements */ -extern void *arraynew(unsigned size) asm("@@ARNEW"); -extern void *array_new(unsigned size) asm("@@ARNEW"); - -/* Note: all of the following have a "varray" that must be supplied -** as a *** type pointer in those calls. -** -** Example: -** char **myarray = NULL; -** int rc = arrayaddf(&myarray, "Hello World"); -*/ - -/* add item to array */ -extern int arrayadd(void * varray, void *vitem) asm("@@ARADD"); -extern int array_add(void * varray, void *vitem) asm("@@ARADD"); - -/* add formatted string to array */ -extern int arrayaddf( void * varray, const char *fmt, ... ) asm("@@ARADF"); -extern int array_adf( void * varray, const char *fmt, ... ) asm("@@ARADF"); -extern int array_addf( void * varray, const char *fmt, ... ) asm("@@ARADF"); - -/* return number of items in array */ -extern unsigned arraycou( void * varray ) asm("@@ARCOU"); -extern unsigned arraycount( void * varray ) asm("@@ARCOU"); -extern unsigned array_cou( void * varray ) asm("@@ARCOU"); -extern unsigned array_count( void * varray ) asm("@@ARCOU"); - -/* free array storage, items are not freed (you need to free them first) */ -extern int arrayfree( void * varray ) asm("@@ARFRE"); -extern int array_fre( void * varray ) asm("@@ARFRE"); -extern int array_free( void * varray ) asm("@@ARFRE"); - -/* return item (index) from array, index range 1 through count */ -extern void *arrayget( void * varray, unsigned index ) asm("@@ARGET"); -extern void *array_get( void * varray, unsigned index ) asm("@@ARGET"); - -/* return size of array in items */ -extern unsigned arraysize( void * varray ) asm("@@ARSIZ"); -extern unsigned array_siz( void * varray ) asm("@@ARSIZ"); -extern unsigned array_size( void * varray ) asm("@@ARSIZ"); - -/* delete item from array */ -extern void *arraydel( void * varray, unsigned index ) asm("@@ARDEL"); -extern void *array_del( void * varray, unsigned index ) asm("@@ARDEL"); - -/* call function fn for each array item in varray. - if function fn returns a non-zero value processing ends with that value - returned to the caller of the arrayeach() function. */ -extern int arrayeach(void * varray, - int (*fn)(unsigned index, void *item, void *udata), - void *udata) asm("@@AREACH"); -extern int array_each(void * varray, - int (*fn)(unsigned index, void *item, void *udata), - void *udata) asm("@@AREACH"); - - -#endif diff --git a/src/crent370/include/clibauth.h b/src/crent370/include/clibauth.h deleted file mode 100644 index fcdf7a1..0000000 --- a/src/crent370/include/clibauth.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef CLIBAUTH_H -#define CLIBAUTH_H - -/* __autask() - make task APF authorized */ -extern int __autask(void); - -/* __uatask() - reverse of __autask(), reset APF authorization */ -extern int __uatask(void); - -/* __austep() - make STEPLIB dataset APF authorized */ -extern int __austep(void); - -/* __uastep() - reverse of __austep(), reset STEPLIB APF authorization */ -extern int __uastep(void); - -/* __isauth() - returns true if task is APF authorized, false if not */ -extern int __isauth(void); - -#endif - diff --git a/src/crent370/include/clibb64.h b/src/crent370/include/clibb64.h deleted file mode 100644 index e4f2f63..0000000 --- a/src/crent370/include/clibb64.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef CLIBB64_H -#define CLIBB64_H - -#include -#include - -extern const unsigned char __b64tbl[65] asm("@@B64TBL"); - -extern unsigned char * -base64_encode(const unsigned char *src, size_t len, size_t *out_len) asm("@@B64ENC"); - -extern unsigned char * -base64_decode(const unsigned char *src, size_t len, size_t *out_len) asm("@@B64DEC"); - -#endif diff --git a/src/crent370/include/clibccw.h b/src/crent370/include/clibccw.h deleted file mode 100644 index d946ce8..0000000 --- a/src/crent370/include/clibccw.h +++ /dev/null @@ -1,58 +0,0 @@ -#ifndef CLIBCCW_H -#define CLIBCCW_H - -typedef struct ccw0 CCW0; /* CCW with 24 bit address */ -typedef struct ccw1 CCW1; /* CCW with 31 bit address */ -typedef union ccw CCW; /* generic CCW container */ - -struct ccw0 { - unsigned int cmd : 8; /* 00 command code */ - unsigned int addr : 24; /* 01 address */ - unsigned char flags; /* 04 flags see below */ - unsigned char reserved; /* 05 reserved */ - unsigned short count; /* 06 bytes transfered */ -} __attribute__ ((packed)); /* 08 */ - -struct ccw1 { - unsigned char cmd; /* 00 command code */ - unsigned char flags; /* 01 flags see below */ - unsigned short count; /* 02 bytes transfered */ - unsigned int addr; /* 04 address */ -} __attribute__ ((packed)); /* 08 */ - -union ccw { - CCW0 ccw0; /* 00 type 0 ccw */ - CCW1 ccw1; /* 00 type 1 ccw */ -} __attribute__ ((packed)); /* 08 CCW */ - -/* standard command codes */ -#define CCW_CMD_WRITE 0x01 /* mmmm mm01 */ -#define CCW_CMD_READ 0x02 /* mmmm mm10 */ -#define CCW_CMD_CONTROL 0x03 /* mmmm mm11 */ -#define CCW_CMD_CONTROL_NOOP 0x03 /* 0000 0011 */ -#define CCW_CMD_SENSE 0x04 /* mmmm 0100 */ -#define CCW_CMD_SENSE_BASIC 0x04 /* 0000 0100 */ -#define CCW_CMD_SENSE_ID 0xE4 /* 1110 0100 */ -#define CCW_CMD_TIC 0x08 /* xxxx 1000 */ - -/* DASD specific command codes */ -#define CCW_CMD_STLCK 0x14 -#define CCW_CMD_SUSPEND_RECONN 0x5B -#define CCW_CMD_RDC 0x64 -#define CCW_CMD_RELEASE 0x94 -#define CCW_CMD_SET_PGID 0xAF -#define CCW_CMD_DCTL 0xF3 -#define CCW_CMD_SENSE_PGID 0x34 - -#define SENSE_MAX_COUNT 0x20 - -/* standard flags */ -#define CCW_FLAG_CD 0x80 /* chain data */ -#define CCW_FLAG_CC 0x40 /* chain command */ -#define CCW_FLAG_SLI 0x20 /* suppress length */ -#define CCW_FLAG_SKIP 0x10 /* suppress data xfer */ -#define CCW_FLAG_PCI 0x08 /* pgm controlled int */ -#define CCW_FLAG_IDA 0x04 /* addr -> IDAW */ -#define CCW_FLAG_SUSPEND 0x02 /* suspend execution */ - -#endif diff --git a/src/crent370/include/clibcib.h b/src/crent370/include/clibcib.h deleted file mode 100644 index f284318..0000000 --- a/src/crent370/include/clibcib.h +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef CLIBCIB_H -#define CLIBCIB_H - -typedef struct com COM; -typedef struct cib CIB; - -/* console communication handle */ -struct com { - unsigned *comecbpt; /* PTR TO ECB FOR STOP OR MODIFY COMMAND */ - CIB *comcibpt; /* PTR TO COMMAND INPUT BUFFER (CIB) */ -}; - -#pragma pack(1) -struct cib { - CIB *cibnext; /* ADDRESS OF NEXT CIB IN QUEUE (0 FOR LAST)*/ - unsigned char cibverb; /* COMMAND VERB CODE */ -#define CIBSTART 0x04 /* COMMAND CODE FOR START */ -#define CIBMODFY 0x44 /* COMMAND CODE FOR MODIFY */ -#define CIBSTOP 0x40 /* COMMAND CODE FOR STOP */ -#define CIBMOUNT 0x0C /* COMMAND CODE FOR MOUNT */ - unsigned char ciblen; /* LENGTH IN DOUBLEWORDS OF CIB INCLUDING */ - /* ... CIBDATA */ - unsigned char unused1[4]; /* RESERVED FOR CSCB COMPATIBILITY */ - unsigned short cibasid; /* ADDRESS SPACE ID (OS/VS2) */ - unsigned char cibconid; /* IDENTIFIER OF CONSOLE ISSUING COMMAND */ - unsigned char unused2; /* RESERVED */ - unsigned short cibdatln; /* LENGTH IN BYTES OF DATA IN CIBDATA */ - unsigned char cibdata[8]; /* DATA FROM COMMAND OPERAND */ - /* (LENGTH OF CIBDATA IS A MULTIPLE OF EIGHT BYTES */ - /* DEPENDING ON THE VALUE CONTAINED IN CIBLEN) */ - /* START - FOURTH POSITIONAL PARAMETER (PARMVALUE) */ - /* MODIFY - RESIDUAL OPERAND IMAGE FOLLOWING COMMA */ - /* TERMINATING FIRST POSITIONAL PARAMETER */ - /* STOP - NONE (CIB GENERATED ONLY TO GIVE CONSOLE ID) */ -}; -#pragma pack(reset) - -/* __gtcom() - return console communcation handle */ -extern COM *__gtcom(void); - -extern int __cibset(unsigned count); - -extern CIB *__cibget(void); - -extern int __cibdel(CIB *cib); - -#endif diff --git a/src/crent370/include/clibcp.h b/src/crent370/include/clibcp.h deleted file mode 100644 index 6f8212c..0000000 --- a/src/crent370/include/clibcp.h +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef CLIBCP_H -#define CLIBCP_H - -#include "osdcb.h" -#include "hasphct.h" /* JES Checkpoint Control Table, record 3 in HASPCKPT */ -#include "haspjqe.h" /* JES Job Queue Elements */ -#include "haspjot.h" /* JES Job Output Table */ - -typedef struct haspcp HASPCP; /* JES Checkpoint Dataset */ - -struct haspcp { - char eye[8]; /* 00 eye catcher for dumps */ -#define HASPCP_EYE "HASPCP" /* ... */ - char ddname[8]; /* 08 DD name */ - DCB *dcb; /* 10 DCB address */ - __HCT hct; /* 14 Checkpoint Control Table */ - unsigned int pddb1; /* E0 Offset to first PDDB in IOT */ - unsigned short jqeblks; /* E4 Number of JQE blocks */ - unsigned short jotblks; /* E6 number of JOT blocks */ - unsigned buflen; /* E8 Length of Checkpoint buffer */ - char *buf; /* EC Checkpoint buffer */ - __JQE *jqe; /* F0 Job Queue Elements */ - __JQE *jqeend; /* F4 End of Job Queue Elements */ - __JOT *jot; /* F8 Job Output Table */ - __JOT *jotend; /* FC End of Job Output Table */ -}; - -extern HASPCP * __cpopen(const char *dataset); -extern HASPCP * checkpoint_open(const char *dataset); /* pseudo name for codeblocks */ -#define checkpoint_open(dataset) __cpopen((dataset)) - -extern int __cpclos(HASPCP *cp); -extern int checkpoint_close(HASPCP *cp); /* pseudo name for codeblocks */ -#define checkpoint_close(cp) __cpclos((cp)) - -extern int __cppoin(HASPCP *cp, unsigned TTRz); -extern int checkpoint_point(HASPCP *cp, unsigned TTRZ); /* pseudo name for codeblocks */ -#define checkpoint_point(cp,ttrz) __cppoin((cp),(ttrz)) - -extern int __cpread(HASPCP *cp, void *buf4k); -extern int checkpoint_read(HASPCP *cp, void *buf4k); /* pseudo name for codeblocks */ -#define checkpoint_read(cp,buf4k) __cpread((cp),(buf4k)) - -#endif diff --git a/src/crent370/include/clibcrt.h b/src/crent370/include/clibcrt.h deleted file mode 100644 index 9211f7b..0000000 --- a/src/crent370/include/clibcrt.h +++ /dev/null @@ -1,71 +0,0 @@ -#ifndef CLIBCRT_H -#define CLIBCRT_H - -#include "clibgrt.h" /* process level runtime work area */ - -typedef struct clibcrt CLIBCRT; /* per thread runtime work area */ - -#include "clibary.h" /* dynamic array */ - -/* This structure holds data unique to each task/thread (TCB) -** -** When a task is created, a CLIBCRT is allocated and saved -** in the task CLIBPPA->PPACRT dynamic array. This occurs for both the main -** task via the startup code in @@CRT0.ASM and in the startup code in -** CTHREAD entry point. -** -** The CLIBPPA is found by calling the @@PPAGET entry point in @@CRT0. -** -** The CRTGRT field below is a pointer to the process (main) structure -** that holds data unique to the process regardless of how many -** task/threads are in use (global data). -*/ -struct clibcrt { - char crteye[8]; /* 00 Eye catcher for dumps "CLIBCRT " */ - void *crttcb; /* 08 Owning TCB */ - void *crtsave; /* 0C first save area address */ - void *crtacee; /* 10 ACEE for this task/thread */ - unsigned crtseed; /* 14 seed for rand()/srand() */ - char crtctime[28]; /* 18 result for asctime()/ctime() */ - int crttzoff; /* 34 time zone offset */ - void *crtstime; /* 38 STIMER exit plist */ - unsigned crtuserl; /* 3C length of CRTUSER area */ - unsigned crthoste[10]; /* 40 hostent areas for DYN75 */ - char crthostn[80]; /* 68 host name for DYN75 */ - int crtestct; /* B8 ESTAE stack count */ - unsigned crtestpl[10*2]; /* BC ESTAE parameter list */ - char crtopts; /* 10C copy of original JFCBOPTS byte */ -#define CRTOPTS_AUTH 0x01 /* ... JFCBAUTH bit for APF authorized */ - char crtauth; /* 10D authorization flags */ -#define CRTAUTH_ON 0x80 /* ... task auth via __autask() */ -#define CRTAUTH_STEPLIB 0x40 /* ... steplib auth via __austep() */ - char crtflag; /* 10E processing flag(s) */ -#define CRTFLAG_TSO 0x80 /* ... TSO environment */ -#define CRTFLAG_TSOB 0x40 /* ... TSO background environment */ -#define CRTFLAG_TIN 0x08 /* ... STDIN is terminal */ -#define CRTFLAG_TOUT 0x04 /* ... STDOUT is terminal */ -#define CRTFLAG_TERR 0x02 /* ... STDERR is terminal */ - char unused; /* 10F unused */ - int crterrno; /* 110 error number */ - char *crtstrtk; /* 114 used by strtok() for "old" ptr */ - CLIBGRT *crtgrt; /* 118 process level C runtime anchor */ - char crttmpnm[12]; /* 11C tmpnam() buffer */ - char crttms[4*9]; /* 128 struct tm for gmtime() */ - void **crtpush; /* 14C push/pop function array */ - void **crtargs; /* 150 push/pop arg array */ - void **crtmutx; /* 154 mutex cleanup array */ - void *crtapp1; /* 158 application use #1 */ - void *crtapp2; /* 15C application use #2 */ - void *crtufs; /* 160 Unix "like" File System */ - unsigned unused2; /* 164 unused/available */ - char crtntoa[16]; /* 168 "nnn.nnn.nnn.nnn" xxxx_ntoa() */ - unsigned crttryrc; /* 178 return/abend code from try() */ - unsigned crtavail[3]; /* 17C unused/available */ -}; /* 188 (392 bytes) */ - -extern CLIBCRT *__crtget(void); -extern int __crtset(void); -extern int __crtres(void); - - -#endif diff --git a/src/crent370/include/clibdscb.h b/src/crent370/include/clibdscb.h deleted file mode 100644 index eb5c5d7..0000000 --- a/src/crent370/include/clibdscb.h +++ /dev/null @@ -1,239 +0,0 @@ -/* CLIBDSCB.H -/* -/* Data Set Control Blocks (MVS) -*/ -#ifndef CLIBDSCB_H -#define CLIBDSCB_H - -typedef struct extent EXTENT; -typedef struct dscb1 DSCB1; -typedef struct dscb3 DSCB3; -typedef struct dscb4 DSCB4; -typedef union dscb DSCB; -typedef struct locwork LOCWORK; /* used by __locate() */ - -struct extent { - unsigned char flag; /* extent flags */ -#define EXTCYL 0x81 /* .. extent on cylinder boundaries */ -#define EXTCYLS 0x80 /* .. extent sharing cylinder (no longer supported) */ -#define EXTLAB 0x40 /* .. first extent describes the user lables and is not counted in NOEPV */ -#define EXTIDX 0x04 /* .. index area (ISAM) */ -#define EXTOV 0x02 /* .. overflow area (ISAM) */ -#define EXTDAT 0x01 /* .. users data block, or a prime area extent (ISAM) */ - unsigned char seq; /* extent sequence number */ - unsigned char lower[4]; /* lower CCHH */ - unsigned char upper[4]; /* upper CCHH */ -}; - -struct dscb1 { - char fmtid; /* 00 format id 0xF1 */ - char dssn[6]; /* 01 data set serial number (volser) */ - unsigned char volsq[2]; /* 07 volume sequence number */ - char credt[3]; /* 09 creation date */ - char expdt[3]; /* 0C expiration date */ - unsigned char noepv; /* 0F number of extents on volume */ - unsigned char nobdb; /* 10 number of bytes used in last directory block */ - unsigned char flag1; /* 11 flags */ -#define COMPR 0x80 /* .. compressed format data set (STRP is also 1) */ -#define CPOIT 0x40 /* .. checkpointed data set */ - char syscd[13]; /* 12 system code */ - char refd[3]; /* 1F last reference date */ - unsigned char smsfg; /* 22 SMS flag */ -#define SMSDS 0x80 /* .. system managed data set */ -#define SMSUC 0x40 /* .. uncataloged system managed data set */ -#define REBLK 0x20 /* .. can be reblocked */ -#define CRSDB 0x10 /* .. created but empty data set */ -#define PDSE 0x08 /* .. PDSE or HFS data set (PDSEX also 1 for HFS) */ -#define STRP 0x04 /* .. sequential extended format data set */ -#define PDSEX 0x02 /* .. HFS data set (PDSE must also be 1) */ -#define DSAE 0x01 /* .. extended attributes exist */ - unsigned char scxtf; /* 23 secondary space extension flag byte */ -#define SCAVB 0x80 /* .. SCXTV is the original block length. on=average block, off=average record */ -#define SCMB 0x40 /* .. SCXTV is in megabytes */ -#define SCKB 0x20 /* .. SCXTV is in kilobytes */ -#define SCUB 0x10 /* .. SCXTV is in bytes */ -#define SCCP1 0x08 /* .. SCXTV has been compacted by a factor of 256 */ -#define SCCP2 0x04 /* .. SCXTV has been compacted by a factor of 65536 */ - unsigned short scxtv; /* 24 secondary space extension value */ - unsigned char dsorg1; /* 26 first byte of dsorg flags */ -#define DSGIS 0x80 /* .. indexed sequential */ -#define DSGPS 0x40 /* .. physical sequential */ -#define DSGDA 0x20 /* .. direct access */ -#define DSGCX 0x10 /* .. BTAM or QTAM line group */ -#define DSGPO 0x02 /* .. partitioned */ -#define DSGU 0x01 /* .. unmovable */ - unsigned char dsorg2; /* 27 second byte of dsorg flags */ -#define DSGGS 0x80 /* .. graphics */ -#define DSGTX 0x40 /* .. TCAM line group */ -#define DSGTQ 0x20 /* .. TCAM message queue */ -#define ACBM 0x08 /* .. VSAM data set/space */ -#define ORGAM 0x08 /* .. VSAM data set/space */ -#define DSGTR 0x04 /* .. TCAM 3705 */ - unsigned char recfm; /* 28 record format */ -#define RECFF 0x80 /* .. fixed */ -#define RECFV 0x40 /* .. variable */ -#define RECFU 0xC0 /* .. undefined */ -#define RECFT 0x20 /* .. track overflow */ -#define RECFB 0x10 /* .. blocked */ -#define RECFS 0x08 /* .. fixed length: standard blocks; no truncated blcoks */ - /* .. variable length: spanned records */ -#define RECFA 0x04 /* .. ISO/ANSI control characters */ -#define RECMC 0x02 /* .. machine control characters */ - unsigned char optcd; /* 29 option code */ -/* BDAM optcd values (when DSGDA is on) */ -#define BDAMWVC 0x80 /* .. write validity check */ -#define BDAMTO 0x40 /* .. track overflow */ -#define BDAMES 0x20 /* .. extended search */ -#define BDAMFB 0x10 /* .. feedback */ -#define BDAMAA 0x08 /* .. actual addressing */ -#define BDAMDB 0x04 /* .. dynamic buffering */ -#define BDAMRE 0x02 /* .. read exclusive */ -#define BDAMRBA 0x01 /* .. relative block addressing */ -/* ISAM optcd values (when DSGIS in on) */ -#define ISAMWVC 0x80 /* .. write validity check */ -#define ISAMACT 0x40 /* .. accumulate track index entry */ -#define ISAMMI 0x20 /* .. master indices */ -#define ISAMIO 0x10 /* .. indepenent overflow area */ -#define ISAMCO 0x08 /* .. cylinder overflow area */ -#define ISAMD 0x02 /* .. delete option */ -#define ISAMR 0x01 /* .. reorganization criteria */ -/* BPAM, BSAM, QSAM optcd values (when DSGPO or DSGPS is on) */ -#define OPTWVC 0x80 /* .. write validity check */ -#define OPTADC 0x40 /* .. allow data check (if on printer) */ -#define OPTCS 0x20 /* .. chain scheduling */ -#define OPTVSE 0x10 /* .. VSE/MVS interchange feature on tape */ -#define OPTEOV 0x08 /* .. treat EOF as EOV (tape) */ -#define OPTSD 0x04 /* .. search direct */ -#define OPTUT 0x02 /* .. user label totaling */ -#define OPTTRC 0x01 /* .. each record contains a table reference character */ -/* VSAM optcd values (when ORGAM in on) */ -#define OPTIC 0x80 /* .. data set is cataloged in an ICF catalog */ -#define OPTBC 0x40 /* .. data set is an ICF catalog */ - unsigned short blksz; /* 2A block length */ - unsigned short lrecl; /* 2C logical record length */ - unsigned char keyl; /* 2E key length */ - unsigned char rkp[2]; /* 2F relative key position */ - unsigned char dsind; /* 31 data set indicators */ -#define IND80 0x80 /* .. last volume containing data in this data set */ -#define IND40 0x40 /* .. RACF discrete profile */ -#define IND20 0x20 /* .. block length is multiple of 8 bytes */ -#define IND10 0x10 /* .. password is required to read or write */ -#define IND08 0x08 /* .. reserved */ -#define IND04 0x04 /* .. password required to write (IND10 must be on) but not read */ - /* .. otheriwse password required to write and read. */ -#define IND02 0x02 /* .. data set opened for other than input since last backup */ -#define DSCHA 0x02 /* .. " " */ -#define IND01 0x01 /* .. secure checkpoint data set */ -#define CHKOT 0x01 /* .. " " */ - unsigned char scal1; /* 32 secondary space allocation flag */ -#define CYL 0xC0 /* .. cylinder */ -#define TRK 0x80 /* .. track */ -#define AVR 0x40 /* .. average record */ -#define MSGP 0x20 /* .. mass storage vol group (no longer supported) */ -#define EXT 0x10 /* .. extension to secondary space exist (see SCEXT) (not CYL, TRK or AVR) */ -#define CONTG 0x08 /* .. contigious */ -#define MXIG 0x04 /* .. MXIG */ -#define ALX 0x02 /* .. ALX */ -#define ROUND 0x01 /* .. round */ - unsigned char scal3[3]; /* 33 secondary allocation quantity */ - unsigned char lstar[3]; /* 36 last used track and block on track (TTR) */ - unsigned char trbal[2]; /* 39 space remaining on last track */ - unsigned char reserved1[2]; /* 3B reserved */ - EXTENT extent[3]; /* 3D first three extents */ - unsigned char ptrds[5]; /* 40 pointer (CCHHR) to a format-2 or format-3 DSCB, or zero */ -}; - -struct dscb3 { - unsigned char key[4]; /* key identifier "\x03\x03\x03\x03" */ - EXTENT extent4[4]; /* first four extents */ - char fmtid; /* format ID 0xF3 */ - EXTENT extent9[9]; /* nine additional extents */ - unsigned char ptrds[5]; /* pointer (CCHHR) to next format-3 DSCB or zero */ -}; - -struct dscb4 { - char key[44]; /* all hex 0x04 */ - char fmtid; /* format id 0xF4 */ - unsigned char hpchr[5]; /* highest address (CCHHR) of a format-1 DSCB */ - unsigned short dsrec; /* number of available DSCBs */ - unsigned char hcchh[4]; /* CCHH of next available alternate track */ - unsigned short noatk; /* number of remaining alternate tracks */ - unsigned char vtoci; /* VTOC indicators */ -#define DOSBT 0x80 /* .. VSE bit. Indexed VTOC */ -#define DVTOC 0x40 /* .. index was disabled */ -#define EFVLD 0x20 /* .. extented free space management flag */ -#define DSTKP 0x10 /* .. VSE stacked pack */ -#define DOCVT 0x08 /* .. VSE converted VTOC */ -#define DIRF 0x04 /* .. DIRF bit. a VTOC changce is incomplete */ -#define DICVT 0x02 /* .. DIRF reclaimed */ -#define IVTOC 0x01 /* .. volume uses an indexed VTOC */ - unsigned char noext; /* number of extents in the VTOC */ - unsigned char smsfg; /* SMS indicators */ -#define SMSCV 0x40 /* .. SMS in initial status */ -#define SMS 0xC0 /* .. SMS volume */ - unsigned char devac; /* number of alternate cylinders when volume was formatted */ - unsigned short dscyl; /* number of logical cylinders */ - unsigned short dstrk; /* number of tracks in logical cylinder */ - unsigned short devtk; /* device track length */ - unsigned short devov; /* keyed record overhead */ - unsigned char devi; /* non-last-keyed record overhead */ - unsigned char devl; /* last keyed record overhead */ - unsigned char devk; /* non-keyed record overhead differential */ - unsigned char devfg; /* device flags */ -#define DEVAV 0x10 /* .. value in DEVAC is valid */ - unsigned short devtl; /* device tolerance */ - unsigned char devdt; /* number of DSCBs per track */ - unsigned char devdb; /* number of PDS directory blocks per track */ - unsigned char amtim[8]; /* VSAM time stamp */ - unsigned char amcat[3]; /* VSAM catalog indicator */ - unsigned char vsind; /* VSAM indicators */ -#define VSREF 0x80 /* .. a VSAM catalog references this volume */ -#define VSBAD 0x40 /* .. the VSAM data sets on this volume are unusable (no longer set) */ - unsigned short cra; /* relative track location of the CRA */ - unsigned char r2tim[8]; /* VSAM volume/catalog match time stamp */ - char reserved1[5]; /* reserved */ - unsigned char f6ptr[5]; /* pointer (CCHHR) to first format-6 DSCB or zero (no longer supported) */ - EXTENT extent[2]; /* VTOC extents */ - unsigned char eflvl; /* Extent free-space management level */ - unsigned char efptr[5]; /* pointer to extended free-space information (format-7 DSCBs) */ - char reserved2[9]; /* reserved */ -}; - -union dscb { - char work[140]; /* 140 byte work area */ - DSCB1 dscb1; /* format-1 DSCB */ - DSCB3 dscb3; /* format-3 DSCB */ - DSCB4 dscb4; /* format-4 DSCB */ -}; - -struct locwork { - unsigned char unused1[6]; /* work area should be 0 */ - char volser[6]; /* returned to caller */ - unsigned char unused2[256]; /* work area should be 0 */ -}; - -/* The following functions use the OBTAIN service and return the OBTAIN return code. -/* Return Code -/* 0(X'00') Successful completion of OBTAIN routine. -/* 4(X'04') The required volume was not mounted. -/* 8(X'08') The format-1 DSCB was not found in the VTOC of the specified volume. -/* 12(X'0C') A permanent I/O error was encountered, or an invalid format-1 DSCB -/* was found when processing the specified volume, or an unexpected -/* error return code was received from CVAF (common VTOC access facility). -/* 16(X'10') Invalid work area pointer. - */ - -/* __dscbdv() - get DSCB by dataset name and volume */ -extern int __dscbdv(const char dsn[44], const char vol[6], DSCB *dscb); - -/* __dscbav() - get DSCB by absolute address and volume */ -extern int __dscbav(const char cchhr[5], const char vol[6], DSCB *dscb); - -/* __dscbv() - get format 4 DSCB by volume */ -extern int __dscbv(const char vol[6], DSCB *dscb); - -/* __locate() - locate dataset by name, volser is returned in the workarea */ -extern int __locate(const char dsn[44], LOCWORK *workarea); - - -#endif diff --git a/src/crent370/include/clibecb.h b/src/crent370/include/clibecb.h deleted file mode 100644 index 9718351..0000000 --- a/src/crent370/include/clibecb.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef CLIBECB_H -#define CLIBECB_H - -#include - -typedef unsigned int ECB; - -#define ECB_WAITING_BIT 0x80000000 -#define ECB_POSTED_BIT 0x40000000 -#define ECB_VALUE_MASK 0x3FFFFFFF - -/* ecb_wait() - wait for ECB to be posted */ -int ecb_wait(ECB *ecb) asm("@@ECBWT"); - -/* ecb_timed_wait() - wait for ecb to be posted, after bintvl expires ecb will be posted with postcode value */ -int ecb_timed_wait(ECB *ecb, unsigned bintvl, unsigned postcode) asm("@@ECBTW"); - -/* ecb_waitlist() - wait for any ecb in the ecb list to be posted, last ecb address must have high bit on */ -int ecb_waitlist(ECB **ecblist) asm("@@ECBWL"); - -/* ecb_waitarray() - wait for any ecb in the ecb array to be posted */ -int ecb_waitarray(ECB **ecbarray) asm("@@ECBWA"); - -/* ecb_timed_waitlist() wait for any ecb in the ecb list to be posted, - if timeecb is not null then after bintvl expires the timeecb will be posted with postcode value */ -int ecb_timed_waitlist(ECB **ecblist, ECB *timeecb, unsigned bintvl, unsigned postcode) asm("@@ECBTWL"); - -/* ecb_timed_waitarray() wait for any ecb in the ecb array to be posted, - if timeecb is not null then after bintvl expires the timeecb will be posted with postcode value */ -int ecb_timed_waitarray(ECB **ecblist, ECB *timeecb, unsigned bintvl, unsigned postcode) asm("@@ECBTWA"); - -int ecb_post(ECB *ecb, unsigned postcode) asm("@@ECBPST"); - -#endif /* CLIBECB_H */ diff --git a/src/crent370/include/clibenq.h b/src/crent370/include/clibenq.h deleted file mode 100644 index 364d2a3..0000000 --- a/src/crent370/include/clibenq.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef CLIBENQ_H -#define CLIBENQ_H - -#define ENQ_SCOPE 0x03 /* SCOPE related bits */ -#define ENQ_SYSTEMS 0x02 /* SCOPE=SYSTEMS */ -#define ENQ_SYSTEM 0x01 /* SCOPE=SYSTEM */ -#define ENQ_STEP 0x00 /* SCOPE=STEP (default) */ - -#define ENQ_SHR 0x04 /* SHARED */ -#define ENQ_EXC 0x00 /* EXCLUSIVE (default) */ - -#define ENQ_RET 0xF0 /* RET related bits */ -#define ENQ_TEST 0x80 /* RET=TEST */ -#define ENQ_USE 0x40 /* RET=USE */ -#define ENQ_CHNG 0x20 /* RET=CHNG */ -#define ENQ_HAVE 0x00 /* RET=HAVE (default) */ - -extern int __enq(const char *qn, const char *rn, unsigned options); - -extern int __deq(const char *qn, const char *rn, unsigned options); - -extern int __enqdeq(const char *qn, const char *rn, unsigned options, int deq); - -#define ENQ(qn,rn,opt) __enqdeq((qn),(rn),(opt),0) -#define DEQ(qn,rn,opt) __enqdeq((qn),(rn),(opt),1) - -#endif diff --git a/src/crent370/include/clibenv.h b/src/crent370/include/clibenv.h deleted file mode 100644 index c94a8f3..0000000 --- a/src/crent370/include/clibenv.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef CLIBENV_H -#define CLIBENV_H - -typedef struct __envvar __ENVVAR; -struct __envvar { - char *name; - char *value; - char buf[2]; -}; - -extern __ENVVAR **__envvar; -extern int __envsiz; - -extern char * __findenv(const char *name, int *index, int nocase); - -extern char * getenv(const char *name); - -extern char * getenvi(const char *name); - -extern int setenv(const char *name, const char *value, int rewrite); - -extern int setenvi(const char *name, int value, int rewrite); - -extern int putenv(const char *str); - -extern int unsetenv(const char *name); - -#endif diff --git a/src/crent370/include/clibgrt.h b/src/crent370/include/clibgrt.h deleted file mode 100644 index 1161c1a..0000000 --- a/src/crent370/include/clibgrt.h +++ /dev/null @@ -1,60 +0,0 @@ -#ifndef CLIBGRT_H -#define CLIBGRT_H - -#include "clibwsa.h" /* process level writable static areas */ - -typedef struct clibgrt CLIBGRT; /* per process runtime work area */ - -#ifndef __SIZE_T_DEFINED -#define __SIZE_T_DEFINED -#if (defined(__OS2__) || defined(__32BIT__) || defined(__MVS__) \ - || defined(__CMS__) || defined(__VSE__)) -typedef unsigned long size_t; -#elif (defined(__MSDOS__) || defined(__DOS__) || defined(__POWERC) \ - || defined(__WIN32__) || defined(__gnu_linux__)) -typedef unsigned int size_t; -#endif -#endif - -/* This structure holds data unique for the process (main) -** regardless of the number of task/threads. The @@CRT0.ASM -** code allocates the CLIBGRT and anchors it in the task level -** CRTGRT field in the CLIBCRT structure. -** -** All of the task/thread level structures refer to the same -** process level CLIBGRT area via the CRTGRT value which is -** propogated from parent task to child task at startup of -** each child task. -*/ -struct clibgrt { - char grteye[8]; /* 00 Eye catcher for dumps "CLIBGRT " */ - short grtclibl; /* 08 length of CLIBGRT area */ - char grtflag1; /* 0A flags */ -#define GRTFLAG1_SOCKINIT 0x80 /* ... sockets initialized */ -#define GRTFLAG1_TSO 0x40 /* ... TSO environment */ - - char unused1; /* 0B unused */ - unsigned grttmpnm; /* 0C tmpnam() counter */ - void **grtexit; /* 10 atexit() array of functions */ - void **grtexita; /* 14 on_exit() array of args */ - void **grtfile; /* 18 open FILE handle array */ - void **grtsock; /* 1C open sockets array */ - void **grtenv; /* 20 environment variables array */ - void *grtin; /* 24 stdin file handle */ - void *grtout; /* 28 stdout file handle */ - void *grterr; /* 2C stderr file handle */ - void *grtcom; /* 30 console communication */ - void *grtapp1; /* 34 for use by applications */ - void *grtapp2; /* 38 for use by applications */ - void *grtapp3; /* 3C for use by applications */ - void *grtcthrd; /* 40 CTHDTASK array */ - void **grtwsa; /* 44 writable static array */ - void **grtdevtb; /* 48 device array */ - void **grtptrs; /* 4C pointers passed in via argv */ -}; /* 50 (80 bytes) */ - -extern CLIBGRT *__grtget(void); -extern int __grtres(void); -extern int __grtset(void); - -#endif diff --git a/src/crent370/include/clibio.h b/src/crent370/include/clibio.h deleted file mode 100644 index 88dffbd..0000000 --- a/src/crent370/include/clibio.h +++ /dev/null @@ -1,157 +0,0 @@ -#ifndef CLIBIO_H -#define CLIBIO_H - -#include -#include - -typedef struct _file FILE; /* file handle */ -typedef struct _file _FILE; /* file handle */ - -struct _file { - char eye[8]; /* 00 eye catcher for dumps */ -#define _FILE_EYE "F I L E" /* ... */ - void *dcb; /* 08 DCB address */ - void *asmbuf; /* 0C buffer for assembler routines */ - - unsigned short lrecl; /* 10 logical record length */ - unsigned short blksize; /* 12 physical block size */ - int ungetch; /* 14 unget character */ - unsigned filepos; /* 18 character offset in file */ - unsigned char *buf; /* 1C file buffer (lrecl+8) */ - - unsigned char *upto; /* 20 current position in buffer */ - unsigned char *endbuf; /* 24 end of buffer */ - unsigned short flags; /* 28 processing flags */ -#define _FILE_FLAG_DYNAMIC 0x8000 /* ... DD dynamically allocated */ -#define _FILE_FLAG_OPEN 0x4000 /* ... dataset is open */ -#define _FILE_FLAG_READ 0x2000 /* ... open for read */ -#define _FILE_FLAG_WRITE 0x1000 /* ... open for write */ -#define _FILE_FLAG_APPEND 0x0800 /* ... open for append */ -#define _FILE_FLAG_BINARY 0x0400 /* ... file data is binary */ -#define _FILE_FLAG_RECORD 0x0200 /* ... fread/fwrite uses record i/o */ -#define _FILE_FLAG_BSAM 0x0100 /* ... BSAM instead of QSAM access */ -#define _FILE_FLAG_TERM 0x0080 /* ... TERM opened in __fpstar() */ - -#define _FILE_FLAG_ERROR 0x0002 /* ... i/o error */ -#define _FILE_FLAG_EOF 0x0001 /* ... EOF has occured */ - - unsigned char recfm; /* 2A record format */ -#define _FILE_RECFM_TYPE 0xC0 /* ... mask for F,V,U */ -#define _FILE_RECFM_F 0x80 /* ... FIXED RECORD LENGTH */ -#define _FILE_RECFM_V 0x40 /* ... VARIABLE RECORD LENGTH */ -#define _FILE_RECFM_U 0xC0 /* ... UNDEFINED RECORD LENGTH */ - -#define _FILE_RECFM_O 0x20 /* ... TRACK OVERFLOW */ -#define _FILE_RECFM_B 0x10 /* ... BLOCKED RECORDS */ -#define _FILE_RECFM_S 0x08 /* ... FOR FIXED LENGTH RECORD FORMAT - - STANDARD BLOCKS. - FOR VARIABLE LENGTH RECORD FORMAT - - SPANNED RECORDS */ -#define _FILE_RECFM_CC 0x06 /* ... mask for carriage control A,M */ -#define _FILE_RECFM_A 0x04 /* ... ASA CONTROL CHARACTER */ -#define _FILE_RECFM_M 0x02 /* ... MACHINE CONTROL CHARACTER */ - -#define _FILE_RECFM_L 0x01 /* ... KEY LENGTH (KEYLEN) WAS SPECIFIED - IN DCB MACRO INSTRUCTION */ - - char ddname[9]; /* 2B DD name */ - char member[9]; /* 34 member name */ - char dataset[45]; /* 3D dataset name */ - char mode[86]; /* 6A open mode string */ -}; /* C0 (192 bytes) */ - -typedef unsigned long fpos_t; - -#define NULL ((void *)0) -#define FILENAME_MAX 260 -#define FOPEN_MAX 256 -#define _IOFBF 1 -#define _IOLBF 2 -#define _IONBF 3 - -/* set it to maximum possible LRECL to simplify processing */ -/* also add in room for a RDW and dword align it just to be - on the safe side */ -#define BUFSIZ 32768 -#define EOF -1 -#define L_tmpnam FILENAME_MAX -#define TMP_MAX 25 -#define SEEK_SET 0 -#define SEEK_CUR 1 -#define SEEK_END 2 - -extern FILE **__gtin(void); -extern FILE **__gtout(void); -extern FILE **__gterr(void); - -#define stdin (*(__gtin())) -#define stdout (*(__gtout())) -#define stderr (*(__gterr())) - -extern int printf(const char *format, ...); -extern FILE *fopen(const char *filename, const char *mode); -extern int fclose(FILE *stream); -extern size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); -extern size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream); -extern int fputc(int c, FILE *stream); -extern int fputs(const char *s, FILE *stream); -extern int fprintf(FILE *stream, const char *format, ...); -extern int vfprintf(FILE *stream, const char *format, va_list arg); -extern int remove(const char *filename); -extern int rename(const char *old, const char *newnam); -extern int sprintf(char *s, const char *format, ...); -extern int vsprintf(char *s, const char *format, va_list arg); -extern char *fgets(char *s, int n, FILE *stream); -extern int ungetc(int c, FILE *stream); -extern int fgetc(FILE *stream); -extern int fseek(FILE *stream, long int offset, int whence); -extern long int ftell(FILE *stream); -extern int fsetpos(FILE *stream, const fpos_t *pos); -extern int fgetpos(FILE *stream, fpos_t *pos); -extern void rewind(FILE *stream); -extern void clearerr(FILE *stream); -extern void perror(const char *s); -extern int setvbuf(FILE *stream, char *buf, int mode, size_t size); -extern int setbuf(FILE *stream, char *buf); -extern FILE *freopen(const char *filename, const char *mode, FILE *stream); -extern int fflush(FILE *stream); -extern char *tmpnam(char *s); -extern FILE *tmpfile(void); -extern int fscanf(FILE *stream, const char *format, ...); -extern int scanf(const char *format, ...); -extern int sscanf(const char *s, const char *format, ...); -extern char *gets(char *s); -extern int puts(const char *s); -extern int getchar(void); -extern int putchar(int c); -extern int getc(FILE *stream); -extern int putc(int c, FILE *stream); -extern int feof(FILE *stream); -extern int ferror(FILE *stream); -extern int vsnprintf(char *s, int n, const char *format, va_list arg); - -#define getchar() (getc(stdin)) -#define putchar(c) (putc((c), stdout)) -#define getc(stream) (fgetc((stream))) -#define putc(c, stream) (fputc((c), (stream))) -#define feof(stream) ((stream)->flags & _FILE_FLAG_EOF) -#define ferror(stream) ((stream)->flags & _FILE_FLAG_ERROR) - -/* return name of function that called the caller of __caller() */ -extern char * __caller(char *caller); - - -/* the following are functions that should only be called while -** holding a lock on the file handle. -*/ -extern int __fflush(FILE *fp); -extern int __fgetc(FILE *fp); -extern char * __fgets(char *s, int n, FILE *fp); -extern int __fputc(int c, FILE *fp); -extern int __fputs(const char *s, FILE *fp); -extern size_t __fread(void *ptr, size_t size, size_t nmemb, FILE *fp); -extern FILE * __reopen(const char *fn, const char *mode, FILE *fp); -extern int __fseek(FILE *fp, long int offset, int whence); -extern size_t __fwrite(const void *vptr, size_t size, size_t nmemb, FILE *fp); - -#endif diff --git a/src/crent370/include/clibispf.h b/src/crent370/include/clibispf.h deleted file mode 100644 index fe8efc1..0000000 --- a/src/crent370/include/clibispf.h +++ /dev/null @@ -1,148 +0,0 @@ -#ifndef CLIBISPF_H -#define CLIBISPF_H - -/* The following function can be found in the ISP.V2R2M0.LLIB dataset */ - -int ispqry(void) asm("ISPQRY"); -/* ispqry() rc=0 ISPF services exist, rc=20 ISPF services are not available */ -#define ispf_available() (ispqry() == 0 ? 1 : 0) - -/* NOTE ISPLINK and ISPEXEC require VL style parameter list - * and C (GCCMVS / C2ASM370) can not create VL style plist. -*/ -int ISPLINK(const char *service_name, ...) asm("ISPLINK"); -int ISPEXEC(unsigned *buflen, const char *buf) asm("ISPEXEC"); - -/* C language callers should use ispexec() or isplink() below - * rc=0 Success - * rc=20 ISPF not active - * - * isplink() callers must set the high order bit of the last paramater - * see ISP_LAST(a) below -*/ -int isplink(const char *service_name, ...) asm("@@ISPLNK"); -int ispexec(const char *fmt, ...) asm("@@ISPEXE"); - -/* ISP_LAST(a) - set the high order bit for this pointer */ -#define ISP_LAST(a) ((void*)((unsigned)(a) | 0x80000000)) - -/* isp_select() - formats buf and calls isplink("SELECT ", buflen, buf) */ -int isp_select(const char *fmt, ...) asm("@@ISPSEL"); - -/* Call depth: - * ispexec() --> tsocmdf() --> tsocmd() --> __link() - * isplink() --> BALR to V(ISPLINK) - * isp_select() --> isplink() --> BALR to V(ISPLINK) -*/ - -/* Note: All service macro names prefixed with ISP_ to avoid name conflicts */ -#define ISP_DEFAULT " " /* default value to be used */ - -/* Display Services */ -#define ISP_ADDPOP "ADDPOP " -#define ISP_DISPLAY "DISPLAY " -#define ISP_REMPOP "REMPOP " -#define ISP_SELECT "SELECT " -#define ISP_SETMSG "SETMSG " -#define ISP_TBDISPL "TBDISPL " - -/* File Tayloring Services */ -#define ISP_FTOPEN "FTOPEN " -#define ISP_FTINCL "FTINCL " -#define ISP_FTCLOSE "FTCLOSE " -#define ISP_FTERASE "FTERASE " - -/* Library Access Services */ -#define ISP_DSINFO "DSINFO " -#define ISP_LMCLOSE "LMCLOSE " -#define ISP_LMCOMP "LMCOMP " -#define ISP_LMCOPY "LMCOPY " -#define ISP_LMDDISP "LMDDISP " -#define ISP_LMDFREE "LMDFREE " -#define ISP_LMDINIT "LMDINIT " -#define ISP_LMDLIST "LMDLIST " -#define ISP_LMERASE "LMERASE " -#define ISP_LMFREE "LMFREE " -#define ISP_LMGET "LMGET " -#define ISP_LMINIT "LMINIT " -#define ISP_LMMADD "LMMADD " -#define ISP_LMMDEL "LMDDEL " -#define ISP_LMMDISP "LMMDISP " -#define ISP_LMMFIND "LMMFIND " -#define ISP_LMMLIST "LMMLIST " -#define ISP_LMMOVE "LMMOVE " -#define ISP_LMMREN "LMMREN " -#define ISP_LMMREP "LMMREP " -#define ISP_LMMSTATS "LMMSTATS" -#define ISP_LMOPEN "LMOPEN " -#define ISP_LMPRINT "LMPRINT " -#define ISP_LMPUT "LMPUT " -#define ISP_LMQUERY "LMQUERY " -#define ISP_LMRENAME "LMRENAME" -#define ISP_MEMLIST "MEMLIST " - -/* PDF Component Services */ -#define ISP_BRIF "BRIF " -#define ISP_BROWSE "BROWSE " -#define ISP_EDIF "EDIF " -#define ISP_EDIREC "EDIREC " -#define ISP_EDIT "EDIT " -#define ISP_EDREC "EDREC " -#define ISP_VIEW "VIEW " -#define ISP_VIIF "VIIF " - -/* Table Services */ -#define ISP_TBCLOSE "TBCLOSE " -#define ISP_TBCREATE "TBCREATE" -#define ISP_TBEND "TBEND " -#define ISP_TBERASE "TBERASE " -#define ISP_TBOPEN "TBOPEN " -#define ISP_TBQUERY "TBQUERY " -#define ISP_TBSAVE "TBSAVE " -#define ISP_TBSORT "TBSORT " -#define ISP_TBSTATS "TBSTATS " -#define ISP_TBADD "TBADD " -#define ISP_TBBOTTOM "TBBOTTOM" -#define ISP_TBDELETE "TBDELETE" -#define ISP_TBEXIST "TBEXIST " -#define ISP_TBGET "TBGET " -#define ISP_TBMOD "TBMOD " -#define ISP_TBPUT "TBPUT " -#define ISP_TBSARG "TBSARG " -#define ISP_TBSCAN "TBSCAN " -#define ISP_TBSKIP "TBSKIP " -#define ISP_TBTOP "TBTOP " -#define ISP_TBVCLEAR "TBVCLEAR" - -/* Variable Services */ -#define ISP_VERASE "VERASE " -#define ISP_VGET "VGET " -#define ISP_VPUT "VPUT " -#define ISP_VCOPY "VCOPY " /* ISPLINK only */ -#define ISP_VDEFINE "VDEFINE " /* ISPLINK only */ -#define ISP_VDELETE "VDELETE " /* ISPLINK only */ -#define ISP_VMASK "VMASK " /* ISPLINK only */ -#define ISP_VREPLACE "VREPLACE" /* ISPLINK only */ -#define ISP_VRESET "VRESET " /* ISPLINK only */ - -/* Miscellaneous Services */ -#define ISP_CONTROL "CONTROL " -#define ISP_FILESTAT "FILESTAT" -#define ISP_FILEXFER "FILEXFER" -#define ISP_GETMSG "GETMSG " -#define ISP_GRERROR "GRERROR " /* ISPLINK only */ -#define ISP_GRINIT "GRINIT " /* ISPLINK only */ -#define ISP_GRTERM "GRTERM " /* ISPLINK only */ -#define ISP_LIBDEF "LIBDEF " -#define ISP_LIST "LIST " -#define ISP_LOG "LOG " -#define ISP_PQUERY "PQUERY " -#define ISP_QBASELIB "QBASELIB" -#define ISP_QLIBDEF "QLIBDEF " -#define ISP_QTABOPEN "QTABOPEN" -#define ISP_QUERYENQ "QUERYENQ" -#define ISP_TRANS "TRANS " -#define ISP_WSCON "WSCON " -#define ISP_WSDISCON "WSDISCON" - -#endif diff --git a/src/crent370/include/clibjes2.h b/src/crent370/include/clibjes2.h deleted file mode 100644 index a257a88..0000000 --- a/src/crent370/include/clibjes2.h +++ /dev/null @@ -1,160 +0,0 @@ -#ifndef CLIBJES2_H -#define CLIBJES2_H - -#include -#include -#include "clibcp.h" /* JES Checkpoint prototypes */ -#include "clibjs.h" /* JES Spool prototypes */ -#include /* needed for jesxwrtr() */ - -typedef struct jes JES; /* JES handle */ -typedef struct jesjob JESJOB; /* JES Job info */ -typedef struct jesdd JESDD; /* JES Job DD info */ -typedef enum jesfilt JESFILT; /* JES filter type */ - -struct jes { - unsigned char eye[8]; /* 00 eye catcher for dumps */ -#define JES_EYE "**JES**" /* ... eye catcher */ - HASPCP *cp; /* 08 JES Checkpoint handle */ - HASPJS **js; /* 0C array of JES Spool handles */ -}; - -struct jesjob { - unsigned char eye[8]; /* 00 eye catcher for dumps */ -#define JESJOB_EYE "*JESJOB" /* ... eye catcher */ - unsigned char jobname[9]; /* 08 job name */ - unsigned char jobid[9]; /* 11 job identifier */ - unsigned char owner[9]; /* 1A owner name */ - unsigned char eclass; /* 23 execution class */ - unsigned char priority; /* 24 priority */ - unsigned char q_type; /* 25 see haspjqe.h => JQETYPE */ - unsigned char q_flag1; /* 26 see haspjqe.h => JQEFLAGS */ - unsigned char q_flag2; /* 27 see haspjqe.h => JQEFLAG2 */ - unsigned int iotmttr; /* 28 MTTR of IOT */ - unsigned int spinmttr; /* 2C MTTR of SPIN IOT */ - JESDD **jesdd; /* 30 array of output dd's */ - unsigned unused; /* 34 unused */ - time64_t start_time64; /* 38 start time */ - time64_t end_time64; /* 40 end time */ - unsigned int jobkey; /* 48 job key from JCT */ -}; /* 4C (76 bytes) */ - -struct jesdd { - unsigned char eye[8]; /* 00 eye catcher for dumps */ -#define JESDD_EYE "*JESDD*" /* ... eye catcher */ - unsigned char ddname[9]; /* 08 dd name */ - unsigned char stepname[9]; /* 11 step name */ - unsigned char procstep[9]; /* 1A proc step name */ - unsigned char dsname[45]; /* 23 dataset name */ - unsigned char oclass; /* 50 output class */ - unsigned char recfm; /* 51 record format (same as DCB RECFM) */ -#define RECFM_LA 0xE0 /* ... RECORD LENGTH INDICATOR - ASCII */ -#define RECFM_D 0x20 /* ... ASCII VARIABLE RECORD LENGTH */ -#define RECFM_L 0xC0 /* ... RECORD LENGTH INDICATOR */ -#define RECFM_F 0x80 /* ... FIXED RECORD LENGTH */ -#define RECFM_V 0x40 /* ... VARIABLE RECORD LENGTH */ -#define RECFM_U 0xC0 /* ... UNDEFINED RECORD LENGTH */ -#define RECFM_TO 0x20 /* ... TRACK OVERFLOW */ -#define RECFM_BR 0x10 /* ... BLOCKED RECORDS */ -#define RECFM_SB 0x08 /* ... FOR FIXED LENGTH RECORD FORMAT - - STANDARD BLOCKS. - FOR VARIABLE LENGTH RECORD FORMAT - - SPANNED RECORDS */ -#define RECFM_CC 0x06 /* ... CONTROL CHARACTER INDICATOR */ -#define RECFM_CA 0x04 /* ... ASA CONTROL CHARACTER */ -#define RECFM_CM 0x02 /* ... MACHINE CONTROL CHARACTER */ -#define RECFM_C 0x00 /* ... NO CONTROL CHARACTER */ -#define RECFM_KL 0x01 /* ... KEY LENGTH (KEYLEN) WAS SPECIFIED*/ - - unsigned char flag; /* 52 flags */ -#define FLAG_JES2 0x80 /* ... this dd is JES2 generated */ -#define FLAG_SYSOUT 0x40 /* ... this dd is for SYSOUT */ -#define FLAG_SYSIN 0x20 /* ... this dd is for SYSIN */ - - unsigned char __1; /* 53 not used */ - unsigned int mttr; /* 54 MTTR of first output record */ - unsigned int records; /* 58 record count */ - unsigned short lrecl; /* 5C logical record length */ - unsigned short dsid; /* 5E dataset id */ -#define DSID_INJCL 1 /* ... INPUT JCL STATEMENTS */ -#define DSID_OUHJL 2 /* ... HASP JOB LOG JESMSGLG */ -#define DSID_OUJCI 3 /* ... JCL IMAGES JESJCL */ -#define DSID_OUMSG 4 /* ... SYSTEM MESSAGES JESYSMSG */ -#define DSID_INTXT 5 /* ... INTERNAL TEXT */ -#define DSID_INJNL 6 /* ... JOB JOURNAL */ - /* ... otherwise SYSOUT dataset */ -}; /* 60 (96 bytes) */ - -enum jesfilt { - FILTER_NONE=0, /* No filter */ - FILTER_JOBNAME, /* Filter by job name */ - FILTER_JOBID /* Filter by job id */ -}; - -/* Open JES datasets */ -JES *jesopen(void); - -/* Close JES datasets */ -int jesclose(JES **jes); - -/* jesjob() - return array of job info, filter by filter type, dd=1 to include dd info */ -JESJOB **jesjob(JES *jes, const char *filter, JESFILT type, int dd); - -/* jesjobfr() - free JESJOB array */ -int jesjobfr(JESJOB ***pppjesjob); - -/* jesjobf1() - free 1 JESJOB */ -int jesjobf1(JESJOB **ppjesjob); - -/* jesprint() - print a job SYSOUT by DSID via callback function pointer */ -int jesprint(JES *jes, JESJOB *job, unsigned dsid, int(*prt)(const char *line, unsigned linelen)); - -/* jesdelj() - delete job output by job name and/or job id */ -int jesdelj(const char *jobname, const char *jobid); -#define DELJ_OK 0 /* EVERYTHING IS OK */ -#define DELJ_EODS 4 /* NO MORE DATA SETS TO SELECT */ -#define DELJ_NJOB 8 /* JOB NOT FOUND */ -#define DELJ_INVA 12 /* INVALID SEARCH ARGUMENTS */ -#define DELJ_UNAV 16 /* UNABLE TO PROCESS NOW */ -#define DELJ_DUPJ 20 /* DUPLICATE JOBNAMES */ -#define DELJ_INVJ 24 /* INVALID JOBNAME/JOBID COMBINATION */ -#define DELJ_IDST 28 /* INVALID DESTINATION SPECIFIED */ - - -/* jescanj() - cancel job by job name and job id */ -int jescanj(const char *jobname, const char *jobid, int purge_output); -#define CANJ_OK 0 /* CANCEL/STATUS COMPLETED */ -#define CANJ_NOJB 4 /* JOB NAME NOT FOUND */ -#define CANJ_BADI 8 /* INVALID JOBNAME/JOB ID COMBINATION */ -#define CANJ_NCAN 12 /* JOB NOT CANCELLED - DUPLICATE */ -/* JOBNAMES AND NO JOB ID GIVEN */ -#define CANJ_SMALL 16 /* STATUS ARRAY TOO SMALL */ -#define CANJ_OUTP 20 /* JOB NOT CANCELLED-JOB ON OUTPUT QUEUE*/ -#define CANJ_SYNTX 24 /* JOBID WITH INVALID SYNTAX FOR */ -/* SUBSYSTEM */ -#define CANJ_ICAN 28 /* INVALID CANCEL REQUEST - CANNOT */ -/* CANCEL AN ACTIVE TSO USER OR STARTED */ -/* TASK / TSO USER MAY NOT CANCEL THE */ -/* ABOVE JOBS UNLESS THEY ARE ON AN */ -/* OUTPUT QUEUE. */ - -/* jesreque() - release and queue output by job name and/or job id */ -/* if oclass is NULL or "" then output class "C" is used */ -int jesreque(const char *jobname, const char *jobid, const char *oclass); -#define REQUE_OK 0 /* EVERYTHING IS OK */ -#define REQUE_EODS 4 /* NO MORE DATA SETS TO SELECT */ -#define REQUE_NJOB 8 /* JOB NOT FOUND */ -#define REQUE_INVA 12 /* INVALID SEARCH ARGUMENTS */ -#define REQUE_UNAV 16 /* UNABLE TO PROCESS NOW */ -#define REQUE_DUPJ 20 /* DUPLICATE JOBNAMES */ -#define REQUE_INVJ 24 /* INVALID JOBNAME/JOBID COMBINATION */ -#define REQUE_IDST 28 /* INVALID DESTINATION SPECIFIED */ - -/* jesxwrtr() - request jes select output by writer name */ -int jesxwrtr(SSSO *ssso, const char *class_list, const char *dest, const char *form); - -/* jesxdone() - tell jes we're done with sysout processing */ -int jesxdone(SSSO *ssso); - -#endif - diff --git a/src/crent370/include/clibjpa.h b/src/crent370/include/clibjpa.h deleted file mode 100644 index a62b40d..0000000 --- a/src/crent370/include/clibjpa.h +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef CLIBJPA_H -#define CLIBJPA_H -/* -** Maps load module @@JPA (Job Pack Area Anchor) KEY=8 SP=251. -** -** The @@JPA module provides an address space level anchor for -** CLIB areas (CLIBGRT, CLIBCRT). -*/ -typedef struct clibjpa CLIBJPA; /* Job Pack Area Anchor */ - -#include "cde.h" - -struct clibjpa { - char jpaeye[8]; /* 00 Eye catcher for dumps "@@CLIB " */ - CLIBCRT **jpacrt; /* 08 Runtime Library Anchor Array */ - void *unused[5]; /* 0C unused */ -}; /* 20 (32 bytes) */ - -extern CLIBJPA *__jpaget(void); - -#ifdef __JPAGET__ -extern CLIBJPA * __JPAGET(void); -#else -static __inline CLIBJPA * -__JPAGET(void) -{ - unsigned *psa = 0; /* low core == PSA */ - unsigned *tcb = (unsigned*)psa[0x21c/4]; /* TCB == PSATOLD */ - unsigned *jstcb = (unsigned*)tcb[0x7c/4]; /* JSTCB == TCBJSTCB */ - CDE *cde = (CDE*)jstcb[0x2c/4]; /* CDE == TCBJPQ */ - CLIBJPA *jpa = (CLIBJPA*)0; /* A(@@JPA) or NULL */ - - while(cde) { - if (memcmp(cde->CDNAME, "@@CLIB ", 8)==0) { - jpa = (CLIBJPA*)cde->CDENTPT; - break; - } - cde = cde->CDCHAIN; - } - - return jpa; -} -#endif - -#endif /* CLIBJPA_H */ diff --git a/src/crent370/include/clibjs.h b/src/crent370/include/clibjs.h deleted file mode 100644 index f8aabcb..0000000 --- a/src/crent370/include/clibjs.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef CLIBJS_H -#define CLIBJS_H - -#include "osdcb.h" - -typedef struct haspjs HASPJS; /* JES Spool Dataset */ - -struct haspjs { - char eye[8]; /* 00 eye catcher for dumps */ -#define HASPJS_EYE "HASPJS" /* ... */ - char ddname[8]; /* 08 DD name */ - DCB *dcb; /* 10 DCB address */ - unsigned int trkcyl; /* 14 Number of tracks per cylinder */ -}; - -extern HASPJS * __jsopen(const char *dataset); -extern HASPJS * spool_open(const char *dataset); /* pseudo name for codeblocks */ -#define spool_open(dataset) __jsopen((dataset)) - -extern int __jsclos(HASPJS *js); -extern int spool_close(HASPJS *js); /* pseudo name for codeblocks */ -#define spool_close(cp) __jsclos((cp)) - -extern int __jsrd4(HASPJS *js, unsigned mttr, void *buf4k, unsigned buflen); -extern int spool_read(HASPJS *js, unsigned mttr, void *buf4k, unsigned buflen); -#define spool_read(js,mttr,buf4k,buflen) __jsrd4((js),(mttr),(buf4k),(buflen)) - -#endif - - diff --git a/src/crent370/include/cliblink.h b/src/crent370/include/cliblink.h deleted file mode 100644 index dc4e8c2..0000000 --- a/src/crent370/include/cliblink.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef CLIBLINK_H -#define CLIBLINK_H - -/* link to external program, dcb, r1 and prc can be NULL - returns -1 on non-ABEND link failure, otherwise pgm return code. - if prc is not NULL then return code is stored at prc. - note: not estae protected. -*/ -int __link(const char *pgm, void *dcb, void *r1, int *prc); - -/* link to external program, dcb, rc and prc can be NULL - returns 0==success otherwise ABEND code. - if prc is not NULL then pgm or __link() return code is stored at prc. - note: uses try() to handle ABEND, no dump on failures. -*/ -int __linkt(const char *pgm, void *dcb, void *r1, int *prc); - -/* link to external program, dcb, rc and prc can be NULL - returns 0==success otherwise ABEND code. - if prc is not NULL then pgm or __link() return code is stored at prc. - note: uses try() to handle ABEND, traceback stack, no dump on failures. -*/ -int __linkds(const char *pgm, void *dcb, void *r1, int *prc); - -#endif // CLIBLINK_H diff --git a/src/crent370/include/cliblist.h b/src/crent370/include/cliblist.h deleted file mode 100644 index 8f53c35..0000000 --- a/src/crent370/include/cliblist.h +++ /dev/null @@ -1,300 +0,0 @@ -#ifndef CLIBLIST_H -#define CLIBLIST_H - -typedef struct dslist DSLIST; /* a dataset list record */ -typedef struct pdslist PDSLIST; /* a PDS member list */ -typedef struct ispfdata ISPFDATA; /* ISPF statistics data (udata) */ -typedef struct loaddata LOADDATA; /* Load module data (udata) */ -typedef struct loads01 LOADS01; /* Scatter load table */ -typedef struct loads02 LOADS02; /* Alias names */ -typedef struct loads03 LOADS03; /* SSI info (half word aligned) */ -typedef struct loads04 LOADS04; /* APF info */ -typedef struct ispfstat ISPFSTAT; /* formatted ISPF statistics */ -typedef struct loadstat LOADSTAT; /* formatted Load module statistics */ -typedef struct vollist VOLLIST; /* DASD volume list */ - -/* DASD volume list */ -struct vollist { - char volser[7]; /* 00 DASD volume serial */ - unsigned char status; /* 07 volume status */ -#define VOLLIST_STATUS_ONLI 0x80/* ... UCBSTAT = ONLINE */ -#define VOLLIST_STATUS_RESV 0x40/* ... UCBSTAT = RESERVED */ -#define VOLLIST_STATUS_PRES 0x20/* ... UCBSTAT = PERM RESIDENT */ -#define VOLLIST_STATUS_X10 0x10/* ... unused */ -#define VOLLIST_STATUS_PRV 0x08/* ... UCBSTAB = PRIVATE */ -#define VOLLIST_STATUS_PUB 0x04/* ... UCBSTAB = PUBLIC */ -#define VOLLIST_STATUS_STG 0x02/* ... UCBSTAB = STORAGE */ -#define VOLLIST_STATUS_X01 0x01/* ... unused */ - void *ucbdasd; /* 08 UCB address (UCBDASD iecvucb.h) */ - unsigned short cuu; /* 0C channel unit (0x0cuu) */ - unsigned short dasdtype; /* 0E DASD type (0x3350,0x3380,0x3390) */ - /* The following values are returned for LSPACE when requested */ - unsigned freecyls; /* 10 free cylinders */ - unsigned freetrks; /* 14 free tracks */ - unsigned freeexts; /* 18 free extents */ - unsigned maxfreecyls;/* 1C largest free cylinders */ - unsigned maxfreetrks;/* 20 largest free tracks */ - /* The following values are returned when vatlst is requested */ - char *comment; /* 24 Comment from VATLSTxx */ -}; /* 28 (40 bytes) */ - -/* __listvl() - return list of volumes matching filter or ALL if -** filter is NULL. -** if dolspace is not zero then request volume free space information. -** if vatlst is specified the comments from the vatlst is returned. -** Note: if vatlst is a member name then SYS1.PARMLIB(vatlst) will -** be opened otherwise vatlst should be a dataset(member) name for -** the vatlst dataset or NULL. -*/ -extern VOLLIST **__listvl( const char *filter, - int dolspace, - const char *vatlst) - asm("@@LISTVL"); - -extern void __freevl( VOLLIST ***vollst) - asm("@@FREEVL"); - -/* dataset list record */ -struct dslist { - char dsn[45]; /* dataset name */ - char volser[7]; /* first volume for dataset */ - char dsorg[5]; /* dataset org: "PS|PO|VS|..." */ - char recfm[5]; /* dataset format: "F|FB|FBA|FBM|..." */ - unsigned short extents; /* number of extents on volume */ - unsigned short lrecl; /* logical record length */ - unsigned short blksize; /* physical block size */ - - unsigned short cryear; /* created year: 1980, 2079 */ - unsigned short crjday; /* created julian day: 1, 366 */ - unsigned char crmon; /* created month: 1, 12 */ - unsigned char crday; /* created day of month: 1, 31 */ - - unsigned short rfyear; /* last reference year */ - unsigned short rfjday; /* last reference julian day */ - unsigned char rfmon; /* last reference month */ - unsigned char rfday; /* last reference day of month */ -}; - -/* PDS member record */ -struct pdslist { - char name[8]; /* member name */ - unsigned char ttr[3]; /* relative address */ - unsigned char idc; /* alias/ttrs/udata size */ -#define PDSLIST_IDC_ALIAS 0x80/* ... member name is an alias */ -#define PDSLIST_IDC_TTRS 0x60/* ... number of TTR's in user data */ -#define PDSLIST_IDC_UDATA 0x1F/* ... udata size in half words */ - unsigned char udata[0]; /* start of user data */ -}; - -/* ISPF user data */ -struct ispfdata { - unsigned char ver; /* version number X'01' to X'99' */ - unsigned char mod; /* modification number X'00' to X'99' */ - unsigned char flags; /* flags */ -#define ISPFDATA_FLAG_SCLM 0x80/* ... last edited by SCLM */ - - unsigned char seconds; /* last modified seconds packed */ - unsigned char crecent; /* created century. 0=1900, 1=2000 */ - unsigned char creydd[3]; /* created julian date packed */ - unsigned char modcent; /* modified century. 0=1900, 1=2000 */ - unsigned char modydd[3]; /* modified julian date packed */ - unsigned char modhm[2]; /* modified time hour,min packed */ - unsigned short curlines; /* current number of lines */ - unsigned short initlines; /* initial number of lines */ - unsigned short modlines; /* modified lines */ - char userid[8]; /* userid */ - char unused[2]; /* unused/reserved */ -}; - -/* ISPF statistics from PDSLIST record (recfm=F|V) */ -struct ispfstat { - char name[9]; /* "member\0" */ - char ttr[7]; /* "ttttrr\0" */ - char ver[6]; /* "vv.mm\0" */ - char created[9]; /* "yy-mm-dd\0" */ - char changed[18];/* "yy-mm-dd hh:mm:ss\0" */ - char init[6]; /* "nnnnn\0" */ - char size[6]; /* "nnnnn\0" */ - char mod[6]; /* "nnnnn\0" */ - char userid[9]; /* "username\0" */ -}; - -/* ISPF statistics from PDSLIST record (recfm=U) */ -struct loadstat { - char name[9]; /* "member\0" */ - char ttr[7]; /* "ttttrr\0" */ - char size[7]; /* "xxxxxx\0" */ - char aliasof[9]; /* "member\0" */ - char ac[3]; /* "xx\0" */ - char ep[7]; /* "xxxxxx\0" */ - char attr[24]; /* "NE OL PG RF RN RU OV TS\0" */ - char ssi[9]; /* "xxxxxxxx\0" */ -}; - -struct loaddata { - unsigned char loadttrt[3];/* TTR OF FIRST BLOCK OF TEXT */ - unsigned char loadzero; /* ZERO */ - unsigned char loadttrn[3];/* TTR OF NOTE LIST OR SCATTER/TRANSLATION - TABLE. USED FOR MODULES IN SCATTER LOAD - FORMAT OR OVERLAY STRUCTURE ONLY. */ - unsigned char loadnl; /* NUMBER OF ENTRIES IN NOTE LIST FOR - MODULES IN OVERLAY STRUCTURE, - OTHERWISE ZERO */ - unsigned char loadatr1; /* FIRST BYTE OF MODULE ATTRIBUTE FIELD */ -#define LOADRENT 0x80 /* ... REENTERABLE */ -#define LOADREUS 0x40 /* ... REUSABLE */ -#define LOADOVLY 0x20 /* ... IN OVERLAY STRUCTURE */ -#define LOADTEST 0x10 /* ... MODULE TO BE TESTED - TESTRAN */ -#define LOADLOAD 0x08 /* ... ONLY LOADABLE */ -#define LOADSCTR 0x04 /* ... SCATTER FORMAT */ -#define LOADEXEC 0x02 /* ... EXECUTABLE */ -#define LOAD1BLK 0x01 /* ... IF ZERO, MODULE CONTAINS MULTIPLE - RECORDS WITH AT LEAST ONE BLOCK - OF TEXT. - IF ONE, MODULE CONTAINS NO RLD ITEMS - AND ONLY ONE BLOCK OF TEXT. */ - - unsigned char loadatr2; /* SECOND BYTE OF MODULE ATTRIBUTE FIELD*/ -#define LOADFLVL 0x80 /* ... IF ZERO, MODULE CAN BE PROCESSED - BY ALL LEVELS OF LINKAGE EDITOR. - IF ONE, MODULE CAN BE PROCESSED ONLY - BY F LEVEL OF LINKAGE EDITOR. */ -#define LOADORG0 0x40 /* ... LINKAGE EDITOR ASSIGNED ORIGIN OF - FIRST BLOCK OF TEXT IS ZERO. */ -#define LOADEP0 0x20 /* ... ENTRY POINT ASSIGNED BY LINKAGE - EDITOR IS ZERO */ -#define LOADNRLD 0x10 /* ... MODULE CONTAINS NO RLD ITEMS */ -#define LOADNREP 0x08 /* ... MODULE CANNOT BE REPROCESSED BY - LINKAGE EDITOR */ -#define LOADTSTN 0x04 /* ... MODULE CONTAINS TESTRAN SYMBOL CARDS */ -#define LOADLEF 0x02 /* ... MODULE CREATED BY LINKAGE EDITOR F */ -#define LOADREFR 0x01 /* ... REFRESHABLE MODULE */ - - unsigned char loadstor[3];/* TOTAL CONTIGUOUS MAIN STORAGE - REQUIREMENT OF MODULE */ - unsigned char loadftbl[2];/* LENGTH OF FIRST BLOCK OF TEXT */ - unsigned char loadepa[3]; /* ENTRY POINT ADDRESS ASSOCIATED WITH - MEMBER NAME OR WITH ALIAS NAME IF - ALIAS INDICATOR IS ONE */ - - unsigned char loadftb1; /* BYTE 1 OF PDS2FTBO */ -#define LOADOSLE 0x80 /* ... MODULE HAS BEEN PROCESSED BY AOS - LINKAGE EDITOR */ -/* BIT1 IS RESERVED TO INDICATE ANOTHER EXPANSION WHEN IT - BECOMES NECESSARY */ -#define LOADPAGA 0x20 /* ... PAGE ALIGNMENT REQUIRED FOR LOAD - MODULE */ -#define LOADSSI 0x10 /* ... SSI INFORMATION PRESENT */ -#define LOADAPFLG 0x08 /* ... INFORMATION IN LOADAPF IS VALID */ - - unsigned char loadftb2; /* BYTE 2 OF PDS2FTBO */ - unsigned char loadftb3; /* BYTE 3 OF PDS2FTBO */ - unsigned char loadbcend[0]; /* END OF BASIC SECTION */ -}; - -/* THE FOLLOWING SECTION IS FOR LOAD MODULES WITH SCATTER LOAD */ -struct loads01 { /* START OF SCATTER LOAD SECTION */ - unsigned short loadslsz; /* NUMBER OF BYTES IN SCATTER LIST */ - unsigned short loadttsz; /* NUMBER OF BYTES IN TRANSLATION TABLE */ - unsigned short loadesdt; /* IDENTIFICATION OF ESD ITEM (ESDID) OF - CONTROL SECTION TO WHICH FIRST BLOCK - OF TEXT BELONGS */ - unsigned short loadesdc; /* IDENTIFICATION OF ESD ITEM (ESDID) OF - CONTROL SECTION CONTAINING ENTRY POINT */ - unsigned char load01nd[0];/* END OF SCATTER LOAD SECTION */ -}; - -/* THE FOLLOWING SECTION IS FOR LOAD MODULES WITH ALIAS NAMES */ -struct loads02 { /* START OF ALIAS SECTION */ - unsigned char loadepm[3]; /* ENTRY POINT FOR MEMBER NAME */ - unsigned char loadmnm[8]; /* MEMBER NAME OF LOAD MODULE. WHEN THE - FIRST FIELD (PDS2NAME) IS AN ALIAS NAME, - THIS FIELD CONTAINS THE ORIGINAL NAME OF - THE MEMBER EVEN AFTER THE MEMBER HAS - BEEN RENAMED. (MDC302) */ - unsigned char load02nd[0];/* END OF ALIAS SECTION */ -}; - -/* THE FOLLOWING SECTION IS FOR SSI INFORMATION AND IS ON -** A HALF-WORD BOUNDARY -*/ -struct loads03 { /* FORCE HALF-WORD ALIGNMENT FOR SSI SECTION */ - unsigned char loadchlvl; /* CHANGE LEVEL OF MEMBER */ - unsigned char loadssifb; /* SSI FLAG BYTE */ -#define LOADFORCE 0x40 /* ... A FORCE CONTROL CARD WAS USED WHEN - EXECUTING THE IHGUAP PROGRAM */ -#define LOADUSRCH 0x20 /* ... A CHANGE WAS MADE TO MEMBER BY THE - INSTALLATION, AS OPPOSED TO AN - IBM-DISTRIBUTED CHANGE */ -#define LOADEMFIX 0x10 /* ... SET WHEN AN EMERGENCY IBM-AUTHORIZED - PROGRAM 'FIX' IS MADE, AS OPPOSED TO - CHANGES THAT ARE INCLUDED IN AN - IBM-DISTRIBUTED MAINTENANCE PACKAGE */ -#define LOADDEPCH 0x08 /* ... A CHANGE MADE TO THE MEMBER IS - DEPENDENT UPON A CHANGE MADE TO - SOME OTHER MEMBER IN THE SYSTEM */ -#define LOADSYSGN 0x06 /* ... BIT5+BIT6 - FLAGS THAT INDICATE - WHETHER OR NOT A CHANGE TO THE - MEMBER WILL NECESSITATE A PARTIAL - OR COMPLETE REGENERATION OF THE - SYSTEM */ -#define LOADNOSGN 0x00 /* ... NOT CRITICAL FOR SYSTEM GENERATION */ -#define LOADCMSGN 0x02 /* ... MAY REQUIRE COMPLETE REGENERATION */ -#define LOADPTSGN 0x04 /* ... MAY REQUIRE PARTIAL REGENERATION */ -#define LOADIBMMB 0x01 /* ... MEMBER IS SUPPLIED BY IBM */ - - unsigned char loadmbrsn[2];/* MEMBER SERIAL NUMBER */ - unsigned char load03nd[0];/* END OF SSI SECTION */ -}; - -/* THE FOLLOWING SECTION IS FOR APF INFORMATION */ -struct loads04 { /* START OF APF SECTION */ - unsigned char loadapfct; /* LENGTH OF PROGRAM AUTHORIZATION CODE - (PDSAPFAC) IN BYTES */ - unsigned char loadapfac; /* PROGRAM AUTHORIZATION CODE */ - unsigned char load04nd[0];/* END OF APF SECTION */ -}; - - -/* __listc() - envokes IDCAMS LISTC LEVEL('level') to a temp file -** and then reads records from the temp file passing -** each record to the (*prt) function. -** -** option may be NULL or a string of the option keywords -** allowed by the IDCAMS LISTC command. -** -** returns the IDCAMS return code. -*/ -extern int __listc(const char *level, const char *option, - int (*prt)(void *udata, const char *fmt, ...), - void *udata); - -/* __listds() - returns array of DSLIST records for level -** with optional dataset name filter. -** uses the __listc() function to obtain dataset and -** volume names and then calls __dscbdv() to obtain -** the DSCB info for each dataset and volume returned. -*/ -extern DSLIST **__listds(const char *level, /* "HLQ.TEST" */ - const char *option, /* "NONVSAM VOLUME" */ - const char *filter); /* "HLQ.TEST.*DATA" */ - -/* __freeds() - free DSLIST array created by __listds() */ -extern void __freeds(DSLIST ***dslist); - -/* __listpd() - returns array of PDSLIST records for a PDS dataset. -** optional filter pattern string can be supplied -** to filter by PDS member name. -*/ -extern PDSLIST **__listpd(const char *dataset, const char *filter); - -/* __freepd() - free PDSLIST array created by __listpd() */ -extern void __freepd(PDSLIST ***pdslist); - -/* __fmtisp() - format PDSLIST values into ISPFSTAT record */ -extern int __fmtisp(PDSLIST *pdslist, ISPFSTAT *ispfstat); - -/* __fmtloa() - format PDSLIST values into LOADSTAT record */ -extern int __fmtloa(PDSLIST *pdslist, LOADSTAT *loadstat); - -#endif diff --git a/src/crent370/include/cliblock.h b/src/crent370/include/cliblock.h deleted file mode 100644 index 60d4636..0000000 --- a/src/crent370/include/cliblock.h +++ /dev/null @@ -1,116 +0,0 @@ -#ifndef CLIBLOCK_H -#define CLIBLOCK_H - -#define LOCKQNAME "CLIBLOCK" -#define LOCKRNAME "LOCK.%08X" -#define LOCKRNAMESZ 20 - -#define SYSLOCKQNAME "CSYSLOCK" -#define SYSLOCKRNAME "G.LOCK.%08X" -#define SYSLOCKRNAMESZ 20 - -#define LOCK_EXC 0 /* exclusive lock (read/write) */ -#define LOCK_RW LOCK_EXC /* exclusive lock (read/write) */ -#define LOCK_SHR 1 /* shared lock (read only) */ -#define LOCK_READ LOCK_SHR /* shared lock (read only) */ - -/* ---- resource address lock functions ---- */ - -/* __lk() - lock "thing" address, read: 0=exclusive, 1=shared */ -/* return 0 if lock acquired, 8 if you already have the lock. */ -int __lk(void *thing, int read); -int lock(void *thing, int read) asm("@@LK"); - -/* __lktry() - lock "thing" address if available, immediate return. */ -/* return 0 if lock acquired, 4 if the lock is not immediately available, 8 if you already have the lock. */ -int __lktry(void *thing, int read); -int trylock(void *thing, int read) asm("@@LKTRY"); - -/* __lktest() - test if "thing" address is locked */ -/* return 0 if not locked, 4 if the lock is not immediately available, 8 if you already have the lock. */ -int __lktest(void *thing, int read); -int testlock(void *thing, int read) asm("@@LKTEST"); - -/* __lkunlk() - release lock previously acquired */ -/* return 0 if successful, otherwise you didn't have the lock */ -int __lkunlk(void *thing, int read); -int unlock(void *thing, int read) asm("@@LKUNLK"); - -/* ---- resource address lock functions (SCOPE=SYSTEM) ---- */ - -/* syslock() - lock "thing" address (SCOPE=SYSTEM), read: 0=exclusive, 1=shared */ -/* return 0 if lock acquired, 8 if you already have the lock. */ -int syslock(void *thing, int read) asm("@@SL"); - -/* systrylock() - lock "thing" address if available (SCOPE=SYSTEM), immediate return. */ -/* return 0 if lock acquired, 4 if the lock is not immediately available, 8 if you already have the lock. */ -int systrylock(void *thing, int read) asm("@@SLTRY"); - -/* systestlock() - test if "thing" address is locked (SCOPE=SYSTEM) */ -/* return 0 if not locked, 4 if the lock is not immediately available, 8 if you already have the lock. */ -int systestlock(void *thing, int read) asm("@@SLTEST"); - -/* sysunlock() - release lock previously acquired (SCOPE=SYSTEM) */ -/* return 0 if successful, otherwise you didn't have the lock */ -int sysunlock(void *thing, int read) asm("@@SLUNLK"); - -/* ---- resource name lock functions ---- */ - -/* __lfrn() - lock resource name, read: 0=exclusive, 1=shared */ -/* return 0 if lock acquired, 8 if you already have the lock. */ -int __lkrn(const char *rname, int read); -int lock_res(const char *rname, int read) asm("@@LKRN"); - -/* __lkrnte() - test if resource is locked */ -/* return 0 if not locked, 4 if locked, 8 if you already have the lock. */ -int __lkrnte(const char *rname, int read); -int testlock_res(const char *rname, int read) asm("@@LKRNTE"); - -/* __lkuntr() - lock resource if available, immediate return. */ -/* return 0 if not locked, 4 if locked, 8 if you already have the lock. */ -int __lkuntr(const char *rname, int read); -int trylock_res(const char *rname, int read) asm("@@LKUNTR"); - -/* __lkrnun() - unlock resource name */ -/* return 0 if successful, otherwise you didn't have the lock */ -int __lkrnun(const char *rname, int read); -int unlock_res(const char *rname, int read) asm("@@LKRNUN"); - -/* ---- printf style resource name lock functions ---- */ - -/* __lkrnf() - lock printf style resource name */ -/* return 0 if lock acquired, 8 if you already have the lock. */ -int __lkrnf(const char *fmt, int read, ...); -int lock_resf(const char *fmt, int read, ...) asm("@@LKRNF"); - -/* __lkrtef() - test lock printf style resource name */ -/* return 0 if lock acquired, 8 if you already have the lock. */ -int __lkrtef(const char *fmt, int read, ...); -int testlock_resf(const char *fmt, int read, ...) asm("@@LKRTEF"); - -/* __lkuntf() - lock printf style resource name if available. */ -/* return 0 if not locked, 4 if locked, 8 if you already have the lock. */ -int __lkuntf(const char *fmt, int read, ...); -int trylock_resf(const char *fmt, int read, ...) asm("@@LKUNTF"); - -/* __lkrnuf() - unlock printf style resource name */ -/* return 0 if successful, otherwise you didn't have the lock */ -int __lkrnuf(const char *fmt, int read, ...); -int unlock_resf(const char *fmt, int read, ...) asm("@@LKRNUF"); - -#if 0 -#define lock(thing,read) (__lk((thing),(read))) -#define trylock(thing,read) (__lktry((thing),(read))) -#define testlock(thing,read) (__lktest((thing),(read))) -#define unlock(thing,read) (__lkunlk((thing),(read))) -#define lock_res(rname,read) (__lkrn((rname),(read))) -#define testlock_res(rname,read) (__lkrnte((rname),(read))) -#define trylock_res(rname,read) (__lkuntr((rname),(read))) -#define unlock_res(rname,read) (__lkrnun((rname),(read))) -#define lock_resf(fmt,read,...) (__lkrnf((fmt),(read), ##__VA_ARGS__)) -#define testlock_resf(fmt,read,...) (__lkrtef((fmt),(read), ##__VA_ARGS__)) -#define trylock_resf(fmt,read,...) (__lkrntf((fmt),(read), ##__VA_ARGS__)) -#define unlock_resf(fmt,read,...) (__lkrnuf((fmt),(read), ##__VA_ARGS__)) -#endif - -#endif diff --git a/src/crent370/include/clibmutx.h b/src/crent370/include/clibmutx.h deleted file mode 100644 index f2c7fe9..0000000 --- a/src/crent370/include/clibmutx.h +++ /dev/null @@ -1,58 +0,0 @@ -#ifndef CLIBMUTX_H -#define CLIBMUTX_H - -#define CLIB_MUTEX_RNAME "MUTEX.%08X" - -typedef struct clibmutx CLIBMUTX; - -/* The mutex implemented here allows for recursive operation. -** -** This basically means that you can lock the same mutex repeatedly -** so long as you issue the same number of unlock request. The mutex -** remains locked so long as the mutex count is greater than one. -** -** Each call to mtxlock() or when mtxtry() is successful, increments -** the mutex lock count. -** -** Each call to mtxunlk() decrements the mutex lock count. -** The call to mtxunlk() that decrements the lock count to zero -** releases the lock on that mutex. -*/ -struct clibmutx { - unsigned owner; /* 00 owner thread id (TCB) */ - unsigned count; /* 04 number of times locked by owner */ -}; /* 08 (8 bytes) */ - -#define CLIBMUTX_INITIALIZER {0,0} - -/* mtxnew() - allocate and initialize a mutex handle */ -extern CLIBMUTX *mtxnew(void); /* allocate a new mutex */ - -/* mtxfree() - deallocate a mutex handle allocated by mtxnew() */ -extern void mtxfree(CLIBMUTX *); /* free mutex storage */ - -/* mtxinit() - initialize a mutex handle */ -extern void mtxinit(CLIBMUTX *); /* initialize mutex structure */ - -/* mtxlock() - obtain lock on mutex handle */ -extern void mtxlock(CLIBMUTX *); /* obtain exclusive lock */ - -/* mtxtry() - obtain lock on mutex handle if avaiable (rc=0), otherwise no */ -extern int mtxtry(CLIBMUTX *); /* obtain exclusive lock if free*/ - -/* mtxunlk() - release lock on mutex handle */ -extern void mtxunlk(CLIBMUTX *); /* release exclusive lock */ - -/* mtxheld() - returns true if the mutex is locked by this thread */ -extern int mtxheld(CLIBMUTX *); /* is mutex held by this thread */ - -/* mtxnheld() - return true if the mutex is unlocked or held by another thread*/ -extern int mtxnheld(CLIBMUTX *); /* not held by this thread */ - -/* mtxavail() - return true if the mutex is not held by any thread */ -extern int mtxavail(CLIBMUTX *); /* not held by any thread */ - -/* mtxclup() - internal use only, cleanup mutex lock */ -extern void mtxclup(CLIBMUTX *); /* cleaup mutex lock (internal) */ - -#endif diff --git a/src/crent370/include/clibmz.h b/src/crent370/include/clibmz.h deleted file mode 100644 index 44fac8a..0000000 --- a/src/crent370/include/clibmz.h +++ /dev/null @@ -1,720 +0,0 @@ -#ifndef CLIBMZ_H -#define CLIBMZ_H - -#include -#include -#include -#include -#include -#include - -#define MINIZ_NO_STDIO - -/* Set TDEFL_LESS_MEMORY to 1 to use less memory (compression will be slightly slower, and raw/dynamic blocks will be output more frequently). */ -#define TDEFL_LESS_MEMORY 0 - -/* ------------------- Types and macros */ -typedef unsigned char mz_uint8; -typedef signed short mz_int16; -typedef unsigned short mz_uint16; -typedef unsigned int mz_uint32; -typedef unsigned int mz_uint; -typedef int mz_int64; /* we don't have 64 bit int in gccmvs.3.2.3 */ -typedef unsigned int mz_uint64; /* we don't have 64 bit int in gccmvs.3.2.3 */ -typedef int mz_bool; - -#define MZ_FALSE (0) -#define MZ_TRUE (1) - -#define MZ_MACRO_END while (0) - -#ifdef MINIZ_NO_STDIO -#define MZ_FILE void * -#else -#include -#define MZ_FILE FILE -#endif /* #ifdef MINIZ_NO_STDIO */ - -#ifdef MINIZ_NO_TIME -typedef struct mz_dummy_time_t_tag -{ - int m_dummy; -} mz_dummy_time_t; -#define MZ_TIME_T mz_dummy_time_t -#else -#define MZ_TIME_T time_t -#endif - -#define MZ_ASSERT(x) assert(x) - -#ifdef MINIZ_NO_MALLOC -#define MZ_MALLOC(x) NULL -#define MZ_FREE(x) (void)x, ((void)0) -#define MZ_REALLOC(p, x) NULL -#else -#define MZ_MALLOC(x) malloc(x) -#define MZ_FREE(x) free(x) -#define MZ_REALLOC(p, x) realloc(p, x) -#endif - -#define MZ_MAX(a, b) (((a) > (b)) ? (a) : (b)) -#define MZ_MIN(a, b) (((a) < (b)) ? (a) : (b)) -#define MZ_CLEAR_OBJ(obj) memset(&(obj), 0, sizeof(obj)) - -#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN -#define MZ_READ_LE16(p) *((const mz_uint16 *)(p)) -#define MZ_READ_LE32(p) *((const mz_uint32 *)(p)) -#else -#define MZ_READ_LE16(p) ((mz_uint32)(((const mz_uint8 *)(p))[0]) | ((mz_uint32)(((const mz_uint8 *)(p))[1]) << 8U)) -#define MZ_READ_LE32(p) ((mz_uint32)(((const mz_uint8 *)(p))[0]) | ((mz_uint32)(((const mz_uint8 *)(p))[1]) << 8U) | ((mz_uint32)(((const mz_uint8 *)(p))[2]) << 16U) | ((mz_uint32)(((const mz_uint8 *)(p))[3]) << 24U)) -#endif - -#define MZ_READ_LE64(p) (((mz_uint64)MZ_READ_LE32(p)) | (((mz_uint64)MZ_READ_LE32((const mz_uint8 *)(p) + sizeof(mz_uint32))) << 32U)) - -#ifdef _MSC_VER -#define MZ_FORCEINLINE __forceinline -#elif defined(__GNUC__) -#define MZ_FORCEINLINE __inline__ __attribute__((__always_inline__)) -#else -#define MZ_FORCEINLINE inline -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -extern void *miniz_def_alloc_func(void *opaque, size_t items, size_t size) asm("@@MZDALF"); -extern void miniz_def_free_func(void *opaque, void *address) asm("@@MZDFRF"); -extern void *miniz_def_realloc_func(void *opaque, void *address, size_t items, size_t size) asm("@@MZDREF"); - -#define MZ_UINT16_MAX (0xFFFFU) -#define MZ_UINT32_MAX (0xFFFFFFFFU) - -/* ------------------- Low-level Compression API Definitions */ - -/* tdefl_init() compression flags logically OR'd together (low 12 bits contain the max. number of probes per dictionary search): */ -/* TDEFL_DEFAULT_MAX_PROBES: The compressor defaults to 128 dictionary probes per dictionary search. 0=Huffman only, 1=Huffman+LZ (fastest/crap compression), 4095=Huffman+LZ (slowest/best compression). */ -enum -{ - TDEFL_HUFFMAN_ONLY = 0, - TDEFL_DEFAULT_MAX_PROBES = 128, - TDEFL_MAX_PROBES_MASK = 0xFFF -}; - -/* TDEFL_WRITE_ZLIB_HEADER: If set, the compressor outputs a zlib header before the deflate data, and the Adler-32 of the source data at the end. Otherwise, you'll get raw deflate data. */ -/* TDEFL_COMPUTE_ADLER32: Always compute the adler-32 of the input data (even when not writing zlib headers). */ -/* TDEFL_GREEDY_PARSING_FLAG: Set to use faster greedy parsing, instead of more efficient lazy parsing. */ -/* TDEFL_NONDETERMINISTIC_PARSING_FLAG: Enable to decrease the compressor's initialization time to the minimum, but the output may vary from run to run given the same input (depending on the contents of memory). */ -/* TDEFL_RLE_MATCHES: Only look for RLE matches (matches with a distance of 1) */ -/* TDEFL_FILTER_MATCHES: Discards matches <= 5 chars if enabled. */ -/* TDEFL_FORCE_ALL_STATIC_BLOCKS: Disable usage of optimized Huffman tables. */ -/* TDEFL_FORCE_ALL_RAW_BLOCKS: Only use raw (uncompressed) deflate blocks. */ -/* The low 12 bits are reserved to control the max # of hash probes per dictionary lookup (see TDEFL_MAX_PROBES_MASK). */ -enum -{ - TDEFL_WRITE_ZLIB_HEADER = 0x01000, - TDEFL_COMPUTE_ADLER32 = 0x02000, - TDEFL_GREEDY_PARSING_FLAG = 0x04000, - TDEFL_NONDETERMINISTIC_PARSING_FLAG = 0x08000, - TDEFL_RLE_MATCHES = 0x10000, - TDEFL_FILTER_MATCHES = 0x20000, - TDEFL_FORCE_ALL_STATIC_BLOCKS = 0x40000, - TDEFL_FORCE_ALL_RAW_BLOCKS = 0x80000 -}; - -/* High level compression functions: */ -/* tdefl_compress_mem_to_heap() compresses a block in memory to a heap block allocated via malloc(). */ -/* On entry: */ -/* pSrc_buf, src_buf_len: Pointer and size of source block to compress. */ -/* flags: The max match finder probes (default is 128) logically OR'd against the above flags. Higher probes are slower but improve compression. */ -/* On return: */ -/* Function returns a pointer to the compressed data, or NULL on failure. */ -/* *pOut_len will be set to the compressed data's size, which could be larger than src_buf_len on uncompressible data. */ -/* The caller must free() the returned block when it's no longer needed. */ -void *tdefl_compress_mem_to_heap(const void *pSrc_buf, size_t src_buf_len, size_t *pOut_len, int flags) asm("@@TDCM2H"); - -/* tdefl_compress_mem_to_mem() compresses a block in memory to another block in memory. */ -/* Returns 0 on failure. */ -size_t tdefl_compress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void *pSrc_buf, size_t src_buf_len, int flags) asm("@@TDCM2M"); - -/* Compresses an image to a compressed PNG file in memory. */ -/* On entry: */ -/* pImage, w, h, and num_chans describe the image to compress. num_chans may be 1, 2, 3, or 4. */ -/* The image pitch in bytes per scanline will be w*num_chans. The leftmost pixel on the top scanline is stored first in memory. */ -/* level may range from [0,10], use MZ_NO_COMPRESSION, MZ_BEST_SPEED, MZ_BEST_COMPRESSION, etc. or a decent default is MZ_DEFAULT_LEVEL */ -/* If flip is true, the image will be flipped on the Y axis (useful for OpenGL apps). */ -/* On return: */ -/* Function returns a pointer to the compressed data, or NULL on failure. */ -/* *pLen_out will be set to the size of the PNG image file. */ -/* The caller must mz_free() the returned heap block (which will typically be larger than *pLen_out) when it's no longer needed. */ -void *tdefl_write_image_to_png_file_in_memory_ex(const void *pImage, int w, int h, int num_chans, size_t *pLen_out, mz_uint level, mz_bool flip) asm("@@TDWI2X"); -void *tdefl_write_image_to_png_file_in_memory(const void *pImage, int w, int h, int num_chans, size_t *pLen_out) asm("@@TDWI2M"); - -/* Output stream interface. The compressor uses this interface to write compressed data. It'll typically be called TDEFL_OUT_BUF_SIZE at a time. */ -typedef mz_bool (*tdefl_put_buf_func_ptr)(const void *pBuf, int len, void *pUser); - -/* tdefl_compress_mem_to_output() compresses a block to an output stream. The above helpers use this function internally. */ -mz_bool tdefl_compress_mem_to_output(const void *pBuf, size_t buf_len, tdefl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags) asm("@@TDCM2O"); - -enum -{ - TDEFL_MAX_HUFF_TABLES = 3, - TDEFL_MAX_HUFF_SYMBOLS_0 = 288, - TDEFL_MAX_HUFF_SYMBOLS_1 = 32, - TDEFL_MAX_HUFF_SYMBOLS_2 = 19, - TDEFL_LZ_DICT_SIZE = 32768, - TDEFL_LZ_DICT_SIZE_MASK = TDEFL_LZ_DICT_SIZE - 1, - TDEFL_MIN_MATCH_LEN = 3, - TDEFL_MAX_MATCH_LEN = 258 -}; - -/* TDEFL_OUT_BUF_SIZE MUST be large enough to hold a single entire compressed output block (using static/fixed Huffman codes). */ -#if TDEFL_LESS_MEMORY -enum -{ - TDEFL_LZ_CODE_BUF_SIZE = 24 * 1024, - TDEFL_OUT_BUF_SIZE = (TDEFL_LZ_CODE_BUF_SIZE * 13) / 10, - TDEFL_MAX_HUFF_SYMBOLS = 288, - TDEFL_LZ_HASH_BITS = 12, - TDEFL_LEVEL1_HASH_SIZE_MASK = 4095, - TDEFL_LZ_HASH_SHIFT = (TDEFL_LZ_HASH_BITS + 2) / 3, - TDEFL_LZ_HASH_SIZE = 1 << TDEFL_LZ_HASH_BITS -}; -#else -enum -{ - TDEFL_LZ_CODE_BUF_SIZE = 64 * 1024, - TDEFL_OUT_BUF_SIZE = (TDEFL_LZ_CODE_BUF_SIZE * 13) / 10, - TDEFL_MAX_HUFF_SYMBOLS = 288, - TDEFL_LZ_HASH_BITS = 15, - TDEFL_LEVEL1_HASH_SIZE_MASK = 4095, - TDEFL_LZ_HASH_SHIFT = (TDEFL_LZ_HASH_BITS + 2) / 3, - TDEFL_LZ_HASH_SIZE = 1 << TDEFL_LZ_HASH_BITS -}; -#endif - -/* The low-level tdefl functions below may be used directly if the above helper functions aren't flexible enough. The low-level functions don't make any heap allocations, unlike the above helper functions. */ -typedef enum { - TDEFL_STATUS_BAD_PARAM = -2, - TDEFL_STATUS_PUT_BUF_FAILED = -1, - TDEFL_STATUS_OKAY = 0, - TDEFL_STATUS_DONE = 1 -} tdefl_status; - -/* Must map to MZ_NO_FLUSH, MZ_SYNC_FLUSH, etc. enums */ -typedef enum { - TDEFL_NO_FLUSH = 0, - TDEFL_SYNC_FLUSH = 2, - TDEFL_FULL_FLUSH = 3, - TDEFL_FINISH = 4 -} tdefl_flush; - -/* tdefl's compression state structure. */ -typedef struct -{ - tdefl_put_buf_func_ptr m_pPut_buf_func; - void *m_pPut_buf_user; - mz_uint m_flags, m_max_probes[2]; - int m_greedy_parsing; - mz_uint m_adler32, m_lookahead_pos, m_lookahead_size, m_dict_size; - mz_uint8 *m_pLZ_code_buf, *m_pLZ_flags, *m_pOutput_buf, *m_pOutput_buf_end; - mz_uint m_num_flags_left, m_total_lz_bytes, m_lz_code_buf_dict_pos, m_bits_in, m_bit_buffer; - mz_uint m_saved_match_dist, m_saved_match_len, m_saved_lit, m_output_flush_ofs, m_output_flush_remaining, m_finished, m_block_index, m_wants_to_finish; - tdefl_status m_prev_return_status; - const void *m_pIn_buf; - void *m_pOut_buf; - size_t *m_pIn_buf_size, *m_pOut_buf_size; - tdefl_flush m_flush; - const mz_uint8 *m_pSrc; - size_t m_src_buf_left, m_out_buf_ofs; - mz_uint8 m_dict[TDEFL_LZ_DICT_SIZE + TDEFL_MAX_MATCH_LEN - 1]; - mz_uint16 m_huff_count[TDEFL_MAX_HUFF_TABLES][TDEFL_MAX_HUFF_SYMBOLS]; - mz_uint16 m_huff_codes[TDEFL_MAX_HUFF_TABLES][TDEFL_MAX_HUFF_SYMBOLS]; - mz_uint8 m_huff_code_sizes[TDEFL_MAX_HUFF_TABLES][TDEFL_MAX_HUFF_SYMBOLS]; - mz_uint8 m_lz_code_buf[TDEFL_LZ_CODE_BUF_SIZE]; - mz_uint16 m_next[TDEFL_LZ_DICT_SIZE]; - mz_uint16 m_hash[TDEFL_LZ_HASH_SIZE]; - mz_uint8 m_output_buf[TDEFL_OUT_BUF_SIZE]; -} tdefl_compressor; - -/* Initializes the compressor. */ -/* There is no corresponding deinit() function because the tdefl API's do not dynamically allocate memory. */ -/* pBut_buf_func: If NULL, output data will be supplied to the specified callback. In this case, the user should call the tdefl_compress_buffer() API for compression. */ -/* If pBut_buf_func is NULL the user should always call the tdefl_compress() API. */ -/* flags: See the above enums (TDEFL_HUFFMAN_ONLY, TDEFL_WRITE_ZLIB_HEADER, etc.) */ -tdefl_status tdefl_init(tdefl_compressor *d, tdefl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags) asm("@@TDINIT"); - -/* Compresses a block of data, consuming as much of the specified input buffer as possible, and writing as much compressed data to the specified output buffer as possible. */ -tdefl_status tdefl_compress(tdefl_compressor *d, const void *pIn_buf, size_t *pIn_buf_size, void *pOut_buf, size_t *pOut_buf_size, tdefl_flush flush) asm("@@TDCMPR"); - -/* tdefl_compress_buffer() is only usable when the tdefl_init() is called with a non-NULL tdefl_put_buf_func_ptr. */ -/* tdefl_compress_buffer() always consumes the entire input buffer. */ -tdefl_status tdefl_compress_buffer(tdefl_compressor *d, const void *pIn_buf, size_t in_buf_size, tdefl_flush flush) asm("@@TDCMPB"); - -tdefl_status tdefl_get_prev_return_status(tdefl_compressor *d) asm("@@TDGPRS"); -mz_uint32 tdefl_get_adler32(tdefl_compressor *d) asm("@@TDGADL"); - -/* Create tdefl_compress() flags given zlib-style compression parameters. */ -/* level may range from [0,10] (where 10 is absolute max compression, but may be much slower on some files) */ -/* window_bits may be -15 (raw deflate) or 15 (zlib) */ -/* strategy may be either MZ_DEFAULT_STRATEGY, MZ_FILTERED, MZ_HUFFMAN_ONLY, MZ_RLE, or MZ_FIXED */ -mz_uint tdefl_create_comp_flags_from_zip_params(int level, int window_bits, int strategy) asm("@@TDCCFZ"); - -/* Allocate the tdefl_compressor structure in C so that */ -/* non-C language bindings to tdefl_ API don't need to worry about */ -/* structure size and allocation mechanism. */ -tdefl_compressor *tdefl_compressor_alloc() asm("@@TDCMPA"); -void tdefl_compressor_free(tdefl_compressor *pComp) asm("@@TDCMPF"); - -/* Decompression flags used by tinfl_decompress(). */ -/* TINFL_FLAG_PARSE_ZLIB_HEADER: If set, the input has a valid zlib header and ends with an adler32 checksum (it's a valid zlib stream). Otherwise, the input is a raw deflate stream. */ -/* TINFL_FLAG_HAS_MORE_INPUT: If set, there are more input bytes available beyond the end of the supplied input buffer. If clear, the input buffer contains all remaining input. */ -/* TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF: If set, the output buffer is large enough to hold the entire decompressed stream. If clear, the output buffer is at least the size of the dictionary (typically 32KB). */ -/* TINFL_FLAG_COMPUTE_ADLER32: Force adler-32 checksum computation of the decompressed bytes. */ -enum -{ - TINFL_FLAG_PARSE_ZLIB_HEADER = 1, - TINFL_FLAG_HAS_MORE_INPUT = 2, - TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF = 4, - TINFL_FLAG_COMPUTE_ADLER32 = 8 -}; - -/* High level decompression functions: */ -/* tinfl_decompress_mem_to_heap() decompresses a block in memory to a heap block allocated via malloc(). */ -/* On entry: */ -/* pSrc_buf, src_buf_len: Pointer and size of the Deflate or zlib source data to decompress. */ -/* On return: */ -/* Function returns a pointer to the decompressed data, or NULL on failure. */ -/* *pOut_len will be set to the decompressed data's size, which could be larger than src_buf_len on uncompressible data. */ -/* The caller must call mz_free() on the returned block when it's no longer needed. */ -void *tinfl_decompress_mem_to_heap(const void *pSrc_buf, size_t src_buf_len, size_t *pOut_len, int flags) asm("@@TIDM2H"); - -/* tinfl_decompress_mem_to_mem() decompresses a block in memory to another block in memory. */ -/* Returns TINFL_DECOMPRESS_MEM_TO_MEM_FAILED on failure, or the number of bytes written on success. */ -#define TINFL_DECOMPRESS_MEM_TO_MEM_FAILED ((size_t)(-1)) -size_t tinfl_decompress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void *pSrc_buf, size_t src_buf_len, int flags) asm("@@TIDM2M"); - -/* tinfl_decompress_mem_to_callback() decompresses a block in memory to an internal 32KB buffer, and a user provided callback function will be called to flush the buffer. */ -/* Returns 1 on success or 0 on failure. */ -typedef int (*tinfl_put_buf_func_ptr)(const void *pBuf, int len, void *pUser); -int tinfl_decompress_mem_to_callback(const void *pIn_buf, size_t *pIn_buf_size, tinfl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags) asm("@@TIDM2C"); - -struct tinfl_decompressor_tag; -typedef struct tinfl_decompressor_tag tinfl_decompressor; - -/* Allocate the tinfl_decompressor structure in C so that */ -/* non-C language bindings to tinfl_ API don't need to worry about */ -/* structure size and allocation mechanism. */ - -tinfl_decompressor *tinfl_decompressor_alloc() asm("@@TIDALC"); -void tinfl_decompressor_free(tinfl_decompressor *pDecomp) asm("@@TIDFRE"); - -/* Max size of LZ dictionary. */ -#define TINFL_LZ_DICT_SIZE 32768 - -/* Return status. */ -typedef enum { - /* This flags indicates the inflator needs 1 or more input bytes to make forward progress, but the caller is indicating that no more are available. The compressed data */ - /* is probably corrupted. If you call the inflator again with more bytes it'll try to continue processing the input but this is a BAD sign (either the data is corrupted or you called it incorrectly). */ - /* If you call it again with no input you'll just get TINFL_STATUS_FAILED_CANNOT_MAKE_PROGRESS again. */ - TINFL_STATUS_FAILED_CANNOT_MAKE_PROGRESS = -4, - - /* This flag indicates that one or more of the input parameters was obviously bogus. (You can try calling it again, but if you get this error the calling code is wrong.) */ - TINFL_STATUS_BAD_PARAM = -3, - - /* This flags indicate the inflator is finished but the adler32 check of the uncompressed data didn't match. If you call it again it'll return TINFL_STATUS_DONE. */ - TINFL_STATUS_ADLER32_MISMATCH = -2, - - /* This flags indicate the inflator has somehow failed (bad code, corrupted input, etc.). If you call it again without resetting via tinfl_init() it it'll just keep on returning the same status failure code. */ - TINFL_STATUS_FAILED = -1, - - /* Any status code less than TINFL_STATUS_DONE must indicate a failure. */ - - /* This flag indicates the inflator has returned every byte of uncompressed data that it can, has consumed every byte that it needed, has successfully reached the end of the deflate stream, and */ - /* if zlib headers and adler32 checking enabled that it has successfully checked the uncompressed data's adler32. If you call it again you'll just get TINFL_STATUS_DONE over and over again. */ - TINFL_STATUS_DONE = 0, - - /* This flag indicates the inflator MUST have more input data (even 1 byte) before it can make any more forward progress, or you need to clear the TINFL_FLAG_HAS_MORE_INPUT */ - /* flag on the next call if you don't have any more source data. If the source data was somehow corrupted it's also possible (but unlikely) for the inflator to keep on demanding input to */ - /* proceed, so be sure to properly set the TINFL_FLAG_HAS_MORE_INPUT flag. */ - TINFL_STATUS_NEEDS_MORE_INPUT = 1, - - /* This flag indicates the inflator definitely has 1 or more bytes of uncompressed data available, but it cannot write this data into the output buffer. */ - /* Note if the source compressed data was corrupted it's possible for the inflator to return a lot of uncompressed data to the caller. I've been assuming you know how much uncompressed data to expect */ - /* (either exact or worst case) and will stop calling the inflator and fail after receiving too much. In pure streaming scenarios where you have no idea how many bytes to expect this may not be possible */ - /* so I may need to add some code to address this. */ - TINFL_STATUS_HAS_MORE_OUTPUT = 2 -} tinfl_status; - -/* Initializes the decompressor to its initial state. */ -#define tinfl_init(r) \ - do \ - { \ - (r)->m_state = 0; \ - } \ - MZ_MACRO_END -#define tinfl_get_adler32(r) (r)->m_check_adler32 - -/* Main low-level decompressor coroutine function. This is the only function actually needed for decompression. All the other functions are just high-level helpers for improved usability. */ -/* This is a universal API, i.e. it can be used as a building block to build any desired higher level decompression API. In the limit case, it can be called once per every byte input or output. */ -tinfl_status tinfl_decompress(tinfl_decompressor *r, const mz_uint8 *pIn_buf_next, size_t *pIn_buf_size, mz_uint8 *pOut_buf_start, mz_uint8 *pOut_buf_next, size_t *pOut_buf_size, const mz_uint32 decomp_flags) asm("@@TIDCMP"); - -/* Internal/private bits follow. */ -enum -{ - TINFL_MAX_HUFF_TABLES = 3, - TINFL_MAX_HUFF_SYMBOLS_0 = 288, - TINFL_MAX_HUFF_SYMBOLS_1 = 32, - TINFL_MAX_HUFF_SYMBOLS_2 = 19, - TINFL_FAST_LOOKUP_BITS = 10, - TINFL_FAST_LOOKUP_SIZE = 1 << TINFL_FAST_LOOKUP_BITS -}; - -typedef struct -{ - mz_uint8 m_code_size[TINFL_MAX_HUFF_SYMBOLS_0]; - mz_int16 m_look_up[TINFL_FAST_LOOKUP_SIZE], m_tree[TINFL_MAX_HUFF_SYMBOLS_0 * 2]; -} tinfl_huff_table; - -#if MINIZ_HAS_64BIT_REGISTERS -#define TINFL_USE_64BIT_BITBUF 1 -#else -#define TINFL_USE_64BIT_BITBUF 0 -#endif - -#if TINFL_USE_64BIT_BITBUF -typedef mz_uint64 tinfl_bit_buf_t; -#define TINFL_BITBUF_SIZE (64) -#else -typedef mz_uint32 tinfl_bit_buf_t; -#define TINFL_BITBUF_SIZE (32) -#endif - -struct tinfl_decompressor_tag -{ - mz_uint32 m_state, m_num_bits, m_zhdr0, m_zhdr1, m_z_adler32, m_final, m_type, m_check_adler32, m_dist, m_counter, m_num_extra, m_table_sizes[TINFL_MAX_HUFF_TABLES]; - tinfl_bit_buf_t m_bit_buf; - size_t m_dist_from_out_buf_start; - tinfl_huff_table m_tables[TINFL_MAX_HUFF_TABLES]; - mz_uint8 m_raw_header[4], m_len_codes[TINFL_MAX_HUFF_SYMBOLS_0 + TINFL_MAX_HUFF_SYMBOLS_1 + 137]; -}; - - -#ifdef __cplusplus -} -#endif - -#if defined(_M_IX86) || defined(_M_X64) || defined(__i386__) || defined(__i386) || defined(__i486__) || defined(__i486) || defined(i386) || defined(__ia64__) || defined(__x86_64__) -/* MINIZ_X86_OR_X64_CPU is only used to help set the below macros. */ -#define MINIZ_X86_OR_X64_CPU 1 -#else -#define MINIZ_X86_OR_X64_CPU 0 -#endif - -#if (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) || MINIZ_X86_OR_X64_CPU -/* Set MINIZ_LITTLE_ENDIAN to 1 if the processor is little endian. */ -#define MINIZ_LITTLE_ENDIAN 1 -#else -#define MINIZ_LITTLE_ENDIAN 0 -#endif - -#if MINIZ_X86_OR_X64_CPU -/* Set MINIZ_USE_UNALIGNED_LOADS_AND_STORES to 1 on CPU's that permit efficient integer loads and stores from unaligned addresses. */ -#define MINIZ_USE_UNALIGNED_LOADS_AND_STORES 1 -#define MINIZ_UNALIGNED_USE_MEMCPY -#else -#define MINIZ_USE_UNALIGNED_LOADS_AND_STORES 0 -#endif - -#if defined(_M_X64) || defined(_WIN64) || defined(__MINGW64__) || defined(_LP64) || defined(__LP64__) || defined(__ia64__) || defined(__x86_64__) -/* Set MINIZ_HAS_64BIT_REGISTERS to 1 if operations on 64-bit integers are reasonably fast (and don't involve compiler generated calls to helper functions). */ -#define MINIZ_HAS_64BIT_REGISTERS 1 -#else -#define MINIZ_HAS_64BIT_REGISTERS 0 -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* ------------------- zlib-style API Definitions. */ - -/* For more compatibility with zlib, miniz.c uses unsigned long for some parameters/struct members. Beware: mz_ulong can be either 32 or 64-bits! */ -typedef unsigned long mz_ulong; - -/* mz_free() internally uses the MZ_FREE() macro (which by default calls free() unless you've modified the MZ_MALLOC macro) to release a block allocated from the heap. */ -void mz_free(void *p) asm("@@MZFREE"); - -#define MZ_ADLER32_INIT (1) -/* mz_adler32() returns the initial adler-32 value to use when called with ptr==NULL. */ -mz_ulong mz_adler32(mz_ulong adler, const unsigned char *ptr, size_t buf_len) asm("@@MZADLR"); - -#define MZ_CRC32_INIT (0) -/* mz_crc32() returns the initial CRC-32 value to use when called with ptr==NULL. */ -mz_ulong mz_crc32(mz_ulong crc, const unsigned char *ptr, size_t buf_len) asm("@@MZCRC"); - -/* Compression strategies. */ -enum -{ - MZ_DEFAULT_STRATEGY = 0, - MZ_FILTERED = 1, - MZ_HUFFMAN_ONLY = 2, - MZ_RLE = 3, - MZ_FIXED = 4 -}; - -/* Method */ -#define MZ_DEFLATED 8 - -/* Heap allocation callbacks. -Note that mz_alloc_func parameter types purpsosely differ from zlib's: items/size is size_t, not unsigned long. */ -typedef void *(*mz_alloc_func)(void *opaque, size_t items, size_t size); -typedef void (*mz_free_func)(void *opaque, void *address); -typedef void *(*mz_realloc_func)(void *opaque, void *address, size_t items, size_t size); - -/* Compression levels: 0-9 are the standard zlib-style levels, 10 is best possible compression (not zlib compatible, and may be very slow), MZ_DEFAULT_COMPRESSION=MZ_DEFAULT_LEVEL. */ -enum -{ - MZ_NO_COMPRESSION = 0, - MZ_BEST_SPEED = 1, - MZ_BEST_COMPRESSION = 9, - MZ_UBER_COMPRESSION = 10, - MZ_DEFAULT_LEVEL = 6, - MZ_DEFAULT_COMPRESSION = -1 -}; - -#define MZ_VERSION "10.1.0" -#define MZ_VERNUM 0xA100 -#define MZ_VER_MAJOR 10 -#define MZ_VER_MINOR 1 -#define MZ_VER_REVISION 0 -#define MZ_VER_SUBREVISION 0 - -#ifndef MINIZ_NO_ZLIB_APIS - -/* Flush values. For typical usage you only need MZ_NO_FLUSH and MZ_FINISH. The other values are for advanced use (refer to the zlib docs). */ -enum -{ - MZ_NO_FLUSH = 0, - MZ_PARTIAL_FLUSH = 1, - MZ_SYNC_FLUSH = 2, - MZ_FULL_FLUSH = 3, - MZ_FINISH = 4, - MZ_BLOCK = 5 -}; - -/* Return status codes. MZ_PARAM_ERROR is non-standard. */ -enum -{ - MZ_OK = 0, - MZ_STREAM_END = 1, - MZ_NEED_DICT = 2, - MZ_ERRNO = -1, - MZ_STREAM_ERROR = -2, - MZ_DATA_ERROR = -3, - MZ_MEM_ERROR = -4, - MZ_BUF_ERROR = -5, - MZ_VERSION_ERROR = -6, - MZ_PARAM_ERROR = -10000 -}; - -/* Window bits */ -#define MZ_DEFAULT_WINDOW_BITS 15 - -struct mz_internal_state; - -/* Compression/decompression stream struct. */ -typedef struct mz_stream_s -{ - const unsigned char *next_in; /* pointer to next byte to read */ - unsigned int avail_in; /* number of bytes available at next_in */ - mz_ulong total_in; /* total number of bytes consumed so far */ - - unsigned char *next_out; /* pointer to next byte to write */ - unsigned int avail_out; /* number of bytes that can be written to next_out */ - mz_ulong total_out; /* total number of bytes produced so far */ - - char *msg; /* error msg (unused) */ - struct mz_internal_state *state; /* internal state, allocated by zalloc/zfree */ - - mz_alloc_func zalloc; /* optional heap allocation function (defaults to malloc) */ - mz_free_func zfree; /* optional heap free function (defaults to free) */ - void *opaque; /* heap alloc function user pointer */ - - int data_type; /* data_type (unused) */ - mz_ulong adler; /* adler32 of the source or uncompressed data */ - mz_ulong reserved; /* not used */ -} mz_stream; - -typedef mz_stream *mz_streamp; - -/* Returns the version string of miniz.c. */ -const char *mz_version(void) asm("@@MZVERS"); - -/* mz_deflateInit() initializes a compressor with default options: */ -/* Parameters: */ -/* pStream must point to an initialized mz_stream struct. */ -/* level must be between [MZ_NO_COMPRESSION, MZ_BEST_COMPRESSION]. */ -/* level 1 enables a specially optimized compression function that's been optimized purely for performance, not ratio. */ -/* (This special func. is currently only enabled when MINIZ_USE_UNALIGNED_LOADS_AND_STORES and MINIZ_LITTLE_ENDIAN are defined.) */ -/* Return values: */ -/* MZ_OK on success. */ -/* MZ_STREAM_ERROR if the stream is bogus. */ -/* MZ_PARAM_ERROR if the input parameters are bogus. */ -/* MZ_MEM_ERROR on out of memory. */ -int mz_deflateInit(mz_streamp pStream, int level) asm("@@MZDINI"); - -/* mz_deflateInit2() is like mz_deflate(), except with more control: */ -/* Additional parameters: */ -/* method must be MZ_DEFLATED */ -/* window_bits must be MZ_DEFAULT_WINDOW_BITS (to wrap the deflate stream with zlib header/adler-32 footer) or -MZ_DEFAULT_WINDOW_BITS (raw deflate/no header or footer) */ -/* mem_level must be between [1, 9] (it's checked but ignored by miniz.c) */ -int mz_deflateInit2(mz_streamp pStream, int level, int method, int window_bits, int mem_level, int strategy) asm("@@MZDIN2"); - -/* Quickly resets a compressor without having to reallocate anything. Same as calling mz_deflateEnd() followed by mz_deflateInit()/mz_deflateInit2(). */ -int mz_deflateReset(mz_streamp pStream) asm("@@MZDRST"); - -/* mz_deflate() compresses the input to output, consuming as much of the input and producing as much output as possible. */ -/* Parameters: */ -/* pStream is the stream to read from and write to. You must initialize/update the next_in, avail_in, next_out, and avail_out members. */ -/* flush may be MZ_NO_FLUSH, MZ_PARTIAL_FLUSH/MZ_SYNC_FLUSH, MZ_FULL_FLUSH, or MZ_FINISH. */ -/* Return values: */ -/* MZ_OK on success (when flushing, or if more input is needed but not available, and/or there's more output to be written but the output buffer is full). */ -/* MZ_STREAM_END if all input has been consumed and all output bytes have been written. Don't call mz_deflate() on the stream anymore. */ -/* MZ_STREAM_ERROR if the stream is bogus. */ -/* MZ_PARAM_ERROR if one of the parameters is invalid. */ -/* MZ_BUF_ERROR if no forward progress is possible because the input and/or output buffers are empty. (Fill up the input buffer or free up some output space and try again.) */ -int mz_deflate(mz_streamp pStream, int flush) asm("@@MZDFLT"); - -/* mz_deflateEnd() deinitializes a compressor: */ -/* Return values: */ -/* MZ_OK on success. */ -/* MZ_STREAM_ERROR if the stream is bogus. */ -int mz_deflateEnd(mz_streamp pStream) asm("@@MZDEND"); - -/* mz_deflateBound() returns a (very) conservative upper bound on the amount of data that could be generated by deflate(), assuming flush is set to only MZ_NO_FLUSH or MZ_FINISH. */ -mz_ulong mz_deflateBound(mz_streamp pStream, mz_ulong source_len) asm("@@MZDBND"); - -/* Single-call compression functions mz_compress() and mz_compress2(): */ -/* Returns MZ_OK on success, or one of the error codes from mz_deflate() on failure. */ -int mz_compress(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len) asm("@@MZCMPR"); -int mz_compress2(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len, int level) asm("@@MZCMP2"); - -/* mz_compressBound() returns a (very) conservative upper bound on the amount of data that could be generated by calling mz_compress(). */ -mz_ulong mz_compressBound(mz_ulong source_len) asm("@@MZCBND"); - -/* Initializes a decompressor. */ -int mz_inflateInit(mz_streamp pStream) asm("@@MZIINI"); - -/* mz_inflateInit2() is like mz_inflateInit() with an additional option that controls the window size and whether or not the stream has been wrapped with a zlib header/footer: */ -/* window_bits must be MZ_DEFAULT_WINDOW_BITS (to parse zlib header/footer) or -MZ_DEFAULT_WINDOW_BITS (raw deflate). */ -int mz_inflateInit2(mz_streamp pStream, int window_bits) asm("@@MZIIN2"); - -/* Decompresses the input stream to the output, consuming only as much of the input as needed, and writing as much to the output as possible. */ -/* Parameters: */ -/* pStream is the stream to read from and write to. You must initialize/update the next_in, avail_in, next_out, and avail_out members. */ -/* flush may be MZ_NO_FLUSH, MZ_SYNC_FLUSH, or MZ_FINISH. */ -/* On the first call, if flush is MZ_FINISH it's assumed the input and output buffers are both sized large enough to decompress the entire stream in a single call (this is slightly faster). */ -/* MZ_FINISH implies that there are no more source bytes available beside what's already in the input buffer, and that the output buffer is large enough to hold the rest of the decompressed data. */ -/* Return values: */ -/* MZ_OK on success. Either more input is needed but not available, and/or there's more output to be written but the output buffer is full. */ -/* MZ_STREAM_END if all needed input has been consumed and all output bytes have been written. For zlib streams, the adler-32 of the decompressed data has also been verified. */ -/* MZ_STREAM_ERROR if the stream is bogus. */ -/* MZ_DATA_ERROR if the deflate stream is invalid. */ -/* MZ_PARAM_ERROR if one of the parameters is invalid. */ -/* MZ_BUF_ERROR if no forward progress is possible because the input buffer is empty but the inflater needs more input to continue, or if the output buffer is not large enough. Call mz_inflate() again */ -/* with more input data, or with more room in the output buffer (except when using single call decompression, described above). */ -int mz_inflate(mz_streamp pStream, int flush) asm("@@MZINFL"); - -/* Deinitializes a decompressor. */ -int mz_inflateEnd(mz_streamp pStream) asm("@@MZIEND"); - -/* Single-call decompression. */ -/* Returns MZ_OK on success, or one of the error codes from mz_inflate() on failure. */ -int mz_uncompress(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len) asm("@@MZUCMP"); - -/* Returns a string description of the specified error code, or NULL if the error code is invalid. */ -const char *mz_error(int err) asm("@@MZERR"); - -/* Redefine zlib-compatible names to miniz equivalents, so miniz.c can be used as a drop-in replacement for the subset of zlib that miniz.c supports. */ -/* Define MINIZ_NO_ZLIB_COMPATIBLE_NAMES to disable zlib-compatibility if you use zlib in the same project. */ -#ifndef MINIZ_NO_ZLIB_COMPATIBLE_NAMES -typedef unsigned char Byte; -typedef unsigned int uInt; -typedef mz_ulong uLong; -typedef Byte Bytef; -typedef uInt uIntf; -typedef char charf; -typedef int intf; -typedef void *voidpf; -typedef uLong uLongf; -typedef void *voidp; -typedef void *const voidpc; -#define Z_NULL 0 -#define Z_NO_FLUSH MZ_NO_FLUSH -#define Z_PARTIAL_FLUSH MZ_PARTIAL_FLUSH -#define Z_SYNC_FLUSH MZ_SYNC_FLUSH -#define Z_FULL_FLUSH MZ_FULL_FLUSH -#define Z_FINISH MZ_FINISH -#define Z_BLOCK MZ_BLOCK -#define Z_OK MZ_OK -#define Z_STREAM_END MZ_STREAM_END -#define Z_NEED_DICT MZ_NEED_DICT -#define Z_ERRNO MZ_ERRNO -#define Z_STREAM_ERROR MZ_STREAM_ERROR -#define Z_DATA_ERROR MZ_DATA_ERROR -#define Z_MEM_ERROR MZ_MEM_ERROR -#define Z_BUF_ERROR MZ_BUF_ERROR -#define Z_VERSION_ERROR MZ_VERSION_ERROR -#define Z_PARAM_ERROR MZ_PARAM_ERROR -#define Z_NO_COMPRESSION MZ_NO_COMPRESSION -#define Z_BEST_SPEED MZ_BEST_SPEED -#define Z_BEST_COMPRESSION MZ_BEST_COMPRESSION -#define Z_DEFAULT_COMPRESSION MZ_DEFAULT_COMPRESSION -#define Z_DEFAULT_STRATEGY MZ_DEFAULT_STRATEGY -#define Z_FILTERED MZ_FILTERED -#define Z_HUFFMAN_ONLY MZ_HUFFMAN_ONLY -#define Z_RLE MZ_RLE -#define Z_FIXED MZ_FIXED -#define Z_DEFLATED MZ_DEFLATED -#define Z_DEFAULT_WINDOW_BITS MZ_DEFAULT_WINDOW_BITS -#define alloc_func mz_alloc_func -#define free_func mz_free_func -#define internal_state mz_internal_state -#define z_stream mz_stream -#define deflateInit mz_deflateInit -#define deflateInit2 mz_deflateInit2 -#define deflateReset mz_deflateReset -#define deflate mz_deflate -#define deflateEnd mz_deflateEnd -#define deflateBound mz_deflateBound -#define compress mz_compress -#define compress2 mz_compress2 -#define compressBound mz_compressBound -#define inflateInit mz_inflateInit -#define inflateInit2 mz_inflateInit2 -#define inflate mz_inflate -#define inflateEnd mz_inflateEnd -#define uncompress mz_uncompress -#define crc32 mz_crc32 -#define adler32 mz_adler32 -#define MAX_WBITS 15 -#define MAX_MEM_LEVEL 9 -#define zError mz_error -#define ZLIB_VERSION MZ_VERSION -#define ZLIB_VERNUM MZ_VERNUM -#define ZLIB_VER_MAJOR MZ_VER_MAJOR -#define ZLIB_VER_MINOR MZ_VER_MINOR -#define ZLIB_VER_REVISION MZ_VER_REVISION -#define ZLIB_VER_SUBREVISION MZ_VER_SUBREVISION -#define zlibVersion mz_version -#define zlib_version mz_version() -#endif /* #ifndef MINIZ_NO_ZLIB_COMPATIBLE_NAMES */ - -#endif /* MINIZ_NO_ZLIB_APIS */ - -#ifdef __cplusplus -} -#endif - -#endif /* CLIBMZ_H */ diff --git a/src/crent370/include/clibmzi.h b/src/crent370/include/clibmzi.h deleted file mode 100644 index 8bcce55..0000000 --- a/src/crent370/include/clibmzi.h +++ /dev/null @@ -1,318 +0,0 @@ -#ifndef CLIBMZI_H -#define CLIBMZI_H -#include /* miniz public interfaces */ - -typedef struct -{ - tinfl_decompressor m_decomp; - mz_uint m_dict_ofs, m_dict_avail, m_first_call, m_has_flushed; - int m_window_bits; - mz_uint8 m_dict[TINFL_LZ_DICT_SIZE]; - tinfl_status m_last_status; -} inflate_state; - -/* Radix sorts tdefl_sym_freq[] array by 16-bit key m_key. Returns ptr to sorted values. */ -typedef struct -{ - mz_uint16 m_key, m_sym_index; -} tdefl_sym_freq; - -/* Limits canonical Huffman code table's max code size. */ -enum -{ - TDEFL_MAX_SUPPORTED_HUFF_CODESIZE = 32 -}; - -#define TDEFL_PUT_BITS(b, l) \ - do \ - { \ - mz_uint bits = b; \ - mz_uint len = l; \ - MZ_ASSERT(bits <= ((1U << len) - 1U)); \ - d->m_bit_buffer |= (bits << d->m_bits_in); \ - d->m_bits_in += len; \ - while (d->m_bits_in >= 8) \ - { \ - if (d->m_pOutput_buf < d->m_pOutput_buf_end) \ - *d->m_pOutput_buf++ = (mz_uint8)(d->m_bit_buffer); \ - d->m_bit_buffer >>= 8; \ - d->m_bits_in -= 8; \ - } \ - } \ - MZ_MACRO_END - -#define TDEFL_RLE_PREV_CODE_SIZE() \ - { \ - if (rle_repeat_count) \ - { \ - if (rle_repeat_count < 3) \ - { \ - d->m_huff_count[2][prev_code_size] = (mz_uint16)(d->m_huff_count[2][prev_code_size] + rle_repeat_count); \ - while (rle_repeat_count--) \ - packed_code_sizes[num_packed_code_sizes++] = prev_code_size; \ - } \ - else \ - { \ - d->m_huff_count[2][16] = (mz_uint16)(d->m_huff_count[2][16] + 1); \ - packed_code_sizes[num_packed_code_sizes++] = 16; \ - packed_code_sizes[num_packed_code_sizes++] = (mz_uint8)(rle_repeat_count - 3); \ - } \ - rle_repeat_count = 0; \ - } \ - } - -#define TDEFL_RLE_ZERO_CODE_SIZE() \ - { \ - if (rle_z_count) \ - { \ - if (rle_z_count < 3) \ - { \ - d->m_huff_count[2][0] = (mz_uint16)(d->m_huff_count[2][0] + rle_z_count); \ - while (rle_z_count--) \ - packed_code_sizes[num_packed_code_sizes++] = 0; \ - } \ - else if (rle_z_count <= 10) \ - { \ - d->m_huff_count[2][17] = (mz_uint16)(d->m_huff_count[2][17] + 1); \ - packed_code_sizes[num_packed_code_sizes++] = 17; \ - packed_code_sizes[num_packed_code_sizes++] = (mz_uint8)(rle_z_count - 3); \ - } \ - else \ - { \ - d->m_huff_count[2][18] = (mz_uint16)(d->m_huff_count[2][18] + 1); \ - packed_code_sizes[num_packed_code_sizes++] = 18; \ - packed_code_sizes[num_packed_code_sizes++] = (mz_uint8)(rle_z_count - 11); \ - } \ - rle_z_count = 0; \ - } \ - } - -#define TDEFL_READ_UNALIGNED_WORD32(p) *(const mz_uint32 *)(p) -#define TDEFL_READ_UNALIGNED_WORD(p) *(const mz_uint16 *)(p) -#define TDEFL_READ_UNALIGNED_WORD2(p) *(const mz_uint16 *)(p) - -typedef struct -{ - size_t m_size, m_capacity; - mz_uint8 *m_pBuf; - mz_bool m_expandable; -} tdefl_output_buffer; - -#define TINFL_MEMCPY(d, s, l) memcpy(d, s, l) -#define TINFL_MEMSET(p, c, l) memset(p, c, l) - -#define TINFL_CR_BEGIN \ - switch (r->m_state) \ - { \ - case 0: -#define TINFL_CR_RETURN(state_index, result) \ - do \ - { \ - status = result; \ - r->m_state = state_index; \ - goto common_exit; \ - case state_index:; \ - } \ - MZ_MACRO_END -#define TINFL_CR_RETURN_FOREVER(state_index, result) \ - do \ - { \ - for (;;) \ - { \ - TINFL_CR_RETURN(state_index, result); \ - } \ - } \ - MZ_MACRO_END -#define TINFL_CR_FINISH } - -#define TINFL_GET_BYTE(state_index, c) \ - do \ - { \ - while (pIn_buf_cur >= pIn_buf_end) \ - { \ - TINFL_CR_RETURN(state_index, (decomp_flags & TINFL_FLAG_HAS_MORE_INPUT) ? TINFL_STATUS_NEEDS_MORE_INPUT : TINFL_STATUS_FAILED_CANNOT_MAKE_PROGRESS); \ - } \ - c = *pIn_buf_cur++; \ - } \ - MZ_MACRO_END - -#define TINFL_NEED_BITS(state_index, n) \ - do \ - { \ - mz_uint c; \ - TINFL_GET_BYTE(state_index, c); \ - bit_buf |= (((tinfl_bit_buf_t)c) << num_bits); \ - num_bits += 8; \ - } while (num_bits < (mz_uint)(n)) -#define TINFL_SKIP_BITS(state_index, n) \ - do \ - { \ - if (num_bits < (mz_uint)(n)) \ - { \ - TINFL_NEED_BITS(state_index, n); \ - } \ - bit_buf >>= (n); \ - num_bits -= (n); \ - } \ - MZ_MACRO_END -#define TINFL_GET_BITS(state_index, b, n) \ - do \ - { \ - if (num_bits < (mz_uint)(n)) \ - { \ - TINFL_NEED_BITS(state_index, n); \ - } \ - b = bit_buf & ((1 << (n)) - 1); \ - bit_buf >>= (n); \ - num_bits -= (n); \ - } \ - MZ_MACRO_END - -/* TINFL_HUFF_BITBUF_FILL() is only used rarely, when the number of bytes remaining in the input buffer falls below 2. */ -/* It reads just enough bytes from the input stream that are needed to decode the next Huffman code (and absolutely no more). It works by trying to fully decode a */ -/* Huffman code by using whatever bits are currently present in the bit buffer. If this fails, it reads another byte, and tries again until it succeeds or until the */ -/* bit buffer contains >=15 bits (deflate's max. Huffman code size). */ -#define TINFL_HUFF_BITBUF_FILL(state_index, pHuff) \ - do \ - { \ - temp = (pHuff)->m_look_up[bit_buf & (TINFL_FAST_LOOKUP_SIZE - 1)]; \ - if (temp >= 0) \ - { \ - code_len = temp >> 9; \ - if ((code_len) && (num_bits >= code_len)) \ - break; \ - } \ - else if (num_bits > TINFL_FAST_LOOKUP_BITS) \ - { \ - code_len = TINFL_FAST_LOOKUP_BITS; \ - do \ - { \ - temp = (pHuff)->m_tree[~temp + ((bit_buf >> code_len++) & 1)]; \ - } while ((temp < 0) && (num_bits >= (code_len + 1))); \ - if (temp >= 0) \ - break; \ - } \ - TINFL_GET_BYTE(state_index, c); \ - bit_buf |= (((tinfl_bit_buf_t)c) << num_bits); \ - num_bits += 8; \ - } while (num_bits < 15); - -/* TINFL_HUFF_DECODE() decodes the next Huffman coded symbol. It's more complex than you would initially expect because the zlib API expects the decompressor to never read */ -/* beyond the final byte of the deflate stream. (In other words, when this macro wants to read another byte from the input, it REALLY needs another byte in order to fully */ -/* decode the next Huffman code.) Handling this properly is particularly important on raw deflate (non-zlib) streams, which aren't followed by a byte aligned adler-32. */ -/* The slow path is only executed at the very end of the input buffer. */ -/* v1.16: The original macro handled the case at the very end of the passed-in input buffer, but we also need to handle the case where the user passes in 1+zillion bytes */ -/* following the deflate data and our non-conservative read-ahead path won't kick in here on this code. This is much trickier. */ -#define TINFL_HUFF_DECODE(state_index, sym, pHuff) \ - do \ - { \ - int temp; \ - mz_uint code_len, c; \ - if (num_bits < 15) \ - { \ - if ((pIn_buf_end - pIn_buf_cur) < 2) \ - { \ - TINFL_HUFF_BITBUF_FILL(state_index, pHuff); \ - } \ - else \ - { \ - bit_buf |= (((tinfl_bit_buf_t)pIn_buf_cur[0]) << num_bits) | (((tinfl_bit_buf_t)pIn_buf_cur[1]) << (num_bits + 8)); \ - pIn_buf_cur += 2; \ - num_bits += 16; \ - } \ - } \ - if ((temp = (pHuff)->m_look_up[bit_buf & (TINFL_FAST_LOOKUP_SIZE - 1)]) >= 0) \ - code_len = temp >> 9, temp &= 511; \ - else \ - { \ - code_len = TINFL_FAST_LOOKUP_BITS; \ - do \ - { \ - temp = (pHuff)->m_tree[~temp + ((bit_buf >> code_len++) & 1)]; \ - } while (temp < 0); \ - } \ - sym = temp; \ - bit_buf >>= code_len; \ - num_bits -= code_len; \ - } \ - MZ_MACRO_END - -struct mz_private { - /* private structures */ - const mz_uint16 *s_tdefl_len_sym; - const mz_uint8 *s_tdefl_len_extra; - const mz_uint8 *s_tdefl_small_dist_sym; - const mz_uint8 *s_tdefl_small_dist_extra; - const mz_uint8 *s_tdefl_large_dist_sym; - const mz_uint8 *s_tdefl_large_dist_extra; - const mz_uint8 *s_tdefl_packed_code_size_syms_swizzle; - const mz_uint *mz_bitmasks; - const mz_uint *s_tdefl_num_probes; - - /* function pointers */ - tdefl_sym_freq * (*tdefl_radix_sort_syms)(mz_uint num_syms, tdefl_sym_freq *pSyms0, tdefl_sym_freq *pSyms1); - void (*tdefl_calculate_minimum_redundancy)(tdefl_sym_freq *A, int n); - void (*tdefl_huffman_enforce_max_code_size)(int *pNum_codes, int code_list_len, int max_code_size); - void (*tdefl_optimize_huffman_table)(tdefl_compressor *d, int table_num, int table_len, int code_size_limit, int static_table); - void (*tdefl_start_dynamic_block)(tdefl_compressor *d); - void (*tdefl_start_static_block)(tdefl_compressor *d); - mz_bool (*tdefl_compress_lz_codes)(tdefl_compressor *d); - mz_bool (*tdefl_compress_block)(tdefl_compressor *d, mz_bool static_block); - int (*tdefl_flush_block)(tdefl_compressor *d, int flush); - void (*tdefl_find_match)(tdefl_compressor *d, mz_uint lookahead_pos, mz_uint max_dist, mz_uint max_match_len, mz_uint *pMatch_dist, mz_uint *pMatch_len); - mz_bool (*tdefl_compress_fast)(tdefl_compressor *d); - void (*tdefl_record_literal)(tdefl_compressor *d, mz_uint8 lit); - void (*tdefl_record_match)(tdefl_compressor *d, mz_uint match_len, mz_uint match_dist); - mz_bool (*tdefl_compress_normal)(tdefl_compressor *d); - tdefl_status (*tdefl_flush_output_buffer)(tdefl_compressor *d); - mz_bool (*tdefl_output_buffer_putter)(const void *pBuf, int len, void *pUser); -}; - -#ifdef MZ_PRIVATE -extern struct mz_private *__mzcore; /* see @@MZCORE.C for implementation */ -#define s_tdefl_len_sym ((__mzcore->s_tdefl_len_sym)) -#define s_tdefl_len_extra ((__mzcore->s_tdefl_len_extra)) -#define s_tdefl_small_dist_sym ((__mzcore->s_tdefl_small_dist_sym)) -#define s_tdefl_small_dist_extra ((__mzcore->s_tdefl_small_dist_extra)) -#define s_tdefl_large_dist_sym ((__mzcore->s_tdefl_large_dist_sym)) -#define s_tdefl_large_dist_extra ((__mzcore->s_tdefl_large_dist_extra)) -#define s_tdefl_packed_code_size_syms_swizzle ((__mzcore->s_tdefl_packed_code_size_syms_swizzle)) -#define mz_bitmasks ((__mzcore->mz_bitmasks)) -#define s_tdefl_num_probes ((__mzcore->s_tdefl_num_probes)) - -#define tdefl_radix_sort_syms(num_syms,pSyms0,pSyms1) \ - ((__mzcore->tdefl_radix_sort_syms)((num_syms),(pSyms0),(pSyms1))) -#define tdefl_calculate_minimum_redundancy(A,n) \ - ((__mzcore->tdefl_calculate_minimum_redundancy)((A),(n))) -#define tdefl_huffman_enforce_max_code_size(pNum_codes,code_list_len,max_code_size) \ - ((__mzcore->tdefl_huffman_enforce_max_code_size)((pNum_codes),(code_list_len),(max_code_size))) -#define tdefl_optimize_huffman_table(d,table_num,table_len,code_size_limit,static_table) \ - ((__mzcore->tdefl_optimize_huffman_table)((d),(table_num),(table_len),(code_size_limit),(static_table))) -#define tdefl_start_dynamic_block(d) \ - ((__mzcore->tdefl_start_dynamic_block)((d))) -#define tdefl_start_static_block(d) \ - ((__mzcore->tdefl_start_static_block)((d))) -#define tdefl_compress_lz_codes(d) \ - ((__mzcore->tdefl_compress_lz_codes)((d))) -#define tdefl_compress_block(d,static_block) \ - ((__mzcore->tdefl_compress_block)((d),(static_block))) -#define tdefl_flush_block(d,flush) \ - ((__mzcore->tdefl_flush_block)((d),(flush))) -#define tdefl_find_match(d,lookahead_pos,max_dist,max_match_len,pMatch_dist,pMatch_len) \ - ((__mzcore->tdefl_find_match)((d),(lookahead_pos),(max_dist),(max_match_len),(pMatch_dist),(pMatch_len))) -#define tdefl_compress_fast(d) \ - ((__mzcore->tdefl_compress_fast)((d))) -#define tdefl_record_literal(d,lit) \ - ((__mzcore->tdefl_record_literal)((d),(lit))) -#define tdefl_record_match(d,match_len,match_dist) \ - ((__mzcore->tdefl_record_match)((d),(match_len),(match_dist))) -#define tdefl_compress_normal(d) \ - ((__mzcore->tdefl_compress_normal)((d))) -#define tdefl_flush_output_buffer(d) \ - ((__mzcore->tdefl_flush_output_buffer)((d))) -#define tdefl_output_buffer_putter(pBuf,len,pUser) \ - ((__mzcore->tdefl_output_buffer_putter)((pBuf),(len),(pUser))) - -#endif /* MZ_PRIVATE */ - -#endif /* CLIBMZI_H */ diff --git a/src/crent370/include/clibos.h b/src/crent370/include/clibos.h deleted file mode 100644 index d1483c9..0000000 --- a/src/crent370/include/clibos.h +++ /dev/null @@ -1,164 +0,0 @@ -#ifndef CLIBOS_H -#define CLIBOS_H -#include -#include - -typedef struct bldl BLDL; /* BLDL list */ -typedef struct de12 DE12; /* minimum dir entry */ -typedef struct de14 DE14; /* a little more dir entry info */ -typedef struct de76 DE76; /* dir entry with user data */ - -struct de12 { - char name[8]; /* name, space filled */ - char ttr[3]; /* ttr */ - char k; /* concatenation number */ -} __attribute__((packed)); - -struct de14 { - char name[8]; /* name, space filled */ - char ttr[3]; /* ttr */ - char k; /* concatenation number */ - char z; /* where found */ -#define DE_PRIVATE 0 /* ... private library */ -#define DE_LINK 1 /* ... link library */ -#define DE_JOB 2 /* ... job, task or step library*/ -/* > 2 job, step or library of parents task n, where n = z - 2 */ - char c; /* type, ttrn's and udata length*/ -#define DE_ALIAS 0x80 /* name is an alias */ -#define DE_TTRNS 0x60 /* ttrns, 0x20=1, 0x40=2, 0x60=3*/ -#define DE_UDATA 0x1F /* #udata in half words */ -} __attribute__((packed)); - -struct de76 { - char name[8]; /* name, space filled */ - char ttr[3]; /* ttr */ - char k; /* concatenation number */ - char z; /* where found */ - char c; /* type, ttrn's and udata length*/ - char udata[62]; /* user data */ -} __attribute__((packed)); - -struct bldl { - short ff; /* number of DEnn structs */ - short ll; /* length of each DEnn struct */ - union { - DE12 de12[1]; /* 12 byte dir entry */ - DE14 de14[1]; /* 14 byte dir entry */ - DE76 de76[1]; /* 76 byte dir entry */ - }; -} __attribute__((packed)); - -/* __bldl() search for member in dcb or default link libraries when dcb is NULL */ -int __bldl(BLDL *bldl, void *dcb); - -/* __cs() compare and swap in new_value to memory, returns old_value */ -unsigned __cs(void *mem, unsigned new_value); - -/* __uinc() unsigned increment of memory, returns old value, wraps new value to 0 if old value is max unsigned */ -unsigned __uinc(void *mem); - -/* __udec() unsigned decrement of memory, returns old value, wraps new value to max unsigned if old value is 0 */ -unsigned __udec(void *mem); - -/* __inc() signed increment of memory, returns old value, wraps new value to 0 if old value is max signed */ -int __inc(void *mem); - -/* __dec() signed decrement of memory, returns old value, wraps new value to max signed if old value is min signed */ -int __dec(void *mem); - -/* __ascb() get ASCB for ASID, or current ASCB if 0 */ -void *__ascb(unsigned asid); - -/* __xmpost() POST ECB with postcode in address space for ascb */ -void __xmpost(void *ascb, void *ecb, unsigned postcode); - -/* __super() set supervisor mode and set PSW key, must be APF auth first */ -/* returns error code if not APF authorized */ -int __super(unsigned char pswkey, unsigned char *savekey); -#define PSWKEY0 0x00 /* key 0 0000 .... */ -#define PSWKEY1 0x10 /* key 1 0001 .... */ -#define PSWKEY2 0x20 /* key 2 0010 .... */ -#define PSWKEY3 0x30 /* key 3 0011 .... */ -#define PSWKEY4 0x40 /* key 4 0100 .... */ -#define PSWKEY5 0x50 /* key 5 0101 .... */ -#define PSWKEY6 0x60 /* key 6 0110 .... */ -#define PSWKEY7 0x70 /* key 7 0111 .... */ -#define PSWKEY8 0x80 /* key 8 1000 .... */ -#define PSWKEY9 0x90 /* key 9 1001 .... */ -#define PSWKEY10 0xA0 /* key 10 1010 .... */ -#define PSWKEY11 0xB0 /* key 11 1011 .... */ -#define PSWKEY12 0xC0 /* key 12 1100 .... */ -#define PSWKEY13 0xD0 /* key 13 1101 .... */ -#define PSWKEY14 0xE0 /* key 14 1110 .... */ -#define PSWKEY15 0xF0 /* key 15 1111 .... */ -#define PSWKEYNONE 0xFF /* don't change PSW key */ - -/* __pswkey() get current PSW key, must be APF auth first */ -/* returns error code if not APF authorized */ -int __pswkey(unsigned char *savekey); - -/* __prob() set problem mode (non-supervisor) and set PSW key, must be APF auth first */ -/* returns error code if not APF authorized */ -int __prob(unsigned char pswkey, unsigned char *savekey); - -/* __isauth() returns true if APF authorized AC(1), false if not APF authorized */ -int __isauth(void); - -/* __issup() returns true if in supervisor mode, false if not in supervisor mode */ -int __issup(void); - -/* __call() call func with plist value as R1, returns func return code as int */ -int __call(void *func, void *plist); - -/* __sudo() - switch to super state, call function, return to previous state, return func return code as int */ -int __sudo(void *func, ...); -int super_do(void *func, ...) asm("@@SUDO"); - -/* __sukydo() - switch to super state, switch to pswkey, call function, return to previous key and state, return func return code as int */ -int __sukydo(unsigned char pswkey, void *func, ...); -int super_key_do(unsigned char pswkey, void *func, ...) asm("@@SUKYDO"); - -/* getmain() returns allocated storage of size in requested subpool or NULL */ -/* request with SP > 127 require the caller to be in supervisor state */ -void *getmain(unsigned size, unsigned sp); - -/* freemain() release storage allocated by getmain() function */ -int freemain(void *addr); - -/* __steplb() - returns DCB address or NULL for STEPLIB DD */ -void *__steplb(void) asm("@@STEPLB"); - -/* clib_apf_setup() - make this task and steplib APF authorized */ -int clib_apf_setup(const char *pgm) asm("@@APFSET"); - -/* clib_find_cde() - find CDE entry for program name */ -CDE *clib_find_cde(const char *name) asm("@@FNDCDE"); - -/* clib_auth_cde() - make CDE entry APF authorized AC(1) */ -int clib_auth_cde(CDE *cde) asm("@@AUTCDE"); - -/* clib_auth_name() - find CDE for program name and make APF authorized AC(1) */ -int clib_auth_name(const char *name) asm("@@AUTNAM"); - -/* clib_identify_cthread() - find CDE for CTHREAD program and make APF authorized AC(1) */ -int clib_identify_cthread(void) asm("@@IDECTH"); - -/* __load() - bring load module into storage returning the entry point or 0 for failure */ -/* also returns size and access code value if not NULL */ -/* dcb value can be NULL to search all possible locations, linklib, tasklib, steplib */ -void *__load(void *dcb, const char *module, unsigned *size, char *ac) asm("@@LOAD"); - -/* __delete() - remove module from storage, return 0 on success, 4 if not found */ -int __delete(const char *module); - -/* __loadhi() - load module into high memory (CSA subpool 241) */ -/* returns 0 on success, 4 if failure (wto messages may be issued) */ -/* notes: -** The load module is loaded and read from the STEPLIB dataset only. -** The caller must be APF authorized and key zero to use __loadhi(). -** If authorized but not in key zero use: -** super_key_do(PSWKEY0, __loadhi, module, &lpa, &epa, &size). -*/ -int __loadhi(const char *module, void **lpa, void **epa, unsigned *size) asm("@@LOADHI"); - -#endif /* !CLIBOS_H */ diff --git a/src/crent370/include/clibpdf.h b/src/crent370/include/clibpdf.h deleted file mode 100644 index 14dba98..0000000 --- a/src/crent370/include/clibpdf.h +++ /dev/null @@ -1,427 +0,0 @@ -#ifndef CLIBPDF_H -#define CLIBPDF_H - -typedef struct pdf_doc PDF; -typedef struct pdf_object PDFO; -typedef struct pdf_info PDFI; - -struct pdf_info { - char creator[64]; - char producer[64]; - char title[64]; - char author[64]; - char subject[64]; - char date[64]; -}; - -/** - * Convert a value in inches into a number of points. - * Always returns an integer value - */ -#define PDF_INCH_TO_POINT(inch) ((int)((inch)*72 + 0.5)) - -/** - * Convert a value in milli-meters into a number of points. - * Always returns an integer value - */ -#define PDF_MM_TO_POINT(mm) ((int)((mm)*72 / 25.4 + 0.5)) - -/** - * Point width of a standard US-Letter page - */ -#define PDF_LETTER_WIDTH PDF_INCH_TO_POINT(8.5) - -/** - * Point height of a standard US-Letter page - */ -#define PDF_LETTER_HEIGHT PDF_INCH_TO_POINT(11) - -/** - * Point width of a standard A4 page - */ -#define PDF_A4_WIDTH PDF_MM_TO_POINT(210) - -/** - * Point height of a standard A4 page - */ -#define PDF_A4_HEIGHT PDF_MM_TO_POINT(297) - -/** - * Point width of a standard A3 page - */ -#define PDF_A3_WIDTH PDF_MM_TO_POINT(297) - -/** - * Point height of a standard A3 page - */ -#define PDF_A3_HEIGHT PDF_MM_TO_POINT(420) - -/** - * Convert three 8-bit RGB values into a single packed 32-bit - * colour. These 32-bit colours are used by various functions - * in PDFGen - */ -#define PDF_RGB(r, g, b) \ - ((((r)&0xff) << 16) | (((g)&0xff) << 8) | (((b)&0xff))) - -/** - * Utility macro to provide bright red - */ -#define PDF_RED PDF_RGB(0xff, 0, 0) - -/** - * Utility macro to provide bright green - */ -#define PDF_GREEN PDF_RGB(0, 0xff, 0) - -/** - * Utility macro to provide bright blue - */ -#define PDF_BLUE PDF_RGB(0, 0, 0xff) - -/** - * Utility macro to provide black - */ -#define PDF_BLACK PDF_RGB(0, 0, 0) - -/** - * Utility macro to provide white - */ -#define PDF_WHITE PDF_RGB(0xff, 0xff, 0xff) - -/** - * Utility macro to provide a transparent colour - * This is used in some places for 'fill' colours, where no fill is required - */ -#define PDF_TRANSPARENT (0xff << 24) - -enum { - PDF_ALIGN_LEFT, - PDF_ALIGN_RIGHT, - PDF_ALIGN_CENTER, - PDF_ALIGN_JUSTIFY, -}; - -/** - * Create a new PDF object, with the given page - * width/height - * @param width Width of the page - * @param height Height of the page - * @param info Optional information to be put into the PDF header - * @return PDF document object, or NULL on failure - */ -PDF *pdf_create(int width, int height, PDFI *info) asm("PDFCRTE"); - -/** - * Destroy the pdf object, and all of its associated memory - */ -void pdf_destroy(PDF *pdf) asm("PDFDSTR"); - -/** - * Retrieve the error message if any operation fails - * @param pdf pdf document to retrieve error message from - * @param errval optional pointer to an integer to be set to the error code - * @return NULL if no error message, string description of error otherwise - */ -const char *pdf_get_err(PDF *pdf, int *errval) asm("PDFGERR"); - -/** - * Acknowledge an outstanding pdf error - * @param pdf pdf document to clear the error message from - */ -void pdf_clear_err(PDF *pdf) asm("PDFCERR"); - -/** - * Sets the font to use for text objects. Default value is Times-Roman if - * this function is not called - * Note: The font selection should be done before text is output, - * and will remain until pdf_set_font is called again - * @param pdf PDF document to update font on - * @param font New font to use. This must be one of the standard PDF fonts: - * Courier, Courier-Bold, Courier-BoldOblique, Courier-Oblique, - * Helvetica, Helvetica-Bold, Helvetica-BoldOblique, Helvetica-Oblique, - * Times-Roman, Times-Bold, Times-Italic, Times-BoldItalic, - * Symbol or ZapfDingbats - * @return < 0 on failure, 0 on success - */ -int pdf_set_font(PDF *pdf, const char *font) asm("PDFSFONT"); - -/** - * Returns the width of a given string in the current font - * @param pdf PDF document - * @param font_name Name of the font to get the width of. - * This must be one of the standard PDF fonts: - * Courier, Courier-Bold, Courier-BoldOblique, Courier-Oblique, - * Helvetica, Helvetica-Bold, Helvetica-BoldOblique, Helvetica-Oblique, - * Times-Roman, Times-Bold, Times-Italic, Times-BoldItalic, - * Symbol or ZapfDingbats - * @param text Text to determine width of - * @param size Size of the text, in points - * @return < 0 on failure, 0 on success - */ -int pdf_get_font_text_width(PDF *pdf, const char *font_name, - const char *text, int size) asm("PDFGFTW"); - -/** - * Retrieves a PDF document height - */ -int pdf_height(PDF *pdf) asm("PDFHGHT"); - -/** - * Retrieves a PDF document width - */ -int pdf_width(PDF *pdf) asm("PDFWIDTH"); - -/** - * Add a new page to the given pdf - * @return new page object - */ -PDFO *pdf_append_page(PDF *pdf) asm("PDFAPAGE"); - -/** - * Adjust the width/height of a specific page - * @param pdf PDF document that the page belongs to - * @param page object returned from @ref pdf_append_page - * @param width Width of the page in points - * @param height Height of the page in points - * @return < 0 on failure, 0 on success - */ -int pdf_page_set_size(PDF *pdf, PDFO *page, int width, int height) asm("PDFPGSS"); - -/** - * Save the given pdf document to the supplied filename - * If the filename is NULL, defaults to stdout - */ -int pdf_save(PDF *pdf, const char *filename) asm("PDFSAVE"); - -/** - * Save the given pdf document to the given FILE output - */ -int pdf_save_file(PDF *pdf, FILE *fp) asm("PDFSFILE"); - -/** - * Add a text string to the document - * @param pdf PDF document to add to - * @param page Page to add object to (NULL => most recently added page) - * @param text String to display - * @param size Point size of the font - * @param xoff X location to put it in - * @param yoff Y location to put it in - * @param colour Colour to draw the text - * @return 0 on success, < 0 on failure - */ -int pdf_add_text(PDF *pdf, PDFO *page, - const char *text, int size, int xoff, int yoff, - unsigned colour) asm("PDFATEXT"); - -/** - * Add a text string to the document, making it wrap if it is too - * long - * @param pdf PDF document to add to - * @param page Page to add object to (NULL => most recently added page) - * @param text String to display - * @param size Point size of the font - * @param xoff X location to put it in - * @param yoff Y location to put it in - * @param colour Colour to draw the text - * @param wrap_width Width at which to wrap the text - * @param align Text alignment (see PDF_ALIGN_xxx) - * @return height of drawn text on success, < 0 on failure - */ -int pdf_add_text_wrap(PDF *pdf, PDFO *page, - const char *text, int size, int xoff, int yoff, - unsigned colour, int wrap_width, int align) asm("PDFATXTW"); - -/** - * Add a line to the document - * @param pdf PDF document to add to - * @param page Page to add object to (NULL => most recently added page) - * @param x1 X offset of start of line - * @param y1 Y offset of start of line - * @param x2 X offset of end of line - * @param y2 Y offset of end of line - * @param width Width of the line - * @param colour Colour to draw the line - * @return 0 on success, < 0 on failure - */ -int pdf_add_line(PDF *pdf, PDFO *page, int x1, int y1, - int x2, int y2, int width, unsigned colour) asm("PDFALINE"); - -/** - * Add an ellipse to the document - * @param pdf PDF document to add to - * @param page Page to add object to (NULL => most recently added page) - * @param x X offset of the center of the ellipse - * @param y Y offset of the center of the ellipse - * @param xradius Radius of the ellipse in the X axis - * @param yradius Radius of the ellipse in the Y axis - * @param colour Colour to draw the ellipse outline stroke - * @param width Width of the ellipse outline stroke - * @param fill_colour Colour to fill the ellipse - * @return 0 on success, < 0 on failure - */ -int pdf_add_ellipse(PDF *pdf, PDFO *page, int x, - int y, int xradius, int yradius, int width, - unsigned colour, unsigned fill_colour) asm("PDFAELIP"); - -/** - * Add a circle to the document - * @param pdf PDF document to add to - * @param page Page to add object to (NULL => most recently added page) - * @param x X offset of the center of the circle - * @param y Y offset of the center of the circle - * @param radius Radius of the circle - * @param width Width of the circle outline stroke - * @param colour Colour to draw the circle outline stroke - * @param fill_colour Colour to fill the circle - * @return 0 on success, < 0 on failure - */ -int pdf_add_circle(PDF *pdf, PDFO *page, int x, int y, - int radius, int width, unsigned colour, - unsigned fill_colour) asm("PDFACRCL"); - -/** - * Add an outline rectangle to the document - * @param pdf PDF document to add to - * @param page Page to add object to (NULL => most recently added page) - * @param x X offset to start rectangle at - * @param y Y offset to start rectangle at - * @param width Width of rectangle - * @param height Height of rectangle - * @param border_width Width of rectangle border - * @param colour Colour to draw the rectangle - * @return 0 on succss, < 0 on failure - */ -int pdf_add_rectangle(PDF *pdf, PDFO *page, int x, - int y, int width, int height, int border_width, - unsigned colour) asm("PDFARECT"); - -/** - * Add a filled rectangle to the document - * @param pdf PDF document to add to - * @param page Page to add object to (NULL => most recently added page) - * @param x X offset to start rectangle at - * @param y Y offset to start rectangle at - * @param width Width of rectangle - * @param height Height of rectangle - * @param border_width Width of rectangle border - * @param colour Colour to draw the rectangle - * @return 0 on succss, < 0 on failure - */ -int pdf_add_filled_rectangle(PDF *pdf, PDFO *page, - int x, int y, int width, int height, - int border_width, unsigned colour) asm("PDFAFREC"); - -/** - * Add an outline polygon to the document - * @param pdf PDF document to add to - * @param page Page to add object to (NULL => most recently added page) - * @param x array of X offsets for points comprising the polygon - * @param y array of Y offsets for points comprising the polygon - * @param count Number of points comprising the polygon - * @param border_width Width of polygon border - * @param colour Colour to draw the polygon - * @return 0 on succss, < 0 on failure - */ -int pdf_add_polygon(PDF *pdf, PDFO *page, int x[], - int y[], int count, int border_width, unsigned colour) asm("PDFAPOLY"); - -/** - * Add a filled polygon to the document - * @param pdf PDF document to add to - * @param page Page to add object to (NULL => most recently added page) - * @param x array of X offsets of points comprising the polygon - * @param y array of Y offsets of points comprising the polygon - * @param count Number of points comprising the polygon - * @param border_width Width of polygon border - * @param colour Colour to draw the polygon - * @return 0 on succss, < 0 on failure - */ -int pdf_add_filled_polygon(PDF *pdf, PDFO *page, - int x[], int y[], int count, int border_width, - unsigned colour) asm("PDFAFPLY"); - -/** - * Add a bookmark to the document - * - * @param pdf PDF document to add bookmark to - * @param page Page to jump to for bookmark - (or NULL for the most recently added page) - * @param parent ID of a previosly created bookmark that is the parent - of this one. -1 if this should be a top-level bookmark. - * @param name String to associate with the bookmark - * @return < 0 on failure, new bookmark id on success - */ -int pdf_add_bookmark(PDF *pdf, PDFO *page, int parent, const char *name) asm("PDFABKMK"); - -/** - * List of different barcode encodings that are supported - */ -enum { - PDF_BARCODE_128A, - PDF_BARCODE_39, -}; - -/** - * Add a barcode to the document - * @param pdf PDF document to add bookmark to - * @param page Page to add barcode to (NULL => most recently added page) - * @param code Type of barcode to add (PDF_BARCODE_xxx) - * @param x X offset to put barcode at - * @param y Y offset to put barcode at - * @param width Width of barcode - * @param height Height of barcode - * @param string Barcode contents - * @param colour Colour to draw barcode - */ -int pdf_add_barcode(PDF *pdf, PDFO *page, int code, - int x, int y, int width, int height, const char *string, - unsigned colour) asm("PDFABARC"); - -/** - * Add a PPM file as an image to the document - * @param pdf PDF document to add bookmark to - * @param page Page to add PPM to (NULL => most recently added page) - * @param x X offset to put PPM at - * @param y Y offset to put PPM at - * @param display_width Displayed width of image - * @param display_height Displayed height of image - * @param ppm_file Filename of P6 (binary) ppm file to display - */ -int pdf_add_ppm(PDF *pdf, PDFO *page, int x, int y, - int display_width, int display_height, const char *ppm_file) asm("PDFAPPM"); - -/** - * Add a JPEG file as an image to the document - * @param pdf PDF document to add bookmark to - * @param page Page to add PPM to (NULL => most recently added page) - * @param x X offset to put JPEG at - * @param y Y offset to put JPEG at - * @param display_width Displayed width of image - * @param display_height Displayed height of image - * @param jpeg_file Filename of JPEG file to display - */ -int pdf_add_jpeg(PDF *pdf, PDFO *page, int x, int y, - int display_width, int display_height, - const char *jpeg_file) asm("PDFAJPEG"); - -/** - * Add a text string to the document - * @param pdf PDF document to add to - * @param page Page to add object to (NULL => most recently added page) - * @param text String to display - * @param size Point size of the font - * @param xoff X location to put it in - * @param yoff Y location to put it in - * @param colour Colour to draw the text - * @return 0 on success, < 0 on failure - */ -int pdf_put_text(PDF *pdf, PDFO *page, - const char *text, int size, int xoff, int yoff, - unsigned colour) asm("PDFPTEXT"); - -int pdf_set_compression(PDF *pdf, int on) asm("PDFSCOMP"); - -int pdf_set_debug(PDF *pdf, int on) asm("PDFSDBG"); - -#endif diff --git a/src/crent370/include/clibpdfi.h b/src/crent370/include/clibpdfi.h deleted file mode 100644 index 63fe292..0000000 --- a/src/crent370/include/clibpdfi.h +++ /dev/null @@ -1,287 +0,0 @@ -#ifndef CLIBPDFI_H -#define CLIBPDFI_H -/* Borrowed from the PDFGEN project (public domain license) */ - -/** - * PDF HINTS & TIPS - * The following sites have various bits & pieces about PDF document - * generation - * http://www.mactech.com/articles/mactech/Vol.15/15.09/PDFIntro/index.html - * http://gnupdf.org/Introduction_to_PDF - * http://www.planetpdf.com/mainpage.asp?WebPageID=63 - * http://archive.vector.org.uk/art10008970 - * http://www.adobe.com/devnet/acrobat/pdfs/pdf_reference_1-7.pdf - * https://blog.idrsolutions.com/2013/01/understanding-the-pdf-file-format-overview/ - * - * To validate the PDF output, there are several online validators: - * http://www.validatepdfa.com/online.htm - * http://www.datalogics.com/products/callas/callaspdfA-onlinedemo.asp - * http://www.pdf-tools.com/pdf/validate-pdfa-online.aspx - * - * In addition the 'pdftk' server can be used to analyse the output: - * https://www.pdflabs.com/docs/pdftk-cli-examples/ - * - * PDF page markup operators: - * b closepath, fill,and stroke path. - * B fill and stroke path. - * b* closepath, eofill,and stroke path. - * B* eofill and stroke path. - * BI begin image. - * BMC begin marked content. - * BT begin text object. - * BX begin section allowing undefined operators. - * c curveto. - * cm concat. Concatenates the matrix to the current transform. - * cs setcolorspace for fill. - * CS setcolorspace for stroke. - * d setdash. - * Do execute the named XObject. - * DP mark a place in the content stream, with a dictionary. - * EI end image. - * EMC end marked content. - * ET end text object. - * EX end section that allows undefined operators. - * f fill path. - * f* eofill Even/odd fill path. - * g setgray (fill). - * G setgray (stroke). - * gs set parameters in the extended graphics state. - * h closepath. - * i setflat. - * ID begin image data. - * j setlinejoin. - * J setlinecap. - * k setcmykcolor (fill). - * K setcmykcolor (stroke). - * l lineto. - * m moveto. - * M setmiterlimit. - * n end path without fill or stroke. - * q save graphics state. - * Q restore graphics state. - * re rectangle. - * rg setrgbcolor (fill). - * RG setrgbcolor (stroke). - * s closepath and stroke path. - * S stroke path. - * sc setcolor (fill). - * SC setcolor (stroke). - * sh shfill (shaded fill). - * Tc set character spacing. - * Td move text current point. - * TD move text current point and set leading. - * Tf set font name and size. - * Tj show text. - * TJ show text, allowing individual character positioning. - * TL set leading. - * Tm set text matrix. - * Tr set text rendering mode. - * Ts set super/subscripting text rise. - * Tw set word spacing. - * Tz set horizontal scaling. - * T* move to start of next line. - * v curveto. - * w setlinewidth. - * W clip. - * y curveto. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include /* PDF public interfaces and prototypes */ -#include /* dynamic array */ -#include /* has struct timeval, go figure! */ - -#define PDF_ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0])) - -#define PDF_RGB_R(c) ((((c) >> 16) & 0xff) / 255.0) -#define PDF_RGB_G(c) ((((c) >> 8) & 0xff) / 255.0) -#define PDF_RGB_B(c) ((((c) >> 0) & 0xff) / 255.0) -#define PDF_IS_TRANSPARENT(c) (((c) >> 24) == 0xff) - -#ifndef M_SQRT2 -#define M_SQRT2 1.41421356237309504880f -#endif - -#define INIT_DSTR {0,0,0,{0}} - -enum { - OBJ_none, /* 0 skipped */ - OBJ_info, /* 1 */ - OBJ_stream, /* 2 */ - OBJ_font, /* 3 */ - OBJ_page, /* 4 */ - OBJ_bookmark, /* 5 */ - OBJ_outline, /* 6 */ - OBJ_catalog, /* 7 */ - OBJ_pages, /* 8 */ - OBJ_image, /* 9 */ - OBJ_text, /* 10 experimental, text stream */ - - OBJ_count, /* 11 */ -}; - -/** - * Simple dynamic string object. Tries to store a reasonable amount on the - * stack before falling back to malloc once things get large - */ -typedef struct dstr DSTR; -struct dstr { - int alloc_len; /* 00 data allocated bytes */ - int used_len; /* 04 used bytes (data or static_data) */ - char *data; /* 08 allocated data buffer */ - char static_data[64];/* 0C static data buffer */ -}; /* 4C (76 bytes) */ - -typedef struct bkmk BKMK; -struct bkmk { - char name[64]; /* 00 bookmark name */ - int page; /* 40 page object index */ - int parent; /* 44 parent object index */ - int *children; /* 48 array of children object index's */ -}; /* 4C (76 bytes) */ - -typedef struct page PAGE; -struct page { - int width; /* 00 page width */ - int height; /* 04 page height */ - int *children; /* 08 array of children object index's */ - int current_text; /* 0C current text object */ -}; /* 10 (16 bytes) */ - -typedef struct font FONT; -struct font { - char name[64]; /* 00 font name */ - int index; /* 40 font index */ -}; /* 44 (68 bytes) */ - -typedef struct text TEXT; -struct text { - int xoff; /* 00 X offset */ - int yoff; /* 04 Y offset */ - int font; /* 08 font index (not font object index) */ - int fontsize; /* 0C font size */ - double spacing; /* 10 character spacing */ - unsigned colour; /* 18 text color (RBG value) */ - DSTR stream; /* 1C dynamic string */ -}; /* 68 (104 bytes) */ - -struct pdf_object { - char eye[4]; /* 00 eye catcher */ -#define PDF_OBJECT_EYE "PDFO" /* ... eye catcher */ - int type; /* 04 See OBJ_xxxx */ - int index; /* 08 PDF output index (object number) */ - int offset; /* 0C Byte position within the output file */ - int prev; /* 10 Previous of this type index */ - int next; /* 14 Next of this type index */ - union { /* 18 anonymous union */ - PDFI *info; /* 18 document info (4 bytes) */ - PAGE page; /* 18 page (16 bytes) */ - FONT font; /* 18 font (68 bytes) */ - BKMK bookmark; /* 18 bookmark (76 bytes) */ - DSTR stream; /* 18 stream (76 bytes) */ - TEXT *text; /* 18 text stream (4 bytes) */ - }; /* 18 anonymous union */ -}; /* 64 (100 bytes) */ - -struct pdf_doc { - char errstr[128]; /* 00 error string */ - int errval; /* 80 error number */ - PDFO **objects; /* 84 array of PDF objects */ - - int width; /* 88 this is the default page width in points */ - int height; /* 8C this is the default page height in points */ - - int current_font; /* 90 current font object index */ - int current_index; /* 94 next object index in pdf_append_object() */ - char flags; /* 98 internal processing flags */ -#define PDF_DEBUG 0x80 /* ... enable debug output (wto messages) */ -#define PDF_COMPRESS 0x40 /* ... enable stream compression */ - char unused1[3]; /* 99 */ - int unused2; /* 9C */ - - PDFO *last_objects[OBJ_count]; /* A0 last object ptr by type code */ - PDFO *first_objects[OBJ_count]; /* CC first object ptr by type code */ -}; /* F8 (248 bytes) */ - -struct pdf_private { - char * (*dstr_data)(DSTR *str); - int (*dstr_len)(DSTR *str); - int (*dstr_ensure)(DSTR *str, int len); - int (*dstr_printf)(DSTR *str, const char *fmt, ...); - int (*dstr_append_data)(DSTR *str, const void *extend, int len); - int (*dstr_append)(DSTR *str, const char *extend, int len); - void (*dstr_free)(DSTR *str); - char * (*pdfetoa)(char *buf, int len); - int (*pdf_set_err)(PDF *doc, int errval, const char *fmt, ...); - PDFO * (*pdf_get_object)(PDF *pdf, int index); - int (*pdf_append_object)(PDF *pdf, PDFO *obj); - PDFO * (*pdf_add_object)(PDF *pdf, int type); - void (*pdf_object_destroy)(PDFO *object); - PDFO * (*pdf_find_first_object)(PDF *pdf, int type); - PDFO * (*pdf_find_last_object)(PDF *pdf, int type); - int (*pdf_fprintf)(FILE *stream, const char *format, ...); - int (*pdf_add_stream)(PDF *pdf, PDFO *page, const char *buffer); - int (*pdf_add_text_spacing)(PDF *pdf, PDFO *page, - const char *text, int size, int xoff, - int yoff, unsigned colour, double spacing); - int (*pdf_text_pixel_width)(const char *text, int text_len, int size, - const unsigned short *widths); - const unsigned short * (*find_font_widths)(const char *font_name); - PDFO * (*pdf_add_raw_rgb24)(PDF *pdf, unsigned char *data, int width, int height); - int (*pdf_add_image)(PDF *pdf, PDFO *page, PDFO *image, int x, int y, int width, int height); - char * (*pdfatoe)(char *buf, int len); - char * (*pdf_stck)(char stck[8]); - double * (*pdf_secs)(double *secs); - int (*pdf_put_text_first)(PDF *pdf, PDFO *page, const char *text, int size, - int xoff, int yoff, unsigned colour, double spacing); - int (*pdf_put_text_spacing)(PDF *pdf, PDFO *page, const char *text, int size, - int xoff, int yoff, unsigned colour, double spacing); -}; - -#ifdef PDF_PRIVATE -extern struct pdf_private *pdfx; -#define dstr_data(str) ((pdfx->dstr_data)((str))) -#define dstr_len(str) ((pdfx->dstr_len)((str))) -#define dstr_ensure(str,len) ((pdfx->dstr_ensure)((str),(len))) -#define dstr_printf(str,fmt,...) ((pdfx->dstr_printf)((str),(fmt),## __VA_ARGS__)) -#define dstr_append_data(str,extend,len) \ - ((pdfx->dstr_append_data)((str),(extend),(len))) -#define dstr_append(str,extend,len) ((pdfx->dstr_append)((str),(extend),(len))) -#define dstr_free(str) ((pdfx->dstr_free)((str))) -#define pdfetoa(buf,len) ((pdfx->pdfetoa)((buf),(len))) -#define pdf_set_err(doc,errval,fmt,...) ((pdfx->pdf_set_err)((doc),(errval),(fmt),## __VA_ARGS__)) -#define pdf_get_object(pdf,index) ((pdfx->pdf_get_object)((pdf),(index))) -#define pdf_append_object(pdf,obj) ((pdfx->pdf_append_object)((pdf),(obj))) -#define pdf_add_object(pdf,type) ((pdfx->pdf_add_object)((pdf),(type))) -#define pdf_object_destroy(object) ((pdfx->pdf_object_destroy)((object))) -#define pdf_find_first_object(pdf,type) ((pdfx->pdf_find_first_object)((pdf),(type))) -#define pdf_find_last_object(pdf,type) ((pdfx->pdf_find_last_object)((pdf),(type))) -#define pdf_fprintf(fp,fmt, ...) ((pdfx->pdf_fprintf)((fp),(fmt),## __VA_ARGS__)) -#define pdf_add_stream(pdf,page,buffer) ((pdfx->pdf_add_stream)((pdf),(page),(buffer))) -#define pdf_add_text_spacing(pdf,page,text,size,xoff,yoff,colour,spacing) \ - ((pdfx->pdf_add_text_spacing)((pdf),(page),(text),(size),(xoff),(yoff),(colour),(spacing))) -#define pdf_text_pixel_width(text,text_len,size,widths) \ - ((pdfx->pdf_text_pixel_width)((text),(text_len),(size),(widths))) -#define find_font_widths(font) ((pdfx->find_font_widths)((font))) -#define pdf_add_raw_rgb24(pdf,data,width,height) \ - ((pdfx->pdf_add_raw_rgb24)((pdf),(data),(width),(height))) -#define pdf_add_image(pdf,page,image,x,y,width,height) \ - ((pdfx->pdf_add_image)((pdf),(page),(image),(x),(y),(width),(height))) -#define pdfatoe(buf,len) ((pdfx->pdfatoe)((buf),(len))) -#define pdf_stck(stck) ((pdfx->pdf_stck)((stck))) -#define pdf_secs(secs) ((pdfx->pdf_secs)((secs))) -#define pdf_put_text_first(pdf,page,text,size,xoff,yoff,colour,spacing) \ - ((pdfx->pdf_put_text_first)((pdf),(page),(text),(size),(xoff),(yoff),(colour),(spacing))) -#define pdf_put_text_spacing(pdf,page,text,size,xoff,yoff,colour,spacing) \ - ((pdfx->pdf_put_text_spacing)((pdf),(page),(text),(size),(xoff),(yoff),(colour),(spacing))) -#endif - -#endif diff --git a/src/crent370/include/clibppa.h b/src/crent370/include/clibppa.h deleted file mode 100644 index d0e57ce..0000000 --- a/src/crent370/include/clibppa.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef CLIBPPA_H -#define CLIBPPA_H - -#include "clibcrt.h" -#include "clibgrt.h" - -typedef struct clibppa CLIBPPA; - -struct clibppa { - char ppaeye[4]; /* 00 Eye Catcher */ -#define PPAEYE "@PPA" /* ... */ - void *ppaprev; /* 04 Previous Save Area */ - void *ppanext; /* 08 Next Save Area */ - CLIBCRT **ppacrt; /* 0C C Runtime Library Anchor (Task) */ - CLIBGRT *ppagrt; /* 10 C Runtime Global Anchor (AS) */ - void *ppasave; /* 14 saved "next" from TCBFSA */ - void *ppatiot; /* 18 TIOT address */ - void *ppapscb; /* 1C PSCB address */ - char ppaflag; /* 20 Processing flag(s) */ -#define PPAFLAG_TSOFG 0x80 /* ... TSO environment */ -#define PPAFLAG_TSOBG 0x40 /* ... TSO background environment */ -#define PPAFLAG_TIN 0x08 /* ... STDIN is terminal */ -#define PPAFLAG_TOUT 0x04 /* ... STDOUT is terminal */ -#define PPAFLAG_TERR 0x02 /* ... STDERR is terminal */ - char ppasubpl; /* 21 save area subpool number */ - char unused[2]; /* 22 unused/available */ - unsigned ppastkln; /* 24 stack area length */ - void *ppaexita; /* 28 EXITA entry point address */ - void *ppacppl; /* 2C TSO CPPL */ -}; /* 30 (48 bbytes) */ - -CLIBPPA * __PPAGET(void); -CLIBPPA * __ppaget(void); - -#endif diff --git a/src/crent370/include/clibprtf.h b/src/crent370/include/clibprtf.h deleted file mode 100644 index 2603ea5..0000000 --- a/src/crent370/include/clibprtf.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef CLIBPRTF_H -#define CLIBPRTF_H - -extern int printf_(const char* format, ...); - -extern int sprintf_(char* buffer, const char* format, ...); - -extern int snprintf_(char* buffer, size_t count, const char* format, ...) asm("SNPRTF@"); - -extern int vsprintf_(char* buffer, const char* format, va_list va) asm("VSPRTF@"); - -extern int vsnprintf_(char* buffer, size_t count, const char* format, va_list va) asm("VSNPRTF@"); - -extern int fctprintf_(void (*out)(char character, void* arg), void* arg, const char* format, ...) asm("FCTPRTF@"); - - -#endif diff --git a/src/crent370/include/clibprti.h b/src/crent370/include/clibprti.h deleted file mode 100644 index 76ed2e1..0000000 --- a/src/crent370/include/clibprti.h +++ /dev/null @@ -1,149 +0,0 @@ -#ifndef CLIBPRTI_H -#define CLIBPRTI_H -/* -/////////////////////////////////////////////////////////////////////////////// -// \author (c) Marco Paland (info@paland.com) -// 2014-2018, PALANDesign Hannover, Germany -// -// \license The MIT License (MIT) -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// -// \brief Tiny printf, sprintf and (v)snprintf implementation, optimized for speed on -// embedded systems with a very limited resources. These routines are thread -// safe and reentrant! -// Use this instead of the bloated standard/newlib printf cause these use -// malloc for printf (and may not be thread safe). -// -/////////////////////////////////////////////////////////////////////////////// -*/ - -#include -#include -#include "clibprtf.h" /* CLIB public printf() functions */ - -/* 'ntoa' conversion buffer size, this must be big enough to hold one converted -// numeric number including padded zeros (dynamically created on stack) -// default: 32 byte -*/ -#ifndef PRINTF_NTOA_BUFFER_SIZE -#define PRINTF_NTOA_BUFFER_SIZE 32U -#endif - -/* 'ftoa' conversion buffer size, this must be big enough to hold one converted -// float number including padded zeros (dynamically created on stack) -// default: 32 byte -*/ -#ifndef PRINTF_FTOA_BUFFER_SIZE -#define PRINTF_FTOA_BUFFER_SIZE 32U -#endif - -/* support for the floating point type (%f) -// default: activated -*/ -#ifndef PRINTF_DISABLE_SUPPORT_FLOAT -#define PRINTF_SUPPORT_FLOAT -#endif - -/* support for the long long types (%llu or %p) -// default: activated -*/ -#define PRINTF_DISABLE_SUPPORT_LONG_LONG -#ifndef PRINTF_DISABLE_SUPPORT_LONG_LONG -#define PRINTF_SUPPORT_LONG_LONG -#endif - -/* support for the ptrdiff_t type (%t) -// ptrdiff_t is normally defined in as long or long long type -// default: activated -*/ -#define PRINTF_DISABLE_SUPPORT_PTRDIFF_T -#ifndef PRINTF_DISABLE_SUPPORT_PTRDIFF_T -#define PRINTF_SUPPORT_PTRDIFF_T -#endif - -/* internal flag definitions */ -#define FLAGS_ZEROPAD (1U << 0U) -#define FLAGS_LEFT (1U << 1U) -#define FLAGS_PLUS (1U << 2U) -#define FLAGS_SPACE (1U << 3U) -#define FLAGS_HASH (1U << 4U) -#define FLAGS_UPPERCASE (1U << 5U) -#define FLAGS_CHAR (1U << 6U) -#define FLAGS_SHORT (1U << 7U) -#define FLAGS_LONG (1U << 8U) -#define FLAGS_LONG_LONG (1U << 9U) -#define FLAGS_PRECISION (1U << 10U) -#define FLAGS_ZEROFILL (1U << 11U) - -/* output function type */ -typedef void (*out_fct_type)(char character, void* buffer, size_t idx, size_t maxlen); - -#ifndef bool -#define bool int -#define true 1 -#define false 0 -#endif - -/* wrapper (used as buffer) for output function type */ -typedef struct { - void (*fct)(char character, void* arg); - void* arg; -} out_fct_wrap_type; - -struct printf_private { - void (*_out_buffer)(char character, void* buffer, size_t idx, size_t maxlen); - void (*_out_null)(char character, void* buffer, size_t idx, size_t maxlen); - void (*_out_char)(char character, void* buffer, size_t idx, size_t maxlen); - void (*_out_fct)(char character, void* buffer, size_t idx, size_t maxlen); - unsigned int (*_strlen)(const char* str); - bool (*_is_digit)(char ch); - unsigned int (*_atoi)(const char** str); - size_t (*_ntoa_format)(out_fct_type out, char* buffer, size_t idx, size_t maxlen, - char* buf, size_t len, bool negative, unsigned int base, - unsigned int prec, unsigned int width, unsigned int flags); - size_t (*_ntoa_long)(out_fct_type out, char* buffer, size_t idx, size_t maxlen, - unsigned long value, bool negative, unsigned long base, - unsigned int prec, unsigned int width, unsigned int flags); - size_t (*_ntoa_long_long)(out_fct_type out, char* buffer, size_t idx, size_t maxlen, - unsigned long long value, bool negative, unsigned long long base, - unsigned int prec, unsigned int width, unsigned int flags); - size_t (*_ftoa)(out_fct_type out, char* buffer, size_t idx, size_t maxlen, - double value, unsigned int prec, unsigned int width, unsigned int flags); - int (*_vsnprintf)(out_fct_type out, char* buffer, const size_t maxlen, const char* format, - va_list va); -}; - -#ifdef PRINTF_PRIVATE -extern struct printf_private *__prtfx; -#define _out_buffer (__prtfx->_out_buffer) -#define _out_null (__prtfx->_out_null) -#define _out_char (__prtfx->_out_char) -#define _out_fct (__prtfx->_out_fct) -#define _strlen (__prtfx->_strlen) -#define _is_digit(ch) (__prtfx->_is_digit) -#define _atoi (__prtfx->_atoi) -#define _ntoa_format (__prtfx->_ntoa_format) -#define _ntoa_long (__prtfx->_ntoa_long) -#define _ntoa_long_long (__prtfx->_ntoa_long_long) -#define _ftoa (__prtfx->_ftoa) -#define _vsnprintf (__prtfx->_vsnprintf) -#endif /* PRINTF_PRIVATE */ - -#endif diff --git a/src/crent370/include/clibres.h b/src/crent370/include/clibres.h deleted file mode 100644 index f6dcb67..0000000 --- a/src/crent370/include/clibres.h +++ /dev/null @@ -1,528 +0,0 @@ -#ifndef CLIBRES_H -#define CLIBRES_H - -#include -#include -#include - -#include -#include -#include - -/* -** C library resident structs and prototypes -** -*/ -typedef struct res RES; -typedef struct resdisp RESDISP; -typedef struct resfunc RESFUNC; - -struct res { - char prolog[8]; /* 00 dispatcher prolog */ - void *disp; /* 08 dispatcher function address */ - char svcstub[4]; /* 0C SVC nnn invoke SVC */ - /* ... BR R14 return to caller*/ -#define RES_SVCSTUB "\x0A\x00\x07\xFE" /* ... initialization code */ - char eye[8]; /* 10 eye catcher */ -#define RES_EYE "**RES**" /* ... eye catcher */ - void *funclp; /* 18 function array load point */ - RESFUNC *func; /* 1C array of resident functions */ - unsigned funcs; /* 20 number of resident functions */ - void *afunclp; /* 24 app function load point */ - RESFUNC *afunc; /* 28 array of application functions*/ - unsigned afuncs; /* 2C number of application function*/ - void *ressvc; /* 30 resident supervisor call */ - unsigned ressvctype; /* 34 resident supervisor type */ - void *oldsvc; /* 38 old SVC address */ - unsigned oldsvctype; /* 3C old SVC type */ - void *ssvt; /* 40 associated subsystem */ - unsigned unused[3]; /* 44 unused */ - void *appl1; /* 50 for use by application */ - void *appl2; /* 54 for use by application */ - void *appl3; /* 58 for use by application */ - void *appl4; /* 5C for use by application */ -}; /* 60 (96 bytes) */ - -struct resdisp { - char eye[8]; /* 00 eye catcher */ -#define RESDISP_EYE "*RESDISP" /* ... eye catcher */ - RES *res; /* 08 resident handle */ - RESFUNC *resfunc; /* 0C function handle */ - unsigned char caller_sup; /* 10 caller in supervisor state */ - unsigned char caller_key; /* 11 caller PSW key */ - unsigned char disp_sup; /* 12 dispatched in supervisor state*/ - unsigned char disp_key; /* 13 dispatched in PSW key */ - unsigned unused1; /* 14 unused */ - unsigned unused2; /* 18 unused */ - unsigned unused3; /* 1C unused */ -}; /* 20 (32 bytes) */ - -struct resfunc { - unsigned char flags; /* 00 resident function flags */ -#define RESSUP 0x80 /* ... switch to supervisor state */ -#define RESPROB 0x40 /* ... switch to problem state */ -#define RESKEY0 0x20 /* ... switch to PSW key 0 */ -#define RESKEYU 0x10 /* ... switch to user key */ -#define RESSTACK 0x08 /* ... allocate a new stack frame */ - unsigned char stack_size_k; /* 01 new stack size Kbytes */ - unsigned short fn; /* 02 function number */ - void *func; /* 04 function address */ -}; - -/* resident function numbers (0x00-0xFF) */ -#define RES_GETMAIN 0x00 /* resident GETMAIN */ -#define RESFUNC_GETMAIN { 0, 0, RES_GETMAIN, res_getmain } - -#define RES_FREEMAIN 0x01 /* resident FREEMAIN */ -#define RESFUNC_FREEMAIN { 0, 0, RES_FREEMAIN, res_freemain } - -#define RES_WTO 0x02 /* resident WTO */ -#define RESFUNC_WTO { 0, 0, RES_WTO, res_wto } - -#define RES_WTOF 0x03 /* resident WTOF */ -#define RESFUNC_WTOF { 0, 0, RES_WTOF, res_wtof } - -#define RES_VWTOF 0x04 /* resident VWTOF */ -#define RESFUNC_VWTOF { 0, 0, RES_VWTOF, res_vwtof } - -#define RES_VSNPRINTF 0x05 /* resident VSNPRINTF */ -#define RESFUNC_VSNPRINTF { 0, 0, RES_VSNPRINTF, res_vsnprintf } - -#define RES_SNPRINTF 0x06 /* resident SNPRINTF */ -#define RESFUNC_SNPRINTF { 0, 0, RES_SNPRINTF, res_snprintf } - -#define RES_WTODUMP 0x07 /* resident WTODUMP */ -#define RESFUNC_WTODUMP { 0, 0, RES_WTODUMP, res_wtodump } - -#define RES_GETSTACK 0x08 /* resident GETSTACK */ -#define RESFUNC_GETSTACK { RESPROB | RESKEYU, 0, RES_GETSTACK, res_getstack } - -#define RES_FREESTACK 0x09 /* resident FREESTACK */ -#define RESFUNC_FREESTACK { RESPROB | RESKEYU, 0, RES_FREESTACK, res_freestack } - -#define RES_STEP_LOCK 0x0A /* resident STEP_LOCK */ -#define RESFUNC_STEP_LOCK { 0, 0, RES_STEP_LOCK, res_step_lock } - -#define RES_STEP_UNLOCK 0x0B /* resident STEP_UNLOCK */ -#define RESFUNC_STEP_UNLOCK { 0, 0, RES_STEP_UNLOCK, res_step_unlock } - -#define RES_SYSTEM_LOCK 0x0C /* resident SYSTEM_LOCK */ -#define RESFUNC_SYSTEM_LOCK { RESSUP | RESKEY0, 0, RES_SYSTEM_LOCK, res_system_lock } - -#define RES_SYSTEM_UNLOCK 0x0D /* resident SYSTEM_UNLOCK */ -#define RESFUNC_SYSTEM_UNLOCK { RESSUP | RESKEY0, 0, RES_SYSTEM_UNLOCK, res_system_unlock } - -/* application function numbers (0x100-0x1FF) */ - - -static __inline int res_request_sup(RES *res) -{ - int rc; - - __asm__ __volatile__("\n*** SVCMAIN_SUP REQUEST ***"); - __asm__ __volatile__( - "SLR\tR0,R0 R0 parm\n\t" - "LR\tR1,%2 request code\n\t" - "BALR\tR14,%1 call SVC stub\n\t" - "LR\t%0,R15 save return code" - : "=r"(rc) : "r"(res->svcstub), "r"(SVCMAIN_SUP) : "0", "1", "14", "15"); - - /* rc==0 caller was in problem state before call - ** rc!=0 caller was already in supervisor state before call - */ - return rc; -} - -static __inline int res_request_prob(RES *res) -{ - int rc; - - __asm__ __volatile__("\n*** SVCMAIN_PROB REQUEST ***"); - __asm__ __volatile__( - "SLR\tR0,R0 R0 parm\n\t" - "LR\tR1,%2 request code\n\t" - "BALR\tR14,%1 call SVC stub\n\t" - "LR\t%0,R15 save return code" - : "=r"(rc) : "r"(res->svcstub), "r"(SVCMAIN_PROB) : "0", "1", "14", "15"); - - /* rc==0 caller was in supervisor state before call - ** rc!=0 caller was already in problem state before call - */ - return rc; -} - -static __inline int res_request_key(RES *res, unsigned char pswkey) -{ - int rc; - - __asm__ __volatile__("\n*** SVCMAIN_KEY REQUEST ***"); - __asm__ __volatile__( - "LR\tR15,%3 new pswkey\n\t" - "SLR\tR0,R0 R0 parm\n\t" - "LR\tR1,%2 request code\n\t" - "BALR\tR14,%1 call SVC stub\n\t" - "LR\t%0,R15 save old psw key" - : "=r"(rc) : "r"(res->svcstub), "r"(SVCMAIN_KEY), "r"(pswkey) : "0", "1", "14", "15"); - - /* rc==previous psw key */ - return rc; -} - -static __inline int res_request_authon(RES *res) -{ - int rc; - - __asm__ __volatile__("\n*** SVCMAIN_AUTHON REQUEST ***"); - __asm__ __volatile__( - "SLR\tR0,R0 R0 parm\n\t" - "LR\tR1,%2 request code\n\t" - "BALR\tR14,%1 call SVC stub\n\t" - "LR\t%0,R15 save return code" - : "=r"(rc) : "r"(res->svcstub), "r"(SVCMAIN_AUTHON) : "0", "1", "14", "15"); - - /* rc==0 caller was not authorized before call - ** rc!=0 caller was already authorized before call - */ - return rc; -} - -static __inline int res_request_authoff(RES *res) -{ - int rc; - - __asm__ __volatile__("\n*** SVCMAIN_AUTHOFF REQUEST ***"); - __asm__ __volatile__( - "SLR\tR0,R0 R0 parm\n\t" - "LR\tR1,%2 request code\n\t" - "BALR\tR14,%1 call SVC stub\n\t" - "LR\t%0,R15 save return code" - : "=r"(rc) : "r"(res->svcstub), "r"(SVCMAIN_AUTHOFF) : "0", "1", "14", "15"); - - /* rc==0 caller was authorized before call - ** rc!=0 caller was not authorized before call - */ - return rc; -} - -static __inline int res_request_state(void) -{ - int rc; - - __asm__ __volatile__("\n*** ARE WE IN SUPERVISOR STATE ***"); - __asm__ __volatile__( - "TESTAUTH FCTN=0,STATE=YES,KEY=NO,RBLEVEL=1,BRANCH=NO\n\t" - "LR\t%0,R15 R15==0 is supervisor state" : "=r"(rc) : : "0", "1", "14", "15"); - - return rc; /* rc==0 in supervisor state, rc!=0 in problem state */ -} - -static __inline int res_request_issup(void) -{ - /* res_request_state() == 0 is supervisor, otherwise problem state */ - return !res_request_state(); -} - -static __inline int res_request_isprob(void) -{ - return res_request_state(); -} - -static __inline void *res_request_getmain(RES *res, unsigned size, unsigned sp) -{ - __asm__ __volatile__("\n*** REQUEST GETMAIN ***"); - int rc; - void *stg = 0; - __volatile__ struct { - unsigned fn; - unsigned size; - unsigned sp; - void **stg; - } plist = { RES_GETMAIN, size, sp, &stg }; - - __asm__ __volatile__( - "LR\tR15,%1 => resident address\n\t" - "LA\tR1,%2 => parameter list\n\t" - "BALR\tR14,R15 call dispatcher\n\t" - "LR\t%0,R15 save return code" - : "=r"(rc) : "r"(res), "m"(plist) : "0", "1", "14", "15"); - - if (rc!=0) return 0; - return (void*)*(plist.stg); -} - -static __inline int res_request_freemain(RES *res, void *stg) -{ - __asm__ __volatile__("\n*** REQUEST FREEMAIN ***"); - int rc; - __volatile__ struct { - unsigned fn; - void *stg; - } plist = { RES_FREEMAIN, stg }; - - __asm__ __volatile__( - "LR\tR15,%1 => resident address\n\t" - "LA\tR1,%2 => parameter list\n\t" - "BALR\tR14,R15 call dispatcher\n\t" - "LR\t%0,R15 save return code" - : "=r"(rc) : "r"(res), "m"(plist) : "0", "1", "14", "15"); - - return rc; -} - -static __inline int res_request_wto(RES *res, const char *buf) -{ - __asm__ __volatile__("\n*** REQUEST WTO ***"); - __volatile__ struct { - unsigned fn; - const char *buf; - } plist = { RES_WTO, buf }; - - __asm__ __volatile__( - "LR\tR15,%1 => resident address\n\t" - "LA\tR1,%2 => parameter list\n\t" - "BALR\tR14,R15 call dispatcher\n\t" - : : "r"(res), "m"(plist) : "0", "1", "14", "15"); - - return 0; -} - -static __inline int res_request_wtof(RES *res, const char *buf, ...) -{ - __asm__ __volatile__("\n*** REQUEST VWTOF for WTOF ***"); - __volatile__ struct { - unsigned fn; - const char *buf; - va_list tlist; - } plist = { RES_VWTOF, buf }; - - va_start(plist.tlist, buf); - - __asm__ __volatile__( - "LR\tR15,%1 => resident address\n\t" - "LA\tR1,%2 => parameter list\n\t" - "BALR\tR14,R15 call dispatcher\n\t" - : : "r"(res), "m"(plist) : "0", "1", "14", "15"); - - va_end(plist.tlist); - - return 0; -} - -static __inline int res_request_vsnprintf(RES *res, char *s, int n, const char *fmt, va_list arg) -{ - __asm__ __volatile__("\n*** REQUEST VSNPRINTF ***"); - int rc; - __volatile__ struct { - unsigned fn; - char *s; - int n; - const char *fmt; - va_list arg; - } plist = { RES_VSNPRINTF, s, n, fmt, arg }; - - __asm__ __volatile__( - "LR\tR15,%1 => resident address\n\t" - "LA\tR1,%2 => parameter list\n\t" - "BALR\tR14,R15 call dispatcher\n\t" - "LR\t%0,R15 save return code" - : "=r"(rc) : "r"(res), "m"(plist) : "0", "1", "14", "15"); - - return rc; -} - -static __inline int res_request_snprintf(RES *res, char *s, int n, const char *fmt, ...) -{ - __asm__ __volatile__("\n*** REQUEST VSNPRINTF for SNPRINTF ***"); - int rc; - __volatile__ struct { - unsigned fn; - char *s; - int n; - const char *fmt; - va_list arg; - } plist = { RES_VSNPRINTF, s, n, fmt }; - - va_start(plist.arg, fmt); - - __asm__ __volatile__( - "LR\tR15,%1 => resident address\n\t" - "LA\tR1,%2 => parameter list\n\t" - "BALR\tR14,R15 call dispatcher\n\t" - "LR\t%0,R15 save return code" - : "=r"(rc) : "r"(res), "m"(plist) : "0", "1", "14", "15"); - - va_end(plist.arg); - - return rc; -} - -static __inline int res_request_wtodump(RES *res, const char *title, void *varea, int size, int chunk) -{ - __asm__ __volatile__("\n*** REQUEST WTODUMP ***"); - __volatile__ struct { - unsigned fn; - const char *title; - void *varea; - int size; - int chunk; - } plist = { RES_WTODUMP, title, varea, size, chunk }; - - __asm__ __volatile__( - "LR\tR15,%1 => resident address\n\t" - "LA\tR1,%2 => parameter list\n\t" - "BALR\tR14,R15 call dispatcher\n\t" - : : "r"(res), "m"(plist) : "0", "1", "14", "15"); - - return 0; -} - -static __inline int res_request_wtodumpf(RES *res, void *buf, int len, const char *fmt, ...) -{ - __asm__ __volatile__("\n*** REQUEST WTODUMP for WTODUMPF ***"); - va_list list; - char title[80]; - __volatile__ struct { - unsigned fn; - const char *title; - void *varea; - int size; - int chunk; - } plist = { RES_WTODUMP, title, buf, len, 16 }; - - va_start(list, fmt); - res_request_vsnprintf(res ,title, sizeof(title), fmt, list); - va_end(list); - - title[sizeof(title)-1] = 0; - - __asm__ __volatile__( - "LR\tR15,%1 => resident address\n\t" - "LA\tR1,%2 => parameter list\n\t" - "BALR\tR14,R15 call dispatcher\n\t" - : : "r"(res), "m"(plist) : "0", "1", "14", "15"); - - return 0; -} - -static __inline void *res_request_getstack(RES *res, unsigned size) -{ - __asm__ __volatile__("\n*** REQUEST GETSTACK ***"); - int rc; - void *stg = 0; - __volatile__ struct { - unsigned fn; - unsigned size; - void **stg; - } plist = { RES_GETSTACK, size, &stg }; - - __asm__ __volatile__( - "LR\tR15,%1 => resident address\n\t" - "LA\tR1,%2 => parameter list\n\t" - "BALR\tR14,R15 call dispatcher\n\t" - "LR\t%0,R15 save return code" - : "=r"(rc) : "r"(res), "m"(plist) : "0", "1", "14", "15"); - - if (rc!=0) return 0; - return (void*)*(plist.stg); -} - -static __inline int res_request_freestack(RES *res, void *stg) -{ - __asm__ __volatile__("\n*** REQUEST FREESTACK ***"); - int rc; - __volatile__ struct { - unsigned fn; - void *stg; - } plist = { RES_FREESTACK, stg }; - - __asm__ __volatile__( - "LR\tR15,%1 => resident address\n\t" - "LA\tR1,%2 => parameter list\n\t" - "BALR\tR14,R15 call dispatcher\n\t" - "LR\t%0,R15 save return code" - : "=r"(rc) : "r"(res), "m"(plist) : "0", "1", "14", "15"); - - return rc; -} - -static __inline int res_request_step_lock(RES *res, void *stg, int read) -{ - __asm__ __volatile__("\n*** REQUEST STEP LOCK ***"); - int rc; - __volatile__ struct { - unsigned fn; - void *stg; - int read; - } plist = { RES_STEP_LOCK, stg, read }; - - __asm__ __volatile__( - "LR\tR15,%1 => resident address\n\t" - "LA\tR1,%2 => parameter list\n\t" - "BALR\tR14,R15 call dispatcher\n\t" - "LR\t%0,R15 save return code" - : "=r"(rc) : "r"(res), "m"(plist) : "0", "1", "14", "15"); - - return rc; -} - -static __inline int res_request_step_unlock(RES *res, void *stg, int read) -{ - __asm__ __volatile__("\n*** REQUEST STEP UNLOCK ***"); - int rc; - __volatile__ struct { - unsigned fn; - void *stg; - int read; - } plist = { RES_STEP_UNLOCK, stg, read }; - - __asm__ __volatile__( - "LR\tR15,%1 => resident address\n\t" - "LA\tR1,%2 => parameter list\n\t" - "BALR\tR14,R15 call dispatcher\n\t" - "LR\t%0,R15 save return code" - : "=r"(rc) : "r"(res), "m"(plist) : "0", "1", "14", "15"); - - return rc; -} - -static __inline int res_request_system_lock(RES *res, void *stg, int read) -{ - __asm__ __volatile__("\n*** REQUEST SYSTEM LOCK ***"); - int rc; - __volatile__ struct { - unsigned fn; - void *stg; - int read; - } plist = { RES_SYSTEM_LOCK, stg, read }; - - __asm__ __volatile__( - "LR\tR15,%1 => resident address\n\t" - "LA\tR1,%2 => parameter list\n\t" - "BALR\tR14,R15 call dispatcher\n\t" - "LR\t%0,R15 save return code" - : "=r"(rc) : "r"(res), "m"(plist) : "0", "1", "14", "15"); - - return rc; -} - -static __inline int res_request_system_unlock(RES *res, void *stg, int read) -{ - __asm__ __volatile__("\n*** REQUEST SYSTEM UNLOCK ***"); - int rc; - __volatile__ struct { - unsigned fn; - void *stg; - int read; - } plist = { RES_SYSTEM_UNLOCK, stg, read }; - - __asm__ __volatile__( - "LR\tR15,%1 => resident address\n\t" - "LA\tR1,%2 => parameter list\n\t" - "BALR\tR14,R15 call dispatcher\n\t" - "LR\t%0,R15 save return code" - : "=r"(rc) : "r"(res), "m"(plist) : "0", "1", "14", "15"); - - return rc; -} - -#endif /* CLIBRES_H */ diff --git a/src/crent370/include/clibsa.h b/src/crent370/include/clibsa.h deleted file mode 100644 index 0a5634f..0000000 --- a/src/crent370/include/clibsa.h +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef SA_H -#define SA_H - -#include - -typedef struct savearea SAVEAREA; -struct savearea { - unsigned sa0; /* 00 */ - unsigned prev; /* 04 */ - unsigned next; /* 08 */ - unsigned r14; /* 0C (12) */ - unsigned r15; /* 10 (16) */ - unsigned r0; /* 14 (20) */ - unsigned r1; /* 18 (24) */ - unsigned r2; /* 1C (28) */ - unsigned r3; /* 20 (32) */ - unsigned r4; /* 24 (36) */ - unsigned r5; /* 28 (40) */ - unsigned r6; /* 2C (44) */ - unsigned r7; /* 30 (48) */ - unsigned r8; /* 34 (52) */ - unsigned r9; /* 38 (56) */ - unsigned r10; /* 3C (60) */ - unsigned r11; /* 40 (64) */ - unsigned r12; /* 44 (68) */ - unsigned lws; /* 48 (72) PL/I language work space */ - unsigned nab; /* 4C (76) C next available byte */ -}; /* 50 (80 bytes) */ - -static __inline SAVEAREA *sa_get(void) -{ - SAVEAREA *sa; - - __asm__("ST 13,%0 return save area address" : "=m"(sa)); - - return sa; -} - -static __inline SAVEAREA *sa_prev(SAVEAREA *sa) -{ - if (!sa) sa = sa_get(); - return (SAVEAREA*) sa->prev; -} - -static __inline SAVEAREA *sa_next(SAVEAREA *sa) -{ - if (!sa) sa = sa_get(); - return (SAVEAREA*) sa->next; -} - -static __inline void sa_get_epname(SAVEAREA *sa, char *epname) -{ - void *ep = (void*) sa->r15; - char *p = (char*) ep; - - epname[0] = 0; - - if (p[0]==0x47 && p[1]==0xF0) { - p += 4; - - memcpy(epname, p+1, *p); - epname[*p] = 0; - } - else { - sprintf(epname, "%08X (unknown)", ep); - } -} - -#endif /* SA_H */ diff --git a/src/crent370/include/clibsdwa.h b/src/crent370/include/clibsdwa.h deleted file mode 100644 index 86ebf28..0000000 --- a/src/crent370/include/clibsdwa.h +++ /dev/null @@ -1,603 +0,0 @@ -#ifndef CLIBSDWA_H -#define CLIBSDWA_H - -typedef struct sdwa SDWA; - -#pragma pack(1) - -struct sdwa { - void *SDWAPARM; /* PARAMETER LIST ADDRESS IF (E)STA MACRO - SPECIFIED PARAM OPTION OR 0. FOR FRRS THIS - IS THE ADDRESS OF THE 6 WORD PARM AREA - RETURNED BY THE SETFRR MACRO WHEN THE - PARMAD KEYWORD IS SPECIFIED ON THE SETFRR */ - -/* unsigned SDWAFIOB; ADDRESS OF PURGE I/O REQUEST LIST (PIRL) - OR 0 IF HALT I/O IS REQUESTED ON ENTRY TO - RETRY ROUTINE FOR (E)STA. */ -/* char SDWAABCC; ABEND COMPLETION CODE ON ENTRY TO EXIT - ROUTINE. */ - char SDWACMPF; /* FLAG BITS IN COMPLETION CODE. */ -#define SDWAREQ 0x80 /* ... DUMP TO BE GIVEN. SET IF DUMP REQUESTED - BY ABEND, CALLRTM OR SETRP MACRO. */ -#define SDWASTEP 0x40 /* ... JOBSTEP TO BE TERMINATED. - SET IF STEP OPTION SPECIFIED - ON ABEND MACRO. */ -#define SDWASTCC 0x10 /* ... DON'T STORE COMPLETION CODE. - NOT USED IN OS/VS2 R2. */ - char SDWACMPC[3]; /* SYSTEM COMPLETION CODE (FIRST 12 BITS) AND - USER COMPLETION CODE (SECOND 12 BITS). */ - -/* SDWACTL1 DS 0CL8 - BC MODE PSW AT TIME OF ERROR - * NOT INITIALIZED FOR FRRS. */ - char SDWACMKA; /* CHANNEL INTERRUPT MASKS. */ -#define SDWAIOA 0xFE /* ... I/O INTERRUPTS (ALL ZEROS OR ALL ONES)*/ -#define SDWAEXTA 0x01 /* ... EXTERNAL INTERRUPT. */ - - char SDWAMWPA; /* PSW KEY AND 'M-W-P'. */ -#define SDWAKEYA 0xF0 /* ... PSW KEY. */ -#define SDWAMCKA 0x04 /* ... MACHINE CHECK INTERRUPT. */ -#define SDWAWATA 0x02 /* ... WAIT STATE. */ -#define SDWASPVA 0x01 /* ... SUPERVISOR/PROBLEM-PROGRAM MODE. */ - - char SDWAINTA[2]; /* INTERRUPT CODE (LAST 2 BYTES OF INTERRUPT - CODE IF I/O INTERRUPT). */ - - char SDWAPMKA; /* INSTRUCTION LENGTH CODE, CONDITION CODE, - AND PROGRAM MASKS. */ -#define SDWAILA 0xC0 /* ... INSTRUCTION LENGTH CODE. */ -#define SDWACCA 0x30 /* ... LAST CONDITION CODE. */ -#define SDWAFPA 0x08 /* ... FIXED-POINT OVERFLOW. */ -#define SDWADOA 0x04 /* ... DECIMAL OVERFLOW. */ -#define SDWAEUA 0x02 /* ... EXPONENT UNDERFLOW. */ -#define SDWASGA 0x01 /* ... SIGNIFICANCE. */ - - char SDWANXTA[3]; /* ADDRESS OF NEXT INSTRUCTION TO BE EXECUTED*/ - -/* SDWACTL2 DS 0CL8 - BC MODE PSW FROM LAST PRB ON RB CHAIN. - * ZERO FOR FRRS. */ - char SDWACMKP; /* CHANNEL INTERRUPT MASKS. */ -#define SDWAIOP 0xFE /* ... I/O INTERRUPTS (ALL ZEROS OR ALL ONES)*/ -#define SDWAEXTP 0x01 /* ... EXTERNAL INTERRUPT. */ - - char SDWAMWPP; /* PSW KEY AND 'M-W-P'. */ -#define SDWAKEYP 0xF0 /* ... PSW KEY. */ -#define SDWAMCKP 0x04 /* ... MACHINE CHECK INTERRUPT. */ -#define SDWAWATP 0x02 /* ... WAIT STATE. */ -#define SDWASPVP 0x01 /* ... SUPERVISOR/PROBLEM-PROGRAM MODE. */ - - char SDWAINTP[2]; /* INTERRUPT CODE (LAST 2 BYTES OF INTERRUPT - CODE IF I/O INTERRUPT). */ - - char SDWAPMKP; /* INSTRUCTION LENGTH CODE, CONDITION CODE, - AND PROGRAM MASKS. */ -#define SDWAILP 0xC0 /* ... INSTRUCTION LENGTH CODE. */ -#define SDWACCP 0x30 /* ... LAST CONDITION CODE. */ -#define SDWAFPP 0x08 /* ... FIXED-POINT OVERFLOW. */ -#define SDWADOP 0x04 /* ... DECIMAL OVERFLOW. */ -#define SDWAEUP 0x02 /* ... EXPONENT UNDERFLOW. */ -#define SDWASGP 0x01 /* ... SIGNIFICANCE. */ - - char SDWANXTP[3]; /* ADDRESS OF NEXT INSTRUCTION TO BE EXECUTED*/ - -/* SDWAGRSV DS 0CL64 - GENERAL PURPOSE REGISTERS AT TIME OF ERROR */ - unsigned SDWAGR00; /* GPR 0. */ - unsigned SDWAGR01; /* GPR 1. */ - unsigned SDWAGR02; /* GPR 2. */ - unsigned SDWAGR03; /* GPR 3. */ - unsigned SDWAGR04; /* GPR 4. */ - unsigned SDWAGR05; /* GPR 5. */ - unsigned SDWAGR06; /* GPR 6. */ - unsigned SDWAGR07; /* GPR 7. */ - unsigned SDWAGR08; /* GPR 8. */ - unsigned SDWAGR09; /* GPR 9. */ - unsigned SDWAGR10; /* GPR 10. */ - unsigned SDWAGR11; /* GPR 11. */ - unsigned SDWAGR12; /* GPR 12. */ - unsigned SDWAGR13; /* GPR 13. */ - unsigned SDWAGR14; /* GPR 14. */ - unsigned SDWAGR15; /* GPR 15. */ - - char SDWANAME[8]; /* IF PROBLEM PROGRAM MODE NAME - OF ABENDING PROGRAM, OR ZERO - IF NO NAME IS AVAILABLE. - ZERO IF NOT RUNNING UNDER AN RB */ -/* SDWARBAD DS A - RB ADDRESS OF ABENDING PROGRAM (IF SUPERVISOR - * MODE PROGRAM RUNNING UNDER AN RB) - DS XL4 - CONTAINS ZEROS IF SUPERVISOR MODE PROGRAM - * RUNNING UNDER AN RB OR IF PROGRAM NOT - * RUNNING UNDER AN RB */ - - unsigned SDWAEPA; /* ENTRY POINT ADDRESS OF ABENDING PROGRAM. - ZERO IF NOT RUNNING UNDER AN RB */ - - unsigned SDWAIOBR; /* POINTER TO SDWAFIOB FIELD, - OR 0 IF NO RETRY, OR 0 IF HALT I/O - IS REQUESTED FOR (E)STA EXITS. - ZERO FOR FRRS */ - -/* SDWAEC1 DS 0CL8 EXTENDED CONTROL PSW AT TIME OF ERROR(ABEND) */ - char SDWAEMK1; /* INTERRUPT INFORMATION MASKS */ -#define SDWAPER1 0x40 /* ... ON,PROGRAM EVENT RECORDING - INTERRUPTS CAN OCCUR - OFF, PROGRAM EVENT RECORDING - INTERRUPTS CANNOT OCCUR */ -#define SDWATRM1 0x04 /* ... ON,ADDRESS TRANSLATION ACTIVE */ -#define SDWAIO1 0x02 /* ... OFF,I/0 INTERRUPTION CAN NOT OCCUR - ON,I/0 INTERRUPTIONS CAN OCCUR SUBJECT - TO CHANNEL MASK BITS IN CONTROL - REGS 2 AND 3 */ -#define SDWAEXT1 0x01 /* ... OFF,EXTERNAL INTERRUPTION CANNOT OCCUR - ON,EXTERNAL INTERRUPTIONS CAN OCCUR - SUBJECT TO EXTERNAL SUBCLASS MASK BITS - OF CONTROL REG 0 */ - - char SDWAMWP1; /* PSW KEY AND 'M-W-P' */ -#define SDWAKEY1 0xF0 /* ... PSW KEY */ -#define SDWAECT1 0x08 /* ... EXTENDED CONTROL MODE BIT */ -#define SDWAMCK1 0x04 /* ... OFF,MACHINE CHECK CANNOT OCCUR - ON,MACHINE CHECK DUE TO SYSTEM DAMAGE AND - INSTRUCTION-PROCESSING DAMAGE CAN OCCUR - OTHER MACHINE CHECKS SUBJECT TO MASK BITS - IN CONTROL REGISTER 14 */ -#define SDWAWAT1 0x02 /* ... ON,CPU IN WAIT STATE */ -#define SDWAPGM1 0x01 /* ... ON,PROBLEM STATE - OFF, SUPERVISOR STATE */ - - char SDWAINT1; /* CONDITION CODE AND PROGRAM MASK */ -#define SDWACC1 0x30 /* ... CONDITION CODE */ -#define SDWAFPO1 0x08 /* ... FIXED POINT OVERFLOW */ -#define SDWADEC1 0x04 /* ... DECIMAL OVERFLOW */ -#define SDWAEXP1 0x02 /* ... EXPONENT UNDERFLOW */ -#define SDWASGN1 0x01 /* ... SIGNIFICANCE */ - - char _1; /* RESERVED */ - - unsigned SDWANXT1; /* ADDRESS OF NEXT INSTRUCTION TO BE EXECUTED*/ - -/* SDWAAEC1 DS 0CL8 ADDITIONAL EC MODE INFORMATION */ - char _2; /* RESERVED */ - - char SDWAILC1; /* INSTRUCTION LENGTH CODE FOR PSW DEFINED - BY SDWAEC1 */ -#define SDWAIL1 0x06 /* ... ILC */ - -/* SDWAINC1 DS 0CL2 INTERRUPT CODE. IF PROGRAM CHECK OCCURRED - * THE SUBFIELDS ARE FURTHER DIVIDED */ - char _3; /* RESERVED FOR IMPRECISE INTERRUPTS - ON PROGRAM CHECK INTERRUPT */ - char SDWAICD1; /* 8 BIT INTERRUPT CODE IF PROGRAM CHECK */ -#define SDWAIPR1 0x80 /* ... PER INTERRUPT OCCURRED */ -#define SDWAIMC1 0x40 /* ... MONITOR CALL INTERRUPT OCCURRED */ -#define SDWAIPC1 0x3F /* ... AN UNSOLICITED PROGRAM CHECK - HAS OCCURRED */ - - unsigned SDWATRAN; /* VIRTUAL ADDRESS CAUSING TRANSLATION - EXCEPTION */ - -/* SDWAEC2 DS 0CL8 EXTENDED CONTROL PSW FROM THE RB - * LEVEL WHICH CREATED THE - * ESTAE EXIT AT THE TIME IT LAST - * INCURRED AN INTERRUPT OR 0 FOR ESTAI. - * OR PSW USED TO GIVE FRR CONTROL */ - char SDWAEMK2; /* INTERRUPT INFORMATION MASKS */ -#define SDWAPER2 0x40 /* ... ON,PROGRAM EVENT RECORDING - INTERRUPTS CAN OCCUR - OFF,PROGRAM EVENT RECORDING - INTERRUPTS CANNOT OCCUR */ -#define SDWATRM2 0x04 /* ... ON,ADDRESS TRANSLATION ACTIVE */ -#define SDWAIO2 0x02 /* ... OFF,I/0 INTERRUPTION CANNOT OCCUR - ON,I/0 INTERRUPTIONS CAN OCCUR SUBJECT TO - TO CHANNEL MASK BITS IN CONTROL - REGS 2 AND 3 */ -#define SDWAEXT2 0x01 /* ... OFF,EXTERNAL INTERRUPTION CANNOT OCCUR - ON,EXTERNAL INTERRUPTIONS CAN OCCUR - SUBJECT TO EXTERNAL SUBCLASS MASK BITS - OF CONTROL REG 0 */ - - char SDWAMWP2; /* PSW KEY AND 'M-W-P' */ -#define SDWAKEY2 0xF0 /* ... PSW KEY */ -#define SDWAECT2 0x08 /* ... EXTENDED CONTROL MODE BIT */ -#define SDWAMCK2 0x04 /* ... OFF,MACHINE CHECK CANNOT OCCUR - ON,MACHINE CHECK DUE TO SYSTEM DAMAGE AND - INSTRUCTION-PROCESSING DAMAGE CAN OCCUR - OTHER MACHINE CHECKS SUBJECT TO MASK BITS - IN CONTROL REGISTER 14 */ -#define SDWAWAT2 0x02 /* ... ON,CPU IN WAIT STATE */ -#define SDWAPGM2 0x01 /* ... ON,PROBLEM STATE - OFF, SUPERVISOR STATE */ - - char SDWAINT2; /* CONDITION CODE AND PROGRAM MASK */ -#define SDWACC2 0x30 /* ... CONDITION CODE */ -#define SDWAFPO2 0x08 /* ... FIXED POINT OVERFLOW */ -#define SDWADEC2 0x04 /* ... DECIMAL OVERFLOW */ -#define SDWAEXP2 0x02 /* ... EXPONENT UNDERFLOW */ -#define SDWASGN2 0x01 /* ... SIGNIFICANCE */ - - char _4; /* RESERVED */ - - unsigned SDWANXT2; /* ADDRESS OF NEXT INSTRUCTION TO BE EXECUTED*/ - -/* SDWAAEC2 DS 0CL8 ADDITIONAL EC MODE INFORMATION */ - char _5; /* RESERVED */ - - char SDWAILC2; /* INSTRUCTION LENGTH CODE FOR PSW DEFINED - BY SDWAEC2 */ -#define SDWAIL2 0x06 /* ILC */ - -/* SDWAINC2 DS 0CL2 INTERRUPT CODE. IF PROGRAM CHECK OCCURRED - * THE SUBFIELDS ARE FURTHER DIVIDED */ - char _6; /* RESERVED FOR IMPRECISE INTERRUPTS - ON PROGRAM CHECK INTERRUPT */ - - char SDWAICD2; /* 8 BIT INTERRUPT CODE IF PROGRAM CHECK */ -#define SDWAIPR2 0x80 /* ... PER INTERRUPT OCCURRED */ -#define SDWAIMC2 0x40 /* ... MONITOR CALL INTERRRUPT OCCURRED */ -#define SDWAIPC2 0x3F /* ... AN UNSOLICITED PROGRAM CHECK OCCURRED */ - - unsigned SDWATRN2; /* VIRTUAL ADDRESS CAUSING TRANSLATION - EXCEPTION */ -/* SDWASRSV DS 0CL64 GENERAL PURPOSE REGISTERS OF THE RB LEVEL - * WHICH CREATED THE ESTAE EXIT AT THE TIME - * IT LAST INCURRED AN INTERRUPT OR 0 FOR ESTAI - * FOR FRRS INITIALIZED TO REGISTERS - * AT TIME OF ERROR. - * THIS REGISTER AREA IS USED TO - * UPDATE REGISTER CONTENTS FOR RETRY IF REQUESTED */ - unsigned SDWASR00; /* GPR 0. */ - unsigned SDWASR01; /* GPR 1. */ - unsigned SDWASR02; /* GPR 2. */ - unsigned SDWASR03; /* GPR 3. */ - unsigned SDWASR04; /* GPR 4. */ - unsigned SDWASR05; /* GPR 5. */ - unsigned SDWASR06; /* GPR 6. */ - unsigned SDWASR07; /* GPR 7. */ - unsigned SDWASR08; /* GPR 8. */ - unsigned SDWASR09; /* GPR 9. */ - unsigned SDWASR10; /* GPR 10. */ - unsigned SDWASR11; /* GPR 11. */ - unsigned SDWASR12; /* GPR 12. */ - unsigned SDWASR13; /* GPR 13. */ - unsigned SDWASR14; /* GPR 14. */ - unsigned SDWASR15; /* GPR 15. */ - -/* SDWAIDNT DS 0CL4 SDWA IDENTIFICATION ATTRIBUTES */ - char SDWASPID; /* SUBPOOL ID OF STORAGE CONTAINING THIS SDWA*/ - char SDWALNTH[3]; /* LENGTH OF THIS SDWA IN BYTES */ - -/* SDWAMCH DS 0CL28 CONTAINS MACHINE CHECK DATA IF SDWAMCHK IS ON */ -/* SDWASTCK DS 0CL8 BEGINNING AND ENDING STORAGE CHECK ADDRESSES. - * FILLED IN DUE TO STORAGE ERROR (SDWASCK) - * OR A KEY FAILURE (SDWASKYF). - * THESE ADDRESSES ARE VALID ONLY IF - * INDICATED BY THE SDWASRVL FLAG. */ - unsigned SDWASCKB; /* BEGINNING VIRTUAL ADDRESS OF STORAGE CHECK*/ - unsigned SDWASCKE; /* ENDING VIRTUAL ADDRESS OF STORAGE CHECK */ - -/* SDWAMCHI DS 0BL2 ADDITIONAL MCH INFORMATION FLAGS */ - char SDWAMCHS; /* MCH FLAG BYTE */ -#define SDWASRVL 0x80 /* ... ON,STORAGE ADDRESSES SUPPLIED - (SDWASTCK, SDWARFSA) ARE VALID. */ -#define SDWARCDF 0x40 /* ... ON,MACHINE CHECK RECORD NOT RECORDED */ -#define SDWATSVL 0x20 /* ... ON,TIME STAMP IS VALID */ -#define SDWAINVP 0x10 /* ... ON,STORAGE IS RECONFIGURED, - PAGE IS INVALIDATED */ -#define SDWARSRC 0x08 /* ... ON,STORAGE RECONFIGURATION - (SDWARSR1,SDWARSR2) STATUS AVAILABLE. */ -#define SDWARSRF 0x04 /* ... ON,STORAGE RECONFIGURATION NOT ATTEMPTED. - (SDWARSR1 AND SDWARSR2 ARE INVALID) */ - - char SDWAMCHD; /* INPUT INFORMATION TO RECOVERY ROUTINE - CONCERNING A MACHINE CHECK ERROR */ -#define SDWASKYF 0x80 /* ... ON,STORAGE KEY FAILURE */ -#define SDWAREGU 0x40 /* ... ON,GENERAL PURPOSE REGISTER CONTENTS AT - TIME OF MACHINE CHECK UNPREDICTABLE */ -#define SDWAPSWU 0x20 /* ... ON,PSW AND/OR CONTROL REGISTERS AT TIME - OF MACHINE CHECK UNPREDICTABLE */ -#define SDWASCK 0x10 /* ... ON,INDICATES STORAGE DATA CHECK */ -#define SDWAACR 0x08 /* ... ON,INDICATES ACR REQUEST */ -#define SDWAINSF 0x04 /* ... ON,INSTRUCTION FAILURE */ -#define SDWAFPRX 0x02 /* ... ON,CONTENTS OF FLOATING POINT REGISTERS - AT TIME MACHINE CHECK ARE UNPREDICTABLE*/ -#define SDWATERR 0x01 /* ... ON,TIMER ERROR - CAUSES ENTRY TO - RECOVERY ROUTINES ONLY IF LOGOUT - FAILED. */ - - char SDWACPID[2]; /* ID OF OF FAILING CPU CAUSING ACR */ - - char SDWARSR1; /* ADDITIONAL STORAGE FRAME ERROR INDICATORS - AS RETURNED FROM REAL STORAGE - RECONFIGURATION. */ -#define SDWAMSER 0x02 /* ... STORAGE ERROR ALREADY SET IN FRAME. */ -#define SDWACHNG 0x01 /* ... CHANGE INDICATOR WAS ON IN FRAME. */ - - char SDWARSR2; /* ADDITIONAL STORAGE ERROR INDICATORS. */ -#define SDWAOFLN 0x80 /* ... FRAME OFFLINE OR SCHEDULED TO GO OFFLINE - IF SDWAINTC IS ON */ -#define SDWAINTC 0x40 /* ... INTERCEPT - THE FRAME IS SCHEDULED TO GO OFFLINE, - OR - THE FRAME HAS INCURRED A STORAGE ERROR, - OR IS V=R */ -#define SDWASPER 0x20 /* ... STORAGE ERROR PERMANENT ON FRAME. */ -#define SDWANUCL 0x10 /* ... FRAME CONTAINS PERMANENT RESIDENT - STORAGE, I.E. NUCLEUS. */ -#define SDWAFSQA 0x08 /* ... FRAME IN SQA */ -#define SDWAFLSQ 0x04 /* ... FRAME IN LSQA */ -#define SDWAPGFX 0x02 /* ... FRAME IS PAGE FIXED */ -#define SDWAVEQR 0x01 /* ... FRAME IS VIRTUAL = REAL,OR SCHEDULED - FOR VIRTUAL = REAL IF SDWAINTC IS ON */ - - char _7[2]; /* RESERVED */ - - unsigned SDWARFSA; /* REAL STORAGE FAILING ADDRESS - ( VALID ONLY IF INDICATED BY SDWASRVL ) */ - - unsigned SDWATIME[2]; /* TIME STAMP OF ASSOCIATED MACHINE CHECK - RECORD */ - -/* SDWAFLGS DS 0BL4 INPUT FLAGS DESCRIBING REASONS AND CONDITIONS - * FOR ENTERING A RECOVERY EXIT ROUTINE. */ - char SDWAERRA; /* ERROR TYPE CAUSING ENTRY TO RECOVERY EXIT */ -#define SDWAMCHK 0x80 /* ... ON INDICATES MACHINE CHECK */ -#define SDWAPCHK 0x40 /* ... ON INDICATES PROGRAM CHECK */ -#define SDWARKEY 0x20 /* ... ON INDICATES CONSOLE RESTART KEY WAS - DEPRESSED */ -#define SDWASVCD 0x10 /* ... ON INDICATES TASK ISSUED SVC 13 */ -#define SDWAABTM 0x08 /* ... ON INDICATES SYSTEM FORCED SVC 13 - (I.E.ABTERM) */ -#define SDWASVCE 0x04 /* ... ON,INDICATES AN SVC WAS ISSUED BY - A LOCKED OR SRB ROUTINE */ -#define SDWATEXC 0x02 /* ... ON,INDICATES AN UNRECOVERABLE - TRANSLATION FAILURE */ -#define SDWAPGIO 0x01 /* ... ON,INDICATES A PAGE I/O ERROR */ - - char SDWAERRB; /* ADDITIONAL ERROR ENTRY INFORMATION */ -#define SDWATYP1 0x08 /* ... ON TYPE 1 SVC IN CONTROL AT TIME OF - ERROR */ -#define SDWAENRB 0x04 /* ... ON ENABLED RB IN CONTROL AT TIME OF - ERROR */ -#define SDWALDIS 0x02 /* ... ON A LOGICALLY OR PHYSICALLY DISABLED - ROUTINE WAS IN CONTROL AT THE TIME OF - ERROR. */ -#define SDWASRBM 0x01 /* ... ON SYSTEM IN SRB MODE AT TIME OF ERROR*/ - - char SDWAERRC; /* ADDITIONAL ERROR ENTRY INFORMATION */ -#define SDWASTAF 0x80 /* ... ON INDICATES A PREVIOUS (E)STA OR FRR - EXIT FAILED. */ -#define SDWASTAI 0x40 /* ... ON A (E)STAI EXIT PREVIOUSLY RECEIVED - CONTROL */ -#define SDWAIRB 0x20 /* ... ON AN IRB PRECEDED THE RB THAT IS - ASSOCIATED WITH THIS EXIT */ -#define SDWAPERC 0x10 /* ... ON THIS RECOVERY ROUTINE IS BEING - PERCOLATED TO */ -#define SDWAEAS 0x08 /* ... ON INDICATES A LOWER LEVEL EXIT HAS - RECOGNIZED AN ERROR AND PROVIDED - SERVICEABILITY INFORMATION */ - - char SDWAERRD; /* ADDITIONAL ERROR ENTRY INFORMATION */ -#define SDWACLUP 0x80 /* ... ON INDICATES RECOVERY EXIT ONLY TO - CLEANUP AND NOT RETRY (IF ESTA EXIT AND - 33E COMPLETION CODE THE DUMP IS TAKEN - AFTER ENTRY TO THE RECOVERY ROUTINE, - IF THE COMPLETION CODE IS OTHER THAN - 33E AND IT IS AN ESTA EXIT THE DUMP IS - TAKEN BEFORE ENTRY TO THE RECOVERY - ROUTINE) */ -#define SDWANRBE 0x40 /* ... ON RB ASSOCIATED WITH THIS ESTA EXIT WAS - NOT IN CONTROL AT TIME OF ERROR NEVER ON - FOR FRRS */ -#define SDWASTAE 0x20 /* ... ON THIS ESTA EXIT HAS BEEN ENTERED FOR A - PREVIOUS ABEND. NEVER ON FOR FRRS */ -#define SDWACTS 0x10 /* ... ON,THIS TASK WAS NOT IN CONTROL AT TIME - OF ERROR BUT A TASK WITHIN THE SAME - JOBSTEP TREE REQUESTED A 'STEP' ABEND. - ONLY 'ON' IF SDWACLUP IS 'ON' */ -#define SDWAMABD 0x08 /* ... ON,THIS TASK WAS NOT IN CONTROL AT TIME - OF ERROR BUT AN ANCESTOR OF THIS TASK HAS - ABEND'ED. ONLY 'ON' IF SDWACLUP IS 'ON'*/ -#define SDWARPIV 0x04 /* ... ON, THE REGISTERS AND PSW AT TIME OF - ERROR ARE UNAVAILABLE */ -#define SDWAMCIV 0x02 /* ... ON,MACHINE CHECK ERROR INFORMATION - IS UNAVAILABLE. */ -#define SDWAERFL 0x01 /* ... ON,ERRORID INFORMATION AVAILABLE */ - - unsigned short SDWAFMID; /* ASID OF MEMORY IN WHICH ERROR OCCURRED. - =0, IF THE MEMORY IS CURRENT - NOT=0 IF OTHER MEMORY IS CURRENT - FOR FRRS- - IF THE VALUE IS NON ZERO THE - FRR IS RECEIVING CONTROL IN THE - MASTER SCHEDULER ADDRESS SPACE AND CANNOT - ADDRESS THE PRIVATE AREA OF THE FAILING - ADDRESS SPACE. - FOR ESTA- - IF THE VALUE IS NON ZERO - ENTRY IS DUE TO CROSS MEMORY - ABTERM. */ - char SDWAIOFS; /* THIS IS THE CURRENT I/O STATUS (THE I/O - PROCESSING REQUESTED BY THE FIRST (E)STA - EXIT IS THE ONLY REQUEST HONORED ) */ -#define SDWAIOQR 0x80 /* ... ON,I/O FOR FAILING PROGRAM HAS BEEN - QUIESCED AND IS RESTOREABLE */ -#define SDWAIOHT 0x40 /* ... ON,I/O FOR FAILING PROGRAM HAS BEEN - HALTED AND IS NOT RESTOREABLE */ -#define SDWANOIO 0x20 /* ... ON,FAILING PROGRAM HAS NO I/O - OUTSTANDING */ -#define SDWANIOP 0x10 /* ... ON,USER REQUESTED NO I/O PROCESSING */ - - char SDWACPUI; /* ERRORID LOGICAL CPUID */ - - unsigned SDWARTYA; /* ADDRESS OF RETRY ROUTINE */ - - unsigned SDWARECA; /* ADDRESS OF VARIABLE RECORDING AREA WITHIN - SDWA */ - -/* SDWACPUA DS 0CL4 ADDRESS OF CPU HOLDING RESOURCE WHICH CAUSES - * VALID SPIN ON CURRENT CPU - USED WITH RESTART - * KEY ERROR TYPE.IF THIS FIELD IS VALIDLY FILLED - * IN BY AN FRR THE FRRS MAINLINE PROGRAM WILL BE - * RESUMED AT THE NEXT SEQUENTIAL INSTRUCTION. - * NOT VALID FOR ESTAE EXITS. */ - char _8[2]; /* RESERVED */ - - unsigned short SDWALCPU; /* LOGICAL ADDRESS OF CPU HOLDING RESOURCE */ - -/* SDWAPARQ DS 0BL4 FLAGS SET BY RECOVERY ROUTINE TO REQUEST FURTHER - * PROCESSING ACTION */ - char SDWARCDE; /* RETURN CODE FROM RECOVERY ROUTINE TO INDICATE - RETRY OR TERMINATION */ -#define SDWACWT 0 /* ... 0 ,CONTINUE WITH TERMINATION. THIS - INDICATION IMPLIES PERCOLATION */ -#define SDWARETY 4 /* ... 4 ,RETRY USING RETRY ADDRESS IN SDWARTYA - FIELD */ -#define SDWAPSTI 16 /* ... 16,PREVENT FURTHER (E)STAI PROCESSING */ - - char SDWAACF2; /* FLAGS TO INDICATE ADDITIONAL PROCESSING - REQUESTS */ -#define SDWARCRD 0x80 /* ... ON,RECORDING REQUESTED */ -#define SDWASPIN 0x20 /* ... ON,PROGRAM INTERRUPTED VIA THE RESTART - KEY WAS IN A VALID SPIN(SET BY THE SETRP - MACRO WHEN CPU ADDRESS IS SPECIFIED - ALONG WITH THE CPU ADDRESS IN SDWACPUA - FIELD TO ALLOW RESTART OF THE ALTERNATE - CPU) */ -#define SDWAUPRG 0x08 /* ... ON,UPDATED REGISTERS STARTING WITH - SDWASR00 ARE TO BE USED FOR RETRY */ -#define SDWAFREE 0x04 /* ... ON,SDWA/RTCA TO BE FREED PRIOR TO RETRY. - ONLY VALID FOR ESTA EXITS */ - - char SDWAACF3; /* FLAGS INDICATING WHAT GLOBAL LOCKS ARE TO - BE FREED (KEY 0 SUPERVISOR ONLY) - ONLY VALID FOR FRRS. */ -#define SDWADISP 0x10 /* ... ON,THE DISPATCHER LOCK */ -#define SDWAASMP 0x08 /* ... ON,THE ASM CLASS LOCK */ -#define SDWASALL 0x04 /* ... ON, THE SALLOC LOCK */ -#define SDWAIPRG 0x02 /* ... ON, THE IOSYNCH LOCK */ -#define SDWAICAT 0x01 /* ... ON,THE IOSCAT LOCK */ - - char SDWAACF4; /* ADDITIONAL LOCKS TO BE FREED FOR FRRS */ -#define SDWAIUCB 0x80 /* ... ON, THE IOSUCB LOCK */ -#define SDWAILCH 0x40 /* ... ON, THE IOSLCH LOCK */ -#define SDWATNCB 0x20 /* ... RESERVED LOCK */ -#define SDWATDNB 0x10 /* ... RESERVED LOCK */ -#define SDWATADB 0x08 /* ... RESERVED LOCK */ -#define SDWAOPTM 0x04 /* ... ON,THE SYSTEM RESOURCES MGR(SRM) - LOCK LOCK */ -#define SDWACMS 0x02 /* ... ON,THE CMS LOCK */ -#define SDWAFLLK 0x01 /* ... ON,THE LOCAL LOCK */ - -/* SDWALKWA DS 0CL32 LOCK AREA @ZA05516 - SDWALKWS DS 0CL32 LOCKWORDS REQUIRED TO FREE GLOBAL LOCKS - * ONLY USED FOR FRRS */ - unsigned SDWAICLW; /* LOCKWORD FOR THE IOSCAT LOCK */ - unsigned SDWAIULW; /* LOCKWORD FOR THE IOSUCB LOCK */ - unsigned SDWAILLW; /* LOCKWORD FOR THE IOSLCH LOCK */ - unsigned SDWAIPLW; /* LOCKWORD FOR THE IOSYNCH LOCK */ - unsigned SDWAAPLW; /* LOCKWORD FOR THE ASM CLASS LOCK */ - unsigned SDWATNLW; /* LOCKWORD - RESERVED */ - unsigned SDWATDLW; /* LOCKWORD - RESERVED */ - unsigned SDWATALW; /* LOCKWORD - RESERVED */ - - unsigned short SDWAASID; /* ASID FOR LOGREC DEBUGGING */ - unsigned short SDWASEQ_; /* ERRORID SEQUENCE NUMBER */ - -/* SDWARECP DS 0CL24 RECORDING PARAMETERS (MODULE,CSECT AND RECOVERY - * ROUTINE NAMES-RESPECTIVELY) */ - char SDWAMODN[8]; /* THE MODULE NAME INVOLVED IN THE ERROR - (SUPPLIED BY THE RECOVERY ROUTINE) */ - char SDWACSCT[8]; /* THE CSECT NAME INVOLVED IN THE ERROR - (SUPPLIED BY THE RECOVERY ROUTINE) */ - char SDWAREXN[8]; /* THE RECOVERY ROUTINE NAME HANDLING THE - ERROR */ - - unsigned SDWADPLA; /* POINTER TO DUMP PARAMETER LIST - RESIDING IN SDWA. */ - -/* SDWASNPA DS 0CL8 SNAP PARAMETER LIST FLAGS */ -/* SDWADUMP DS 0CL4 DUMP CHARACTERISTICS */ - char SDWADPID; /* ID OF DUMP REQUESTED */ - char SDWADPFS; /* DUMP FLAGS */ -#define SDWADPT 0x80 /* ... ALWAYS OFF,INDICATES SNAP DUMP REQUEST*/ -#define SDWADLST 0x40 /* ... ALWAYS ON,INDICATES THAT OS/VS2 REL. 2 - DUMP PARAMETER LIST SUPPLIED USED BY RTM - TO INDICATE DUMP OPTIONS ARE AVAILABLE - IN THE SDWA */ -#define SDWAENSN 0x20 /* ... ON,ENHANCED DUMP OPTIONS */ -#define SDWASLST 0x02 /* ... ON,STORAGE LISTS SUPPLIED FOR DUMP */ - - char _9[2]; /* RESERVED */ - -/* SDWADDAT DS 0CL4 SDATA AND PDATA OPTIONS */ -/* SDWASDAT DS 0CL2 SDATA OPTIONS @G33SPHW */ - char SDWASDA0; /* SDATA OPTIONS FLAG ONE */ -#define SDWANUC 0x80 /* ... DISPLAY NUCLEUS */ -#define SDWASQA 0x40 /* ... DISPLAY SQA */ -#define SDWALSQA 0x20 /* ... DISPLAY LSQA */ -#define SDWASWA 0x10 /* ... DISPLAY SWA */ -#define SDWAGTF 0x08 /* ... DISPLAY GTF INCORE TRACE TABLE */ -#define SDWACBS 0x04 /* ... FORMAT AND DISPLAY CONTROL BLOCKS */ -#define SDWAQQS 0x02 /* ... FORMAT AND DISPLAY QCBS/QELS */ -#define SDWADM 0x01 /* ... FORMAT DATA MGT CONTROL BLOCKS */ - - char SDWASDA1; /* SDATA OPTIONS */ -#define SDWAIO 0x80 /* ... FORMAT I/O SUPERVISOR CONTROL BLOCKS */ -#define SDWAERR 0x40 /* ... FORMAT ERROR CONTROL BLOCKS */ - - char SDWAPDAT; /* PDATA OPTIONS */ -#define SDWADSAS 0x80 /* ... DISPLAY SAVE AREAS */ -#define SDWADSAH 0x40 /* ... DISPLAY SAVE AREA HEADER */ -#define SDWADREG 0x20 /* ... DISPLAY REGISTERS */ -#define SDWATLPA 0x10 /* ... DISPLAY LPA MODULES OF TASK */ -#define SDWATJPA 0x08 /* ... DISPLAY JPA MODULES OF TASK */ -#define SDWADPSW 0x04 /* ... DISPLAY PSW */ -#define SDWAUSPL 0x02 /* ... DISPLAY USER SUBPOOLS */ - - char _10; /* RESERVED */ - -/* SDWADPSA DS 0CL36 DUMP RANGES AREA */ -/* SDWADPSL DS 0CL32 DUMP STORAGE LISTS (MAX 4 RANGES AVAILABLE) */ - unsigned SDWAFRM1; /* BEGINNING ADDRESS FOR STORAGE RANGE 1 */ - unsigned SDWATO1; /* ENDING ADDRESS FOR STORAGE RANGE 1 */ - - unsigned SDWAFRM2; /* BEGINNING ADDRESS FOR STORAGE RANGE2 */ - unsigned SDWATO2; /* ENDING ADDRESS FOR STORAGE RANGE 2 */ - - unsigned SDWAFRM3; /* BEGINNING ADDRESS FOR STORAGE RANGE 3 */ - unsigned SDWATO3; /* ENDING ADDRESS FOR STORAGE RANGE 3 */ - - unsigned SDWAFRM4; /* BEGINNING ADDRESS FOR STORAGE RANGE 4 */ - unsigned SDWATO4; /* ENDING ADDRESS FOR STORAGE RANGE 4 */ - - unsigned _11; /* RESERVED */ - - char SDWARCPL[28]; /* RESERVED FOR RTM USE. */ - - unsigned SDWACOMP; /* THIS WORD IS PROVIDED FOR COMMUNICATION OF - ADDITIONAL RECOVERY DATA ON A PER COMPONENT - BASIS (FOR OS/VS2 RELEASE 2 THIS FIELD IS - ONLY USED BY DATA MANAGER ) */ - - char SDWAERTM[4]; /* ERRORID TIME STAMP */ - -/* SDWARA DS 0CL112 VARIABLE RECORDING AREA PREFIXED BY A TWO BYTE - * LENGTH FIELD OF AREA AND A TWO BYTE - * LENGTH FIELD OF USER SUPPLIED RECORDING DATA */ - char SDWAVRAL[2]; /* LENGTH OF VARIABLE RECORDING AREA */ - - char SDWADPVA; /* DEFINES DUMPING OF DATA IN VARIABLE AREA */ -#define SDWAHEX 0x80 /* ... DATA TO BE DUMPED BY EREP IN HEX. */ -#define SDWAEBC 0x40 /* ... DATA TO BE DUMPED BY EREP IN EBCDIC */ - - char SDWAURAL; /* LENGTH OF USER SUPPLIED RECORDING DATA */ - - char SDWAVRA[108]; /* VARIABLE RECORDING AREA */ - -/* SDWAEND DS 0D END OF SDWA FORCED TO DOUBLE WORD */ -}; -#define SDWALEN ((sizeof(SDWA)+7) & 0x7FFFFFF8) -#define SDWAFLEN (SDWALEN+272) /* GETMAIN LENGTH FOR FRR SDWA */ - -#pragma pack(reset) - -#endif diff --git a/src/crent370/include/clibsmf.h b/src/crent370/include/clibsmf.h deleted file mode 100644 index bf7c165..0000000 --- a/src/crent370/include/clibsmf.h +++ /dev/null @@ -1,239 +0,0 @@ -#ifndef CLIBSMF_H -#define CLIBSMF_H - -typedef struct smca SMCA; - -struct smca { - unsigned char smcaopt; /* 00 SMFDEFLT OPTIONS SELECTED AT - INITIALIZATION TIME. THE OPTIONS APPLY - TO BACKGROUND PROCESSING. SMCAFOPT - (OFFSET 82) CONTAINS THE FOREGROUND - OPTIONS. */ -#define SMCAOPT1 0x80 /* JOB ACCOUNTING (OPT=1 */ -#define SMCAOPT2 0x40 /* STEP ACCOUNTING (OPT=2)*/ -#define SMCAEXT 0x20 /* USER EXITS WILL BE TAKEN (EXT=YES) */ -#define SMCADSA 0x10 /* DATA SET ACCOUNTING (DSV=2 OR 3) */ -#define SMCAVOL 0x08 /* VOLUME ACCOUNTING (DSV=1 OR 3) */ -#define SMCARS01 0x04 /* RESERVED */ -#define SMCATDS 0x02 /* TYPE 17 RECORDS MAINTAINED FOR TEMPORARY - /* DATA SETS (REC=2 OR 3) */ -#define SMCAFGND 0x01 /* SMF FOREGROUND OPTIONS BIT. IF 0, ABOVE - BITS DESCRIBE BACKGROUND OPTIONS. IF 1, - ABOVE BITS DESCRIBE FOREGROUND OPTIONS. */ - unsigned char smcamisc; /* 01 MISCELLANEOUS INDICATORS */ -#define SMCAUSER 0x80 /* SMF RECORDING REQUESTED */ -#define SMCAMAN 0x40 /* SYS1.MAN DATA SET IS/IS NOT PRESENT - BITS 0 AND 1 MEAN - 00 - NO SMF RECORDING REQUESTED - (MAN=NONE) - 01 - ONLY USER RECORDS TO BE RECORDED - (MAN=USER) - 10 - INVALID COMBINATION - 11 - SMF AND USER RECORDING REQUESTED - (MAN=ALL) */ -#define SMCAOPI 0x20 /* IF 0, OPERATOR MAY CHANGE SMF FOREGROUND - OPTIONS WHEN HE ISSUES A TSO START - COMMAND OR TSO MODIFY COMMAND (OPI=YES). - IF 1, OPERATOR MAY NOT CHANGE SMF - FOREGROUND OPTIONS (OPI=NO). */ -#define SMCAFIRT 0x10 /* SMF DATA SET TO BE OPENED */ -#define SMCAPSDP 0x08 /* PSEUDO-DUMP SWITCH - (DEVICE SWITCHING ONLY) */ -#define SMCADBSY 0x04 /* DUMP IS BUSY (SMF WRITER) */ -#define SMCABSW 0x02 /* BUFFER SWITCH. IF 0, LEFT HALF OF BUFFER - IN USE. IF 1, RIGHT HALF OF BUFFER IN - USE. */ -#define SMCADUMP 0x01 /* DUMP BUSY */ - unsigned short smcatoff; /* 02 OFFSET OF THE FIRST SMF TIOT ENTRY FROM - THE BEGINNING OF THE MASTER SCHEDULER - TIOT */ - void * smcatiot; /* 04 ADDRESS OF THE MASTER SCHEDULER TIOT */ -/* -** THE FOLLOWING FIELDS ARE SET UP BY IPL INITIALIZATION -*/ - unsigned smcajwt; /* 08 JOB WAIT TIME LIMIT IN MICROSEC. - TIMER UNITS. DERIVED FROM JWT IN - SMFDEFLT. */ - union { - unsigned smcabuf; /* 0C SMF BUFFER SIZE IN BYTES. AT - INITIALIZATION, IT CONTAINS BUF=VALUE. */ - unsigned smcabsiz; /* 0C AFTER IPL, IT CONTAINS THE BUFFER WORKING - SIZE */ - }; - unsigned char smcasid[4]; /* 10 SYSTEM IDENTIFICATION (SID) */ - void * smcabufp; /* 14 ADDRESS OF THE SMF BUFFER */ -/* -** SMF DEVICE CHARACTERISTICS -** -** CURRENT RECORDING DATA SET -** WHEN THE SMF RECORDING DEVICE IS A DIRECT ACCESS DEVICE, -** THE FOLLOWING FIELDS MAY DESCRIBE EITHER THE PRIMARY OR -** ALTERNATE DATA SET, WHICHEVER IS CURRENTLY BEING WRITTEN. -*/ - unsigned char smcapdev[6];/* 18 VOLUME SERIAL NUMBER OF THE CURRENTLY - USED SMF DATA SET */ - unsigned char smcapsta; /* 1E CURRENTLY USED SMF DATA SET DEVICE STATUS */ -#define SMCAPNAV 0x80 /* DATA SET IS NOT AVAILABLE FOR RECORDING */ -#define SMCAPTAP 0x40 /* THE SMF RECORDING DEVICE IS A MAGNETIC - TAPE DEVICE */ -#define SMCAPDA 0x20 /* THE SMF RECORDING DEVICE IS A DIRECT - ACCESS DEVICE */ -#define SMCAPMTY 0x10 /* THE DATA SET IS READY TO USE */ -#define SMCAMOD 0x08 /* OPEN MODULE */ -#define SMCARS02 0x04 /* RESERVED */ -#define SMCAPUNT 0x02 /* A DEVICE ADDRESS WAS SPECIFIED FOR THE - SMF DATA SET AT SYSTEM INITIALIZATION */ -#define SMCAPVOL 0x01 /* A VOLUME SERIAL NUMBER WAS SPECIFIED FOR - THE SMF DATA SET AT SYSTEM INITIALIZATION */ - unsigned char smcapdar[3];/* 1F CURRENTLY USED SMF DATA SET DEVICE - ADDRESS (EBCDIC) */ - unsigned char smcaplbl; /* 22 LABEL STATUS OF THE CURRENTLY USED SMF DATA SET */ -#define SMCARS03 0x80 /* RESERVED */ -#define SMCARS04 0x40 /* RESERVED */ -#define SMCARS05 0x20 /* RESERVED */ -#define SMCARS06 0x10 /* RESERVED */ -#define SMCARS07 0x08 /* RESERVED */ -#define SMCAPNSL 0x04 /* NON-STANDARD LABEL (NSL) */ -#define SMCAPSL 0x02 /* STANDARD LABEL (SL) */ -#define SMCAPNL 0x01 /* NO LABEL (NL) */ - unsigned char smcaxory; /* 23 AN EBCDIC X OR Y CORRESPONDING TO THE - DATA SET THAT IS TO RECEIVE THIS ENTRY */ - void * smcapdcb; /* 24 ADDRESS OF THE CURRENTLY USED SMF DATASET DCB */ -/* -** DATA SET NOT CURRENTLY IN USE -** -** WHEN THE SMF RECORDING DEVICE IS A DIRECT ACCESS DEVICE, -** THE FOLLOWING FIELDS MAY DESCRIBE EITHER THE PRIMARY OR -** ALTERNATE DATA SET, WHICHEVER IS CURRENTLY NOT IN USE. -*/ - unsigned char smcaadev[6];/* 28 VOLUME SERIAL NUMBER OF THE NON-CURRENT SMF DATA SET */ - unsigned char smcasta; /* 2E NON-CURRENT SMF DATA SET DEVICE STATUS. - BIT SETTINGS ARE SAME AS FOR SMCAPSTA. */ - unsigned char smcaadar[3];/* 2F NON-CURRENT SMF DATA SET DEVICE ADDRESS */ - unsigned char smcaalbl; /* 32 LABEL STATUS OF THE NON-CURRENT SMF DATA - SET. BIT SETTINGS ARE SAME AS FOR SMCAPLBL. */ - unsigned char smcayorx; /* 33 AN EBCDIC X OR Y CORRESPONDING TO THE - DATA SET THAT IS TO RECEIVE THIS ENTRY */ - void * smcaadcb; /* 34 ADDRESS OF THE NON-CURRENT SMF DATA SET DCB */ -/* -** SMF ECB'S -*/ - unsigned smcawecb; /* 38 WRITE REQUEST ECB WAITED UPON BY THE SMF - WRITER. POSTED BY IGC0008C WHEN A WRITE - IS REQUESTED. */ - unsigned smcabecb; /* 3C ECB FOR THE SMF BUFFER */ - unsigned smcasgwr; /* 40 IF THE LOGICAL RECORD EXCEEDS 1/2 THE - BUFFER SIZE, THIS FIELD INDICATES THE - NUMBER OF BUFFER LOADS REQUIRED TO - ACCOMMODATE THE RECORD */ - unsigned smcasgft; /* 44 THE NUMBER OF RECORD SEGMENTS (BUFFER - LOADS) THAT WILL FIT IN THE DATA SET */ -/* -** MISCELLANEOUS POINTERS AND COMMUNICATION AREAS -*/ - unsigned smcawait[2];/* 48 THE ACCUMULATED WAIT TIME, EXPRESSED IN - 26 USEC TIMER UNITS. FIRST WORD IS - OVERFLOW FROM SECOND WORD. */ -/* SMCAENTY DS 0CL2 - THESE SWITCHES GOVERN ENTRY CONDITIONS -** FOR DEVICE SWITCHING/ALLOCATION/ -** OPENING ROUTINES -*/ - unsigned char smcaendi; /* 50 A COMMUNICATION FIELD */ -#define SMCARS14 0x80 /* RESERVED */ -#define SMCARS15 0x40 /* RESERVED */ -#define SMCARS16 0x20 /* RESERVED */ -#define SMCARS17 0x10 /* RESERVED */ -#define SMCARS18 0x08 /* RESERVED */ -#define SMCARS19 0x04 /* RESERVED */ -#define SMCARS20 0x02 /* RESERVED */ -#define SMCADSNF 0x01 /* IF ZERO, DATA SET (X OR Y) WAS FOUND. - IF ONE, DATA SET (X OR Y) WAS NOT FOUND. */ - unsigned char smcaenop; /* 51 ENTRY CODE THAT INDICATES WHICH LOAD OF - SVC 83 HAS PASSED CONTROL TO CURRENT LOAD */ - unsigned char smcafopt; /* 52 SMF FOREGROUND OPTIONS. - BIT SETTINGS ARE SAME AS SMCAOPT. */ - unsigned char smcaenal; /* 53 RESERVED */ - unsigned smcawrtp; /* 54 AN OPTIMUM BUFFER LOAD DISPLACEMENT - FIGURE. WHEN THE BUFFER IS LOADED TO OR - BEYOND THIS POINT, IT WILL BE WRITTEN TO - THE SMF DATA SET. */ -/* -** XCTL REMOTE LIST USED BY SVC 83 -*/ - void * smcaxctl; /* 58 ADDRESS OF THE NAME OF THE ROUTINE TO - WHICH XCTL IS TO PASS CONTROL */ - void * smca_dcb; /* 5C DCB POINTER. ALWAYS ZERO ACCORDING TO - THE XCTL MACRO INSTRUCTION FORMAT. */ - unsigned char smcaxnam[8];/* 60 NAME OF THE ROUTINE TO WHICH XCTL IS TO - PASS CONTROL */ - unsigned char smcaswa; /* 68 INDICATOR BITS */ -#define SMCASWAR 0x80 /* RESERVED */ -#define SMCADSTR 0x40 /* DISASTER BIT. BOTH DATA SETS ARE FULL. - SMF IS NOT RECORDING. */ -#define SMCAOPFL 0x20 /* OPEN FAILURE ON SMF DATA SET. SMF IS - NOT RECORDING. */ -#define SMCANADA 0x10 /* NEXT ALLOCATION MUST BE FOR A DIRECT - ACCESS DEVICE */ -#define SMCANAVL 0x08 /* ALLOCATION SEARCH IS BY VOLUME SERIAL NUMBER */ -#define SMCAZEOD 0x04 /* SMF HALT END-OF-DAY IS PROCESSING */ -#define SMCADSSP 0x02 /* ENTRY TO THE WRITER IS FOR A SPACE CHECK - OF THE DATA SET */ -#define SMCADSSW 0x01 /* ENTRY TO THE WRITER IS FOR DATA SET SWITCHING ONLY */ - unsigned char smcaswb; /* 69 RESERVED */ - unsigned char smcaswc; /* 6A RESERVED */ - unsigned char smcaswd; /* 6B RESERVED */ - unsigned char smcadstm[8];/* 6C START TIME AND DATE AT WHICH NO DATA SET - WAS AVAILABLE TO RECORD ON. APPEARS IN - PACKED DECIMAL IN THE FORM 00YYDDDF - WHERE 00 = ZEROS, YY = LAST 2 DIGITS OF - THE YEAR, DDD = DAY OF THE YEAR AND F IS - A SIGN. */ - unsigned smcadsct; /* 74 THE NUMBER OF SMF RECORDS THAT HAVE BEEN - OMITTED FROM THE SMF DATA SET DUE TO THE - UNAVAILABILITY OF A DATA SET TO RECORD ON */ - void * smcaascb; /* 78 CURRENT TASK ASCB ADDRESS (OS/VS2) MDC005 */ -/*000078 401+SMCAPOST DS H - RESERVED (OS/VS1) MDC003 30800002 -**00007A 402+SMCATJID DS CL2 - CURRENT TASK TJID (OS/VS1) MDC004 31000002 -*/ - unsigned smcars21; /* 7C RESERVED */ - void * smcasave; /* 80 USER EXIT ADDRESS SAVE FIELD (OS/VS2) */ - unsigned smcatexp; /* 84 TIME OF MOST RECENT EXPIRATION OF A - TEN-MINUTE TIMER QUEUE ELEMENT (TQE) */ -/*000088 409+SMCAPGIN DS 0F - NUMBER OF PAGE-INS PERFORMED (OS/VS1) 31156003 -** 410+* (MDC371) @ZA07764 31160003 -*/ - unsigned smcadomx; /* 88 MANX DOM WTO ID (OS/VS2) */ -/*00008C 413+SMCAPGOT DS 0F - NUMBER OF PAGE-OUTS PERFORMED (OS/VS1) 31166003 -** 414+* (MDC372) @ZA07764 31170003 -*/ - unsigned smcadomy; /* 8C MANY DOM WTO ID (OS/VS2) */ - unsigned smcapgrl; /* 90 NUMBER OF PAGES RECLAIMED. RECLAMATION - RESULTS WHEN A PAGE IS NEEDED TO SATISFY - A PAGE FAULT BUT DOES NOT HAVE TO BE - RETRIEVED FROM AUXILIARY STORAGE BECAUSE - IT IS RESIDENT IN REAL MAIN STORAGE - AWAITING PAGE-OUT. */ - unsigned smcargns; /* 94 NUMBER OF REGIONS SWAPPED IN AND OUT */ - unsigned smcaspin; /* 98 NUMBER OF SWAP PAGE-INS */ - unsigned smcaspot; /* 9C NUMBER OF SWAP PAGE-OUTS */ - unsigned smcargnm; /* A0 NUMBER OF REGIONS MIGRATED */ - unsigned smcaapgm; /* A4 NUMBER OF PAGES MIGRATED */ - void * smcau83; /* A8 ADDRESS OF SMF OUTPUT EXIT (IEFU83) - TAKEN WHEN RECORDS ARE TO BE WRITTEN TO - AN SMF DATA SET */ - void * smcawtcb; /* AC ADDRESS OF SMF WRITER'S TCB - USED BY - XMPOST ERROR PROCESSOR (IEEMB827) */ - void * smcastcb; /* B0 ADDRESS OF SMF SVC CURRENTLY WAITING FOR - WRITER - USED BY XMPOST ERROR PROCESSOR */ -}; - -/*000B4 438+SMCAEND EQU * */ -#define SMCASIZE sizeof(struct smca) -#define TDEVSIZE 16 /* SIZE OF DEVICE ENTRY */ - -SMCA *__smca(void); /* @@smca.c */ -const unsigned char *__smfid(void); /* @@smfid.c */ - -#endif /* ifndef CLIBSMF_H */ - - diff --git a/src/crent370/include/clibsock.h b/src/crent370/include/clibsock.h deleted file mode 100644 index eea08e2..0000000 --- a/src/crent370/include/clibsock.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef CLIBSOCK_H -#define CLIBSOCK_H - -typedef struct clibsock CLIBSOCK; - -/* the CLIBSOCK structure is used to hold information about open -** sockets created by the DYN75 interface. -** -** the name and peer fields represent sockaddr_in structures. -*/ -struct clibsock { - char eye[8]; /* 00 eye catcher "CLIBSOCK" */ -#define CLIBSOCK_EYE "CLIBSOCK" /* ... */ - int socket; /* 08 socket number */ - int unused; /* 0C unused */ - char name[16]; /* 10 sockaddr_in for local side */ - char peer[16]; /* 20 sockaddr_in for remote side */ -}; /* 30 (48 bytes) */ - -extern int __soadd(int ss, void *name, void *peer); -extern int __soupd(int ss, void *name, void *peer); -extern int __sodel(int ss); - -/* __sofind() - returns index of found socket or 0 if not found */ -extern int __sofind(int ss, CLIBSOCK **s); - -/* __sosnam() - get socket name (local side of socket) */ -extern int __sosnam(int ss, void *name); - -/* __sopnam() - get peer name (remote side of socket) */ -extern int __sopnam(int ss, void *peer); - -#endif diff --git a/src/crent370/include/clibspl.h b/src/crent370/include/clibspl.h deleted file mode 100644 index 7bd81fb..0000000 --- a/src/crent370/include/clibspl.h +++ /dev/null @@ -1,106 +0,0 @@ -#ifndef CLIBSPL_H - -static __inline void * -spl_memset(void *s, int c, size_t n) -{ - __asm__ __volatile__("\n*** SPL_MEMSET ***\n" -" L 14,%0 => target (s)\n" -" L 15,%1 => length (n)\n" -" SLR 0,0 => source (NULL)\n" -" L 1,%2 fill character\n" -" SLL 1,24 move fill to high byte\n" -" MVCL 14,0 Set target to fill character" - : : "m"(s), "m"(n), "m"(c) : "0", "1", "14", "15"); - return s; -} - -static __inline void * -spl_memclr(void *s, size_t n) -{ - __asm__ __volatile__("\n*** SPL_MEMCLR ***\n" -" L 14,%0 => target (s)\n" -" L 15,%1 => length (n)\n" -" SLR 0,0 => source (NULL)\n" -" SLR 1,1 zero fill\n" -" MVCL 14,0 Set target to fill character" - : : "m"(s), "m"(n) : "0", "1", "14", "15"); - return s; -} - -static __inline void * -spl_memcpy(void *s1, const void *s2, size_t n) -{ - __asm__ __volatile__("\n*** SPL_MEMCPY ***\n" -" L 14,%0 => target (s1)\n" -" L 15,%1 => length (n)\n" -" L 0,%2 => source (s2)\n" -" L 1,%1 => length (n)\n" -" MVCL 14,0 Copy source to target" - : : "m"(s1), "m"(n), "m"(s2) : "0", "1", "14", "15"); - - return (s1); -} - -static __inline void * -spl_memcpyp(void *target, int tlen, void *source, int slen, int pad) -{ - __asm__ __volatile__("\n*** SPL_MEMCPYP ***\n" -" L 14,%0 => target (target)\n" -" L 15,%1 target length (tlen)\n" -" L 0,%2 => source (source)\n" -" L 1,%4 fill character\n" -" SLL 1,24 move fill to high byte\n" -" AL 1,%3 source length (slen)\n" -" MVCL 14,0 Copy source to target" - : : "m"(target), "m"(tlen), "m"(source), "m"(slen), "m"(pad) : "0", "1", "14", "15"); - return target; -} - -static __inline unsigned -spl_strlen(const char *s) -{ - __asm__ __volatile__("\n*** SPL_STRLEN ***"); - const char *p; - - p = s; - while (*p != '\0') p++; - return ((unsigned)(p - s)); -} - -static __inline char * -spl_strcpy(char *s1, const char *s2) -{ - __asm__ __volatile__("\n*** SPL_STRCPY ***"); - char *p = s1; - - while ((*p++ = *s2++) != '\0') ; - return (s1); -} - -static __inline char * -spl_strcpyp(char *target, int tlen, void *source, int pad) -{ - __asm__ __volatile__("\n*** SPL_STRCPYP ***"); - char *t = target; - int slen = source ? spl_strlen(source) : 0; - - if (slen > tlen) slen = tlen; - - if (slen > 0) { - spl_memcpy(t, source, slen); - t += slen; - tlen -= slen; - } - - if (tlen > 0) { - spl_memset(t, pad, tlen); - } - - return target; -} - - - - - -#endif /* CLIBSPL_H */ diff --git a/src/crent370/include/clibsrb.h b/src/crent370/include/clibsrb.h deleted file mode 100644 index 82a7cac..0000000 --- a/src/crent370/include/clibsrb.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef CLIBSRB_H -#define CLIBSRB_H - -#include -void *srb_getmain(unsigned size, int subpool) asm("SRBGMAIN"); -static __inline void *inline_srb_getmain(unsigned size, int subpool) -{ - void *storage; - - if (size < SRBSIZE) size = SRBSIZE; - if (!subpool) subpool = SRB_SUBPOOL; - - __asm("MODESET MODE=SUP,KEY=ZERO" : : : "0", "1", "14", "15"); - __asm("GETMAIN R,LV=(%0),SP=(%1)\n\t" - "ST\t1,0(,%2)" : : - "r"(size), "r"(subpool), "r"(&storage) : "0", "1", "14", "15"); - memset(storage, 0, size); - __asm("MODESET MODE=PROB,KEY=NZERO" : : : "0", "1", "14", "15"); - - return storage; -} - - -void srb_freemain(void *storage, unsigned size, int subpool) asm("SRBFMAIN"); -static __inline void inline_srb_freemain(void *storage, unsigned size, int subpool) -{ - if (size < SRBSIZE) size = SRBSIZE; - if (!subpool) subpool = SRB_SUBPOOL; - - __asm("MODESET MODE=SUP,KEY=ZERO" : : : "0", "1", "14", "15"); - __asm("FREEMAIN R,A=(%0),LV=(%1),SP+(%2)\n\t" : : - "r"(storage), "r"(size), "r"(subpool) : "0", "1", "14", "15"); - __asm("MODESET MODE=PROB,KEY=NZERO" : : : "0", "1", "14", "15"); -} - - -#endif /* CLIBSRB_H */ diff --git a/src/crent370/include/clibssct.h b/src/crent370/include/clibssct.h deleted file mode 100644 index 8fd10cb..0000000 --- a/src/crent370/include/clibssct.h +++ /dev/null @@ -1,49 +0,0 @@ -#ifndef CLIBSSCT_H -#define CLIBSSCT_H -#include "clibssvt.h" - -typedef struct ssct SSCT; /* subsystem CVT, SP=241 KEY=0 */ -/* Note: The address of the first SSCT is in CVTJESCT at offset 0x18 */ -/* ssct = cvt->cvtjesct->jesssct */ - -struct ssct { - char ssctid[4]; /* 00 CL4'SSCT' CONTROL BLOCK IDENTIFIER */ -#define SSCT_EYE "SSCT" /* ... */ - SSCT *ssctscta; /* 04 PTR TO NEXT SSCVT OR ZERO */ - char ssctsnam[4]; /* 08 SUBSYSTEM NAME */ - char ssctflg1; /* 0C FLAGS */ -#define SSCTSFOR 0x80 /* ... SERIAL FIB OPERATIONS REQUIRED */ -#define SSCTUPSS 0x40 /* ... USE PRIMARY SUBSYSTEM'S - SERVICES FOR THIS SUBSYSTEM */ - char ssctssid; /* 0D SUBSYSTEM IDENTIFIER. SET BY - SUBSYSTEM FIRST TIME IT IS - INVOKED AFTER IPL */ -#define SSCTUNKN 0x00 /* ... UNKNOWN SUBSYSTEM ID */ -#define SSCTJES2 0x02 /* ... JES2 SUBSYSTEM ID */ -#define SSCTJES3 0x03 /* ... JES3 SUBSYSTEM ID */ - char ssctrsv1[2]; /* 0E RESERVED */ - SSVT *ssctssvt; /* 10 SUBSYSTEM VECTOR TABLE POINTER */ - void *ssctsuse; /* 14 RESERVED FOR SUBSYSTEM USAGE */ -}; - -/* ssct_new() allocate SSCT storage, requires supervisor state */ -SSCT *ssct_new(const char *name, SSVT *ssvt, void *suse) asm("@@SSNEW"); - -/* ssct_free() deallocate SSCT storage, requires supervisor state */ -void ssct_free(SSCT *ssct) asm("@@SSFREE"); - -/* ssct_find() find subsystem storage by name */ -SSCT *ssct_find(const char *name) asm("@@SSFIND"); - -/* ssct_install() install SSCT as subsystem after after_name subsystem, requires supervisor state */ -/* note: when after_name is NULL ssct is placed after the first subsystem, usually "JES2" or "MSTR" */ -/* note: when after_name is not found, ssct is placed after the last subsystem */ -int ssct_install(SSCT *ssct, const char *after_name) asm("@@SSINST"); - -/* ssct_remove() remove SSCT as subsystem, requires supervisor state and key 0 */ -int ssct_remove(SSCT *ssct) asm("@@SSREM"); - -/* ssct_remove_by_name() remove SSCT as subsystem, requires supervisor state and key 0 */ -int ssct_remove_by_name(const char *name) asm("@@SSREMN"); - -#endif diff --git a/src/crent370/include/clibssib.h b/src/crent370/include/clibssib.h deleted file mode 100644 index 8fd0f56..0000000 --- a/src/crent370/include/clibssib.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef CLIBSSIB_H -#define CLIBSSIB_H - -#include /* SSIB struct */ - -/* __ssib() - returns pointer to job SSID */ -SSIB * __ssib(void) asm("@@SSIB"); - -/* __jobid() - returns pointer to 8 character SSIBJBID in job SSIB */ -const char * __jobid(void) asm("@@JOBID"); - - -#endif diff --git a/src/crent370/include/clibssvt.h b/src/crent370/include/clibssvt.h deleted file mode 100644 index 85af5d8..0000000 --- a/src/crent370/include/clibssvt.h +++ /dev/null @@ -1,60 +0,0 @@ -#ifndef CLIBSSVT_H -#define CLIBSSVT_H - -typedef struct ssvt SSVT; /* subsystem vector table */ - -struct ssvt { - short ssvtrsv1; /* 00 RESERVED */ - short ssvtfnum; /* 02 NUMBER OF FUNCTIONS SUPPORTED BY - THIS SUBSYSTEM */ -/* -** 256 BYTE FUNCTION MATRIX - -** -** THE SSOB FUNCTION ID MINUS ONE IS USED AS AN OFFSET INTO -** THIS MATRIX. -** -** MATRIX FUNCTION BYTE =0 : THE FUNCTION SPECIFIED IN THE -** SSOB IS NOT SUPPORTED BY THIS -** SUBSYSTEM. -** MATRIX FUNCTION BYTE ¬=0 : THE VALUE (FUNCTION BYTE-1)*4 -** IS ADDED TO THE ADDRESS OF -** SSVTFRTN TO OBTAIN THE -** ADDRESS OF THE WORD CONTAINING -** THE FUNCTION ROUTINE POINTER FOR -** THIS REQUEST. -*/ - char ssvtfcod[256]; /* 04 FUNCTION MATRIX */ - /* note: funcnum is used with ssvtfcod[] */ - - void *ssvtfrtn[0]; /* 104 SSVTFRTN IS THE FIRST WORD OF A - VARIABLE LENGTH MATRIX CONTAINING - FUNCTION ROUTINE POINTERS FOR - FUNCTIONS SUPPORTED BY THIS - SUBSYSTEM. THE MATRIX CAN BE A - MAXIMUM OF 256 WORDS LONG. */ - /* note: index is used with ssvtfrtn[] */ -}; - -/* ssvt_new() allocate a SSVT area with space for funcmax functions, requires supervisor state */ -SSVT * ssvt_new(unsigned funcmax) asm("@@SVNEW"); - -/* ssvt_free() deallocates a SSVT area, requires supervisor state */ -void ssvt_free(SSVT *ssvt) asm("@@SVFREE"); - -/* ssvt_set() places func into SSVT area, requires supervisor state */ -/* note: index range is 1 - funcmax inclusive */ -int ssvt_set(SSVT *ssvt, unsigned index, void *func) asm("@@SVSET"); - -/* ssvt_reset() removes func from SSVT area, requires supervisor state */ -static __inline int ssvt_reset(SSVT *ssvt, unsigned index) -{ - return ssvt_set(ssvt, index, (void*)0); -} - -/* ssvt_funcmap() maps function index to subsystem function number */ -/* note: it's possible to have a function (index) that serves multiple function numbers */ -/* note: index range is 0 - ssvt->ssvtfnum inclusive (0 disables the funcnum function) */ -/* note: funcnum range is 1 - 256 inclusive */ -int ssvt_funcmap(SSVT *ssvt, unsigned index, unsigned funcnum) asm("@@SVFMAP"); - -#endif diff --git a/src/crent370/include/clibstae.h b/src/crent370/include/clibstae.h deleted file mode 100644 index ff248e6..0000000 --- a/src/crent370/include/clibstae.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef CLIBSTAE_H -#define CLIBSTAE_H - -#include - -typedef enum { - ESTAE_CREATE, - ESTAE_OVERLAY, - ESTAE_DELETE -} ESTAE_OP; - -typedef enum { - DUMP_SUPPRESS, - DUMP_DEFAULT, - DUMP_SNAP, - DUMP_SDUMP -} DUMP_OP; - -#define SETRP(sdwa,rc,retry,regs) \ - ((sdwa)->SDWARCDE=(rc), \ - (sdwa)->SDWARTYA=(retry), \ - (sdwa)->SDWAACF2|=((regs)?SDWAUPRG:0)) - -extern int __estae(ESTAE_OP op, void *fp, void *udata); -#define estae(op,fp,udata) __estae((op),(fp),(udata)) - -#ifndef CLIBTRY_H -#include -#endif - -#endif diff --git a/src/crent370/include/clibstr.h b/src/crent370/include/clibstr.h deleted file mode 100644 index 7c82dc8..0000000 --- a/src/crent370/include/clibstr.h +++ /dev/null @@ -1,80 +0,0 @@ -#ifndef CLIBSTR_H -#define CLIBSTR_H - -#ifndef __SIZE_T_DEFINED -#define __SIZE_T_DEFINED -#if (defined(__OS2__) || defined(__32BIT__) || defined(__MVS__) \ - || defined(__CMS__) || defined(__VSE__)) -typedef unsigned long size_t; -#elif (defined(__MSDOS__) || defined(__DOS__) || defined(__POWERC) \ - || defined(__WIN32__) || defined(__gnu_linux__)) -typedef unsigned int size_t; -#endif -#endif - -#ifndef NULL -#define NULL ((void *)0) -#endif - -void *memcpy(void *s1, const void *s2, size_t n); -void *memmove(void *s1, const void *s2, size_t n); -char *strcpy(char *s1, const char *s2); -char *strncpy(char *s1, const char *s2, size_t n); -char *strcat(char *s1, const char *s2); -char *strncat(char *s1, const char *s2, size_t n); -int memcmp(const void *s1, const void *s2, size_t n); -int strcmp(const char *s1, const char *s2); -int strcoll(const char *s1, const char *s2); -int strncmp(const char *s1, const char *s2, size_t n); -size_t strxfrm(char *s1, const char *s2, size_t n); -void *memchr(const void *s, int c, size_t n); -char *strchr(const char *s, int c); -size_t strcspn(const char *s1, const char *s2); -char *strpbrk(const char *s1, const char *s2); -char *strrchr(const char *s, int c); -size_t strspn(const char *s1, const char *s2); -char *strstr(const char *s1, const char *s2); -char *strtok(char *s1, const char *s2); -#if 0 -void *memset(void *s, int c, size_t n); -#else -static __inline void *memset(void *s, int c, size_t n) -{ - __asm__ __volatile__("\n*** MEMSET ***\n" -" LR 14,%0 => target (s)\n" -" LR 15,%1 => length (n)\n" -" SLR 0,0 => source (NULL)\n" -" LR 1,%2 fill character\n" -" SLL 1,24 move fill to high byte\n" -" MVCL 14,0 Set target to fill character" - : : "r"(s), "r"(n), "r"(c) : "0", "1", "14", "15"); - return s; -} -#endif -char *strerror(int errnum); -size_t strlen(const char *s); - -/* copy source string to target string with pad character fill */ -char *strcpyp(char *target, int tlen, void *source, int pad ); - -/* copy source to target with pad character fill */ -void *memcpyp(void *target, int tlen, void *source, int slen, int pad); - -/* compare "str" against pattern "pat", returns true if match */ -int __patmat( const char *str, const char *pat ); - -char *strdup(const char *s); - -static __inline void *memclr(void *s, size_t n) -{ - __asm__ __volatile__("\n*** MEMCLR ***\n" -" LR 14,%0 => target (s)\n" -" LR 15,%1 => length (n)\n" -" SLR 0,0 => source (NULL)\n" -" SLR 1,1 zero fill\n" -" MVCL 14,0 Set target to fill character" - : : "r"(s), "r"(n) : "0", "1", "14", "15"); - return s; -} - -#endif diff --git a/src/crent370/include/clibsvc.h b/src/crent370/include/clibsvc.h deleted file mode 100644 index a95941f..0000000 --- a/src/crent370/include/clibsvc.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef CLIBSVC_H -#define CLIBSVC_H - -typedef struct svcregs SVCREGS; - -/* area passed to @@SVC from @@CRTSVC */ -struct svcregs { - unsigned r15; /* 00 SVC R15 (input/output) */ - unsigned r0; /* 04 SVC R0 (input/output) */ - unsigned r1; /* 08 SVC R1 (input/output) */ - void *cvt; /* 0C CVT address (input) */ - void *tcb; /* 10 TCB address (input) */ - void *svrb; /* 14 SVRB address (input) */ - void *epa; /* 18 SVC entry address (input) */ - void *ascb; /* 1C ASCB address (input) */ - void *rblink; /* 20 RBLINK address (input) */ - void *jscb; /* 24 JSCB address (input) */ - unsigned unused[2]; /* 28 unused */ -}; /* 30 (48 bytes) */ - -/* note: these functions execute in supervisor state and key 0, be careful */ - -/* __svc() SVC startup code, called by @@CRTSVC, calls svcmain(), returns to @@CRTSVC */ -void __svc(SVCREGS *svcregs) asm("@@SVC"); - -/* svcmain() SVC main function, called by __svc(), returns to __svc() */ -int svcmain(SVCREGS *svcregs /* input registers */, - unsigned *r15 /* output register */, - unsigned *r0 /* output register */, - unsigned *r1 /* output register */) asm("SVCMAIN"); - -/* If using the default SVCMAIN module from the CRENT370 library then these R1 values identify the request */ -#define SVCMAIN_SUP 0 /* request supervisor state */ -#define SVCMAIN_PROB 1 /* request problem state */ -#define SVCMAIN_KEY 2 /* request PSW KEY (R15 value), old value returned in R15 */ -#define SVCMAIN_AUTHON 3 /* request JSCBAUTH ON */ -#define SVCMAIN_AUTHOFF 4 /* request JSCBAUTH OFF */ - -#endif diff --git a/src/crent370/include/clibthrd.h b/src/crent370/include/clibthrd.h deleted file mode 100644 index 67b2bff..0000000 --- a/src/crent370/include/clibthrd.h +++ /dev/null @@ -1,125 +0,0 @@ -#ifndef CLIBTHRD_H -#define CLIBTHRD_H - -/* CLIBTHRD - A thread implementation for the CLIB environment. - - cthread_create Create a thread instance for func(arg1,arg2) - with default stack size (64K). - Returns a CTHDTASK handle or NULL. - - cthread_create_ex Create a thread instance for func(arg1,arg2) - with specified stack size. - Returns a CTHDTASK handle or NULL. - - cthread_delete Destroy CTHDTASK created by cthread_create or - cthread_create_ex functions. - Returns nothing (void). - - cthread_detach Detaches the subtask (TCB) for this thread. - The CTHDTASK handle remains allocated. - Returns the subtask return code. - - cthread_find Returns the CTHDTASK handle for a given TCB - address or NULL if TCB is not a thread. - - cthread_self Returns the CTHDTASK handle for the current thread - or NULL if this TCB is not a thread. - - cthread_get_tcb Returns the TCB for the CTHDTASK handle or TCB - for the current task if CTHDTASK is NULL. - - cthread_post Performs MVS POST of Event Control Block (ECB). - Returns 0, may ABEND if POST fails. - - cthread_wait Waits for ECB to be posted. - Returns ECB value as a positive integer value. - - cthread_timed_wait Waits for ECB to be posted or timer to expire. - The 'bintvl' value indicates the number of .01 - seconds to wait for the ECB to be posted. - Returns ECB value as a positive integer value. - - cthread_push Push a function pointer and argument to the - current thread/task. - Returns 0 if successful. - - cthread_pop Pop a function pointer and argument from the - current thread/task. The function is then: - CTHDPOP_NOEXEC 0=do not execute - CTHDPOP_EXEC 1=execute - CTHDPOP_TRY 2=execute with try() - CTHDPOP_ESTAE 3=execute with ESTAE - Returns function return code. - - cthread_exit Terminates the current thread and saves the - return code value in the CTHDTASK for this - thread. - The thread cleanup routine will pop any - pushed functions (cthread_push) and execute them - inside a try() wrapper. - -*/ -#include "cliblock.h" -#include "clibstae.h" -#include "clibcrt.h" -#include "clibary.h" -#include "clibecb.h" - -typedef struct cthdtask CTHDTASK; /* a subtask instance */ -typedef enum cthdpop CTHDPOP; /* cthread_pop() pop type */ - -enum cthdpop { - CTHDPOP_NOEXEC=0, /* pop func, do not execute */ - CTHDPOP_EXEC, /* pop func, execute */ - CTHDPOP_TRY, /* pop func, execute with try() */ - CTHDPOP_ESTAE /* pop func, execute with ESTAE */ -}; - -/* Each subtask (thread) will have a CTHDTASK */ -struct cthdtask { - char eye[8]; /* 00 eye catcher for dumps */ -#define CTHDTASK_EYE "CTHDTASK" /* ... */ - unsigned tcb; /* 08 subtask TCB address */ - unsigned owntcb; /* 0C owner TCB address (parent) */ - ECB termecb; /* 10 posted by MVS when task ends */ - int rc; /* 14 return code from function */ - unsigned stacksize; /* 18 stack size in bytes */ - void *func; /* 1C subtask function address */ - void *arg1; /* 20 arg1 for subtask function */ - void *arg2; /* 24 arg2 for subtask function */ - unsigned stack[1]; /* 28 stack for subtask */ -}; /* 2C (44 bytes) */ - -CTHDTASK *cthread_create(void *func, void *arg1, void *arg2) asm("@@CTCRTE"); - -CTHDTASK *cthread_create_ex(void *func, void *arg1, void *arg2, unsigned stacksize) asm("@@CTCRTX"); - -void cthread_delete(CTHDTASK **task) asm("@@CTDEL"); - -int cthread_detach(CTHDTASK *task) asm("@@CTDET"); - -CTHDTASK *cthread_find(unsigned tcb) asm("@@CTFIND"); - -CTHDTASK *cthread_self(void) asm("@@CTSELF"); - -unsigned cthread_get_tcb(CTHDTASK *task) asm("@@CTGTCB"); - -int cthread_post(ECB *ecb, unsigned code) asm("@@CTPOST"); - -int cthread_wait(ECB *ecb) asm("@@CTWAIT"); - -int cthread_timed_wait(ECB *ecb, unsigned bintvl, unsigned postcode) asm("@@CTTWAT"); - -int cthread_push(int (*func)(void*), void *arg) asm("@@CTPUSH"); - -int cthread_pop(CTHDPOP type) asm("@@CTPOP"); - -int cthread_exit(int rc) asm("@@CTEXIT"); - -int cthread_lock(int shared, const char *rname) asm("@@CTLOCK"); - -int cthread_unlock(const char *rname) asm("@@CTUNLK"); - -int cthread_yield(void) asm("@@CTYIEL"); - -#endif diff --git a/src/crent370/include/clibtiot.h b/src/crent370/include/clibtiot.h deleted file mode 100644 index 4fbae87..0000000 --- a/src/crent370/include/clibtiot.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef CLIBTIOT_H -#define CLIBTIOT_H - -#include "ieftiot.h" - -/* __tiot() - retieve TIOT address */ -TIOT *__tiot(void) asm("@@TIOT"); - -/* __jobname() - retrieve address of 8 character job name from TIOT */ -const char *__jobname(void) asm("@@JOBNAM"); - -#endif diff --git a/src/crent370/include/clibtmr.h b/src/crent370/include/clibtmr.h deleted file mode 100644 index 0c43003..0000000 --- a/src/crent370/include/clibtmr.h +++ /dev/null @@ -1,128 +0,0 @@ -#ifndef CLIBTMR_H -#define CLIBTMR_H - -#include -#include -#include -#include -#include -#include -#include -#include -#include /* has struct timeval */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -typedef struct tmr TMR; /* timer instance */ -typedef struct tqe TQE; /* timer queue element */ -typedef double TMRSEC; /* timer seconds */ -typedef unsigned int TQEID; /* timer queue element id */ - -struct tmr { - char eye[8]; /* 00 eye catcher for dumps */ -#define TMR_EYE "**TMR**" /* ... eye catcher for dumps */ - char flags; /* 08 processing flags */ -#define TMR_FLAG_INIT 0x80 /* ... timer handle initialized */ -#define TMR_FLAG_RUNNING 0x40 /* ... timer thread running */ -#define TMR_FLAG_QUIESCE 0x20 /* ... timer thread should terminate */ -#define TMR_FLAG_SHUTDOWN 0x10 /* ... timer thread must terminate */ - char unused1[3]; /* 09 unused */ - CTHDTASK *task; /* 0C timer thread handle */ - ECB timeout; /* 10 timeout ECB */ - ECB wakeup; /* 14 wake up ECB */ - TQE **tqe; /* 18 timer queue element array */ - TQEID id; /* 1C next available TQE ID */ -}; /* 20 (32 bytes) */ - -struct tqe { - char eye[8]; /* 00 eye catcher for dumps */ -#define TQE_EYE "**TQE**" /* ... eye catcher for dumps */ - char flags; /* 08 processing flags */ -#define TQE_FLAG_KEEP 0x80 /* ... do not delete after timeout */ -#define TQE_FLAG_RESET 0x40 /* ... reset expires using bintvl */ -#define TQE_FLAG_DISABLED 0x20 /* ... this element is disabled */ - - char unused1; /* 09 unused */ - unsigned short asid; /* 0A address space id */ - unsigned *tcb; /* 0C task control block */ - - TMRSEC expires; /* 10 time this element expires */ - unsigned bintvl; /* 18 timeout hundred's secs (.01 sec) */ - ECB *ecb; /* 1C ECB to post for timeout */ - - int (*func)(void *, TQE*); /* 20 function to call for timeout */ - void *udata; /* 24 user data for timeout function */ - TQEID id; /* 28 TQE ID of this element */ - unsigned unused2; /* 2C unused */ -}; /* 30 (48 bytes) */ - -/* tmr_secs() get current time as seconds.useconds value (.000001), parm can be NULL */ -TMRSEC tmr_secs(TMRSEC *secs) asm("@@TMSECS"); - -/* tmr_get() returns pointer to the static TMR struct */ -TMR *tmr_get(void) asm("@@TMRGET"); - -/* tmr_init() initialize the static TMR struct */ -int tmr_init(void) asm("@@TMINIT"); - -/* tmr_start() start timer thread if needed */ -int tmr_start(void) asm("@@TMSTRT"); - -/* tmr_stop() stop timer thread if needed */ -int tmr_stop(void) asm("@@TMSTOP"); - -/* tmr_thread() timer processing thread, created by tmr_start() */ -int tmr_thread(void *arg1, void *arg2) asm("@@TMTHRD"); - -/* tmr_id() returns next unique timer queue element id */ -TQEID tmr_id(void) asm("@@TMRID"); - -/* tmr_ecb() create timer element for ECB, returns id of timer element */ -TQEID tmr_ecb(ECB *ecb, unsigned bintvl) asm("@@TMRECB"); - -/* tmr_ecb_keep() create timer element for ECB, returns id of timer element, TQE will be kept and disabled after timeout */ -TQEID tmr_ecb_keep(ECB *ecb, unsigned bintvl) asm("@@TMRECK"); - -/* tmr_ecb_every() create timer element for ECB, returns id of timer element, ecb will be posted every bintvl (1==.01 sec) */ -TQEID tmr_ecb_every(ECB *ecb, unsigned bintvl) asm("@@TMRECE"); - -/* tmr_func() create timer element for function, returns id of timer element */ -TQEID tmr_func(int (*func)(void*, TQE*), void *udata, unsigned bintvl) asm("@@TMRFUN"); - -/* tmr_func_keep() create timer element for function, returns id of timer element, TQE will be kept and disabled after timeout */ -TQEID tmr_func_keep(int (*func)(void*, TQE*), void *udata, unsigned bintvl) asm("@@TMRFUK"); - -/* tmr_func_every() create timer element for function, returns id of timer element, func will be called every bintvl (1==.01 sec) */ -TQEID tmr_func_every(int (*func)(void*, TQE*), void *udata, unsigned bintvl) asm("@@TMRFUE"); - -/* tqe_get() returns TQE handle for TQEID from static TMR handle */ -TQE *tqe_get(TQEID id) asm("@@TQEGET"); - -/* tqe_purge() removes timer element from static TMR handle and deletes the timer element */ -int tqe_purge(TQEID id) asm("@@TQEPRG"); - -/* tqe_enable() enable timer element */ -int tqe_enable(TQEID id) asm("@@TQEENA"); - -/* tqe_disable() disable timer element */ -int tqe_disable(TQEID id) asm("@@TQEDIS"); - -/* tqe_reset() resets timer element bintvl value */ -int tqe_reset(TQEID id, unsigned bintvl) asm("@@TQERST"); - -/* I N T E R N A L U S E O N L Y */ - -/* tqe_new() create a TQE record from parms, returns TQE handle (internal use only) */ -TQE *tqe_new(ECB *ecb, int (*func)(void*, TQE*), void *udata, unsigned bintvl, char flags) asm("@@TQNEW"); - -#endif /* CLIBTMR_H */ diff --git a/src/crent370/include/clibtry.h b/src/crent370/include/clibtry.h deleted file mode 100644 index eaecf06..0000000 --- a/src/crent370/include/clibtry.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef CLIBTRY_H -#define CLIBTRY_H - -#ifndef CLIBSTAE_H -#include -#endif - -/* call func with ESTAE protection, RC0=success otherwise failed */ -/* note: used when we want the failure reason returned in rc -** when rc is negative value the ESTAE CREATE failed. -** otherwise rc is a 0x00sssuuu formatted value. -** sss is system abend code, uuu is user abend code. -*/ -extern int ___try(void *func, ...); -#define try(func,...) ___try((func), __VA_ARGS__) - -/* call func with ESTAE protection. Returns 0 unless the ESTAE create fails */ -/* note: used only when we don't care the failure reason */ -extern int __try(void *func, ...); - -/* abend report via WTO messages */ -extern int __abrpt(ESTAE_OP op, DUMP_OP); -#define abendrpt(eop,dop) __abrpt((eop),(dop)) - -/* return last ___try() or __try() rc/abend code */ -unsigned ___tryrc(void); -#define tryrc() ___tryrc() - -/* return last ___try() or __try() rc/abend code */ -unsigned __tryrc(void); - -#endif diff --git a/src/crent370/include/clibtso.h b/src/crent370/include/clibtso.h deleted file mode 100644 index eacdfcd..0000000 --- a/src/crent370/include/clibtso.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef CLIBTSO_H -#define CLIBTSO_H - -/* tsocmd() - link to pgm as TSO command processor */ -int tsocmd(const char *pgm, const char *buf); - -/* tsocmdf() - link to pgm as TSO command processor, format buffer */ -int tsocmdf(const char *pgm, const char *fmt, ...); - -#endif diff --git a/src/crent370/include/clibvsam.h b/src/crent370/include/clibvsam.h deleted file mode 100644 index e8dae75..0000000 --- a/src/crent370/include/clibvsam.h +++ /dev/null @@ -1,712 +0,0 @@ -#ifndef CLIBVSAM_H -#define CLIBVSAM_H - -typedef struct vsfile VSFILE; /* VSAM file handle */ -typedef enum vstype VSTYPE; /* type: KSDS/ESDS/RRDS */ -typedef enum vsaccess VSACCESS; /* access: DIR/SEQ/DYNAM */ -typedef enum vsmode VSMODE; /* mode: IN/OUT/UPD */ - -typedef struct acb ACB; /* ACCESS METHOD CONTROL BLOCK */ -typedef struct rpl RPL; /* REQUEST PARAMETER LIST */ - -typedef struct shwpl SHWPL; /* SHOWCAT parameter list */ -typedef struct shwout SHWOUT; /* SHOWCAT return area (not D or I) */ -typedef struct shwoutdi SHWOUTDI; /* SHOWCAT return area (D or I) */ - -#pragma pack(1) -struct acb { /* ACCESS METHOD CONTROL BLOCK */ - unsigned char acbid; /* 00 ACB IDENTIFIER */ -#define ACBIDVAL 0xA0 /* ... IDENTIFIER VALUE - X'A0' */ - - unsigned char acbstyp; /* 01 ACB SUBTYPE */ -#define ACBSVSAM 0x10 /* ... VSAM SUBTYPE */ -#define ACBSVRP 0x11 /* ... VRP SUBTYPE */ -#define ACBSVTAM 0x20 /* ... VTAM SUBTYPE */ -#define ACBS3540 0x40 /* ... 3540 SUBTYPE */ - - unsigned short acbleng; /* 02 ACB LENGTH IN BYTES */ - - void *acbamwap; /* 04 ACCESS METHOD WORKAREA POINTER */ - void *acbinrtm; /* 08 DATA MANAGEMENT INTERFACE ROUTINE - ADDRESS; VTAM REQUEST PROCESSOR - ADDRESS */ - - unsigned char acbmacr1; /* 0C MACRF FIRST BYTE */ -#define ACBKEY 0x80 /* ... KEYED PROCESSING VIA INDEX */ -#define ACBADR 0x40 /* ... ADDRESSED PROCESSING */ -#define ACBCNV 0x20 /* ... PROCESSING BY CONTROL INTERVAL */ -#define ACBSEQ 0x10 /* ... SEQUENTIAL PROCESSING */ -#define ACBDIR 0x08 /* ... DIRECT PROCESSING */ -#define ACBIN 0x04 /* ... INPUT PROCESSING USING GET OR - READ */ -#define ACBOUT 0x02 /* ... OUTPUT PROCESSING USING PUT OR - WRITE */ -#define ACBUBF 0x01 /* ... USER CONTROLS BUFFERS - - VALID ONLY WITH CONTROL - INTERVAL PROCESSING */ - - unsigned char acbmacr2; /* 0D MACRF SECOND BYTE */ -#define ACBNTRUN 0x80 /* ... DEFINED ONLY WHEN OUTPUT AND - ACBRECAF IS ON. THE SYSTEM IS TO - ENSURE THAT THE LOGICAL RECORD - LENGTH WILL BE THE SAME WHEN THE - DATA IS READ (NO BLANK TRUNCATION). - BIT NOT DEFINED FOR INPUT. */ -#define ACBCCANY 0x40 /* ... THE CONTROL CHARACTER TYPE IS - INDICATED IN RPLOPT4 AFTER EACH - GET. NOT DEFINED FOR OUTPUT. */ -#define ACBSKP 0x10 /* ... SKIP SEQUENTIAL PROCESSING */ -#define ACBLOGON 0x08 /* ... LOGON REQUESTS TO AN APPLICATION - WILL BE REJECTED(VTAM) */ -#define ACBRST 0x04 /* ... SET DATA SET TO EMPTY STATE */ -#define ACBDSN 0x02 /* ... BASIC SUBTASK SHARED CONTROL - BLOCK CONNECTION ON COMMON - DSNAMES */ -#define ACBAIX 0x01 /* ... ENTITY TO BE PROCESSED IS AIX - PATH SPECIFIED IN THE GIVEN - DDNAME */ - - unsigned char acbbstno; /* 0E NUMBER OF CONCURRENT STRINGS FOR - AIX PATH */ - unsigned char acbstrno; /* 0F NUMBER OF CONCURRENT REQUEST - STRINGS */ - - unsigned short acbbufnd; /* 10 NUMBER OF DATA RECORD BUFFERS */ - unsigned short acbbufni; /* 12 NUMBER OF INDEX RECORD BUFFERS */ - - unsigned char acbmacr3; /* 14 MACRF THIRD BYTE */ -#define ACBLSR 0x40 /* ... LOCAL SHARED RESOURCE */ -#define ACBGSR 0x20 /* ... GLOBAL SHARED RESOURCE */ -#define ACBICI 0x10 /* ... IMPROVED CONTROL INTERVAL - PROCESSING */ -#define ACBDFR 0x08 /* ... DEFER WRITES */ -#define ACBSIS 0x04 /* ... SEQUENTIAL INSERT STRATEGY */ -#define ACBNCFX 0x02 /* ... NFX=0/CFX=1 */ - - unsigned char acbmacr4; /* 15 RESERVED */ - unsigned short acbjbuf; /* 16 NUMBER OF JOURNAL BUFFERS(VSAM) */ - - unsigned char acbrecfm; /* 18 RECORD FORMAT */ -#define ACBRECAF 0x80 /* ... JES FORMAT */ - - unsigned char acbcctyp; /* 19 CONTROL CHARACTER TYPE */ -#define ACBTRCID 0xC0 /* ... 3800 TRANSLATE TABLE (VS1) */ -#define ACBCCASA 0x04 /* ... ASA CONTROL CHARACTERS */ -#define ACBCCMCH 0x02 /* ... MACHINE CONTROL CHARACTERS */ - - unsigned char acbdsor1; /* 1A DSORG FIRST BYTE */ -#define ACBCRNCK 0x80 /* ... NO CHECK BY RESTART FOR - MODIFICATIONS SINCE LAST - CHECKPOINT */ -#define ACBCRNRE 0x40 /* ... DATA ADDED SINCE LAST CHECKPOINT - NOT ERASED BY RESTART AND NO - REPOSITION TO LAST CHECKPOINT - TAKES PLACE */ -#define ACBDVIND 0x20 /* ... DEVICE INDICATR */ -#define ACBOPTJ 0x20 /* ... 3800 CONTROL CHAR PRESENT */ - - unsigned char acbdsor2; /* 1B DSORG SECOND BYTE */ -#define ACBDORGA 0x08 /* ... ACB INDICATOR */ - - void *acbmsgar; /* 1C MSG AREA PTR */ - void *acbpassw; /* 20 PASSWORD ADDRESS */ - void *acbexlst; /* 24 USER EXIT LIST ADDRESS */ - - union { - /* BEFORE ACB IS OPENED */ - /* FOR VTAM, ACBDDNM IS INITIALIZED TO X'FF00000000000000') */ - char acbddnm[8]; /* 28 DDNAME - MUST BE THE SAME AS THE - NAME FIELD ON THE DD STATEMENT - DEFINING THE DATA SET ASSOCIATED - WITH THIS ACB */ - /** AFTER ACB IS OPENED */ - struct { - unsigned short acbtiot; /* 28 OFFSET FROM TIOT ORIGIN TO THE - TIOELNGH FIELD IN THE TIOT ENTRY - FOR THE DD STATEMENT FOR THIS ACB */ - unsigned char acbinfl; /* 2A CONTENTS AND MEANING ARE THE SAME - AS ACBINFL1 (BEFORE OPEN) */ - - unsigned char acbameth;/* 2B ACCESS METHOD TYPE */ -#define ACBVTAM 0x60 /* ... VTAM */ -#define ACBSUBS 0x41 /* ... SUBSYSTEMS */ -#define ACBTCAM 0x31 /* ... TCAM */ -#define ACBRCI 0x23 /* ... JES/RCI */ -#define ACBRTAM 0x22 /* ... JES/RTAM */ -#define ACBJAM 0x21 /* ... JES/JAM */ -#define ACBVSAM 0x11 /* ... VSAM */ - - unsigned char acberfl; /* 2C FOR JES, CONTENTS AND MEANING ARE - THE SAME AS ACBERFLG (BEFORE - OPEN) - NOT USED BY VSAM/VTAM */ - unsigned char acbdeb[3];/* 2D DEB ADDRESS */ - }; - }; - - unsigned char acboflgs; /* 30 OPEN / CLOSE FLAGS */ -#define ACBEOV 0x20 /* ... EOV CONCATENATION */ -#define ACBOPEN 0x10 /* ... THE ACB IS OPEN */ -#define ACBDSERR 0x08 /* ... NO FURTHER REQUESTS ARE - POSSIBLE AGAINST THIS ACB */ -#define ACBEXFG 0x02 /* ... USER EXIT FLAG - SET TO 0 BY AN - I/O SUPPORT WHEN A USER EXIT - TAKEN; SET TO 1 ON RETURN */ -#define ACBLOCK 0x02 /* ... ALTERNATE NAME FOR ACBEXFG */ -#define ACBIOSFG 0x01 /* ... OPEN/CLOSE IN CONTROL - - THE ACB IS BEING PROCESSED BY AN - I/O SUPPORT FUNCTION */ -#define ACBBUSY 0x01 /* ... ALTERNATE NAME FOR ACBIOSFG */ - - /* BEFORE ACB IS OPENED */ - unsigned char acberflg; /* 31 ERROR FLAGS - FOR VSAM/VTAM THIS - FIELD IS NOT MOVED BY OPEN AND - ERROR FLAGS ARE RETURNED HERE; - FOR JES THIS FIELD IS MOVED TO - ACBERFL BY OPEN */ - /* THE FOLLOWING CODES ARE COMMON TO ALL ACCESS METHODS. */ -#define ACBOALR 0x04 /* ... THE ACB IS ALREADY OPEN */ -#define ACBCALR 0x04 /* ... THE ACB IS NOT OPEN */ - - unsigned char acbinfl1; /* 32 FIRST IND FLAGS */ - /* BIT 0 - X'80' MATCHES WITH BIT 0 OF THE DCBMACR FIELD, - INDICATING AN EXCP DCB. THIS BIT IS USED TO - DIFFERENTIATE BETWEEN AN ACB AND A DCB AND MUST NEVER - BE ASSIGNED IN THE ACB. */ -#define ACBJEPS 0x40 /* ... JEPS IS USING THIS ACB */ -#define ACBIJRQE 0x20 /* ... AN RQE IS HELD BY JAM */ -#define ACBCAT 0x10 /* ... ACB FOR VSAM CATALOG */ -#define ACBSCRA 0x08 /* ... CATALOG CONTROL BLOCK - SYSTEM AREA */ -#define ACBUCRA 0x04 /* ... CATALOG CONTROL BLOCK - USER AREA */ -#define ACBVVIC 0x02 /* ... DATA SET BEING OPENED - IS SYS1.VVIC */ -#define ACBSDS 0x02 /* ... OPEN AS SYSTEM DATA SET */ -#define ACBBYPSS 0x01 /* ... BYPASS SECURITY ON OPEN - IF CALLER AUTH */ - - unsigned char acbinfl2; /* 33 2ND IND FLAGS */ -#define ACBCBIC 0x20 /* ... OPEN WITH CONTROL BLOCKS - IN COMMON STORAGE AREA */ -#define ACBISHRD 0x04 /* ... IGNORE SHR DASD */ - - /* NOT MOVED BY OPEN */ - void *acbujfcb; /* 34 USER JFCB ADDRESS */ - - unsigned acbbufsp; /* 38 VIRTUAL CORE AVAILABLE FOR BUFFERS*/ - unsigned short acbblksz; /* 3C BLOCKSIZE */ - unsigned short acblrecl; /* 3E LOGICAL RECORD LENGTH */ - - void *acbuaptr; /* 40 USER WORKAREA ADDRESS; - CAXWA ADDRESS FOR CATALOG OPEN */ - void *acbcbmwa; /* 44 CONTROL BLOCK MANIPULATION WORKAREA - ADDRESS */ - union { - void *acbapid; /* 48 APPLICATION ID */ - void *acbamax; /* 48 ACCESS METHOD ACB EXTENSION - ADDRESS(VTAM) */ - }; -}; /* 4C (76 bytes) */ -#pragma pack(reset) - -#pragma pack(1) -struct rpl { - unsigned char rplid; /* 00 RPL IDENTIFIER */ -#define RPLIDD 0x00 /* ... IDENTIFIER VALUE - X'00' */ - - unsigned char rplstyp; /* 01 RPL SUBTYPE - SET TO - X'00' FOR DATA MANAGEMENT AND - X'0D' FOR JECS */ -#define RPLSVSAM 0x10 /* ... VSAM SUBTYPE */ -#define RPLSVRP 0x11 /* ... VRP SUBTYPE */ -#define RPLSVTAM 0x20 /* ... VTAM SUBTYPE */ -#define RPLS3540 0x40 /* ... 3540 SUBTYPE */ -#define RPLCRID 0xFF /* ... CRPL ID (VTAM) */ - - unsigned char rplreq; /* 02 RPL REQUEST TYPE */ -#define RPLGET 0x00 /* ... GET */ -#define RPLPUT 0x01 /* ... PUT */ -#define RPLPOINT 0x03 /* ... POINT */ -#define RPLERASE 0x05 /* ... ERASE */ -#define RPLJSFMT 0x07 /* ... JES FORMAT REQUEST */ - /* THE FOLLOWING CODES ARE NOT STORED IN RPLREQ, BUT ARE */ - /* AVAILABLE IN REGISTER 0 WHEN THE FUNCTION IS ENTERED */ - /* AND STORED IN RPLREQ DURING PROCESSING OF THE FUNCTION. */ -#define RPLCHECK 0x02 /* ... CHECK */ -#define RPLENDRE 0x04 /* ... ENDREQ */ -#define RPLVERIF 0x06 /* ... VERIFY */ -#define RPLIMPRT 0x07 /* ... IMPORT */ -#define RPLPFMTD 0x08 /* ... DATA PREFORMAT */ -#define RPLPFMTI 0x09 /* ... INDEX PREFORMAT */ -#define RPLFRCIO 0x0A /* ... FORCE I/O */ -#define RPLCNVTA 0x10 /* ... CNVTAD */ -#define RPLMNTAC 0x11 /* ... MNTACQ(VSAM) */ -#define RPLWRITE 0x11 /* ... WRITE(VTAM) */ -#define RPLACQRA 0x12 /* ... ACQRANGE(VSAM) */ -#define RPLRESET 0x12 /* ... RESET(VTAM) */ -#define RPLTERM 0x13 /* ... TERMRPL */ -#define RPLDO 0x13 /* ... DO(VTAM) */ -#define RPLQUISE 0x15 /* ... SETLOGON(VTAM) */ -#define RPLSMLGO 0x16 /* ... SIMLOGON(VTAM) */ -#define RPLOPNDS 0x17 /* ... OPNDST(VTAM) */ -#define RPLCHNG 0x19 /* ... CHANGE(VTAM) */ -#define RPLINQIR 0x1A /* ... INQUIRE(VTAM) */ -#define RPLINTPT 0x1B /* ... INTRPRET(VTAM) */ -#define RPLREAD 0x1D /* ... READ(VTAM) */ -#define RPLSLICT 0x1E /* ... SOLICIT(VTAM) */ -#define RPLCLOSE 0x1F /* ... CLSDST(VTAM) */ -#define RPLCLACB 0x21 /* ... CLOSEACB(VTAM) */ -#define RPLSNDCD 0x22 /* ... SEND(VTAM) */ -#define RPLRCVCD 0x23 /* ... RECEIVE(VTAM) */ -#define RPLRSRCD 0x24 /* ... RESETSR(VTAM) */ -#define RPLSSCCD 0x25 /* ... SESSIONC(VTAM) */ -#define RPLSDCMD 0x27 /* ... SENDCMD(VTAM) */ -#define RPLRVCMD 0x28 /* ... RCVCMD(VTAM) */ -#define RPLTREQS 0x29 /* ... REQSESS(VTAM) */ -#define RPLTOPNS 0x2A /* ... OPNSEC(VTAM) */ -#define RPLTCLSS 0x2B /* ... CLSSEC(VTAM) */ -#define RPLTRMS 0x2C /* ... TRMSESS(VTAM) */ - - union { - unsigned char rpllen; /* 03 LENGTH OF THIS RPL */ - unsigned char rpllen2; /* 03 ALTERNATE NAME FOR RPLLEN */ - }; - - void *rplplhpt; /* 04 POINTER TO PLACEHOLDER */ - void *rplecb; /* 08 INTERNAL ECB OR - POINTER TO EXTERNAL ECB */ - /* ECB FLAGS */ -#define RPLWAIT 0x80 /* ... A REQUEST HAS BEEN ISSUED */ -#define RPLPOST 0x40 /* ... THE REQUEST HAS COMPLETED */ - - union { - unsigned rplfdbwd; /* 0C FEEDBACK WORD */ - struct { - unsigned char rplstat; /* 0C CURRENT RPL STATUS */ -#define RPLFUNCD rplstat /* ... PROB DET FUNCT CD */ - unsigned char rplrtncd; /* 0D RPL RETURN CODE */ -#define RPLNOERR 0x00 /* ... NORMAL RETURN */ -#define RPLBLKER 0x04 /* ... INVALID CONTROL BLOCK */ -#define RPLCBLKE 0x04 /* ... ALTERNATE NAME FOR RPLBLKER */ -#define RPLLOGER 0x08 /* ... ILLOGICAL REQUEST */ -#define RPLLOGIC 0x08 /* ... ALTERNATE NAME FOR RPLLOGER */ -#define RPLPHYER 0x0C /* ... PHYSICAL I/O ERROR */ -#define RPLPHYSC 0x0C /* ... ALTERNATE NAME FOR RPLPHYER */ -#define RPLNGRCC 0x10 /* ... A CONDITIONAL COMMAND WAS ISSUED - BUT THE CONDITION WAS NOT - MET(VTAM) */ -#define RPLSPECC 0x14 /* ... A TEMPORARY OUT-OF-CORE - SITUATION EXISTS(VTAM) */ -#define RPLCMDRT 0x18 /* ... THE REQUEST WAS CANCELLED BY THE - RESET COMMAND(VTAM) */ -#define RPLPURGE 0x1C /* ... THE COMMAND WAS PURGED(VTAM) */ -#define RPLVTMNA 0x20 /* ... VTAM IS NOT ACTIVE(VTAM) */ -#define RPLSYERR 0x24 /* ... SYSTEM ERROR(VTAM) */ -#define RPLDEVDC 0x28 /* ... DIAL LINE IS DISCONNECTED(VTAM) */ -#define RPLLIMEX 0x2C /* ... RESPONSE LIMIT EXCEEDED(VTAM) */ -#define RPLEXRQ 0x30 /* ... EXCEPTION REQUEST RECEIVED(VTAM) */ -#define RPLEXRS 0x34 /* ... EXCEPTION RESPONSE RECEIVED(VTAM)*/ -#define RPLNOIN 0x38 /* ... NO INPUT AVAILABLE(VTAM) */ -#define RPLVABND 0x3C /* ... VTAM ENCOUNTERED ABEND CONDITION */ - }; - }; - - union { - unsigned char rplcmpon; /* 0E COMPONENT ISSUING CODE(VSAM) */ - unsigned char rplfdb2; /* 0E REASON CODE(VTAM) */ -#define RPLERLK 0x80 /* ... ERROR LOCK SET */ -#define RPLRVID 0x40 /* ... RVI RECEIVED */ -#define RPLATND 0x20 /* ... ATTN RECEIVED */ -#define RPLDVUNS 0x10 /* ... DEVICE UNUSABLE */ -#define RPLIOERR 0x08 /* ... I/O ERROR TYPE- 0=INPUT/1=OUTPUT */ -#define RPLDLGFL 0x04 /* ... DIALOG INIT FAILED */ -#define RPLCUERR 0x02 /* ... CONTROL UNIT FAILURE */ -#define RPLSTSAV 0x01 /* ... SENSE BYTES PRESENT */ - }; - - union { - unsigned char rplerrcd; /* 0F ERROR CODE(VSAM) */ - unsigned char rplfdb3; /* 0F DATA FLAGS(VTAM) */ -#define RPLUINPT 0x80 /* ... UNSOLICITED INPUT */ -#define RPLSV32 0x40 /* ... RESERVED */ -#define RPLREOB 0x20 /* ... END OF BLOCK */ -#define RPLREOM 0x10 /* ... END OF MESSAGE */ -#define RPLREOT 0x08 /* ... END OF TRANSMISSION */ -#define RPLLGFRC 0x04 /* ... LOGOFF DETECTED */ -#define RPLRLG 0x02 /* ... LEADING GRAPHICS RECEIVED */ -#define RPLRDSOH 0x01 /* ... START OF HEADER (SOH) RECEIVED */ - }; - - union { - unsigned short rplkeyle; /* 10 KEY LENGTH (PROC=GEN) */ - unsigned short rplkeyl; /* 10 ALTERNATE NAME FOR RPLKEYLE */ - }; - - unsigned short rplstrid; /* 12 CCW STRING IDENTIFIER */ - void *rplcchar; /* 14 POINTER TO CONTROL CHARACTER FOR - UNIT RECORD DEVICES */ - void *rpldacb; /* 18 POINTER TO DATA ACB */ - void *rpltcbpt; /* 1C POINTER TO TCB */ - void *rplarea; /* 20 POINTER TO AREA CONTAINING DATA - RECORD */ - union { - void *rplarg; /* 24 POINTER TO SEARCH ARGUMENT; - POINTER TO RELATIVE ADDRESS FOR - POINT OPERATION; - POINTER TO SETPRT PARMLIST */ - struct { - unsigned char rplsaf[2];/* 24 SOURCE ADDRESS FIELD(VTAM) */ - unsigned char rpldaf[2];/* 26 DESTINATION ADDRESS FIELD(VTAM) */ - }; - }; - - union { - unsigned rploptcd; /* 28 OPTION CODES */ - struct { - unsigned char rplopt1; /* 28 OPTION BYTE 1 */ -#define RPLLOC 0x80 /* ... LOCATE MODE; MOVE MODE IF 0 */ -#define RPLDIR 0x40 /* ... DIRECT ACCESS */ -#define RPLSEQ 0x20 /* ... SEQUENTIAL ACCESS */ -#define RPLSKP 0x10 /* ... SKIP SEQUENTIAL ACCESS */ -#define RPLASY 0x08 /* ... ASYNCHRONOUS PROCESSING */ -#define RPLKGE 0x04 /* ... SEARCH KEY GT/EQ */ -#define RPLGEN 0x02 /* ... GENERIC KEY REQUEST */ -#define RPLECBSW 0x01 /* ... EXTERNAL ECB */ -#define RPLECBIN 0x01 /* ... ALTERNATE NAME FOR RPLECBSW */ - - unsigned char rplopt2; /* 29 OPTION BYTE 2 */ -#define RPLKEY 0x80 /* ... KEYED ACCESS */ -#define RPLADR 0x40 /* ... ADDRESSED ACCESS */ -#define RPLADD 0x40 /* ... ALTERNATE NAME FOR RPLADR */ -#define RPLCNV 0x20 /* ... CONTROL INTERVAL ACCESS */ -#define RPLBWD 0x10 /* ... FWD=0/BWD=1 */ -#define RPLLRD 0x08 /* ... ARD=0/LRD=1 */ -#define RPLWAITX 0x04 /* ... AYNCH PROC WAIT */ -#define RPLUPD 0x02 /* ... UPDATE */ -#define RPLNSP 0x01 /* ... NOTE STRING POSITION */ - - unsigned char rplopt3; /* 2A OPTION BYTE 3 */ -#define RPLEODS 0x80 /* ... END OF USER SYSOUT */ -#define RPLSFORM 0x40 /* ... SPECIAL FORM ON REMOTE PRINTER */ -#define RPLBLK 0x20 /* ... BLOCKED UCS DATA CHECKS - FIXED BLOCK PROCESSING */ -#define RPLVFY 0x10 /* ... VERIFY UCS/FCB INFORMATION */ -#define RPLFLD 0x08 /* ... LOAD UCS BUFFER IN FOLD MODE */ -#define RPLFMT 0x02 /* ... FCB LOAD */ -#define RPLFRMT 0x06 /* ... UCS LOAD IF 00 */ -#define RPLALIGN 0x01 /* ... ALIGN FCB BUFFER LOADING */ - - unsigned char rplopt4; /* 2B OPTCD BYTE 4 */ -#define RPLENDTR 0x80 /* ... 3800 END OF TRANSMISSION(VS1) */ -#define RPLMKFRM 0x40 /* ... 3800 MARK FORM (VS1) */ - /* NO MORE THAN ONE OF THE FOLLOWING THREE BITS CAN BE ON. */ - /* ONE OF THEM IS SET ONLY WHEN ACBCCANY IS ON AND THE */ - /* OPERATION IS INPUT. */ -#define RPLCTA 0x10 /* ... RPLCCHAR POINTS TO AN ANSI - CONTROL CHARACTER */ -#define RPLCTM 0x08 /* ... RPLCCHAR POINTS TO A MACHINE - CONTROL CHARACTER */ -#define RPLCTO 0x04 /* ... OTHER FORMAT. - RPLCCHAR POINTS TO A CODE BYTE - THAT IDENTIFIES THE FORMAT. - A CODE OF X'5A' MEANS CPDS. */ - }; - }; - - union { - RPL *rplnxtrp; /* 2C POINTER TO NEXT RPL */ - RPL *rplchain; /* 2C ALTERNATE NAME FOR RPLNXTRP */ - }; - - unsigned rplrlen; /* 30 LENGTH OF RECORD */ - unsigned rplbufl; /* 34 USER BUFFER LENGTH */ - - union { - unsigned rploptc2; /* 38 VTAM OPTIONS */ - struct { - unsigned char rplopt5; /* 38 OPTION BYTE 5 */ -#define RPLDLGIN 0x80 /* ... CONTINUE READING IN SPECIFIC - TERMINAL MODE; IF 0, CONTINUE - READING IN ANY TERMINAL MODE */ -#define RPLSSNIN 0X40 /* ... CONTINUE DIALOG WITH THE SAME - TERMINAL; IF 0, END DIALOG WITH - THAT TERMINAL */ -#define RPLPSOPT 0x20 /* ... PASS TERMINAL TO REQUESTING - APPLICATION; IF 0, MAKE TERMINAL - AVAILABLE TO ANY APPLICATION */ -#define RPLNERAS 0x10 /* ... WRITE TO 3270 BUT DO NOT ERASE - WHAT IS CURRENTLY DISPLAYED */ -#define RPLEAU 0x08 /* ... WRITE TO 3270 AND ERASE - UNPROTECTED FIELDS */ -#define RPLERACE 0x04 /* ... WRITE TO 3270 AND ERASE - CURRENT DISPLAY */ -#define RPLNODE 0x02 /* ... READ FROM ANY TERMINAL; IF 0, - READ FROM A SPECIFIC TERMINAL */ -#define RPLWROPT 0x01 /* ... CONVERSATIONAL MODE; IF 0, - NON-CONVERSATIONAL MODE */ - - unsigned char rplopt6; /* 39 OPTION BYTE 6 */ -#define RPLEOB 0x80 /* ... WRITE A BLOCK OF DATA */ -#define RPLEOM 0x40 /* ... WRITE THE LAST BLOCK OF A MESSAGE*/ -#define RPLEOT 0x20 /* ... WRITE THE LAST BLOCK OF THE - TRANSMISSION */ -#define RPLCOND 0x10 /* ... DO NOT STOP OPERATION IF STARTED - (USED WITH RESET REQUEST) */ -#define RPLNCOND 0x08 /* ... STOP OPERATION IMMEDIATELY - (USED WITH RESET REQUEST) */ -#define RPLLOCK 0x04 /* ... RESET ERROR LOCK TO UNLOCKED - STATUS */ -#define RPLRSV67 0x02 /* ... RESERVED */ -#define RPLRSV68 0x01 /* ... RESERVED */ - - unsigned char rplopt7; /* 3A OPTION BYTE 7 */ -#define RPLCNALL 0x80 /* ... ALL TERMINALS IN OPNDST LIST MUST - BE AVAILABLE BEFORE ANY ARE - CONNECTED */ -#define RPLCNANY 0x40 /* ... CONNECT ANY ONE TERMINAL IN - OPNDST LIST */ -#define RPLCNIMM 0x20 /* ... RESERVED */ -#define RPLQOPT 0x10 /* ... QUEUE THE OPNDST REQUEST IF IT - CANNOT BE SATISFIED IMMEDIATELY; - IF 0, REJECT THE OPNDST REQUEST - IF IT CANNOT BE SATISFIED - IMMEDIATELY */ -#define RPLTPOST 0x08 /* ... RPL ALREADY UNDER PSS */ -#define RPLRLSOP 0x04 /* ... SCHEDULE THE RELREQ EXIT OF THE - REQUIRED TERMINAL IMMEDIATELY; - IF 0, EITHER WAIT FOR THE TERMINAL - TO BECOME AVAILABLE OR REJECT THE - REQUEST IF THE TERMINAL IS BUSY - (DEPENDS ON THE SETTING OF - RPLQOPT) */ -#define RPLTCRNO 0x02 /* ... CLOSE IN PROCESS FOR PO INTERFACE*/ -#define RPLRSV78 0x01 /* ... RESERVED */ - - unsigned char rplopt8; /* 3B OPTION BYTE 8 */ -#define RPLODACQ 0x80 /* ... THE APPLICATION REQUIRES - A SPECIFIC TERMINAL */ -#define RPLODACP 0x40 /* ... THE APPLICATION WILL ACCEPT ANY - TERMINAL DESIRING LOGON */ -#define RPLODPRM 0x20 /* ... A SPECIFIC TERMINAL IS TO BE - PREEMPTED EVEN THOUGH ANOTHER - APPLICATION IS HOLDING - IT (TOLTEP ONLY) */ -#define RPLPEND 0x10 /* ... PREEMPT THE TERMINAL AFTER ALL - PENDING OPERATIONS ARE COMPLETED - (TOLTEP ONLY) */ -#define RPLSESS 0x08 /* ... PREEMPT THE TERMINAL AFTER - COMPLETION OF THE CURRENT DIALOG - SESSION (TOLTEP ONLY) */ -#define RPLACTV 0x04 /* ... PREEMPT THE TERMINAL IF CONNECTED - BUT NOT BUSY (TOLTEP ONLY) */ -#define RPLUNCON 0x02 /* ... PREEMPT THE TERMINAL IMMEDIATELY - (TOLTEP ONLY) */ -#define RPLRSV88 0x01 /* ... RESERVED */ - }; - }; - - union { - unsigned char rplrbar[8]; /* 3C RBA RETURN LOCATION */ - struct { - unsigned char rplaixpc[2];/* 3C AIX POINTER COUNT */ - unsigned char rplaixid; /* 3E AIX POINTER TYPE */ -#define RPLAXPKP 0x80 /* ... RBA=1/PRIME=0 */ - unsigned char unused1; /* 3F RESERVED */ - unsigned char rpldddd[4];/* 40 RETURN AREA FOR RELATIVE BYTE - ADDRESS */ - }; - }; - - union { - unsigned char rplextds; /* 44 EXIT DEFINITIONS */ - unsigned char rplextd1; /* 44 ALTERNATE NAME FOR RPLEXTDS */ -#define RPLEXSCH 0x80 /* ... AN EXIT HAS BEEN SCHEDULED */ -#define RPLNEXIT 0x40 /* ... NO EXIT WAS SPECIFIED */ -#define RPLEXIT 0x20 /* ... ASYNCH EXIT */ -#define RPLTCRYP 0x08 /* ... IF ON, ENCRYPTION FEATURE REQ */ -#define RPLNIB 0x04 /* ... THE RPLARG FIELD CONTAINS A - POINTER TO THE NIB */ -#define RPLBRANC 0x02 /* ... USE A BRANCH ENTRY TO THE MACRO */ - }; - - unsigned char rplactiv; /* 45 ACTIVE INDICATOR - - X'FF' INDICATES ACTIVE; - X'00' INDICATES INACTIVE */ - - unsigned short rplemlen; /* 46 LENGTH OF THE ERROR MESSAGE AREA */ - void *rplermsa; /* 48 POINTER TO THE ERROR MESSAGE AREA */ -}; /* 4C (76 bytes) */ -#pragma pack(reset) - -#pragma pack(1) -struct shwpl { /* SHOW CATALOG INPUT MAPPING */ - unsigned char shwflgs; /* 00 FIRST SHOW CAT FLAGS */ -#define SHWNAME 0x80 /* ... 1 - NAME SPECIFIED - 0 - CI SPECIFIED */ - unsigned char unsused[3]; /* 01 RESERVED */ - void *shwent; /* 04 NAME/CI ENTRY ADDRESS */ - ACB *shwacb; /* 08 ACB ADDRESS */ - void *shwarea; /* 0C RETURN AREA ADDRESS */ -}; /* 10 (16 bytes) */ -#pragma pack(reset) - -#pragma pack(1) -struct shwout { /* SHOW CATALOG OUTPUT MAPPING */ - unsigned short shwlen1; /* 00 CALLER WORK AREA LENGTH */ - unsigned short shwlen2; /* 02 WORK AREA LENGTH REQUIRED BY - VSAM SHOW CATALOG */ - ACB *shwacbp; /* 04 VSAM CATALOG ACB ADDRESS */ - unsigned char shwtype; /* 08 ENTRY TYPE */ - /* ... C Cluster */ - /* ... G Alternate index */ - /* ... R Path */ - /* ... Y Upgrade set */ - unsigned char shwattr; /* 09 PATH/AIX ATTRIBUTES */ -#define SHWUP 0x80 /* ... UPDATE PATH/UPGRADE - MEMBERSHIP INDICATOR */ - unsigned short shwact; /* 0A ASSOCIATION COUNT */ - char shwass[0]; /* 0C ASSOCIATIONS BEGIN HERE - - NOT D OR I */ -}; - -struct shwoutdi { /* SHOW CATALOG OUTPUT MAPPING (D or I) */ - unsigned short shwlen1; /* 00 CALLER WORK AREA LENGTH */ - unsigned short shwlen2; /* 02 WORK AREA LENGTH REQUIRED BY - VSAM SHOW CATALOG */ - ACB *shwacbp; /* 04 VSAM CATALOG ACB ADDRESS */ - unsigned char shwtype; /* 08 ENTRY TYPE */ - /* ... D Data component */ - /* ... I Index */ - unsigned char unused; /* 09 reserved */ - unsigned short shwdsb; /* 0A AMDSB FIELDS FOR D OR I */ - - - unsigned short shwkeyln; /* 0C KEY LENGTH */ - unsigned char shwcisz[4]; /* 0E CI SIZE FL4 */ - unsigned char shwmrec[4]; /* 12 MAX RECORD SIZE FL4 */ - unsigned short shwact; /* 16 ASSOCIATION COUNT */ - char shwass[0]; /* 18 ASSOCIATIONS BEGIN HERE - - D OR I */ -}; -#pragma pack(reset) - -#pragma pack(1) -struct shwassoc { /* SHOW CATALOG OUTPUT MAPPING */ - unsigned char shwatype; /* 00 ASSOCIATION TYPE */ - unsigned char shwaci[3]; /* 01 ASSOCIATION CI NUMBER */ -}; -#pragma pack(reset) - -/* __vsshwc() - issue SHOWCAT for name, ACB is optional, info returned in buf*/ -extern int __vsshwc(ACB *acb, const char *name, char *buf, int buflen); - - -/* VSFILE handle for accessing VSAM datasets -** Note: keep this struct sync'd with VSFILE DSECT in CLIBVSFI.COPY -*/ -#pragma pack(1) -struct vsfile { - char eye[8]; /* 00 eye catcher for dumps */ -#define VSFILE_EYE "*VSFILE*" /* ... */ - char ddname[8]; /* 08 DD Name */ - char zero; /* 10 zero byte */ - unsigned char flags; /* 11 flags */ -#define VSFILE_FLAG_OPEN 0x80 /* ... VSAM cluster is open */ -#define VSFILE_FLAG_STARTGE 0x40 /* ... start greater then or equal */ -#define VSFILE_FLAG_WRITE 0x20 /* ... write record */ -#define VSFILE_FLAG_ERROR 0x02 /* ... Error has occured */ -#define VSFILE_FLAG_EOF 0x01 /* ... EOF has occured */ - unsigned char rc; /* 12 VSAM return code */ - unsigned char rsn; /* 13 VSAM reason code */ - unsigned char component; /* 14 VSAM component */ - unsigned char type; /* 15 VSTYPE */ - unsigned char access; /* 16 VSACCESS */ - unsigned char mode; /* 17 VSMODE */ - ACB acb; /* 18 Access Control Block */ - unsigned avail; /* 64 available */ - RPL rpl; /* 68 Request Parameter List */ - /* *** MVSGCC align to double work *** */ - void *vsself; /* B8 pointer to self, used in __vserr */ - void *vsreset; /* BC reset function (called by __vserr)*/ -}; /* A0 (192 bytes) */ -#pragma pack(reset) - -enum vstype { - VSTYPE_KSDS=0, /* keyed sequential dataset (key) */ - VSTYPE_ESDS, /* entry sequenced dataset (rba) */ - VSTYPE_RRDS /* relative record number (rrn) */ -}; - -enum vsaccess { - VSACCESS_DIR=0, /* direct access */ - VSACCESS_SEQ, /* sequential access */ - VSACCESS_DYNAM, /* dynamic access */ - VSACCESS_ADR /* address access */ -}; - -enum vsmode { - VSMODE_IN=0, /* input (read only) */ - VSMODE_OUT, /* output (write only) */ - VSMODE_UPD /* update (read and write) */ -}; - -/* __vsopen() - open VSAM cluster */ -extern int __vsopen(const char *dd, VSTYPE, VSACCESS, VSMODE, VSFILE **vsfile); -extern int vsopen(const char *dd, VSTYPE, VSACCESS, VSMODE, VSFILE **vsfile); - -/* __vsclos() - close VSAM cluster */ -extern int __vsclos(VSFILE *vs); -extern int vsclose(VSFILE *vs); - -/* __vsmdfy() - resets common attributes, key's and record's */ -extern int __vsmdfy(VSFILE *vs, void *rec, int reclen, void *key, int keylen); - -/* __vsread() - read record, return record length read, -1=EOF, -2=Error */ -extern int __vsread(VSFILE *vs, void *rec, int reclen, void *key, int keylen); -extern int vsread(VSFILE *vs, void *rec, int reclen, void *key, int keylen); - -/* __vswrit() - write record, return 0=success, otherwise PUT error */ -extern int __vswrit(VSFILE *vs, void *rec, int reclen, void *key, int keylen); -extern int vswrite(VSFILE *vs, void *rec, int reclen, void *key, int keylen); - -/* __vsupdt() - update record, return 0=success, otherwise PUT error */ -extern int __vsupdt(VSFILE *vs, void *rec, int reclen); -extern int vsupdate(VSFILE *vs, void *rec, int reclen); - -/* __vsdel() - delete record, return 0=success, otherwise ERASE error */ -extern int __vsdel(VSFILE *vs, void *rec, int reclen); -extern int vsdelete(VSFILE *vs, void *rec, int reclen); - -/* __vssteq() - start key =, return 0=success, otherwise POINT error */ -extern int __vssteq(VSFILE *vs, void *rec, int reclen, void *key, int keylen); -extern int vssteq(VSFILE *vs, void *rec, int reclen, void *key, int keylen); - -/* __vsstge() - start key >=, return 0=success, otherwise POINT error */ -extern int __vsstge(VSFILE *vs, void *rec, int reclen, void *key, int keylen); -extern int vsstge(VSFILE *vs, void *rec, int reclen, void *key, int keylen); - -/* __vstell() - get RBA for last I/O operation */ -extern unsigned __vstell(VSFILE *vs); -extern unsigned vstell(VSFILE *vs); - -/* __vsclr() - reset Error and EOF flags in VSFILE handle */ -extern int __vsclr(VSFILE *vs); -extern int vsclear(VSFILE *vs); - -/* __vseof() - returns 1 if EOF has occured, otherwise 0 */ -extern int __vseof(VSFILE *vs); -extern int vseof(VSFILE *vs); - -/* __vserr() - returns 1 if Error has occured, otherwise 0 */ -extern int __vserr(VSFILE *vs); -extern int vserror(VSFILE *vs); - -/* __vslrec() - return logical record length of data component records */ -extern unsigned __vslrec(VSFILE *vs); -extern unsigned vslrecl(VSFILE *vs); - -/* __vscinv() - return control interval size of data component */ -extern unsigned __vscinv(VSFILE *vs); -extern unsigned vscinv(VSFILE *vs); - -#endif diff --git a/src/crent370/include/clibwsa.h b/src/crent370/include/clibwsa.h deleted file mode 100644 index 2712476..0000000 --- a/src/crent370/include/clibwsa.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef CLIBWSA_H -#define CLIBWSA_H - -typedef struct clibwsa CLIBWSA; /* per process writable static area */ - -struct clibwsa { - char wsaeye[8]; /* 00 Eye catcher for dumps "CLIBWSA " */ -#define CLIBWSA_EYE "CLIBWSA " /* ... */ - void *wsakey; /* 08 key for this WSA */ - unsigned wsasize; /* 0C length of this WSA */ - char wsastart[0]; /* 10 start of WSA returned to caller */ -}; - -extern void *__wsaget(void *key, unsigned len); - -#endif diff --git a/src/crent370/include/clibwto.h b/src/crent370/include/clibwto.h deleted file mode 100644 index a280326..0000000 --- a/src/crent370/include/clibwto.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef CLIBWTO_H -#define CLIBWTO_H -#include -#include - -extern void wto(char *buf); - -extern void vwtof(const char *text, va_list tList); - -extern void wtof(const char *text, ...); - -extern void wtodumpf(void *buf, int len, const char *fmt, ...); - -extern void wtodump(const char *title, void *varea, int size, int chunk); - -extern void wto_traceback(SAVEAREA *sa) asm("@@WTOTB"); - -/* write to operator with reply */ -extern void wtorf(char *reply, unsigned replymax, const char *text, ...); -extern void wtor(char *reply, unsigned replymax, const char *text); - -#endif diff --git a/src/crent370/include/ctype.h b/src/crent370/include/ctype.h deleted file mode 100644 index 6de5474..0000000 --- a/src/crent370/include/ctype.h +++ /dev/null @@ -1,34 +0,0 @@ -/*********************************************************************/ -/* */ -/* This Program Written by Paul Edwards. */ -/* Released to the Public Domain */ -/* */ -/*********************************************************************/ -/*********************************************************************/ -/* */ -/* ctype.h - ctype header file. */ -/* */ -/*********************************************************************/ - -#ifndef __CTYPE_INCLUDED -#define __CTYPE_INCLUDED - -extern unsigned short *__isbuf; -extern short *__tolow; -extern short *__toup; - -#define isalnum(c) (__isbuf[(c)] & 0x0001U) -#define isalpha(c) (__isbuf[(c)] & 0x0002U) -#define iscntrl(c) (__isbuf[(c)] & 0x0004U) -#define isdigit(c) (__isbuf[(c)] & 0x0008U) -#define isgraph(c) (__isbuf[(c)] & 0x0010U) -#define islower(c) (__isbuf[(c)] & 0x0020U) -#define isprint(c) (__isbuf[(c)] & 0x0040U) -#define ispunct(c) (__isbuf[(c)] & 0x0080U) -#define isspace(c) (__isbuf[(c)] & 0x0100U) -#define isupper(c) (__isbuf[(c)] & 0x0200U) -#define isxdigit(c) (__isbuf[(c)] & 0x0400U) -#define tolower(c) (__tolow[(c)]) -#define toupper(c) (__toup[(c)]) - -#endif diff --git a/src/crent370/include/cvt.h b/src/crent370/include/cvt.h deleted file mode 100644 index 683e260..0000000 --- a/src/crent370/include/cvt.h +++ /dev/null @@ -1,755 +0,0 @@ -#ifndef CVT_H -#define CVT_H - -/* CVT for OS/VS2 (MVS38J) */ - -typedef struct cvt CVT; -typedef struct cvtxtnt1 CVTXTNT1; -typedef struct cvtxtnt2 CVTXTNT2; -typedef struct cvtfix CVTFIX; - -#define CVTPTR (*(CVT**)16) - -struct cvtfix { /* 256 byte area that precedes the CVT address */ - unsigned char reserved[250]; /* 00 */ - unsigned char cvtmdl[2]; /* FA CPU MODEL NUMBER IN SIGNLESS PACKED */ - /* DECIMAL, I.E., A MODEL 145 WOULD BE */ - /* REPRESENTED AS 0145 HEX */ - unsigned char cvtnumb[2]; /* FC RELEASE NUMBER */ - unsigned char cvtlevl[2]; /* FE LEVEL NUMBER OF THIS RELEASE */ -}; /* 100 (256 bytes) */ - -struct cvt { - void *cvttcbp; /* 00 ADDRESS OF A DOUBLE WORD, THE FIRST */ - /* CONTAINING THE NEXT-TO-BE-DISPATCHED TCB */ - /* ADDRESS, THE SECOND CONTAINING THE LAST */ - /* (CURRENT) TCB ADDRESS. BOTH WORDS ARE */ - /* IDENTICAL UNLESS THE TASK GOES INTO A */ - /* WAIT STATE. WHEN IN A WAIT STATE, THE */ - /* FIRST WORD IS SET TO ZERO UNTIL THE */ - /* WAITING IS OVER AND THEN BOTH WORDS ARE */ - /* ONCE AGAIN IDENTICAL. (OS/VS1) */ - /* ADDRESS OF 4-WORD LIST OF ADDRESSES - */ - /* THE NEXT TCB, THE CURRENT TCB, THE NEXT */ - /* ASCB AND THE CURRENT ASCB, IN THAT */ - /* ORDER (OS/VS2) */ - void *cvt0ef00; /* 04 ADDRESS OF ROUTINE TO SCHEDULE */ - /* ASYNCHRONOUS EXITS */ - void *cvtlink; /* 08 ADDRESS OF DCB FOR SYS1.LINKLIB DATA SET */ - void *cvtjob; /* 0C ** CVTJOB FIELD UNUSED IN MVS ** */ - void *cvtbuf; /* 10 ADDRESS OF THE BUFFER OF THE RESIDENT */ - /* CONSOLE INTERRUPT ROUTINE */ - void *cvtxapg; /* 14 ADDRESS OF I/O SUPERVISOR APPENDAGE VECTOR*/ - /* TABLE */ - void *cvt0vl00; /* 18 ADDRESS OF ENTRY POINT OF THE TASK */ - /* SUPERVISOR'S ADDRESS VALIDITY CHECKING */ - /* ROUTINE */ - void *cvtpcnvt; /* 1C ADDRESS OF ENTRY POINT OF THE ROUTINE */ - /* WHICH CONVERTS A RELATIVE TRACK ADDRESS */ - /* (TTR) TO AN ABSOLUTE TRACK ADDRESS */ - /* (MBBCCHHR) */ - void *cvtprltv; /* 20 ADDRESS OF ENTRY POINT OF THE ROUTINE */ - /* WHICH CONVERTS AN ABSOLUTE TRACK ADDRESS */ - /* (MBBCCHHR) TO A RELATIVE TRACK ADDRESS */ - /* (TTR) */ - void *cvtilk1; /* 24 ADDRESS OF THE CHANNEL AND CONTROL UNIT */ - /* PORTION OF THE UCB LOOKUP TABLE */ - void *cvtilk2; /* 28 ADDRESS OF THE UCB HALFWORD ADDRESS LIST */ - /* PORTION OF THE UCB LOOKUP TABLE */ - void *cvtxtler; /* 2C ADDRESS OF ERROR RECOVERY PROCEDURE (ERP) */ - /* LOADER (IECVERPL) ENTRY POINT IECXTLER */ - void *cvtsysad; /* 30 ADDRESS OF THE SYSTEM RESIDENCE VOLUME */ - /* ENTRY IN THE UCB LOOKUP TABLE */ - void *cvtbterm; /* 34 ADDRESS OF ENTRY POINT OF THE ABTERM */ - /* ROUTINE */ - unsigned cvtdate; /* 38 CURRENT DATE IN PACKED DECIMAL */ - void *cvtmslt; /* 3C ADDRESS OF THE MASTER COMMON AREA IN */ - /* MASTER SCHEDULER RESIDENT DATA AREA. */ - /* NOTE - USE CVTMSER INSTEAD TO ADDRESS */ - /* MASTER SCHEDULER RESIDENT DATA AREA */ - void *cvtzdtab; /* 40 ADDRESS OF I/O DEVICE CHARACTERISTIC TABLE*/ - void *cvtxitp; /* 44 ADDRESS OF ERROR INTERPRETER ROUTINE */ - void *cvtdar; /* 48 ** CVTDAR FIELD UNUSED IN MVS ** */ - void *cvt0fn00; /* 4C RESERVED (OS/VS2) */ - unsigned char cvtexit[2]; /* 50 SVC 3 - X'0A03' EXIT TO DISPATCHER */ - unsigned char cvtbret[2]; /* 52 BR 14 - X'07FE' RETURN TO CALLER */ - /* (USED BY DATA MANAGEMENT ROUTINES) */ - void *cvtsvdcb; /* 54 ADDRESS OF THE DCB FOR THE SYS1.SVCLIB */ - /* DATA SET */ - void *cvttpc; /* 58 ADDRESS OF THE TIMER SUPERVISOR WORK AREA */ - unsigned short cvtnipsv; /* 5C RESERVED MVS */ - unsigned short cvticpid; /* 5E IPL'ED CPU PHYSICAL ID */ - void *cvtsjq; /* 60 RESERVED (OS/VS2) */ - void *cvtcucb; /* 64 ADDRESS OF THE TABLE THAT CONTAINS THE */ - /* CURRENT CONSOLE UCB ADDRESSES */ - void *cvtqte00; /* 68 ADDRESS OF THE TIMER ENQUEUE ROUTINE FOR */ - /* INTERVAL TIMER */ - void *cvtqtd00; /* 6C ADDRESS OF THE TIMER DEQUEUE ROUTINE FOR */ - /* INTERVAL TIMER */ - void *cvtstb; /* 70 ADDRESS OF THE I/O DEVICE STATISTICS TABLE*/ - unsigned char cvtdcb; /* 74 XL1'13' - OPERATING SYSTEM */ -#define CVTRSV08 0x80 /* ... RESERVED */ -#define CVT1SSS 0x40 /* ... OPTION 1 (PCP) SSS */ -#define CVT2SPS 0x20 /* ... OPTION 2 (MFT) SPS, OS/VS1 */ -#define CVT4MS1 0x10 /* ... OPTION 4 (MVT) MS1, OS/VS2 */ -#define CVTRSV09 0x08 /* ... RESERVED */ -#define CVT4MPS 0x04 /* ... MODEL 65 MULTIPROCESSING */ -#define CVT6DAT 0x02 /* ... DYNAMIC ADDRESS TRANSLATION BY CPU */ - /* (OS/VS1, OS/VS2) */ -#define CVTMVS2 0x01 /* ... MULTIPLE MEMORY OPTION OF OS/VS2 IS */ - /* PRESENT */ -#define CVT8AOS2 CVT4MS1+CVT6DAT /* ... OS/VS2 SYSTEM */ - - unsigned char cvtdcba[3]; /* 75 ADDRESS OF THE DCB FOR THE SYS1.LOGREC */ - /* (OUTBOARD RECORDER) DATA SET FOR SYSTEM */ - /* ENVIRONMENT RECORDING (SER) */ - unsigned cvtsv76m; /* 78 SVC 76 MESSAGE COUNT FIELD (OS/VS2) */ - - void *cvtixavl; /* 7C ADDRESS OF THE I/O SUPERVISOR'S FREELIST */ - /* POINTER WHICH CONTAINS THE ADDRESS OF THE */ - /* NEXT REQUEST ELEMENT (OS/VS1) */ - /* ADDRESS OF THE I/O SUPERVISOR'S */ - /* COMMUNICATION AREA (IOCOM) (OS/VS2) */ - void *cvtnucb; /* 80 LOWEST ADDRESS NOT IN THE NUCLEUS */ - /* (ON PAGE BOUNDARY FOR OS/VS1) */ - /* (ON SEGMENT BOUNDARY FOR OS/VS2) */ - void *cvtfbosv; /* 84 ADDRESS OF PROGRAM FETCH ROUTINE */ - - void *cvt0ds; /* 88 ADDRESS OF ENTRY POINT OF THE DISPATCHER */ - void *cvtilch; /* 8C ADDRESS OF THE LOGICAL CHANNEL WORD TABLE */ - - void *cvtrv516; /* 90 ** CVTIERLC FIELD UNUSED IN MVS ** */ - void *cvtmser; /* 94 ADDRESS OF DATA AREA OF MASTER SCHEDULER */ - /* RESIDENT DATA AREA */ - void *cvt0pt01; /* 98 ADDRESS OF BRANCH ENTRY POINT OF POST */ - /* ROUTINE */ - void *cvtrsv11; /* 9C ** CVTTRMTB FIELD UNUSED IN OS/VS ** */ - unsigned cvtsv76c; /* A0 SVC 76 MESSAGE CONTROL FIELD. HIGH-ORDER */ - /* BIT IS DEFINED, AND ALL OTHER BITS ARE */ - /* ZERO. (OS/VS2) */ -#define CVTSV76Q 0x80 /* ... SVC 76 ENQUEUE SWITCH. THIS IS THE */ - /* HIGH-ORDER BIT OF CVTSV76C. (OS/VS2) */ - - void *cvtmz00; /* A4 HIGHEST ADDRESS IN VIRTUAL STORAGE FOR */ - /* THIS MACHINE (void*)0x00FFFFFF */ - void *cvt1ef00; /* A8 ADDRESS OF ROUTINE WHICH CREATES IRB'S */ - /* FOR EXITS */ - void *cvtqocr; /* AC GRAPHICS INTERFACE TASK (GFX) FIELD. */ - /* ADDRESS OF SEVENTH WORD OF GFX PARAMETER */ - /* LIST, IF GFX IS ACTIVE. ZERO IF GFX IS */ - /* NOT ACTIVE */ - void *cvtqmwr; /* B0 ADDRESS OF QUEUE MANAGER'S SYSTEM OUTPUT */ - /* COMMUNICATIONS-DATA-AREA (CDA), WHICH IS */ - /* STORED ON AN EXTERNAL DEVICE */ - unsigned short cvtsnctr; /* B4 SERIAL NUMBER COUNTER FOR ASSIGNING SERIAL*/ - /* NUMBERS TO NON-SPECIFIC, UNLABELED */ - /* MAGNETIC TAPE VOLUMES */ - unsigned char cvtopta; /* B6 OPTION INDICATORS */ -#define CVTCCH 0x80 /* ... CHANNEL CHECK HANDLER (CCH) OPTION */ - /* PRESENT RECOVERY MANAGEMENT SUPPORT (RMS)*/ -#define CVTAPR 0x40 /* ... ALTERNATE PATH RETRY (APR) OPTION PRESENT*/ - /* RECOVERY MANAGEMENT SUPPORT (RMS) */ -#define CVTDDR 0x20 /* ... DYNAMIC DEVICE RECONFIGURATION (DDR) */ - /* OPTION PRESENT - RECOVERY MANAGEMENT */ - /* SUPPORT (RMS) (OS/VS1) */ - /* DDR SYSTEM-INITIATED SWAP ACTIVE (OS/VS2)*/ -#define CVTNIP 0x10 /* ... NIP IS EXECUTING */ -#define CVTRSV12 0x08 /* ... RESERVED */ -#define CVT121TR 0x04 /* ... DO NOT TRANSLATE EXCP V=R */ -#define CVTASCII 0x02 /* ... ASCII TAPE PROCESSING IS GENERATED IN */ - /* THIS SYSTEM */ -#define CVTXPFP 0x01 /* ... CPU HAS EXTENDED PRECISION FLOATING POINT*/ - /* FEATURE */ - - unsigned char cvtoptb; /* B7 MISCELLANEOUS FLAGS */ -#define CVTPROT 0x80 /* ... CPU HAS STORE PROTECTION FEATURE (OS/VS1)*/ -#define CVTCTIMS 0x40 /* ... IF ON, HARDWARE HAS THE CLOCK COMPARATOR */ - /* AND CPU TIMER FEATURE INSTALLED, AND */ - /* OS/VS1 SYSGEN HAS SPECIFIED THIS FEATURE */ - /* (OS/VS1) */ -#define CVTTOD 0x20 /* ... CPU HAS TIME-OF-DAY CLOCK FEATURE */ -#define CVTNLOG 0x10 /* ... SYS1.LOGREC IS UNAVAILABLE FOR ERROR */ - /* RECORDING. ALWAYS SET TO ZERO FOR */ - /* OS/VS1. */ -#define CVTAPTHR 0x08 /* ... NIP SETS THIS BIT TO 1 WHEN DEVICE TESTING */ - /* IS COMPLETE. IF 1, I/O SUPERVISOR USES */ - /* AN ALTERNATE PATH TO A DEVICE WHEN A */ - /* CONDITION CODE OF 3 EXISTS. THIS BIT IS */ - /* RESET TO 0 BY NIP AFTER THE LINK PACK */ - /* AREA IS INITIALIZED. */ -#define CVTFP 0x04 /* ... CPU HAS FETCH PROTECTION FEATURE (OS/VS1)*/ -#define CVTVS1A 0x02 /* ... VS1 ASSIST IS AVAILABLE FOR USE (OS/VS1) */ -#define CVTVS1B 0x01 /* ... VS1 ASSIST SUBSET IS AVAILABLE FOR USE */ - /* (OS/VS1) */ - void *cvtqcdsr; /* B8 CDE SEARCH ROUTINE ADDRESS (OS/VS2) */ - void *cvtqlpaq; /* BC ADDRESS OF POINTER TO MOST RECENT ENTRY */ - /* ON LINK PACK AREA CDE QUEUE (OS/VS2) */ - - void *cvtrsv18; /* C0 ** CVTMPCVT FIELD UNUSED IN OS/VS ** */ - void *cvtsmca; /* C4 ADDRESS OF THE SYSTEM MANAGEMENT CONTROL */ - /* AREA (SMCA) IF THE SYSTEM MANAGEMENT */ - /* FACILITIES (SMF) OPTION IS PRESENT IN THE */ - /* SYSTEM. OTHERWISE, ZERO. */ - void *cvtabend; /* C8 ADDRESS OF SECONDARY CVT FOR ABEND IN EOT */ - /* (OS/VS2) */ - void *cvtuser; /* CC A WORD AVAILABLE TO THE USER */ - - void *cvtmdlds; /* D0 RESERVED FOR MODEL-DEPENDENT SUPPORT */ - unsigned char cvtqabst[2]; /* D4 SVC 13 - AN ABEND INVOCATION (OS/VS2) */ - unsigned char cvtlnksc[2]; /* D6 SVC 6 - A LINK INVOCATION */ - void *cvttsce; /* D8 ADDRESS OF THE FIRST TIME SLICE CONTROL */ - /* ELEMENT (TSCE) */ - void *cvtpatch; /* DC ADDRESS OF A 200-BYTE FE PATCH AREA */ - - void *cvtrms; /* E0 RECOVERY MANAGEMENT SUPPORT (RMS) */ - /* COMMUNICATIONS VECTOR. ADDRESS OF A */ - /* MACHINE STATUS BLOCK. */ - void *cvtrv515; /* E4 ** CVTTSCVT FIELD UNUSED IN MVS ** */ - void *cvt0scr1; /* E8 ADDRESS OF THE SECTOR CALCULATION ROUTINE */ - /* FOR ROTATIONAL POSITION SENSING (RPS) */ - /* CVTGTF DS 0A - GENERALIZED TRACE FACILITY (GTF) CONTROL WORD */ - unsigned char cvtgtfst; /* EC GTF FLAG BYTES */ -#define CVTGTFAV 0x80 /* ... IF ZERO, GTF NOT ACTIVE. IF ONE, GTF */ - /* ACTIVE. (OS/VS2) */ -#define CVTRV315 0x40 /* ... RESERVED (OS/VS2) */ -#define CVTRV316 0x20 /* ... RESERVED (OS/VS2) */ -#define CVTRV317 0x10 /* ... RESERVED (OS/VS2) */ -#define CVTRV318 0x08 /* ... RESERVED (OS/VS2) */ -#define CVTUSR 0x04 /* ... TRACE=USR SPECIFIED. USER-REQUESTED TRACE*/ - /* DATA IS TO BE INCLUDED IN THE TRACE DATA */ - /* SET. */ -#define CVTRNIO 0x02 /* ... GTF IS ACTIVE AND TRACING RNIO EVENTS */ -#define CVTRSV27 0x /* ... RESERVED */ - - unsigned char cvtgtfa[3]; /* ED ADDRESS OF MAIN MONITOR CALL ROUTING */ - /* TABLE, MCHEAD (OS/VS2) */ - - /* CVTAQAVT DS 0A - /* F0 ADDRESS OF THE FIRST WORD OF THE TCAM */ - /* DISPATCHER WHICH CONTAINS THE ADDRESS OF */ - /* THE ADDRESS VECTOR TABLE (AVT). IF ZERO, */ - /* TCAM IS NOT STARTED. */ - unsigned char cvttcmfg; /* F0 TCAM FLAGS */ -#define CVTTCRDY 0x80 /* ... TCAM IS READY TO ACCEPT USERS */ -#define CVTLDEV 0x40 /* ... LOCAL DEVICE ATTACHED TO TCAM */ -#define CVTRSV29 0x20 /* ... RESERVED */ -#define CVTRSV30 0x10 /* ... RESERVED */ -#define CVTRSV31 0x08 /* ... RESERVED */ -#define CVTRSV32 0x04 /* ... RESERVED */ -#define CVTRSV33 0x02 /* ... RESERVED */ -#define CVTRSV34 0x01 /* ... RESERVED */ - unsigned char cvtaqavb[3]; /* F1 SAME AS CVTAQAVT ABOVE */ - - /* CVTVOLM2 DS 0A - ADDRESS OF TABLE FOR POWER WARNING FEATURE */ - /* (PWF) (OS/VS2) (MDC308) */ - unsigned char cvtvolf2; /* F4 PWF FLAG BYTE. THIS BYTE IS OVERLAID BY */ - /* CVTVOLM2 AFTER PWF INITIALIZATION. */ -#define CVTVOLI2 0x80 /* ... PWF INITIALIZATION HAS NOT OCCURRED */ - unsigned char cvtvolt2[3]; /* F5 PWF RECHECK TIME DELAY. THIS VALUE IS */ - /* OVERLAID BY CVTVOLM2 AFTER PWF */ - /* INITIALIZATION. (OS/VS2) */ - unsigned reserved; /* F8 RESERVED (OS/VS2) */ - - CVTXTNT1 *cvtext1; /* FC ADDRESS OF OS - OS/VS COMMON EXTENSION */ - - void *cvtcbsp; /* 100 ADDRESS OF ACCESS METHOD CONTROL BLOCK */ - /* STRUCTURE */ - - void *cvtpurg; /* 104 ADDRESS OF SUBSYSTEM PURGE ROUTINE */ - unsigned cvtamff; /* 108 RESERVED FOR ACCESS METHOD FLAGS */ - void *cvtqmsg; /* 10C ADDRESS OF INFORMATION TO BE PRINTED */ - /* BY ABEND */ - - /* CVTDMSR DS 0A - SAME AS CVTDMSRA BELOW */ - unsigned char cvtdmsrf; /* 110 OPEN/CLOSE/EOV FLAG BYTE. SETTING BOTH */ - /* BIT 0 AND BIT 1 ON WILL CAUSE BOTH KINDS */ - /* OF DUMPS TO BE TAKEN. THESE BITS ARE USED */ - /* DURING TESTING AND DEBUGGING WHEN OTHER */ - /* DEBUG METHODS ARE INEFFECTIVE. (OS/VS2) */ -#define CVTSDUMP 0x80 /* ... SET BY COREZAP. WILL CAUSE AN SDUMP TO BE */ - /* TAKEN AND IEC999I MESSAGE ISSUED FOR EVERY */ - /* ABEND ISSUED WITHIN AN OPEN/CLOSE/EOV OR */ - /* DADSM FUNCTION. (OS/VS2) */ -#define CVTUDUMP 0x40 /* ... SET BY COREZAP. WILL CAUSE AN ABEND DUMP */ - /* TO BE TAKEN FOR EVERY ABEND ISSUED WITHIN */ - /* AN OPEN/CLOSE/EOV OR DADSM FUNCTION. */ -#define CVTRV629 0x20 /* ... RESERVED (OS/VS2) */ -#define CVTRV630 0x10 /* ... RESERVED (OS/VS2) */ -#define CVTRV631 0x08 /* ... RESERVED (OS/VS2) */ -#define CVTRV632 0x04 /* ... RESERVED (OS/VS2) */ -#define CVTRV633 0x02 /* ... RESERVED (OS/VS2) */ -#define CVTRV634 0x01 /* ... RESERVED (OS/VS2) */ - unsigned char cvtdmsra[3]; /* 111 ADDRESS OF THE OPEN/CLOSE/EOV SUPERVISORY*/ - /* ROUTINE IN THE NUCLEUS. THIS ROUTINE */ - /* HANDLES THE ROUTING OF CONTROL AMONG THE */ - /* I/O SUPPORT ROUTINES. */ - - unsigned cvtrsv38; /* 114 RESERVED */ - unsigned cvtrsv39; /* 118 RESERVED */ - - /* OS/VS1 - OS/VS2 COMMON SECTION */ - - void *cvtreal; /* 11C ADDRESS OF THE VIRTUAL STORAGE BYTE */ - /* FOLLOWING THE HIGHEST VIRTUAL=REAL */ - /* STORAGE ADDRESS */ - void *cvtptrv; /* 120 ADDRESS OF PAGING SUPERVISOR GENERAL */ - /* ROUTINE TO TRANSLATE REAL ADDRESSES TO */ - /* VIRTUAL ADDRESSES */ - unsigned reserved2; /* 124 RESERVED (WAS CVTMODE) (OS/VS2) */ - void *cvtjesct; /* 128 ADDRESS OF JOB ENTRY SUBSYSTEM (JES) */ - /* CONTROL TABLE */ - unsigned reserved3; /* 12C RESERVED (WAS CVTJEPS) (OS/VS2) */ - - int cvttz; /* 130 DIFFERENCE BETWEEN LOCAL TIME AND */ - /* GREENWICH MEAN TIME IN BINARY UNITS OF */ - /* 1.048576 SECONDS */ - void *cvtmchpr; /* 134 ADDRESS OF MACHINE CHECK PARAMETER LIST */ - void *cvteorm; /* 138 POTENTIAL REAL HIGH STORAGE ADDRESS (OS/VS2) */ - void *cvtrv517; /* 13C ** CVTERPV FIELD UNUSED IN MVS ** */ - void *cvtrv518; /* 140 ** CVTINTLA FIELD UNUSED IN MVS ** */ - - void *cvtapf; /* 144 ADDRESS OF BRANCH ENTRY POINT IN */ - /* AUTHORIZED PROGRAM FACILITY (APF) ROUTINE*/ - CVTXTNT2 *cvtext2; /* 148 ADDRESS OF OS/VS1 - OS/VS2 COMMON */ - /* EXTENSION */ - - void *cvthjes; /* 14C ADDRESS OF OPTIONAL JOB ENTRY SUBSYSTEM */ - /* (JES) COMMUNICATION VECTOR TABLE */ - unsigned short cvtrsv43; /* 150 RESERVED */ - unsigned short cvtrsv44; /* 152 RESERVED */ - unsigned cvtrsv45; /* 154 RESERVED */ - unsigned cvtrsv46; /* 158 RESERVED */ - - /* OS/VS2 OVERLAY */ - - void *cvtgetl; /* 15C ADDRESS OF IKJGETL, TSO GET LINE ROUTINE */ - void *cvtlpdsr; /* 160 ADDRESS OF LINK PACK AREA (LPA) DIRECTORY*/ - /* SEARCH ROUTINE */ - void *cvtpvtp; /* 164 ADDRESS OF PAGE VECTOR TABLE */ - void *cvtlpdia; /* 168 ADDRESS OF LINK PACK AREA (LPA) DIRECTORY*/ - /* (ON PAGE BOUNDARY) */ - void *cvtpsad0; /* 16C PSA PROTECT DISABLE */ - void *cvtpsae0; /* 170 PSA PROTECT ENABLE */ - /* CVTSLIDA DS 0CL4 - IDENTITY OF TCB CAUSING SUPERVISOR LOCK */ - /* BYTE (CVTSYLK) TO BE SET OR IDENTITY OF */ - /* TCB THAT SECOND EXIT PROCESSING IS FOR */ - /* WHEN CVTSEIC=1 */ - unsigned char cvtsylk; /* 174 SUPERVISOR LOCK. ONLY ENABLED TASKS MAY */ - /* BE DISPATCHED */ -#define CVTSYLKS 0xFF /* ... SET LOCK BYTE */ -#define CVTSYLKR 0x00 /* ... RESET LOCK BYTE */ - unsigned char cvtslid[3]; /* 175 SAME AS CVTSLIDA ABOVE */ - - unsigned cvtrv322; /* 178 RESERVED FOR FUTURE USE */ - unsigned cvtrv328; /* 17C ** CVTSEG AND CVTSEGA FIELDS UNUSED IN */ - /* MVS ** */ - void *cvtvldwt; /* 180 ADDRESS OF STOP/RESTART INTERFACE ROUTINE*/ - unsigned cvtexslf; /* 184 F'20000000' EXCESSIVE SPIN LENGTH FACTOR */ - void *cvtexsnr; /* 188 ADDRESS OF EXCESSIVE SPIN NOTIFICATION */ - /* ROUTINE */ - unsigned char cvtexsnl; /* 18C SERIALIZATION BYTE FOR EXCESSIVE SPIN */ - /* NOTIFICATION ROUTINE */ - unsigned char cvtspvlk; /* 18D NUMBER OF TASKS WHICH HAVE TERMINATED */ - /* WHILE OWNING SUPERVISOR LOCK WITHOUT */ - /* OPERATOR HAVING YET BEEN NOTIFIED */ - unsigned char cvtctlfg; /* 18E SYSTEM CONTROL FLAGS */ -#define CVTRV323 0x80 /* ... ** CVTPSIC BIT UNUSED IN MVS ** */ -#define CVTRV333 0x40 /* ... ** CVTAPGB BIT UNUSED IN MVS ** */ -#define CVTRSV78 0x20 /* ... RESERVED */ -#define CVTDSTAT 0x10 /* ... DEVSTAT OPTION IN EFFECT. DEVICE ADDRESS*/ - /* FOR 2319, 3330, 2314, 3330-1, 3340 CAN */ - /* VARY ACROSS SYSTEMS */ -#define CVTRSV79 0x08 /* ... RESERVED */ -#define CVTNOMP 0x04 /* ... MULTIPROCESSING CODE IS NOT IN THE SYSTEM*/ -#define CVTGTRCE 0x02 /* ... GENERALIZED TRACE FACILITY (GTF) HAS */ - /* SUPPRESSED SUPERVISOR TRACE */ -#define CVTSDTRC 0x01 /* ... SVC DUMP HAS SUPPRESSED SUPERVISOR TRACE */ - - unsigned char cvtapg; /* 18F DISPATCHING PRIORITY OF AUTOMATIC PRIORITY */ - /* GROUP (APG) */ - unsigned short cvttrace; /* 190 BR 11 BRANCH ON REGISTER INSTRUCTION. SET BY */ - /* NIP. REGISTER TEN FOR TRACE. REGISTER */ - /* ELEVEN FOR NO TRACE. */ - unsigned short cvttrac2; /* 192 BR 11 THIS ALLOWS FOR SUPPRESSING TRACE */ - /* DYNAMICALLY BY SETTING CONDITION CODE */ - /* MASK TO ZERO IN FIRST INSTRUCTION */ - /* (CVTTRACE) */ - void *cvtrscn; /* 194 ADDRESS OF ROUTINE TO SCAN TCB TREE */ - void *cvttas; /* 198 ADDRESS OF ROUTINE TO TRANSFER ADDRESS */ - /* SPACE */ - void *cvtrv332; /* 19C ** CVTPVALD FIELD UNUSED IN MVS ** */ - - void *cvtshrvm; /* 1A0 LOWEST ADDRESS OF SHARED VIRTUAL STORAGE */ - /* AREA. THIS ADDRESS WILL BE THE BEGINNING*/ - /* OF THE COMMON SERVICE AREA (CSA) */ - void *cvt0vl01; /* 1A4 ENTRY POINT ADDRESS OF VALIDITY CHECK */ - /* ROUTINE (IEA0VL01) USED TO COMPARE */ - /* PROTECT KEY OF AN ADDRESS WITH TCB */ - /* PROTECT KEY */ - void *cvtppgmx; /* 1A8 ADDRESS OF A BRANCH ENTRY POINT */ - /* TO PROGRAM MANAGER RESOURCE */ - /* MANAGEMENT ROUTINES */ - void *cvtrv325; /* 1AC ** CVTPFIXR FIELD UNUSED IN MVS ** */ - void *cvtrv326; /* 1B0 ** CVTPFIXP FIELD UNUSED IN MVS ** */ - void *cvtascrf; /* 1B4 CREATED ASCB QUEUE HEADER */ - void *cvtascrl; /* 1B8 CREATED ASCB QUEUE TRAILER */ - void *cvtputl; /* 1BC ADDRESS OF IKJPUTL, TSO PUT LINE ROUTINE */ - void *cvtsrbrt; /* 1C0 DISPATCHER RETURN ADDRESS FOR SRB ROUTINES */ - void *cvtolt0a; /* 1C4 BRANCH ENTRY TO OLTEP MEMORY TERMINATION */ - /* RESOURCE MANAGER */ - void *cvtsmfex; /* 1C8 BRANCH ENTRY TO SYSTEM MANAGEMENT */ - /* FACILITIES (SMF) EXCP COUNTING ROUTINE */ - /* FOR VAM WINDOW INTERCEPT */ - void *cvtcspie; /* 1CC FOR CHECKPOINT/RESTART, BRANCH ENTRY TO */ - /* SPIE */ - void *cvtptgt; /* 1D0 ADDRESS OF IKJPTGT, TSO PUTGET ROUTINE */ - unsigned char cvtiospl; /* 1D4 PRIORITY LEVEL OF I/O SUPERVISOR CHANNEL */ - /* SCHEDULER */ - unsigned char cvtrv513; /* 1D5 RESERVED */ - unsigned char cvtdssac; /* 1D6 DYNAMIC SUPPORT SYSTEM (DSS) ACTIVATED */ - /* FLAG - USED BY RESTART FLIH. IF X'00', */ - /* DSS NOT INITIALIZED. IF X'FF', DSS HAS */ - /* BEEN INITIALIZED. */ - unsigned char cvtrv139; /* 1D7 RESERVED */ - void *cvtstck; /* 1D8 ADDRESS OF IKJSTCK, TSO STACK ROUTINE */ - unsigned short cvtmaxmp; /* 1DC FOR MEASUREMENT FACILITY (MF/1), MAXIMUM */ - /* PHYSICAL CPU ADDRESS SUPPORTED BY THIS */ - /* RELEASE */ - unsigned short cvtrv144; /* 1DE RESERVED */ - void *cvtscan; /* 1E0 ADDRESS OF IKJSCAN, TSO SCAN ROUTINE */ - void *cvtauthl; /* 1E4 POINTER TO AUTHORIZED LIBRARY TABLE */ - void *cvtbldcp; /* 1E8 BRANCH ENTRY TO BUILD POOL */ - void *cvtgetcl; /* 1EC BRANCH ENTRY TO GET CELL */ - void *cvtfrecl; /* 1F0 BRANCH ENTRY TO FREE CELL */ - void *cvtdelcp; /* 1F4 BRANCH ENTRY TO DELETE POOL */ - void *cvtcrmn; /* 1F8 BRANCH ENTRY TO SVC 120 (GETMAIN/FREEMAIN*/ - /* CRBRANCH) */ - void *cvtcras; /* 1FC BRANCH ENTRY TO 'CREATE ADDRESS SPACE' */ - void *cvtqsas; /* 200 BRANCH ENTRY TO TASK TERMINATION */ - void *cvtfras; /* 204 BRANCH ENTRY TO 'FREE ADDRESS SPACE' */ - void *cvts1ee; /* 208 BRANCH ENTRY TO STAGE 1 EXIT EFFECTOR */ - void *cvtpars; /* 20C ADDRESS OF IKJPARS, TSO PARSE ROUTINE */ - void *cvtquis; /* 210 BRANCH ENTRY TO QUIESCE */ - void *cvtstxu; /* 214 BRANCH ENTRY TO ATTENTION EXIT EPILOGUE */ - void *cvtopte; /* 218 BRANCH ENTRY ADDRESS TO SYSEVENT */ - void *cvtsdrm; /* 21C BRANCH ENTRY ADDRESS OF THE RESOURCE */ - /* MANAGER ROUTINE FOR SVC DUMP. THIS */ - /* ROUTINE CAN BE INVOKED BY MEMORY */ - /* TERMINATION */ - void *cvtioscs; /* 220 ENTRY POINT OF I/O SUPERVISOR CHANNEL */ - /* SCHEDULER */ - void *cvtaqtop; /* 224 POINTER TO AREA CONTAINING QUIESCE */ - /* DESCRIPTOR BLOCK (QDB'S) FOR DEVICE */ - /* ALLOCATION */ - void *cvtvvmdi; /* 228 CONSTANT USED BY PAGED LINK PACK AREA */ - /* (LPA) DIRECTORY SEARCH ALGORITHM */ - void *cvtasvt; /* 22C POINTER TO ADDRESS SPACE VECTOR TABLE */ - /* (ASVT) */ - void *cvtgda; /* 230 POINTER TO GLOBAL DATA AREA (GDA) IN SQA */ - void *cvtascbh; /* 234 POINTER TO HIGHEST PRIORITY ADDRESS SPACE*/ - /* CONTROL BLOCK (ASCB) ON THE ASCB */ - /* DISPATCHING QUEUE (HEAD OF ASCB QUEUE) */ - void *cvtascbl; /* 238 POINTER TO LOWEST PRIORITY ASCB ON THE */ - /* ASCB DISPATCHING QUEUE */ - void *cvtrtmct; /* 23C POINTER TO RECOVERY/TERMINATION CONTROL */ - /* TABLE */ - void *cvtsv60; /* 240 ADDRESS OF SVC 60 BRANCH ENTRY POINT */ - void *cvtsdmp; /* 244 ADDRESS OF SVC DUMP BRANCH ENTRY POINT */ - void *cvtscbp; /* 248 ADDRESS OF SCB PURGE RESOURCE MANAGER */ - void *cvtsdbf; /* 24C ADDRESS OF 4K SQA BUFFER USED BY SVC */ - /* DUMP. HIGH-ORDER BIT OF THIS CVT WORD */ - /* IS USED AS LOCK TO INDICATE BUFFER IS */ - /* IN USE */ - void *cvtrtms; /* 250 ADDRESS OF SERVICABILITY LEVEL INDICATOR */ - /* PROCESSING (SLIP) HEADER */ - void *cvttpios; /* 254 ADDRESS OF THE TELEPROCESSING I/O */ - /* SUPERVISOR ROUTINE (TPIOS) */ - void *cvtsic; /* 258 BRANCH ADDRESS OF THE ROUTINE TO SCHEDULE*/ - /* SYSTEM INITIALIZED CANCEL */ - void *cvtopctp; /* 25C ADDRESS OF SYSTEM RESOURCES MANAGER (SRM)*/ - /* CONTROL TABLE */ - void *cvtexpro; /* 260 ADDRESS OF EXIT PROLOGUE/TYPE 1 EXIT */ - void *cvtgsmq; /* 264 ADDRESS OF GLOBAL SERVICE MANAGER QUEUE */ - void *cvtlsmq; /* 268 ADDRESS OF LOCAL SERVICE MANAGER QUEUE */ - void *cvtgspl; /* 26C ADDRESS OF GLOBAL SYSTEM PRIORITY LIST */ - /* QUEUE */ - void *cvtvwait; /* 270 ADDRESS OF WAIT ROUTINE */ - void *cvtparrl; /* 274 ADDRESS OF PARTIALLY LOADED DELETE QUEUE */ - void *cvtapft; /* 278 ADDRESS OF AUTHORIZED PROGRAM FACILITY */ - /* (APF) TABLE. INITIALIZED BY NIP. */ - void *cvtqcs01; /* 27C BRANCH ENTRY ADDRESS TO PROGRAM MANAGER */ - /* USED BY ATTACH */ - void *cvtfqcb; /* 280 POINTER TO FIRST MAJOR QCB FOR ENQ */ - void *cvtlqcb; /* 284 POINTER TO LAST MAJOR QCB FOR ENQ */ - void *cvtrenq; /* 288 RESOURCE MANAGER ADDRESS FOR ENQ */ - void *cvtrspie; /* 28C RESOURCE MANAGER FOR SPIE */ - void *cvtlkrma; /* 290 RESOURCE MANAGER ADDRESS FOR LOCK MANAGER*/ - void *cvtcsd; /* 294 VIRTUAL ADDRESS OF COMMON SYSTEM DATA */ - /* AREA (CSD). INITIALIZED BY NIP. */ - void *cvtdqiqe; /* 298 RESOURCE MANAGER FOR EXIT EFFECTORS */ - void *cvtrpost; /* 29C RESOURCE MANAGER FOR POST */ - void *cvt062r1; /* 2A0 BRANCH ENTRY TO DETACH */ - void *cvtveac0; /* 2A4 ASCBCHAP BRANCH ENTRY */ - void *cvtglmn; /* 2A8 GLOBAL BRANCH ENTRY ADDRESS FOR */ - /* GETMAIN/FREEMAIN */ - void *cvtspsa; /* 2AC POINTER TO GLOBAL WORK/SAVE AREA VECTOR */ - /* TABLE (WSAG) */ - void *cvtwsal; /* 2B0 ADDRESS OF TABLE OF LENGTHS OF LOCAL */ - /* WORK/SAVE AREAS */ - void *cvtwsag; /* 2B4 ADDRESS OF TABLE OF LENGTHS OF GLOBAL */ - /* WORK/SAVE AREAS */ - void *cvtwsac; /* 2B8 ADDRESS OF TABLE OF LENGTHS OF CPU */ - /* WORK/SAVE AREAS */ - void *cvtrecrq; /* 2BC ADDRESS OF THE RECORDING REQUEST FACILITY*/ - /* (PART OF RTM1 - CALLED BY RTM2 AND RMS) */ - void *cvtasmvt; /* 2C0 POINTER TO AUXILIARY STORAGE MANAGEMENT */ - /* VECTOR TABLE (AMVT) */ - void *cvtiobp; /* 2C4 ADDRESS OF THE BLOCK PROCESSOR CVT */ - void *cvtspost; /* 2C8 POST RESOURCE MANAGER TERMINATION ROUTINE*/ - /* (RMTR) ENTRY POINT */ - void *cvtrstwd; /* 2CC RESTART RESOURCE MANAGEMENT WORD - */ - /* CONTAINS IDENTIFIER OF USER IF RESTART IS*/ - /* IN USE. OTHERWISE, ZERO. */ - void *cvtfetch; /* 2D0 ADDRESS OF ENTRY POINT FOR BASIC FETCH */ - void *cvt044r2; /* 2D4 ADDRESS OF IGC044R2 IN CHAP SERVICE */ - /* ROUTINE */ - void *cvtperfm; /* 2D8 ADDRESS OF THE PERFORMANCE WORK AREA. */ - /* SET BY IGX00018. */ - void *cvtdair; /* 2DC ADDRESS OF IKJDAIR, TSO DYNAMIC */ - /* ALLOCATION INTERFACE ROUTINE */ - void *cvtehdef; /* 2E0 ADDRESS OF IKJEHDEF, TSO DEFAULT SERVICE */ - /* ROUTINE */ - void *cvtehcir; /* 2E4 ADDRESS OF IKJEHCIR, TSO CATALOG */ - /* INFORMATION ROUTINE */ - void *cvtssap; /* 2E8 ADDRESS OF SYSTEM SAVE AREA */ - void *cvtaidvt; /* 2EC POINTER TO APPENDAGE ID VECTOR TABLE */ - void *cvtipcds; /* 2F0 BRANCH ENTRY FOR DIRECT SIGNAL */ - /* SERVICE ROUTINE */ - void *cvtipcri; /* 2F4 BRANCH ENTRY FOR REMOTE IMMEDIATE */ - /* SIGNAL SERVICE ROUTINE */ - void *cvtipcrp; /* 2F8 BRANCH ENTRY FOR REMOTE PENDABLE */ - /* SIGNAL SERVICE ROUTINE */ - void *cvtpccat; /* 2FC POINTER TO PHYSICAL CCA VECTOR TABLE */ - void *cvtlccat; /* 300 POINTER TO LOGICAL CCA VECTOR TABLE */ - unsigned char cvtrv210; /* 304 RESERVED */ - unsigned char cvtrv219; /* 305 RESERVED */ - unsigned char cvtrv228; /* 306 RESERVED */ - unsigned char cvtrv237; /* 307 RESERVED */ - unsigned char cvtrv246; /* 308 RESERVED */ - unsigned char cvtrv247; /* 309 RESERVED */ - unsigned char cvtrv248; /* 30A RESERVED */ - unsigned char cvtrv249; /* 30B RESERVED */ - unsigned char cvtrv250; /* 30C RESERVED */ - unsigned char cvtrv251; /* 30D RESERVED */ - unsigned short cvtrv252; /* 30E RESERVED */ - unsigned short cvtrv253; /* 310 RESERVED */ - unsigned short cvtrv254; /* 312 RESERVED */ - void *cvtpwi; /* 314 ADDRESS OF THE WINDOW INTERCEPT ROUTINE */ - void *cvtpvbp; /* 318 ADDRESS OF THE VIRTUAL BLOCK PROCESSOR */ - void *cvtmfctl; /* 31C POINTER TO MEASUREMENT FACILITY CONTROL */ - /* BLOCK */ - void *cvtmfrtr; /* 320 IF MEASUREMENT FACILITY IS ACTIVE, */ - /* CONTAINS ADDRESS OF MEASUREMENT FACILITY */ - /* ROUTINE. OTHERWISE, ADDRESS OF CVTBRET. */ -#define CVTMFACT 0x80 /* ... IF ONE, I/O SUPERVISOR AND TIMER SECOND */ - /* LEVEL INTERRUPT HANDLER HOOKS BRANCH */ - /* TO MEASUREMENT FACILITY ROUTER. USED TO */ - /* SET HIGH-ORDER BIT OF CVTMFRTR. */ - void *cvtvpsib; /* 324 BRANCH ENTRY TO PAGE SERVICES */ - void *cvtvsi; /* 328 BRANCH ENTRY TO VAM SERVICES */ - void *cvtvfp; /* 32C BRANCH ENTRY TO FINDPAGE */ - unsigned char cvtrv262; /* 330 RESERVED */ - unsigned char cvtrv271; /* 331 RESERVED */ - unsigned char cvtrv280; /* 332 RESERVED */ - unsigned char cvtrv289; /* 333 RESERVED */ - void *cvttrca; /* 334 ADDRESS OF TRACE TABLE HEADER */ - unsigned short cvtrv302; /* 338 RESERVED */ - unsigned short cvtrv303; /* 33A RESERVED */ - unsigned short cvtrv304; /* 33C RESERVED */ - unsigned short cvtrv305; /* 33E RESERVED */ - unsigned short cvtrv306; /* 340 RESERVED */ - unsigned short cvtrv307; /* 342 RESERVED */ - void *cvtviop; /* 344 ENTRY POINT OF PAGE I/O POST */ - void *cvtrmbr; /* 348 ADDRESS OF REGMAIN BRANCH ENTRY */ - void *cvtlfrm; /* 34C LIST FORMAT FREEMAIN BRANCH ENTRY POINT */ - void *cvtgmbr; /* 350 LIST FORMAT GETMAIN BRANCH ENTRY POINT */ - void *cvt0tc0a; /* 354 ADDRESS OF TASK CLOSE MODULE IFG0TC0A */ - unsigned cvtrlstg; /* 358 SIZE OF ACTUAL REAL STORAGE ONLINE AT */ - /* IPL TIME IN 'K'. VALUE PLACED HERE BY */ - /* IEAVNIP0. */ - void *cvtspfrr; /* 35C 'SUPER FRR' ADDRESS (ADDRESS OF FUNCTIONAL*/ - /* RECOVERY ROUTINE ESTABLISHED AT NIP0 TIME*/ - /* TO PROTECT SUPERVISOR CONTROL PROGRAM) */ - void *cvtvems0; /* 360 ADDRESS OF MEMORY SWITCH ROUTINE */ - void *cvtjrecm; /* 364 ADDRESS OF SUBSYSTEM INTERFACE RESOURCE */ - /* MANAGER */ - void *cvtirecm; /* 368 ADDRESS OF INITIATOR RESOURCE MANAGER */ - void *cvtdarcm; /* 36C ADDRESS OF DEVICE ALLOCATION RESOURCE */ - /* MANAGER */ - void *cvt0pt02; /* 370 ADDRESS OF POST ENTRY POINT IEA0PT02 */ - void *cvtstprs; /* 374 ENTRY POINT OF STOP AND RESTART */ - /* SUBROUTINE */ - void *cvtwtcb; /* 378 ADDRESS OF WAIT STATE TCB */ - void *cvtvacr; /* 37C ACR/VARY CPU CHANNEL RECOVERY ROUTINE */ - /* ADDRESS. ADDRESS FILLED IN BY VARY CPU */ - /* PROCESSOR. */ - void *cvtquit; /* 380 VARY CPU SHUTDOWN ROUTINE ADDRESS. */ - /* ADDRESS FILLED IN BY VARY CPU PROCESSOR. */ - void *cvtgtfr8; /* 384 GENERALIZED TRACE FACILITY (GTF) CONTROL */ - /* REGISTER 8 INITIALIZATION ROUTINE ADDRESS*/ - void *cvtvstop; /* 388 ADDRESS OF VARY CPU STOP CPU ROUTINE */ - void *cvtvpsa; /* 38C ADDRESS OF COPY OF SYSGEN'ED PSA - PLACED*/ - /* HERE BY NIP */ - void *cvtrmptt; /* 390 ADDRESS OF ISTRAMA1, THE VTAM RESOURCE */ - /* MANAGER FOR NORMAL AND ABNORMAL TASK */ - /* TERMINATION */ - void *cvtrmpmt; /* 394 ADDRESS OF ISTRAMA2, THE VTAM RESOURCE */ - /* MANAGER FOR NORMAL AND ABNORMAL MEMORY */ - /* TERMINATION */ - void *cvtexp1; /* 398 ADDRESS OF EXIT PROLOGUE WHICH RETURNS TO*/ - /* THE DISPATCHER */ - void *cvtcsdrl; /* 39C REAL ADDRESS OF COMMON SYSTEM DATA AREA */ - /* (CSD). INITIALIZED BY NIP. */ - void *cvtssrb; /* 3A0 STATUS STOP SRB ENTRY */ - void *cvtrpt; /* 3A4 ADDRESS OF IGARPT01 MODULE OF RADIX */ - /* PARTITION TREE SERVICES. INITIALIZED */ - /* BY NIP. */ - void *cvtqv1; /* 3A8 ADDRESS OF QUEUE VERIFICATION FOR SINGLE */ - /* THREADED QUEUES WITH HEADERS ONLY */ - void *cvtqv2; /* 3AC ADDRESS OF QUEUE VERIFICATION FOR SINGLE */ - /* THREADED QUEUES WITH HEADER AND TRAILER */ - void *cvtqv3; /* 3B0 ADDRESS OF QUEUE VERIFICATION FOR DOUBLE */ - /* THREADED QUEUES */ - void *cvtgsda; /* 3B4 ADDRESS OF GLOBAL SYSTEM DUPLEX AREA. */ - /* ADDRESS FILLED IN BY NIP0. */ -#define CVTGSDAB 0x80 /* ... IF HIGH-ORDER BIT IS ONE, THERE IS A VALID */ - /* VALUE IN FOLLOWING 31 BITS */ - void *cvtadv; /* 3B8 ADDRESS OF ADDRESS VERIFICATION ROUTINE */ - void *cvttpio; /* 3BC ADDRESS OF VTAM TPIO (SVC 124) ROUTINE */ - void *cvtcrca; /* 3C0 WHEN CHANNEL RECONFIGURATION HARDWARE */ - /* (CRH) IS ACTIVE, ADDRESS OF CRH */ - /* COMMUNICATION AREA IECVCRCA. */ - /* OTHERWISE, ZERO. */ - void *cvtevent; /* 3C4 BRANCH ENTRY ADDRESS TO EVENTS (FAST */ - /* MULTIPLE WAIT ROUTINE) */ - void *cvtsscr; /* 3C8 ADDRESS OF STORAGE SYSTEM CONTROLLER */ - /* RECOVERY MANAGER CLEANUP ROUTINE */ - /* (SSC RMCR) */ - void *cvtcbbr; /* 3CC BRANCH ENTRY ADDRESS TO GETMAIN/FREEMAIN */ - void *cvteff02; /* 3D0 ADDRESS OF IKJEFF02, TSO MESSAGE ISSUER */ - /* SERVICE ROUTINE */ - void *cvtrv604; /* 3D4 RESERVED */ - void *cvtrv605; /* 3D8 RESERVED */ - void *cvthsm; /* 3DC POINTER TO HIERARCHICAL STORAGE MANAGER */ - /* (HSM) QUEUE CONTROL TABLE */ - void *cvtrac; /* 3E0 ADDRESS OF ACCESS CONTROL CVT */ - void *cvtcgk; /* 3E4 ADDRESS OF ROUTINE USED TO CHANGE THE KEY*/ - /* OF VIRTUAL PAGES */ - void *cvtrv609; /* 3E8 RESERVED */ - void *cvt0pt0e; /* 3EC ENTRY POINT TO IDENTIFY POST EXIT ROUTINES */ - void *cvt0pt03; /* 3F0 POST REINVOCATION ENTRY POINT FROM POST */ - /* EXIT ROUTINES */ - void *cvttcasp; /* 3F4 RESERVED FOR FUTURE USE */ - void *cvtasmrm; /* 3F8 ADDRESS OF AUXILIARY STORAGE MANAGEMENT */ - /* RESOURCE MANAGER FOR ADDRESS SPACE */ - /* TERMINATION */ - void *cvtjterm; /* 3FC ADDRESS OF AUXILIARY STORAGE MANAGEMENT */ - /* JOB TERMINATION RESOURCE MANAGER */ - void *cvtrsume; /* 400 ADDRESS OF RESUME FUNCTION */ - void *cvttctl; /* 404 ADDRESS OF TRANSFER CONTROL (TCTL) */ - /* FUNCTION */ - void *cvtcdal; /* 408 ADDRESS OF COMMON DISPATCHER ACTIVE LIST */ - void *cvtt6svc; /* 40C ENTRY POINT ADDRESS FOR TYPE 6 SVC EXIT */ - /* FUNCTION */ - void *cvtsusp; /* 410 ADDRESS OF SUSPEND ROUTINE */ - void *cvtihasu; /* 414 ADDRESS OF BIT STRING */ - void *cvtvdccr; /* 418 ADDRESS OF DISABLED CONSOLE COMMUNICATION*/ - /* ROUTINE (IEEVDCCR) */ - void *cvtcst; /* 41C ADDRESS OF CHANNEL SET TABLE (CST) */ - void *cvtrv623; /* 420 RESERVED */ - void *cvtrv624; /* 424 RESERVED */ - void *cvtrv625; /* 428 RESERVED */ - void *cvtrv626; /* 42C RESERVED */ - void *cvtrv627; /* 430 RESERVED */ - void *cvtrv628; /* 434 RESERVED */ -}; /* 438 (1080 bytes) */ - -/* OS - OS/VS COMMON EXTENSION */ -/* ADDRESS OF EXTENSION IS IN CVTEXT1 */ -struct cvtxtnt1 { - void *cvtfachn; /* 00 ADDRESS OF CHAIN OF DCB FIELD AREAS */ - /* (ISAM) */ - void *cvtrsv87; /* 04 RESERVED */ - void *cvtrsv88; /* 08 RESERVED */ -}; - -/* OS/VS1 - OS/VS2 COMMON EXTENSION */ -/* ADDRESS OF EXTENSION IS IN CVTEXT2 */ -struct cvtxtnt2 { - void *cvtdssv; /* 00 ADDRESS OF THE DYNAMIC SUPPORT SYSTEM */ - unsigned char cvtnucls; /* 04 IDENTIFICATION OF THE NUCLEUS MEMBER */ - /* NAME */ - unsigned char cvtflgbt; /* 05 FLAG BYTE (OS/VS1) */ -#define CVTNPE 0x80 /* ... INDICATES NON-PAGING ENVIRONMENT (VM */ - /* ... HANDSHAKING) (OS/VS1) */ -#define CVTVME 0x40 /* ... INDICATES MACHINE IS OPERATING IN VM */ - /* ENVIRONMENT (OS/VS1) */ -#define CVTBAH 0x20 /* ... INDICATES THAT THE VM/370 - OS/VS1 BTAM */ - /* AUTOPOLL HANDSHAKE IS OPERATIONAL */ - /* (OS/VS1) */ - unsigned short cvtrsv91; /* 06 RESERVED */ - void *cvtdebvr; /* 08 ADDRESS OF BRANCH ENTRY POINT OF DEB */ - /* VALIDITY CHECK ROUTINE */ - void *cvtrsv92; /* 0C RESERVED */ - void *cvtrsv93; /* 10 RESERVED */ - void *cvtrsv94; /* 14 RESERVED */ - void *cvtqida; /* 18 ADDRESS OF QUEUE IDENTIFICATION (QID) */ - /* TABLE PREFIX */ - void *cvtoltep; /* 1C POINTER TO CONTROL BLOCK CREATED BY SVC 59*/ - /* TO POINT TO PSEUDO-DEB'S */ - unsigned short cvtrsv96; /* 20 RESERVED */ - unsigned short cvtrsv97; /* 22 RESERVED */ - unsigned cvtrsv98; /* 24 RESERVED */ - void *cvtccvt; /* 28 ADDRESS OF CRYPTOGRAPHIC FACILITY CVT */ - void *cvtskta; /* 2C ADDRESS OF STORAGE KEY TABLE (VM */ - /* HANDSHAKING) (OS/VS1) */ - void *cvticb; /* 30 ADDRESS OF MASS STORAGE SYSTEM (MSS) */ - /* CONTROL BLOCK */ - unsigned char cvtrv400; /* 34 RESERVED */ - unsigned char cvtrv409; /* 35 RESERVED */ - unsigned char cvtrv418; /* 36 RESERVED */ - unsigned char cvtrv419; /* 37 RESERVED */ - unsigned short cvtrv420; /* 38 RESERVED */ - unsigned short cvtrv421; /* 3A RESERVED */ - unsigned short cvtrv422; /* 3C RESERVED */ - unsigned short cvtrv423; /* 3E RESERVED */ - void *cvtatcvt; /* 40 POINTER TO VTAM'S CVT */ -#define CVTATACT 0x80 /* ... IF ON, VTAM IS ACTIVE */ - void *cvtrv425; /* 44 RESERVED */ - void *cvtrv426; /* 48 RESERVED */ - void *cvtrv427; /* 4C RESERVED */ - void *cvtrv428; /* 50 RESERVED */ - unsigned char cvtrv429; /* 54 RESERVED */ - unsigned char cvtrv438; /* 55 RESERVED */ - unsigned char cvtrv447; /* 56 RESERVED */ - unsigned char cvtrv448; /* 57 RESERVED */ - unsigned short cvtrv449; /* 58 RESERVED */ - unsigned short cvtrv450; /* 5A RESERVED */ - unsigned short cvtrv451; /* 5C RESERVED */ - unsigned short cvtrv452; /* 5E RESERVED */ - void *cvtrv453; /* 60 RESERVED */ - void *cvtrv454; /* 64 RESERVED */ - void *cvtrv455; /* 68 RESERVED */ - void *cvtrv456; /* 6C RESERVED */ - unsigned char cvtrv457; /* 70 RESERVED */ - unsigned char cvtrv466; /* 71 RESERVED */ - unsigned char cvtrv475; /* 72 RESERVED */ - unsigned char cvtrv476; /* 73 RESERVED */ - unsigned char cvtrv477; /* 74 RESERVED */ - unsigned char cvtrv478; /* 75 RESERVED */ - unsigned short cvtrv479; /* 76 RESERVED */ - void *cvtrv480; /* 78 RESERVED */ - void *cvtrv481; /* 7C RESERVED */ - void *cvtrv482; /* 80 RESERVED */ -}; /* 84 (132 bytes) */ - -#endif /* CVT_H */ diff --git a/src/crent370/include/emfile.h b/src/crent370/include/emfile.h deleted file mode 100644 index e4ae156..0000000 --- a/src/crent370/include/emfile.h +++ /dev/null @@ -1,160 +0,0 @@ -#ifndef EMFILE_H -#define EMFILE_H - -/* - * Emulated File using MVS dataset. - * - * Normally an MVS dataset can be open for - * read, write or update but not at the same time. - * This behavior is unique to datasets. - * - * A dataset open for write can not be read. - * A dataset open for read can not be written. - * A dataset open for update can not be written - * to without first being read from the same - * location. This means the file can not grow - * while in update mode. - * - * When porting software written for Unix or PC's - * the expectation is that a 'file' can be accessed - * in any combination of read, write and update - * (seek read or seek write) at the same time and - * that the file can grow simply by positioning - * to the end of the file and writting new data - * causing the file to grow in size. - * - * This software emulates the expected unix/pc - * behavior using MVS datasets as emulated files. - * - * The datasets, from MVS perspective, are fixed - * block sequential datasets (LRECL=4096,BLKSIZE=4096). - * The emulated 'file' treats this dataset like a - * block of fixed size buffers upon which the unix/pc - * behavior is mapped. - * - * Note that the the first block of the dataset is - * reserved for storing a header containing the eye - * catcher "EMFILE MVS" as well as key values used - * to emulate the 'file' contained within the - * remaining dataset blocks. - */ - -#include "stdio.h" -#include "errno.h" -#include "clib64.h" - -#ifdef EMFILE /* defined in errno.h */ -# undef EMFILE -#endif - -typedef struct emfile EMFILE; /* emulated file handle */ - -/* - * Runtime configuration for emulated files. - * - * You can call emfile_set_config() anytime you desire to alter - * the default values used for allocating new datasets. - * - * Note the vols string can be NULL or one or more volume serial names - * like "TSO000,TSO002". Up to 5 volume names can be specified in - * this version. - * - * If the dataset is allocated on a single volume then the dataset - * will be initialized one track at a time as the dataset grows - * to accomodate the data written. - * However if the dataset is allocated on multiple volumes then - * the entire dataset will be initialized at open time with all - * of the extents being allocated at once. - * This behavior is a requirement of the BDAM access method used - * to access the dataset blocks. - */ -typedef enum emfile_space { - EMFILE_SPACE_TRACK=0, /* new datasets SPACE=TRACK */ - EMFILE_SPACE_CYL=1 /* new datasets SPACE=CYL */ -} EMFILE_SPACE; - -int emfile_set_config( /* ... (default value) */ - EMFILE_SPACE space, /* EMFILE_SPACE TRACK or CYL (track) */ - unsigned blksize, /* block size (4096) */ - unsigned primary, /* primary tracks or cylinders (15) */ - unsigned secondary, /* secondary tracks or cylinders (15) */ - const char *vols) /* volume serial name or NULL (NULL) */ asm("@@EMSCFG"); - -/* - * emfile_open() mode string values: - * "r" Opens a file for reading. The file must exist. - * "w" Creates an empty file for writing. - * If a file with the same name already exists, its content - * is erased and the file is considered as a new empty file. - * "a" Appends to a file. Writing operations, append data at the - * end of the file. The file is created if it does not exist. - * "r+" Opens a file to update both reading and writing. - * The file must exist. - * "w+" Creates an empty file for both reading and writing. - * "a+" Opens a file for reading and appending. - */ - -/* emfile_open() - open an existing or new EMFILE dataset depending on mode strung */ -EMFILE *emfile_open(const char *dsn, const char *mode) asm("@@EMOPEN"); - -/* emfile_create() - open a new EMFILE dataset for read and write access (update) */ -EMFILE *emfile_create(const char *dsn) asm("@@EMCREA"); - -/* emfile_close() - close emfile handle */ -int emfile_close(EMFILE *emfile) asm("@@EMCLOS"); - -/* emfile_flush() - flush write buffer to dataset */ -int emfile_flush(EMFILE *emfile) asm("@@EMFLUS"); - -/* emfile_sync() - flush write buffer to dataset and update header info */ -int emfile_sync(EMFILE *emfile) asm("@@EMSYNC"); - -/* emfile_get_error() - retrieve last error and resets last error */ -int emfile_get_error(EMFILE *f) asm("@@EMGERR"); - -/* emfile_getc() - read 1 character from file, returns EOF on error or EOF */ -int emfile_getc(EMFILE *f) asm("@@EMGETC"); - -/* emfile_gets() - read string with newline characters - returns NULL on error or EOF */ -char *emfile_gets(char *str, int size, EMFILE *f) asm("@@EMGETS"); - -/* emfile_putc() - write one character to dataset */ -int emfile_putc(int c, EMFILE *emfile) asm("@@EMPUTC"); - -/* emfile_puts() - write null byte terminated string to file */ -int emfile_puts(const char *str, EMFILE *f) asm("@@EMPUTS"); - -/* emfile_printf() - format and print into file */ -int emfile_printf(EMFILE *f, const char *format, ...) asm("@@EMPRTF"); - -/* emfile_vprintf() - format and print into file */ -int emfile_vprintf(EMFILE *f, const char *format, va_list arg) asm("@@EMVPRT"); - -/* emfile_seek() - position in the file relative to origin - * with origin being SEEK_SET(0), SEEK_CUR(1) or SEEK_END(2) - */ -int emfile_seek(EMFILE *f, long int offset, int origin) asm("@@EMSEEK"); - -/* emfile_tell(), emfile_tell64() - returns current position in file */ -long emfile_tell(EMFILE *f) asm("@@EMTELL"); -__64 emfile_tell64(EMFILE *f) asm("@@EMTE64"); - -/* emfile_getpos() returns pos set to current offset in file */ -int emfile_getpos(EMFILE *f, __64 *pos) asm("@@EMGPOS"); - -/* emfile_setpos() sets current offset to pos returned by emfile_getpos() */ -int emfile_setpos(EMFILE *f, const __64 *pos) asm("@@EMSPOS"); - -/* emfile_read() - read size bytes from file - returns number of elements read */ -size_t emfile_read(void * buffer, size_t size, size_t nmemb, EMFILE *f) asm("@@EMREAD"); - -/* emfile_write() - write emfile, returns number of elements written (nmemb) */ -size_t emfile_write(const void *ptr, size_t size, size_t nmemb, EMFILE *emfile) asm("@@EMWRIT"); - -/* emfile_truncate() - truncate file to specified length */ -int emfile_truncate(EMFILE *f, long int length) asm("@@EMTRUN"); - -/* emfile_dump() - write emfile handle values to console (wto) */ -void emfile_dump(EMFILE *f) asm("@@EMDUMP"); - -#endif diff --git a/src/crent370/include/emfilei.h b/src/crent370/include/emfilei.h deleted file mode 100644 index 24c7349..0000000 --- a/src/crent370/include/emfilei.h +++ /dev/null @@ -1,124 +0,0 @@ -#ifndef EMFILEI_H -#define EMFILEI_H - -/* This header provides the internal structures and function - * prototypes for the emulated file using MVS datasets - * described in the "emfile.h" header. - */ -#include "emfile.h" -#include "time64.h" -#include "string.h" -#include "clib.h" -#include "clib64.h" -#include "osdcb.h" -#include "osio.h" -#include "svc99.h" -#include "clibary.h" -#include "clibdscb.h" -#include "trkcalc.h" -#include "ihadva.h" -#include "cliblist.h" -#include "cliblock.h" -#include "mvssupa.h" - -/* EMFILE exist in errno.h as a define, so we have to undo it here */ -#define ERRNO_EMFILE EMFILE -#undef EMFILE - -#define MAXDDN 8 -#define MAXDSN 44 -#define MAXVOL 6 - -struct emfile { - char eye[8]; /* 00 eye catcher */ -#define EMFILE_EYE "*EMFILE*" /* ... eye catcher */ - __64 alloc; /* 08 allocated file bytes */ - __64 used; /* 10 used file bytes */ - __64 offset; /* 18 current position in file */ - unsigned block; /* 20 current block number */ - unsigned blocks; /* 24 dataset block count */ - unsigned tracks; /* 28 dataset track count */ - unsigned blkstrk; /* 2C dataset blocks per track */ - unsigned blksize; /* 30 block size */ - DCB *bdamdcb; /* 34 dataset control block */ - DECB *bdamdecb; /* 38 dataset event control blk */ - char *buf; /* 3C IO buffer of blksize bytes*/ - char *r0; /* 40 record 0 (header) */ - char ddname[8]; /* 44 allocated DD name */ - char z1; /* 4C zero byte */ - char dsname[44]; /* 4D dataset name */ - char z2; /* 79 zero byte */ - - unsigned short flags; /* 7A processing flags */ -#define EMFILE_FLAG_MULTIV 0x8000 /* ... dataset is multi volume */ -#define EMFILE_FLAG_GROW 0x4000 /* ... dataset can grow */ -#define EMFILE_FLAG_FULL 0x2000 /* ... dataset now full */ -#define EMFILE_FLAG_UPDATE 0x00C0 /* ... read and write */ -#define EMFILE_FLAG_READ 0x0080 /* ... read */ -#define EMFILE_FLAG_WRITE 0x0040 /* ... write */ -#define EMFILE_FLAG_APPEND 0x0020 /* ... append */ -#define EMFILE_FLAG_CREATE 0x0010 /* ... create if not exist */ -#define EMFILE_FLAG_DYNAMIC 0x0008 /* ... dynamically allocated */ -#define EMFILE_FLAG_NEW 0x0004 /* ... this is a new dataset */ -#define EMFILE_FLAG_EOF 0x0002 /* ... end of file reached */ -#define EMFILE_FLAG_DIRTY 0x0001 /* ... buf has been modified */ - - char **volser; /* 7C volser array */ - int error; /* 80 last error */ - char *growdd; /* 84 allocated dd name */ - char devtype; /* 88 device type code */ - char unusedc[3]; /* 89 unused/available */ - unsigned unusedu; /* 8C unused/available */ -}; /* 90 (144 bytes) */ - -typedef struct emfile10 EMFILE10; /* version 1 header record */ -struct emfile10 { - char eye[16]; /* 00 eye catcher, signature */ -#define EMFILEMVS "EMFILE MVS" /* ... "EMFILE MVS" */ -#define EMFILEVER "1.0" /* ... "1.0" */ -#define EMFILEEYE10 \ - EMFILEMVS " " EMFILEVER /* ... "EMFILE MVS 1.0" */ - time64_t create; /* 10 create timestamp */ - time64_t modified; /* 18 modified timestamp */ - __64 size; /* 20 size of file in bytes */ -}; /* 28 (40 bytes) */ - -typedef struct emfilewsa EMFILEWSA; /* writable static area */ -struct emfilewsa { - char eye[8]; /* 00 eye catcher */ -#define EMFILEWSA_EYE "*EMFWSA*" /* ... eye catcher string */ - unsigned space; /* 08 EMFILE_TRACK or EMFILE_CYL*/ - unsigned blksize; /* 0C block and lrecl size */ - unsigned primary; /* 10 primary track/cyl */ - unsigned secondary; /* 14 secondary track/cyl */ - char *vols; /* 18 volume serial number's */ -}; /* 1C (28 bytes) */ - -/* internal use only */ -int emfile_setup(EMFILE *f) asm("@@EMSETU"); -int emfile_init(const char *ddname, unsigned blksize, JFCB *jfcb) asm("@@EMINIT"); -int emfile_full_init(const char *ddname, unsigned blksize, JFCB *jfcb) asm("@@EMFULL"); -int emfile_set_dsn(const char *dsn, char *dest) asm("@@EMSDSN"); -int emfile_set_ddn(const char *ddn, char *dest) asm("@@EMSDDN"); -int emfile_set_volser(EMFILE *f, JFCB *jfcb) asm("@@EMSVOL"); -int emfile_calc_size(EMFILE *p) asm("@@EMCSIZ"); -int emfile_read_block(EMFILE *p, unsigned block, char *buf) asm("@@EMRBLK"); -int emfile_write_block(EMFILE *p, unsigned block, char *buf) asm("@@EMWBLK"); -int emfile_validate(EMFILE *p) asm("@@EMVALI"); -int emfile_read_header(EMFILE *p) asm("@@EMRHDR"); -int emfile_write_header(EMFILE *p) asm("@@EMWHDR"); -int emfile_create_header(char *buf, __64 size) asm("@@EMCHDR"); -int emfile_allocate_new(EMFILE *p) asm("@@EMANEW"); -int emfile_allocate_old(EMFILE *p) asm("@@EMAOLD"); -int emfile_allocate_shr(EMFILE *p) asm("@@EMASHR"); -int emfile_allocate_mod(EMFILE *f, char *ddname) asm("@@EMAMOD"); -int emfile_unallocate(const char *ddname) asm("@@EMUNAL"); -int emfile_offset_block_pos(EMFILE *f, unsigned *b, unsigned *p) asm("@@EMOBPO"); -int emfile_grow(EMFILE *f, unsigned bytes) asm("@@EMGROW"); -int emfile_write_bytes(EMFILE *f, const char *buf, unsigned size) asm("@@EMWBYT"); -/* emfile_read_bytes() - returns bytes read (>=0) or error (<0) */ -int emfile_read_bytes(EMFILE *f, char *buf, unsigned size, const char *stopc) asm("@@EMRBYT"); -/* emfile_get_wsa() - returns pointer to writeable static area or NULL (out of memory) */ -EMFILEWSA *emfile_get_wsa(void) asm("@@EMGWSA"); - -#endif diff --git a/src/crent370/include/enqpl.h b/src/crent370/include/enqpl.h deleted file mode 100644 index 182cde7..0000000 --- a/src/crent370/include/enqpl.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef ENQPL_H -#define ENQPL_H - -typedef struct enqpl ENQPL; - -struct enqpl { /* SVC 56 (ENQ) and SVC 48 (DEQ) parameter list */ - unsigned char end; /* 00 list end byte 0xC0 */ -#define ENQ_END_LAST 0x80 /* ... last parameter list */ -#define ENQ_END_OLD 0x40 /* ... no new options */ - unsigned char len; /* 01 length of resource name */ - unsigned char opt; /* 02 option byte */ -#define ENQ_OPT_SHARED 0x80 /* ... shared request */ -#define ENQ_OPT_STEP 0x00 /* ... scope=STEP */ -#define ENQ_OPT_SYSTEM 0x40 /* ... scope=SYSTEM */ -#define ENQ_OPT_SYSTEMS 0x48 /* ... scope=SYSTEMS (SYSTEM+SYSTEMS) */ -#define ENQ_OPT_TEST 0x07 /* ... RET=TEST */ -#define ENQ_OPT_USE 0x03 /* ... RET=USE */ -#define ENQ_OPT_CHNG 0x02 /* ... RET=CHNG */ -#define ENQ_OPT_HAVE 0x01 /* ... RET=HAVE */ - unsigned char rc; /* 03 return code */ - void *qname; /* 04 queue name address */ - void *rname; /* 08 resource name address */ -}; - -#endif diff --git a/src/crent370/include/errno.h b/src/crent370/include/errno.h deleted file mode 100644 index bf621f8..0000000 --- a/src/crent370/include/errno.h +++ /dev/null @@ -1,169 +0,0 @@ -#ifndef ERRNO_H -#define ERRNO_H - -extern int *__errno(void); -#define errno *(__errno()) - -/* -** Any changes here should also result in a change to strerror.c -*/ - -#define EPERM 1 /* Operation not permitted */ -#define ENOENT 2 /* No such file or directory */ -#define ESRCH 3 /* No such process */ -#define EINTR 4 /* Interrupted system call */ -#define EIO 5 /* I/O error */ -#define ENXIO 6 /* No such device or address */ -#define E2BIG 7 /* Argument list too long */ -#define ENOEXEC 8 /* Exec format error */ -#define EBADF 9 /* Bad file number */ -#define ECHILD 10 /* No child processes */ - -#define ENOMEM 12 /* Out of memory */ -#define EACCES 13 /* Permission denied */ -#define EFAULT 14 /* Bad address */ -#define ENOTBLK 15 /* Block device required */ -#define EBUSY 16 /* Device or resource busy */ -#define EEXIST 17 /* File exists */ -#define EXDEV 18 /* Cross-device link */ -#define ENODEV 19 /* No such device */ -#define ENOTDIR 20 /* Not a directory */ -#define EISDIR 21 /* Is a directory */ -#define EINVAL 22 /* Invalid argument */ -#define ENFILE 23 /* File table overflow */ -#define EMFILE 24 /* Too many open files */ -#define ENOTTY 25 /* Not a typewriter */ -#define ETXTBSY 26 /* Text file busy */ -#define EFBIG 27 /* File too large */ -#define ENOSPC 28 /* No space left on device */ -#define ESPIPE 29 /* Illegal seek */ -#define EROFS 30 /* Read-only file system */ -#define EMLINK 31 /* Too many links */ -#define EPIPE 32 /* Broken pipe */ -#define EDOM 33 /* Math argument out of domain of func */ -#define ERANGE 34 /* Math result not representable */ -#if 0 -#define EDEADLK 35 /* Resource deadlock would occur */ -#define ENAMETOOLONG 36 /* File name too long */ -#define ENOLCK 37 /* No record locks available */ -#define ENOSYS 38 /* Function not implemented */ -#define ENOTEMPTY 39 /* Directory not empty */ -#define ELOOP 40 /* Too many symbolic links encountered */ -#endif - -#define EAGAIN 35 /* Resource temporarily unavailable */ -#define EWOULDBLOCK EAGAIN /* Operation would block */ -#define EINPROGRESS 36 /* Operation now in progress */ -#define EALREADY 37 /* Operation already in progress */ - -/* ipc/network software -- argument errors */ -#define ENOTSOCK 38 /* Socket operation on non-socket */ -#define EDESTADDRREQ 39 /* Destination address required */ -#define EMSGSIZE 40 /* Message too long */ -#define EPROTOTYPE 41 /* Protocol wrong type for socket */ -#define ENOPROTOOPT 42 /* Protocol not available */ -#define EPROTONOSUPPORT 43 /* Protocol not supported */ -#define ESOCKTNOSUPPORT 44 /* Socket type not supported */ -#define EOPNOTSUPP 45 /* Operation not supported */ -#define EPFNOSUPPORT 46 /* Protocol family not supported */ -#define EAFNOSUPPORT 47 /* Address family not supported by protocol family */ -#define EADDRINUSE 48 /* Address already in use */ -#define EADDRNOTAVAIL 49 /* Can't assign requested address */ - -/* ipc/network software -- operational errors */ -#define ENETDOWN 50 /* Network is down */ -#define ENETUNREACH 51 /* Network is unreachable */ -#define ENETRESET 52 /* Network dropped connection on reset */ -#define ECONNABORTED 53 /* Software caused connection abort */ -#define ECONNRESET 54 /* Connection reset by peer */ -#define ENOBUFS 55 /* No buffer space available */ -#define EISCONN 56 /* Socket is already connected */ -#define ENOTCONN 57 /* Socket is not connected */ -#define ESHUTDOWN 58 /* Can't send after socket shutdown */ -#define ETOOMANYREFS 59 /* Too many references: can't splice */ -#define ETIMEDOUT 60 /* Operation timed out */ -#define ECONNREFUSED 61 /* Connection refused */ - -/* Other */ -#define ELOOP 62 /* Too many levels of symbolic links */ -#define ENAMETOOLONG 63 /* File name too long */ -#define EHOSTDOWN 64 /* Host is down */ -#define EHOSTUNREACH 65 /* No route to host */ -#define ENOTEMPTY 66 /* Directory not empty */ -#define EPROCLIM 67 /* Too many processes */ -#define EUSERS 68 /* Too many users */ -#define EDQUOT 69 /* Disc quota exceeded */ -#define ESTALE 70 /* Stale NFS file handle */ -#define EREMOTE 71 /* Too many levels of remote in path */ - -#if 0 -#define ENOMSG 42 /* No message of desired type */ -#define EIDRM 43 /* Identifier removed */ -#define ECHRNG 44 /* Channel number out of range */ -#define EL2NSYNC 45 /* Level 2 not synchronized */ -#define EL3HLT 46 /* Level 3 halted */ -#define EL3RST 47 /* Level 3 reset */ -#define ELNRNG 48 /* Link number out of range */ -#define EUNATCH 49 /* Protocol driver not attached */ -#define ENOCSI 50 /* No CSI structure available */ -#define EL2HLT 51 /* Level 2 halted */ -#define EBADE 52 /* Invalid exchange */ -#define EBADR 53 /* Invalid request descriptor */ -#define EXFULL 54 /* Exchange full */ -#define ENOANO 55 /* No anode */ -#define EBADRQC 56 /* Invalid request code */ -#define EBADSLT 57 /* Invalid slot */ - -/* #define EDEADLOCK EDEADLK */ - -#define EBFONT 59 /* Bad font file format */ -#define ENOSTR 60 /* Device not a stream */ -#define ENODATA 61 /* No data available */ -#define ETIME 62 /* Timer expired */ -#define ENOSR 63 /* Out of streams resources */ -#define ENONET 64 /* Machine is not on the network */ -#define ENOPKG 65 /* Package not installed */ -#define ENOLINK 67 /* Link has been severed */ -#define EADV 68 /* Advertise error */ -#define ESRMNT 69 /* Srmount error */ -#define ECOMM 70 /* Communication error on send */ -#define EPROTO 71 /* Protocol error */ -#endif -#define EMULTIHOP 72 /* Multihop attempted */ -#define EDOTDOT 73 /* RFS specific error */ -#define EBADMSG 74 /* Not a data message */ -#define EOVERFLOW 75 /* Value too large for defined data type */ -#define ENOTUNIQ 76 /* Name not unique on network */ -#define EBADFD 77 /* File descriptor in bad state */ -#define EREMCHG 78 /* Remote address changed */ -#define ELIBACC 79 /* Can not access a needed shared library */ -#define ELIBBAD 80 /* Accessing a corrupted shared library */ -#define ELIBSCN 81 /* .lib section in a.out corrupted */ -#define ELIBMAX 82 /* Attempting to link in too many shared libraries */ -#define ELIBEXEC 83 /* Cannot exec a shared library directly */ -#define EILSEQ 84 /* Illegal byte sequence */ -#define ERESTART 85 /* Interrupted system call should be restarted */ -#define ESTRPIPE 86 /* Streams pipe error */ - -#define EUCLEAN 117 /* Structure needs cleaning */ -#define ENOTNAM 118 /* Not a named type file */ -#define ENAVAIL 119 /* No semaphores available */ -#define EISNAM 120 /* Is a named type file */ -#define EREMOTEIO 121 /* Remote I/O error */ -#define ENOMEDIUM 123 /* No medium found */ -#define EMEDIUMTYPE 124 /* Wrong medium type */ -#define ECANCELED 125 /* Operation Canceled */ -#define ENOKEY 126 /* Required key not available */ -#define EKEYEXPIRED 127 /* Key has expired */ -#define EKEYREVOKED 128 /* Key has been revoked */ -#define EKEYREJECTED 129 /* Key was rejected by service */ -#define EOWNERDEAD 130 /* Owner died */ -#define ENOTRECOVERABLE 131 /* State not recoverable */ - -#define EVSTYPE 150 /* Invalid VSAM type */ -#define EVSACCESS 151 /* Invalid VSAM access */ -#define EVSMODE 152 /* Invalid VSAM mode */ -#define EVSOPEN 153 /* VSAM clsuter could not be opened */ -#define EVSERROR 154 /* VSAM error occured */ - -#endif diff --git a/src/crent370/include/float.h b/src/crent370/include/float.h deleted file mode 100644 index 8dfc624..0000000 --- a/src/crent370/include/float.h +++ /dev/null @@ -1,137 +0,0 @@ -/*********************************************************************/ -/* */ -/* This Program Written by Paul Edwards. */ -/* Released to the Public Domain */ -/* */ -/*********************************************************************/ -/*********************************************************************/ -/* */ -/* float.h - float header file. */ -/* */ -/*********************************************************************/ - -#ifndef __FLOAT_INCLUDED -#define __FLOAT_INCLUDED - -#if defined(__CMS__) || defined(__MVS__) || defined(__VSE__) -/* - IBM 360 & 370 use "HEX" floating point - float is 32 bits, double & long double are 64 bit. - Although some models can do 128 bit (actually 120 bit) - GCC does not implement this and "long double" is same as "double" -*/ - -/* rounding direction is unpredictable */ -#define FLT_ROUNDS 0 - -/* Floating point is HEX so RADIX is base 16 */ -#define FLT_RADIX 16 - -/* Note FLT_RADIX is 16 these are smaller than normal*/ -#define FLT_MANT_DIG 6 -#define DBL_MANT_DIG 14 -/* don't use 128 bit floats so this is still 14 */ -#define LDBL_MANT_DIG 14 - - -/* As IBM uses hex float with "wobbling precision" these are approximate */ -#define FLT_DIG 7 -#define DBL_DIG 15 -#define LDBL_DIG 15 - - -#define FLT_MIN_EXP (-64) -#define DBL_MIN_EXP (-64) -#define LDBL_MIN_EXP (-64) - -#define FLT_MIN_10_EXP (-78) -#define DBL_MIN_10_EXP (-78) -#define LDBL_MIN_10_EXP (-78) - -#define FLT_MAX_EXP 63 -#define DBL_MAX_EXP 63 -#define LDBL_MAX_EXP 63 - -#define FLT_MAX_10_EXP 75 -#define DBL_MAX_10_EXP 75 -#define LDBL_MAX_10_EXP 75 - -/* - This is a temporary fiddle to get round bug in GCC - scanning of ASCII to Floats. -*/ -typedef union { - unsigned short _HexVal[4]; - double _Dval; - float _Fval; - long _Lval; -} _HexFloat; - -#if 0 -static _HexFloat _FltMax = {{0x7fff, 0xffff ,0xffff ,0xffff}}; -static _HexFloat _FltMin = {{0x0010, 0x0000 ,0x0000 ,0x0000}}; -static _HexFloat _DblMax = {{0x7fff ,0xffff ,0xffff ,0xffff}}; -static _HexFloat _DblMin = {{0x0010 ,0x0000 ,0x0000 ,0x0000}}; -static _HexFloat _FltEps = {{0x3C10 ,0x0000 ,0x0000 ,0x0000}}; -static _HexFloat _DblEps = {{0x3410 ,0x0000 ,0x0000 ,0x0000}}; -#else -extern _HexFloat _FltMax; -extern _HexFloat _FltMin; -extern _HexFloat _DblMax; -extern _HexFloat _DblMin; -extern _HexFloat _FltEps; -extern _HexFloat _DblEps; -#endif - -#define FLT_MAX _FltMax._Fval -#define DBL_MAX _DblMax._Dval -#define LDBL_MAX _DblMax._Lval - -#define FLT_MIN _FltMin._Fval -#define DBL_MIN _DblMin._Fval -#define LDBL_MIN _DblMin._Fval - -#define FLT_EPSILON _FltEps._Fval -#define DBL_EPSILON _DblEps._Fval -#define LDBL_EPSILON _DblEps._Fval - - - -#else -/* - original stuff from Paul for IEEE maths -*/ - -#define FLT_ROUNDS 1 -#define FLT_RADIX 2 -#define FLT_MANT_DIG 24 -#define DBL_MANT_DIG 53 -#define LDBL_MANT_DIG 53 -#define FLT_DIG 6 -#define DBL_DIG 10 -#define LDBL_DIG 10 -#define FLT_MIN_EXP -125 -#define DBL_MIN_EXP -1021 -#define LDBL_MIN_EXP -1021 -#define FLT_MIN_10_EXP -37 -#define DBL_MIN_10_EXP -37 -#define LDBL_MIN_10_EXP -37 -#define FLT_MAX_EXP +128 -#define DBL_MAX_EXP +1024 -#define LDBL_MAX_EXP +1024 -#define FLT_MAX_10_EXP +37 -#define DBL_MAX_10_EXP +37 -#define LDBL_MAX_10_EXP +37 -#define FLT_MAX 1E+37 -#define DBL_MAX 1E+37 -#define LDBL_MAX 1E+37 -#define FLT_EPSILON 1E-5 -#define DBL_EPSILON 1E-9 -#define LDBL_EPSILON 1E-9 -#define FLT_MIN 1E-37 -#define DBL_MIN 1E-37 -#define LDBL_MIN 1E-37 -#endif - -#endif - diff --git a/src/crent370/include/get3.h b/src/crent370/include/get3.h deleted file mode 100644 index 0385abf..0000000 --- a/src/crent370/include/get3.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef GET3_H -#define GET3_H - -/* Use GET3 to convert a 3 byte character array to a value. -** Example: int addr = (int) GET3(esd->address); -*/ -#define GET3(s) ( \ - ((unsigned char*)(s))[0] << 16 | \ - ((unsigned char*)(s))[1] << 8 | \ - ((unsigned char*)(s))[2] ) - -/* Use SET3 to save a value into a 3 byte character array. -** Example: SET3(address,char_array); -*/ -#define SET3(u,s) ( \ - ((unsigned char*)(s))[0] = (unsigned char)(((unsigned)u >> 16) & 0xFF), \ - ((unsigned char*)(s))[1] = (unsigned char)(((unsigned)u >> 8) & 0XFF), \ - ((unsigned char*)(s))[2] = (unsigned char)((unsigned)u & 0xFF)) - -#endif diff --git a/src/crent370/include/hasphct.h b/src/crent370/include/hasphct.h deleted file mode 100644 index a7066da..0000000 --- a/src/crent370/include/hasphct.h +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef HASPHCT_H -#define HASPHCT_H - -typedef struct __hct __HCT; - -/* JES Checkpoint Master Record */ -struct __hct { - unsigned int _MASTERL; /* 00 CHECKPOINT MASTER RCD LEN */ - unsigned short _JOBRECN; /* 04 NUMBER OF 4K JOB Q RECORDS */ - unsigned short _JOTRECN; /* 06 NUMBER OF 4K JOT RECORDS */ - unsigned int _1; /* 08 RESERVED */ - unsigned short _2; /* 0C RESERVED */ - unsigned char _WCHECK; /* 0E CKPT WRITE-CHECK-RCD VALUE */ - unsigned char _CKPTFLG; /* 0F CHECKPOINT DISPOSITION */ - unsigned char _CKPUSER[8]; /* 10 CHECKPOINTED USER FIELD */ - unsigned int _UNSPUNQ; /* 18 MTTR OF SPIN IOTS WAITING FOR JOT */ - unsigned int _NEWSIOT; /* 1C MTTR OF JES2-NEWS IOT, OR ZERO */ - unsigned int _NEWSTTR; /* 20 MTTR OF JES2-NEWS DS, OR ZERO */ - unsigned short _JQFREE; /* 24 OFFSET/4 OF FIRST FREE JQE */ - unsigned short _JQHEADS[47]; /* 26 HEADS OF ACTIVE JOB QUEUE CHAINS */ -#define _JQTYPES 47 /* ... NUMBER OF JOB QUEUES */ - unsigned int _DATAKEY; /* 84 MASTER PERIPHERAL DATA SET KEY */ - unsigned short _JOBNO; /* 88 HASP JOB NUMBER */ - unsigned short _STCNO; /* 8A STARTED TASK NUMBER */ - unsigned short _TSUNO; /* 8C TIME-SHARING USER NUMBER */ - unsigned short _3[6]; /* 8E RESERVED */ - unsigned char _HASPID[4]; /* 9A CL4'JES2' CHECKPOINT RECORD IDENT */ - unsigned char _CHKPT[6]; /* 9E CHECKPOINT VOLUME SERIAL NUMBER */ - unsigned char _CHKPT2[6]; /* A4 SECONDARY CHECKPOINT VOLSER */ - unsigned char _SPOOL[6]; /* AA PRIMARY SPOOL VOLUME */ - unsigned short _BUFSIZE; /* B0 Y(1960) HASP BUFFER SIZE */ - unsigned short _MAXJOBS; /* B2 MAXIMUM NUMBER OF JOBS IN SYSTEM */ - unsigned short _NUMJOES; /* B4 NUMBER OF JOB OUTPUT ELEMENTS */ - unsigned short _MINJOES; /* B6 MINIMUM NUMBER OF FREE JOES */ - unsigned short _NUMRJE; /* B8 NUMBER OF REMOTE TERMINALS */ - unsigned short _NUMTGV; /* BA NUMBER OF TRACK GROUPS PER VOLUME */ - unsigned short _QSENO; /* BC NUMBER OF MEMBERS IN THIS NODE */ - unsigned char _NUMDA; /* BE NUMBER OF DIRECT ACCESS MODULES */ - unsigned char _SPOLMSG; /* BF MSG SPOOL BUFFERS FOR EACH REMOTE */ - unsigned char _4; /* C0 RESERVED */ - unsigned char _5; /* C1 RESERVED */ - unsigned char _RECINCR; /* C2 RECORD ALTERNATION PARAMETER */ - unsigned char _TCELSIZ; /* C3 NBR OF BUFFERS IN A TRAKCELL */ - unsigned short _6; /* C4 RESERVED FOR FUTURE USE */ - unsigned short _7; /* C6 RESERVED FOR FUTURE USE */ - unsigned short _8; /* C8 RESERVED FOR FUTURE USE */ - unsigned short _9; /* CA */ -}; /* CC (204 bytes) */ - -#endif diff --git a/src/crent370/include/haspiot.h b/src/crent370/include/haspiot.h deleted file mode 100644 index 5746ea9..0000000 --- a/src/crent370/include/haspiot.h +++ /dev/null @@ -1,65 +0,0 @@ -#ifndef HASPIOT_H -#define HASPIOT_H - -#include "hasptgm.h" -#include "hasppddb.h" -#include "hasptab.h" - -typedef struct __iot __IOT; /* JES Input Output Table */ - -/* JES Input Output Table */ -struct __iot { -/* IOTDSECT DSECT HASP INPUT/OUTPUT TABLE DSECT - DS (BUFSTART-BUFDSECT)X BUFFER CONTROL INFORMATION -IOTSTART EQU * START OF DATA WRITTEN TO SPOOL -*/ - unsigned char IOTID[4]; /* 00 CL4'IOT' IOT IDENTIFIER */ - unsigned short IOTLENG; /* 04 LENGTH OF IOT INCLUDING PREFIX */ - unsigned char IOTFLAG1; /* 06 FIRST FLAG BYTE */ -#define IOT1CKPT 0x80 /* ... REWRITE THIS IOT */ -#define IOT1RSV1 0x40 /* ... RESERVED */ -#define IOT1RSV2 0x20 /* ... RESERVED */ -#define IOT1SPIN 0x10 /* ... IOT TYPE IS SPINOFF */ -#define IOT1ALOC 0x08 /* ... IOT IS AN ALLOCATION IOT */ -#define IOT1NTPR 0x04 /* ... TO BE PROC. BY SPIN/HOLD */ -#define IOT1NEWS 0x02 /* ... JESNEWS IOT */ -#define IOT1RSV7 0x01 /* ... RESERVED */ - - unsigned char IOTFLAG2; /* 07 SECOND FLAG BYTE */ -#define IOT2RSV0 0x80 /* ... RESERVED */ -#define IOT2RSV1 0x40 /* ... RESERVED */ -#define IOT2RSV2 0x20 /* ... RESERVED */ -#define IOT2RSV3 0x10 /* ... RESERVED */ -#define IOT2RSV4 0x08 /* ... RESERVED */ -#define IOT2RSV5 0x04 /* ... RESERVED */ -#define IOT2RSV6 0x02 /* ... RESERVED */ -#define IOT2RSV7 0x01 /* ... RESERVED */ - - unsigned int IOTJBKEY; /* 08 JOB IDENTIFIER KEY */ - unsigned int IOTTRACK; /* 0C TRACK ADDRESS OF THIS IOT */ - unsigned int IOTIOTTR; /* 10 TRACK ADDRESS OF NEXT IOT */ - unsigned int IOTIOT; /* 14 STORAGE ADDRESS OF NEXT IOT */ - unsigned int IOTSJB; /* 18 ADDRESS OF SJB FOR EXECUTING JOB */ -#define IOTJQOFF IOTSJB /* 18 SPUN/HELD IOT -- JQE OFFSET */ - unsigned int IOTHQT1; /* 1C TRACK ADDRESS OF 1ST HQT */ - unsigned int IOTHQT; /* 20 TRACK ADDRESS OF NEW HQT */ - unsigned int IOTSPIOT; /* 24 TRACK ADDRESS OF NEXT SPIN IOT */ - unsigned short IOTHQRCT; /* 28 HOLD REQUEST NUMBER */ - unsigned short __1; /* 2A */ - unsigned int IOTPDDBP; /* 2C OFFSET BEYOND LAST PDDB IN IOT */ - unsigned char IOTMSTAB[TABLNGTH]; /* 30 MASTER TAB */ - unsigned char __2[4]; /* 3C ALLIGN IOTTGMAP TO DOUBLEWORD */ - unsigned char IOTTGMAP[0]; /* 40 START OF TRACK GROUP MAP */ -}; - -/* OFFSETS FROM 1ST PDDB OF FIXED PDDB'S */ -#define IOTPDBOJ (0*PDBLENG) /* PDDB FOR INPUT JCL */ -#define IOTPDBOL (1*PDBLENG) /* PDDB FOR HASP JOB LOG */ -#define IOTPDBOI (2*PDBLENG) /* PDDB FOR JCL IMAGES */ -#define IOTPDBOM (3*PDBLENG) /* PDDB FOR SYSTEM MESSAGES */ -#define IOTPDBOT (4*PDBLENG) /* PDDB FOR INTERNAL TEXT */ -#define IOTPDBON (5*PDBLENG) /* PDDB FOR JOB JOURNAL */ -#define IOTPDBOD (6*PDBLENG) /* PDDB FOR 1ST SYSIN/SYSOUT DATASET */ - - -#endif // CLIBIOT_H diff --git a/src/crent370/include/haspjct.h b/src/crent370/include/haspjct.h deleted file mode 100644 index 4328b22..0000000 --- a/src/crent370/include/haspjct.h +++ /dev/null @@ -1,162 +0,0 @@ -#ifndef HASPJCT_H -#define HASPJCT_H - -#include "hasptgm.h" - -typedef struct __jct __JCT; /* JES Job Control Table */ - -struct __jct { -/* JCTDSECT DSECT JOB CONTROL TABLE DSECT - USING JCTDSECT,JCT ESTABLISH JCT ADDRESSABILITY - DS (BUFSTART-BUFDSECT)X BUFFER CONTROL INFORMATION -JCTSTART EQU * START OF DATA WRITTEN TO SPOOL -*/ - unsigned char JCTID[4]; /* 00 CL4'JCT' JCT IDENTIFIER */ - unsigned short JCTLENG; /* 04 LENGTH OF JCT INCLUDING PREFIX */ - unsigned char JCTFLAG1; /* 06 FLAGS 1 --- */ -#define JCT1CKPT 0x80 /* ... REWRITE THIS JCT */ -#define JCTBURST 0x40 /* ... JOB OUTPUT BURST OPTION */ - - unsigned char JCTJTFLG; /* 07 JOB TERM FLAGS */ -#define JCTJTJF 0x80 /* ... JOB FAILED */ -#define JCTJTCF 0x40 /* ... JOB FAILED DUE TO CC */ -#define JCTJTABD 0x20 /* ... JCTABEND WAS ON */ - - unsigned int JCTJBKEY; /* 08 JOB IDENTIFIER KEY */ - unsigned int JCTSPIOT; /* 0C TRACK ADDRESS OF 1ST SPIN IOT */ - unsigned int JCTIOT; /* 10 TRACK ADDRESS OF 1ST REGULAR IOT */ - unsigned int JCTHQT; /* 14 TRACK ADDRESS OF 1ST HQT */ - unsigned int JCTOCTTR; /* 18 TRACK ADDRESS OF OCR TABLE */ - unsigned int JCTJQE; /* 1C OFFSET OF HASP JOB QUEUE ENTRY */ - unsigned short JCTPDDBK; /* 20 PERIPHERAL DATA SET KEY */ - unsigned short JCTPDDBO; /* 22 DATA SET KEY FOR 1ST OUTPUT PDDB */ - int JCTCNVRC; /* 24 RETURN CODE FROM JCL CONVERTER */ -#define JCTCOK 0 /* ... JCL CONVERTED WITHOUT ERROR */ -#define JCTCJCL 4 /* ... JCL ERROR DETECTED BY CONVERTER */ -#define JCTCIO 8 /* ... I/O ERROR DETECTED BY CONVERTER */ -#define JCTCDUPL JCTCJCL /* ... DUPLICATE LOGON EXECUTING */ -#define JCTCABND 36 /* ... UNRECOVERABLE ERROR IN CONVERSION */ - - unsigned int JCTJLOGC; /* 28 RESUME TRACK FOR LOG DATA SET */ - unsigned int JCTMSGSC; /* 2C RESUME TRACK FOR MSG DATA SET */ - unsigned char __1[2]; /* 30 RESERVED */ - unsigned char JCTPRTY[2]; /* 32 /*PRIORITY OR JOB CARD 'PRTY=' */ - unsigned short JCTJSSTP; /* 34 JOB SELECT RESTART STEP (SSRQSTEP) */ - unsigned short JCTHQRCT; /* 36 HOLD QUEUE RECORD COUNT */ - unsigned char JCTJSFLG; /* 38 JOB SELECT FLAGS (SSRQFLG1) */ - unsigned char JCTSMFLG; /* 39 SMF FLAGS */ -#define JCTSMFL0 0x80 /* ... RESERVED */ -#define JCTSMFL1 0x40 /* ... RESERVED */ -#define JCTNOUSO 0x20 /* ... DO NOT TAKE IEFUSO SMF EXIT */ -#define JCTSMFL3 0x10 /* ... RESERVED */ -#define JCTSMFL4 0x08 /* ... RESERVED */ -#define JCTNOTY6 0x04 /* ... DO NOT PRODUCE TYPE 6 SMF RECORD */ -#define JCTNOUJP 0x02 /* ... DO NOT TAKE IEFUJP SMF EXIT */ -#define JCTNOT26 0x01 /* ... DO NOT PRODUCE TYPE 26 SMF RECORD */ - - /* KEEP THE FIELDS JCTJOBFL AND JCTJBOPT TOGETHER FOR SMF */ - unsigned char JCTJOBFL; /* 3A HASP JOB FLAGS */ -#define JCTBATCH 0x80 /* ... BACKGROUND BATCH JOB */ -#define JCTTSUJB 0x40 /* ... FOREGROUND TIME SHARING USER */ -#define JCTSTCJB 0x20 /* ... SYSTEM TASK */ -#define JCTNOJNL 0x10 /* ... NO JOURNAL OPTION */ -#define JCTNOUPT 0x08 /* ... NO OUTPUT OPTION */ -#define JCTTSCAN 0x04 /* ... TYPRUN=SCAN WAS SPECIFIED */ -#define JCTTCOPY 0x02 /* ... TYPRUN=COPY WAS SPECIFIED */ -#define JCTRSTRT 0x01 /* ... ALLOW WARM START RE-QUEUE TO XEQ */ -#define JCTPURGE JCTJOBFL /* 3A START OF SMF PURGE RECORD */ - - unsigned char JCTJBOPT; /* 3B HASP JOB OPTIONS */ -#define JCTPRICD 0x80 /* ... /*PRIORITY CARD OR - JOB CARD 'PRTY=' PRESENT */ -#define JCTSETUP 0x40 /* ... /*SETUP CARD(S) PRESENT */ -#define JCTTHOLD 0x20 /* ... TYPERUN=HOLD WAS SPECIFIED */ -#define JCTNOLOG 0x10 /* ... NO JOB LOG OPTION */ -#define JCTXBACH 0x08 /* ... EXECUTION BATCHING JOB */ -#define JCTINRDR 0x04 /* ... JOB WAS ENTERED ON INTERNAL READER */ -#define JCTRERUN 0x02 /* ... JOB WAS RE-RUN */ -#define JCTQHELD 0x01 /* ... RESERVED FOR CAT AND SMF RECORDS */ - - /* KEEP NEXT 108 BYTES INTACT FOR SMF - JCTJOBID THROUGH JCTNUPAS */ - unsigned char JCTJOBID[8];/* 3C HASP ASSIGNED JOB IDENTIFICATION */ - unsigned char JCTJNAME[8];/* 44 JOB NAME FROM JOB CARD */ - unsigned char JCTPNAME[20];/* 4C PROGRAMMER'S NAME FROM JOB CARD */ - unsigned char JCTMCLAS; /* 60 MSGCLASS FROM JOB CARD */ - unsigned char JCTJCLAS; /* 61 JOB CLASS FROM JOB CARD */ - unsigned char JCTIPRIO; /* 62 HASP INITIAL JOB SELECTION PRIORITY */ - unsigned char JCTPRIO; /* 63 HASP EXECUTION SELECTION PRIORITY */ - unsigned char JCTIOPRI; /* 64 HASP INITIAL OUTPUT SELECTION PRIO */ - unsigned char JCTOPRIO; /* 65 HASP OUTPUT SELECTION PRIORITY */ - unsigned char JCTROUTE[2];/* 66 INPUT ROUTE CODE */ - unsigned char JCTINDEV[8];/* 68 HASP INPUT DEVICE NAME */ - unsigned char JCTACCTN[4];/* 70 JOB ACCOUNTING NUMBER FROM JOB CARD */ - unsigned char JCTROOMN[4];/* 74 PROGRAMMER'S ROOM NUMBER */ - unsigned int JCTETIME; /* 78 ESTIMATED EXECUTION TIME */ - unsigned int JCTESTLN; /* 7C ESTIMATED OUTPUT LINES */ - unsigned int JCTESTPU; /* 80 ESTIMATED PUNCHED OUTPUT */ - unsigned char JCTFORMS[4];/* 84 JOB OUTPUT FORMS */ - unsigned char __2; /* 88 RESERVED */ - unsigned char JCTCPYCT; /* 89 JOB PRINT COPY COUNT */ - unsigned char __3; /* 8A RESERVED */ - unsigned char JCTLINCT; /* 8B LINES PER PAGE */ - unsigned char JCTPROUT[2];/* 8C JOB PRINT ROUTE CODE */ - unsigned char JCTPUOUT[2];/* 8E JOB PUNCH ROUTE CODE */ - unsigned char JCTPROCN[8];/* 90 PROCEDURE DDNAME */ - unsigned char JCTPASS[8]; /* 98 CURRENT PASSWORD */ - unsigned char JCTNUPAS[8];/* A0 NEW PASSWORD */ - /* KEEP NEXT 48 BYTES INTACT FOR SMF - JCTCNVON THROUGH JCTODTOF */ - unsigned int JCTCNVON; /* A8 TIME ON JCL CONVERSION PROCESSOR */ - unsigned int JCTCDTON; /* AC DATE ON JCL CONVERSION PROCESSOR */ - unsigned int JCTCNVOF; /* B0 TIME OFF JCL CONVERSION PROCESSOR */ - unsigned int JCTCDTOF; /* B4 DATE OFF JCL CONVERSION PROCESSOR */ - unsigned int JCTXEQON; /* B8 TIME ON EXECUTION PROCESSOR */ - unsigned int JCTXDTON; /* BC DATE ON EXECUTION PROCESSOR */ - unsigned int JCTXEQOF; /* C0 TIME OFF EXECUTION PROCESSOR */ - unsigned int JCTXDTOF; /* C4 DATE OFF EXECUTION PROCESSOR */ - unsigned int JCTOUTON; /* C8 TIME ON OUTPUT PROCESSOR */ - unsigned int JCTODTON; /* CC DATE ON OUTPUT PROCESSOR */ - unsigned int JCTOUTOF; /* D0 TIME OFF OUTPUT PROCESSOR */ - unsigned int JCTODTOF; /* D4 DATE OFF OUTPUT PROCESSOR */ - /* KEEP NEXT 28 BYTES INTACT FOR SMF - JCTCARDS THROUGH JCTOTSID */ - unsigned int JCTCARDS; /* D8 TOTAL NUMBER OF INPUT CARDS */ - unsigned int JCTLINES; /* DC GENERATED OUTPUT LINES */ - unsigned int JCTPUNCH; /* E0 GENERATED PUNCHED OUTPUT */ - unsigned char JCTRDSID[4];/* E4 INPUT PROCESSOR SYSTEM ID */ - unsigned char JCTCVSID[4];/* E8 CONVERSION PROCESSOR SYSTEM ID */ - unsigned char JCTEXSID[4];/* EC EXECUTION PROCESSOR SYSTEM ID */ - unsigned char JCTOTSID[4];/* F0 OUTPUT PROCESSOR SYSTEM ID */ - unsigned int JCTESOUT; /* F4 ESTIMATED OUTPUT (LINES+CARDS) */ - unsigned int JCTXOUT; /* F8 GENERATED OUTPUT RECORDS */ - unsigned char JCTTSUID[7];/* FC TIME SHARING USERID FOR NOTIFY */ - unsigned char JCTTSUAF; /* 103 INPUT QUESYSAF FOR NOTIFY */ - unsigned char JCTPSN1[8]; /* 104 STEP NAME FROM EXEC STEP */ - unsigned char JCTPSN2[8]; /* 10C STEP NAME OF CALLING STEP */ - unsigned char JCTWORK[144];/* 114 144-BYTE WORK AREA */ - unsigned char JCTJMRST[0];/* 1A4 START OF JMR AREA */ - /* KEEP THE FIELDS JCTJMRJN, JCTRDRON, AND JCTRDTON TOGETHER FOR SMF */ - unsigned char JCTJMRJN[8];/* 1A4 JMR JOB NAME */ - unsigned int JCTRDRON; /* 1AC TIME ON INPUT PROCESSOR */ - unsigned int JCTRDTON; /* 1B0 DATE ON INPUT PROCESSOR */ - unsigned char JCTCPUID[4];/* 1B4 JMR CPU IDENTIFICATION */ - unsigned char JCTUSEID[8];/* 1B8 JMR USER IDENTIFICATION */ - unsigned char JCTSTEP; /* 1C0 CURRENT STEP NUMBER */ - unsigned char JCTINDC; /* 1C1 JMR SMF OPTIONS */ - unsigned char JCTJTCC; /* 1C2 CONDITION CODE */ - unsigned char JCTCLASS; /* 1C3 JOB CLASS */ - unsigned int JCTUCOM; /* 1C4 JMR USER COMMUNICATION AREA */ - unsigned int JCTUJVP; /* 1C8 JMR ADDRESS OF USER EXIT ROUTINE */ - /* KEEP THE FIELDS JCTRDROF AND JCTRDTOF TOGETHER FOR SMF */ - unsigned int JCTRDROF; /* 1CC TIME OFF INPUT PROCESSOR */ - unsigned int JCTRDTOF; /* 1D0 DATE OFF INPUT PROCESSOR */ - unsigned int JCTJOBIN; /* 1D4 JMR JOB SYSIN COUNT */ - unsigned char JCTRDR[2]; /* 1D8 READER DEVICE TYPE AND CLASS */ - unsigned char JCTJMOPT; /* 1DA JMR SMF OPTIONS */ -#define JCTJMRUX 0x20 /* ... IF ON, TAKE USER EXITS FOR SMF */ - - unsigned char __4; /* 1DB RESERVED */ - unsigned char JCTJMRND[0];/* 1DC END OF JMR */ -/* JCTJMR EQU JCTJMRST,*-JCTJMRST REFERENCE FOR ENTIRE JMR AREA */ - unsigned char JCTEND[0]; /* 1DC END OF JOB CONTROL TABLE */ -}; - -#endif diff --git a/src/crent370/include/haspjoe.h b/src/crent370/include/haspjoe.h deleted file mode 100644 index ec3e1ed..0000000 --- a/src/crent370/include/haspjoe.h +++ /dev/null @@ -1,90 +0,0 @@ -#ifndef HASPJOE_H -#define HASPJOE_H - -typedef struct __joe __JOE; /* work joe */ -typedef struct __charjoe __CHARJOE; /* characteristics joe */ -typedef struct __ckptjoe __CKPTJOE; /* checkpoint joe */ - -/* JES Job Output Element */ -struct __joe { - unsigned short JOENEXT; /* 00 OFFSET/4 OF NEXT WORK-JOE */ - unsigned char JOETYPE; /* 02 JOE TYPE */ -#define _JOEWORK 0x80 /* ... THIS IS A WORK JOE */ -#define _JOECHAR 0x40 /* ... THIS IS A CHAR JOE */ -#define _JOECKPT 0x20 /* ... THIS IS A CKPT JOE */ -#define _JOEFREE 0xE0 /* ... THIS IS A FREE JOE */ - - unsigned char __1; /* 03 RESERVED FOR FUTURE USE */ - unsigned char JOEFLAG; /* 04 PRIMARY JOE */ -#define _JOECKV 0x80 /* ... CHECKPOINT ELEMENT VALID FLAG */ -#define _JOESPIN 0x40 /* ... SPIN JOE FLAG */ -#define _JOEPRT 0x20 /* ... JOE ON-PRINTER FLAG */ -#define _JOEPUN 0x10 /* ... JOE ON-PUNCH FLAG */ -#define _JOEHOLD 0x08 /* ... HOLD JOE FLAG */ -#define _JOEBUSY 0x07 /* ... JOE BUSY/SYSTEM ID FLAGS */ - - unsigned char JOEFLAG2; /* 05 STATUS FLAGS */ -#define _JOETCEL 0x80 /* ... TRACK-CELL JOE FLAG */ -#define _JOEDMND 0x40 /* ... DEMAND-SETUP JOE FLAG */ - - unsigned short JOECKPT; /* 06 OFFSET/4 OF CKPT-JOE */ - unsigned short JOECHAR; /* 08 OFFSET/4 OF CHAR-JOE */ - unsigned char JOESEC; /* 0A SECURITY LEVEL OF DATA */ - unsigned char JOECPU; /* 0B CPU ID OF DATA */ - unsigned short JOEROUT; /* 0C REMOTE ID OF DATA */ - unsigned short JOEDEST; /* 0E DESTINATION CODE FROM PDDB */ - unsigned short JOEJQE; /* 10 OFFSET/4 OF HASP JOB QUE ELEMENT */ - unsigned char JOECURCL; /* 12 CURRENT SYSOUT CLASS */ - unsigned char JOEPDBCL; /* 13 PDDB'S SYSOUT CLASS */ - unsigned int JOERECCT; /* 14 TOTAL RECORD COUNT */ - unsigned int JOEIOTTR; /* 18 SPIN JOE IOT TRACK ADDRESS */ - unsigned short __2; /* 1C RESERVED */ - unsigned char JOEPRIO; /* 1E JOE PRIORITY (X'00' TO X'0F') */ - unsigned char __3; /* 1F RESERVED */ - unsigned short JOEDEVID; /* 20 USER DEVICE IDENTIFICATION */ - unsigned short JOEJOE; /* 22 OFFSET/4 OF NEXT JOB WK JOE */ -/* JOE1END DS 0F 24 END OF WORK-JOE */ -}; -#define JOESIZE sizeof(__JOE) /* LENGTH OF MAX JOE */ - -/* JES Job Output Element Characteristics */ -struct __charjoe { - unsigned short JOENEXT; /* 00 OFFSET/4 OF NEXT WORK-JOE */ - unsigned char JOETYPE; /* 02 JOE TYPE */ - unsigned char __1; /* 03 RESERVED FOR FUTURE USE */ - unsigned int JOEFORM; /* 04 FORMS NUMBER */ - unsigned int JOEFCB; /* 08 FCB NUMBER */ - unsigned int JOEUCS; /* 0C UCS NUMBER */ - unsigned char JOEWTRID[8];/* 10 DATA SET EXTERNAL WRITER NAME */ - unsigned char JOEFLASH[4];/* 18 OVERLAY-FRAME */ - unsigned char JOECFLAG; /* 1C CHARACTERISTICS FLAGS */ -#define _JOEBRST 0x80 /* ... BURST=YES FLAG */ -/* JOESETUP EQU JOEFORM,*-JOEFORM DEVICE SETUP CHARACTERISTICS */ - unsigned char __2; /* 1D RESERVED */ - unsigned char JOEACTPR; /* 1E # OF ACTIVE PRINTERS */ - unsigned char JOEACTPU; /* 1F # OF ACTIVE PUNCHES */ - unsigned short JOEUSE; /* 20 # OF JOES USING THIS ELEMENT */ - unsigned short __3; /* 22 RESERVED FOR FUTURE USE */ -/* JOE2END DS 0F 24 END OF CHAR-JOE */ -}; - -/* JES Job Output Element Checkpoint */ -struct __ckptjoe { - unsigned short JOEWORK; /* 00 OFFSET/4 OF WORK-JOE */ - unsigned char JOETYPE; /* 02 JOE TYPE */ - unsigned char __1; /* 03 RESERVED FOR FUTURE USE */ - unsigned short JOEJRCB; /* 04 DISPL INTO EJECT BUFFER */ - unsigned short JOEPDDB; /* 06 CURRENT PDDB OFFSET INTO THE IOT */ - unsigned int JOEPPCT; /* 08 PDDB PAGE COUNT */ - unsigned int JOETLNC; /* 0C TOTAL JOE LINE COUNT */ - unsigned int JOETPCT; /* 10 TOTAL JOE PAGE COUNT */ - unsigned int JOEMTTR; /* 14 LAST EJECT BUFFER TRACK ADDRESS */ - unsigned char __2[4]; /* 18 CURRENT IOT TRACK ADDR (JOEIOTTR) */ - unsigned char JOECOPY; /* 1C COPY NUMBER IN PROGRESS */ - unsigned char JOEBOFF; /* 1D BUFFER OFFSET INTO TRAKCELL */ - unsigned char JOECPYG; /* 1E CURRENT OFFSET INTO COPY GROUPS */ - unsigned char JOETNDS; /* 1F TOTAL JOE DATA SET COUNT */ - unsigned int JOECRECN; /* 20 NO. OF RECORDS PRINTED SO FAR */ -}; - -#endif diff --git a/src/crent370/include/haspjot.h b/src/crent370/include/haspjot.h deleted file mode 100644 index 3687b71..0000000 --- a/src/crent370/include/haspjot.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef HASPJOT_H -#define HASPJOT_H - -#include "haspjoe.h" - -typedef struct __jot __JOT; /* JES Job Output Table */ - -struct __jot { - unsigned short JOTFREC; /* 00 COUNT OF FREE JOES */ - unsigned short JOTFREQ; /* 02 OFFSET/4 QUEUE OF FREE-JOES */ - unsigned short JOTCHRQ; /* 04 OFFSET/4 QUEUE OF CHAR-JOES */ - /* JOTRDYWQ DS 0XL74 READY WORK JOE QUEUES */ - unsigned short JOTNTWKQ; /* 06 RESERVED WORK QUEUE */ - unsigned short JOTCLSQ[36];/* 08 OFFSET/4 QUEUE OF CLASS WORK-JOES */ - unsigned char _1[28]; /* 50 */ - __JOE JOTJOES[0]; /* 6C START OF JOB OUTPUT ELEMENTS */ -}; - -#endif // HASPJOT_H diff --git a/src/crent370/include/haspjqe.h b/src/crent370/include/haspjqe.h deleted file mode 100644 index db6c333..0000000 --- a/src/crent370/include/haspjqe.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef HASPJQE_H -#define HASPJQE_H - -typedef struct __jqe __JQE; - -/* JES Job Queue Element */ -struct __jqe { - unsigned char JQEPRIO; /* 00 JOB PRIORITY */ - unsigned char JQETYPE; /* 01 LOGICAL QUEUE TYPE */ -#define QUECLASS 0x7F /* ... CLASS OF JOB QUEUED FOR EXECUTION */ -#define _DUMMY 0x80 /* ... RESERVED QUEUE */ -#define _XEQ 0x40 /* ... OS EXECUTION QUEUE */ -#define _INPUT 0x20 /* ... INPUT QUEUE */ -#define _XMIT 0x10 /* ... TRANSMISSION QUEUE */ -#define _SETUP 0x08 /* ... SETUP QUEUE */ -#define _RECEIVE 0x04 /* ... SYSOUT RECEIVER QUEUE */ -#define _OUTPUT 0x02 /* ... OUTPUT QUEUE */ -#define _HARDCPY 0x01 /* ... OUTPUT IN-PROGRESS QUEUE */ -#define _PURGE 0x00 /* ... PURGE QUEUE */ -#define _FREE 0xFF /* ... FREE QUEUE */ - - unsigned short JQEJOBNO; /* 02 HASP JOB NUMBER */ - unsigned char JQEFLAGS; /* 04 JOB QUEUE FLAGS */ -#define QUEHOLDA 0x80 /* ... HOLD ALL JOBS */ -#define QUEHOLD1 0x40 /* ... HOLD SINGLE JOB */ -#define QUEHOLD2 0x20 /* ... HOLD FOR DUPLICATE JOB NAME */ -#define QUEPURGE 0x10 /* ... JOB IS TO BE PURGED */ -#define QUEOPCAN 0x08 /* ... OPERATOR ISSUED $C OR $P JOB */ -#define QUEBUSY 0x07 /* ... JQE BUSY SYSTEM ID */ - - unsigned char JQEFLAG2; /* 05 MORE JOB QUEUE FLAGS */ -#define QUEINIT 0x80 /* ... JOB IS INITIATOR OR SYSTEM LOG */ -#define QUEINDAF 0x80 /* ... JOB HAS INDEPENDENT MODE AFFINITY */ -#define QUESYSAF 0x7F /* ... SYSTEM AFFINITY OF JOB */ - - unsigned short JQECHAIN; /* 06 OFFSET/4 OF NEXT JOB QUE ELEMENT */ - unsigned int JQETRAK; /* 08 TRACK ADDRESS OF JOB CONTROL TABLE */ - unsigned short JQEDEVID; /* 0C DEVICE IDENTITY (SEE DCTDEVID) */ -#define JQEPRTRT JQEDEVID /* 0C PRINT ROUTE */ - unsigned short JQEPUNRT; /* 0E PUNCH ROUTE */ - unsigned short JQEJOE; /* 10 OFFSET/4 OF 1ST WORK-JOE */ - unsigned short JQEHLDCT; /* 12 HELD DATA SET COUNT (BITS 0-11) - HOLD QUEUE LOCK (BITS 12-15) */ - unsigned char JQEJNAME[8];/* 14 JOB NAME FROM JOB CARD */ -}; -#define JQELNGTH sizeof(__JQE) /* 1C LENGTH OF JOB QUEUE ENTRY */ - -#endif diff --git a/src/crent370/include/hasppddb.h b/src/crent370/include/hasppddb.h deleted file mode 100644 index cfb45d7..0000000 --- a/src/crent370/include/hasppddb.h +++ /dev/null @@ -1,82 +0,0 @@ -#ifndef HASPPDDB_H -#define HASPPDDB_H - -typedef struct __pddb __PDDB; /* JES Peripheral Data Definition Block */ - -/* JES Peripheral Data Definition Block */ -struct __pddb { - unsigned char PDBFLAG1; /* 00 FLAG BYTE */ -#define PDB1DSID 0x80 /* ... DSID IN PDBDSID/PDBWTRID FIELD */ -#define PDB1NULL 0x40 /* ... THIS IS A NULL PDDB */ -#define PDB1LOG 0x20 /* ... THIS PDDB IS FOR THE HASP JOB LOG */ -#define PDB1MDES 0x10 /* ... THIS PDDB IS FOLLOWED BY OTHERS */ -/* INDICATING MULTIPLE DESTINATIONS */ -#define PDB1NSOT 0x08 /* ... DATA SET IS NOT FOR SYSOUT */ -#define PDB1SPIN 0x04 /* ... THIS PDDB IS FOR A SPIN DATA SET */ -#define PDB1HOLD 0x02 /* ... THIS PDDB IS FOR A HELD DATA SET */ -#define PDB1PSO 0x01 /* ... DATA SET MAY BE ACCESSED BY PSO */ - - unsigned char PDBRECFM; /* 01 DATA SET RECORD FORMAT */ - unsigned short PDBLRECL; /* 02 MAXIMUM DATA SET LOGICAL RECORD LEN */ - unsigned int PDBMTTR; /* 04 STARTING TRACK ADDR OF DATA SET */ - unsigned short PDBDSKEY; /* 08 DATA SET NUMBER OF DATA SET */ - /* ... DATA SET KEYS FOR SPECIAL DATA SETS */ -#define PDBINJCL 1 /* ... INPUT JCL STATEMENTS */ -#define PDBOUHJL 2 /* ... HASP JOB LOG */ -#define PDBOUJCI 3 /* ... JCL IMAGES */ -#define PDBOUMSG 4 /* ... SYSTEM MESSAGES */ -#define PDBINTXT 5 /* ... INTERNAL TEXT */ -#define PDBINJNL 6 /* ... JOB JOURNAL */ - - unsigned char PDBCLASS; /* 0A OUTPUT CLASS OF DATA SET */ - unsigned char PDBCOPYS; /* 0B COPIES OF THIS DATA SET */ - unsigned short PDBDEST; /* 0C DATA SET OUTPUT DESTINATION */ - unsigned char PDBCPU; /* 0E CPU ID */ - unsigned char PDBSEC; /* 0F DATA SET SECURITY ID */ - unsigned char PDBINDEX; /* 10 3211 FCB INDEX VALUE */ - unsigned char PDBFUNC; /* 11 3525 FUCTION BYTE */ - unsigned char PDBFLAG2; /* 12 SECOND FLAG BYTE */ -#define PDB2TCEL 0x80 /* ... DATA SET IS TRAKCELL'ED */ -#define PDB2OPTJ 0x40 /* ... OPTCD=J SPECIFIED */ -#define PDB2BRST 0x20 /* ... BURST=YES SPECIFIED */ -#define PDB2HDST 0x10 /* ... HOLD DATA SET AT DESTINATION */ -#define PDB2JFMS 0x08 /* ... PDBFORMS SET FROM JCTFORMS */ -#define PDB2HLDS 0x04 /* ... DATA SET SPECIFICALLY HELD */ -#define PDB2NEWS 0x01 /* ... JESNEWS DATA SET */ - - unsigned char PDBCPTN; /* 13 COMPACTION TABLE NUMBER */ - unsigned int PDBRECCT; /* 14 DATA SET RECORD COUNT */ - unsigned char PDBFORMS[4]; /* 18 FOUR-BYTE FORMS NUMBER */ - unsigned char PDBFCB[4]; /* 1C FOUR-BYTE 3211 FCB ID */ - unsigned char PDBUCS[4]; /* 20 FOUR-BYTE 1403 OR 3211 UCS ID */ - unsigned char PDBWTRID[8]; /* 24 EIGHT-BYTE OUTPUT WRITER ID */ -#define PDBDSID PDBWTRID /* 24 DATASET IDENTIFICATION */ - unsigned char PDBRBA[8]; /* 2C EIGHT-BYTE CHECKPOINT RECORD */ - unsigned char PDBCHAR1[4]; /* 34 N/I PRINTER XLATE TAB 1 */ - unsigned char PDBCHAR2[4]; /* 38 N/I PRINTER XLATE TAB 2 */ - unsigned char PDBCHAR3[4]; /* 3C N/I PRINTER XLATE TAB 3 */ - unsigned char PDBCHAR4[4]; /* 40 N/I PRINTER XLATE TAB 4 */ - unsigned char PDBFLASH[4]; /* 44 N/I PRINTER FLASH CART ID */ - unsigned char PDBMODF[4]; /* 48 N/I PRINTER COPY MOD IMAGE */ - unsigned char PDBFLSHC; /* 4C N/I PRINTER # FLASH COPIES */ - unsigned char PDBMODFT; /* 4D N/I PRINTER TBL REF CHAR */ - unsigned char PDBCOPYG[8]; /* 4E N/I PRINTER COPY GROUPS */ - unsigned short PDBCKPTP; /* 56 NO. OF LOGICAL PAGES/CKPT */ - unsigned short PDBCKPTL; /* 58 NO. OF LINES/LOGICAL PAGE */ - unsigned char PDBFLAG3; /* 5A THIRD FLAG BYTE */ -#define PDBF3RV1 0x80 /* ... RESERVED */ -#define PDBF3RV2 0x40 /* ... RESERVED */ -#define PDBF3RV3 0x20 /* ... RESERVED */ -#define PDBF3RV4 0x10 /* ... RESERVED */ -#define PDB3BRST 0x08 /* ... BURST (Y OR N) IN DD CARD */ -#define PDBF3RV6 0x04 /* ... RESERVED */ -#define PDBF3RV7 0x02 /* ... RESERVED */ -#define PDBF3RV8 0x01 /* ... RESERVED */ - - unsigned char __1; /* 5B RESERVED (FULLWORD ALIGN) */ - unsigned char PDBSSOFM[4]; /* 5C */ - unsigned char __2[8]; /* 60 RESERVED */ -}; /* 68 */ -#define PDBLENG sizeof(__PDDB) /* 68 PDDB LENGTH */ - -#endif diff --git a/src/crent370/include/hasppso.h b/src/crent370/include/hasppso.h deleted file mode 100644 index fb99d00..0000000 --- a/src/crent370/include/hasppso.h +++ /dev/null @@ -1,116 +0,0 @@ -#ifndef HASPPSO_H -#define HASPPSO_H -#include "hasppddb.h" -#include "iefssso.h" -/********************************************************************** -* * -* THE PROCESS SYSOUT WORK AREA (PSO) DSECT DESCRIBES A CONTROL * -* BLOCK RESIDING IN THE COMMON STORAGE AREA (CSA) WHICH * -* CONTAINS INFORMATION REQUIRED FOR THE PROCESSING OF THE * -* FIRST AND SUBSEQUENT PROCESS SYSOUT REQUESTS FOR EACH * -* REQUEST SERIES. THE AREA FROM PSOUFLG THROUGH PSOWTRC * -* PROVIDES A ONE-FOR-ONE MAPPING OF THOSE FIELDS IN THE SSOB * -* EXTENSION FOR PROCESS SYSOUT FOLLOWING THE EXTENSION LENGTH * -* FIELD, SSSOLEN. * -* * -* THE PSO IS OBTAINED BY THE ROUTINE IN HASPSSSM, WHICH FIRST * -* HANDLES PROCESS SYSOUT REQUESTS, WHEN IT ENCOUNTERS THE * -* INITIAL REQUEST OF A SERIES. THE PSO IS FREED BY THIS * -* ROUTINE WHENEVER THE JES2 PROCESS SYSOUT PROCESSOR POSTS IT * -* WITH THE PSOFDONE BIT SET IN PSOFLG2. THIS ROUTINE WILL * -* ALSO FREE THE PSO IF THE RETURN CODE STORED BY THE JES2 * -* PROCESS SYSOUT PROCESSOR IN PSORETN IS NON-ZERO, UNLESS THE * -* HIGH-ORDER BIT IS SET IN THE SJB FIELD SJBPSOP. * -* * -**********************************************************************/ - -/* - L R2,PSATOLD-PSA OUR TCB ADDRESS 00281000 - L R2,TCBJSCB-TCB(,R2) JSCB ADDRESS 00282000 - USING IEZJSCB,R2 00283000 - L R2,JSCBACT ACTIVE JSCB ADDRESS 00284000 - L R2,JSCBSSIB SSIB ADDRESS 00285000 - L R2,SSIBSUSE-SSIB(,R2) SJB ADDRESS 00286000 - L R2,SJBPSOP-SJB(,R2) PSO ADDRESS 00287000 -*/ -typedef struct __pso __PSO; - -struct __pso { /* PSO PARAMETER LIST DSECT */ - union { - __PSO *PSONEXT; /* 00 ADDR OF PSO FOR NEXT $O REQUEST */ - void *PSOCCE; /* 00 ADDRESS OF CCE */ - }; - unsigned PSOCRDT; /* 04 ELLIGIBILITY CUT-OFF DATE */ - __PDDB PSOPDDB; /* 08 DATA SET PDDB 0x68 (104 bytes) */ - unsigned char __0[2]; /* 70 align to middle of next word */ - unsigned char PSOUFLG; /* 72 GROUP REQUEST OPTIONS BYTE */ -#define PSOFSETC SSSOSETC /* ... ALTER SYSOUT CLASS TO PSOCLS */ -#define PSOFDELC SSSODELC /* ... DELETE SELECTED DATA SETS */ -#define PSOFROUT SSSOROUT /* ... ROUTE SELECTED DATA SETS TO PSODEST */ -#define PSOFHOLD SSSOHOLD /* ... HOLD SELECTED DATA SETS */ -#define PSOFRLSE SSSORLSE /* ... RELEASE SELECTED DATA SETS */ - - unsigned char __1; /* 73 RESERVED */ - unsigned char PSOFLG1; /* 74 DATA SET SELECTION CONTROL FLAGS */ -#define PSOFHLD SSSOHLD /* ... SELECT HELD SYSOUT DATA SETS */ -#define PSOFCLAS SSSOSCLS /* ... USE CLASS */ -#define PSOFDEST SSSODST /* ... USE REMOTE DESTINATION */ -#define PSOFJOBN SSSOSJBN /* ... USE JOB NAME */ -#define PSOFJOBI SSSOSJBI /* ... USE JOB ID */ -#define PSOFPGM SSSOSPGM /* ... USE USER WRITER PROGRAM NAME */ -#define PSOFFORM SSSOSFRM /* ... USE FORM NUMBER */ - - unsigned char PSOFLG2; /* 75 DATA SET DISPOSITION AND CTL FLAGS */ -#define PSOFDONE SSSOCTRL /* ... PROCESSING COMPLETED */ -#define PSOFCKPT SSSOCHKP /* ... CHECKPOINT USING RBA FIELD */ -#define PSOFPURG 0x02 /* ... PSO PURGED FLAG */ -#define PSOF_O 0x01 /* ... $O INITIATED GROUP REQUEST */ - - unsigned short PSOCOPY; /* 76 NUMBER OF DATA SET COPIES */ - unsigned char PSOJOBN[8]; /* 78 JOB NAME */ - unsigned char PSOJOBI[8]; /* 80 HASP JOB ID (JOBNNNNN) */ - unsigned char PSOCLS; /* 88 NEW SYSOUT CLASS (GROUP REQ ONLY) */ - unsigned char __2[3]; /* 89 RESERVED */ - unsigned char PSODEST[8]; /* 8C REMOTE USER ID FOR SELECTION */ - unsigned char PSOPGMN[8]; /* 94 USER WRITER NAME */ - unsigned char PSORBA[8]; /* 9C RBA OF SYSOUT DATA SET */ - unsigned char PSODSN[44]; /* A4 SYSOUT DATA SET NAME */ - unsigned char PSOFORM[4]; /* D0 DATA SET FORM NUMBER */ - unsigned char PSOCLAS[8]; /* D4 CLASS(ES) TO BE PROCESSED */ - void *PSOWTRC; /* DC A(PSOECB) ADDR OF EXTERNAL WTR PARAMETER AREA */ - unsigned char PSODSID[8]; /* E0 DATA SET IDENT CHAR STRING */ -#define PSOPARML 0x76 /* *-PSOUFLG LENGTH OF SSOB PARAMETER AREA */ - void *PSOTCB; /* E8 TCB ADDRESS OF LAST PSO USER */ - int PSORETN; /* EC SUB-SYSTEM RETURN CODE */ -#define PSOFRTOK SSSORTOK /* ... EVERYTHING IS OK */ -#define PSOFEODS SSSOEODS /* ... NO MORE DATASETS TO SELECT */ -#define PSOFNJOB SSSONJOB /* ... JOB NOT FOUND */ -#define PSOFINVA SSSOINVA /* ... INVALID SEARCH ARGUMENTS */ -#define PSOFUNAV SSSOUNAV /* ... UNABLE TO PROCESS NOW */ -#define PSOFDUPJ SSSODUPJ /* ... DUPLICATE JOBNAMES */ -#define PSOFINVJ SSSOINVJ /* ... INVALID JOBNAME/JOBID COMBINATION */ - - unsigned PSOHQT; /* F0 TRACK (OR STORAGE) ADDRESS OF HQT */ - void *PSOSJB; /* F4 ADDRESS OF SJB */ - /* START OF EXTERNAL WRITER PARAMETER AREA */ - unsigned PSOECB; /* F8 ECB FOR EXTERNAL WRITER WAIT ON JOT */ - /* PSOECBP DC 0A(PSOECB) START OF XMPOST PARAMETER LIST */ - unsigned PSORDRON; /* FC TIME ON INPUT PROCESSOR */ - unsigned PSORDTON; /* 100 DATE ON INPUT PROCESSOR */ - unsigned char PSOUSEID[8]; /* 104 USER ID */ - /* END OF EXTERNAL WRITER PARAMETER AREA */ - unsigned PSOWKOFF; /* 10C OFFSET OF WORK JOE */ - unsigned PSOCHOFF; /* 110 OFFSET OF CHAR JOE */ - /* PSOLINK DS 0A SAVE AREA FOR LINK REGISTER */ - unsigned PSOCKOFF; /* 114 OFFSET OF CKPT JOE */ - unsigned PSOJBKEY; /* 118 JOB IDENTIFIER KEY */ - unsigned PSOJQEP; /* 11C HASP JQE OFFSET */ - unsigned short PSOJOBNO; /* 120 HASP JOB NUMBER (BINARY) */ - unsigned short PSOROUTE; /* 122 SELECTION ROUTE CODE (BINARY) */ - unsigned PSOIOTTR; /* 124 IOT TTR OF SELECTED HQR */ -}; -#define PSOLNGTH sizeof(__PSO) /* 128 *-PSODSECT LENGTH OF PSO DSECT */ - -extern __PSO *__getpso(void); - -#endif diff --git a/src/crent370/include/haspsjb.h b/src/crent370/include/haspsjb.h deleted file mode 100644 index d75eeca..0000000 --- a/src/crent370/include/haspsjb.h +++ /dev/null @@ -1,221 +0,0 @@ -#ifndef HASPSJB_H -#define HASPSJB_H - -/* HASP SUBSYSTEM JOB BLOCK (SJB) DSECT */ - -typedef struct __sjb __SJB; - -/* - L R2,PSATOLD-PSA OUR TCB ADDRESS 00281000 - L R2,TCBJSCB-TCB(,R2) JSCB ADDRESS 00282000 - USING IEZJSCB,R2 00283000 - L R2,JSCBACT ACTIVE JSCB ADDRESS 00284000 - L R2,JSCBSSIB SSIB ADDRESS 00285000 - L R2,SSIBSUSE-SSIB(,R2) SJB ADDRESS 00286000 -*/ - -struct __sjb { - unsigned SJBSAVE[2]; /* 00 18F (reduced to 2 words to fudge alignment) */ -/* -* TSO CANCEL/STATUS SERVICE FIELDS -*/ -/* ORG SJBSAVE+8 */ -/* SJBTCMND DS 0D FIRST OF CANCEL COMMAND */ - unsigned SJBTAREA; /* 08 WORK AREA GOTTEN */ - unsigned SJBTCCE; /* 0C ADDRESS OF CCE */ - unsigned char SJBTJOBN[8]; /* 10 JOB NAME */ - unsigned SJBTJOBI; /* 18 JOB ID OR ZERO ( BINARY FORM ) */ - unsigned short SJBTDIMP; /* 1C SIZE OF EXTENTION */ - unsigned short SJBTDIMR; /* 1E SIZE USED OR REQUIRED */ - unsigned short SJBTFUNC; /* 20 REQUESTED FUNCTION */ - unsigned short SJBTRETB; /* 22 SSOBRETN CODE */ - unsigned short SJBTRETR; /* 24 R15 RETURN CODE */ - unsigned char SJBTF; /* 26 FLAGS */ -#define SJBTFCAN 0x80 /* ... SVC 34 REQUIRED TO CANCEL */ - - unsigned char SJBTFLGS; /* 27 FLAGS FROM SSOB */ - unsigned char SJBTULEN; /* 28 USER ID LENGTH */ -/* ORG */ - unsigned char __1[31]; /* 29 alignment */ - unsigned char SJBID[4]; /* 48 CL4'SJB' SJB IDENTIFIER */ - unsigned short SJBLENG; /* 4C CONTROL BLOCK LENGTH */ - unsigned char SJBFLG1; /* 4E FIRST FLAG BYTE --- */ -#define SJB1XBMC 0x80 /* ... XBM CONTINUATION */ -#define SJB1SJID 0x40 /* ... SELECT JOB BY ID - SJBJOBID */ -#define SJB1NORE 0x20 /* ... DISALLOW JOB RE-ENQUEUE */ -#define SJB1XBM 0x10 /* ... XEQ BATCH MONITOR OPERATING */ -#define SJB1XBWT 0x08 /* ... BATCH MONITOR AWAITS JOB */ -#define SJB1EJOB 0x04 /* ... HASP-RESTART JOB ($E JOB) */ -#define SJB1XBMR 0x02 /* ... XBM TERMINATING */ -#define SJB1XBMJ 0x01 /* ... NORMAL JOB CAUSED XBM TERMINATION */ - - unsigned char SJBFLG2; /* 4F SECOND FLAG BYTE --- */ -#define SJB2PNIT 0x80 /* ... STOP THE INITIATOR */ -#define SJB2JNFD 0x40 /* ... JOB-BY NUMBER NOT FOUND */ -#define SJB2EOM 0x20 /* ... END-OF-MEMORY DETECTED */ -#define SJB2CNCL 0x10 /* ... CANCEL AFTER SWA CREATE */ -#define SJB2CONV 0x08 /* ... SJB CREATED FOR CONVERTER */ -#define SJB2HOLD 0x04 /* ... HOLD JOB AFTER RE-QUEUE */ -#define SJB2JNL 0x02 /* ... JOB IS JOURNALLED */ -#define SJB2INIT 0x01 /* ... INITIATOR FLAG */ - - void *SJBSSIB; /* 50 POINTER TO SSIB */ - void *SJBSJB; /* 54 SJB CHAIN FROM $SVHAVT */ - void *SJBSDB; /* 58 POINTER TO CHAIN OF SDBS */ - unsigned SJBJKEY; /* 5C HDBDSKEY FOR THIS JOB */ - void *SJBJCT; /* 60 ADDRESS OF JCT FOR JOB */ - unsigned SJBJCTRK; /* 64 JCT TRACK ADDRESS */ - void *SJBTCBP; /* 68 ADDRESS OF INIT OR STC TCB */ - unsigned SJBJQOFF; /* 6C OFFSET OF JQE WITHIN JOB QUEUE */ - unsigned char SJBSSNM[4]; /* 70 SUBSYSTEM ID OF OWNER */ - void *SJBIOT; /* 74 ADR OF FIRST REGULAR IOT */ - void *SJBSPIOT; /* 78 ADR OF FIRST SPIN IOT */ - void *SJBOCT; /* 7C ADR OF OUTPUT CONTROL TABLE */ - /* SJBSECB DS 0A STOP-ECB ADR FOR CREATED-ID JOB */ - void *SJBPIT; /* 80 ADDRESS OF PIT IN HASP */ - unsigned SJBSTQE[3]; /* 84 EXECUTION TIMER QUEUE ELEMENT */ - unsigned SJBXSTIM; /* 90 TIME ESTIMATE EXCESSION AMOUNT */ - unsigned SJBESTLN; /* 94 PRINT EXCESSION LIMIT */ - unsigned SJBESTPU; /* 98 PUNCH EXCESSION LIMIT */ - void *SJBXBSDB; /* 9C ADDRESS OF XBM INPUT SDB */ - unsigned char SJBXBJNM[8]; /* A0 NAME OF BATCH DRIVER JOB */ - void SJBCSCB; /* A8 ADDRESS OF CSCB */ - unsigned SJBECB; /* AC ECB FOR SJBIOB & JOB SELECT */ - void *SJBECBP; /* B0 POINTER TO SJB'S ECB */ - void *SJBASCBP; /* B4 POINTER TO RELATED ASCB */ - void *SJBERRET; /* B8 POINTER TO ERROR RETURN */ - unsigned short SJBPATID; /* BC EBCDIC PIT ID */ - unsigned char SJBPRIO; /* BE HASP EXECUTION SELECTION PRTY */ - unsigned char __2; /* BF RESERVED FOR FUTURE USE */ - unsigned short SJBXQFN1; /* C0 HASPXEQ FUNCTION INDICATOR */ - unsigned char SJBFLG3; /* C2 TERMINATION FLAG ONE --- */ -#define SJB3CLS 0x80 /* ... CLOSE ALL SUBSYSTEM DATA SETS */ -#define SJB3FSDB 0x40 /* ... FREE ALL SDBS */ -#define SJB3TERM 0x20 /* ... TERMINATE THE JOB */ -#define SJB3PPOU 0x10 /* ... PURGE PARTIAL OUTPUT */ -#define SJB3RSV4 0x08 /* ... RESERVED */ -#define SJB3CKPT 0x04 /* ... WRITE IOTS, JCT */ -#define SJB3FIOT 0x02 /* ... FREE ALL IOTS */ -#define SJB3FJCT 0x01 /* ... FREE JCT */ - - unsigned char SJBFLG4; /* C3 TERMINATION FLAG TWO --- */ -#define SJB4MEND 0x80 /* ... MSG 'ENDED' */ -#define SJB4MTRM 0x40 /* ... MSG 'TERMINATED' */ -#define SJB4MREQ 0x20 /* ... MSG 'RE-ENQUEUED' */ -#define SJB4MREX 0x10 /* ... MSG 'QUEUED FOR RE-EXECUTION' */ -#define SJB4FSJB 0x08 /* ... FREE THE SJB */ -#define SJB4MRQH 0x04 /* ... MSG 'RE-ENQUEUED AND HELD' */ -#define SJB4RSV6 0x02 /* ... RESERVED */ -#define SJB4TERM 0x01 /* ... BATCH JOB HAS TERMINATED */ - - void *SJBQUEUE; /* C4 ADDRESS OF $SVJ QUEUE HEADER */ - unsigned SJBXQCHN; /* C8 HASPXEQ CHAINING WORD */ - unsigned __3; /* CC RESERVED */ - /* SJBLOCKH DS 0D SJB LOCKING DOUBLEWORD */ - void *SJBTCB; /* D0 LOCK-HOLDING TCB ADDRESS */ - int SJBNEXTL; /* D4 0 - SJB IS UNLOCKED - - - SJB LOCKED, NO WAIT CHAIN - + - SJB LOCKED, ADR OF WAITER */ - void *SJBLOGQ; /* D8 HASP JOB LOG MESSAGE QUEUE */ - void *SJBPSOP; /* DC PROCESS SYSOUT CONTROL BLOCK */ - unsigned char SJBJCLAS; /* E0 HASP JOB CLASS */ - unsigned char SJBLKFG; /* E1 SERIALIZATION FLAG */ -#define SJBFIRST 0x80 /* ... FIRST $SVJPCLS REQUEST */ -#define SJBDRAIN 0x40 /* ... PIT HAS BEEN DRAINED */ -#define SJBPRIM 0x20 /* ... PRIMARY INITIATOR SJB */ - - unsigned short SJBASID; /* E2 USERS ASID */ - unsigned char SJBJOBID[8]; /* E4 JOB IDENTIFIER - EBCDIC, NUMERIC */ - unsigned char SJBJOBNM[8]; /* EC JOBNAME FROM JOB CARD */ - /* SJBFLOW DS 0F FLOW BYTES FOR ABNORMAL PROCESSING */ - unsigned char SJBTFLOW; /* F4 SJB HAS BEEN ON QUEUE INDICATOR */ - unsigned char SJBTFFG; /* F5 TSO PROCESSING FLOW */ -#define SJBTFFGM 0x80 /* ... ECB STATUS MEANINGFULL */ -#define SJBTFFGG 0x40 /* ... PSO GOTTEN THIS ENTRY TO PSO */ -#define SJBTFFGP 0x20 /* ... PSO PURGE REQUESTED */ -#define SJBTFFGC 0x10 /* ... CANCEL/STATUS EOT FUNCTION GOING */ - unsigned char __4; /* F6 RESERVED */ - unsigned char __5; /* F7 RESERVED */ - void *SJBTCHN; /* F8 TSU CHAIN FIELD */ - unsigned SJBFWORD; /* FC WORK AREA FOR HCBIO RTNS */ - /* SJBFWORD MUST NEVER BE SEPARATED FROM SJBDBLWK */ - unsigned SJBDBLWK[2]; /* 100 DOUBLEWORD WORKAREA */ -/* -* INPUT/OUTPUT BLOCK IN SJB -*/ - /* DS 0D DOUBLE WORD ALIGNMENT */ - /* SJBIOB DS 0XL(40+4*8) IOB FOR JOB CONTROL BLOCKS */ - unsigned char SJBIFLG1; /* 108 IOB - FLAG BYTE */ - unsigned char __6; /* 109 */ - unsigned char SJBISNS0; /* 10A IOB - FIRST SENSE BYTE */ - unsigned char SJBISNS1; /* 10B IOB - SECOND SENSE BYTE */ - /* SJBIECB DS 0A IOB - EVENT CONTROL BLOCK ADR */ - unsigned char SJBICMP; /* 10C IOB - COMPLETION CODE */ - unsigned char __7[3]; /* 10D AL3(SJBECB) IOB - ECB POINTER*/ - unsigned char SJBISIO; /* 110 IOB - SIO CONDITION CODE */ - /* SJBICSW DS 0XL7 IOB - CHANNEL STATUS WORD */ - unsigned char SJBICSWA[3]; /* 111 IOB - CSW ADDRESS PORTION */ - unsigned char SJBIST0; /* 114 IOB - FIRST STATUS BYTE */ - unsigned char SJBIST1; /* 115 IOB - SECOND STATUS BYTE */ - unsigned short SJBILEN; /* 116 IOB - RESIDUAL LENGTH */ - void *SJBIST; /* 118 IOB - CHANNEL PROGRAN ADDRESS */ - void *SJBIDCB; /* 11C IOB - DCB ADDRESS */ - void *SJBIRS; /* 120 IOB - RESTART CHANNEL PROGRAM ADR */ - unsigned __8; /* 124 */ - unsigned char SJBIFDAD[8]; /* 128 IOB - FULL DISK ADDRESS */ - unsigned char SJBCCW1[8]; /* 130 CCW X'03',*+5,X'60',1 SET SECTOR/NO-OP */ - unsigned char SJBCCW2[8]; /* 138 CCW X'31',SJBIFDAD+3,X'60',5 SEARCH ID EQUAL */ - unsigned char SJBCCW3[8]; /* 140 CCW X'08',*-8,0,1 TIC *-8 */ - unsigned char SJBCCW4[8]; /* 148 CCW X'05',0,0,*-* WRITE/READ DATA */ -/* -* ACB FOR HASP JOB LOG DATASET -*/ - unsigned char SJBLACB[76]; /* 150 ACB MACRF=(ADR,SEQ,OUT) */ -/* -* DEB FOR HASP JOB LOG DATASET -*/ - unsigned char SJBLDEB[32]; /* 19C DC 7A(0),A(SJBLACB) */ -/* -* RPL FOR HASP JOB LOG DATASET -*/ - unsigned char SJBLRPL[76]; /* 1BC RPL ACB=SJBLACB */ -/* -* ACB FOR INTERNAL TEXT DATASET -*/ - unsigned char SJBIACB[76]; /* 208 ACB MACRF=(ADR,SEQ,IN) */ -/* -* DEB FOR INTERNAL TEXT DATASET -*/ - unsigned char SJBIDEB[32]; /* 254 DC 7A(0),A(SJBIACB) */ -/* -* ACB FOR SYSTEM MESSAGES DATASET -*/ - unsigned char SJBMACB[76]; /* 274 ACB MACRF=(ADR,SEQ,OUT) */ -/* -* DEB FOR SYSTEM MESSAGES DATASET -*/ - unsigned char SJBMDEB[32]; /* 2C0 DC 7A(0),A(SJBMACB) */ -/* -* ACB FOR JOURNAL DATASET -*/ - unsigned char SJBJACB[76]; /* 2E0 ACB MACRF=(ADR,SEQ,DIR,IN,OUT) */ -/* -* DEB FOR JOURNAL DATASET -*/ - unsigned char SJBJDEB[32]; /* 32C DC 7A(0),A(SJBJACB) */ -/* -* DCB FOR SPOOL DATASET -* - ORG *-40 -SJBDCB DS 0F SYS1.HASPACE DATA CONTROL BLOCK - ORG *+40 -*/ - unsigned __9[3]; /* 34C DS 3A */ -/* -* DEB FOR SPOOL DATASET -* -SJBDEB EQU * SYS1.HASPACE DATA EXTENT BLOCK R4 -*/ -}; /* 358 (856 bytes) */ - -#endif diff --git a/src/crent370/include/hasptab.h b/src/crent370/include/hasptab.h deleted file mode 100644 index 6c05fdd..0000000 --- a/src/crent370/include/hasptab.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef HASPTAB_H -#define HASPTAB_H - -typedef struct __tab __TAB; /* JES Track Allocation Block */ - -/* JES Track Allocation Block */ -struct __tab { - unsigned int TABMTTR; /* 00 LAST ALLOCATED BUFFER */ - unsigned char TABFLAG; /* 04 FLAG BYTE */ -#define TABMINOR 0x00 /* ... NON-TRACK-CELLED -- PDDB LEVEL */ -#define TABMAJOR 0x40 /* ... TRACK-CELLED -- PDDB LEVEL */ -#define TABMASTR 0xC0 /* ... NON-TRACK-CELLED -- JOB LEVEL */ - - unsigned char TABSPN; /* 05 SUB-PERMUTATION NUMBER */ - unsigned char TABMAXR; /* 06 MAX RECD NBR ON TRACK */ - unsigned char TABUFCNT; /* 07 NBR BUFFERS LEFT IN CELL */ - unsigned int TABAIOT; /* 08 ADDR OF ALLOCATION IOT */ -}; -#define TABLNGTH sizeof(__TAB) /* 0C TAB DSECT LENGTH */ - -#endif diff --git a/src/crent370/include/hasptgm.h b/src/crent370/include/hasptgm.h deleted file mode 100644 index 7026fad..0000000 --- a/src/crent370/include/hasptgm.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef HASPTGM_H -#define HASPTGM_H - -typedef struct __tgm __TGM; /* JES Track Group Map */ - -/* JES Track Group Map */ -struct __tgm { - unsigned int TGMCYMXM; /* 00 MAX TTR THIS TRACK GROUP */ - unsigned int TGMCELL; /* 04 MTTR OF NEXT AVAILABLE TRAKCELL */ -/* TGMAP EQU * START OF ALLOCATION MAP */ -}; - -#endif diff --git a/src/crent370/include/iecvucb.h b/src/crent370/include/iecvucb.h deleted file mode 100644 index 38257ec..0000000 --- a/src/crent370/include/iecvucb.h +++ /dev/null @@ -1,64 +0,0 @@ -#ifndef IECVUCB_H -#define IECVUCB_H - -typedef struct ucblist UCBLIST; - -/* The UCB list if addressed by CVT->CVTILK2 and contains a list - * of UCB addresses (array of addresses) as half word values - * (UCB's are in low core). The end of the UCB list is 0xFFFF . - */ -struct ucblist { - unsigned short ucb[0]; /* 00 array of UCB addresses */ -#define UCBSKIP 0x0000 /* ... skip this UCB */ -#define UCBEOL 0xFFFF /* ... end of UCB list */ -}; - -/* We're only mapping the UCBDASD at this time */ -typedef struct ucbdasd UCBDASD; - -struct ucbdasd { - unsigned char ucbjobid; /* 00 always 0x00 */ - unsigned char ucbflg5; /* 01 always 0x00 ? */ - unsigned char ucbid; /* 02 always 0xFF */ - unsigned char ucbstat; /* 03 device status */ -#define UCBONLI 0x80 /* ... device is ONLINE */ -#define UCBRESV 0x20 /* ... device is RESERVED */ -#define UCBPRES 0x04 /* ... device is PERM RESIDENT */ - - unsigned short ucbchan; /* 04 device channel */ - unsigned char ucbfla; /* 06 */ - unsigned char ucbflb; /* 07 */ - unsigned char ucbchanmask; /* 08 */ - unsigned char ucbcnt; /* 09 */ - unsigned char ucblci; /* 0A */ - unsigned char ucbcpu; /* 0B */ - unsigned char ucbwgt; /* 0C */ - - unsigned char ucbname[3]; /* 0D device name */ - unsigned char ucbtype[4]; /* 10 device type */ -#define UCBTYPEDA 0x20 /* ... ucbtype[2] == UCBTYPEDA */ -#define UCBTYPE2321 0x05 /* ... ucbtype[3] == UCBTYPE2321*/ - - unsigned char ucbflc; /* 14 */ - unsigned char ucbext[3]; /* 15 ptr to UCB extension */ - unsigned char ucbspeed[4]; /* 18 ? */ - - unsigned char ucbvol[6]; /* 1C volser */ - unsigned char ucbstab; /* 22 volume status */ -#define UCBSTABPRV 0x10 /* ... PRIVATE VOLUME */ -#define UCBSTABPUB 0x08 /* ... PUBLIC VOLUME */ -#define UCBSTABSTR 0x04 /* ... STORAGE VOLUME */ - - unsigned char ucbdmct; /* 23 */ - unsigned char ucbsqc; /* 24 */ - unsigned char ucbfl4; /* 25 */ - unsigned char ucbuser; /* 26 */ - unsigned char ucbresv; /* 27 */ - - void *ucbzeus; /* 28 ptr to 1st ZEUS UCB */ - void *ucbnzeus; /* 2C ptr to next in ring */ -}; - -#endif - - diff --git a/src/crent370/include/iefjesct.h b/src/crent370/include/iefjesct.h deleted file mode 100644 index d929db5..0000000 --- a/src/crent370/include/iefjesct.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef IEFJESCT_H -#define IEFJESCT_H - -typedef struct jesct JESCT; - -struct jesct { - unsigned reserved; /* 00 RESERVED */ - void *jesunits; /* 04 POINTER TO UCB'S */ - void *jeswaa; /* 08 ADDRESS OF THE SWA */ - /* MANAGER - LOCATE MODE */ - void *jesqmgr; /* 0C ADDRESS OF SWA MANAGER MOVE MODE */ - void *jesresqm; /* 10 ENTRY POINT USED TO INTERFACE */ - /* BETWEEN THE QMNGRIO MACRO AND */ - /* THE RESIDENT SWA MNGR */ - void *jesssreq; /* 14 ADDRESS OF THE IEFSSREQ ROUTINE */ - void *jesssct; /* 18 ADDRESS OF THE FIRST SUBSYSTEM */ - /* COMMUNICATIONS TABLE */ - unsigned char jespjesn[4]; /* 1C NAME OF PRIMARY JOB ENTRY */ - /* SUBSYSTEM SET AT SYSGEN */ - void *jesalloc; /* 20 DEVICE ALLOCATION ENTRY */ - /* POINT USED BY INITIATOR */ - void *jesunalc; /* 24 DEVICE UNALLOCATION ENTRY */ - /* POINT USED BY INITIATOR */ - void *jescatl; /* 28 DEVICE ALLOCATION PRIVATE */ - /* CATALOG ENTRY POINT */ - /* USED BY INITIATOR */ - unsigned jesnucbs; /* 2C NUMBER OF UCB'S IN SYSTEM. */ - /* USED BY DEVICE ALLOCATION */ - void *jessasta; /* 30 ADDRESS OF SUBSYSTEM */ - /* ALLOCATION SEQUENCE TABLE */ - void *jesedt; /* 34 ADDRESS OF ALLOCATION */ - /* ELIGIBLE DEVICE TABLE */ - unsigned reserved2[4]; /* 38 RESERVED */ -}; /* 48 (72 bytes) */ - -#endif /* IEFJESCT_H */ diff --git a/src/crent370/include/iefjssib.h b/src/crent370/include/iefjssib.h deleted file mode 100644 index 8dc04c0..0000000 --- a/src/crent370/include/iefjssib.h +++ /dev/null @@ -1,46 +0,0 @@ -#ifndef IEFJSSIB_H -#define IEFJSSIB_H - -typedef struct ssib SSIB; - -/* -* SUBSYSTEM IDENTIFICATION BLOCK (SSIB) -* -* -IDENTIFIES THE SUBSYSTEM TO WHICH A REQUEST FOR SERVICES -* IS BEING MADE -* -* -CONTAINS COMMON CONTROL INFORMATION PASSED BETWEEN THE -* REQUESTOR AND THE SUBSYSTEM -*/ - -/* - L R2,PSATOLD-PSA OUR TCB ADDRESS 00281000 - L R2,TCBJSCB-TCB(,R2) JSCB ADDRESS 00282000 - USING IEZJSCB,R2 00283000 - L R2,JSCBACT ACTIVE JSCB ADDRESS 00284000 - L R2,JSCBSSIB SSIB ADDRESS 00285000 -*/ - -struct ssib { - /* SSIBEGIN EQU * */ - unsigned char SSIBID[4]; /* 00 CL4'SSIB' CONTROL BLOCK IDENTIFIER */ - unsigned short SSIBLEN; /* 04 AL2(SSIBSIZE) SSIB LENGTH */ - unsigned char SSIBFLG1; /* 06 FLAGS */ -#define SSIBPJES 0x80 /* ... THIS SSIB IS USED TO START THE JOB ENTRY - SUBSYSTEM */ - unsigned char SSIBSSID; /* 07 SUBSYSTEM IDENTIFIER. SET IN IEFJSCVT BY - SUBSYSTEM FIRST TIME IT IS INVOKED AFTER - IPL. SET IN SSIB BY SUBSYSTEM INTERFACE */ -#define SSIBUNKN 0x00 /* ... UNKNOWN SUBSYSTEM ID */ -#define SSIBJES2 0x02 /* ... JES2 SUBSYSTEM ID */ -#define SSIBJES3 0x03 /* ... JES3 SUBSYSTEM ID */ - - unsigned char SSIBSSNM[4]; /* 08 SUBSYSTEM NAME */ - unsigned char SSIBJBID[8]; /* 0C JOB IDENTIFIER */ - unsigned char SSIBDEST[8]; /* 14 DEFAULT USERID FOR SYSOUT DESTINATION */ - unsigned SSIBRSV1; /* 1C RESERVED */ - unsigned SSIBSUSE; /* 20 RESERVED FOR SUBSYSTEM USAGE */ -}; -#define SSIBSIZE sizeof(SSIB) /* 24 *-SSIBEGIN SSIB LENGTH */ - -#endif diff --git a/src/crent370/include/iefsscs.h b/src/crent370/include/iefsscs.h deleted file mode 100644 index 83d9ddb..0000000 --- a/src/crent370/include/iefsscs.h +++ /dev/null @@ -1,96 +0,0 @@ -#ifndef IEFSSCS_H -#define IEFSSCS_H - -#include /* SSOB Header */ - -#define SSOBCANC 2 /* CANCEL FUNCTION ID (SSOBFUNC) */ -#define SSOBSTAT 3 /* JOB STATUS FUNCTION ID (SSOBFUNC) */ -/* - * CANCEL/STATUS RETURN CODES (SSOBRETN) -*/ -#define SSCSRTOK 0 /* CANCEL/STATUS COMPLETED */ -#define SSCSNOJB 4 /* JOB NAME NOT FOUND */ -#define SSCSBADI 8 /* INVALID JOBNAME/JOB ID COMBINATION */ -#define SSCSNCAN 12 /* JOB NOT CANCELLED - DUPLICATE */ -/* JOBNAMES AND NO JOB ID GIVEN */ -#define SSCSMALL 16 /* STATUS ARRAY TOO SMALL */ -#define SSCSOUTP 20 /* JOB NOT CANCELLED-JOB ON OUTPUT QUEUE */ -#define SSCSYNTX 24 /* JOBID WITH INVALID SYNTAX FOR */ -/* SYBSYSTEM */ -#define SSCSICAN 28 /* INVALID CANCEL REQUEST - CANNOT */ -/* CANCEL AN ACTIVE TSO USER OR STARTED */ -/* TASK / TSO USER MAY NOT CANCEL THE */ -/* ABOVE JOBS UNLESS THEY ARE ON AN */ -/* OUTPUT QUEUE. */ - -typedef struct sscs SSCS; -typedef struct sscsaray SSCSARAY; - -/* SSCSARAY MAPS AN ELEMENT OF AN ARRAY GOTTEN BY THE CALLER FOR -/* THE SUBSYSTEM TO RETURN RESULTS IN. IF MORE THAN ONE ELEMENT -/* EXISTS, ADDRESSABILITY TO THIS ARRAY MUST BE UPDATED BY THE -/* ELEMENT SIZE (SSCSELSZ). THE TOTAL ARRAY SPACE USED FOR JOB -/* STATUS REPLIES FROM THE SUBSYSTEM(ARRAY ELEMENT SIZE IN BYTES -/* TIMES THE NUMBER OF ELEMENTS) MUST BE INDICATED IN SSCSDIMR. -/* MESSAGES MUST FOLLOW THE LAST SSCSARAY ELEMENT USED FOR JOB -/* STATUS. -*/ -struct sscsaray { - unsigned char SSCSARID[8];/* 00 JOB IDENTIFIER */ - unsigned char SSCSFLG1; /* 08 FLAGS SET BY SUBSYSTEM */ -#define SSCSJACT 0x80 /* ... JOB IS CURRENTLY ACTIVE (EXECUTING */ -/* AFTER BEING GIVEN CONTROL BY THE */ -/* INITIATOR) */ -#define SSCSEXCQ 0x40 /* ... JOB IS WAITING FOR EXECUTION (ON A */ -/* PRE-EXECUTION QUEUE) */ -#define SSCSOUTQ 0x20 /* ... JOB IS ON OUTPUT QUEUE */ -#define SSCSHOLD 0x10 /* ... JOB IS HELD IN ITS CURRENT QUEUE */ -#define SSCSSECL 0x08 /* ... JOB HAS A SECOND LEVEL MESSAGE */ -#define SSCSNJEA 0x04 /* ... JOB ACTIVE IN NJE */ - - unsigned char SSCSUJOB; /* 09 JOBNAME CHARACTER RETURNED */ -/* BY SUBSYSTEM FOR USERID AS JOBNAME */ - unsigned char SSCSRSV2[2];/* 0A RESERVED */ - void *SSCSMPTR; /* 0C POINTER TO MESSAGE RETURNED IN ARRAY */ -/* -/* THE SECOND LEVEL MESSAGE AREA IS MAPPED BY A MULTI-LEVEL PUTLINE -/* OUTPUT LINE DESCRIPTOR (OLD). THE FIRST 9 BYTES OF THE FIRST OR -/* ONLY MESSAGE SEGMENT ARE RESERVED FOR THE INSERTION OF A MESSAGE -/* ID BY THE CALLER. ONE TO 62 BYTES OF MESSAGE TEXT MAY BE PROVIDED -/* BY THE SUBSYSTEM. A MAPPING OF THE OLD FORMAT NEEDED FOLLOWS. -/* -/* SSCSMPTR -> ONE TSO PUTLINE OUTPUT LINE DESCRIPTOR (OLD) -/* +0 0 (NO OTHER OLD) -/* +4 NUMBER OF MESSAGE SEGMENTS -/* +8 PTR TO FIRST MESSAGE SEGMENT -/* +. PTR TO NTH MESSAGE SEGMENT -/* ........ MESSAGE SEGMENT FORMAT...... -/* +0 TOTAL LENGTH OF MSG SEGMENT (INCLUDING THIS FIELD) -/* +2 0 IF FIRST SEGMENT, OR OFFSET FOR INSERT IN FIRST -/* +4 10 BLANKS FOR MSG ID (ONLY IN FIRST SEGMENT) -/* +D MESSAGE TEXT (1-62 BYTES TOTAL FOR ALL SEGMENTS) -*/ -}; -#define SSCSELSZ sizeof(SSCSARAY) - -struct sscs { - unsigned short SSCSLEN; /* 00 CANCEL/STATUS EXTENSION LENGTH */ - unsigned char SSCSFLGS; /* 02 USER SELECTION FLAGS */ -#define SSCSUSID 0x80 /* ... USERID IS IN JOBNAME FIELD */ -#define SSCSCOUT 0x40 /* ... CANCEL THE JOBS OUTPUT */ - - unsigned char SSCSULEN; /* 03 USERID LENGTH */ - unsigned char SSCSJOBN[8];/* 04 JOB NAME */ - unsigned char SSCSJOBI[8];/* 0C JOB ID OR BLANKS */ - unsigned short SSCSDIMP; /* 14 SET BY CALLER TO INDICATE SIZE */ -/* OF ARRAY AVAILABLE TO SUBSYSTEM */ -/* TO STORE RESULTS IN */ - unsigned short SSCSDIMR; /* 16 SET BY SUBSYSTEM TO INDICATE SIZE */ -/* OF ARRAY USED, OR NEEDED IF NOT */ -/* ENOUGH IS AVAILABLE */ - SSCSARAY SSCSARAY[1];/* 18 array area start */ -}; -#define SSCSIZE sizeof(SSCS) -#define SSOBLEN2 (SSOBHSIZ+SSCSIZE) - -#endif diff --git a/src/crent370/include/iefssobh.h b/src/crent370/include/iefssobh.h deleted file mode 100644 index 32a4aba..0000000 --- a/src/crent370/include/iefssobh.h +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef IEFSSOBH_H -#define IEFSSOBH_H - -/* THE FOLLOWING RETURN CODES WILL BE RETURNED IN REGISTER 15 -/* TO THE ISSUER OF THE IEFSSREQ MACRO - -/* -/* SSOBRETN CONTAINS FUNCTION-RELATED RETURN CODES -/* (DEFINED IN EACH FUNCTION EXTENSION) -*/ -#define SSRTOK 0 /* SUCCESSFUL COMPLETION - REQUEST WENT */ -/* TO A SUBSYSTEM. */ -#define SSRTNSUP 4 /* SUBSYSTEM DOES NOT SUPPORT THIS */ -/* FUNCTION */ -#define SSRTNTUP 8 /* SUBSYSTEM EXISTS, BUT IS NOT UP */ -#define SSRTNOSS 12 /* SUBSYSTEM DOES NOT EXIST */ -#define SSRTDIST 16 /* FUNCTION NOT COMPLETED-DISASTROUS */ -/* ERROR */ -#define SSRTLERR 20 /* LOGICAL ERROR (BAD SSOB FORMAT, */ -/* INCORRECT LENGTH,...) */ - -typedef struct ssob SSOB; - -struct ssob { - unsigned char SSOBID[4]; /* 00 CL4'SSOB' CONTROL BLOCK IDENTIFIER */ -#define SSOBID_EYE "SSOB" /* ... */ - - unsigned short SSOBLEN; /* 04 LENGTH OF SSOB HEADER */ - unsigned short SSOBFUNC; /* 06 FUNCTION ID */ - void *SSOBSSIB; /* 08 ADDRESS OF SSIB OR ZERO */ - int SSOBRETN; /* 0C RETURN CODE FROM SUBSYSTEM */ - void *SSOBINDV; /* 10 FUNCTION DEPENDENT AREA POINTER */ -}; -#define SSOBHSIZ sizeof(SSOB) - -/* call jes subsystem interface */ -extern int iefssreq(SSOB *ssob); - -#endif diff --git a/src/crent370/include/iefssso.h b/src/crent370/include/iefssso.h deleted file mode 100644 index dded2cc..0000000 --- a/src/crent370/include/iefssso.h +++ /dev/null @@ -1,91 +0,0 @@ -#ifndef IEFSSSO_H -#define IEFSSSO_H - -#include /* SSOB Header */ - -#define SSOBSOUT 1 /* SYSOUT FUNCTION ID (SSOBFUNC) */ -/* -/* PROCESS SYSOUT DATA SETS RETURN CODES (SSOBRETN) -*/ -#define SSSORTOK 0 /* EVERYTHING IS OK */ -#define SSSOEODS 4 /* NO MORE DATA SETS TO SELECT */ -#define SSSONJOB 8 /* JOB NOT FOUND */ -#define SSSOINVA 12 /* INVALID SEARCH ARGUMENTS */ -#define SSSOUNAV 16 /* UNABLE TO PROCESS NOW */ -#define SSSODUPJ 20 /* DUPLICATE JOBNAMES */ -#define SSSOINVJ 24 /* INVALID JOBNAME/JOBID COMBINATION */ -#define SSSOIDST 28 /* INVALID DESTINATION SPECIFIED */ - -typedef struct ssso SSSO; -typedef struct sssowtrc WTRC; - -struct ssso { - unsigned short SSSOLEN; /* 00 SYSOUT EXTENSION LENGTH */ - unsigned char SSSOUFLG; /* 02 USER SELECTION OPTIONS CLASS */ -/* ROUTING AND DISPOSITION FLAGS */ -#define SSSOSETC 0x80 /* ... USE SSSOCLAS AS DISPOSITION */ -#define SSSODELC 0x40 /* ... DELETE SELECTED DATA SET */ -#define SSSOROUT 0x20 /* ... REROUTE SELECTED DATA SET TO */ -/* DESTINATION IN SSSODEST */ -#define SSSOHOLD 0x10 /* ... HOLD ALL SELECTED DATA SETS */ -#define SSSORLSE 0x08 /* ... RELEASE ALL SELECTED DATA SETS */ - - unsigned char SSSORESV; /* 03 RESERVED */ - unsigned char SSSOFLG1; /* 04 DATA SET SELECTION CONTROL FLAGS */ -#define SSSOHLD 0x80 /* ... SELECTION SHOULD INCLUDE HELD */ -/* SYSOUT DATA SETS */ -#define SSSOSCLS 0x40 /* ... USE CLASS */ -#define SSSODST 0x20 /* ... USE REMOTE DESTINATION */ -#define SSSOSJBN 0x10 /* ... USE JOB NAME */ -#define SSSOSJBI 0x08 /* ... USE JOB ID */ -#define SSSOSPGM 0x04 /* ... USE USER WRITER PROGRAM NAME */ -#define SSSOSFRM 0x02 /* ... USE FORM NUMBER */ - - unsigned char SSSOFLG2; /* 05 CURRENT DATA SET DISPOSITION FLAGS */ -#define SSSOCTRL 0x80 /* ... 1 - PROCESSING COMPLETED */ -/* 0 - RETURN DATA SET NAME */ -#define SSSOCHKP 0x40 /* ... USE SSSORBA TO CHECKPOINT RBA */ -/* OF CURRENT DATA SET IN CLASS */ - - unsigned short SSSOCOPY; /* 06 NUMBER OF COPIES */ - unsigned char SSSOJOBN[8];/* 08 JOB NAME */ - unsigned char SSSOJOBI[8];/* 10 JOB ID */ - unsigned char SSSOCLAS; /* 18 NAME OF DESTINATION CLASS SPECIFIED */ -/* VIA THE NEWCLASS PARAMETER */ - unsigned char SSSORSV5[3];/* 19 RESERVED */ - unsigned char SSSODEST[8];/* 1C REMOTE DESTINATION SPECIFIED */ -/* VIA THE DEST PARAMETER */ - unsigned char SSSOPGMN[8];/* 24 USER WRITER NAME */ - unsigned char SSSORBA[8]; /* 2C RBA OF SYSOUT DATA SET */ - unsigned char SSSODSN[44];/* 34 SYSOUT DATA SET NAME */ - unsigned char SSSOFORM[4];/* 60 FORM NUMBER */ -/* -/* SSSOCLSL WILL CONTAIN 1-8 CLASSES WHEN USED FOR REROUTING OR DELETE -/* FUNCTIONS AND WILL CONTAIN ONLY ONE CLASS WHEN USED FOR PRINTING. -*/ - unsigned char SSSOCLSL[8];/* 64 CLASS SELECTION LIST FOR */ -/* DATA SET SELECTION */ - WTRC *SSSOWTRC; /* 6C A POINTER TO A COMMUNICATION */ -/* AREA FOR THE USER WRITTEN */ -/* WRITER */ - unsigned char SSSODSID[8];/* 70 DATA SET ID TO PLACE SYSOUT */ -/* ON EXTERNAL DEVICES */ -}; -#define SSSOSIZE sizeof(SSSO) -#define SSOBLEN1 (SSOBHSIZ+SSSOSIZE) - -struct sssowtrc { - unsigned int wtrcecb; /* 00 Wait-for-work ECB */ - unsigned char wtrctime[4];/* 04 Start time of the job creating the - SYSOUT data set returned. The format - is from the TIME macro with BIN - specified. */ - unsigned char wtrcdate[4];/* 08 Start date of the job creating the - SYSOUT data set returned, in packed - decimal form where F is the sign: - 0cyydddF. */ - unsigned char wtrcuse[8]; /* 0C The installation dependent value from - JMRUSEID. Length of 8 bytes. */ -}; /* 14 (20 bytes) */ - -#endif diff --git a/src/crent370/include/ieftiot.h b/src/crent370/include/ieftiot.h deleted file mode 100644 index 7e8ada7..0000000 --- a/src/crent370/include/ieftiot.h +++ /dev/null @@ -1,158 +0,0 @@ -#ifndef IEFTIOT_H -#define IEFTIOT_H - -typedef struct tiot TIOT; -typedef struct tiotdd TIOTDD; - -static __inline TIOT *get_tiot(void) -{ - unsigned *psa = (unsigned *)0; - unsigned *tcb = (unsigned *)psa[0x21C/4]; /* A(TCB) */ - TIOT *tiot = (TIOT*)tcb[0xC/4]; /* A(TIOT) */ - - return tiot; -} - -/* **************************************************************** */ -/* TASK INPUT/OUTPUT TABLE */ -/* */ -/* OS/VS1 RELEASE 4, OS/VS2 RELEASE 3, 09/30/74, LEVEL=1 */ -/* */ -/* METHOD OF ACCESS */ -/* BAL - A DSECT CARD SHOULD PRECEDE MACRO CALL. USING ON */ -/* TIOT1 GIVES ADDRESSABILITY FOR ALL SYMBOLS. */ -/* PL/S - DCL TIOTPTR PTR */ -/* **************************************************************** */ -struct tiot { -/* TIOT1 EQU * - TIOTPTR */ - char TIOCNJOB[8]; /* 00 JOB NAME */ - char TIOCSTEP[16]; /* 08 FOR A JOB STEP THAT IS NOT A PROCEDURE */ - /* STEP, 8-BYTE JOB STEP NAME AND 8 RESERVED */ - /* BYTES. FOR A JOB STEP THAT IS A */ - /* PROCEDURE STEP, 8-BYTE PROCEDURE STEP */ - /* NAME AND 8-BYTE JOB STEP NAME OF THE JOB */ - /* STEP THAT CALLED THE PROCEDURE. */ - char TIOTDD[0]; /* 18 DD Entries */ -}; - -/*********************************************************************** -/* * -/* DD ENTRY * -/* * -/* THERE IS A 16-BYTE DD ENTRY FOR EACH DD STATEMENT IN THE * -/* JOB STEP OR PROCEDURE STEP. (REFERENCES TO GDG (ALL) DATA * -/* SETS, THE JOBLIB DATA SET OR PGM=*.DDNAME CREATE STILL * -/* OTHER DD ENTRIES.) * -/* * -/* A DD ENTRY INCLUDES A DEVICE ENTRY. BEFORE ALLOCATION, * -/* THERE MAY BE SEVERAL DEVICE ENTRIES IN EACH DD ENTRY. * -/* * -/**********************************************************************/ -struct tiotdd { -/* TIOENTRY EQU * - TIODDPTR */ - char TIOELNGH; /* 00 LENGTH, IN BYTES, OF THIS ENTRY */ - /* (INCLUDING ALL DEVICE ENTRIES) */ - char TIOESTTA; /* 01 STATUS BYTE A */ -#define TIOSLTYP 0x80 /* ... NONSTANDARD LABEL (TAPE) (OS/VS1) */ - /* ENTRY NOT IN USE (OS/VS2) */ -#define TIOSPLTP 0x40 /* ... DURING ALLOCATION, SPLIT CYLINDER */ - /* PRIMARY. (THIS IS THE FIRST DD ENTRY FOR*/ - /* A SPLIT CYLINDER.) */ - /* DURING STEP TERMINATION, NO UNALLOCATION */ - /* NECESSARY. */ -#define TIOSPLTS 0x20 /* ... DURING ALLOCATION, SPLIT CYLINDER */ - /* SECONDARY. (THIS IS NOT THE FIRST DD */ - /* ENTRY FOR A SPLIT CYLINDER.) */ - /* DURING STEP TERMINATION, REWIND BUT NO */ - /* UNLOADING. */ -#define TIOSJBLB 0x10 /* ... JOBLIB INDICATOR */ -#define TIOSDADS 0x08 /* ... DADSM ALLOCATION NECESSRY */ -#define TIOSLABL 0x04 /* ... LABELED TAPE. IF BIT 0 IS OFF, SL OR */ - /* ... SUL. IF BIT 0 IS ALSO ON, AL OR AUL. */ -#define TIOSDSP1 0x02 /* ... REWIND/UNLOAD THE TAPE VOLUME (TAPE) */ - /* PRIVATE VOLUME (DIRECT ACCESS) */ -#define TIOSDSP2 0x01 /* ... REWIND THE TAPE VOLUME (TAPE) */ - /* PUBLIC VOLUME (DIRECT ACCESS) */ -/* TIOERLOC DS 0CL2 - RELATIVE LOCATION OF POOL */ - char TIOEWTCT; /* 02 DURING ALLOCATION, NUMBER OF DEVICES */ - /* REQUESTED FOR THIS DATA SET */ - char TIOELINK; /* 03 DURING ALLOCATION, LINK TO THE */ - /* APPROPRIATE PRIME SPLIT, UNIT AFFINITY, */ - /* VOLUME AFFINITY OR SUBALLOCATE TIOT */ - /* ENTRY. AFTER ALLOCATION, FLAG BYTE. */ -#define TIOSYOUT 0x80 /* ... THIS IS A SYSOUT DATA SET THAT CONTAINS */ - /* DATA (AFTER CLOSE) */ -#define TIOTRV01 0x40 /* ... RESERVED */ -#define TIOTTERM 0x20 /* ... DEVICE IS A TERMINAL */ -#define TIOEDYNM 0x10 /* ... DYNAM CODED ON DD STATEMENT */ -#define TIOEQNAM 0x08 /* ... QNAME CODED ON DD STATEMENT */ -#define TIOESYIN 0x04 /* ... ENTRY FOR SPOOLED SYSIN DATA SET */ -#define TIOESYOT 0x02 /* ... ENTRY FOR SPOOLED SYSOUT DATA SET VS1 */ -#define TIOESSDS 0x02 /* ... ENTRY FOR A SUBSYSTEM DATA SET VS2 */ -#define TIOTREM 0x01 /* ... ENTRY FOR A REMOTE DEVICE */ - char TIOEDDNM[8]; /* 04 DD NAME */ - char TIOEJFCB[3]; /* 0C RELATIVE TRACK ADDRESS (TTR) OF THE JFCB. */ - /* (DURING ALLOCATION, TTR OF THE SIOT IF */ - /* SUBALLOCATE WAS REQUESTED.) */ - char TIOESTTC; /* 0F STATUS BYTE C. USED DURING ALLOCATION */ - /* ONLY. SET TO ZEROS AT END OF ALLOCATION. */ -#define TIOSDKCR 0x80 /* ... MAIN STORAGE OR DASD ADDRESS */ -#define TIOSDEFR 0x40 /* ... DEFERRED MOUNT */ -#define TIOSAFFP 0x20 /* ... PRIMARY UNIT AFFINITY */ -#define TIOSAFFS 0x10 /* ... SECONDARY UNIT AFFINITY */ -#define TIOSVOLP 0x08 /* ... PRIMARY VOLUME AFFINITY */ -#define TIOSVOLS 0x04 /* ... SECONDARY VOLUME AFFINITY */ -#define TIOSBALP 0x02 /* ... PRIMARY SUBALLOCATE */ -#define TIOSBALS 0x01 /* ... SECONDARY SUBALLOCATE */ - -/*********************************************************************** -/* * -/* DEVICE ENTRIES * -/* * -/* 1. DURING ALLOCATION - * -/* ONE DEVICE ENTRY FOR EACH DEVICE REQUIRED, OR FOR * -/* EACH PUBLIC DEVICE ELIGIBLE. * -/* * -/* 2. DURING PROBLEM PROGRAM - * -/* ONE DEVICE ENTRY FOR EACH ALLOCATED DEVICE. * -/* * -/**********************************************************************/ - char TIOESTTB; /* 10 STATUS BYTE B - DURING ALLOCATION AND */ - /* DURING PROBLEM PROGRAM */ -#define TIOSUSED 0x80 /* ... DATA SET IS ON DEVICE */ -#define TIOSREQD 0x40 /* ... DATA SET WILL USE DEVICE */ -#define TIOSPVIO 0x20 /* ... DEVICE VIOLATES SEPARATION */ -#define TIOSVLSR 0x10 /* ... VOLUME SERIAL PRESENT */ -#define TIOSSETU 0x08 /* ... SETUP MESSAGE REQUIRED */ -#define TIOSMNTD 0x04 /* ... IF 0, DELETE UNLOADED VOLUME IF UNLOAD */ - /* REQUIRED. IF 1, RETAIN UNLOADED VOLUME */ - /* IF UNLOAD REQUIRED. */ -#define TIOSUNLD 0x02 /* ... UNLOAD REQUIRED */ -#define TIOSVERF 0x01 /* ... VERIFICATION REQUIRED */ - - char TIOEFSRT[3]; /* 11 DURING PROBLEM PROGRAM, ADDRESS OF UCB. */ - /* DURING ALLOCATION, BITS 0-11 CONTAIN */ - /* OFFSET, IN THE UCB LOOK-UP TABLE, TO AN */ - /* ADDRESS FOR A DEVICE REQUIRED OR ELIGIBLE */ - /* FOR THIS DATA SET. THE UCB LOOK-UP TABLE */ - /* HAS ADDRESSES OF UCB'S. BITS 12-23 */ - /* CONTAIN OFFSET, IN THE STEP VOLUME TABLE */ - /* (VOLT), TO THE VOLUME SERIAL NUMBER FOR */ - /* THE VOLUME REQUIRED OR ELIGIBLE FOR THIS */ - /* DATA SET. */ -}; - -/* TIOT POOL ENTRY */ -struct poolstar { -/* POOLSTAR EQU * */ - char __1; /* 00 RESERVED */ - char TIOPNSLT; /* 01 NUMBER OF SLOTS FOR POOL */ - char __2; /* 02 RESERVED */ - char TIOPNSRT; /* 03 NUMBER OF DEVICES (FILLED SLOTS) */ - char TIOPPOOL[8]; /* 04 POOL NAME */ - char TIOPSTTB; /* 0C STATUS OF SLOT */ - char TIOPSLOT[3]; /* 0D UCB ADDRESS OR EMPTY SLOT */ - char TIOTFEND[4]; /* 10 FINAL END OF THE TIOT - BINARY ZEROS */ -}; - -#endif /* IEFTIOT_H */ diff --git a/src/crent370/include/ieftxtft.h b/src/crent370/include/ieftxtft.h deleted file mode 100644 index 4666991..0000000 --- a/src/crent370/include/ieftxtft.h +++ /dev/null @@ -1,96 +0,0 @@ -/* IEFTXTFT.H Internal Text */ -#ifndef IEFTXTFT_H -#define IEFTXTFT_H - -typedef struct __txtpre __TXTPRE; /* Common to all text string types */ -typedef struct __jobstr __JOBSTR; /* for JOBSTR statement type */ -typedef struct __execstr __EXECSTR; /* for EXECSTR or PROCSTR statement type */ -typedef struct __ddstr __DDSTR; /* for DDSTR statement type */ - -struct __txtpre { -/* - * THE FOLLOWING FIELDS ARE COMMON TO ALL TEXT STRING TYPES. - */ - unsigned short STRLTH; /* 00 LENGTH OF TEXT STRING. */ - unsigned char STRINDCS; /* 02 STATEMENT TYPE AND MISCELLANEOUS INDICATORS */ -#define JOBSTR 0x01 /* ... JOB STATEMENT TEXT STRING */ -#define EXECSTR 0x02 /* ... EXEC STATEMENT TEXT STRING */ -#define DDSTR 0x04 /* ... DD STATEMENT TEXT STRING */ -#define PROCSTR 0x08 /* ... PROC STATEMENT TEXT STRING */ -#define LASTSTMT 0x10 /* ... LAST STMT FOR THIS STEP. */ -}; - -/* FORMAT FOR JOB TEXT STRINGS */ -/*******************************************************************/ -/* 2* 1* 1* 1* 1* 1*/ -/* STRLTH *STRINDCS *STRJINDC *STRJIND2 *STRJLABD *STRJKEY */ -/* 2* 1* 1* 1* 1* 1*/ -/*******************************************************************/ -struct __jobstr { - unsigned short STRLTH; /* 00 LENGTH OF TEXT STRING. */ - unsigned char STRINDCS; /* 02 STATEMENT TYPE AND MISCELLANEOUS INDICATORS */ - unsigned char STRJINDC; /* 03 JOB INDICATORS */ -#define JTXACCTN 0x01 /* ... ACCT NO. REQUIRED. */ -#define JTXPROGN 0x02 /* ... PROGRAMMER NAME REQUIRED. */ -#define JTXJOBFL 0x04 /* ... JOB HAS BEEN FAILED. */ -#define JTXSYSCK 0x08 /* ... JOB HAS SYSCHK DD. */ -#define JTXCPSTF 0x10 /* ... C/R - FLUSH TO RESTART STEPNAME. */ -#define JTXMHEDR 0x20 /* ... MESSAGE HEADER HAS BEEN WRITTEN. */ -#define JTXREGDF 0x40 /* ... REGION VALUE IS A DEFAULT. */ - - unsigned char STRJIND2; /* 04 BYTE 2 OF JOB TEXT INDICATORS. */ - unsigned char STRJLABD; /* 05 BYPASS LABEL PROCESSING DEFAULT. */ -/* ENTIRE BYTE IS USED, AS IEFVDA OR'S BYTE DIRECTLY INTO JFCB. */ -#define JTXLABNL 0x01 /* ... DEFAULT IS NO LABEL. */ -#define JTXLABLP 0x10 /* ... DEFAULT IS BYPASS LABEL PROCESSING. */ - unsigned char STRJKEY[0]; /* 06 VERB KEY FOR JOB TEXT STRING */ -}; /* END OF JOB TEXT STRING PREFIX */ -#define STRJPFXL sizeof(__TXTJOB) /* LENGTH OF JOB TEXT STRING PREFIX */ - -/* FORMAT FOR EXEC/PROC TEXT STRINGS */ -/***************************************************/ -/* 2* 1* 1* 1*/ -/* STRLTH *STRINDCS *STREINDC *STREKEY */ -/* * * * */ -/***************************************************/ -struct __execstr { - unsigned short STRLTH; /* 00 LENGTH OF TEXT STRING. */ - unsigned char STRINDCS; /* 02 STATEMENT TYPE AND MISCELLANEOUS INDICATORS */ - unsigned char STREINDC; /* 03 EXEC INDICATORS. */ -#define ETXCPFLG 0x01 /* ... CHECKPT/RESTART EXEC STMT. */ -#define ETXSTPCT 0x02 /* ... STEP HAS A STEPCAT DD. */ -#define ETXSTPLB 0x04 /* ... STEP HAS A STEPLIB DD. */ -#define ETXPROC 0x08 /* ... STATEMENT IS FROM A PROC. */ -#define ETXNODD 0x10 /* ... STEP HAS NO DD STATEMENTS. */ -#define ETXPRCV 0x20 /* ... STATEMENT INVOKES A PROCEDURE. */ -/* END OF EXEC/PROC TEXT STRING PREFIX */ - unsigned char STREKEY[0]; /* 04 VERB KEY FOR EXEC/PROC TEXT STRING */ -}; -#define STREPFXL sizeof(__EXEC) /* LENGTH OF EXEC/PROC TEXT STRING PFX */ - - -/* FORMAT FOR DD TEXT STRINGS */ -/***************************************************/ -/* 2* 1* 1* 1*/ -/* STRLTH *STRINDCS *STRDINDC *STRDKEY */ -/* * * * */ -/***************************************************/ -struct __ddstr { - unsigned short STRLTH; /* 00 LENGTH OF TEXT STRING. */ - unsigned char STRINDCS; /* 02 STATEMENT TYPE AND MISCELLANEOUS INDICATORS */ - unsigned char STRDINDC; /* 03 DD TEXT STRING INDICATORS. */ -#define DTXDUMMY 0x01 /* ... DUMMY SPECIFIED ON STATEMENT. */ -#define DTXDDNM 0x02 /* ... DDNAME= SPECIFIED ON STATEMENT. */ -#define DTXDSNLT 0x04 /* ... DSNAME SPECIFIED AS A LITERAL. */ -#define DTXDYNAM 0x08 /* ... DYNAM SPECIFIED ON STATEMENT. */ -#define DTXSYSIN 0x10 /* ... TEXT IS FOR A SPOOLED DATA SET. */ -#define DTXSYOUT 0x20 /* ... TEXT IS FOR A SYSOUT DATA SET */ -#define DTXSUBSK 0x40 /* ... SUBSYS= SPECIFIED ON STMT */ -#define DTXPROC 0x80 /* ... STATEMENT IS FROM A PROC. */ -/* END OF DD TEXT STRING PREFIX */ - unsigned char STRDKEY[0]; /* 04 VERB KEY FOR DD TEXT STRING */ -}; -#define STRDPFXL sizeof(__DDSTR) /* LENGTH OF DD TEXT STRING PREFIX */ - - -#endif diff --git a/src/crent370/include/iefvkeys.h b/src/crent370/include/iefvkeys.h deleted file mode 100644 index 02916f7..0000000 --- a/src/crent370/include/iefvkeys.h +++ /dev/null @@ -1,154 +0,0 @@ -#ifndef IEFVKEYS_H -#define IEFVKEYS_H - -#define ETEND 0x00 /* NONE DICTIONARY END */ -#define PROTECTK 0x1B /* DD PROTECT= */ -#define SUBSYSK 0x1C /* DD SUBSYS= */ -#define CHARSK 0x1D /* DD CHARS= */ -#define MODIFYK 0x1E /* DD MODIFY= */ -#define FLASHK 0x1F /* DD FLASH= */ -#define BURSTK 0x20 /* DD BURST= */ -#define DSIDK 0x21 /* DD DSID= */ -#define MSVGPK 0x22 /* DD MSVGP= */ -#define HOLDK 0x23 /* DD HOLD= */ -#define SYSINCTK 0x24 /* DD INTERNAL KEY- NUMBER SYSIN - RECORDS SPOOLED BY JESS */ -#define DESTK 0x25 /* DD DEST= */ -#define FRIDMK 0x26 /* DD FRID= */ -#define FREEK 0x27 /* DD FREE= */ -#define AMPK 0x28 /* DD AMP= */ -#define FUNCMK 0x29 /* DD FUNC= */ -#define DIAGNSK 0x2A /* DD DIAGNS= */ -#define DLMK 0x2B /* DD DLM= */ -#define FCBK 0x2C /* DD FCB= */ -#define TERMK 0x2D /* DD TERM= */ -#define THRESHMK 0x2E /* DD THRESH= */ -#define RESERVMK 0x2F /* DD RESERVE= */ -#define PCIMK 0x30 /* DD PCI= */ -#define BUFMAXMK 0x31 /* DD BUFMAX= */ -#define BUFOUTMK 0x32 /* DD BUFOUT= */ -#define BUFINMK 0x33 /* DD BUFIN= */ -#define BUFSIZMK 0x34 /* DD BUFSIZE= */ -#define DYNAK 0x35 /* DD DYNAM */ -#define QNAMEK 0x36 /* DD QNAME= */ -#define BUFOFFMK 0x37 /* DD BUFOFF */ -#define OUTLIMK 0x38 /* DD OUTLIM */ -#define IPLTXIDK 0x39 /* DD IPLTXID= */ -#define COPIESK 0x3A /* DD COPIES= */ -#define GDSORGMK 0x3B /* DD GDSORG= */ -#define GNCPMK 0x3C /* DD GNCP= */ -#define UCSK 0x3D /* DD UCS= */ -#define DUMMK 0x3E /* DD DUMMY */ -#define CHKPTK 0x3F /* DD CHKPT= */ -#define DCBK 0x40 /* DD DCB= */ -#define UNITK 0x41 /* DD UNIT= */ -#define LABELK 0x42 /* DD LABEL= */ -#define VOLUMEK 0x43 /* DD VOLUME= */ -#define AFFK 0x44 /* DD AFF= */ -#define SEPK 0x45 /* DD SEP= */ -#define DISPK 0x46 /* DD DISP= */ -#define SPACEK 0x47 /* DD SPACE= */ -#define SPLITK 0x48 /* DD SPLIT= */ -#define DDNAMEK 0x49 /* DD DDNAME= */ -#define DSNAMEK 0x4A /* DD DSNAME= */ -#define SYSOUTK 0x4B /* DD SYSOUT= */ -#define SUBALLOK 0x4C /* DD SUBALLOC= */ -#define AFFMK 0x4D /* DD AFF= MINOR */ -#define SEPMK 0x4E /* DD SEP= MINOR */ -#define SERMK 0x4F /* DD SER= */ -#define REFMK 0x50 /* DD REF= */ -#define EXPDTMK 0x51 /* DD EXPDT= */ -#define RETPDMK 0x52 /* DD RETPD= */ -#define BFALNMK 0x53 /* DD BFALN= */ -#define BFTEKMK 0x54 /* DD BFTEK= */ -#define BLKSIZMK 0x55 /* DD BLKSIZE= */ -#define BUFLMK 0x56 /* DD BUFL= */ -#define BUFNOMK 0x57 /* DD BUFNO= */ -#define BUFRQMK 0x58 /* DD BUFRQ= */ -#define CODEMK 0x59 /* DD CODE= */ -#define CPRIMK 0x5A /* DD CPRI= */ -#define CYLOFLMK 0x5B /* DD CYLOFL= */ -#define HIARCHMK 0x5C /* DD HIARCHY= */ -#define DENMK 0x5D /* DD DEN= */ -#define DSORGMK 0x5E /* DD DSORG= */ -#define EROPTMK 0x5F /* DD EROPT= */ -#define INTVLMK 0x60 /* DD INTVL= */ -#define KEYLENMK 0x61 /* DD KEYLEN= */ -#define LIMCTMK 0x62 /* DD LIMCT= */ -#define LRECLMK 0x63 /* DD LRECL= */ -#define MODEMK 0x64 /* DD MODE = */ -#define NCPMK 0x65 /* DD NCP= */ -#define NTMMK 0x66 /* DD NTM= */ -#define OPTCDMK 0x67 /* DD OPTCD= */ -#define PRTSPMK 0x68 /* DD PRTSP= */ -#define RECFMMK 0x69 /* DD RECFM= */ -#define RKPMK 0x6A /* DD RKP= */ -#define SOWAMK 0x6B /* DD SOWA= */ -#define STACKMK 0x6C /* DD STACK= */ -#define TRTCHMK 0x6D /* DD TRTCH= */ -#define DDK 0x6E /* DD DD */ - -#define DYNMPEK 0x7B /* EXEC DYNAMNBR. */ -#define DYNMEEK 0x7C /* EXEC DYNAMNBR= */ -#define PRFMPEK 0x7D /* EXEC PERFORM. */ -#define PRFMEEK 0x7E /* EXEC PERFORM= */ -#define ADRSPPEK 0x7F /* EXEC ADDRSPC. */ -#define ADRSPEEK 0x80 /* EXEC ADDRSPC= */ -#define SDPPEK 0x81 /* EXEC DPRTY. */ -#define SDPEEK 0x82 /* EXEC DPRTY= */ - -#define RDEEK 0x84 /* EXEC RD= */ -#define RDPEK 0x85 /* EXEC RD. */ -#define ROLLPEK 0x86 /* EXE ROLL. */ -#define ROLLEEK 0x87 /* EXE ROLL= */ -#define REGINPEK 0x88 /* EXE REGION. */ -#define REGINEEK 0x89 /* EXEC REGION= */ -#define PGMEK 0x8A /* EXEC PGM= */ -#define PROCEK 0x8B /* EXEC PROC= */ -#define ACCTPEK 0x8C /* EXEC ACCT. */ -#define CONDPEK 0x8D /* EXEC COND. */ -#define PARMPEK 0x8E /* EXEC PARM. */ -#define TIMEPEK 0x8F /* EXEC TIME. */ -#define ACCTEEK 0x90 /* EXEC ACCT= */ -#define CONDEEK 0x91 /* EXEC COND= */ -#define PARMEEK 0x92 /* EXEC PARM= */ -#define TIMEEEK 0x93 /* EXEC TIME= */ -#define EXECK 0x94 /* EXEC EXEC */ - -#define GROUPK 0xA3 /* JOB GROUP= */ -#define PASWORDK 0xA4 /* JOB PASSWORD= */ -#define USERK 0xA5 /* JOB USER= */ -#define PRFMJK 0xA6 /* JOB PERFORM= */ -#define ADRSPJK 0xA7 /* JOB ADDRSPC= */ -#define NOTIFYJK 0xA8 /* JOB NOTIFY= */ -#define TIMEJK 0xA9 /* JOB TIME= */ -#define RESTARJK 0xAA /* JOB RESTART= */ -#define RDJK 0xAB /* JOB RD= */ -#define ROLLJK 0xAC /* JOB ROLL= */ -#define CLASSJK 0xAD /* JOB CLASS= */ -#define REGINJK 0xAE /* JOB REGION= */ -#define CONDJK 0xAF /* JOB COND= */ -#define PRTYJK 0xB0 /* JOB PRTY= */ -#define TYPRUNJK 0xB1 /* JOB TYPRUN= */ -#define MSGCLAJK 0xB2 /* JOB MSGCLASS= */ -#define MSGLEVJK 0xB3 /* JOB MSGLEVEL= */ -#define JOBK 0xB4 /* JOB JOB */ - -#define INTKEY1 0xF0 /* INTERNAL KEY */ -#define INTKEY2 0xF1 /* INTERNAL KEY */ -#define INTKEY3 0xF2 /* INTERNAL KEY */ -#define INTKEY4 0xF3 /* INTERNAL KEY */ -#define INTKEY5 0xF4 /* INTERNAL KEY */ -#define INTKEY6 0xF5 /* INTERNAL KEY RESERVED */ -#define INTKEY7 0xF6 /* INTERNAL KEY RESERVED */ -#define INTKEY8 0xF7 /* INTERNAL KEY RESERVED */ -#define INTKEY9 0xF8 /* INTERNAL KEY RESERVED */ -#define INTKEYA 0xF9 /* INTERNAL KEY RESERVED */ -#define INTKEYB 0xFA /* INTERNAL KEY RESERVED */ -#define INTKEYC 0xFB /* INTERNAL KEY RESERVED */ - -#define ENDK 0xFE /* NONE END KEY */ -#define ENDIND 0xFF /* NONE END OF MODULE INDICATOR */ - - -#endif diff --git a/src/crent370/include/iezjscb.h b/src/crent370/include/iezjscb.h deleted file mode 100644 index cc90d01..0000000 --- a/src/crent370/include/iezjscb.h +++ /dev/null @@ -1,235 +0,0 @@ -#ifndef IEZJSCB_H -#define IEZJSCB_H - -typedef struct iezjscb IEZJSCB; -typedef struct iezjscb JSCB; - -/* **************************************************************** */ -/* */ -/* ***** JOB/STEP CONTROL BLOCK ***** */ -/* */ -/* OS/VS2 SU64, 04/13/78, LEVEL=1 */ -/* PTF FOR APAR OZ95568 @ZA95568*/ -/* */ -/* METHOD OF ACCESS */ -/* PL/S - %INCLUDE SYSLIB(IKJTCB) TO DEFINE TCBJSCB */ -/* BAL - L REG,TCBJSCB */ -/* USING IEZJSCB,REG */ -/* */ -/* WHERE REG IS ANY REGISTER OTHER THAN ZERO GIVES */ -/* ADDRESSABILITY FOR ALL SYMBOLS. */ -/* */ -/* NOTE */ -/* IN ADDITION TO THE MANDATORY USE OF THIS MACRO FOR */ -/* REFERENCES TO THE JSCB, MODULES IN 0S/VS1 AND OS/VS2 WHICH */ -/* ALLOCATE AND/OR FREE THE JSCB ARE REQUIRED TO USE THE */ -/* GETJSCB AND FREEJSCB MACROS. */ -/* */ -/* FUNCTION */ -/* COMMUNICATION OF JOB OR STEP RELATED DATA ITEMS */ -/* */ -/* CHANGE ACTIVITY - */ -/* CODES: OZ95568 @ZA95568*/ -/* */ -/* **************************************************************** */ -/* JSCRIUCP - ADDRESS OF THE DYNAMIC ALLOCATION @ZA95568*/ -/* COMMUNICATION TABLE. @ZA95568*/ - -/* - L R2,PSATOLD-PSA OUR TCB ADDRESS 00281000 - L R2,TCBJSCB-TCB(,R2) JSCB ADDRESS 00282000 - USING IEZJSCB,R2 00283000 - L R2,JSCBACT ACTIVE JSCB ADDRESS 00284000 -*/ - -struct iezjscb { /* 00 IEZJSCB DSECT */ - /* ORG IEZJSCB+188 - ALLOWS ADDRESSABILITY FROM TCBJSCB */ - unsigned char __1[188]; /* 00 */ -/********************************************************************** -* * -* SECTION 1 DATA ITEMS USED IN OS/VS1 AND OS/VS2 * -* * -**********************************************************************/ -#define JSCBSEC1 188 /* EQU * - START OF JSCB SECTION 1 */ - unsigned JSCRSV01; /* BC RESERVED */ - void *JSCHPCE; /* C0 ADDRESS OF OPTIONAL JOB ENTRY SUBSYSTEM - (JES) PROCESSOR CONTROL ELEMENT */ - void *JSCBSHR; /* C4 ADDRESS OF ASSEMBLY CHAIN (VSAM) */ - void *JSCBTCP; /* C8 ADDRESS OF TIOT CHAINING ELEMENT CHAIN - (VSAM) */ - void *JSCBPCC; /* CC ADDRESS OF PRIVATE CATALOG CONTROL BLOCK - CHAIN (VSAM) */ - void *JSCBTCBP; /* D0 ADDRESS OF INITIATOR'S TCB (VSAM) */ - void *JSCBIJSC; /* D4 ADDRESS OF JSCB OF THE INITIATOR THAT - ATTACHED THIS JOB STEP (OS/VS1) */ - void *JSCBDBTB; /* D8 ADDRESS OF THE DEB TABLE FOR THIS JOB - STEP (OS/VS1) */ - unsigned char JSCBID[4]; /* DC JOB SERIAL NUMBER */ - void *JSCBDCB; /* E0 ADDRESS OF DCB FOR DATA SET CONTAINING - SCHEDULER TABLES FOR THIS JOB */ - unsigned char JSCBSTEP; /* E4 CURRENT STEP NUMBER. THE FIRST STEP IS - NUMBER 1. */ - unsigned char JSCRSV03[3]; /* E5 RESERVED */ - unsigned JSCBSECB; /* E8 ECB FOR COMMUNICATION BETWEEN MAIN - STORAGE SUPERVISOR AND THE INITIATOR */ - unsigned char JSCBOPTS; /* EC OPTION SWITCHES */ -#define JSCRSV04 0x80 /* ... RESERVED */ -#define JSCRSV05 0x40 /* ... RESERVED */ -#define JSCBLONG 0x20 /* ... THE PARTITION CANNOT BE REDEFINED BECAUSE - THE JOB OCCUPYING IT IS DEFINED AS LONG - RUNNING (OS/VS1) */ -#define JSCRSV06 0x10 /* ... RESERVED */ -#define JSCRSV07 0x08 /* ... RESERVED */ -#define JSCRSV08 0x04 /* ... RESERVED */ -#define JSCSIOTS 0x02 /* ... CHECKPOINT MUST SCAN SIOT */ -#define JSCBAUTH 0x01 /* ... THE STEP REPRESENTED BY THIS JSCB IS - AUTHORIZED TO ISSUE THE MODESET MACRO - INSTRUCTION */ - unsigned char JSCRSV10[3]; /* ED RESERVED */ - unsigned char JSCBTTTR[3]; /* F0 JOB QUEUE ADDRESS (TTR) OF TIOT - EXTENSION (OS/VS2) */ - unsigned char JSCBSWT1; /* F3 STATUS SWITCHES (OS/VS2) */ -#define JSCBPASS 0x80 /* ... WHEN THIS BIT IS SET TO ONE AND A - CORRESPONDING BIT IN THE DCB IS SET TO - ONE, OPEN WILL BYPASS PASSWORD - PROTECTION FOR THE DATA SET BEING OPENED - (OS/VS2) */ -#define JSCRSV11 0x40 /* ... RESERVED */ -#define JSCRSV12 0x20 /* ... RESERVED */ -#define JSCRSV13 0x10 /* ... RESERVED */ -#define JSCRSV14 0x08 /* ... RESERVED */ -#define JSCRSV15 0x04 /* ... RESERVED */ -#define JSCRSV16 0x02 /* ... RESERVED */ -#define JSCBPMSG 0x01 /* ... A MESSAGE HAS BEEN ISSUED BECAUSE THE - DUMP DATA SET WAS NOT SUCCESSFULLY - OPENED. PREVENTS USE OF MULTIPLE SMB'S - FOR MULTIPLE OPEN FAILURES IN JOB STEP. - (OS/VS2) */ - void *JSCBQMPI; /* F4 ADDRESS OF THE QUEUE MANAGER PARAMETER - AREA (QMPA) FOR THE JOB'S INPUT QUEUE - TABLE ENTRIES (OS/VS2) */ - unsigned __2; /* F8 RESERVED (WAS JSCBQMPO) */ - /* JSCBWTP DS 0CL4 - WRITE-TO-PROGRAMMER (WTP) DATA */ - unsigned char JSCBWTFG; /* FC FLAGS USED BY WTP SUPPORT */ -#define JSCBIOFG 0x80 /* ... THE PREVIOUS WTP I/O OPERATION HAD AN - I/O ERROR */ -#define JSCBRET 0x40 /* ... TEXT BREAKING INDICATOR, ADDITIONAL - MESSAGE TEXT SCANNING REQUIRED - (OS/VS1) */ -#define JSCRSV18 0x20 /* ... RESERVED */ -#define JSCRSV19 0x10 /* ... RESERVED */ -#define JSCRSV20 0x08 /* ... RESERVED */ -#define JSCRSV21 0x04 /* ... RESERVED */ -#define JSCRSV22 0x02 /* ... RESERVED */ -#define JSCRSV23 0x01 /* ... RESERVED */ - unsigned char JSCBWTSP; /* FD NUMBER OF THE LAST JOB STEP TO ISSUE WTP */ - unsigned short JSCBPMG; /* FE NUMBER OF WTP OPERATIONS ISSUED FOR THE - STEP IDENTIFIED BY JSCBWTSP */ - void *JSCBCSCB; /* 100 ADDRESS OF COMMAND SCHEDULING CONTROL - BLOCK (CSCB) USED TO PROCESS COMMANDS - RECEIVED FOR THIS JOB STEP */ -#define JSCBS1LN 72 /* 104 EQU (*-JSCBSEC1) - LENGTH OF SECTION 1 */ - -/********************************************************************** -* * -* SECTION 2 DATA ITEMS USED ONLY IN OS/VS1 * -* * -**********************************************************************/ -#define JSCBSEC2 260 /* 104 EQU * - START OF JSCB SECTION 2 */ -/* CURRENTLY NO OS/VS1 ONLY DATA ITEMS */ -#define JSCBS2LN 0 /* 104 EQU (*-JSCBSEC2) - LENGTH OF SECTION 2 */ - -/********************************************************************** -* * -* SECTION 3 DATA ITEMS USED ONLY IN OS/VS2 * -* * -**********************************************************************/ - /* ORG JSCBSEC2 - */ -#define JSCBSEC3 JSCBSEC2 /* 104 EQU * - START OF JSCB SECTION 3 */ - unsigned JSCBJCT; /* 104 TTR OF JOB'S JCT */ - void *JSCBPSCB; /* 108 ADDRESS OF TSO PROTECTED STEP CONTROL - BLOCK */ - unsigned short JSCBASID; /* 10C ADDRESS SPACE IDENTIFIER (MDC028) */ -#define JSCBTJID JSCBASID /* 10C TSO TERMINAL JOB IDENTIFIER */ - unsigned char JSCBFBYT; /* 10E FLAG BYTE (MDC300) */ -#define JSCBRV01 0x80 /* ... RESERVED */ -#define JSCBADSP 0x40 /* ... AUTOMATIC DATA SET PROTECTION FOR THIS - USER (MDC302) */ -#define JSCBRV02 0x20 /* ... RESERVED */ -#define JSCBRV03 0x10 /* ... RESERVED */ -#define JSCBRV04 0x08 /* ... RESERVED */ -#define JSCBRV05 0x04 /* ... RESERVED */ -#define JSCBRV06 0x02 /* ... RESERVED */ -#define JSCBRV07 0x01 /* ... RESERVED */ - - unsigned char JSCBRV08; /* 10F RESERVED */ - unsigned JSCBIECB; /* 110 ECB USED FOR COMMUNICATION BETWEEN - DYNAMIC ALLOCATION AND THE INITIATOR - IN ORDER TO PERFORM DATA SET INTEGRITY */ - unsigned char JSCBJRBA[8]; /* 114 JOB JOURNAL RELATIVE BYTE ADDRESS (RBA) */ - unsigned __3; /* 11C RESERVED (WAS JSCBSWAB) */ - union { - void *JSCBJNL; /* 120 INITIATOR JSCB ONLY - ADDRESS OF JSCB - FOR STEP BEING INITIATED. OTHERWISE, - ZERO */ - struct { - char JSCBJJSB; /* 120 JOB JOURNAL STATUS INDICATORS */ -#define JSCBJNLN 0x80 /* ... NOTHING SHOULD BE WRITTEN IN - JOURNAL */ -#define JSCBJNLF 0x40 /* ... NO JOB JOURNAL */ -#define JSCBJNLE 0x20 /* ... ERROR IN JOURNAL, DO NOT WRITE */ -/* EQU X'10' - RESERVED (WAS JSCBJSBJ) MDC001 */ -#define JSCBJSBI 0x08 /* ... JOB HAS NOT ENTERED ALLOCATION FOR THE - FIRST TIME */ -#define JSCBJSBA 0x04 /* ... JOB HAS ENTERED ALLOCATION */ -#define JSCBJSBX 0x02 /* ... JOB HAS COMPLETED ALLOCATION */ -#define JSCBJSBT 0x01 /* ... JOB HAS ENTERED TERMINATION */ - - char JSCBJNLA[3]; /* 121 INITIATOR JSCB ONLY - ADDRESS OF JSCB - FOR STEP BEING INITIATED. OTHERWISE, - ZERO */ - }; - }; - void *JSCBJNLR; /* 124 POINTER TO JOB JOURNAL RPL */ - void *JSCBSMLR; /* 128 ADDRESS OF SYSTEM MESSAGE DATA - SET RPL */ - void *JSCBSUB; /* 12C ADDRESS OF JES-SUBTL FOR THIS JOB - STEP */ - unsigned short JSCBSONO; /* 130 THE NUMBER OF SYSOUT DATA SETS PLUS - ONE */ - unsigned short JSCRSV28; /* 132 RESERVED */ - unsigned char JSCBFRBA[8]; /* 134 RELATIVE BYTE ADDRESS (RBA) OF THE FIRST - JOURNAL BLOCK (MDC032) */ - void *JSCBSSIB; /* 13C ADDRESS OF THE SUBSYSTEM IDENTIFICATION - BLOCK */ - void *JSCDSABQ; /* 140 ADDRESS OF QDB FOR DSAB CHAIN */ - void *JSCRSV54; /* 144 RESERVED */ - unsigned JSCSCT; /* 148 TTR OF SCT */ - void *JSCTMCOR; /* 14C ADDRESS OF TIOT MAIN STORAGE MANAGEMENT - AREA */ - void *JSCBVATA; /* 150 ADDRESS OF VAT USED DURING SYSTEM RESTART - OR AUTOMATIC RESTART */ - unsigned short JSCDDNNO; /* 154 COUNTER USED BY DYNAMIC ALLOCATION TO - GENERATE DD NAMES */ - unsigned short JSCRSV53; /* 156 RESERVED */ - unsigned short JSCDDNUM; /* 158 NUMBER OF DD ENTRIES CURRENTLY ALLOCATED - INCLUDING IN USE AND NOT IN USE ENTRIES */ - unsigned char JSCRSV33; /* 15A RESERVED */ - unsigned char JSCBSWSP; /* 15B SWA SUBPOOL */ - void *JSCBACT; /* 15C POINTER TO ACTIVE JSCB */ - void *JSCBUFPT; /* 160 ADDRESS OF ALLOCATION/UNALLOCATION - WRITE-TO-PROGRAMMER BUFFER */ - void *JSCBASWA; /* 164 POINTER TO THE LAST ALLOCATION ESTAE WORK - AREA (MDC303) */ - unsigned char JSCBPGMN[8]; /* 168 JOB STEP PROGRAM NAME (MDC304) */ - void *JSCRIUCP; /* 170 ADDRESS OF DYNAMIC ALLOCATION - COMMUNICATION TABLE */ - unsigned char JSCRSV48; /* 174 RESERVED */ - unsigned char JSCRSV49; /* 175 RESERVED */ - unsigned char JSCRSV50; /* 176 RESERVED */ - unsigned char JSCRSV51; /* 177 RESERVED */ - void *JSCRSV52; /* 178 RESERVED */ -#define JSCBS3LN 120 /* EQU (*-JSCBSEC3) - LENGTH OF SECTION 3 */ -}; /* 17C (380 bytes) */ - -#endif diff --git a/src/crent370/include/ihaasvt.h b/src/crent370/include/ihaasvt.h deleted file mode 100644 index 95bbbb1..0000000 --- a/src/crent370/include/ihaasvt.h +++ /dev/null @@ -1,46 +0,0 @@ -#ifndef IHAASVT_H -#define IHAASVT_H - -typedef struct asvt ASVT; - -/********************************************************************/ -/* */ -/* ADDRESS SPACE VECTOR TABLE */ -/* */ -/* OS/VS2 RELEASE 4, 04/22/75, LEVEL=1 */ -/* */ -/* METHOD OF ACCESS */ -/* BAL - DSECT IS PRODUCED UNLESS DSECT=NO IS SPECIFIED. */ -/* USING ON ASVT GIVES ADDRESSABILITY FOR ALL SYMBOLS. */ -/* PL/S - DCL ASVTPTR PTR */ -/* */ -/* Example: */ -/* L R9,CVTPTR CVT ADDRESS */ -/* L R9,CVTASVT-CVTMAP(,R9) ASVT ADDRESS */ -/* L R9,ASVTENTY-ASVT(,R9) FIRST ASCB POINTER */ -/* L R1,0(,R9) ASCB FOR ASID=0001 (MSTR) */ -/* L R1,4(,R9) ASCB FOR ASID=0002 (JES2) */ -/********************************************************************/ -struct asvt { - unsigned char reserved[512]; /* 00 RESERVED FOR FUTURE EXPANSION */ - unsigned char asvtasvt[4]; /* 200 ACRONYM IN EBCDIC "ASVT" */ - unsigned asvtmaxu; /* 204 MAXIMUM NUMBER OF ADDRESS SPACES */ - unsigned asvtrs00; /* 208 RESERVED */ - void *asvtfrst; /* 20C ADDRESS OF FIRST AVAILABLE ASVT */ - /* ENTRY (MDC300) */ -#define ASVTAVAI 0x80 /* BIT ONE IF ASID IS AVAILABLE AND */ - /* ZERO IF ASID IS ASSIGNED */ - void *asvtenty[0]; /* 210 ENTRY FOR EACH POSSIBLE ASID. */ - /* IF ADDRESS SPACE ASSIGNED, ENTRY */ - /* CONTAINS ADDRESS OF ASCB. IF NOT */ - /* ASSIGNED, ENTRY CONTAINS EITHER */ - /* ADDRESS OF NEXT AVAILABLE ASID OR */ - /* ZEROS WITH HIGH-ORDER BIT ON IF */ - /* LAST ENTRY. (MDC301) */ -#define ASVTAVAL 0x80 /* BIT ONE IF ASID IS AVAILABLE AND */ - /* ZERO IF ASID IS ASSIGNED */ -}; /* 214 (532 bytes) */ -#define ASVTLEN sizeof(ASVT) /* 214 (532 bytes) */ -#define ASVTULEN sizeof(ASVT) - 512 /* 14 (20 bytes) */ - -#endif /* IHAASVT_H */ diff --git a/src/crent370/include/ihadva.h b/src/crent370/include/ihadva.h deleted file mode 100644 index 4dca188..0000000 --- a/src/crent370/include/ihadva.h +++ /dev/null @@ -1,92 +0,0 @@ -#ifndef IHADVA_H -#define IHADVA_H - -/********************************************************************/ -/* DEVTYPE PARAMETER AREA */ -/* THIS MACRO MAPS THE PARAMETER AREA RETURNED TO THE CALLER BY */ -/* THE DEVTYPE SVC. */ -/* IN AN ASSEMBLER CALL DSECT=NO MAY BE CODED. */ -/* */ -/* IN A PLS INCLUDE, DVABASE MAY BE DECLARED AS DEF(LABEL) */ -/* TO CAUSE IT TO BE USED IN A STRUCTURE. IF DVABASE IS */ -/* OMITTED THE STRUCTURE IS DECLARED AS BASED. */ -/* */ -/********************************************************************/ - -typedef struct dvatab DVATAB; /* DASD Devices */ -typedef struct dvarps DVARPS; /* RPS section */ -typedef struct dvarea DVAREA; /* Area if no INFOLIST=, DEVTAB or RPS */ - -/* Area if no INFOLIST=, DEVTAB or RPS */ -struct dvarea { - union { - unsigned dvaucbty; /* 00 UCBTYPE field */ - struct { - unsigned char dvaopt[2]; /* 00 UCB options */ - unsigned char dvaclass; /* 02 Device class */ - unsigned char dvaunit; /* 03 Uint type */ - }; - }; - unsigned dvamaxrc; /* 04 Maximum record size */ -}; -#define DVADEVLG sizeof(DVAREA) /* 08 (8) bytes */ - -struct dvarps { - unsigned short dvaovr0; /* 00 Overhead bytes for record 0 */ - unsigned char dvasect; /* 02 Number of sectors in full track*/ - unsigned char dvasectd; /* 03 Number of data sectors */ -}; -#define DVARPSLG sizeof(DVARPS) /* 04 (4) bytes */ - -/***********************************************************************/ -/* DEVTAB SECTION FOR DASD DEVICES */ -/***********************************************************************/ -struct dvatab { - union { - unsigned dvaucbty; /* 00 UCBTYPE field */ - struct { - unsigned char dvaopt[2]; /* 00 UCB options */ - unsigned char dvaclass; /* 02 Device class */ - unsigned char dvaunit; /* 03 Uint type */ - }; - }; - unsigned dvamaxrc; /* 04 Maximum record size */ - /* - - e n d o f d v a r e a - - */ - unsigned short dvacyl; /* 08 Phys no of CYL per volume */ - unsigned short dvatrk; /* 0A Number of tracks per cylinder */ - unsigned short dvatrkln; /* 0C Number of bytes per track */ - union { - unsigned short dvaovhd; /* 0E Block overhead if dva2bov=1 */ - struct { - unsigned char dvaovnlb; /* 0E Overhead not last block */ - unsigned char dvaovlb; /* 0F Overhead last block */ - }; - }; - - unsigned char dvaovnk; /* 10 Overhead decrement not keyed */ - unsigned char dvaflags; /* 11 flags */ -#define DVABDCYL 0x80 /* ... IF 1, DVACYL IS INVALID */ -#define DVA2BOV 0x08 /* ... IF 1, USE DVAOVHD */ - /* ... IF 0, USE DVAOVNLB,DVAOVLB */ -#define DVAFTOL 0x01 /* ... IF 1, APPLY TOLERANCE FACTOR */ - unsigned short dvatol; /* 12 Tolerance factor */ - /*************************************/ - /* APPLY TOLERANCE FACTOR AS FOLLOWS:*/ - /* 1. ADD BLOCKSIZE AND KEYLENGTH */ - /* 2. MULTIPLY BY DVATOL */ - /* 3. SHIFT RIGHT DVASHFT BITS */ - /* 4. ADD APPROPRIATE OVERHEADS */ - /*************************************/ -#define DVASHFT 9 /* shift amount to devide by 512 */ -#define DVAENTLG 0x14 /* 14 (20) bytes */ - -/**********************************************************************/ -/* THE FOLLOWING SECTION OF THE TABLE IS PRESENT */ -/* ONLY FOR RPS DEVICES--TEST UCBTBYT2 FOR UCB2OPT3 */ -/**********************************************************************/ - unsigned short dvaovr0; /* 14 Overhead bytes for record 0 */ - unsigned char dvasect; /* 16 Number of sectors in full track*/ - unsigned char dvasectd; /* 17 Number of data sectors */ -}; - -#endif /* IHADVA_H */ diff --git a/src/crent370/include/ihalpde.h b/src/crent370/include/ihalpde.h deleted file mode 100644 index c9b884b..0000000 --- a/src/crent370/include/ihalpde.h +++ /dev/null @@ -1,46 +0,0 @@ -#ifndef IHALPDE_H -#define IHALPDE_H - -typedef struct lpde LPDE; /* pointed to by CVTLPDIR */ - -struct lpde { -/*********************************************************************** -/* LINK PACK DIRECTORY ENTRY * -/* * -/* AOS/2 REL 2, 04/07/72, LEVEL=3 * -/**********************************************************************/ - LPDE *lpdechn; /* 00 ADDRESS OF NEXT LPDE IN CHAIN OF LPDE SYNONYMS */ - unsigned lpderbp; /* 04 RESERVED */ - char lpdename[8]; /* 08 EITHER MODULE NAME OR ALIAS NAME */ - void *lpdentp; /* 10 RELOCATED ENTRY POINT ADDRESS */ - unsigned lpdexlp; /* 14 RESERVED */ - unsigned short lpdeuse; /* 18 COUNT FIELD - COUNT EQUALS ONE */ - unsigned short lpderes1; /* 1A RESERVED FOR FUTURE USE */ - unsigned char lpdeattr; /* 1C ATTRIBUTE FLAGS */ -#define LPDENIP 0x80 /* ... MODULE LOADED BY NIP */ -#define LPDEREN 0x20 /* ... MODULE IS REENTERABLE */ -#define LPDESER 0x10 /* ... MODULE IS SERIALLY REUSABLE */ -#define LPDEMIN 0x04 /* ... THIS IS A MINOR LPDE */ -#define LPDENLR 0x01 /* ... NOT LOADABLE ONLY */ - unsigned char lpdeatt2; /* 1D SECOND ATTRIBUTE FLAG BYTE */ -#define LPDEXLE 0x20 /* ... EXTENT LIST BUILT - MAIN STORAGE */ - /* OCCUPIED BY MODULE IS DESCRIBED THEREIN */ -#define LPDERLC 0x10 /* ... LPDE CONTAINS A RELOCATED ALIAS ENTRY */ - /* POINT ADDRESS */ -#define LPDESYSL 0x02 /* ... AUTHORIZED LIBRARY MODULE */ -#define LPDEAUTH 0x01 /* ... PROGRAM AUTHORIZATION FLAG */ - unsigned short lpdeatt3; /* 1E RESERVED */ - union { - char lpdemjnm[8]; /* 20 MAJOR LPDE ENTRY POINT NAME WHEN */ - /* LPDEMIN=1 OR 8-BYTE EXTENT LIST IF */ - /* LPDEMIN=0 */ - struct { - unsigned lpdextln; /* 20 LENGTH OF MAIN STORAGE BLOCK IN WHICH */ - /* MODULE RESIDES */ - void *lpdextad; /* 24 ADDRESS OF MAIN STORAGE BLOCK IN WHICH */ - /* MODULE RESIDES */ - } __attribute__((packed)); - }; -} __attribute__((packed)); - -#endif /* IHALPDE_H */ diff --git a/src/crent370/include/iharb.h b/src/crent370/include/iharb.h deleted file mode 100644 index eb6a721..0000000 --- a/src/crent370/include/iharb.h +++ /dev/null @@ -1,312 +0,0 @@ -#ifndef IHARB_H -#define IHARB_H - -typedef struct rbprfx RBPRFX; -typedef struct rbbasic RBBASIC; - -/* **************************************************************** */ -/* OS/VS REQUEST BLOCKS */ -/* */ -/* OS/VS2 SU64, 05/12/78, LEVEL=2 */ -/* */ -/* **************************************************************** */ - -struct rbbasic { - union { - char rbexrtnm[8]; /* 00 EIGHT-CHARACTER NAME OF ERROR EXIT */ - /* ROUTINE (SIRB) */ - struct { - char rbtmfld; /* 00 INDICATORS FOR TIMER ROUTINES. WHEN */ - /* THERE ARE NO TIMER ROUTINES, THIS FIELD */ - /* IS ZERO. (IRB) */ -#define RBTMQUE 0x80 /* ... TIMER ELEMENT NOT ON QUEUE */ -#define RBTMTOD 0x40 /* ... LOCAL TIME-OF-DAY OPTION IS USED */ -#define RBWLIM 0x10 /* ... WAIT LIMIT EXCEEDED */ -#define RBTMCMP 0x08 /* ... INTERVAL HAS EXPIRED */ -#define RBTMIND2 0x04 /* ... EXIT SPECIFIED WITH TASK OR REAL REQUEST */ -#define RBTMIND3 0x03 /* ... TYPE OF REQUEST */ -#define RBTREQ 0x00 /* ... TASK REQUEST */ -#define RBWREQ 0x01 /* ... WAIT REQUEST */ -#define RBRREQ 0x03 /* ... REAL REQUEST */ - char rbppsav1[3]; /* 01 ADDRESS OF PROBLEM PROGRAM REGISTER SAVE */ - /* AREA (IRB) */ - char rbabopsw[4]; /* 04 AFTER EXECUTION OF TRANSIENT AREA HANDLER */ - /* ROUTINE - FOUR LOW-ORDER BYTES OF NAME OF */ - /* REQUESTED ROUTINE (SVRB-TRANS) */ - }; - }; - - unsigned short rbsize; /* 08 SIZE OF THIS RB IN DOUBLEWORDS (ALL RB'S) */ - unsigned char rbstab[2]; /* 0A STATUS AND ATTRIBUTE BITS (ALL RB'S) */ -#define XSTAB rbstab /* 0A SAME AS RBSTAB */ -#define RBSTAB1 rbstab[0] /* 0A FIRST BYTE OF STATUS AND ATTRIBUTE BITS */ - -#define RBFTP 0xE0 /* ... BIT0+BIT1+BIT2 TYPE OF RB */ -#define RBFTPRB 0x00 /* ... PRB */ -#define RBFTTIRB 0x60 /* ... TIRB */ -#define RBFTIRB 0x40 /* ... IRB */ -#define RBFTSIRB 0x80 /* ... SIRB */ -#define RBFTSVRB 0xC0 /* ... SVRB */ - -#define RBTRSVRB 0x10 /* ... IF RBTRSVRB=0 AND RBCDE=0, THEN TYPE 2 */ - /* SVC IN NUCLEUS. IF RBTRSVRB=0 AND */ - /* RBCDE1 NOT 0, THEN SECOND OR SUBSEQUENT */ - /* LOAD OF TYPE 4 SVC IN FIXED OR MODIFIED */ - /* LPA (RBCDE1 = ADDRESS OF CDE). IF */ - /* RBTRSVRB=1 AND RBCDE1=0, THEN TYPE 3 OR */ - /* FIRST LOAD OF TYPE 4 SVC IN PAGED, FIXED */ - /* OR MODIFIED LPA. IF RBTRSVRB=1 AND */ - /* RBCDE1 NOT 0, THEN SECOND OR SUBSEQUENT */ - /* LOAD OF TYPE 4 SVC IN PAGED LPA (RBCDE1 */ - /* = ADDRESS OF LPDE). */ -#define RBFNSVRB 0x10 /* ... ALIAS FOR RBTRSVRB */ -#define RBWAITP 0x08 /* ... INDICATES THAT AN ECB IS POINTING AT THE */ - /* RB. */ -#define RBATNXIT 0x02 /* ... THIS IRB IS AN ATTENTION IRB */ -#define RBPMSVRB 0x01 /* ... THIS IS A PROGRAM MANAGER SVRB - VALID */ - /* ONLY ON LINK, LOAD, XCTL OR ATTACH */ - -#define XSTAB1 rbstab[0] /* ... SAME AS RBSTAB1 */ - /* BITS 0-4 ARE SYSTEM-DEPENDENT BITS */ -#define RBFTCKPT 0x04 /* ... A CHECKPOINT MAY BE TAKEN IN A USER EXIT */ - /* FROM THIS SVC ROUTINE (SVRB-BOTH) */ -#define XRBCKPT 0x04 /* ... SAME AS RBFTCKPT */ - /* BITS 6-7 ARE SYSTEM-DEPENDENT BITS */ -#define RBSTAB2 rbstab[1] /* 0B SECOND BYTE OF STATUS AND ATTRIBUTE BITS */ -#define XSTAB2 rbstab[1] /* 0B SAME AS RBSTAB2 */ -#define RBATTN 0x20 /* ... EXITING PROGRAM IS AN ATTENTION EXIT */ - /* (IRB) */ -#define RBETXR 0x10 /* ... IRB IS FOR AN ETXR EXIT ROUTINE */ -#define RBUSIQE 0x10 /* ... SAME AS RBETXR */ - -#define RBIQETP 0x0C /* ... BIT4+BIT5 - */ -#define RBRQENR 0x00 /* ... REQUEST QUEUE ELEMENT IS NOT TO BE */ - /* RETURNED */ -#define RBIRBAER 0x04 /* ... IRB HAS QUEUE ELEMENTS FOR ASYNCHRONOUSLY*/ - /* EXECUTED ROUTINES THAT ARE RQE'S */ -#define RBIQENR 0x08 /* ... IQE IS NOT TO BE RETURNED AT EXIT */ -#define RBIRBAIQ 0x0C /* ... IRB HAS QUEUE ELEMENTS FOR ASYNCHRONOUSLY*/ - /* EXECUTED ROUTINES THAT ARE IQE'S */ -#define RBTCBNXT 0x80 /* ... RBLINK FIELD POINTS TO TCB (ALL RB'S) */ -#define XRBTCBP 0x80 /* ... SAME AS RBTCBNXT */ -#define RBFACTV 0x40 /* ... IRB OR SIRB IS QUEUED TO TCB - PROGRAM IS*/ - /* ACTIVE */ -#define XRBACTV 0x40 /* ... ACTIVE PROGRAM (ALL RB'S EXCEPT LPRB AND */ - /* LRB FOR OS/VS1) */ - /* BITS 2-5 ARE SYSTEM-DEPENDENT BITS */ -#define RBFDYN 0x02 /* ... RB STORAGE CAN BE FREED AT EXIT */ -#define XRBFRRB 0x02 /* ... SAME AS RBFDYN */ -#define RBECBWT 0x01 /* ... IF ZERO, WAIT FOR A SINGLE EVENT OR ALL */ - /* OF A NUMBER OF EVENTS --- */ - /* IF ONE, WAIT FOR A NUMBER OF EVENTS THAT */ - /* IS LESS THAN THE TOTAL NUMBER OF EVENTS */ - /* WAITING */ -#define XRBWAIT 0x01 /* ... SAME AS RBECBWT */ - void *rbep; /* 0C ENTRY POINT ADDRESS OF ASYNCHRONOUSLY */ - /* EXECUTED ROUTINE (IRB, SIRB) */ - unsigned char rbopsw[8]; /* 10 USER'S OLD PSW (ALL RB'S EXCEPT FRB) */ -#define XRBPSW rbopsw /* ... SAME AS RBOPSW */ -#define RBOPSWB1 rbopsw[0] /* 10 OLD PSW BYTE 1 */ -#define RBOPER 0x40 /* ... PER BIT IN RBOPSWB1 */ -#define RBOPSWB2 rbopsw[1] /* 11 OLD PSW BYTE 2 */ -#define RBOPSWPS 0x01 /* ... PROBLEM STATE BIT IN OLD PSW */ - - unsigned unused4; /* 18 SYSTEM-DEPENDENT FIELD */ - union { - unsigned rblink; /* 1C SAME AS RBLINKB BELOW */ - unsigned xrblnk; /* 1C SAME AS RBLINKB BELOW */ - struct { - char rbwcf; /* 1C NUMBER OF REQUESTS WAITING (WAIT COUNT) */ - /* (ALL RB'S FOR OS/VS2) */ - char rblinkb[3]; /* 1D ADDRESS OF PREVIOUS RB, OR ADDRESS OF TCB */ - /* WHEN THIS IS FIRST RB ON THE QUEUE */ - /* (ALL RB'S FOR OS/VS2) */ - }; - struct { - char xrbwt; /* 1C SAME AS RBWCF (ALL RB'S EXCEPT LPRB AND */ - /* LRB FOR OS/VS1) */ - char xrblnkb[3]; /* 1D SAME AS RBLINKB (ALL RB'S EXCEPT LPRB AND */ - /* LRB FOR OS/VS1) */ - }; - }; - - union { - char rbgrsave[64]; /* 20 GENERAL REGISTER SAVE AREA */ - /* (SVRB-BOTH, IRB, TIRB FOR OS/VS2) */ - char xrbreg[64]; /* 20 SAME AS RBGRSAVE */ - /* (IRB, SIRB, SVRB FOR OS/VS1) */ - struct { - unsigned rbgrs0; /* 20 SAVE AREA FOR GENERAL REGISTER 0 */ -#define XRBREG0 rbgrs0 /* ... SAME AS RBGRS0 */ - unsigned rbgrs1; /* 24 SAVE AREA FOR GENERAL REGISTER 1 */ -#define XRBREG1 rbgrs1 /* ... SAME AS RBGRS1 */ - unsigned rbgrs2; /* 28 SAVE AREA FOR GENERAL REGISTER 2 */ -#define XRBREG2 rbgrs2 /* ... SAME AS RBGRS2 */ - unsigned rbgrs3; /* 2C SAVE AREA FOR GENERAL REGISTER 3 */ -#define XRBREG3 rbgrs3 /* ... SAME AS RBGRS3 */ - unsigned rbgrs4; /* 30 SAVE AREA FOR GENERAL REGISTER 4 */ -#define XRBREG4 rbgrs4 /* ... SAME AS RBGRS4 */ - unsigned rbgrs5; /* 34 SAVE AREA FOR GENERAL REGISTER 5 */ -#define XRBREG5 rbgrs5 /* ... SAME AS RBGRS5 */ - unsigned rbgrs6; /* 38 SAVE AREA FOR GENERAL REGISTER 6 */ -#define XRBREG6 rbgrs6 /* ... SAME AS RBGRS6 */ - unsigned rbgrs7; /* 3C SAVE AREA FOR GENERAL REGISTER 7 */ -#define XRBREG7 rbgrs7 /* ... SAME AS RBGRS7 */ - unsigned rbgrs8; /* 40 SAVE AREA FOR GENERAL REGISTER 8 */ -#define XRBREG8 rbgrs8 /* ... SAME AS RBGRS8 */ - unsigned rbgrs9; /* 44 SAVE AREA FOR GENERAL REGISTER 9 */ -#define XRBREG9 rbgrs9 /* ... SAME AS RBGRS9 */ - unsigned rbgrs10; /* 48 SAVE AREA FOR GENERAL REGISTER 10 */ -#define XRBREG10 rbgrs10 /* ... SAME AS RBGRS10 */ - unsigned rbgrs11; /* 4C SAVE AREA FOR GENERAL REGISTER 11 */ -#define XRBREG11 rbgrs11 /* ... SAME AS RBGRS11 */ - unsigned rbgrs12; /* 50 SAVE AREA FOR GENERAL REGISTER 12 */ -#define XRBREG12 rbgrs12 /* ... SAME AS RBGRS12 */ - unsigned rbgrs13; /* 54 SAVE AREA FOR GENERAL REGISTER 13 */ -#define XRBREG13 rbgrs13 /* ... SAME AS RBGRS13 */ - unsigned rbgrs14; /* 58 SAVE AREA FOR GENERAL REGISTER 14 */ -#define XRBREG14 rbgrs14 /* ... SAME AS RBGRS14 */ - unsigned rbgrs15; /* 5C SAVE AREA FOR GENERAL REGISTER 15 */ -#define XRBREG15 rbgrs15 /* ... SAME AS RBGRS15 */ - }; - }; - - /* IRBEND DS 0F - END OF IRB UNLESS OPTIONAL FIELDS */ - - union { - char rbexsave[48]; /* 60 EXTENDED SAVE AREA FOR SVC ROUTINES */ - /* (SVRB-BOTH) (OS/VS2) */ - struct { - void *rbrsv135; /* 60 RESERVED */ - short rbrsv136; /* 64 RESERVED */ - char rbrsv137; /* 66 RESERVED */ - char rbrsv138; /* 67 RESERVED */ - /* PRBEND DS 0F - 68 END OF PRB */ - /* TIRBEND DS 0F - 68 END OF TIRB */ - char rbrsv139[40]; /* 68 LAST 40 BYTES OF RBEXSAVE */ - /* RBSCBB DS 0CL20 - 90 AREA CONTAINING STAE CONTROL BLOCK (SCB) */ - /* (SVRB ONLY) */ - void *rbschain; /* 90 POINTER TO NEXT SCB ON CHAIN */ - void *rbsexit; /* 94 POINTER TO USER WRITTEN EXIT ROUTINE */ - /* RBSPARM DS 0A - 98 ADDRESS OF PARAMETER LIST FOR STA EXIT */ - char rbsflgs1; /* 98 FIRST FLAG BYTE */ -#define RBSSTAI 0x80 /* ... STAI SCB */ -#define RBSSTAR 0x40 /* ... STAR SCB. SCB IF FOR STAE IF NEITHER */ - /* RBSSTAI NOR RBSSTAR BIT IS SET ON. */ -#define RBSDUMMY 0x20 /* ... DUMMY SCB (WILL NOT BE SCHEDULED) */ -#define RBSESTAE 0x10 /* ... ESTAE INDICATOR */ -#define RBRSV162 0x08 /* ... RESERVED */ -#define RBSASYNC 0x04 /* ... ALLOW ASYNCHRONOUS INTERRUPTS */ -#define RBSIOPRC 0x03 /* ... I/O PROCESSING OPTION. BOTH BITS OFF */ - /* MEANS QUIESCE I/O. BOTH BITS ON IS NOT */ - /* DEFINED. */ -#define RBSNOIOP 0x02 /* ... BYPASS I/O INTERVENTION */ -#define RBSHALT 0x01 /* ... HALT I/O */ - char rbsparma[3]; /* 99 ADDRESS OF PARAMETER LIST FOR STA EXIT */ - /* RBSOWNR DS 0A - 9C TCB/RB ADDRESS CONTROLLING THIS SCB */ - char rbsflgs2; /* 9C SECOND FLAG BYTE */ -#define RBRSV163 0x80 /* ... RESERVED */ -#define RBSXCTL2 0x40 /* ... RETAIN THIS SCB ACROSS XCTL */ -#define RBRSV164 0x20 /* ... RESERVED */ -#define RBSINUSE 0x10 /* ... THIS SCB IN USE */ -#define RBRSV165 0x08 /* ... RESERVED */ -#define RBRSV166 0x04 /* ... RESERVED */ -#define RBSKEY0 0x02 /* ... USER IN KEY 0 */ -#define RBSSUPER 0x01 /* ... USER IN SUPERVISOR MODE */ - char rbsownra[3]; /* 9D RB ADDRESS IF STAE/STAR, TCB ADDRESS IF */ - /* STAI (MDC325) */ - /* RBSDATA DS 0F - A0 FLAGS AND DATA FIELD */ - char rbsflg3; /* A0 OPTION FLAGS */ -#define RBRSV167 0x80 /* ... RESERVED */ -#define RBSTERMI 0x40 /* ... AUTHORIZED FOR TERM PROCESSING */ -#define RBSRECRD 0x20 /* ... ERROR RECORD TO BE WRITTEN TO SYS1.LOGREC*/ -#define RBSCNCEL 0x10 /* ... SCB IS LOGICALLY CANCELED */ -#define RBSPRNTR 0x08 /* ... SCB IS PREVIOUSLY ENTERED */ -#define RBSBRNTR 0x04 /* ... BRANCH ENTERED SVC 60 */ -#define RBSTERMO 0x02 /* ... TERM PROCESSING ONLY */ -#define RBRSV168 0x01 /* ... RESERVED */ - char rbspkey; /* A1 PROGRAM KEY */ - char rbsid; /* A2 SCB IDENTIFIER */ - char rbrsv169; /* A3 RESERVED */ - short rbrsv148; /* A4 RESERVED */ - char rbrsv149; /* A6 RESERVED */ - char rbrsv150; /* A7 RESERVED */ - /* SIRBEND DS 0F - A8 END OF SIRB */ - unsigned rbfeparm[6]; /* A8 PARAMETER AREA FOR ROUTINES THAT USE */ - /* FESTAE AND DEFAULT TO USE THIS AREA */ - /* (I.E., DO NOT CODE PARAM=) */ - /* SVRBEND DS 0F - C0 END OF SVRB (BOTH) */ - }; - char xrbesa[80]; /* 60 SVRB - EXTENDED SAVE AREA OF UP TO TEN */ - /* DOUBLEWORDS REQUESTED FOR SVC ROUTINE */ - /* (OS/VS1) */ - }; -}; /* C0 (176 bytes) */ - -struct rbprfx { - unsigned reserved1[10]; /* 00 PREFIX IS SYSTEM DEPENDENT */ - union { - char rbrtopsw[16]; /* 28 PROGRAM STATUS INFORMATION STORED AT */ - /* TIME OF INTERRUPT CAUSING ENTRY INTO THE */ - /* RTM */ - struct { - char rbrtpsw1[8]; /* 28 FIRST DOUBLE WORD OF PSW - SYSTEM AND */ - /* PROGRAM MASKS, KEY CONDITION CODE AND */ - /* INSTRUCTION COUNTER */ - char rbrtpsw2[8]; /* 30 SECOND DOUBLE WORD OF PSW */ -#define RBRSV160 rbrtpsw2[0] /* 30 RESERVED - SET TO ZERO IN LOW CORE BY */ - /* HARDWARE */ -#define RBRTILC rbrtpsw2[1] /* 31 INSTRUCTION LENGTH COUNTER - NUMBER OF */ - /* BYTES IN INSTRUCTION CAUSING INTERRUPT */ -#define RBRTINCD rbrtpsw2[2] /* 32 DS H - INTERRUPT CODE */ -#define RBRTRAN rbrtpsw2[4] /* 34 DS A - VIRTUAL ADDRESS CAUSING TRANSLATION*/ - /* EXCEPTION IF PROGRAM INTERRUPT 16, 17 OR */ - /* 18. OTHERWISE, NOT USED. */ - }; - }; - - unsigned char rbflags1; /* 38 FLAG BYTE */ -#define RBSLOCK 0x80 /* ... INDICATES THAT THIS RB IS */ - /* NON-DISPATCHABLE UNTIL THE SUPERVISOR */ - /* LOCK (CVTSYLK) IS RESET (ALL RB'S) */ -#define RBXWAIT 0x40 /* ... INDICATES THAT THE PROGRAM OPERATING */ - /* UNDER THIS RB HAS ISSUED AN EXPLICIT */ - /* (SVC) WAIT (ALL RB'S) */ -#define RBABEND 0x20 /* ... ABEND SVRB (SVRB-BOTH) */ -#define RBRSV159 0x10 /* ... RESERVED */ -#define RBASIR 0x08 /* ... ASIR IS RUNNING UNDER THIS RB */ -#define RBLONGWT 0x04 /* ... LONG WAIT ISSUED UNDER THIS RB */ -#define RBSCB 0x02 /* ... SET BY SVC 60 TO INDICATE RB HAS AN */ - /* ASSOCIATED ESTAE OR STAE EXIT */ -#define RBSSSYN 0x01 /* ... SYNCHRONIZED STATUS STOP PENDING FOR */ - /* THIS RB */ - - unsigned char rbrsv004[3]; /* 39 RESERVED */ - - unsigned char rbwcsa; /* 3C NUMBER OF REQUESTS WAITING AT TIME OF */ - /* TERMINATION (WAIT COUNT SAVE AREA) */ - /* (ALL RB'S) */ - /* RBINTCDA DS 0CL3 - INTERRUPT CODE (ALL RB'S) */ - unsigned char rbinlnth; /* 3D INSTRUCTION LENGTH CODE - 4 HIGH-ORDER */ - /* BITS MUST BE ZERO (ALL RB'S) */ - unsigned short rbintcod; /* 3E INTERRUPT CODE (ALL RB'S) */ - - RBBASIC rbbasic[0]; /* 40 START OF BASIC SECTION OF RB */ -#define RBSECT rbbasic /* 40 RBSECPTR - THIS IS THE START OF THE */ - /* BASIC SECTION OF THE RB */ -}; - -#define SIRBWALN 64 /* LENGTH OF RBSIRBWA */ -#define RBPRFXLN 0x40 /* TOTAL PREFIX LENGTH INCLUDING */ - /* AREA RESERVED FOR FUTURE EXPANSION */ -#define RBPRFLNA 0x20 /* ASSIGNED PREFIX LENGTH */ - -#define PRBLEN 0x88 /* REAL PRB LENGTH FOR GETMAIN */ -#define SIRBLEN 0xC8 /* REAL SIRB LENGTH FOR GETMAIN */ -#define TIRBLEN 0x88 /* REAL TIRB LENGTH FOR GETMAIN */ -#define IRBLEN 0x80 /* REAL IRB LENGTH FOR GETMAIN UNLESS */ - /* OPTIONAL FIELDS ARE ALSO PRESENT */ -#define SVRBLEN 0xE0 /* REAL SVRB LENGTH FOR GETMAIN */ - - -#endif /* IHARB_H */ diff --git a/src/crent370/include/ihascvt.h b/src/crent370/include/ihascvt.h deleted file mode 100644 index cc9eaeb..0000000 --- a/src/crent370/include/ihascvt.h +++ /dev/null @@ -1,115 +0,0 @@ - -#ifndef IHASCVT_H -#define IHASCVT_H - -typedef struct scvtsect SCVTSECT; /* cvt->cvtabend points here */ -typedef struct scvtsect SCVT; /* cvt->cvtabend points here */ -typedef struct svcentry SVCENTRY; /* a SVCTABLE entry */ -typedef struct svctable SVCTABLE; /* scvt->scvtsvct points here */ - -/* */ -/* OS/VS2 RELEASE 3, 05/22/74, LEVEL=1 */ -/* */ -/* METHOD OF ACCESS */ -/* BAL - DSECT IS PRODUCED UNLESS DSECT=NO IS SPECIFIED. */ -/* USING ON SCVTSECT GIVES ADDRESSABILITY FOR ALL */ -/* SYMBOLS. */ -/* PL/S - DCL SCVTSPTR PTR */ -/* */ -/* F.E.'S */ -/* MICROFICHE LISTING - IHASCVT */ -/* */ -/* DEVELOPERS */ -/* BAL LISTING - SPECIFY LIST=YES ON MACRO CALL */ -/* */ -/* FOR INTEGRATION, A LISTING MUST NOT BE REQUESTED UNLESS */ -/* YOUR MODULE CREATES THE CSECT. */ - -struct scvtsect { - void *scvtpgtm; /* 00 ADDR OF EOT TIMER PURGE ROUTINE */ - void *scvtpgwr; /* 04 ADDRESS OF WTO/WTOR RESOURCE */ - /* MANAGER. INITIALLY CONTAINS ADDRESS */ - /* OF BR 14. CHANGED TO IEECVPRG */ - /* (MODULE IEAVMED2) BY COMMUNICATIONS */ - /* TASK INITIALIZATION (IEAVVINT). */ - void *scvtspet; /* 08 ADDR OF EOT SUBPOOL RELEASE */ - unsigned char scvtbr14[2]; /* 0C BR 14 RETURN TO CALLER */ - unsigned char reserved1[2]; /* 0E RESERVED */ - void *scvteras; /* 10 ** SCVTERAS FIELD UNUSED IN OS/VS2 ** */ - void *scvtqcbo; /* 14 ** SCVTQCBO FIELD UNUSED IN OS/VS2 ** */ - void *scvtpgeq; /* 18 ** SCVTPGEQ FIELD UNUSED IN OS/VS2 ** */ - void *scvtrmbr; /* 1C ADDR OF REGMAIN BRANCH ENTRY */ - void *scvtpgio; /* 20 ** SCVTPGIO FIELD UNUSED IN OS/VS2 ** */ - void *scvtrace; /* 24 ADDR OF POINTER TO TRACE ROUTINE */ - void *scvttasw; /* 28 ** SCVTTASW FIELD UNUSED IN OS/VS2 ** */ - void *scvtcdcl; /* 2C ADDR OF CDCONTROL IN LINK */ - void *scvtlfrm; /* 30 LIST FORMAT FREEMAIN BRANCH ENT PT */ - void *scvtpabl; /* 34 ** SCVTPABL FIELD UNUSED IN OS/VS2 ** */ - void *scvtdqtc; /* 38 ** SCVTDQTC FIELD UNUSED IN OS/VS2 ** */ - void *scvthskp; /* 3C ADDR OF CDHKEEP IN EOT */ - void *scvtrptr; /* 40 ADDR OF TRACE TABLE POINTERS */ - void *scvtgmbr; /* 44 LIST FORMAT GETMAIN BRANCH ENTRY PT */ - void *scvtauct; /* 48 ** SCVTAUCT FIELD UNUSED IN VS2 ** */ - void *scvtroct; /* 4C ** SCVTROCT FIELD UNUSED IN VS2 ** */ - void *scvtroq; /* 50 ** SCVTROQ FIELD UNUSED IN VS2 ** */ - void *scvtrirb; /* 54 ** SCVTRIRB FIELD UNUSED IN VS2 ** */ - void *scvtrtcb; /* 58 ** SCVTRTCB FIELD UNUSED IN VS2 ** */ - void *scvtcomm; /* 5C ADDR OF COMM TASK ROUTINE */ - void *scvtablk; /* 60 ** SCVTABLK FIELD UNUSED IN VS2 ** */ - void *scvtnfnd; /* 64 ** SCVTNFND FIELD UNUSED IN VS2 ** */ - void *scvtrmtc; /* 68 ** SCVTRMTC FIELD UNUSED IN OS/VS2 ** */ - void *scvtmssq; /* 6C ** SCVTMSSQ FIELD UNUSED IN OS/VS2 ** */ - void *scvtctcb; /* 70 ADDR OF COMM TASK TCB */ - void *scvtetcb; /* 74 ** SCVTETCB FIELD UNUSED IN OS/VS2 ** */ - void *scvtrxlq; /* 78 ADDR OF RECOVERY EXTENT LIST */ - void *scvtrqnd; /* 7C ** SCVTRQND FIELD UNUSED IN OS/VS2 ** */ - void *scvttar; /* 80 ** SCVTTAR FIELD UNUSED IN VS2 ** */ - void *scvtsvct; /* 84 ORIGIN OF SVC TABLE */ - void *scvtstxp; /* 88 ** SCVTSTXP FIELD UNUSED IN OS/VS2 ** */ - void *scvttqe; /* 8C ADDR OF TSO SUBSYSTEM'S TQE */ - void *scvtrmsv; /* 90 ** SCVTRMSV FIELD UNUSED IN OS/VS2 ** */ - void *scvtstat; /* 94 ADDR OF SVC STATUS ROUTINE */ - void *scvtqcbr; /* 98 BRANCH ENTRY POINT TO GETMAIN/FREEMAIN*/ - /* QUICKCELL ROUTINE */ - void *scvtabbr; /* 9C ** SCVTABBR FIELD UNUSED IN OS/VS2 ** */ - void *scvtapio; /* A0 ** SCVTAPIO FIELD UNUSED IN OS/VS2 ** */ - void *scvtptrm; /* A4 ADDRESS OF REAL STORAGE MANAGER */ - /* (RSM) TERMINATION RESOURCE MANAGER */ - /* ROUTINE THAT QUIESCES PAGING I/O */ - /* AND PGFIX REQUESTS */ - void *scvthook; /* A8 ** SCVTHOOK FIELD UNUSED IN OS/VS2 ** */ - void *scvtpiqe; /* AC ADDR OF RESIDENT SUBROUTINE IN EOT */ - /* TO REMOVE IQE'S FROM ASYNCHRONOUS */ - /* EXIT QUEUE */ - void *scvttmbr; /* B0 ** SCVTTMBR FIELD UNUSED IN OS/VS2 ** */ - void *scvtfomg; /* B4 ** SCVTFOMG FIELD UNUSED IN OS/VS2 ** */ -}; /* B8 (184 bytes) */ - -struct svcentry { - void *svcepa; /* 00 SVC entry point address */ - unsigned char svctype : 3; /* 04 svc type code */ -#define SVCTYPE1 0 /* ... svc type 1 */ -#define SVCTYPE2 4 /* ... svc type 2 */ -#define SVCTYPE3 6 /* ... svc type 3 or 4 */ -#define SVCTYPE4 6 /* ... svc type 3 or 4 */ -#define SVCTYPE6 1 /* ... svc type 6 */ - unsigned char unused : 1; /* 04 unused bit */ - unsigned char svcapf : 1; /* 04 1=APF YES */ - unsigned char svcesr : 1; /* 04 1=ESR YES */ - unsigned char svcnonpreempt:1;/* 04 1=svc is non-preemptive */ - unsigned char svcassist : 1; /* 04 1=svc can be assisted */ - unsigned char svcattribute; /* 05 attribute (not used is OS/VS2) */ - unsigned char svclock; /* 06 svc locks */ -#define SVCLOCK_LOCAL 0x80 /* ... LOCAL lock. */ -#define SVCLOCK_CMS 0x40 /* ... CMS lock. */ -#define SVCLOCK_SRM 0x20 /* ... SRM lock. */ -#define SVCLOCK_SALLOC 0x10 /* ... SALLOC lock. */ -#define SVCLOCK_DISP 0x08 /* ... DISP lock. */ - unsigned char unused2; /* 07 unused */ -} __attribute__((packed)); /* 08 (8 bytes) */ - -struct svctable { - SVCENTRY svcentry[256]; /* 00 array of SVCENTRY, 0-255 */ -}; /* 800 (2048 bytes) */ - -#endif /* IHASCVT_H */ diff --git a/src/crent370/include/ihasrb.h b/src/crent370/include/ihasrb.h deleted file mode 100644 index b4bb404..0000000 --- a/src/crent370/include/ihasrb.h +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef IHASRB_H -#define IHASRB_H - -/* IHASRB in SYS1.MACLIB */ -/* http://tommysprinkle.com/mvssp/category/srb-service-request-block/srb-overview/ */ - -/* allocate SRB in CSA storage using subpool 228, 229 or 239 only: - 228 fixed, requester key, fetch protected - 229 fixed, requester key, not fetch prptected - 239 fixed, key 0, fetch protected -*/ -#define SRB_SUBPOOL 228 /* fixed, requester key, not fetch protected */ - -typedef struct srb SRB; - -struct srb { - char SRBID[4]; /* 00 EBCDIC ACRONYM FOR SRB */ -#define SRB_EYE "SRB " /* ... */ - SRB *SRBFLNK; /* 04 FORWARD CHAIN FIELD */ - void *SRBASCB; /* 08 PTR TO ASCB OF ADDRESS SPACE */ - /* SRB IS TO BE DISPATCHED TO */ - union { - char SRBFLC[8]; /* 0C SRB AREA MOVED TO LOW CORE */ - struct { - char SRBCPAFF[2]; /* 0C CPU AFFINITY MASK */ - short SRBPASID; /* 0E PURGEDQ ASID IDENTIFIER */ - void *SRBPTCB; /* 10 PURGEDQ TCB IDENTIFIER */ - }; - }; - - void *SRBEP; /* 14 ENTRY POINT OF ROUTINE */ - void *SRBRMTR; /* 18 ADDRESS OF RESOURCE MGR RTN */ - void *SRBPARM; /* 1C USER PARAMETER */ - void *SRBSAVE; /* 20 SAVE AREA POINTER */ - unsigned char SRBPKF; /* 24 PROTECT KEY INDICATION */ - unsigned char SRBPRIOR; /* 25 PRIORITY LEVEL INDICATION */ -#define SRBPSYS 0 /* ... SYSTEM PRIORITY LEVEL */ -#define SRBPNONQ 4 /* ... NON-QUIESCEABLE PRIORITY */ - unsigned char unused1[2]; /* 26 RESERVED */ - unsigned unused2; /* 28 RESERVED */ -}; -#define SRBSIZE sizeof(SRB) /* 2C (44 bytes) */ - -#endif /* IHASRB_H */ diff --git a/src/crent370/include/ihaxtlst.h b/src/crent370/include/ihaxtlst.h deleted file mode 100644 index d97c26b..0000000 --- a/src/crent370/include/ihaxtlst.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef IHAXTLST_H -#define IHAXTLST_H - -typedef struct xtlst XTLST; - -struct xtlst { -/********************************************************************** -/* EXTENT LIST * -/* * -/* OS/VS2 RELEASE 2 8/28/74 * -/*********************************************************************/ - unsigned xtllnth; /* 00 NUMBER OF BYTES IN EXTENT LIST (=16) */ - unsigned xtlnrfac; /* 04 NUMBER OF RELOCATION FACTORS (=1) */ - union { - unsigned xtlmsbla; /* 08 WORD REFERENCE FOR XTLMSBLN */ - struct { - unsigned x80 : 8; /* 08 0x80 */ - unsigned xtlmsbln : 24; /* 09 LENGTH OF MAIN STORAGE BLOCK */ - } __attribute__((packed)); - }; - union { - unsigned xtlmsbaa; /* 0C WORD REFERENCE FOR XTLMSBAD */ - struct { - unsigned x00 : 8; /* 0C ONE BYTE OF X'00' */ - unsigned xtlmsbad : 24; /* 0D ADDRESS OF MAIN STORAGE BLOCK */ - } __attribute__((packed)); - }; -} __attribute__((packed)); - -#endif /* IHAXTLST_H */ diff --git a/src/crent370/include/ikjcppl.h b/src/crent370/include/ikjcppl.h deleted file mode 100644 index f10d54d..0000000 --- a/src/crent370/include/ikjcppl.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef IKJCPPL_H -#define IKJCPPL_H - -#include "ikjpscb.h" -#include "ikjupt.h" -/********************************************************************** -* THE COMMAND PROCESSOR PARAMETER LIST (CPPL) IS A LIST OF * -* ADDRESSES PASSED FROM THE TMP TO THE CP VIA REGISTER 1 * -***********************************************************************/ -typedef struct tsocbuf { - short cbuflen; /* 00 buffer length */ - short cmdlen; /* 02 command length */ - char cmdname[1]; /* 04 command name */ -} TSOCBUF; - -typedef struct ikjcppl { - TSOCBUF *cpplcbuf; /* 00 PTR TO COMMAND BUFFER */ - UPT *cpplupt; /* 04 PTR TO UPT */ - PSCB *cpplpscb; /* 08 PTR TO PSCB */ - void *cpplect; /* 0C PTR TO ECT */ -} CPPL; - -#endif /* IKJCPPL_H */ diff --git a/src/crent370/include/ikject.h b/src/crent370/include/ikject.h deleted file mode 100644 index 94547d1..0000000 --- a/src/crent370/include/ikject.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef IKJECT_H -#define IKJECT_H - -typedef struct ikject ECT; - -struct ikject { - unsigned char ectrcdf; /* 00 HIGH ORDER BIT INDICATES CP ABENDED */ - unsigned char ectrtcd[3]; /* 01 RETURN CODE FROM LAST CP - (ABEND CODE IF ECTRCDF IS SET) */ - void *ectiowa; /* 04 ADDR OF I/O SERVICE ROUTINES WORK AREA */ - unsigned char ectmsgf; /* 08 HIGH ORDER BIT SET MEANS DELETE SECOND - LEVEL MESSAGE */ - unsigned char ectsnsg[3]; /* 09 ADDR OF SECOND LEVEL MSG CHAIN */ - char ectpcmd[8]; /* 0C PRIMARY COMMAND NAME */ - char ectscmd[8]; /* 14 SUBCOMMAND NAME */ - unsigned char ectsws; /* 1C 1 BYTE OF SWITCHES */ -#define ECTNOPD 0x80 /* ... 0 BIT ON= NO OPERANDS EXIST IN CMD BUFFER*/ -/* EQU X'40' RESERVED */ -#define ECTATRM 0x20 /* ... CP TERMINATED BY TMP DETACH W/ STAE */ -#define ECTLOGF 0x10 /* ... LOGON/OFF REQUESTED TMP TO LOGOFF USER */ -#define ECTNMAL 0x08 /* ... NO USER MSGS TO RECVED AT LOGON */ -#define ECTNNOT 0x04 /* ... NO BRDCST NOTICES TO BE RECVED AT LOGON */ -#define ECTBKGRD 0x02 /* ... BACKGROUND MODE */ -#define ECTATTN 0x01 /* ... ATTENTION MODE FOR CLIST */ - - unsigned char ectddnum[3]; /* 1D COUNTER FOR GENERATING TEMP DDNAMES */ - - void *ectuser; /* 20 WORD RESERVED FOR INSTALLATION USE */ - void *ectbkpb; /* 24 ADDR OF BACKGROUND PARAMETER BLOCK */ - unsigned char ectsws2; /* 28 EXTENDED FLAG FIELD */ -#define ECTDEFCS 0x80 /* ... DEFAULT DELETE CHARACTERS USED */ -#define ECTTABND 0x40 /* ... TEST SUBTASK ABENDED */ - unsigned char reserved1[3]; /* 2C RESERVED */ - void *reserved2; /* 30 RESERVED */ - void *reserved3; /* 34 RESERVED */ - void *reserved4; /* 38 RESERVED */ -}; - -#endif diff --git a/src/crent370/include/ikjpscb.h b/src/crent370/include/ikjpscb.h deleted file mode 100644 index c0a4134..0000000 --- a/src/crent370/include/ikjpscb.h +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef IKJPSCB_H -#define IKJPSCB_H - -#include "ikjupt.h" -/********************************************************************** -* THE PROTECTED STEP CONTROL BLOCK IS CONSTRUCTED BY LOGON AND -* FILLED IN FROM THE UADS . A FIXED LENGTH TABLE WITH ATTRIBUTE -* AND ACCOUNTING FIELDS, THE PSCB IS USED TO MAINTAIN USER ATTRI- -* BUTES AND ACCOUNTING DATA ON A USERID BASIS. THE ADDRESS OF PSCB -* IS PASSED TO THE TMP. HENCE IT IS AN EXTERNAL INTERFACE -* -* CHANGE ACTIVITY - @YA20518 -* OY20518 - CHECK FOR PSCBSTOR AND IF SPECIFIED SET PSCBSTORAGE -* TO THE VALUE SPECIFIED FOR PSCBSTOR SO THAT PROGRAMS -* THAT CALL THIS MACRO DO NOT HAVE TO CHANGE THEIR -* CODE. @YA20518 -* -***********************************************************************/ - -typedef struct ikjpscb { - char pscbuser[7]; /* 00 USERID PADDED RIGHT WITH BLANKS */ - char pscbusrl; /* 07 LENGTH OF USERID */ - char pscbgpgm[8]; /* 08 ESOTERIC GROUP NAME INIT BY LOGON FROM UADS - ** USED BY DYN ALLOC WHEN UNITNAME NOT SPECIFIED - ** BUT IS REQUIRED */ - char pscbatr1; /* 10 A 15 BIT STRING OF USER ATTRIBUTES*/ -#define PSCBCTRL 0x80 /* ... OPERATOR COMMAND USER */ -#define PSCBACCT 0x40 /* ... ACCOUNT COMMAND USER */ -#define PSCBJCL 0x20 /* ... SUBMIT COMMAND USER */ -#define PSCBVMNT 0x10 /* ... CNTL VOL MOUNT AUTH */ -#define PSCBATTN 0x08 /* ... LINE DELETE CHAR IS ATTENTION */ -#define PSCBRCVR 0x04 /* ... EDIT RECOVER/NORECOVER */ - /* ... BITS 6 - 15 RESERVED FOR IBM USE */ - char reserved1; /* 11 RESERVED */ - char pscbatr2; /* 12 A 15 BIT STRING RESERVED FOR INSTALLATION USE */ - char pscbatr3; /* 13 ... */ - unsigned pscbltim[2]; /* 14 DOUBLEWORD FOR LOGON TIME */ - /* ... IN STORE CLOCK UNITS */ - char pscbsubh; /* 1C SUBMIT HOLD CLASS */ - char pscbsubc; /* 1D SUBMIT CLASS */ - char pscbsubm; /* 1E SUBMIT MSGCLASS */ - char pscbsout; /* 1F SYSOUT CLASS */ - unsigned reserved2[2]; /* 20 RESERVED */ - char pscbdest[8]; /* 28 DEST FOR SYSOUT DATA SETS */ - void *pscbrlgb; /* 30 PTR TO RELOGON BUFFER */ - UPT *pscbupt; /* 34 PTR TO USER PROFILE TABLE */ - short pscbuptl; /* 38 LENGTH OF UPT */ - char pscbchar; /* 3A USER'S CHARACTER DELETE CHARACTER */ - char pscbline; /* 3B USER'S LINE DELETE CHARACTER */ - unsigned pscbrsz; /* 3C REGION SIZE REQUESTED IN 2K UNITS */ - char pscbu[8]; /* 40 RESERVED FOR INSTALLATION USE */ -} PSCB; - -#endif /* IKJPSCB_H */ diff --git a/src/crent370/include/ikjtcb.h b/src/crent370/include/ikjtcb.h deleted file mode 100644 index 163b1cb..0000000 --- a/src/crent370/include/ikjtcb.h +++ /dev/null @@ -1,776 +0,0 @@ -#ifndef IKJTCB_H -#define IKJTCB_H - -typedef struct tcb TCB; -typedef struct tcbfix TCBFIX; -typedef struct tcbxtnt2 TCBXTNT2; - -/* **************************************************************** */ -/* */ -/* TASK CONTROL BLOCK */ -/* */ -/* OS/VS2 SU64, 11/28/78, LEVEL=8 */ -/* */ -/* **************************************************************** */ - -struct tcbfix { - unsigned tcbfrs0[2]; /* 00 SAVE AREA FOR FLOATING POINT REGISTER 0 */ - unsigned tcbfrs2[2]; /* 08 SAVE AREA FOR FLOATING POINT REGISTER 2 */ - unsigned tcbfrs4[2]; /* 10 SAVE AREA FOR FLOATING POINT REGISTER 4 */ - unsigned tcbfrs6[2]; /* 18 SAVE AREA FOR FLOATING POINT REGISTER 6 */ -}; /* 20 (32 bytes) */ -#define TCBPXLEN sizeof(TCBFIX) - -struct tcb { - void *tcbrbp; /* 00 ADDRESS OF THE RB FOR EXECUTING PROGRAM */ - union { - void *tcbpie; /* 04 ADDRESS OF SPIE CONTROL AREA. THE FIRST WORD OF */ - /* THIS AREA CONTAINS THE PROGRAM INTERRUPT ELEMENT */ - /* (PIE) ADDRESS. */ - struct { - char tcbpmask; /* 04 SPIE BITS */ -#define TCBPM 0x0F /* ... PROGRAM MASK AT TIME OF SPIE INITIATION. MASK */ - /* RESTORED AT TIME OF SPIE NULLIFICATION. */ - char tcbpiea[3]; /* 05 ADDRESS OF SPIE CONTROL AREA. THE FIRST WORD OF */ - /* THIS AREA CONTAINS THE PROGRAM INTERRUPT ELEMENT */ - /* (PIE) ADDRESS. */ - } __attribute__((packed)); - }; - - void *tcbdeb; /* 08 ADDRESS OF THE DEB QUEUE */ - void *tcbtio; /* 0C ADDRESS OF THE TASK I/O TABLE (TIOT) */ - union { - unsigned tcbcmp; /* 10 TASK COMPLETION CODE AND INDICATORS */ - struct { - char tcbcmpf; /* 10 INDICATOR FLAGS */ -#define TCBCREQ 0x80 /* ... A DUMP HAS BEEN REQUESTED */ -#define TCBCSTEP 0x40 /* ... A STEP ABEND HAS BEEN REQUESTED */ -#define TCBDMPO 0x20 /* ... DUMP OPTIONS WERE PROVIDED ON CALLRTM OR SETRP */ - /* MACRO (OS/VS2) */ -#define TCBNOCC 0x10 /* ... A COMPLETION CODE WAS NOT PROVIDED ON CALLRTM */ - /* MACRO. A DEFAULT CODE IS BEING USED. */ - /* (OS/VS2) */ -#define TCBCASID 0x08 /* ... ABEND WAS SCHEDULED VIA CROSS MEMORY ABTERM */ - /* (OS/VS2) */ -#define TCBRV316 0x04 /* ... RESERVED FOR CALLRTM FLAG (OS/VS2) */ -#define TCBRV317 0x02 /* ... RESERVED FOR CALLRTM FLAG (OS/VS2) */ -#define TCBRV318 0x01 /* ... RESERVED FOR CALLRTM FLAG (OS/VS2) */ -#if 0 /* OS/VS1 N/A */ -#define TCBCPP 0x20 /* ... SOME PROBLEM PROGRAM STORAGE WAS OVERLAID BY THE */ - /* SECOND LOAD OF ABEND. A FIRST LOAD OVERLAY IS */ - /* INDICATED IN TCBFLGS FIELD (OFFSET 29 DECIMAL). */ - /* (OS/VS1) */ -#define TCBSTCC 0x10 /* ... COMPLETION CODE IS NOT TO BE STORED IN TCBCMPC */ - /* (OFFSET 17 DECIMAL) IF AN ABEND IS ENCOUNTERED. */ - /* THIS IS TO PREVENT AN OVERLAY OF THE ORIGINAL */ - /* COMPLETION CODE. (OS/VS1) */ -#define TCBCDBL 0x08 /* ... A DOUBLE ABEND HAS OCCURRED (OS/VS1) */ -#define TCBCWTO 0x04 /* ... A DUMP MESSAGE (WTO) IS TO BE ISSUED TO THE */ - /* OPERATOR (OS/VS1) */ -#define TCBCIND 0x02 /* ... ABEND TO OUTPUT AN INDICATIVE DUMP (OS/VS1) */ -#define TCBCMSG 0x01 /* ... AN ABEND MESSAGE IS PROVIDED TO BE PRINTED BY */ - /* ABDUMP (OS/VS1) */ -#endif - char tcbcmpc[3]; /* 11 SYSTEM COMPLETION CODE IN FIRST 12 BITS, */ - /* USER COMPLETION CODE IN LAST 12 BITS */ - } __attribute__((packed)); - }; - - union { - void *tcbrtn; /* 14 ADDRESS OF TESTRAN CONTROL CORE TABLE */ - struct { - char tcbabf; /* 14 FLAG BYTE */ -#define TCBMOD91 0x80 /* ... BOTH TESTRAN AND DECIMAL SIMULATOR ON A MOD 91 */ -#define TCBNOCHK 0x40 /* ... SUPPRESS TAKING CHECKPOINTS FOR THIS STEP */ - /* (JOB STEP TCB) */ -#define TCBGRPH 0x20 /* ... THIS IS A GRAPHICS FOREGROUND JOB OR THE */ - /* GRAPHIC JOB PROCESSOR */ -#define TCBRSV01 0x10 /* ... RESERVED */ -#define TCBTCPP 0x08 /* ... TCAM POST-PENDING (RORI) */ -#define TCBTCP 0x04 /* ... TEST TASK - USED BY TEST SVC */ -#define TCBOLTEP 0x02 /* ... OLTEP FUNCTIONS REQUIRE CLEANUP BEFORE ABNORMAL */ - /* TERMINATION CAN BE INVOKED */ -#define TCBRSV02 0x01 /* ... RESERVED */ - char tcbtrnb[3]; /* 15 ADDRESS OF TESTRAN CONTROL CORE TABLE */ - } __attribute__((packed)); - }; - - union { - void *tcbmss; /* 18 FOR JOB STEP TCB, ADDRESS OF THE BOUNDARY BOX. */ - /* FOR SUBTASK TCB, ADDRESS OF THE GOTTEN SUBTASK */ - /* AREA QUEUE ELEMENT (GQE). A GQE IS PRESENT */ - /* ONLY IF THE SYSTEM HAS ISSUED A GETMAIN MACRO */ - /* INSTRUCTION FOR THE SPACE. (OS/VS1) */ - /* ADDRESS OF LAST SPQE ON MSS QUEUE (OS/VS2) */ - struct { - char tcbrsv03; /* 18 ** TCBNROC FIELD UNUSED IN OS/VS ** */ - char tcbmssb[3]; /* 19 FOR JOB STEP TCB, ADDRESS OF THE BOUNDARY BOX. */ - /* FOR SUBTASK TCB, ADDRESS OF THE GOTTEN SUBTASK */ - /* AREA QUEUE ELEMENT (GQE). A GQE IS PRESENT */ - /* ONLY IF THE SYSTEM HAS ISSUED A GETMAIN MACRO */ - /* INSTRUCTION FOR THE SPACE. (OS/VS1) */ - /* ADDRESS OF LAST SPQE ON MSS QUEUE (OS/VS2) */ - } __attribute((packed)); - }; - - unsigned char tcbpkf; /* 1C STORAGE PROTECTION KEY FOR THIS TASK. IF THERE */ - /* IS NO STORAGE PROTECTION, ALL BITS ARE ZERO. */ -#define TCBFLAG 0xF0 /* ... STORAGE PROTECTION KEY */ -#define TCBZERO 0x0F /* ... MUST BE ZERO */ - - /* TCBFLGS DS 0BL5 - 1D FLAG BYTE FIELDS */ - unsigned char tcbflgs1; /* 1D FIRST TCB FLAG BYTE */ -#define TCBFA 0x80 /* ... ABNORMAL TERMINATION IN PROGRESS */ -#define TCBFE 0x40 /* ... NORMAL TERMINATION IN PROGRESS */ -#define TCBFERA 0x20 /* ... ENTER ABEND ERASE ROUTINE WHEN IN CONTROL AGAIN */ - /* (OS/VS2) */ -#define TCBNONPR 0x10 /* ... TASK IS NON-PREEMPTABLE (OS/VS2) */ -#define TCBPDUMP 0x08 /* ... PREVENT DUMP INDICATOR (OS/VS2) */ -#define TCBFT 0x04 /* ... TOP TASK IN TREE BEING ABTERMED (OS/VS2) */ -#define TCBFS 0x02 /* ... ABTERM DUMP COMPLETED (OS/VS2) */ -#define TCBFX 0x01 /* ... PROHIBIT QUEUEING OF ASYNCHRONOUS EXITS FOR */ - /* THIS TASK */ - - unsigned char tcbflgs2; /* 1E SECOND FLAG BYTE */ -#define TCBFOINP 0x80 /* ... THE TASK IS ABENDING AND IS IN THE PROCESS OF */ - /* (1) OPEN FOR DUMP DATA SET PROCESSING, */ - /* (2) CLOSE FOR USER DATA SET OR */ - /* (3) PURGE FOR ENQ'ED RESOURCES. THIS BIT IS */ - /* USED IN CONJUNCTION WITH TCBSTACK. */ - /* (OS/VS2) */ -#define TCBFSTI 0x40 /* ... SECOND JOB STEP INTERVAL HAS EXPIRED */ - /* (OS/VS2 INITIATOR TCB) */ -#define TCBFABOP 0x20 /* ... IF 1, THE SYSABEND DUMP DATA SET HAS BEEN OPENED */ - /* FOR ABEND. IF 0, THE SYSUDUMP DUMP DATA SET WAS */ - /* OPENED. THIS BIT IS ONLY USED FOR THE JOB STEP */ - /* TCB AND IS USED IN CONJUNCTION WITH TCBFDSOP */ - /* BIT. (OS/VS2) */ -#define TCBFSMC 0x10 /* ... TASK HAS ISSUED A SYSTEM-MUST-COMPLETE AND SET */ - /* ALL OTHER TASKS IN THE SYSTEM NON-DISPATCHABLE */ -#define TCBFJMC 0x08 /* ... TASK HAS ISSUED A STEP-MUST-COMPLETE AND TURNED */ - /* OFF ALL OTHER TASKS IN THE STEP */ -#define TCBFDSOP 0x04 /* ... SYSABEND OPEN FOR JOB STEP (OS/VS2) */ -#define TCBFETXR 0x02 /* ... ETXR TO BE SCHEDULED */ -#define TCBFTS 0x01 /* ... THIS TASK IS A MEMBER OF A TIME-SLICED GROUP */ - - unsigned char tcbflgs3; /* 1F THIRD FLAG BYTE */ -#define TCBFSM 0x80 /* ... ALL PSW'S IN SUPERVISOR STATE (OS/VS2) */ -#define TCBADINP 0x40 /* ... USED IN CONJUNCTION WITH TCBONDSP. FLAG */ - /* INDICATING THAT ABDUMP IS CURRENTLY PROCESSING */ - /* FOR SOME TASK IN JOB STEP. A HIGHER LEVEL TASK */ - /* IS NOT ALLOWED TO ENTER MAINLINE ABEND */ - /* PROCESSING IF THIS BIT IS SET IN JOB STEP TCB */ - /* UNLESS JOB STEP TASK IS FAILING. BIT SET ONLY */ - /* IN JOB STEP TCB AND TASK INVOKING ABDUMP. */ - /* (OS/VS2) */ -#define TCBABTRM 0x20 /* ... ABTERM BIT TO PREVENT MULTIPLE ABENDS (OS/VS2) */ -#define TCBABGM 0x10 /* ... GETMAIN IS TO DEFAULT LSQA REQUESTS TO SQA */ - /* REQUESTS WHEN REQUEST CANNOT BE SATISFIED FROM */ - /* LSQA (OS/VS2) */ -#define TCBRSV06 0x08 /* ... RESERVED (OS/VS2) */ -#define TCBRSV07 0x04 /* ... RESERVED (OS/VS2) */ -#define TCBRSV08 0x02 /* ... RESERVED (OS/VS2) */ -#define TCBDWSTA 0x01 /* ... THIS TASK WAS DETACHED WITH STAE=YES OPTION */ - /* (OS/VS2) */ - - unsigned char tcbflgs4; /* 20 NON-DISPATCHABILITY FLAGS (OS/VS2) */ -#define TCBNDUMP 0x80 /* ... ABDUMP NON-DISPATCHABILITY INDICATOR */ -#define TCBSER 0x40 /* ... SER1 NON-DISPATCHABILITY INDICATOR */ -#define TCBRQENA 0x20 /* ... I/O RQE'S EXHAUSTED */ -#define TCBHNDSP 0x10 /* ... TASK OR JOB STEP IS MOMENTARILY 'FROZEN' UNTIL */ - /* THE REQUIRED RESOURCES ARE AVAILABLE. THE BIT */ - /* IS SET THROUGH THE USE OF THE 'STATUS' SVC */ -#define TCBUXNDV 0x08 /* ... TASK IS TEMPORARILY NON-DISPATCHABLE BECAUSE */ - /* SMF TIME LIMIT OR SYSOUT LIMIT USER EXIT */ - /* ROUTINE IS BEING EXECUTED FOR THIS STEP */ -#define TCBMPCVQ 0x04 /* ... VARY OR QUIESCE IN MULTIPROCESSING SYSTEM */ -#define TCBMPCND 0x02 /* ... M65 MULTIPROCESSING NON-DISPATCHABILITY */ - /* INDICATOR FOR ALL CPU'S */ -#define TCBONDSP 0x01 /* ... TASK TERMINATING AND NON-DISPATCHABLE BECAUSE */ - /* EITHER OPEN FOR DUMP DATA SET IS IN PROCESS OR */ - /* CLOSE BY ABEND IS IN PROCESS */ - - unsigned char tcbflgs5; /* 21 MORE NON-DISPATCHABILITY FLAGS. IF ANY BIT IN */ - /* THIS BYTE IS 1, THE TASK IS NON-DISPATCHABLE. */ -#define TCBFC 0x80 /* ... TASK TERMINATED (OS/VS2) */ -#define TCBABWF 0x40 /* ... ABNORMAL WAIT (OS/VS2) */ -#define TCBPAGE 0x20 /* ... TASK IS NON-DISPATCHABLE DUE TO EXCESSIVE PAGING */ - /* RATE */ -#define TCBANDSP 0x10 /* ... TASK IS TEMPORARILY NON-DISPATCHABLE BECAUSE IT */ - /* WAS ATTACHED UNDER THE DISP=NO OPERAND */ -#define TCBSYS 0x08 /* ... ANOTHER TASK IS IN SYSTEM-MUST-COMPLETE STATUS */ - /* OR A SUMMARY BIT FOR FIELD TCBSYSCT */ -#define TCBSTP 0x04 /* ... ANOTHER TASK IN THIS JOB STEP IS IN */ - /* STEP-MUST-COMPLETE STATUS */ -#define TCBFCD1 0x02 /* ... INITIATOR WAITING FOR REGION (OS/VS2) */ -#define TCBPNDSP 0x01 /* ... PRIMARY NON-DISPATCHABILITY BIT. THIS BIT IS */ - /* SET TO 1 IF ANY OF THE SECONDARY */ - /* NON-DISPATCHABILITY BITS (OFFSETS 173, 174, 175, */ - /* 200 OR 201 DECIMAL) IS SET TO 1. THIS BIT IS */ - /* SET TO 0 IF A SECONDARY NON-DISPATCHABILITY BIT */ - /* IS SET TO 0 AND ALL OTHER SECONDARY */ - /* NON-DISPATCHABILITY BITS ARE 0. */ - - unsigned char tcblmp; /* 22 TASK LIMIT PRIORITY (OS/VS2) */ - unsigned char tcpdsp; /* 23 DISPATCHING PRIORITY FOR THIS TASK */ - void *tcblls; /* 24 ADDRESS OF LAST LOAD LIST ELEMENT (LLE) IN LOAD */ - /* LIST (OS/VS2) */ - void *tcbjlb; /* 28 ADDRESS OF A JOBLIB DCB */ - - union { - void *tcbjpq; /* 2C ADDRESS OF LAST CDE FOR JOB PACK AREA (JPA) */ - /* CONTROL QUEUE (OS/VS2) */ - struct { - char tcbpurge; /* 2C PURGE FLAGS (OS/VS2) */ -#define TCBJPQF 0x80 /* ... JPQ PURGE FLAG */ - char tcbjpqb[3]; /* 2D ADDRESS OF LAST CDE FOR JOB PACK AREA (JPA) */ - /* CONTROL QUEUE (OS/VS2) */ - } __attribute__((packed)); - }; - - union { - unsigned tcbgrs[16]; /* 30 GENERAL REGISTER SAVE AREA */ - struct { - unsigned tcbgrs0; /* 30 SAVE AREA FOR GENERAL REGISTER 0 */ - unsigned tcbgrs1; /* 34 SAVE AREA FOR GENERAL REGISTER 1 */ - unsigned tcbgrs2; /* 38 SAVE AREA FOR GENERAL REGISTER 2 */ - unsigned tcbgrs3; /* 3C SAVE AREA FOR GENERAL REGISTER 3 */ - unsigned tcbgrs4; /* 40 SAVE AREA FOR GENERAL REGISTER 4 */ - unsigned tcbgrs5; /* 44 SAVE AREA FOR GENERAL REGISTER 5 */ - unsigned tcbgrs6; /* 48 SAVE AREA FOR GENERAL REGISTER 6 */ - unsigned tcbgrs7; /* 4C SAVE AREA FOR GENERAL REGISTER 7 */ - unsigned tcbgrs8; /* 50 SAVE AREA FOR GENERAL REGISTER 8 */ - unsigned tcbgrs9; /* 54 SAVE AREA FOR GENERAL REGISTER 9 */ - unsigned tcbgrs10; /* 58 SAVE AREA FOR GENERAL REGISTER 10 */ - unsigned tcbgrs11; /* 5C SAVE AREA FOR GENERAL REGISTER 11 */ - unsigned tcbgrs12; /* 60 SAVE AREA FOR GENERAL REGISTER 12 */ - unsigned tcbgrs13; /* 64 SAVE AREA FOR GENERAL REGISTER 13 */ - unsigned tcbgrs14; /* 68 SAVE AREA FOR GENERAL REGISTER 14 */ - unsigned tcbgrs15; /* 6C SAVE AREA FOR GENERAL REGISTER 15 */ - } __attribute__((packed)); - }; - - union { - void *tcbfsa; /* 70 ADDRESS OF THE FIRST PROBLEM PROGRAM SAVE AREA */ - struct { - char tcbqel; /* 70 ENQUEUE COUNT (OS/VS2) */ - char tcbfsab[3]; /* 71 ADDRESS OF THE FIRST PROBLEM PROGRAM SAVE AREA */ - } __attribute__((packed)); - }; - - void *tcbtcb; /* 74 ADDRESS OF NEXT TCB OF LOWER PRIORITY ON THE */ - /* READY QUEUE */ - - void *tcbtme; /* 78 ADDRESS OF THE TIMER QUEUE ELEMENT (TQE) */ -#define TCBTQET 0x80 /* ... IF ZERO, TASK TYPE TQE. */ - /* IF ONE, REAL/WAIT TYPE TQE. */ - - union { - void *tcbjstcb; /* 7C ADDRESS OF FIRST JOB STEP TCB */ - /* OR OF THIS TCB IF KEY ZERO (OS/VS2) */ - struct { - char tcbrsv16; /* 7C RESERVED */ - char tcbjstca[3]; /* 7D ADDRESS OF FIRST JOB STEP TCB */ - /* OR OF THIS TCB IF KEY ZERO (OS/VS2) */ - } __attribute__((packed)); - }; - - void *tcbntc; /* 80 ADDRESS OF THE TCB FOR THE TASK PREVIOUSLY */ - /* ATTACHED BY THE TASK THAT ATTACHED THIS TASK. */ - /* FOR EXAMPLE, IF TASK A ATTACHED TASK B AND THEN */ - /* TASK C, THIS FIELD IN TASK C'S TCB POINTS TO */ - /* TASK B'S TCB, AND THIS FIELD IN TASK B'S TCB */ - /* IS ZERO. */ - - void *tcbotc; /* 84 ADDRESS OF THE TCB FOR THE TASK (THE ORIGINATING */ - /* TASK) THAT ATTACHED THIS TASK. THIS FIELD IS */ - /* ZERO IN THE TCB FOR A SYSTEM TASK. */ - - void *tcbltc; /* 88 ADDRESS OF THE TCB FOR THE TASK LAST ATTACHED BY */ - /* THIS TASK. NOTE - IF A TASK (THE ORIGINATING */ - /* TASK) HAS ATTACHED OTHER TASKS, THE TCB'S FOR */ - /* THE OTHER TASKS ARE ON THE SUBTASK QUEUE OF THE */ - /* ORIGINATING TASK. TCBLTC IN THE TCB FOR THE */ - /* ORIGINATING TASK POINTS TO THE LAST TCB (THE */ - /* TCB FOR THE LAST ATTACHED TASK) IN THE SUBTASK */ - /* QUEUE. IN EACH TCB ON THE SUBTASK QUEUE, */ - /* EXCEPT THE FIRST TCB, TCBNTC POINTS TO THE */ - /* PRECEDING TCB ON THE QUEUE. */ - - void *tcbiqe; /* 8C ADDRESS OF AN INTERRUPTION QUEUE ELEMENT (IQE) */ - /* FOR SCHEDULING THE ETXR ROUTINE OF THE TASK */ - /* THAT ATTACHED THIS TASK. */ - - void *tcbecb; /* 90 ADDRESS OF THE ECB THAT WILL BE POSTED BY THE */ - /* SUPERVISOR'S TASK TERMINATION ROUTINES WHEN */ - /* NORMAL OR ABNORMAL TERMINATION OCCURS. */ - - unsigned char tcbtsflg; /* 94 TIME SHARING FLAGS */ -#define TCBTSTSK 0x80 /* ... SWAPPED TIME SHARING TASK (OS/VS1) */ -#define TCBRV300 0x80 /* ... RESERVED (WAS TCBTSTSK) (OS/VS2) */ -#define TCBSTPPR 0x40 /* ... TASK SHOULD BE MADE NON-DISPATCHABLE VIA TCBSTPP */ - /* WHEN IT IS NO LONGER RUNNING A PRIVILEGED */ - /* PROGRAM */ -#define TCBATT 0x20 /* ... TASK SHOULD NOT HAVE ATTENTION EXITS */ - /* SCHEDULED ON IT BY EXIT EFFECTOR */ -#define TCBTIOTG 0x10 /* ... PURGE TGET/TPUT AFTER ATTENTION */ -#define TCBRSV17 0x08 /* ... RESERVED */ -#define TCBRSV18 0x04 /* ... RESERVED */ -#define TCBDYDSP 0x02 /* ... M195 TASK IS MEMBER OF DYNAMIC DISPATCHING */ - /* GROUP */ -#define TCBCPUBN 0x01 /* ... FOR M195, ZERO MEANS I/O BOUND AND ONE MEANS */ - /* CPU BOUND */ - - unsigned char tcbstpct; /* 95 NUMBER OF SETTASK STARTS WHICH MUST BE */ - /* ISSUED BEFORE TASK IS MADE DISPATCHABLE - */ - /* FIELD NOT RESTRICTED TO TSO */ - unsigned char tcptslp; /* 96 LIMIT PRIORITY OF TIME SHARING TASK */ - unsigned char tcptsdp; /* 97 DISPATCHING PRIORITY OF TIME SHARING TASK */ - - void *tcbpqe; /* 98 POINTER TO DPQE MINUS 8 FOR THE JOB STEP (OS/VS2) */ - void *tcbaqe; /* 9C LIST ORIGIN OF AQE(S) FOR THIS TASK (OS/VS2) */ - - union { - void *tcbstab; /* A0 ADDRESS OF THE CURRENT STAE CONTROL BLOCK */ - struct { - char tcbnstae; /* A0 FLAGS INTERNAL TO STAE ROUTINE */ -#define TCBSTABE 0x80 /* ... ABEND ENTERED BECAUSE OF ERROR IN STAE */ - /* PROCESSING */ -#define TCBQUIES 0x40 /* ... STAE INVOKED PURGE I/O ROUTINE WITH QUIESCE I/O */ - /* OPTION */ -#define TCB33E 0x20 /* ... A 33E ABEND HAS OCCURRED FOR TASK (OS/VS2) */ -#define TCBPPSUP 0x10 /* ... 1=SUPERVISOR MODE, 0=PROBLEM PROGRAM MODE. */ - /* INDICATOR TO SYNCH OF THE MODE OF THE USER */ - /* EXIT (OS/VS2) */ -#define TCBHALT 0x08 /* ... PURGE I/O ROUTINE DID NOT SUCCESSFULLY QUIESCE */ - /* I/O, BUT I/O WAS HALTED */ -#define TCBSYNCH 0x04 /* ... SYNCH ISSUED BY ASIR TO SCHEDULE EXIT ROUTINE */ - /* (OS/VS2) */ -#define TCBRV301 0x02 /* ... RESERVED (WAS TCBNPURG) (OS/VS2) */ -#define TCBSTCUR 0x01 /* ... STAE RECURSION VALID (OS/VS2) */ - char tcbstabb[3]; /* A1 ADDRESS OF THE CURRENT STAE CONTROL BLOCK */ - } __attribute__((packed)); - }; - - union { - void *tcbtct; /* A4 ADDRESS OF THE TIMING CONTROL TABLE (TCT) IF */ - /* SYSTEM MANAGEMENT FACILITIES (SMF) DATA IS BEING */ - /* COLLECTED FOR THE TASK. ZERO IF SMF DATA IS NOT */ - /* BEING COLLECTED FOR THE TASK OR FOR OS/VS1, IF */ - /* SMF IS NOT IN THE SYSTEM. */ - struct { - char tcbtctgf; /* A4 FLAG BYTE FOR TIMING CONTROL TABLE */ -#define TCBSMFGF 0x80 /* ... IF ZERO, THE TCT CORE TABLE IS NOT TO BE */ - /* UPDATED BY GETMAIN/FREEMAIN. */ - /* IF ONE, THE TCT CORE TABLE IS TO BE UPDATED BY */ - /* GETMAIN/FREEMAIN. */ - char tcbtctb[3]; /* A5 ADDRESS OF THE TIMING CONTROL TABLE (TCT) IF */ - /* SYSTEM MANAGEMENT FACILITIES (SMF) DATA IS BEING */ - /* COLLECTED FOR THE TASK. ZERO IF SMF DATA IS NOT */ - /* BEING COLLECTED FOR THE TASK OR FOR OS/VS1, IF */ - /* SMF IS NOT IN THE SYSTEM. */ - } __attribute__((packed)); - }; - - void *tcbuser; /* A8 A WORD AVAILABLE TO THE USER */ - - union { - char tcbscndy[4]; /* AC SECONDARY NON-DISPATCHABILITY BITS. IF ANY BIT */ - /* IN THE FOLLOWING FOUR BYTES IS 1, THE PRIMARY */ - /* NON-DISPATCHABILITY BIT (OFFSET 33.7 DECIMAL) */ - /* IS 1, AND THE TASK IS NON-DISPATCHABLE. */ - char tcbndsp[4]; /* AC SAME AS TCBSCNDY */ - struct { - char tcbndsp0; /* AC BYTE 0 */ - char tcbndsp1; /* AD BYTE 1 */ -#define TCBDARTN 0x80 /* ... THE TASK IS TEMPORARILY NON-DISPATCHABLE - */ - /* DAMAGE ASSESSMENT ROUTINE (DAR) */ -#define TNONDISP TCBDARTN /* ... * ALIAS * */ -#define TCBDARPN 0x40 /* ... THE TASK IS PERMANENTLY NON-DISPATCHABLE - */ - /* DAMAGE ASSESSMENT ROUTINE (DAR) */ -#define PNONDISP TCBDARPN /* ... * ALIAS * */ -#define TCBRSTND 0x20 /* ... THE TASK IS TEMPORARILY NON-DISPATCHABLE - */ - /* RECOVERY MANAGEMENT SUPPORT AND SYSTEM ERROR */ - /* RECOVERY (RMS/SER) */ -#define TCBRSPND 0x10 /* ... THE TASK IS PERMANENTLY NON-DISPATCHABLE - */ - /* RECOVERY MANAGEMENT SUPPORT AND SYSTEM ERROR */ - /* RECOVERY (RMS/SER) */ - /* (IF THIS BIT IS ON THEN THE PREVIOUS BIT */ - /* MUST BE ON TOO) */ -#define TCBDDRND 0x08 /* ... THE TASK IS IN DEVICE ALLOCATION AND DYNAMIC */ - /* DEVICE RECONFIGURATION (DDR) HAS MADE IT */ - /* NON-DISPATCHABLE - */ - /* RECOVERY MANAGEMENT SUPPORT AND SYSTEM ERROR */ - /* RECOVERY (RMS/SER) (OS/VS1) */ -#define TCBTPSP 0x04 /* ... DISPATCHING OF TCAM TASK MUST BE DELAYED UNTIL */ - /* TCAM I/O APPENDAGE OR SVC ROUTINE HAS COMPLETED */ - /* EXECUTION (TCAM IN MULTIPROCESSING ENVIRONMENT) */ -#define TCBPIEND 0x02 /* ... SRB IS TO BE SCHEDULED TO PERFORM PIE/PICA */ - /* PROCESSING (FIRST LEVEL INTERRUPT HANDLER) */ -#define TCBRSV22 0x01 /* ... RESERVED */ - - char tcbndsp2; /* AE BYTE 2 */ -#define TCBABD 0x80 /* ... ABDUMP IS PROCESSING (OS/VS1) */ -#define TCBSTPP 0x40 /* ... TASK SET NON-DISPATCHABLE BY SETTASK */ -#define TCBNDSVC 0x20 /* ... TASK IS NON-DISPATCHABLE BECAUSE SVC DUMP IS */ - /* EXECUTING FOR ANOTHER TASK */ -#define TCBNDTS 0x10 /* ... TASK IS NON-DISPATCHABLE BECAUSE IT IS BEING */ - /* SWAPPED OUT */ -#define TCBIWAIT 0x08 /* ... TASK IS NON-DISPATCHABLE DUE TO AN INPUT WAIT */ -#define TCBOWAIT 0x04 /* ... TASK IS NON-DISPATCHABLE DUE TO AN OUTPUT WAIT */ -#define TCBDSS 0x02 /* ... DYNAMIC SUPPORT SYSTEM (DSS) HAS SET THIS */ - /* TASK NON-DISPATCHABLE */ -#define TCBABE 0x01 /* ... ABEND ROUTINE WAS ENTERED FOR THIS TASK WHILE */ - /* THE DCB FOR SYSABEND (OR SYSUDUMP) DATA SET WAS */ - /* BEING OPENED FOR ANOTHER TASK (OS/VS1) */ - - char tcbndsp3; /* AF BYTE 3 */ -#define TCBLJSND 0x80 /* ... TASK IS ABENDING AND NON-DISPATCHABLE BECAUSE IT */ - /* HAS A JOB STEP SUBTASK. TCBONDSP MUST ALSO BE */ - /* ON. (OS/VS2) */ -#define TCBRV302 0x40 /* ... RESERVED (WAS TCBSTAND) (OS/VS2) */ -#define TCBSRBND 0x20 /* ... TCB NON-DISPATCHABLE BECAUSE SRB'S ARE STOPPED */ - /* (OS/VS2) */ -#define TCBSLPER 0x10 /* ... SET NON-DISPATCHABLE SO THAT SLIP/PER CAN ALTER */ - /* RB PSW PER BIT (OS/VS2) */ -#define TCBRSV25 0x08 /* ... RESERVED */ -#define TCBAREQ 0x04 /* ... TSO AUTHORIZED REQUEST PROCESSING ACTIVE */ -#define TCBRSV27 0x02 /* ... RESERVED */ -#define TCBNDINT 0x01 /* ... INITIATOR SETS THIS BIT TO PREVENT JOB STEP */ - /* EXECUTION IN ORDER TO DO CANCEL PROCESSING */ - /* (CAN CANCEL LOOP) (OS/VS2) */ - } __attribute__((packed)); - }; - - unsigned tcbmdids; /* B0 RESERVED FOR MODEL-DEPENDENT SUPPORT AND FOR */ - /* IBM PROPRIETARY PROGRAMMING SUPPORT */ - - union { - void *tcbjscb; /* B4 ADDRESS OF THE JOB STEP CONTROL BLOCK */ - struct { - char tcbrecde; /* B4 ABEND RECURSION BYTE */ -#define TCBREC 0x80 /* ... VALID REENTRY TO ABEND IF NON-ZERO VALUE IN */ - /* FOLLOWING 7 BITS */ -#define TCBOPEN 0x01 /* ... OPEN DUMP DATA SET */ -#define TCBCLOSD 0x02 /* ... CLOSE DIRECT SYSOUT ON TAPE */ -#define TCBCLOSE 0x03 /* ... CLOSE OPEN DATA SETS */ -#define TCBCLOSF 0x04 /* ... RESERVED */ -#define TCBGREC 0x05 /* ... GRAPHICS */ -#define TCBADUMP 0x07 /* ... ABDUMP */ -#define TCBPTAXE 0x08 /* ... PURGE TAXE */ -#define TCBMESG 0x09 /* ... MESSAGE RECURSION */ -#define TCBDYNAM 0x0A /* ... DD-DYNAM TIOT CLEANUP */ -#define TCBDAMSG 0x0B /* ... ABEND IS ISSUING A WTOR ASKING WHETHER THE JOB */ - /* STEP TASK SHOULD WAIT FOR THE DUMP AREA */ - /* (OS/VS1) */ -#define TCBQTIP 0x0C /* ... PURGE TSO INTERPARTITION POSTS */ -#define TCBTCAMP 0x0D /* ... PURGE TCAM INTERPARTITION POSTS */ -#define TCBINDRC 0x0E /* ... INDICATIVE DUMP (LOAD 8 OF ABEND) HAS ABENDED. */ - /* ABEND WILL HANDLE THIS ABEND. (OS/VS1) */ -#define TCBSAVCD 0x0F /* ... ASIR RECURSION. SAVE OLD COMPLETION CODE */ -#define TCBTYP1W 0x10 /* ... TYPE 1 MESSAGE WRITE TO PROGRAMMER */ -#define TCBWTPSE 0x20 /* ... WRITE-TO-PROGRAMMER (WTP) FAILED. JOB STEP */ - /* TIMER EXPIRED DURING JOB STEP ABEND AND THE */ - /* STAE EXIT IS DENIED. (OS/VS1) */ -#define TCBVTAM1 0x21 /* ... ABEND IS ENTERING FIRST VTAM INTERFACE, */ - /* ISTRAAA1, FOR TERMINATION OF TASK OR SUBTASK */ - /* (OS/VS1) */ -#define TCBVTAM2 0x22 /* ... ABEND IS ENTERING SECOND VTAM INTERFACE, */ - /* ISTRAAA2, BECAUSE ISTRAAA1 ABENDED (OS/VS1) */ -#define TCBVTAM3 0x23 /* ... ABEND IS ENTERING FIRST VTAM INTERFACE, */ - /* ISTRAAA0, BECAUSE VTAM ABENDED (OS/VS1) */ -#define TCBVTAM4 0x24 /* ... ABEND IS ENTERING SECOND VTAM INTERFACE, */ - /* ISTRAAA2, BECAUSE ISTRAAA0 ABENDED (OS/VS1) */ -#define TCBNOSTA 0x30 /* ... STAE/STAI NOT TO BE HONORED */ -#define TCBSTRET 0x31 /* ... RETURN FROM DUMP PROCESSING */ -#define TCBCONVR 0x32 /* ... CONVERT TO STEP ABEND */ -#define TCBDARET 0x33 /* ... RETURN FROM DAMAGE ASSESSMENT ROUTINES */ -#define TCBTYP1R 0x34 /* ... RETURN FROM TYPE 1 MESSAGE MODULE */ -#define TCBNEWRB 0x35 /* ... ABEND ISSUED SVC 13 TO TRANSFER CONTROL (XCTL) */ - /* TO A NON-ABEND MODULE */ -#define TCBMCCNS 0x40 /* ... A MUST COMPLETE TASK HAS ABNORMALLY TERMINATED */ - /* WITHOUT ENOUGH STORAGE FOR 2 RB'S FOR A WTOR */ - /* ASKING WHETHER THE TASK'S RESOURCES ARE */ - /* CRITICAL. THE RESOURCES ARE ASSUMED TO BE */ - /* CRITICAL, AND THE PARTITION IS MARKED */ - /* PERMANENTLY NON-DISPATCHABLE. (OS/VS1) */ - char tcbjscbb[3]; /* B5 ADDRESS OF THE JOB STEP CONTROL BLOCK */ - } __attribute__((packed)); - }; - - unsigned short tcbddexc; /* B8 NUMBER OF TIMES A DYNAMIC DISPATCHING TASK HAS */ - /* HAD ITS TIME SLICE EXPIRE (OS/VS1) */ - unsigned short tcbddwtc; /* BA NUMBER OF TIMES A DYNAMIC DISPATCHING TASK IS */ - /* NOT INTERRUPTED BY THE END OF A TIME SLICE */ - /* BETWEEN WAITS (OS/VS1) */ - - void *tcbiobrc; /* BC ADDRESS OF IOB RESTORE CHAIN FOR I/O QUIESCED */ - /* BY EOT */ - - void *tcbexcpd; /* C0 ADDRESS OF EXCP DEBUG AREA (OS/VS2) */ - - union { - void *tcbext1; /* C4 ADDRESS OF OS-OS/VS COMMON TCB EXTENSION */ - struct { - char tcbrsv32; /* C4 RESERVED */ - char tcbext1a[3]; /* C5 ADDRESS OF OS-OS/VS COMMON TCB EXTENSION */ - } __attribute__((packed)); - }; - - /* OS/VS1 - OS/VS2 COMMON SECTION */ - - union { - char tcbbits[4]; /* C8 FLAG BYTES. IF A BIT IN THE FOLLOWING TWO BYTES */ - /* IS SET TO 1, THE PRIMARY NON-DISPATCHABILITY BIT */ - /* (OFFSET 33.7 DECIMAL) IS SET TO 1, AND THE TASK */ - /* IS NON-DISPATCHABLE. */ - struct { - char tcbndsp4; /* C8 SECONDARY NON-DISPATCHABILITY FLAGS COMMON TO */ - /* OS/VS1 AND OS/VS2. COORDINATED WITH PRIMARY */ - /* NON-DISPATCHABILITY FLAG TCBPNDSP. THIS BYTE IS */ - /* NOT CURRENTLY SUPPORTED BY OS/VS2. */ - char tcbndsp5; /* C9 SECONDARY NON-DISPATCHABILITY FLAGS UNIQUE TO */ - /* OS/VS1 OR OS/VS2. COORDINATED WITH PRIMARY */ - /* NON-DISPATCHABILITY FLAG TCBPNDSP. THIS BYTE IS */ - /* NOT CURRENTLY SUPPORTED BY OS/VS2. */ - char tcbndsp6; /* CA TASK-RELATED FLAGS */ -#define TCBRV 0x80 /* ... THE PARTITION IS FIXED IN REAL STORAGE. VIRTUAL */ - /* ADDRESSES ARE EQUAL TO REAL ADDRESSES. */ -#define TCBPIE17 0x40 /* ... PAGE FAULT INTERRUPT IS TO BE PASSED TO THE */ - /* TASK'S INTERRUPT EXIT AND AN 8-BYTE PICA IS IN */ - /* EFFECT FOR THIS TASK (OS/VS2) */ -#define TCBCPU 0x20 /* ... TASK IS CPU-BOUND MEMBER OF AUTOMATIC PRIORITY */ - /* GROUP (APG) (OS/VS2) */ -#define TCBSPVLK 0x10 /* ... TASK SCHEDULED FOR ABTERM WHILE OWNING */ - /* SUPERVISOR LOCK (OS/VS2) */ -#define TCBRV303 0x08 /* ... RESERVED (WAS TCBOLSQA) (OS/VS2) */ -#define TCBMIGR 0x04 /* ... REGION SELECTED FOR MIGRATION FROM PRIMARY */ - /* PAGING DEVICE (OS/VS2) */ -#define TCBAPG 0x02 /* ... TASK IS IN AUTOMATIC PRIORITY GROUP (APG)(OS/VS2)*/ -#define TCBNTJS 0x01 /* ... JOB STEP TASK BUT NOT HIGHEST IN FAILING TREE */ - /* (OS/VS2) */ - char tcbflgs7; /* CB TASK-RELATED FLAGS */ -#define TCBGPECB 0x80 /* ... TASK IS IN AN ECB WAIT FOR A GETPART (OS/VS2) */ -#define TCBRSV33 0x40 /* ... RESERVED (OS/VS2) */ -#define TCBRSV34 0x20 /* ... RESERVED (OS/VS2) */ -#define TCBSTACK 0x10 /* ... SET IN JOB STEP TCB TO INDICATE THAT A TASK IN */ - /* THE JOB STEP IS IN SERIAL ABEND PROCESSING. */ - /* USED IN CONJUNCTION WITH TCBFOINP. (OS/VS2) */ -#define TCBSVCS 0x08 /* ... RESERVED (enables SVC screening) */ -#define TCBRSTSK 0x04 /* ... RESIDENT SYSTEM TASK (OS/VS2) */ -#define TCBADMP 0x02 /* ... ALL OTHER TASKS IN JOB STEP HAVE BEEN SET */ - /* NON-DISPATCHABLE BY ABDUMP. THIS BIT IS SET TO */ - /* CONTROL JOB STEP DURING THE DUMPING PROCESS. */ - /* (OS/VS2) */ -#define TCBGTOFM 0x01 /* ... GENERALIZED TRACE FACILITY (GTF) TRACING HAS */ - /* BEEN TEMPORARILY DISABLED UNDER THIS TASK */ - } __attribute__((packed)); - }; - - unsigned char tcbdar; /* CC DAMAGE ASSESSMENT ROUTINE (DAR) FLAGS */ -#define TCBDARP 0x80 /* ... PRIMARY DAR RECURSION. DAR HAS BEEN ENTERED FOR */ - /* THIS TASK. */ -#define TCBDARS 0x40 /* ... SECONDARY DAR RECURSION. IF DAR IS REENTERED, */ - /* THIS TASK WILL BE SET NON-DISPATCHABLE. */ -#define TCBDARD 0x20 /* ... A DUMP HAS BEEN REQUESTED FOR A WRITER OR */ - /* SCHEDULER ABEND, AND THE USER HAS PROVIDED NO */ - /* SYSABEND DD CARD (OS/VS1) */ -#define TCBDARC 0x10 /* ... RECURSION PERMITTED IN CLOSE - */ - /* AFTER DAR PROCESSING COMPLETED (PCP) */ -#define TCBDARMC 0x10 /* ... DAR HAS BEEN ENTERED TO HANDLE A VALID RECURSION */ - /* IN MUST-COMPLETE STATUS THROUGH ABEND */ -#define TCBDARO 0x08 /* ... SYSTEM ERROR TASK IS FAILING. DAR DUMP SHOULD */ - /* NOT REQUEST ANY ERROR RECOVERY PROCEDURE (ERP) */ - /* PROCESSING. */ -#define TCBDARWT 0x04 /* ... A WTO OPERATION WITH A 'REINSTATEMENT FAILURE' */ - /* MESSAGE IS IN PROCESS FOR DAR */ -#define TCBDARMS 0x02 /* ... WTO OPERATION WITH A 'DAR IN PROGRESS' MESSAGE */ - /* IS IN PROCESS FOR DAR (OS/VS1) */ -#define TCBEXSVC 0x01 /* ... THE DUMP SVC ROUTINE IS EXECUTING FOR THIS TASK */ - - unsigned char tcbrsv37; /* CD RESERVED FOR USER */ - - unsigned char tcbsysct; /* CE NUMBER OF OUTSTANDING SYSTEM-MUST-COMPLETE */ - /* REQUESTS (ICB497) */ - unsigned char tcbstmct; /* CF NUMBER OF OUTSTANDING STEP-MUST-COMPLETE */ - /* REQUESTS (ICB497) */ - - union { - void *tcbext2; /* D0 ADDRESS OF OS/VS1 - OS/VS2 COMMON EXTENSION */ - struct { - char tcbrsv39; /* D0 RESERVED */ - char tcbext2a[3]; /* D1 ADDRESS OF OS/VS1 - OS/VS2 COMMON EXTENSION */ - } __attribute__((packed)); - }; - - /* OS/VS2 TCB OVERLAY */ - - unsigned tcbaecb; /* D4 ABEND ECB. POSTED BY A MOTHER TASK IN RTM2 */ - /* PROCESSING WHEN A DAUGHTER IS WAITING TO */ - /* TERMINATE IT. */ - void *tcbtirb; /* D8 ADDRESS OF TIRB FOR TASK */ - void *tcbback; /* DC ADDRESS OF PREVIOUS TCB ON READY QUEUE. ZERO */ - /* IN TOP TCB. */ - void *tcbrtwa; /* E0 POINTER TO CURRENT RTM2 WORK AREA */ - unsigned tcbiotim; /* E4 TIME IN 16-MICROSECOND UNITS BETWEEN TIME */ - /* ORIGINAL TIME SLICE INTERVAL WAS ASSIGNED AND */ - /* TIME AUTOMATIC PRIORITY GROUP (APG) TASK WENT */ - /* INTO VOLUNTARY WAIT */ - unsigned tcbtmsav; /* E8 TIME IN 16-MICROSECOND UNITS REMAINING FROM */ - /* ORIGINAL TIME SLICE INTERVAL WHEN AUTOMATIC */ - /* PRIORITY GROUP (APG) TASK WAS LAST DISPATCHED */ - unsigned char tcbabcur; /* EC ABEND RECURSION BYTE */ - unsigned char tcbrsvaa; /* ED RESERVED (ICB497) */ - unsigned char tcbid; /* EE TASK ID NUMBER */ -#define TCBPAGID 255 /* ... ID FOR PAGING SUPERVISOR TASK */ -#define TCBSYERR 254 /* ... ID FOR SYSTEM ERROR TASK */ -#define TCBCOMM 253 /* ... ID FOR COMMUNCIATIONS TASK */ -#define TCBIORMS 252 /* ... ID FOR I/O RMS TASK */ -#define TCBMASTR 251 /* ... ID FOR MASTER SCHEDULER TASK */ -#define TCBJES 250 /* ... ID FOR JOB ENTRY SUBSYSTEM (JES) MONITOR TASK */ -#define TCBDSSID 249 /* ... ID FOR DYNAMIC SUPPORT SYSTEM (DSS) TASK */ -#define TCBLOGID 248 /* ... ID FOR SYSTEM LOG TASK */ - unsigned char tcbrsv41; /* EF RESERVED */ - - union { - unsigned tcbxsct; /* F0 DISPATCHER INTERSECT CONTROL WORD */ - struct { - char tcbxsct1; /* F0 FLAG BYTE */ -#define TCBACTIV 0x80 /* ... BIT ON MEANS THIS TCB IS CURRENTLY ACTIVE ON A */ - /* CPU. USED TO SYNCHRONIZE SOME STATUS SAVING AND */ - /* DISPATCHABILITY INDICATORS WHEN ACTIVE OR NOT */ - /* UNDER THE LOCAL LOCK. */ -#define TCBS3A 0x40 /* ... STAGE 3 EXIT EFFECTOR/RESUME/TCTL INTERSECT FLAG */ - char tcbrv325; /* F1 RESERVED */ - short tcbccpvi; /* F2 ID OF THE CURRENT CPU RUNNING THIS TASK. USED */ - /* FOR RECOVERY AND CPU AFFINITY. */ - } __attribute__((packed)); - }; - - union { - void *tcbfoe; /* F4 ADDRESS OF FIRST FIX OWNERSHIP ELEMENT (FOE) */ - /* IN LIST FOR THIS TASK */ - struct { - char tcbrsv42; /* F4 RESERVED */ - char tcbfoea[3]; /* F5 ADDRESS OF FIRST FIX OWNERSHIP ELEMENT (FOE) */ - /* IN LIST FOR THIS TASK */ - } __attribute__((packed)); - }; - - void *tcbswa; /* F8 ADDRESS OF FIRST SCHEDULER WORK AREA (SWA) SPQE */ - /* ON SWA SPQE CHAIN */ - void *tcbstawa; /* FC ESTAE ROUTINE WORK AREA POINTER */ - - char tcbtcbid[4]; /* 100 CONTAINS BLOCK ID - 'TCB ' */ -#define TCBTCBID "TCB " - - void *tcbrtm12; /* 104 POINTER TO PARAMETER AREAS PASSED FROM RTM1 TO */ - /* RTM2 */ - union { - char tcbestae[4]; /* 108 AREA TO CONTAIN RECOVERY DATA FOR RTM */ - struct { - char tcbscbky; /* 108 KEY IN WHICH SYNCH IS TO PASS CONTROL TO THE */ - /* USER EXIT */ - char tcbestrm; /* 109 ESTAE TERM OPTIONS */ -#define TCBETERM 0x80 /* ... ESTAE EXIT ENTERED WITH TERM OPTION */ -#define TCBSTAFX 0x40 /* ... SERIALIZED BY TCB ACTIVE */ - char tcbertyp; /* 10A TYPE OF ERROR CAUSING ENTRY TO THE RTM. SET */ - /* BY RTM1. */ - char tcbmode; /* 10B MASK INDICATING MODE OF SYSTEM AT TIME OF ERROR. */ - /* SEE IHART1W/MODE FOR INDIVIDUAL BIT DEFINITIONS. */ - } __attribute__((packed)); - }; - - void *tcbukysp; /* 10C ADDRESS OF SPQE'S FOR SUBPOOLS 229 AND 230 */ - /* (USER KEY STORAGE IN THE PRIVATE AREA) */ - short tcbrv326; /* 110 RESERVED (MDC321) */ - - char tcbaffn[2]; /* 112 CPU AFFINITY INDICATOR */ - char tcbfbyt1; /* 114 FLAG BYTE */ -#define TCBEOTFM 0x80 /* ... END OF TASK FLAG FOR FREEMAIN. SET TO 1 BY TASK */ - /* TERMINATION AT START OF TERMINATION PROCESSING */ - /* AND RESET TO 0 AT FINISH. INDICATES THAT A */ - /* FREEMAIN ON A BLOCK OF LOCAL STORAGE THAT IS */ - /* STILL FIXED BY RSM SHOULD RESULT IN A RETURN */ - /* CODE OF 8 RATHER THAN ABNORMAL TERMINATION. */ -#define TCBRV327 0x40 /* ... RESERVED */ -#define TCBNDIOS 0x20 /* ... TASK HAS BEEN SET NON-DISPATCHABLE VIA STATUSND */ - /* WHILE SVC 16 (PURGE) SCANS THE RB CHAIN PURGING */ - /* APPENDAGE-SCHEDULED ASYNCHRONOUS EXIT ROUTINES */ - /* RUNNING UNDER AN IRB/RQE OR NON-RESIDENT ERP'S */ - /* RUNNING UNDER THE SIRB. */ -#define TCBPGNLY 0x10 /* ... SET BY RTM2 TO INDICATE ONLY PURGE PHASE TO BE */ - /* PERFORMED */ -#define TCBRTM2 0x08 /* ... SET BY RTM2 TO INDICATE RTM2 HAS BEEN ENTERED */ - /* FOR THIS TASK */ -#define TCBEOT 0x04 /* ... SET BY RTM2 TO INDICATE TO EXIT THAT END OF TASK */ - /* PROCESSING IS COMPLETE */ -#define TCBRV113 0x02 /* ... RESERVED */ -#define TCBLLH 0x01 /* ... LOCALLY LOCKED TCB HAS PAGE FAULTED, AND I/O IS */ - /* REQUIRED (FIRST LEVEL INTERRUPT HANDLER) */ - char tcbfbyt2; /* 115 FLAG BYTE */ -#define TCBCNCB 0x80 /* ... SET BY RTM2 IN THE JOB STEP TCB WHEN IT HAS BEEN */ - /* ENTERED ON THE TCB FOR AN X22 ABEND */ -#define TCBFMW 0x40 /* ... MOTHER WAITING FLAG. TURNED ON IN A SUBTASK IN */ - /* RTM2 PROCESSING WHEN AN ANCESTOR TASK IS WAITING */ - /* TO ABEND IT. */ -#define TCBFDW 0x20 /* ... DAUGHTER WAITING FLAG. TURNED ON IN A MOTHER */ - /* TASK IN RTM2 PROCESSING WHEN A DAUGHTER IS */ - /* WAITING TO ABEND IT. */ -#define TCBFPRAP 0x10 /* ... SET BY RTM2 TO PREVENT PERCOLATION TO THE TASK */ - /* OF AN ASYNCHRONOUS ABEND */ -#define TCBSSSYN 0x08 /* ... SYNCHRONIZED STATUS STOP PENDING FOR THIS TCB */ -#define TCBECBNV 0x04 /* ... IF 1, ECB POINTED TO BY TCBECB IS NOT TO BE */ - /* VALIDITY CHECKED. IF 0, ECB POINTED TO BY */ - /* TCBECB IS TO BE VALIDITY CHECKED. */ -#define TCBRV122 0x02 /* ... RESERVED */ -#define TCBRV123 0x01 /* ... RESERVED */ - - unsigned char tcbrv124; /* 116 RESERVED */ - unsigned char tcbrv133; /* 117 RESERVED */ - void *tcbrpt; /* 118 ADDRESS OF RADIX PARTITION TREE FOR LOCAL */ - /* STORAGE MANAGEMENT */ - void *tcbvat; /* 11C ADDRESS OF THE VAT (VSAM). THERE IS ONE */ - /* VAT PER JOB STEP TCB. */ - void *tcbswasa; /* 120 ADDRESS OF SAVE AREA USED BY SWA MANAGER */ - void *tcbsvca2; /* 124 RESERVED (TCB screening table) */ -} __attribute__((packed)); /* 128 (286 bytes) */ -#define TCBMNLEN sizeof(TCB) /* LENGTH OF MAIN SECTION OF TCB */ - -/* OS/VS1 - OS/VS2 COMMON EXTENSION */ -/* ADDRESS OF EXTENSION IS IN TCBEXT2 */ -struct tcbxtnt2 { - union { - void *tcbgtf; /* 00 ADDRESS OF GENERALIZED TRACE FACILITY (GTF) */ - /* TEMPORARY TRACE BUFFER */ - struct { - char tcbtflg; /* 00 GTF FLAG BYTE */ -#define TCBASYNC 0x80 /* ... GTF ASYNCHRONOUS GATHER ROUTINE IS IN CONTROL */ -#define TCBERRTN 0x40 /* ... GTF ASYNCHRONOUS GATHER ERROR ROUTINE IS IN */ - /* CONTROL */ -#define TCBDSPIT 0x20 /* ... MACHINE CHECK INTERRUPTION HANDLER SHOULD */ - /* UNCONDITIONALLY BRANCH TO THE DISPATCHER */ - char tcbgtfa[3]; /* 01 ADDRESS OF GTF TEMPORARY TRACE BUFFER */ - } __attribute__((packed)); - }; - - unsigned char tcbrsvab; /* 04 RESERVED */ - unsigned char tcbrcmp[3]; /* 05 MOST RECENT ABEND COMPLETION CODE (INCLUDING */ - /* VALID RECURSIONS IN STAE) */ - void *tcbevent; /* 08 ADDRESS OF EVENT TABLES QUEUE */ - unsigned tcbrsv49; /* 0C RESERVED */ - void *tcbrv142; /* 10 RESERVED */ - void *tcbcauf; /* 14 ADDRESS OF SUBSYSTEM FACILITY CONTROL BLOCK */ - /* (OS/VS2) */ - short tcbrv144; /* 18 RESERVED */ - short tcbrv145; /* 1A RESERVED */ - unsigned char tcbrv146; /* 1C RESERVED */ - unsigned char tcbrv155; /* 1D RESERVED */ - unsigned char tcbrv164; /* 1E RESERVED */ - unsigned char tcbrv173; /* 1F RESERVED */ -} __attribute__((packed)); -#define TCBX2LEN sizeof(TCBXTNT2) /* LENGTH OF COMMON EXTENSION */ -#define TCBLEN (TCBPXLEN+TCBMNLEN+TCBX2LEN) /* TCB LENGTH INCLUDING PREFIX */ - - -#endif /* IKJTCB_H */ diff --git a/src/crent370/include/ikjupt.h b/src/crent370/include/ikjupt.h deleted file mode 100644 index ac93768..0000000 --- a/src/crent370/include/ikjupt.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef IKJUPT_H -#define IKJUPT_H - -/********************************************************************** -* THE USER PROFILE TABLE (UPT) IS BUILT BY THE LOGON/LOGOFF * -* SCHEDULER FROM INFORMATION STORED IN THE UADS AND FROM THE * -* LOGON COMMAND. IT IS IN CORE SHARED BY THE TMP AND THE * -* LOGON/LOGOFF SCHEDULER. CP'S AND SERVICE ROUTINES CAN MODIFY * -* THE UPT, BUT THEY CANNOT FREE IT. * -**********************************************************************/ -typedef struct ikjupt { - char reserved1[2]; /* 00 reserved */ - char uptuser[10]; /* 02 RESERVED FOR INSTALLATION USE */ - char uptsws; /* 0C USERS ENVIRONMENT SWITCHES */ -#define UPTRCVR 0x80 /* ... EDIT RECOVER OPTION IS REQUESTED DEFLT */ -#define UPTNPRM 0x40 /* ... NO PROMPTING IS TO BE DONE */ -#define UPTMID 0x20 /* ... PRINT MESSAGE IDENTIFIERS */ -#define UPTNCOM 0x10 /* ... NO USER COMMUNICATION ALLOWED VIA SEND COMMAND */ -#define UPTPAUS 0x08 /* ... PAUSE FOR '?' WHEN IN NON-INTERACTIVE MODE */ -#define UPTALD 0x04 /* ... ATTN HAS BEEN SPECIFIED AS LINE DELETE CHAR */ -#define UPTMODE 0x02 /* ... MODE MESSAGES DESIRED */ -#define UPTWTP 0x01 /* ... WRITE TO PROGRAMMER MESSAGES DESIRED */ - - char uptcdel; /* 1D CHAR DELETE CHARACTER */ - char uptldel; /* 1E LINE DELETE CHARACTER */ - char reserved2; /* 1F RESERVED */ - char uptprefx[7]; /* 20 DSNAME PREFIX */ - char uptprefl; /* 27 LENGTH OF DSNAME PREFIX */ -} UPT; - -#endif /* IKJUPT_H */ diff --git a/src/crent370/include/limits.h b/src/crent370/include/limits.h deleted file mode 100644 index 2aba5b4..0000000 --- a/src/crent370/include/limits.h +++ /dev/null @@ -1,40 +0,0 @@ -/*********************************************************************/ -/* */ -/* This Program Written by Paul Edwards. */ -/* Released to the Public Domain */ -/* */ -/*********************************************************************/ -/*********************************************************************/ -/* */ -/* limits.h - limits header file. */ -/* */ -/*********************************************************************/ - -#ifndef __LIMITS_INCLUDED -#define __LIMITS_INCLUDED - -#define CHAR_BIT 8 -#define SCHAR_MIN -128 -#define SCHAR_MAX 127 -#define UCHAR_MAX 255 - -#define CHAR_MIN 0 -#define CHAR_MAX 255 - -#define MB_LEN_MAX 1 - -#define SHRT_MAX 32767 -#define SHRT_MIN (-SHRT_MAX-1) -#define USHRT_MAX (65535) -#define UINT16_MAX (65535) - -#define INT_MAX 2147483647 -#define INT_MIN (-INT_MAX-1) -#define INT32_MAX INT_MAX -#define UINT_MAX 4294967295U - -#define LONG_MAX 2147483647L -#define LONG_MIN (-LONG_MAX-1) -#define ULONG_MAX 4294967295UL - -#endif diff --git a/src/crent370/include/locale.h b/src/crent370/include/locale.h deleted file mode 100644 index 45b838c..0000000 --- a/src/crent370/include/locale.h +++ /dev/null @@ -1,48 +0,0 @@ -/*********************************************************************/ -/* */ -/* This Program Written by Paul Edwards. */ -/* Released to the Public Domain */ -/* */ -/*********************************************************************/ -/*********************************************************************/ -/* */ -/* locale.h - locale header file. */ -/* */ -/*********************************************************************/ - -#ifndef __LOCALE_INCLUDED -#define __LOCALE_INCLUDED - -struct lconv { - char *decimal_point; - char *thousands_sep; - char *grouping; - char *int_curr_symbol; - char *currency_symbol; - char *mon_decimal_point; - char *mon_thousands_sep; - char *mon_grouping; - char *positive_sign; - char *negative_sign; - char int_frac_digits; - char frac_digits; - char p_cs_precedes; - char p_sep_by_space; - char n_cs_precedes; - char n_sep_by_space; - char p_sign_posn; - char n_sign_posn; -}; - -#define NULL ((void *)0) -#define LC_ALL 1 -#define LC_COLLATE 2 -#define LC_CTYPE 3 -#define LC_MONETARY 4 -#define LC_NUMERIC 5 -#define LC_TIME 6 - -char *setlocale(int category, const char *locale); -struct lconv *localeconv(void); - -#endif diff --git a/src/crent370/include/math.h b/src/crent370/include/math.h deleted file mode 100644 index eefe5e4..0000000 --- a/src/crent370/include/math.h +++ /dev/null @@ -1,95 +0,0 @@ -/*********************************************************************/ -/* */ -/* This Program Written by Paul Edwards. */ -/* Released to the Public Domain */ -/* */ -/*********************************************************************/ -/*********************************************************************/ -/* */ -/* math.h - math header file. */ -/* */ -/*********************************************************************/ - -#ifndef __MATH_INCLUDED -#define __MATH_INCLUDED - -/* - Some constants - at present these are only defined for IBM -*/ -#if defined(__MVS__) || defined (__CMS__) || defined(__VSE__) -/* - This is about the nearest thing we can get to inf wthout -*/ -#define HUGE_VAL 9.999999999999999999999E72 - -#else - -#define HUGE_VAL 9.999999999999999999999E72 - -#endif - -double ceil(double x); -double fabs(double x); -double floor(double x); -double fmod(double x, double y); - -/* unimplemented: */ - - -double atan2(double y, double x); -double frexp(double value, int *exp); -double ldexp(double x, int exp); -double modf(double value, double *iptr); - -/* - Implemented by d.wade - April 2006 -*/ - -double pow(double x, double y); -double sqrt(double x); -double acos(double x); -double asin(double x); -double atan(double x); -double cos(double x); -double sin(double x); -double tan(double x); -double cosh(double x); -double sinh(double x); -double tanh(double x); -double exp(double x); -double log(double x); -double log10(double x); - - -#ifdef __WATCOMC__ -#pragma intrinsic(cos, sin, tan, exp, log, log10, sqrt) -#endif - -#ifdef __IBMC__ -double _Builtin __fabs(double x); -#define fabs(x) (__fabs((x))) -double _Builtin __fsin(double x); -#define sin(x) (__fsin((x))) -double _Builtin __fcos(double x); -#define cos(x) (__fcos((x))) -double _Builtin __fptan(double x); -#define tan(x) (__fptan((x))) -double _Builtin __fpatan(double x); -#define atan(x) (__fpatan((x))) -double _Builtin __facos(double x); -#define acos(x) (__facos((x))) -double _Builtin __fasin(double x); -#define asin(x) (__fasin((x))) -double _Builtin __fsqrt(double x); -#define sqrt(x) (__fsqrt((x))) -#endif - -#ifdef __BORLANDC__ -double __sin__(double x); -#define sin(x) (__sin__((x))) -double __cos__(double x); -#define cos(x) (__cos__((x))) -#endif - -#endif - diff --git a/src/crent370/include/miniz.h b/src/crent370/include/miniz.h deleted file mode 100644 index 98680c3..0000000 --- a/src/crent370/include/miniz.h +++ /dev/null @@ -1,473 +0,0 @@ -#ifndef MINIZ_H -#define MINIZ_H -/* miniz.c 2.1.0 - public domain deflate/inflate, zlib-subset, ZIP reading/writing/appending, PNG writing - See "unlicense" statement at the end of this file. - Rich Geldreich , last updated Oct. 13, 2013 - Implements RFC 1950: http://www.ietf.org/rfc/rfc1950.txt and RFC 1951: http://www.ietf.org/rfc/rfc1951.txt - - Most API's defined in miniz.c are optional. For example, to disable the archive related functions just define - MINIZ_NO_ARCHIVE_APIS, or to get rid of all stdio usage define MINIZ_NO_STDIO (see the list below for more macros). - - * Low-level Deflate/Inflate implementation notes: - - Compression: Use the "tdefl" API's. The compressor supports raw, static, and dynamic blocks, lazy or - greedy parsing, match length filtering, RLE-only, and Huffman-only streams. It performs and compresses - approximately as well as zlib. - - Decompression: Use the "tinfl" API's. The entire decompressor is implemented as a single function - coroutine: see tinfl_decompress(). It supports decompression into a 32KB (or larger power of 2) wrapping buffer, or into a memory - block large enough to hold the entire file. - - The low-level tdefl/tinfl API's do not make any use of dynamic memory allocation. - - * zlib-style API notes: - - miniz.c implements a fairly large subset of zlib. There's enough functionality present for it to be a drop-in - zlib replacement in many apps: - The z_stream struct, optional memory allocation callbacks - deflateInit/deflateInit2/deflate/deflateReset/deflateEnd/deflateBound - inflateInit/inflateInit2/inflate/inflateEnd - compress, compress2, compressBound, uncompress - CRC-32, Adler-32 - Using modern, minimal code size, CPU cache friendly routines. - Supports raw deflate streams or standard zlib streams with adler-32 checking. - - Limitations: - The callback API's are not implemented yet. No support for gzip headers or zlib static dictionaries. - I've tried to closely emulate zlib's various flavors of stream flushing and return status codes, but - there are no guarantees that miniz.c pulls this off perfectly. - - * PNG writing: See the tdefl_write_image_to_png_file_in_memory() function, originally written by - Alex Evans. Supports 1-4 bytes/pixel images. - - * ZIP archive API notes: - - The ZIP archive API's where designed with simplicity and efficiency in mind, with just enough abstraction to - get the job done with minimal fuss. There are simple API's to retrieve file information, read files from - existing archives, create new archives, append new files to existing archives, or clone archive data from - one archive to another. It supports archives located in memory or the heap, on disk (using stdio.h), - or you can specify custom file read/write callbacks. - - - Archive reading: Just call this function to read a single file from a disk archive: - - void *mz_zip_extract_archive_file_to_heap(const char *pZip_filename, const char *pArchive_name, - size_t *pSize, mz_uint zip_flags); - - For more complex cases, use the "mz_zip_reader" functions. Upon opening an archive, the entire central - directory is located and read as-is into memory, and subsequent file access only occurs when reading individual files. - - - Archives file scanning: The simple way is to use this function to scan a loaded archive for a specific file: - - int mz_zip_reader_locate_file(mz_zip_archive *pZip, const char *pName, const char *pComment, mz_uint flags); - - The locate operation can optionally check file comments too, which (as one example) can be used to identify - multiple versions of the same file in an archive. This function uses a simple linear search through the central - directory, so it's not very fast. - - Alternately, you can iterate through all the files in an archive (using mz_zip_reader_get_num_files()) and - retrieve detailed info on each file by calling mz_zip_reader_file_stat(). - - - Archive creation: Use the "mz_zip_writer" functions. The ZIP writer immediately writes compressed file data - to disk and builds an exact image of the central directory in memory. The central directory image is written - all at once at the end of the archive file when the archive is finalized. - - The archive writer can optionally align each file's local header and file data to any power of 2 alignment, - which can be useful when the archive will be read from optical media. Also, the writer supports placing - arbitrary data blobs at the very beginning of ZIP archives. Archives written using either feature are still - readable by any ZIP tool. - - - Archive appending: The simple way to add a single file to an archive is to call this function: - - mz_bool mz_zip_add_mem_to_archive_file_in_place(const char *pZip_filename, const char *pArchive_name, - const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags); - - The archive will be created if it doesn't already exist, otherwise it'll be appended to. - Note the appending is done in-place and is not an atomic operation, so if something goes wrong - during the operation it's possible the archive could be left without a central directory (although the local - file headers and file data will be fine, so the archive will be recoverable). - - For more complex archive modification scenarios: - 1. The safest way is to use a mz_zip_reader to read the existing archive, cloning only those bits you want to - preserve into a new archive using using the mz_zip_writer_add_from_zip_reader() function (which compiles the - compressed file data as-is). When you're done, delete the old archive and rename the newly written archive, and - you're done. This is safe but requires a bunch of temporary disk space or heap memory. - - 2. Or, you can convert an mz_zip_reader in-place to an mz_zip_writer using mz_zip_writer_init_from_reader(), - append new files as needed, then finalize the archive which will write an updated central directory to the - original archive. (This is basically what mz_zip_add_mem_to_archive_file_in_place() does.) There's a - possibility that the archive's central directory could be lost with this method if anything goes wrong, though. - - - ZIP archive support limitations: - No zip64 or spanning support. Extraction functions can only handle unencrypted, stored or deflated files. - Requires streams capable of seeking. - - * This is a header file library, like stb_image.c. To get only a header file, either cut and paste the - below header, or create miniz.h, #define MINIZ_HEADER_FILE_ONLY, and then include miniz.c from it. - - * Important: For best perf. be sure to customize the below macros for your target platform: - #define MINIZ_USE_UNALIGNED_LOADS_AND_STORES 1 - #define MINIZ_LITTLE_ENDIAN 1 - #define MINIZ_HAS_64BIT_REGISTERS 1 - - * On platforms using glibc, Be sure to "#define _LARGEFILE64_SOURCE 1" before including miniz.c to ensure miniz - uses the 64-bit variants: fopen64(), stat64(), etc. Otherwise you won't be able to process large files - (i.e. 32-bit stat() fails for me on files > 0x7FFFFFFF bytes). -*/ - -#include "miniz_common.h" -#include "miniz_tdef.h" -#include "miniz_tinfl.h" - -/* Defines to completely disable specific portions of miniz.c: - If all macros here are defined the only functionality remaining will be CRC-32, adler-32, tinfl, and tdefl. */ - -/* Define MINIZ_NO_STDIO to disable all usage and any functions which rely on stdio for file I/O. */ -/*#define MINIZ_NO_STDIO */ - -/* If MINIZ_NO_TIME is specified then the ZIP archive functions will not be able to get the current time, or */ -/* get/set file times, and the C run-time funcs that get/set times won't be called. */ -/* The current downside is the times written to your archives will be from 1979. */ -/*#define MINIZ_NO_TIME */ - -/* Define MINIZ_NO_ARCHIVE_APIS to disable all ZIP archive API's. */ -/*#define MINIZ_NO_ARCHIVE_APIS */ - -/* Define MINIZ_NO_ARCHIVE_WRITING_APIS to disable all writing related ZIP archive API's. */ -/*#define MINIZ_NO_ARCHIVE_WRITING_APIS */ - -/* Define MINIZ_NO_ZLIB_APIS to remove all ZLIB-style compression/decompression API's. */ -/*#define MINIZ_NO_ZLIB_APIS */ - -/* Define MINIZ_NO_ZLIB_COMPATIBLE_NAME to disable zlib names, to prevent conflicts against stock zlib. */ -/*#define MINIZ_NO_ZLIB_COMPATIBLE_NAMES */ - -/* Define MINIZ_NO_MALLOC to disable all calls to malloc, free, and realloc. - Note if MINIZ_NO_MALLOC is defined then the user must always provide custom user alloc/free/realloc - callbacks to the zlib and archive API's, and a few stand-alone helper API's which don't provide custom user - functions (such as tdefl_compress_mem_to_heap() and tinfl_decompress_mem_to_heap()) won't work. */ -/*#define MINIZ_NO_MALLOC */ - -#if defined(__TINYC__) && (defined(__linux) || defined(__linux__)) -/* TODO: Work around "error: include file 'sys\utime.h' when compiling with tcc on Linux */ -#define MINIZ_NO_TIME -#endif - -#include - -#if !defined(MINIZ_NO_TIME) && !defined(MINIZ_NO_ARCHIVE_APIS) -#include -#endif - -#if defined(_M_IX86) || defined(_M_X64) || defined(__i386__) || defined(__i386) || defined(__i486__) || defined(__i486) || defined(i386) || defined(__ia64__) || defined(__x86_64__) -/* MINIZ_X86_OR_X64_CPU is only used to help set the below macros. */ -#define MINIZ_X86_OR_X64_CPU 1 -#else -#define MINIZ_X86_OR_X64_CPU 0 -#endif - -#if (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) || MINIZ_X86_OR_X64_CPU -/* Set MINIZ_LITTLE_ENDIAN to 1 if the processor is little endian. */ -#define MINIZ_LITTLE_ENDIAN 1 -#else -#define MINIZ_LITTLE_ENDIAN 0 -#endif - -#if MINIZ_X86_OR_X64_CPU -/* Set MINIZ_USE_UNALIGNED_LOADS_AND_STORES to 1 on CPU's that permit efficient integer loads and stores from unaligned addresses. */ -#define MINIZ_USE_UNALIGNED_LOADS_AND_STORES 1 -#define MINIZ_UNALIGNED_USE_MEMCPY -#else -#define MINIZ_USE_UNALIGNED_LOADS_AND_STORES 0 -#endif - -#if defined(_M_X64) || defined(_WIN64) || defined(__MINGW64__) || defined(_LP64) || defined(__LP64__) || defined(__ia64__) || defined(__x86_64__) -/* Set MINIZ_HAS_64BIT_REGISTERS to 1 if operations on 64-bit integers are reasonably fast (and don't involve compiler generated calls to helper functions). */ -#define MINIZ_HAS_64BIT_REGISTERS 1 -#else -#define MINIZ_HAS_64BIT_REGISTERS 0 -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* ------------------- zlib-style API Definitions. */ - -/* For more compatibility with zlib, miniz.c uses unsigned long for some parameters/struct members. Beware: mz_ulong can be either 32 or 64-bits! */ -typedef unsigned long mz_ulong; - -/* mz_free() internally uses the MZ_FREE() macro (which by default calls free() unless you've modified the MZ_MALLOC macro) to release a block allocated from the heap. */ -void mz_free(void *p); - -#define MZ_ADLER32_INIT (1) -/* mz_adler32() returns the initial adler-32 value to use when called with ptr==NULL. */ -mz_ulong mz_adler32(mz_ulong adler, const unsigned char *ptr, size_t buf_len); - -#define MZ_CRC32_INIT (0) -/* mz_crc32() returns the initial CRC-32 value to use when called with ptr==NULL. */ -mz_ulong mz_crc32(mz_ulong crc, const unsigned char *ptr, size_t buf_len); - -/* Compression strategies. */ -enum -{ - MZ_DEFAULT_STRATEGY = 0, - MZ_FILTERED = 1, - MZ_HUFFMAN_ONLY = 2, - MZ_RLE = 3, - MZ_FIXED = 4 -}; - -/* Method */ -#define MZ_DEFLATED 8 - -/* Heap allocation callbacks. -Note that mz_alloc_func parameter types purpsosely differ from zlib's: items/size is size_t, not unsigned long. */ -typedef void *(*mz_alloc_func)(void *opaque, size_t items, size_t size); -typedef void (*mz_free_func)(void *opaque, void *address); -typedef void *(*mz_realloc_func)(void *opaque, void *address, size_t items, size_t size); - -/* Compression levels: 0-9 are the standard zlib-style levels, 10 is best possible compression (not zlib compatible, and may be very slow), MZ_DEFAULT_COMPRESSION=MZ_DEFAULT_LEVEL. */ -enum -{ - MZ_NO_COMPRESSION = 0, - MZ_BEST_SPEED = 1, - MZ_BEST_COMPRESSION = 9, - MZ_UBER_COMPRESSION = 10, - MZ_DEFAULT_LEVEL = 6, - MZ_DEFAULT_COMPRESSION = -1 -}; - -#define MZ_VERSION "10.1.0" -#define MZ_VERNUM 0xA100 -#define MZ_VER_MAJOR 10 -#define MZ_VER_MINOR 1 -#define MZ_VER_REVISION 0 -#define MZ_VER_SUBREVISION 0 - -#ifndef MINIZ_NO_ZLIB_APIS - -/* Flush values. For typical usage you only need MZ_NO_FLUSH and MZ_FINISH. The other values are for advanced use (refer to the zlib docs). */ -enum -{ - MZ_NO_FLUSH = 0, - MZ_PARTIAL_FLUSH = 1, - MZ_SYNC_FLUSH = 2, - MZ_FULL_FLUSH = 3, - MZ_FINISH = 4, - MZ_BLOCK = 5 -}; - -/* Return status codes. MZ_PARAM_ERROR is non-standard. */ -enum -{ - MZ_OK = 0, - MZ_STREAM_END = 1, - MZ_NEED_DICT = 2, - MZ_ERRNO = -1, - MZ_STREAM_ERROR = -2, - MZ_DATA_ERROR = -3, - MZ_MEM_ERROR = -4, - MZ_BUF_ERROR = -5, - MZ_VERSION_ERROR = -6, - MZ_PARAM_ERROR = -10000 -}; - -/* Window bits */ -#define MZ_DEFAULT_WINDOW_BITS 15 - -struct mz_internal_state; - -/* Compression/decompression stream struct. */ -typedef struct mz_stream_s -{ - const unsigned char *next_in; /* pointer to next byte to read */ - unsigned int avail_in; /* number of bytes available at next_in */ - mz_ulong total_in; /* total number of bytes consumed so far */ - - unsigned char *next_out; /* pointer to next byte to write */ - unsigned int avail_out; /* number of bytes that can be written to next_out */ - mz_ulong total_out; /* total number of bytes produced so far */ - - char *msg; /* error msg (unused) */ - struct mz_internal_state *state; /* internal state, allocated by zalloc/zfree */ - - mz_alloc_func zalloc; /* optional heap allocation function (defaults to malloc) */ - mz_free_func zfree; /* optional heap free function (defaults to free) */ - void *opaque; /* heap alloc function user pointer */ - - int data_type; /* data_type (unused) */ - mz_ulong adler; /* adler32 of the source or uncompressed data */ - mz_ulong reserved; /* not used */ -} mz_stream; - -typedef mz_stream *mz_streamp; - -/* Returns the version string of miniz.c. */ -const char *mz_version(void) asm("MZ@VERSN"); - -/* mz_deflateInit() initializes a compressor with default options: */ -/* Parameters: */ -/* pStream must point to an initialized mz_stream struct. */ -/* level must be between [MZ_NO_COMPRESSION, MZ_BEST_COMPRESSION]. */ -/* level 1 enables a specially optimized compression function that's been optimized purely for performance, not ratio. */ -/* (This special func. is currently only enabled when MINIZ_USE_UNALIGNED_LOADS_AND_STORES and MINIZ_LITTLE_ENDIAN are defined.) */ -/* Return values: */ -/* MZ_OK on success. */ -/* MZ_STREAM_ERROR if the stream is bogus. */ -/* MZ_PARAM_ERROR if the input parameters are bogus. */ -/* MZ_MEM_ERROR on out of memory. */ -int mz_deflateInit(mz_streamp pStream, int level) asm("MZ@DFLTI"); - -/* mz_deflateInit2() is like mz_deflate(), except with more control: */ -/* Additional parameters: */ -/* method must be MZ_DEFLATED */ -/* window_bits must be MZ_DEFAULT_WINDOW_BITS (to wrap the deflate stream with zlib header/adler-32 footer) or -MZ_DEFAULT_WINDOW_BITS (raw deflate/no header or footer) */ -/* mem_level must be between [1, 9] (it's checked but ignored by miniz.c) */ -int mz_deflateInit2(mz_streamp pStream, int level, int method, int window_bits, int mem_level, int strategy) asm("MZ@DFLI2"); - -/* Quickly resets a compressor without having to reallocate anything. Same as calling mz_deflateEnd() followed by mz_deflateInit()/mz_deflateInit2(). */ -int mz_deflateReset(mz_streamp pStream) asm("MZ@DFLTR"); - -/* mz_deflate() compresses the input to output, consuming as much of the input and producing as much output as possible. */ -/* Parameters: */ -/* pStream is the stream to read from and write to. You must initialize/update the next_in, avail_in, next_out, and avail_out members. */ -/* flush may be MZ_NO_FLUSH, MZ_PARTIAL_FLUSH/MZ_SYNC_FLUSH, MZ_FULL_FLUSH, or MZ_FINISH. */ -/* Return values: */ -/* MZ_OK on success (when flushing, or if more input is needed but not available, and/or there's more output to be written but the output buffer is full). */ -/* MZ_STREAM_END if all input has been consumed and all output bytes have been written. Don't call mz_deflate() on the stream anymore. */ -/* MZ_STREAM_ERROR if the stream is bogus. */ -/* MZ_PARAM_ERROR if one of the parameters is invalid. */ -/* MZ_BUF_ERROR if no forward progress is possible because the input and/or output buffers are empty. (Fill up the input buffer or free up some output space and try again.) */ -int mz_deflate(mz_streamp pStream, int flush) asm("MZ@DFLT"); - -/* mz_deflateEnd() deinitializes a compressor: */ -/* Return values: */ -/* MZ_OK on success. */ -/* MZ_STREAM_ERROR if the stream is bogus. */ -int mz_deflateEnd(mz_streamp pStream) asm("MZ@DFLTE"); - -/* mz_deflateBound() returns a (very) conservative upper bound on the amount of data that could be generated by deflate(), assuming flush is set to only MZ_NO_FLUSH or MZ_FINISH. */ -mz_ulong mz_deflateBound(mz_streamp pStream, mz_ulong source_len) asm("MZ@DFLTB"); - -/* Single-call compression functions mz_compress() and mz_compress2(): */ -/* Returns MZ_OK on success, or one of the error codes from mz_deflate() on failure. */ -int mz_compress(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len) asm("MZ@CMPR"); -int mz_compress2(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len, int level) asm("MZ@CMPR2"); - -/* mz_compressBound() returns a (very) conservative upper bound on the amount of data that could be generated by calling mz_compress(). */ -mz_ulong mz_compressBound(mz_ulong source_len) asm("MZ@CMPBD"); - -/* Initializes a decompressor. */ -int mz_inflateInit(mz_streamp pStream) asm("MZ@INFI"); - -/* mz_inflateInit2() is like mz_inflateInit() with an additional option that controls the window size and whether or not the stream has been wrapped with a zlib header/footer: */ -/* window_bits must be MZ_DEFAULT_WINDOW_BITS (to parse zlib header/footer) or -MZ_DEFAULT_WINDOW_BITS (raw deflate). */ -int mz_inflateInit2(mz_streamp pStream, int window_bits) asm("MZ@INFI2"); - -/* Decompresses the input stream to the output, consuming only as much of the input as needed, and writing as much to the output as possible. */ -/* Parameters: */ -/* pStream is the stream to read from and write to. You must initialize/update the next_in, avail_in, next_out, and avail_out members. */ -/* flush may be MZ_NO_FLUSH, MZ_SYNC_FLUSH, or MZ_FINISH. */ -/* On the first call, if flush is MZ_FINISH it's assumed the input and output buffers are both sized large enough to decompress the entire stream in a single call (this is slightly faster). */ -/* MZ_FINISH implies that there are no more source bytes available beside what's already in the input buffer, and that the output buffer is large enough to hold the rest of the decompressed data. */ -/* Return values: */ -/* MZ_OK on success. Either more input is needed but not available, and/or there's more output to be written but the output buffer is full. */ -/* MZ_STREAM_END if all needed input has been consumed and all output bytes have been written. For zlib streams, the adler-32 of the decompressed data has also been verified. */ -/* MZ_STREAM_ERROR if the stream is bogus. */ -/* MZ_DATA_ERROR if the deflate stream is invalid. */ -/* MZ_PARAM_ERROR if one of the parameters is invalid. */ -/* MZ_BUF_ERROR if no forward progress is possible because the input buffer is empty but the inflater needs more input to continue, or if the output buffer is not large enough. Call mz_inflate() again */ -/* with more input data, or with more room in the output buffer (except when using single call decompression, described above). */ -int mz_inflate(mz_streamp pStream, int flush) asm("MZ@INF"); - -/* Deinitializes a decompressor. */ -int mz_inflateEnd(mz_streamp pStream) asm("MZ@INFE"); - -/* Single-call decompression. */ -/* Returns MZ_OK on success, or one of the error codes from mz_inflate() on failure. */ -int mz_uncompress(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len) asm("MZ@UCMP"); - -/* Returns a string description of the specified error code, or NULL if the error code is invalid. */ -const char *mz_error(int err) asm("MZ@ERR"); - -/* Redefine zlib-compatible names to miniz equivalents, so miniz.c can be used as a drop-in replacement for the subset of zlib that miniz.c supports. */ -/* Define MINIZ_NO_ZLIB_COMPATIBLE_NAMES to disable zlib-compatibility if you use zlib in the same project. */ -#ifndef MINIZ_NO_ZLIB_COMPATIBLE_NAMES -typedef unsigned char Byte; -typedef unsigned int uInt; -typedef mz_ulong uLong; -typedef Byte Bytef; -typedef uInt uIntf; -typedef char charf; -typedef int intf; -typedef void *voidpf; -typedef uLong uLongf; -typedef void *voidp; -typedef void *const voidpc; -#define Z_NULL 0 -#define Z_NO_FLUSH MZ_NO_FLUSH -#define Z_PARTIAL_FLUSH MZ_PARTIAL_FLUSH -#define Z_SYNC_FLUSH MZ_SYNC_FLUSH -#define Z_FULL_FLUSH MZ_FULL_FLUSH -#define Z_FINISH MZ_FINISH -#define Z_BLOCK MZ_BLOCK -#define Z_OK MZ_OK -#define Z_STREAM_END MZ_STREAM_END -#define Z_NEED_DICT MZ_NEED_DICT -#define Z_ERRNO MZ_ERRNO -#define Z_STREAM_ERROR MZ_STREAM_ERROR -#define Z_DATA_ERROR MZ_DATA_ERROR -#define Z_MEM_ERROR MZ_MEM_ERROR -#define Z_BUF_ERROR MZ_BUF_ERROR -#define Z_VERSION_ERROR MZ_VERSION_ERROR -#define Z_PARAM_ERROR MZ_PARAM_ERROR -#define Z_NO_COMPRESSION MZ_NO_COMPRESSION -#define Z_BEST_SPEED MZ_BEST_SPEED -#define Z_BEST_COMPRESSION MZ_BEST_COMPRESSION -#define Z_DEFAULT_COMPRESSION MZ_DEFAULT_COMPRESSION -#define Z_DEFAULT_STRATEGY MZ_DEFAULT_STRATEGY -#define Z_FILTERED MZ_FILTERED -#define Z_HUFFMAN_ONLY MZ_HUFFMAN_ONLY -#define Z_RLE MZ_RLE -#define Z_FIXED MZ_FIXED -#define Z_DEFLATED MZ_DEFLATED -#define Z_DEFAULT_WINDOW_BITS MZ_DEFAULT_WINDOW_BITS -#define alloc_func mz_alloc_func -#define free_func mz_free_func -#define internal_state mz_internal_state -#define z_stream mz_stream -#define deflateInit mz_deflateInit -#define deflateInit2 mz_deflateInit2 -#define deflateReset mz_deflateReset -#define deflate mz_deflate -#define deflateEnd mz_deflateEnd -#define deflateBound mz_deflateBound -#define compress mz_compress -#define compress2 mz_compress2 -#define compressBound mz_compressBound -#define inflateInit mz_inflateInit -#define inflateInit2 mz_inflateInit2 -#define inflate mz_inflate -#define inflateEnd mz_inflateEnd -#define uncompress mz_uncompress -#define crc32 mz_crc32 -#define adler32 mz_adler32 -#define MAX_WBITS 15 -#define MAX_MEM_LEVEL 9 -#define zError mz_error -#define ZLIB_VERSION MZ_VERSION -#define ZLIB_VERNUM MZ_VERNUM -#define ZLIB_VER_MAJOR MZ_VER_MAJOR -#define ZLIB_VER_MINOR MZ_VER_MINOR -#define ZLIB_VER_REVISION MZ_VER_REVISION -#define ZLIB_VER_SUBREVISION MZ_VER_SUBREVISION -#define zlibVersion mz_version -#define zlib_version mz_version() -#endif /* #ifndef MINIZ_NO_ZLIB_COMPATIBLE_NAMES */ - -#endif /* MINIZ_NO_ZLIB_APIS */ - -#ifdef __cplusplus -} -#endif - -#endif /* MINIZ_H */ diff --git a/src/crent370/include/miniz_common.h b/src/crent370/include/miniz_common.h deleted file mode 100644 index 7b72294..0000000 --- a/src/crent370/include/miniz_common.h +++ /dev/null @@ -1,104 +0,0 @@ -#ifndef MINIZ_COMMON_H -#define MINIZ_COMMON_H - -#include -#include -#include -#include - -#define MINIZ_NO_STDIO - -/* ------------------- Types and macros */ -typedef unsigned char mz_uint8; -typedef signed short mz_int16; -typedef unsigned short mz_uint16; -typedef unsigned int mz_uint32; -typedef unsigned int mz_uint; -#if 0 -typedef int64_t mz_int64; -typedef uint64_t mz_uint64; -#else -typedef int mz_int64; -typedef unsigned int mz_uint64; -#endif -typedef int mz_bool; - -#define MZ_FALSE (0) -#define MZ_TRUE (1) - -/* Works around MSVC's spammy "warning C4127: conditional expression is constant" message. */ -#ifdef _MSC_VER -#define MZ_MACRO_END while (0, 0) -#else -#define MZ_MACRO_END while (0) -#endif - -#define MINIZ_NO_STDIO - -#ifdef MINIZ_NO_STDIO -#define MZ_FILE void * -#else -#include -#define MZ_FILE FILE -#endif /* #ifdef MINIZ_NO_STDIO */ - -#ifdef MINIZ_NO_TIME -typedef struct mz_dummy_time_t_tag -{ - int m_dummy; -} mz_dummy_time_t; -#define MZ_TIME_T mz_dummy_time_t -#else -#define MZ_TIME_T time_t -#endif - -#define MZ_ASSERT(x) assert(x) - -#ifdef MINIZ_NO_MALLOC -#define MZ_MALLOC(x) NULL -#define MZ_FREE(x) (void)x, ((void)0) -#define MZ_REALLOC(p, x) NULL -#else -#define MZ_MALLOC(x) malloc(x) -#define MZ_FREE(x) free(x) -#define MZ_REALLOC(p, x) realloc(p, x) -#endif - -#define MZ_MAX(a, b) (((a) > (b)) ? (a) : (b)) -#define MZ_MIN(a, b) (((a) < (b)) ? (a) : (b)) -#define MZ_CLEAR_OBJ(obj) memset(&(obj), 0, sizeof(obj)) - -#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN -#define MZ_READ_LE16(p) *((const mz_uint16 *)(p)) -#define MZ_READ_LE32(p) *((const mz_uint32 *)(p)) -#else -#define MZ_READ_LE16(p) ((mz_uint32)(((const mz_uint8 *)(p))[0]) | ((mz_uint32)(((const mz_uint8 *)(p))[1]) << 8U)) -#define MZ_READ_LE32(p) ((mz_uint32)(((const mz_uint8 *)(p))[0]) | ((mz_uint32)(((const mz_uint8 *)(p))[1]) << 8U) | ((mz_uint32)(((const mz_uint8 *)(p))[2]) << 16U) | ((mz_uint32)(((const mz_uint8 *)(p))[3]) << 24U)) -#endif - -#define MZ_READ_LE64(p) (((mz_uint64)MZ_READ_LE32(p)) | (((mz_uint64)MZ_READ_LE32((const mz_uint8 *)(p) + sizeof(mz_uint32))) << 32U)) - -#ifdef _MSC_VER -#define MZ_FORCEINLINE __forceinline -#elif defined(__GNUC__) -#define MZ_FORCEINLINE __inline__ __attribute__((__always_inline__)) -#else -#define MZ_FORCEINLINE inline -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -extern void *miniz_def_alloc_func(void *opaque, size_t items, size_t size) asm("MZ@DALCF"); -extern void miniz_def_free_func(void *opaque, void *address) asm("MZ@DFREF"); -extern void *miniz_def_realloc_func(void *opaque, void *address, size_t items, size_t size) asm("MZ@DREAF"); - -#define MZ_UINT16_MAX (0xFFFFU) -#define MZ_UINT32_MAX (0xFFFFFFFFU) - -#ifdef __cplusplus -} -#endif - -#endif /* MINIZ_COMMON_H */ diff --git a/src/crent370/include/miniz_tdef.h b/src/crent370/include/miniz_tdef.h deleted file mode 100644 index 7be099e..0000000 --- a/src/crent370/include/miniz_tdef.h +++ /dev/null @@ -1,191 +0,0 @@ -#ifndef MINIZ_TDEF_H -#define MINIZ_TDEF_H -#include "miniz_common.h" - -#ifdef __cplusplus -extern "C" { -#endif -/* ------------------- Low-level Compression API Definitions */ - -/* Set TDEFL_LESS_MEMORY to 1 to use less memory (compression will be slightly slower, and raw/dynamic blocks will be output more frequently). */ -#define TDEFL_LESS_MEMORY 0 - -/* tdefl_init() compression flags logically OR'd together (low 12 bits contain the max. number of probes per dictionary search): */ -/* TDEFL_DEFAULT_MAX_PROBES: The compressor defaults to 128 dictionary probes per dictionary search. 0=Huffman only, 1=Huffman+LZ (fastest/crap compression), 4095=Huffman+LZ (slowest/best compression). */ -enum -{ - TDEFL_HUFFMAN_ONLY = 0, - TDEFL_DEFAULT_MAX_PROBES = 128, - TDEFL_MAX_PROBES_MASK = 0xFFF -}; - -/* TDEFL_WRITE_ZLIB_HEADER: If set, the compressor outputs a zlib header before the deflate data, and the Adler-32 of the source data at the end. Otherwise, you'll get raw deflate data. */ -/* TDEFL_COMPUTE_ADLER32: Always compute the adler-32 of the input data (even when not writing zlib headers). */ -/* TDEFL_GREEDY_PARSING_FLAG: Set to use faster greedy parsing, instead of more efficient lazy parsing. */ -/* TDEFL_NONDETERMINISTIC_PARSING_FLAG: Enable to decrease the compressor's initialization time to the minimum, but the output may vary from run to run given the same input (depending on the contents of memory). */ -/* TDEFL_RLE_MATCHES: Only look for RLE matches (matches with a distance of 1) */ -/* TDEFL_FILTER_MATCHES: Discards matches <= 5 chars if enabled. */ -/* TDEFL_FORCE_ALL_STATIC_BLOCKS: Disable usage of optimized Huffman tables. */ -/* TDEFL_FORCE_ALL_RAW_BLOCKS: Only use raw (uncompressed) deflate blocks. */ -/* The low 12 bits are reserved to control the max # of hash probes per dictionary lookup (see TDEFL_MAX_PROBES_MASK). */ -enum -{ - TDEFL_WRITE_ZLIB_HEADER = 0x01000, - TDEFL_COMPUTE_ADLER32 = 0x02000, - TDEFL_GREEDY_PARSING_FLAG = 0x04000, - TDEFL_NONDETERMINISTIC_PARSING_FLAG = 0x08000, - TDEFL_RLE_MATCHES = 0x10000, - TDEFL_FILTER_MATCHES = 0x20000, - TDEFL_FORCE_ALL_STATIC_BLOCKS = 0x40000, - TDEFL_FORCE_ALL_RAW_BLOCKS = 0x80000 -}; - -/* High level compression functions: */ -/* tdefl_compress_mem_to_heap() compresses a block in memory to a heap block allocated via malloc(). */ -/* On entry: */ -/* pSrc_buf, src_buf_len: Pointer and size of source block to compress. */ -/* flags: The max match finder probes (default is 128) logically OR'd against the above flags. Higher probes are slower but improve compression. */ -/* On return: */ -/* Function returns a pointer to the compressed data, or NULL on failure. */ -/* *pOut_len will be set to the compressed data's size, which could be larger than src_buf_len on uncompressible data. */ -/* The caller must free() the returned block when it's no longer needed. */ -void *tdefl_compress_mem_to_heap(const void *pSrc_buf, size_t src_buf_len, size_t *pOut_len, int flags) asm("TD@CMP2H"); - -/* tdefl_compress_mem_to_mem() compresses a block in memory to another block in memory. */ -/* Returns 0 on failure. */ -size_t tdefl_compress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void *pSrc_buf, size_t src_buf_len, int flags) asm("TD@CMP2M"); - -/* Compresses an image to a compressed PNG file in memory. */ -/* On entry: */ -/* pImage, w, h, and num_chans describe the image to compress. num_chans may be 1, 2, 3, or 4. */ -/* The image pitch in bytes per scanline will be w*num_chans. The leftmost pixel on the top scanline is stored first in memory. */ -/* level may range from [0,10], use MZ_NO_COMPRESSION, MZ_BEST_SPEED, MZ_BEST_COMPRESSION, etc. or a decent default is MZ_DEFAULT_LEVEL */ -/* If flip is true, the image will be flipped on the Y axis (useful for OpenGL apps). */ -/* On return: */ -/* Function returns a pointer to the compressed data, or NULL on failure. */ -/* *pLen_out will be set to the size of the PNG image file. */ -/* The caller must mz_free() the returned heap block (which will typically be larger than *pLen_out) when it's no longer needed. */ -void *tdefl_write_image_to_png_file_in_memory_ex(const void *pImage, int w, int h, int num_chans, size_t *pLen_out, mz_uint level, mz_bool flip) asm("TD@WI2MX"); -void *tdefl_write_image_to_png_file_in_memory(const void *pImage, int w, int h, int num_chans, size_t *pLen_out) asm("TD@WI2M"); - -/* Output stream interface. The compressor uses this interface to write compressed data. It'll typically be called TDEFL_OUT_BUF_SIZE at a time. */ -typedef mz_bool (*tdefl_put_buf_func_ptr)(const void *pBuf, int len, void *pUser) asm("TD@PBFP"); - -/* tdefl_compress_mem_to_output() compresses a block to an output stream. The above helpers use this function internally. */ -mz_bool tdefl_compress_mem_to_output(const void *pBuf, size_t buf_len, tdefl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags) asm("TD@CMOUT"); - -enum -{ - TDEFL_MAX_HUFF_TABLES = 3, - TDEFL_MAX_HUFF_SYMBOLS_0 = 288, - TDEFL_MAX_HUFF_SYMBOLS_1 = 32, - TDEFL_MAX_HUFF_SYMBOLS_2 = 19, - TDEFL_LZ_DICT_SIZE = 32768, - TDEFL_LZ_DICT_SIZE_MASK = TDEFL_LZ_DICT_SIZE - 1, - TDEFL_MIN_MATCH_LEN = 3, - TDEFL_MAX_MATCH_LEN = 258 -}; - -/* TDEFL_OUT_BUF_SIZE MUST be large enough to hold a single entire compressed output block (using static/fixed Huffman codes). */ -#if TDEFL_LESS_MEMORY -enum -{ - TDEFL_LZ_CODE_BUF_SIZE = 24 * 1024, - TDEFL_OUT_BUF_SIZE = (TDEFL_LZ_CODE_BUF_SIZE * 13) / 10, - TDEFL_MAX_HUFF_SYMBOLS = 288, - TDEFL_LZ_HASH_BITS = 12, - TDEFL_LEVEL1_HASH_SIZE_MASK = 4095, - TDEFL_LZ_HASH_SHIFT = (TDEFL_LZ_HASH_BITS + 2) / 3, - TDEFL_LZ_HASH_SIZE = 1 << TDEFL_LZ_HASH_BITS -}; -#else -enum -{ - TDEFL_LZ_CODE_BUF_SIZE = 64 * 1024, - TDEFL_OUT_BUF_SIZE = (TDEFL_LZ_CODE_BUF_SIZE * 13) / 10, - TDEFL_MAX_HUFF_SYMBOLS = 288, - TDEFL_LZ_HASH_BITS = 15, - TDEFL_LEVEL1_HASH_SIZE_MASK = 4095, - TDEFL_LZ_HASH_SHIFT = (TDEFL_LZ_HASH_BITS + 2) / 3, - TDEFL_LZ_HASH_SIZE = 1 << TDEFL_LZ_HASH_BITS -}; -#endif - -/* The low-level tdefl functions below may be used directly if the above helper functions aren't flexible enough. The low-level functions don't make any heap allocations, unlike the above helper functions. */ -typedef enum { - TDEFL_STATUS_BAD_PARAM = -2, - TDEFL_STATUS_PUT_BUF_FAILED = -1, - TDEFL_STATUS_OKAY = 0, - TDEFL_STATUS_DONE = 1 -} tdefl_status; - -/* Must map to MZ_NO_FLUSH, MZ_SYNC_FLUSH, etc. enums */ -typedef enum { - TDEFL_NO_FLUSH = 0, - TDEFL_SYNC_FLUSH = 2, - TDEFL_FULL_FLUSH = 3, - TDEFL_FINISH = 4 -} tdefl_flush; - -/* tdefl's compression state structure. */ -typedef struct -{ - tdefl_put_buf_func_ptr m_pPut_buf_func; - void *m_pPut_buf_user; - mz_uint m_flags, m_max_probes[2]; - int m_greedy_parsing; - mz_uint m_adler32, m_lookahead_pos, m_lookahead_size, m_dict_size; - mz_uint8 *m_pLZ_code_buf, *m_pLZ_flags, *m_pOutput_buf, *m_pOutput_buf_end; - mz_uint m_num_flags_left, m_total_lz_bytes, m_lz_code_buf_dict_pos, m_bits_in, m_bit_buffer; - mz_uint m_saved_match_dist, m_saved_match_len, m_saved_lit, m_output_flush_ofs, m_output_flush_remaining, m_finished, m_block_index, m_wants_to_finish; - tdefl_status m_prev_return_status; - const void *m_pIn_buf; - void *m_pOut_buf; - size_t *m_pIn_buf_size, *m_pOut_buf_size; - tdefl_flush m_flush; - const mz_uint8 *m_pSrc; - size_t m_src_buf_left, m_out_buf_ofs; - mz_uint8 m_dict[TDEFL_LZ_DICT_SIZE + TDEFL_MAX_MATCH_LEN - 1]; - mz_uint16 m_huff_count[TDEFL_MAX_HUFF_TABLES][TDEFL_MAX_HUFF_SYMBOLS]; - mz_uint16 m_huff_codes[TDEFL_MAX_HUFF_TABLES][TDEFL_MAX_HUFF_SYMBOLS]; - mz_uint8 m_huff_code_sizes[TDEFL_MAX_HUFF_TABLES][TDEFL_MAX_HUFF_SYMBOLS]; - mz_uint8 m_lz_code_buf[TDEFL_LZ_CODE_BUF_SIZE]; - mz_uint16 m_next[TDEFL_LZ_DICT_SIZE]; - mz_uint16 m_hash[TDEFL_LZ_HASH_SIZE]; - mz_uint8 m_output_buf[TDEFL_OUT_BUF_SIZE]; -} tdefl_compressor; - -/* Initializes the compressor. */ -/* There is no corresponding deinit() function because the tdefl API's do not dynamically allocate memory. */ -/* pBut_buf_func: If NULL, output data will be supplied to the specified callback. In this case, the user should call the tdefl_compress_buffer() API for compression. */ -/* If pBut_buf_func is NULL the user should always call the tdefl_compress() API. */ -/* flags: See the above enums (TDEFL_HUFFMAN_ONLY, TDEFL_WRITE_ZLIB_HEADER, etc.) */ -tdefl_status tdefl_init(tdefl_compressor *d, tdefl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags) asm("TD@INIT"); - -/* Compresses a block of data, consuming as much of the specified input buffer as possible, and writing as much compressed data to the specified output buffer as possible. */ -tdefl_status tdefl_compress(tdefl_compressor *d, const void *pIn_buf, size_t *pIn_buf_size, void *pOut_buf, size_t *pOut_buf_size, tdefl_flush flush) asm("TD@CMPR"); - -/* tdefl_compress_buffer() is only usable when the tdefl_init() is called with a non-NULL tdefl_put_buf_func_ptr. */ -/* tdefl_compress_buffer() always consumes the entire input buffer. */ -tdefl_status tdefl_compress_buffer(tdefl_compressor *d, const void *pIn_buf, size_t in_buf_size, tdefl_flush flush) asm("TD@CMPBF"); - -tdefl_status tdefl_get_prev_return_status(tdefl_compressor *d) asm("TD@GPRST"); -mz_uint32 tdefl_get_adler32(tdefl_compressor *d) asm("TD@GADLR"); - -/* Create tdefl_compress() flags given zlib-style compression parameters. */ -/* level may range from [0,10] (where 10 is absolute max compression, but may be much slower on some files) */ -/* window_bits may be -15 (raw deflate) or 15 (zlib) */ -/* strategy may be either MZ_DEFAULT_STRATEGY, MZ_FILTERED, MZ_HUFFMAN_ONLY, MZ_RLE, or MZ_FIXED */ -mz_uint tdefl_create_comp_flags_from_zip_params(int level, int window_bits, int strategy) asm("TD@CCFFZ"); - -/* Allocate the tdefl_compressor structure in C so that */ -/* non-C language bindings to tdefl_ API don't need to worry about */ -/* structure size and allocation mechanism. */ -tdefl_compressor *tdefl_compressor_alloc() asm("TD@CMPA"); -void tdefl_compressor_free(tdefl_compressor *pComp) asm("TD@CMPFR"); - -#ifdef __cplusplus -} -#endif - -#endif /* MINIZ_TDEF_H */ diff --git a/src/crent370/include/miniz_tinfl.h b/src/crent370/include/miniz_tinfl.h deleted file mode 100644 index bf6e676..0000000 --- a/src/crent370/include/miniz_tinfl.h +++ /dev/null @@ -1,146 +0,0 @@ -#ifndef MINIZ_TINFL_H -#define MINIZ_TINFL_H -#include "miniz_common.h" -/* ------------------- Low-level Decompression API Definitions */ - -#ifdef __cplusplus -extern "C" { -#endif -/* Decompression flags used by tinfl_decompress(). */ -/* TINFL_FLAG_PARSE_ZLIB_HEADER: If set, the input has a valid zlib header and ends with an adler32 checksum (it's a valid zlib stream). Otherwise, the input is a raw deflate stream. */ -/* TINFL_FLAG_HAS_MORE_INPUT: If set, there are more input bytes available beyond the end of the supplied input buffer. If clear, the input buffer contains all remaining input. */ -/* TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF: If set, the output buffer is large enough to hold the entire decompressed stream. If clear, the output buffer is at least the size of the dictionary (typically 32KB). */ -/* TINFL_FLAG_COMPUTE_ADLER32: Force adler-32 checksum computation of the decompressed bytes. */ -enum -{ - TINFL_FLAG_PARSE_ZLIB_HEADER = 1, - TINFL_FLAG_HAS_MORE_INPUT = 2, - TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF = 4, - TINFL_FLAG_COMPUTE_ADLER32 = 8 -}; - -/* High level decompression functions: */ -/* tinfl_decompress_mem_to_heap() decompresses a block in memory to a heap block allocated via malloc(). */ -/* On entry: */ -/* pSrc_buf, src_buf_len: Pointer and size of the Deflate or zlib source data to decompress. */ -/* On return: */ -/* Function returns a pointer to the decompressed data, or NULL on failure. */ -/* *pOut_len will be set to the decompressed data's size, which could be larger than src_buf_len on uncompressible data. */ -/* The caller must call mz_free() on the returned block when it's no longer needed. */ -void *tinfl_decompress_mem_to_heap(const void *pSrc_buf, size_t src_buf_len, size_t *pOut_len, int flags) asm("TI@DM2H"); - -/* tinfl_decompress_mem_to_mem() decompresses a block in memory to another block in memory. */ -/* Returns TINFL_DECOMPRESS_MEM_TO_MEM_FAILED on failure, or the number of bytes written on success. */ -#define TINFL_DECOMPRESS_MEM_TO_MEM_FAILED ((size_t)(-1)) -size_t tinfl_decompress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void *pSrc_buf, size_t src_buf_len, int flags) asm("TI@DM2M"); - -/* tinfl_decompress_mem_to_callback() decompresses a block in memory to an internal 32KB buffer, and a user provided callback function will be called to flush the buffer. */ -/* Returns 1 on success or 0 on failure. */ -typedef int (*tinfl_put_buf_func_ptr)(const void *pBuf, int len, void *pUser) asm("TI@PBFP"); -int tinfl_decompress_mem_to_callback(const void *pIn_buf, size_t *pIn_buf_size, tinfl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags) asm("TI@DMTCB"); - -struct tinfl_decompressor_tag; -typedef struct tinfl_decompressor_tag tinfl_decompressor; - -/* Allocate the tinfl_decompressor structure in C so that */ -/* non-C language bindings to tinfl_ API don't need to worry about */ -/* structure size and allocation mechanism. */ - -tinfl_decompressor *tinfl_decompressor_alloc() asm("TI@DALC"); -void tinfl_decompressor_free(tinfl_decompressor *pDecomp) asm("TI@DFREE"); - -/* Max size of LZ dictionary. */ -#define TINFL_LZ_DICT_SIZE 32768 - -/* Return status. */ -typedef enum { - /* This flags indicates the inflator needs 1 or more input bytes to make forward progress, but the caller is indicating that no more are available. The compressed data */ - /* is probably corrupted. If you call the inflator again with more bytes it'll try to continue processing the input but this is a BAD sign (either the data is corrupted or you called it incorrectly). */ - /* If you call it again with no input you'll just get TINFL_STATUS_FAILED_CANNOT_MAKE_PROGRESS again. */ - TINFL_STATUS_FAILED_CANNOT_MAKE_PROGRESS = -4, - - /* This flag indicates that one or more of the input parameters was obviously bogus. (You can try calling it again, but if you get this error the calling code is wrong.) */ - TINFL_STATUS_BAD_PARAM = -3, - - /* This flags indicate the inflator is finished but the adler32 check of the uncompressed data didn't match. If you call it again it'll return TINFL_STATUS_DONE. */ - TINFL_STATUS_ADLER32_MISMATCH = -2, - - /* This flags indicate the inflator has somehow failed (bad code, corrupted input, etc.). If you call it again without resetting via tinfl_init() it it'll just keep on returning the same status failure code. */ - TINFL_STATUS_FAILED = -1, - - /* Any status code less than TINFL_STATUS_DONE must indicate a failure. */ - - /* This flag indicates the inflator has returned every byte of uncompressed data that it can, has consumed every byte that it needed, has successfully reached the end of the deflate stream, and */ - /* if zlib headers and adler32 checking enabled that it has successfully checked the uncompressed data's adler32. If you call it again you'll just get TINFL_STATUS_DONE over and over again. */ - TINFL_STATUS_DONE = 0, - - /* This flag indicates the inflator MUST have more input data (even 1 byte) before it can make any more forward progress, or you need to clear the TINFL_FLAG_HAS_MORE_INPUT */ - /* flag on the next call if you don't have any more source data. If the source data was somehow corrupted it's also possible (but unlikely) for the inflator to keep on demanding input to */ - /* proceed, so be sure to properly set the TINFL_FLAG_HAS_MORE_INPUT flag. */ - TINFL_STATUS_NEEDS_MORE_INPUT = 1, - - /* This flag indicates the inflator definitely has 1 or more bytes of uncompressed data available, but it cannot write this data into the output buffer. */ - /* Note if the source compressed data was corrupted it's possible for the inflator to return a lot of uncompressed data to the caller. I've been assuming you know how much uncompressed data to expect */ - /* (either exact or worst case) and will stop calling the inflator and fail after receiving too much. In pure streaming scenarios where you have no idea how many bytes to expect this may not be possible */ - /* so I may need to add some code to address this. */ - TINFL_STATUS_HAS_MORE_OUTPUT = 2 -} tinfl_status; - -/* Initializes the decompressor to its initial state. */ -#define tinfl_init(r) \ - do \ - { \ - (r)->m_state = 0; \ - } \ - MZ_MACRO_END -#define tinfl_get_adler32(r) (r)->m_check_adler32 - -/* Main low-level decompressor coroutine function. This is the only function actually needed for decompression. All the other functions are just high-level helpers for improved usability. */ -/* This is a universal API, i.e. it can be used as a building block to build any desired higher level decompression API. In the limit case, it can be called once per every byte input or output. */ -tinfl_status tinfl_decompress(tinfl_decompressor *r, const mz_uint8 *pIn_buf_next, size_t *pIn_buf_size, mz_uint8 *pOut_buf_start, mz_uint8 *pOut_buf_next, size_t *pOut_buf_size, const mz_uint32 decomp_flags) asm("TI@DECMP"); - -/* Internal/private bits follow. */ -enum -{ - TINFL_MAX_HUFF_TABLES = 3, - TINFL_MAX_HUFF_SYMBOLS_0 = 288, - TINFL_MAX_HUFF_SYMBOLS_1 = 32, - TINFL_MAX_HUFF_SYMBOLS_2 = 19, - TINFL_FAST_LOOKUP_BITS = 10, - TINFL_FAST_LOOKUP_SIZE = 1 << TINFL_FAST_LOOKUP_BITS -}; - -typedef struct -{ - mz_uint8 m_code_size[TINFL_MAX_HUFF_SYMBOLS_0]; - mz_int16 m_look_up[TINFL_FAST_LOOKUP_SIZE], m_tree[TINFL_MAX_HUFF_SYMBOLS_0 * 2]; -} tinfl_huff_table; - -#if MINIZ_HAS_64BIT_REGISTERS -#define TINFL_USE_64BIT_BITBUF 1 -#else -#define TINFL_USE_64BIT_BITBUF 0 -#endif - -#if TINFL_USE_64BIT_BITBUF -typedef mz_uint64 tinfl_bit_buf_t; -#define TINFL_BITBUF_SIZE (64) -#else -typedef mz_uint32 tinfl_bit_buf_t; -#define TINFL_BITBUF_SIZE (32) -#endif - -struct tinfl_decompressor_tag -{ - mz_uint32 m_state, m_num_bits, m_zhdr0, m_zhdr1, m_z_adler32, m_final, m_type, m_check_adler32, m_dist, m_counter, m_num_extra, m_table_sizes[TINFL_MAX_HUFF_TABLES]; - tinfl_bit_buf_t m_bit_buf; - size_t m_dist_from_out_buf_start; - tinfl_huff_table m_tables[TINFL_MAX_HUFF_TABLES]; - mz_uint8 m_raw_header[4], m_len_codes[TINFL_MAX_HUFF_SYMBOLS_0 + TINFL_MAX_HUFF_SYMBOLS_1 + 137]; -}; - -#ifdef __cplusplus -} -#endif - -#endif /* MINIZ_TINFL_H */ diff --git a/src/crent370/include/miniz_zip.h b/src/crent370/include/miniz_zip.h deleted file mode 100644 index 9314361..0000000 --- a/src/crent370/include/miniz_zip.h +++ /dev/null @@ -1,436 +0,0 @@ - -#pragma once -#include "miniz.h" - -/* ------------------- ZIP archive reading/writing */ - -#ifndef MINIZ_NO_ARCHIVE_APIS - -#ifdef __cplusplus -extern "C" { -#endif - -enum -{ - /* Note: These enums can be reduced as needed to save memory or stack space - they are pretty conservative. */ - MZ_ZIP_MAX_IO_BUF_SIZE = 64 * 1024, - MZ_ZIP_MAX_ARCHIVE_FILENAME_SIZE = 512, - MZ_ZIP_MAX_ARCHIVE_FILE_COMMENT_SIZE = 512 -}; - -typedef struct -{ - /* Central directory file index. */ - mz_uint32 m_file_index; - - /* Byte offset of this entry in the archive's central directory. Note we currently only support up to UINT_MAX or less bytes in the central dir. */ - mz_uint64 m_central_dir_ofs; - - /* These fields are copied directly from the zip's central dir. */ - mz_uint16 m_version_made_by; - mz_uint16 m_version_needed; - mz_uint16 m_bit_flag; - mz_uint16 m_method; - -#ifndef MINIZ_NO_TIME - MZ_TIME_T m_time; -#endif - - /* CRC-32 of uncompressed data. */ - mz_uint32 m_crc32; - - /* File's compressed size. */ - mz_uint64 m_comp_size; - - /* File's uncompressed size. Note, I've seen some old archives where directory entries had 512 bytes for their uncompressed sizes, but when you try to unpack them you actually get 0 bytes. */ - mz_uint64 m_uncomp_size; - - /* Zip internal and external file attributes. */ - mz_uint16 m_internal_attr; - mz_uint32 m_external_attr; - - /* Entry's local header file offset in bytes. */ - mz_uint64 m_local_header_ofs; - - /* Size of comment in bytes. */ - mz_uint32 m_comment_size; - - /* MZ_TRUE if the entry appears to be a directory. */ - mz_bool m_is_directory; - - /* MZ_TRUE if the entry uses encryption/strong encryption (which miniz_zip doesn't support) */ - mz_bool m_is_encrypted; - - /* MZ_TRUE if the file is not encrypted, a patch file, and if it uses a compression method we support. */ - mz_bool m_is_supported; - - /* Filename. If string ends in '/' it's a subdirectory entry. */ - /* Guaranteed to be zero terminated, may be truncated to fit. */ - char m_filename[MZ_ZIP_MAX_ARCHIVE_FILENAME_SIZE]; - - /* Comment field. */ - /* Guaranteed to be zero terminated, may be truncated to fit. */ - char m_comment[MZ_ZIP_MAX_ARCHIVE_FILE_COMMENT_SIZE]; - -} mz_zip_archive_file_stat; - -typedef size_t (*mz_file_read_func)(void *pOpaque, mz_uint64 file_ofs, void *pBuf, size_t n); -typedef size_t (*mz_file_write_func)(void *pOpaque, mz_uint64 file_ofs, const void *pBuf, size_t n); -typedef mz_bool (*mz_file_needs_keepalive)(void *pOpaque); - -struct mz_zip_internal_state_tag; -typedef struct mz_zip_internal_state_tag mz_zip_internal_state; - -typedef enum { - MZ_ZIP_MODE_INVALID = 0, - MZ_ZIP_MODE_READING = 1, - MZ_ZIP_MODE_WRITING = 2, - MZ_ZIP_MODE_WRITING_HAS_BEEN_FINALIZED = 3 -} mz_zip_mode; - -typedef enum { - MZ_ZIP_FLAG_CASE_SENSITIVE = 0x0100, - MZ_ZIP_FLAG_IGNORE_PATH = 0x0200, - MZ_ZIP_FLAG_COMPRESSED_DATA = 0x0400, - MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY = 0x0800, - MZ_ZIP_FLAG_VALIDATE_LOCATE_FILE_FLAG = 0x1000, /* if enabled, mz_zip_reader_locate_file() will be called on each file as its validated to ensure the func finds the file in the central dir (intended for testing) */ - MZ_ZIP_FLAG_VALIDATE_HEADERS_ONLY = 0x2000, /* validate the local headers, but don't decompress the entire file and check the crc32 */ - MZ_ZIP_FLAG_WRITE_ZIP64 = 0x4000, /* always use the zip64 file format, instead of the original zip file format with automatic switch to zip64. Use as flags parameter with mz_zip_writer_init*_v2 */ - MZ_ZIP_FLAG_WRITE_ALLOW_READING = 0x8000, - MZ_ZIP_FLAG_ASCII_FILENAME = 0x10000 -} mz_zip_flags; - -typedef enum { - MZ_ZIP_TYPE_INVALID = 0, - MZ_ZIP_TYPE_USER, - MZ_ZIP_TYPE_MEMORY, - MZ_ZIP_TYPE_HEAP, - MZ_ZIP_TYPE_FILE, - MZ_ZIP_TYPE_CFILE, - MZ_ZIP_TOTAL_TYPES -} mz_zip_type; - -/* miniz error codes. Be sure to update mz_zip_get_error_string() if you add or modify this enum. */ -typedef enum { - MZ_ZIP_NO_ERROR = 0, - MZ_ZIP_UNDEFINED_ERROR, - MZ_ZIP_TOO_MANY_FILES, - MZ_ZIP_FILE_TOO_LARGE, - MZ_ZIP_UNSUPPORTED_METHOD, - MZ_ZIP_UNSUPPORTED_ENCRYPTION, - MZ_ZIP_UNSUPPORTED_FEATURE, - MZ_ZIP_FAILED_FINDING_CENTRAL_DIR, - MZ_ZIP_NOT_AN_ARCHIVE, - MZ_ZIP_INVALID_HEADER_OR_CORRUPTED, - MZ_ZIP_UNSUPPORTED_MULTIDISK, - MZ_ZIP_DECOMPRESSION_FAILED, - MZ_ZIP_COMPRESSION_FAILED, - MZ_ZIP_UNEXPECTED_DECOMPRESSED_SIZE, - MZ_ZIP_CRC_CHECK_FAILED, - MZ_ZIP_UNSUPPORTED_CDIR_SIZE, - MZ_ZIP_ALLOC_FAILED, - MZ_ZIP_FILE_OPEN_FAILED, - MZ_ZIP_FILE_CREATE_FAILED, - MZ_ZIP_FILE_WRITE_FAILED, - MZ_ZIP_FILE_READ_FAILED, - MZ_ZIP_FILE_CLOSE_FAILED, - MZ_ZIP_FILE_SEEK_FAILED, - MZ_ZIP_FILE_STAT_FAILED, - MZ_ZIP_INVALID_PARAMETER, - MZ_ZIP_INVALID_FILENAME, - MZ_ZIP_BUF_TOO_SMALL, - MZ_ZIP_INTERNAL_ERROR, - MZ_ZIP_FILE_NOT_FOUND, - MZ_ZIP_ARCHIVE_TOO_LARGE, - MZ_ZIP_VALIDATION_FAILED, - MZ_ZIP_WRITE_CALLBACK_FAILED, - MZ_ZIP_TOTAL_ERRORS -} mz_zip_error; - -typedef struct -{ - mz_uint64 m_archive_size; - mz_uint64 m_central_directory_file_ofs; - - /* We only support up to UINT32_MAX files in zip64 mode. */ - mz_uint32 m_total_files; - mz_zip_mode m_zip_mode; - mz_zip_type m_zip_type; - mz_zip_error m_last_error; - - mz_uint64 m_file_offset_alignment; - - mz_alloc_func m_pAlloc; - mz_free_func m_pFree; - mz_realloc_func m_pRealloc; - void *m_pAlloc_opaque; - - mz_file_read_func m_pRead; - mz_file_write_func m_pWrite; - mz_file_needs_keepalive m_pNeeds_keepalive; - void *m_pIO_opaque; - - mz_zip_internal_state *m_pState; - -} mz_zip_archive; - -typedef struct -{ - mz_zip_archive *pZip; - mz_uint flags; - - int status; -#ifndef MINIZ_DISABLE_ZIP_READER_CRC32_CHECKS - mz_uint file_crc32; -#endif - mz_uint64 read_buf_size, read_buf_ofs, read_buf_avail, comp_remaining, out_buf_ofs, cur_file_ofs; - mz_zip_archive_file_stat file_stat; - void *pRead_buf; - void *pWrite_buf; - - size_t out_blk_remain; - - tinfl_decompressor inflator; - -} mz_zip_reader_extract_iter_state; - -/* -------- ZIP reading */ - -/* Inits a ZIP archive reader. */ -/* These functions read and validate the archive's central directory. */ -mz_bool mz_zip_reader_init(mz_zip_archive *pZip, mz_uint64 size, mz_uint flags); - -mz_bool mz_zip_reader_init_mem(mz_zip_archive *pZip, const void *pMem, size_t size, mz_uint flags); - -#ifndef MINIZ_NO_STDIO -/* Read a archive from a disk file. */ -/* file_start_ofs is the file offset where the archive actually begins, or 0. */ -/* actual_archive_size is the true total size of the archive, which may be smaller than the file's actual size on disk. If zero the entire file is treated as the archive. */ -mz_bool mz_zip_reader_init_file(mz_zip_archive *pZip, const char *pFilename, mz_uint32 flags); -mz_bool mz_zip_reader_init_file_v2(mz_zip_archive *pZip, const char *pFilename, mz_uint flags, mz_uint64 file_start_ofs, mz_uint64 archive_size); - -/* Read an archive from an already opened FILE, beginning at the current file position. */ -/* The archive is assumed to be archive_size bytes long. If archive_size is < 0, then the entire rest of the file is assumed to contain the archive. */ -/* The FILE will NOT be closed when mz_zip_reader_end() is called. */ -mz_bool mz_zip_reader_init_cfile(mz_zip_archive *pZip, MZ_FILE *pFile, mz_uint64 archive_size, mz_uint flags); -#endif - -/* Ends archive reading, freeing all allocations, and closing the input archive file if mz_zip_reader_init_file() was used. */ -mz_bool mz_zip_reader_end(mz_zip_archive *pZip); - -/* -------- ZIP reading or writing */ - -/* Clears a mz_zip_archive struct to all zeros. */ -/* Important: This must be done before passing the struct to any mz_zip functions. */ -void mz_zip_zero_struct(mz_zip_archive *pZip); - -mz_zip_mode mz_zip_get_mode(mz_zip_archive *pZip); -mz_zip_type mz_zip_get_type(mz_zip_archive *pZip); - -/* Returns the total number of files in the archive. */ -mz_uint mz_zip_reader_get_num_files(mz_zip_archive *pZip); - -mz_uint64 mz_zip_get_archive_size(mz_zip_archive *pZip); -mz_uint64 mz_zip_get_archive_file_start_offset(mz_zip_archive *pZip); -MZ_FILE *mz_zip_get_cfile(mz_zip_archive *pZip); - -/* Reads n bytes of raw archive data, starting at file offset file_ofs, to pBuf. */ -size_t mz_zip_read_archive_data(mz_zip_archive *pZip, mz_uint64 file_ofs, void *pBuf, size_t n); - -/* All mz_zip funcs set the m_last_error field in the mz_zip_archive struct. These functions retrieve/manipulate this field. */ -/* Note that the m_last_error functionality is not thread safe. */ -mz_zip_error mz_zip_set_last_error(mz_zip_archive *pZip, mz_zip_error err_num); -mz_zip_error mz_zip_peek_last_error(mz_zip_archive *pZip); -mz_zip_error mz_zip_clear_last_error(mz_zip_archive *pZip); -mz_zip_error mz_zip_get_last_error(mz_zip_archive *pZip); -const char *mz_zip_get_error_string(mz_zip_error mz_err); - -/* MZ_TRUE if the archive file entry is a directory entry. */ -mz_bool mz_zip_reader_is_file_a_directory(mz_zip_archive *pZip, mz_uint file_index); - -/* MZ_TRUE if the file is encrypted/strong encrypted. */ -mz_bool mz_zip_reader_is_file_encrypted(mz_zip_archive *pZip, mz_uint file_index); - -/* MZ_TRUE if the compression method is supported, and the file is not encrypted, and the file is not a compressed patch file. */ -mz_bool mz_zip_reader_is_file_supported(mz_zip_archive *pZip, mz_uint file_index); - -/* Retrieves the filename of an archive file entry. */ -/* Returns the number of bytes written to pFilename, or if filename_buf_size is 0 this function returns the number of bytes needed to fully store the filename. */ -mz_uint mz_zip_reader_get_filename(mz_zip_archive *pZip, mz_uint file_index, char *pFilename, mz_uint filename_buf_size); - -/* Attempts to locates a file in the archive's central directory. */ -/* Valid flags: MZ_ZIP_FLAG_CASE_SENSITIVE, MZ_ZIP_FLAG_IGNORE_PATH */ -/* Returns -1 if the file cannot be found. */ -int mz_zip_reader_locate_file(mz_zip_archive *pZip, const char *pName, const char *pComment, mz_uint flags); -int mz_zip_reader_locate_file_v2(mz_zip_archive *pZip, const char *pName, const char *pComment, mz_uint flags, mz_uint32 *file_index); - -/* Returns detailed information about an archive file entry. */ -mz_bool mz_zip_reader_file_stat(mz_zip_archive *pZip, mz_uint file_index, mz_zip_archive_file_stat *pStat); - -/* MZ_TRUE if the file is in zip64 format. */ -/* A file is considered zip64 if it contained a zip64 end of central directory marker, or if it contained any zip64 extended file information fields in the central directory. */ -mz_bool mz_zip_is_zip64(mz_zip_archive *pZip); - -/* Returns the total central directory size in bytes. */ -/* The current max supported size is <= MZ_UINT32_MAX. */ -size_t mz_zip_get_central_dir_size(mz_zip_archive *pZip); - -/* Extracts a archive file to a memory buffer using no memory allocation. */ -/* There must be at least enough room on the stack to store the inflator's state (~34KB or so). */ -mz_bool mz_zip_reader_extract_to_mem_no_alloc(mz_zip_archive *pZip, mz_uint file_index, void *pBuf, size_t buf_size, mz_uint flags, void *pUser_read_buf, size_t user_read_buf_size); -mz_bool mz_zip_reader_extract_file_to_mem_no_alloc(mz_zip_archive *pZip, const char *pFilename, void *pBuf, size_t buf_size, mz_uint flags, void *pUser_read_buf, size_t user_read_buf_size); - -/* Extracts a archive file to a memory buffer. */ -mz_bool mz_zip_reader_extract_to_mem(mz_zip_archive *pZip, mz_uint file_index, void *pBuf, size_t buf_size, mz_uint flags); -mz_bool mz_zip_reader_extract_file_to_mem(mz_zip_archive *pZip, const char *pFilename, void *pBuf, size_t buf_size, mz_uint flags); - -/* Extracts a archive file to a dynamically allocated heap buffer. */ -/* The memory will be allocated via the mz_zip_archive's alloc/realloc functions. */ -/* Returns NULL and sets the last error on failure. */ -void *mz_zip_reader_extract_to_heap(mz_zip_archive *pZip, mz_uint file_index, size_t *pSize, mz_uint flags); -void *mz_zip_reader_extract_file_to_heap(mz_zip_archive *pZip, const char *pFilename, size_t *pSize, mz_uint flags); - -/* Extracts a archive file using a callback function to output the file's data. */ -mz_bool mz_zip_reader_extract_to_callback(mz_zip_archive *pZip, mz_uint file_index, mz_file_write_func pCallback, void *pOpaque, mz_uint flags); -mz_bool mz_zip_reader_extract_file_to_callback(mz_zip_archive *pZip, const char *pFilename, mz_file_write_func pCallback, void *pOpaque, mz_uint flags); - -/* Extract a file iteratively */ -mz_zip_reader_extract_iter_state* mz_zip_reader_extract_iter_new(mz_zip_archive *pZip, mz_uint file_index, mz_uint flags); -mz_zip_reader_extract_iter_state* mz_zip_reader_extract_file_iter_new(mz_zip_archive *pZip, const char *pFilename, mz_uint flags); -size_t mz_zip_reader_extract_iter_read(mz_zip_reader_extract_iter_state* pState, void* pvBuf, size_t buf_size); -mz_bool mz_zip_reader_extract_iter_free(mz_zip_reader_extract_iter_state* pState); - -#ifndef MINIZ_NO_STDIO -/* Extracts a archive file to a disk file and sets its last accessed and modified times. */ -/* This function only extracts files, not archive directory records. */ -mz_bool mz_zip_reader_extract_to_file(mz_zip_archive *pZip, mz_uint file_index, const char *pDst_filename, mz_uint flags); -mz_bool mz_zip_reader_extract_file_to_file(mz_zip_archive *pZip, const char *pArchive_filename, const char *pDst_filename, mz_uint flags); - -/* Extracts a archive file starting at the current position in the destination FILE stream. */ -mz_bool mz_zip_reader_extract_to_cfile(mz_zip_archive *pZip, mz_uint file_index, MZ_FILE *File, mz_uint flags); -mz_bool mz_zip_reader_extract_file_to_cfile(mz_zip_archive *pZip, const char *pArchive_filename, MZ_FILE *pFile, mz_uint flags); -#endif - -#if 0 -/* TODO */ - typedef void *mz_zip_streaming_extract_state_ptr; - mz_zip_streaming_extract_state_ptr mz_zip_streaming_extract_begin(mz_zip_archive *pZip, mz_uint file_index, mz_uint flags); - uint64_t mz_zip_streaming_extract_get_size(mz_zip_archive *pZip, mz_zip_streaming_extract_state_ptr pState); - uint64_t mz_zip_streaming_extract_get_cur_ofs(mz_zip_archive *pZip, mz_zip_streaming_extract_state_ptr pState); - mz_bool mz_zip_streaming_extract_seek(mz_zip_archive *pZip, mz_zip_streaming_extract_state_ptr pState, uint64_t new_ofs); - size_t mz_zip_streaming_extract_read(mz_zip_archive *pZip, mz_zip_streaming_extract_state_ptr pState, void *pBuf, size_t buf_size); - mz_bool mz_zip_streaming_extract_end(mz_zip_archive *pZip, mz_zip_streaming_extract_state_ptr pState); -#endif - -/* This function compares the archive's local headers, the optional local zip64 extended information block, and the optional descriptor following the compressed data vs. the data in the central directory. */ -/* It also validates that each file can be successfully uncompressed unless the MZ_ZIP_FLAG_VALIDATE_HEADERS_ONLY is specified. */ -mz_bool mz_zip_validate_file(mz_zip_archive *pZip, mz_uint file_index, mz_uint flags); - -/* Validates an entire archive by calling mz_zip_validate_file() on each file. */ -mz_bool mz_zip_validate_archive(mz_zip_archive *pZip, mz_uint flags); - -/* Misc utils/helpers, valid for ZIP reading or writing */ -mz_bool mz_zip_validate_mem_archive(const void *pMem, size_t size, mz_uint flags, mz_zip_error *pErr); -mz_bool mz_zip_validate_file_archive(const char *pFilename, mz_uint flags, mz_zip_error *pErr); - -/* Universal end function - calls either mz_zip_reader_end() or mz_zip_writer_end(). */ -mz_bool mz_zip_end(mz_zip_archive *pZip); - -/* -------- ZIP writing */ - -#ifndef MINIZ_NO_ARCHIVE_WRITING_APIS - -/* Inits a ZIP archive writer. */ -/*Set pZip->m_pWrite (and pZip->m_pIO_opaque) before calling mz_zip_writer_init or mz_zip_writer_init_v2*/ -/*The output is streamable, i.e. file_ofs in mz_file_write_func always increases only by n*/ -mz_bool mz_zip_writer_init(mz_zip_archive *pZip, mz_uint64 existing_size); -mz_bool mz_zip_writer_init_v2(mz_zip_archive *pZip, mz_uint64 existing_size, mz_uint flags); - -mz_bool mz_zip_writer_init_heap(mz_zip_archive *pZip, size_t size_to_reserve_at_beginning, size_t initial_allocation_size); -mz_bool mz_zip_writer_init_heap_v2(mz_zip_archive *pZip, size_t size_to_reserve_at_beginning, size_t initial_allocation_size, mz_uint flags); - -#ifndef MINIZ_NO_STDIO -mz_bool mz_zip_writer_init_file(mz_zip_archive *pZip, const char *pFilename, mz_uint64 size_to_reserve_at_beginning); -mz_bool mz_zip_writer_init_file_v2(mz_zip_archive *pZip, const char *pFilename, mz_uint64 size_to_reserve_at_beginning, mz_uint flags); -mz_bool mz_zip_writer_init_cfile(mz_zip_archive *pZip, MZ_FILE *pFile, mz_uint flags); -#endif - -/* Converts a ZIP archive reader object into a writer object, to allow efficient in-place file appends to occur on an existing archive. */ -/* For archives opened using mz_zip_reader_init_file, pFilename must be the archive's filename so it can be reopened for writing. If the file can't be reopened, mz_zip_reader_end() will be called. */ -/* For archives opened using mz_zip_reader_init_mem, the memory block must be growable using the realloc callback (which defaults to realloc unless you've overridden it). */ -/* Finally, for archives opened using mz_zip_reader_init, the mz_zip_archive's user provided m_pWrite function cannot be NULL. */ -/* Note: In-place archive modification is not recommended unless you know what you're doing, because if execution stops or something goes wrong before */ -/* the archive is finalized the file's central directory will be hosed. */ -mz_bool mz_zip_writer_init_from_reader(mz_zip_archive *pZip, const char *pFilename); -mz_bool mz_zip_writer_init_from_reader_v2(mz_zip_archive *pZip, const char *pFilename, mz_uint flags); - -/* Adds the contents of a memory buffer to an archive. These functions record the current local time into the archive. */ -/* To add a directory entry, call this method with an archive name ending in a forwardslash with an empty buffer. */ -/* level_and_flags - compression level (0-10, see MZ_BEST_SPEED, MZ_BEST_COMPRESSION, etc.) logically OR'd with zero or more mz_zip_flags, or just set to MZ_DEFAULT_COMPRESSION. */ -mz_bool mz_zip_writer_add_mem(mz_zip_archive *pZip, const char *pArchive_name, const void *pBuf, size_t buf_size, mz_uint level_and_flags); - -/* Like mz_zip_writer_add_mem(), except you can specify a file comment field, and optionally supply the function with already compressed data. */ -/* uncomp_size/uncomp_crc32 are only used if the MZ_ZIP_FLAG_COMPRESSED_DATA flag is specified. */ -mz_bool mz_zip_writer_add_mem_ex(mz_zip_archive *pZip, const char *pArchive_name, const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags, - mz_uint64 uncomp_size, mz_uint32 uncomp_crc32); - -mz_bool mz_zip_writer_add_mem_ex_v2(mz_zip_archive *pZip, const char *pArchive_name, const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags, - mz_uint64 uncomp_size, mz_uint32 uncomp_crc32, MZ_TIME_T *last_modified, const char *user_extra_data_local, mz_uint user_extra_data_local_len, - const char *user_extra_data_central, mz_uint user_extra_data_central_len); - -/* Adds the contents of a file to an archive. This function also records the disk file's modified time into the archive. */ -/* File data is supplied via a read callback function. User mz_zip_writer_add_(c)file to add a file directly.*/ -mz_bool mz_zip_writer_add_read_buf_callback(mz_zip_archive *pZip, const char *pArchive_name, mz_file_read_func read_callback, void* callback_opaque, mz_uint64 size_to_add, - const MZ_TIME_T *pFile_time, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags, const char *user_extra_data_local, mz_uint user_extra_data_local_len, - const char *user_extra_data_central, mz_uint user_extra_data_central_len); - -#ifndef MINIZ_NO_STDIO -/* Adds the contents of a disk file to an archive. This function also records the disk file's modified time into the archive. */ -/* level_and_flags - compression level (0-10, see MZ_BEST_SPEED, MZ_BEST_COMPRESSION, etc.) logically OR'd with zero or more mz_zip_flags, or just set to MZ_DEFAULT_COMPRESSION. */ -mz_bool mz_zip_writer_add_file(mz_zip_archive *pZip, const char *pArchive_name, const char *pSrc_filename, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags); - -/* Like mz_zip_writer_add_file(), except the file data is read from the specified FILE stream. */ -mz_bool mz_zip_writer_add_cfile(mz_zip_archive *pZip, const char *pArchive_name, MZ_FILE *pSrc_file, mz_uint64 size_to_add, - const MZ_TIME_T *pFile_time, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags, const char *user_extra_data_local, mz_uint user_extra_data_local_len, - const char *user_extra_data_central, mz_uint user_extra_data_central_len); -#endif - -/* Adds a file to an archive by fully cloning the data from another archive. */ -/* This function fully clones the source file's compressed data (no recompression), along with its full filename, extra data (it may add or modify the zip64 local header extra data field), and the optional descriptor following the compressed data. */ -mz_bool mz_zip_writer_add_from_zip_reader(mz_zip_archive *pZip, mz_zip_archive *pSource_zip, mz_uint src_file_index); - -/* Finalizes the archive by writing the central directory records followed by the end of central directory record. */ -/* After an archive is finalized, the only valid call on the mz_zip_archive struct is mz_zip_writer_end(). */ -/* An archive must be manually finalized by calling this function for it to be valid. */ -mz_bool mz_zip_writer_finalize_archive(mz_zip_archive *pZip); - -/* Finalizes a heap archive, returning a poiner to the heap block and its size. */ -/* The heap block will be allocated using the mz_zip_archive's alloc/realloc callbacks. */ -mz_bool mz_zip_writer_finalize_heap_archive(mz_zip_archive *pZip, void **ppBuf, size_t *pSize); - -/* Ends archive writing, freeing all allocations, and closing the output file if mz_zip_writer_init_file() was used. */ -/* Note for the archive to be valid, it *must* have been finalized before ending (this function will not do it for you). */ -mz_bool mz_zip_writer_end(mz_zip_archive *pZip); - -/* -------- Misc. high-level helper functions: */ - -/* mz_zip_add_mem_to_archive_file_in_place() efficiently (but not atomically) appends a memory blob to a ZIP archive. */ -/* Note this is NOT a fully safe operation. If it crashes or dies in some way your archive can be left in a screwed up state (without a central directory). */ -/* level_and_flags - compression level (0-10, see MZ_BEST_SPEED, MZ_BEST_COMPRESSION, etc.) logically OR'd with zero or more mz_zip_flags, or just set to MZ_DEFAULT_COMPRESSION. */ -/* TODO: Perhaps add an option to leave the existing central dir in place in case the add dies? We could then truncate the file (so the old central dir would be at the end) if something goes wrong. */ -mz_bool mz_zip_add_mem_to_archive_file_in_place(const char *pZip_filename, const char *pArchive_name, const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags); -mz_bool mz_zip_add_mem_to_archive_file_in_place_v2(const char *pZip_filename, const char *pArchive_name, const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags, mz_zip_error *pErr); - -/* Reads a single file from an archive into a heap block. */ -/* If pComment is not NULL, only the file with the specified comment will be extracted. */ -/* Returns NULL on failure. */ -void *mz_zip_extract_archive_file_to_heap(const char *pZip_filename, const char *pArchive_name, size_t *pSize, mz_uint flags); -void *mz_zip_extract_archive_file_to_heap_v2(const char *pZip_filename, const char *pArchive_name, const char *pComment, size_t *pSize, mz_uint flags, mz_zip_error *pErr); - -#endif /* #ifndef MINIZ_NO_ARCHIVE_WRITING_APIS */ - -#ifdef __cplusplus -} -#endif - -#endif /* MINIZ_NO_ARCHIVE_APIS */ diff --git a/src/crent370/include/miniz_zip.h:zone.identifier:$data b/src/crent370/include/miniz_zip.h:zone.identifier:$data deleted file mode 100644 index 7d95642..0000000 --- a/src/crent370/include/miniz_zip.h:zone.identifier:$data +++ /dev/null @@ -1,3 +0,0 @@ -[ZoneTransfer] -ZoneId=3 -ReferrerUrl=O:\miniz-master.zip diff --git a/src/crent370/include/modmap.h b/src/crent370/include/modmap.h deleted file mode 100644 index d6706d2..0000000 --- a/src/crent370/include/modmap.h +++ /dev/null @@ -1,281 +0,0 @@ -#ifndef MODMAP_H -#define MODMAP_H -#include -#include -#include -#include "clibary.h" -#include "clibstae.h" - -/* Module Map */ -typedef struct modmap MODMAP; /* Module Map */ -typedef struct mmsd MMSD; /* Module Map Section */ -typedef struct mmlr MMLR; /* Module Map Label Reference */ -typedef struct mmrl MMRL; /* Module Map Relocation Label */ -typedef struct mmld MMLD; /* Module Map Load Data */ - -struct modmap { - unsigned char eye[8]; /* 00 eye catcher */ -#define MODMAP_EYE "*MODMAP*" /* ... */ - FILE *fp; /* 08 file handle */ - MMSD **mmsd; /* 0C array of sections */ - unsigned char fn[56]; /* 10 dataset(member) */ - MMLD **mmld; /* 48 array of load data */ -}; /* 4C (76 bytes) */ - -struct mmld { - unsigned esdid; /* 00 section identifier */ - unsigned size; /* 04 section text size */ -}; - -struct mmsd { - unsigned char name[8]; /* 00 section name */ - unsigned esdid; /* 08 identifier */ - unsigned address; /* 0C address of this section */ - unsigned size; /* 10 size of this section */ - MMLR **mmlr; /* 14 array of labels */ - MMRL **mmrl; /* 18 array of relocation */ - unsigned char type; /* 1C type (see ESD_TYPE_ below) */ - unsigned char unused[3]; /* 1D unused */ - unsigned char *text; /* 20 text for this section */ -}; /* 24 (36 bytes) */ - -struct mmlr { - unsigned char name[8]; /* 00 label name */ - unsigned esdid; /* 08 identifier */ - unsigned address; /* 0C address of this label */ - unsigned char type; /* 10 type (see ESD_TYPE_ below) */ - unsigned char unused[3]; /* 11 unused */ -}; /* 15 (20 bytes) */ - -struct mmrl { - unsigned esdid; /* 00 esdid of target section */ - unsigned address; /* 04 address of target section */ - unsigned char unres; /* 08 unresolved */ - unsigned char type; /* 09 (see RLD_FLAG_TYPExxx) */ - unsigned char size; /* 0A size of address target */ - unsigned char neg; /* 0B negative relocation */ - unsigned value; /* 0C value before relocation */ -}; /* 10 (16 bytes) */ - -/* find MMSD record by ESD ID */ -extern MMSD * mmapfsd(MODMAP *mm, unsigned esdid) asm("MMAPFSD"); -extern MMSD * modmap_find_sd(MODMAP *mm, unsigned esdid) asm("MMAPFSD"); - -/* find MMLR record by ESD ID */ -extern MMLR * mmapflr(MODMAP *mm, unsigned esdid) asm("MMAPFLR"); -extern MMLR * modmap_find_lr(MODMAP *mm, unsigned esdid) asm("MMAPFLR"); - -/* free MMLD record */ -extern void mmapfrld(MMLD **mmld) asm("MMAPFRLD"); -extern void modmap_free_ld(MMLD **mmld) asm("MMAPFRLD"); - -/* free MMRL record */ -extern void mmapfrrl(MMRL **mmrl) asm("MMAPFRRL"); -extern void modmap_free_rl(MMRL **mmrl) asm("MMAPFRRL"); - -/* free MMLR record */ -extern void mmapfrlr(MMLR **mmlr) asm("MMAPFRLR"); -extern void modmap_free_lr(MMLR **mmlr) asm("MMAPFRLR"); - -/* free MMSD record */ -extern void mmapfrsd(MMSD **mmsd) asm("MMAPFRSD"); -extern void modmap_free_sd(MMSD **mmsd) asm("MMAPFRSD"); - -/* reset MODMAP record */ -extern MODMAP * mmaprset(MODMAP *mm) asm("MMAPRSET"); -extern MODMAP * modmap_reset(MODMAP *mm) asm("MMAPRSET"); - -/* reset MODMAP MMLD array */ -extern MODMAP * mmaprsld(MODMAP *mm) asm("MMAPRSLD"); -extern MODMAP * modmap_reset_ld(MODMAP *mm) asm("MMAPRSLD"); - -/* free MODMAP record */ -extern void mmapfree(MODMAP **mm) asm("MMAPFREE"); -extern void modmap_free(MODMAP **mm) asm("MMAPFREE"); - -/* allocate a new MODMAP record */ -extern MODMAP * mmapnew(void) asm("MMAPNEW"); -extern MODMAP * modmap_new(void) asm("MMAPNEW"); - -/* open file (dataset) containing load module to be mapped */ -extern int mmapopen(MODMAP *mm, const char *fn) asm("MMAPOPEN"); -extern int modmap_open(MODMAP *mm, const char *fn) asm("MMAPOPEN"); - -/* process load module into MMSD and MMLR records */ -extern int mmapproc(MODMAP *mm) asm("MMAPPROC"); -extern int modmap_process(MODMAP *mm) asm("MMAPPROC"); - -/* dump MODMAP via wtof() */ -extern int mmapdump(MODMAP *mm) asm("MMAPDUMP"); -extern int modmap_dump(MODMAP *mm) asm("MMAPDUMP"); - -/* sort MMSD and MMLR records in the MODMAP record */ -extern int mmapsort(MODMAP *mm) asm("MMAPSORT"); -extern int modmap_sort(MODMAP *mm) asm("MMAPSORT"); - -/* add base to address for all records */ -extern int modmap_base(MODMAP *mm, unsigned base) asm("MMAPBASE"); - -/* zap memory using modmap addresses between base and base + size */ -extern int modmap_zap(MODMAP *mm, unsigned base, unsigned size) asm("MMAPZAP"); - -/* Load module mapping records */ -typedef struct mmcesdr MMCESDR;/* Module Map CESD record */ -typedef struct mmrldr MMRLDR; /* Module Map RLD record */ -typedef struct mmidr MMIDR; /* Module Map IDR record */ -typedef struct mmctl MMCTL; /* Module Map CTL record */ - -/* Module Map mapping internals */ -typedef struct mmod MMOD; /* Load module record id */ -typedef struct mmesd MMESD; /* Module Map ESD */ -typedef struct mmrld MMRLD; /* Relocation Dictionary */ -typedef struct mmrldf MMRLDF; /* Relocation Dict Flag and Address */ -typedef struct mmctld MMCTLD; /* Control Record Data */ - -#if !defined(GET3) -/* Use GET3 to convert a 3 byte character array to a value. -** Example: int addr = (int) GET3(esd->address); -*/ -#define GET3(s) ( \ - ((unsigned char*)(s))[0] << 16 | \ - ((unsigned char*)(s))[1] << 8 | \ - ((unsigned char*)(s))[2] ) -#endif - -/* Module record identifier */ -struct mmod { - unsigned char id; /* 00 ID */ -#define MMOD_ID_CTL 0x01 /* ... Control record */ -#define MMOD_ID_RLD 0x02 /* ... Relocation record */ -#define MMOD_ID_CTLRLD 0x03 /* ... Control Relocation record */ -#define MMOD_ID_CTLEOS 0x05 /* ... Control EOS record */ -#define MMOD_ID_RLDEOS 0x06 /* ... Relocation EOS record */ -#define MMOD_ID_CTLRLDEOS 0x07 /* ... Control Relocation EOS rec */ -#define MMOD_ID_CTLEOM 0x0D /* ... Control EOM record */ -#define MMOD_ID_RLDEOM 0x0E /* ... Relocation EOM record */ -#define MMOD_ID_CTLRLDEOM 0x0F /* ... Control Relocation EOM rec */ -#define MMOD_ID_SCAT 0x10 /* ... Scatter/Translation record */ -#define MMOD_ID_CESD 0x20 /* ... CESD record */ -#define MMOD_ID_SYM 0x40 /* ... SYM record */ -#define MMOD_ID_IDR 0x80 /* ... IDR record */ -}; - -/* Module Map ESD entry */ -struct mmesd { - unsigned char symbol[8]; /* 00 symbol name */ - unsigned char type; /* 08 type */ -#define ESD_TYPE_SD 0x00 /* ... Section Definition */ -#define ESD_TYPE_ER 0x02 /* ... External Reference */ -#define ESD_TYPE_LR 0x03 /* ... Label Reference */ -#define ESD_TYPE_PC 0x04 /* ... Private Code */ -#define ESD_TYPE_CM 0x05 /* ... Common */ -#define ESD_TYPE_PR 0x06 /* ... Pseudo Register */ -#define ESD_TYPE_NULL 0x07 /* ... NULL */ -#define ESD_TYPE_WX 0x0A /* ... Weak External Reference */ -#define ESD_TYPE_QSD 0x0D /* ... Quad Aligned SD */ -#define ESD_TYPE_QPC 0x0E /* ... Quad Aligned PC */ -#define ESD_TYPE_QCM 0x0F /* ... Quad Aligned CM */ -#define ESD_TYPE_DPC 0x14 /* ... Deleted PC */ - - unsigned char address[3]; /* 09 address (3 bytes) */ - unsigned char flag; /* 0C flags */ -#define ESD_FLAG_RMODE64 0x20 /* ... RMODE 64 if 1 */ -#define ESD_FLAG_AMODE64 0x10 /* ... AMODE 64 if 1 */ -#define ESD_FLAG_RSECT 0x08 /* ... RSECT if 1 */ -#define ESD_FLAG_RMODE31 0x04 /* ... RMODE 31 if 1, 24 if 0 */ -#define ESD_FLAG_AMODE 0x03 /* ... 00=24, 01=24, 10=31, 11=ANY */ - - unsigned char id[3]; /* 0D Length(SD,PC,CM,PR), ID=(LR) */ -}; - -/* Module Map Consolidated ESD record */ -struct mmcesdr { - unsigned char id; /* 00 MMOD_ID_CESD (0x20) */ - unsigned char flag; /* 01 flag byte */ - unsigned char spare[2]; /* 02 binary zeros */ - unsigned short esdid; /* 04 ESD ID of first ESD item */ - unsigned short count; /* 06 count in bytes of ESD data */ - MMESD esd[1]; /* 08 start of ESD data */ -}; - -/* Module Map Relocation Dictionary Flag and Address */ -struct mmrldf { - unsigned char flag; /* 00 x'xxxxLLST' */ -#define RLD_FLAG_UNRES 0x80 /* ... unresolved external */ -#define RLD_FLAG_ADD4 0x40 /* ... add 4 to the LL value */ -#define RLD_FLAG_TYPE 0x30 /* ... RLD type bits */ -#define RLD_FLAG_TYPEA 0x00 /* ... DC A(name) */ -#define RLD_FLAG_TYPEV 0x10 /* ... DC V(name) */ -#define RLD_FLAG_TYPEPR 0x20 /* ... Pseudo register disp */ -#define RLD_FLAG_TYPECP 0x30 /* ... Cumulative pseudo register */ -#define RLD_FLAG_LL 0x0C /* ... LL mask */ -#define RLD_FLAG_LL2 0x04 /* ... LL two byte address */ -#define RLD_FLAG_LL3 0x08 /* ... LL three byte address */ -#define RLD_FLAG_LL4 0x0C /* ... LL four byte address */ -#define RLD_FLAG_NEG 0x02 /* ... S negative relocation dir */ -#define RLD_FLAG_SAME 0x01 /* ... T on next item is MMRLDF */ - /* off next item is MMRLD */ - unsigned char address[3]; /* 01 address (3 bytes) */ -}; - -/* Module Map Relocation Dictionary */ -struct mmrld { - unsigned short relid; /* 00 entry id of relocation symbol */ - unsigned short posid; /* 02 entry id of position symbol */ - MMRLDF mmrldf[1]; /* 04 RLD flags and address */ -}; - -/* Module Map Relocation Dictionary Record */ -#if 0 -struct mmrldr { - unsigned char id; /* 00 MMOD_ID_RLD[[EOS|EOM]] */ - unsigned char spare[2]; /* 01 binary zeros */ - unsigned char count; /* 03 number of RLD following text */ - unsigned char count2[2]; /* 04 binary zeros */ - unsigned short bytes; /* 06 number of RLD in bytes */ - unsigned char spare8[8]; /* 08 binary zeros */ - MMRLD rld[1]; /* 10 start of RLD data */ -}; -#else -struct mmrldr { - unsigned char id; /* 00 MMOD_ID_CTL[RLD] */ - unsigned char spare[3]; /* 01 always zero */ - unsigned short ctlcnt; /* 04 length of control data */ - unsigned short rldcnt; /* 06 length of relocation data */ - unsigned char ccw[8]; /* 08 CCW or zeros */ - unsigned char data[0]; /* 10 start of data */ -} __attribute__((packed)); -#endif - -/* Control Record */ -struct mmctl { - unsigned char id; /* 00 MMOD_ID_CTL[RLD] */ - unsigned char spare[3]; /* 01 always zero */ - unsigned short ctlcnt; /* 04 length of control data */ - unsigned short rldcnt; /* 06 length of relocation data */ - unsigned char ccw[8]; /* 08 CCW or zeros */ - unsigned char data[0]; /* 10 start of data */ -} __attribute__((packed)); - -/* Control Record Data */ -struct mmctld { - unsigned short esdid; /* 00 ESD ID */ - unsigned short count; /* 02 ESD size in bytes */ -} __attribute__((packed)); - -/* Identification Record */ -struct mmidr { - unsigned char id; /* 00 MMOD_ID_IDR 0x80 */ - unsigned char bytes; /* 01 byte count of IDR data (6-255)*/ - unsigned char type; /* 02 sub-type of IDR data */ -#define IDR_TYPE 0x0F /* ... mask for type values */ -#define IDR_TYPE_ZAP 0x01 /* ... data supplied by HMASPZAP */ -#define IDR_TYPE_LINK 0x02 /* ... linkage editor data */ -#define IDR_TYPE_TRAN 0x04 /* ... translator supplied data */ -#define IDR_TYPE_USER 0x08 /* ... user (system) supplied data */ -#define IDR_LAST 0x80 /* ... indicates last IDR record */ - unsigned char data[1]; /* 03 start of data */ -}; - - -#endif /* MODMAP_H */ diff --git a/src/crent370/include/mvssupa.h b/src/crent370/include/mvssupa.h deleted file mode 100644 index 78ccb6d..0000000 --- a/src/crent370/include/mvssupa.h +++ /dev/null @@ -1,41 +0,0 @@ -#include - -#pragma linkage(__aopen, OS) -void *__aopen(const char *ddname, int *mode, int *recfm, - int *lrecl, int *blksize, void **asmbuf, const char *member); -#pragma linkage(__aread, OS) -int __aread(void *handle, void *buf, size_t *len); -#pragma linkage(__awrite, OS) -int __awrite(void *handle, unsigned char **buf, size_t *sz); -#pragma linkage(__aclose, OS) -void __aclose(void *handle); -#pragma linkage(__getclk, OS) -unsigned int __getclk(void *buf); -#pragma linkage(__gettz, OS) -int __gettz(void); -#pragma linkage(__getm, OS) -void *__getm(size_t sz); -#pragma linkage(__freem, OS) -void __freem(void *ptr); - -#pragma linkage(__dynal, OS) -int __dynal(size_t ddn_len, char *ddn, size_t dsn_len, char *dsn); - -#pragma linkage(__idcams, OS) -int __idcams(size_t len, char *data); /* non-reentrant assembler subroutine, Yick! */ - -int idcams(const char *fmt, ...); /* reentrant C function, LINKs to IDCAMS external program */ - - -#pragma linkage(__system, OS) -#ifdef MUSIC -int __system(int len, const char *command); -int __textlc(void); -int __svc99(void *rb); -#else -int __system(int req_type, - size_t pgm_len, - char *pgm, - size_t parm_len, - char *parm); -#endif diff --git a/src/crent370/include/osdcb.h b/src/crent370/include/osdcb.h deleted file mode 100644 index a3ad238..0000000 --- a/src/crent370/include/osdcb.h +++ /dev/null @@ -1,673 +0,0 @@ -#ifndef OSDCB_H -#define OSDCB_H - -typedef struct dcb DCB; /* DCB */ -typedef struct exitlist EXITLIST; /* DCB exit list */ - -#ifndef BIT0 -#define BIT0 0x80 -#define BIT1 0x40 -#define BIT2 0x20 -#define BIT3 0x10 -#define BIT4 0x08 -#define BIT5 0x04 -#define BIT6 0x02 -#define BIT7 0x01 -#endif - -#pragma pack(1) -struct exitlist { - unsigned exit_code; /* 00 actually an enum _e_exit, - possibly with LAST bit set */ - void *exit_addr; /* 04 exit function address */ -}; -#pragma pack(reset) - - -#pragma pack(1) -struct dcb { - union { - unsigned dcbrelad; /* 00 PARTITIONED ORGANIZATION DATA SET - - ADDRESS (IN THE FORM TTRN) OF MEMBER - CURRENTLY USED. --- - SYS1.LOGREC DATA SET - IF CCH OPTION - HAS BEEN SPECIFIED IN SYSGEN PROCESS, - ADDRESS OF A 12-BYTE PARAMETER IN - THE EXPANSION OF MACRO INSTRUCTION - IGFCATAP */ - char ttrn[4]; - }; - - char dcbkeycn; /* 04 KEYED BLOCK OVERHEAD CONSTANT */ - char dcbfdad[8]; /* 05 FULL DISK ADDRESS IN THE FORM OF - MBBCCHHR OF RECORD THAT WAS JUST - READ OR WRITTEN */ -#define dcbdvtbl dcbfdad[7] /* 0C LAST BYTE OF DCBFDAD */ - char dcbdvtba[3]; /* 0D ADDRESS OF ENTRY IN I/O DEVICE - CHARACTERISTICS TABLE FOR DEVICE - BEING USED */ - char dcbkeyle; /* 10 KEY LENGTH OF DATA SET */ - char dcbdevt; /* 11 DEVICE TYPE */ -#define DCBDV311 0x21 /* ... 2311 DISK STORAGE */ -#define DCBDV301 0x22 /* ... 2301 PARALLEL DRUM */ -#define DCBDV303 0x23 /* ... 2303 SERIAL DRUM */ -#define DCBDV302 0x24 /* ... 2302 DISK STORAGE */ -#define DCBDV321 0x25 /* ... 2321 DATA CELL STORAGE */ -#define DCBD1305 0x26 /* ... 2305 DRUM MODEL-1 */ -#define DCBDV305 0x27 /* ... 2305 DRUM MODEL-2 */ -#define DCBDV314 0x28 /* ... 2314/2319 DISK STORAGE FACILITY */ -#define DCBDV330 0x29 /* ... 3330 DISK STORAGE FACILITY - 3330 MODEL-1 - 3330 MODEL-2 - 3333 MODEL-1 */ -#define DCBDV340 0x2A /* ... 3340/3344 DISK STORAGE FACILITY */ -#define DCBDV350 0x2B /* ... 3350 DISK STORAGE FACILITY - MODELS A2, B2, AND C2 */ -#define DCBDV375 0x2C /* ... 3375 DISK STORAGE FACILITY */ -#define DCBDV331 0x2D /* ... 3330 MODEL-11 OR 3333 MODEL-11 - DISK STORAGE FACILITY */ -#define DCBDV380 0x2E /* ... 3380 DISK STORAGE FACILITY */ -#define DCBDV390 0x2F /* ... 3390 DISK STORAGE FACILITY */ -#define DCBDVTRM 0x4F /* ... TERMINAL. (DD CONTAINS TERM=TS) */ - - short dcbtrbal; /* 12 TRACK BALANCE. NUMBER OF BYTES - REMAINING ON CURRENT TRACK AFTER - A WRITE OPERATION - (THIS QUANTITY MAY BE NEGATIVE IF - THERE ARE NO BYTES REMAINING ON - TRACK). */ - union { - void *dcbbufcb; /* 14 ADDRESS OF BUFFER POOL CONTROL - BLOCK */ - struct { - char dcbbufno; /* 14 NUMBER OF BUFFERS REQUIRED FOR - THIS DATA SET. MAY RANGE FROM 0 - TO 255. - IF UNBLOCKED SPANNED RECORDS ARE - USED, NUMBER OF SEGMENT WORK AREAS - REQUIRED FOR THIS DATA SET. */ - char dcbbufca[3]; /* 15 ADDRESS OF BUFFER POOL CONTROL - BLOCK */ - }; - }; - short dcbbufl; /* 18 LENGTH OF BUFFER. MAY RANGE FROM - 0 TO 32,767. */ - union { - short dcbdsorg; /* 1A DATA SET ORGANIZATION BEING USED */ - struct { - char dcbdsrg1; /* 1A FIRST BYTE OF DCBDSORG */ -#define DCBDSGIS BIT0 /* ... IS - INDEXED SEQUENTIAL */ -#define DCBDSGPS BIT1 /* ... PS - PHYSICAL SEQUENTIAL */ -#define DCBDSGDA BIT2 /* ... DA - DIRECT ORGANIZATION */ -#define DCBDSGCX BIT3 /* ... CX - BTAM OR QTAM LINE GROUP */ -#define DCBDSGPO BIT6 /* ... PO - PARTITIONED ORGANIZATION */ -#define DCBDSGU BIT7 /* ... U - UNMOVABLE, THE DATA CONTAINS - LOCATION DEPENDENT INFORMATION */ - char dcbdsrg2; /* 1B SECOND BYTE OF DCBDSORG */ -#define DCBDSGGS BIT0 /* ... GS - GRAPHICS ORGANIZATION */ -#define DCBDSGTX BIT1 /* ... TX - TCAM LINE GROUP */ -#define DCBDSGTQ BIT2 /* ... TQ - TCAM MESSAGE QUEUE */ -#define DCBACBM BIT4 /* ... ACCESS METHOD CONTROL BLOCK */ -#define DCBDSGTR BIT5 /* ... TR - TCAM 3705 */ - }; - }; - - union { - void *dcbiobad; /* 1C ADDRESS OF IOB WHEN CHAINED - SCHEDULING IS USED OR FOR - 1419/1275 */ - void *dcbodeb; /* 1C ADDRESS OF OLD DEB */ - unsigned dcblnp; /* 1C 3525 PRINTER LINE POSITION COUNTER*/ - struct { - char dcbqslm; /* 1C QSAM LOCATE MODE LOGICAL RECORD - INTERFACE INDICATOR BYTE FOR UPDAT - PROCESSING OF SPANNED RECORDS */ -#define DCB1DVDS BIT0 /* ... ONLY ONE DEVICE IS ALLOCATED TO - THIS DATA SET */ -#define DCBUPDCM BIT1 /* ... UPDATE COMPLETE, FREE OLD DEB */ -#define DCBUPDBT BIT2+BIT3 /* ... UPDATE BITS */ -#define DCBUPDT BIT2 /* ... UPDATE TO TAKE PLACE */ -#define DCBNUPD BIT2+BIT3 /* ... NO UPDATE TO TAKE PLACE */ -#define DCBSVDEB BIT3 /* ... OLD DEB ADDRESS MUST BE SAVED */ - union { - char dcbiobaa[3]; /* 1D SAME AS DCBIOBAD ABOVE */ - char dcbodeba[3]; /* 1D ADDRESS OF OLD DEB */ - }; - }; - }; - -/*********************************************************************** - * FOUNDATION EXTENSION - ***********************************************************************/ - union { - void *dcbeodad; /* 20 SAME AS DCBEODA BELOW */ - struct { - union { - char dcbhiarc; /* 20 HIERARCHY BITS */ - char dcbbftek; /* 20 BUFFERING TECHNIQUE BITS */ - char dcbbfaln; /* 20 BUFFER ALIGNMENT BITS */ -#define DCBH1 BIT0 /* ... HIERARCHY 1 MAIN STORAGE - - BIT 5 IS ZERO */ -#define DCBBFT BIT1+BIT2+BIT3 /* ... BUFFERING TECHNIQUE */ -#define DCBBFTA BIT1+BIT2 /* ... QSAM LOCATE MODE PROCESSING OF - SPANNED RECORDS - OPEN IS TO - CONSTRUCT A RECORD AREA IF IT - AUTOMATICALLY CONSTRUCTS BUFFERS */ -#define DCBBFTR BIT2 /* ... FOR BSAM CREATE BDAM PROCESSING - OF UNBLOCKED SPANNED RECORDS - - SOFTWARE TRACK OVERFLOW. FOR - BSAM INPUT PROCESSING OF UNBLOCKED - SPANNED RECORDS WITH KEYS - RECORD - OFFSET PROCESSING. */ -#define DCBBFTS BIT1 /* ... SIMPLE BUFFERING - BIT 3 IS ZERO */ -#define DCBBFTKR BIT2 /* ... UNBLOCKED SPANNED RECORDS - - SOFTWARE TRACK OVERFLOW (BDAM) */ -#define DCBBFTE BIT3 /* ... EXCHANGE BUFFERING - BIT 1 IS ZERO*/ -#define DCBBFTKD BIT4 /* ... DYNAMIC BUFFERING (BTAM) */ -#define DCBH0 BIT5 /* ... HIERARCHY 0 MAIN STORAGE - BIT 0 - IS ZERO */ -#define DCBBFA BIT6+BIT7 /* ... BUFFER ALIGNMENT */ -#define DCBBFAD BIT6 /* ... DOUBLEWORD BOUNDARY */ -#define DCBBFAF1 BIT7 /* ... FULLWORD NOT A DOUBLEWORD BOUNDARY, - CODED IN DCB MACRO INSTRUCTION */ -#define DCBBFAF2 BIT6+BIT7 /* ... FULLWORD NOT A DOUBLEWORD BOUNDARY, - CODED IN DCB MACRO INSTRUCTION */ - }; - char dcbeoda[3]; /* 21 ADDRESS OF A USER-PROVIDED ROUTINE - TO HANDLE END-OF-DATA CONDITIONS */ - }; - }; - - union { - void *dcbexlst; /* 24 ADDRESS OF USER-PROVIDED LIST OF - EXITS */ - struct { - char dcbrecfm; /* 24 RECORD FORMAT */ -#define DCBRECLA BIT0+BIT1+BIT2 /* ... RECORD LENGTH INDICATOR - ASCII */ -#define DCBRECD BIT2 /* ... ASCII VARIABLE RECORD LENGTH */ -#define DCBRECL BIT0+BIT1 /* ... RECORD LENGTH INDICATOR */ -#define DCBRECF BIT0 /* ... FIXED RECORD LENGTH */ -#define DCBRECV BIT1 /* ... VARIABLE RECORD LENGTH */ -#define DCBRECU BIT0+BIT1 /* ... UNDEFINED RECORD LENGTH */ -#define DCBRECTO BIT2 /* ... TRACK OVERFLOW */ -#define DCBRECBR BIT3 /* ... BLOCKED RECORDS */ -#define DCBRECSB BIT4 /* ... FOR FIXED LENGTH RECORD FORMAT - - STANDARD BLOCKS. - FOR VARIABLE LENGTH RECORD FORMAT - - SPANNED RECORDS */ -#define DCBRECCC BIT5+BIT6 /* ... CONTROL CHARACTER INDICATOR */ -#define DCBRECCA BIT5 /* ... ASA CONTROL CHARACTER */ -#define DCBRECCM BIT6 /* ... MACHINE CONTROL CHARACTER */ -#define DCBRECC 0x00 /* ... NO CONTROL CHARACTER */ -#define DCBRECKL BIT7 /* ... KEY LENGTH (KEYLEN) WAS SPECIFIED - IN DCB MACRO INSTRUCTION */ - char dcbexlsa[3]; /* 25 ADDRESS OF USER-PROVIDED LIST OF - EXITS */ - }; - }; - -/*********************************************************************** - * FOUNDATION BEFORE OPEN - ***********************************************************************/ - union { - struct { /* foundation before open */ - char dcbddnam[8]; /* 28 NAME ON THE DD STATEMENT WHICH - DEFINES THE DATA SET ASSOCIATED - WITH THIS DCB */ - char dcboflgs; /* 30 FLAGS USED BY OPEN ROUTINE */ -#define DCBOFLWR BIT0 /* ... IF ZERO, LAST I/O OPERATION WAS - READ OR POINT. - IF ONE, LAST I/O OPERATION WAS - WRITE. */ -#define DCBOFIOD BIT0 /* ... DATA SET IS BEING OPENED FOR - INPUT OR OUTPUT (BDAM) */ -#define DCBOFLRB BIT1 /* ... LAST I/O OPERATION WAS IN READ - BACKWARD MODE */ -#define DCBOFEOV BIT2 /* ... SET TO 1 BY EOV WHEN IT CALLS - CLOSE ROUTINE FOR CONCATENATION - OF DATA SETS WITH UNLIKE - ATTRIBUTES */ -#define DCBOFOPN BIT3 /* ... AN OPEN HAS BEEN SUCCESSFULLY - COMPLETED */ -#define DCBOFPPC BIT4 /* ... SET TO 1 BY PROBLEM PROGRAM TO - INDICATE A CONCATENATION OF - UNLIKE ATTRIBUTES */ -#define DCBOFTM BIT5 /* ... TAPE MARK HAS BEEN READ */ -#define DCBOFUEX BIT6 /* ... SET TO 0 BY AN I/O SUPPORT FUNCTION - WHEN THAT FUNCTION TAKES A USER - EXIT. SET TO 1 ON RETURN FROM USER - EXIT TO THE I/O SUPPORT FUNCTION - WHICH TOOK THE EXIT. */ -#define DCBOFIOF BIT7 /* ... SET TO 1 BY AN I/O SUPPORT - FUNCTION IF DCB IS TO BE PROCESSED - BY THAT FUNCTION */ - - char dcbiflg; /* 31 FLAGS USED BY IOS IN COMMUNICATING - ERROR CONDITIONS AND IN DETERMINING - CORRECTIVE PROCEDURES */ -#define DCBIBEC BIT0+BIT1 /* ... ERROR CORRECTION INDICATOR */ -#define DCBIFNEP 0x00 /* ... NOT IN ERROR PROCEDURE */ -#define DCBEX BIT1 /* ... ERROR CORRECTION OR IOS PAGE - FIX IN PROCESS */ -#define DCBIFPEC BIT0+BIT1 /* ... PERMANENT ERROR CORRECTION */ -#define DCBIBPCT BIT2+BIT3 /* ... PRINTER CARRIAGE TAPE PUNCH - INDICATOR */ -#define DCBIFC9 BIT2 /* ... CHANNEL 9 PRINTER CARRIAGE TAPE - PUNCH SENSED */ -#define DCBIFC12 BIT3 /* ... CHANNEL 12 PRINTER CARRIAGE TAPE - PUNCH SENSED */ -#define DCBIBIOE BIT4+BIT5 /* ... IOS ERROR ROUTINE USE INDICATOR */ -#define DCBIFER 0x00 /* ... ALWAYS USE I/O SUPERVISOR ERROR - ROUTINE */ -#define DCBIFNE1 BIT5 /* ... NEVER USE I/O SUPERVISOR ERROR - ROUTINE */ -#define DCBIFTIM BIT5 /* ... TEST IOS MASK (IMSK) FOR ERROR - PROCEDURE (BTAM) */ -#define DCBIFNE2 BIT4 /* ... NEVER USE I/O SUPERVISOR ERROR - ROUTINE */ -#define DCBIFNE3 BIT4+BIT5 /* ... NEVER USE I/O SUPERVISOR ERROR - ROUTINE */ - - union { - short dcbmacr; /* 32 MACRO INSTRUCTION REFERENCE */ - struct { - char dcbmacr1; /* 32 FIRST BYTE OF DCBMACR */ -#define DCBMRECP BIT0 /* ... EXECUTE CHANNEL PROGRAM (EXCP) --- - ALWAYS ZERO (BSAM, QSAM, BPAM, - BISAM, QISAM, BDAM) --- - RESERVED (QTAM, BTAM) */ -#define DCBMRFE BIT1 /* ... FOUNDATION EXTENSION IS PRESENT - EXCP) */ -#define DCBMRGET BIT1 /* ... GET (QSAM, QISAM, TCAM) */ -#define DCBMRPTQ BIT1 /* ... PUT FOR MESSAGE GROUP (QTAM) --- - ALWAYS ZERO (BSAM, BPAM, BISAM, - BDAM) --- RESERVED (BTAM) */ -#define DCBMRAPG BIT2 /* ... APPENDAGES ARE REQUIRED (EXCP) */ -#define DCBMRRD BIT2 /* ... READ (BSAM, BPAM, BISAM, BDAM, - BTAM) */ -#define DCBMRWRQ BIT2 /* ... WRITE FOR LINE GROUP (QTAM) --- - ALWAYS ZERO (QSAM, QISAM) */ -#define DCBMRCI BIT3 /* ... COMMON INTERFACE (EXCP) */ -#define DCBMRMVG BIT3 /* ... MOVE MODE OF GET (QSAM, QISAM) */ -#define DCBMRRDK BIT3 /* ... KEY SEGMENT WITH READ (BDAM) --- - ALWAYS ZERO (BISAM) --- - RESERVED (BSAM, BPAM, QTAM, BTAM)*/ -#define DCBMRLCG BIT4 /* ... LOCATE MODE OF GET (QSAM, QISAM) */ -#define DCBMRRDI BIT4 /* ... ID ARGUMENT WITH READ (BDAM) --- - ALWAYS ZERO (BISAM) --- - RESERVED (EXCP, BSAM, BPAM, QTAM, - BTAM) */ -#define DCBMRABC BIT5 /* ... USER'S PROGRAM MAINTAINS ACCURATE - BLOCK COUNT (EXCP) */ -#define DCBMRPT1 BIT5 /* ... POINT (WHICH IMPLIES NOTE) (BSAM, - BPAM) */ -#define DCBMRSBG BIT5 /* ... SUBSTITUTE MODE OF GET (QSAM) */ -#define DCBMRDBF BIT5 /* ... DYNAMIC BUFFERING (BISAM, BDAM) --- - ALWAYS ZERO (QISAM) --- - RESERVED (QTAM, BTAM) */ -#define DCBPGFXA BIT6 /* ... PAGE FIX APPENDAGE IS SPECIFIED - (EXCP) */ -#define DCBMRCRL BIT6 /* ... CNTRL (BSAM, QSAM) */ -#define DCBMRCHK BIT6 /* ... CHECK (BISAM) */ -#define DCBMRRDX BIT6 /* ... READ EXCLUSIVE (BDAM) --- - RESERVED (BPAM, QISAM, QTAM, BTAM)*/ -#define DCBMRDMG BIT7 /* ... DATA MODE OF GET (QSAM) */ -#define DCBMRCK BIT7 /* ... CHECK (BDAM) --- - RESERVED (EXCP, BSAM, BPAM, BISAM, - QISAM, QTAM, BTAM) */ - - char dcbmacr2; /* 33 SECOND BYTE OF DCBMACR */ -#define DCBMRSTL BIT0 /* ... SETL (QISAM) --- - ALWAYS ZERO (BSAM, QSAM, BPAM, - BISAM, BDAM) --- - RESERVED (EXCP, QTAM, BTAM) */ -#define DCBMRPUT BIT1 /* ... PUT (QSAM, TCAM) - - PUT OR PUTX (QISAM) */ -#define DCBMRGTQ BIT1 /* ... GET FOR MESSAGE GROUP (QTAM) --- - ALWAYS ZERO (BSAM, BPAM, BISAM, - BDAM) --- - RESERVED (EXCP, BTAM) */ -#define DCBMRWRT BIT2 /* ... WRITE (BSAM, BPAM, BISAM, BDAM, - BTAM) */ -#define DCBMRRDQ BIT2 /* ... READ FOR LINE GROUP (QTAM) --- - ALWAYS ZERO (QSAM, QISAM) --- - RESERVED (EXCP) */ -#define DCBMRMVP BIT3 /* ... MOVE MODE OF PUT (QSAM, QISAM) */ -#define DCBMRWRK BIT3 /* ... KEY SEGMENT WITH WRITE (BDAM) --- - ALWAYS ZERO (BISAM) --- - RESERVED (EXCP, BSAM, BPAM, QTAM, - BTAM) */ -#define DCBMR5WD BIT4 /* ... FIVE-WORD DEVICE INTERFACE (EXCP)*/ -#define DCBMRLDM BIT4 /* ... LOAD MODE BSAM (CREATE BDAM DATA - SET) (BSAM) */ -#define DCBMRLCP BIT4 /* ... LOCATE MODE OF PUT (QSAM, QISAM) */ -#define DCBMRIDW BIT4 /* ... ID ARGUMENT WITH WRITE (BDAM) --- - ALWAYS ZERO (BISAM) --- - RESERVED (BPAM, QTAM, BTAM) */ -#define DCBMR4WD BIT5 /* ... FOUR-WORD DEVICE INTERFACE (EXCP)*/ -#define DCBMRPT2 BIT5 /* ... POINT (WHICH IMPLIES NOTE) - (BSAM, BPAM) */ -#define DCBMRTMD BIT5 /* ... SUBSTITUTE MODE (QSAM) */ -#define DCBMRUIP BIT5 /* ... UPDATE IN PLACE (PUTX) (QISAM) --- - ALWAYS ZERO (BISAM) --- - RESERVED (BDAM, QTAM, BTAM) */ -#define DCBMR3WD BIT6 /* ... THREE-WORD DEVICE INTERFACE (EXCP)*/ -#define DCBMRCTL BIT6 /* ... CNTRL (BSAM, QSAM) */ -#define DCBMRSTK BIT6 /* ... SETL BY KEY (QISAM) */ -#define DCBMRAWR BIT6 /* ... ADD TYPE OF WRITE (BDAM) --- - ALWAYS ZERO (BISAM) --- - RESERVED (BPAM, QTAM, BTAM) */ -#define DCBMR1WD BIT7 /* ... ONE-WORD DEVICE INTERFACE (EXCP) */ -#define DCBMRSWA BIT7 /* ... USER'S PROGRAM HAS PROVIDED A - SEGMENT WORK AREA POOL - (BSAM CREATE BDAM, BDAM) */ -#define DCBMRDMD BIT7 /* ... DATA MODE (QSAM) */ -#define DCBMRSTI BIT7 /* ... SETL BY ID (QISAM) --- - ALWAYS ZERO (BISAM) --- - RESERVED (BPAM, QTAM, BTAM) */ - }; - }; - }; - -/*********************************************************************** - * FOUNDATION AFTER OPEN - ***********************************************************************/ - struct { /* foundation after open */ - short dcbtiot; /* 28 OFFSET FROM TIOT ORIGIN TO TIOELNGH - FIELD IN TIOT ENTRY FOR DD STATEMENT - ASSOCIATED WITH THIS DCB */ - union { - short dcbmacrf; /* 2A SAME AS DCBMACR BEFORE OPEN */ - struct { - char dcbmacf1; /* 2A FIRST BYTE OF DCBMACRF */ - char dcbmacf2; /* 2B SECOND BYTE OF DCBMACRF */ - }; - }; - - union { - void *dcbdebad; /* 2C ADDRESS OF ASSOCIATED DEB */ - struct { - char dcbiflgs; /* 2C SAME AS DCBIFLG BEFORE OPEN */ -#define DCBIFEC BIT0+BIT1 /* ... ERROR CORRECTION INDICATOR */ -#define DCBIFPCT BIT2+BIT3 /* ... PRINTER CARRIAGE TAPE PUNCH - INDICATOR */ -#define DCBIFIOE BIT4+BIT5 /* ... IOS ERROR ROUTINE USE INDICATOR */ -#define DCBIFLDT BIT6 /* ... 3800 PRINTER LOST DATA INDICATOR */ - char dcbdeba[3];/* 2D ADDRESS OF ASSOCIATED DEB */ - }; - }; - - union { - void *dcbread; /* 30 ADDRESS OF READ MODULE */ - void *dcbwrite; /* 30 ADDRESS OF WRITE MODULE */ - void *dcbget; /* 30 ADDRESS OF GET MODULE */ - void *dcbput; /* 30 ADDRESS OF PUT MODULE */ - struct { - union { - char dcboflg; /* 30 SAME AS DCBOFLGS BEFORE OPEN */ - char dcboflg1; /* 30 SAME AS DCBOFLGS BEFORE OPEN */ - }; - union { - char dcbreada[3]; /* 31 ADDRESS OF READ MODULE */ - char dcbwrita[3]; /* 31 ADDRESS OF WRITE MODULE */ - char dcbgeta[3]; /* 31 ADDRESS OF GET MODULE */ - char dcbputa[3]; /* 31 ADDRESS OF PUT MODULE */ - }; - }; - }; - -/*********************************************************************** - * QSAM-BSAM-BPAM COMMON INTERFACE - ***********************************************************************/ - union { - void *dcbgerr; /* 34 ADDRESS OF SYNCHRONIZING ROUTINE - FOR GET */ - void *dcbperr; /* 34 ADDRESS OF SYNCHRONIZING ROUTINE - FOR PUT */ - void *dcbcheck; /* 34 ADDRESS OF CHECK MODULE */ - struct { - char dcboptcd; /* 34 OPTION CODES (1 byte) */ -#define DCBOPTW BIT0 /* ... WRITE VALIDITY CHECK (DASD) - (BSAM, BPAM, QSAM, ISAM, BDAM) */ -#define DCBOPTU BIT1 /* ... ALLOW DATA CHECK CAUSED BY INVALID - CHARACTER (1403 PRINTER WITH UCS - FEATURE) (BSAM, BPAM, QSAM) - MSS WINDOW PROCESSING REQUESTED - (BSAM, QSAM) */ -#define DCBOPTC BIT2 /* ... CHAINED SCHEDULING USING PCI - (BSAM, BPAM, QSAM) */ -#define DCBOPTH BIT3 /* ... 1287/1288 OPTICAL READER - HOPPER - EMPTY EXIT (BSAM, BPAM) - PDS STAGING ON MSS REQUEST(BPAM) */ -#define DCBOPTO BIT3 /* ... 1285/1287 OPTICAL READER - ON-LINE - CORRECTION (QSAM) */ -#define DCBBCKPT BIT3 /* ... CHANNEL-END APPENDAGE IS TO BYPASS - DOS EMBEDDED CHECKPOINT RECORDS ON - TAPE (BSAM, QSAM) */ -#define DCBOPTQ BIT4 /* ... TRANSLATION TO OR FROM ASCII - (BSAM, BPAM, QSAM) */ -#define DCBOPTZ BIT5 /* ... MAGNETIC TAPE DEVICES - USE REDUCED - ERROR RECOVERY PROCEDURE - (EXCP, BSAM, BPAM, QSAM) */ -#define DCBSRCHD BIT5 /* ... USE SEARCH DIRECT, INSTEAD OF - SEARCH PREVIOUS, ON RECORD POSITION - SENSING DEVICE - (EXCP, BSAM, BPAM, QSAM) */ -#define DCBOPTT BIT6 /* ... USER TOTALING (BSAM, QSAM) */ -#define DCBOPTJ BIT7 /* ... 3800 PRINTER, OPTCD=J; (DYNAMIC - SELECT OF TRANSLATE TABLES) */ - - union { - char dcbgerra[3]; /* 35 ADDRESS OF SYNCHRONIZING - ROUTINE FOR GET */ - char dcbperra[3]; /* 35 ADDRESS OF SYNCHRONIZING - ROUTINE FOR PUT */ - char dcbchcka[3]; /* 35 ADDRESS OF CHECK MODULE */ - }; - }; - }; - - union { - void *dcbsynad; /* 38 ADDRESS OF USER-PROVIDED SYNAD - ROUTINE */ - struct { - char dcbiobl; /* 38 IOB LENGTH IN DOUBLE WORDS */ - char dcbsyna[3];/* 39 ADDRESS OF USER-PROVIDED SYNAD - ROUTINE */ - }; - }; - - union { - char dcbflag1; /* 3C TCAM APPLICATION PROGRAM FLAGS - (BSAM, BPAM, QSAM) */ - char dcbcind1; /* 3C CONDITION INDICATORS */ -#define DCBCNTOV BIT0 /* ... DIRECT ACCESS - TRACK OVERFLOW IN - USE (BSAM, BPAM, QSAM) - 2540 CARD PUNCH - DATA SET WAS - OPENED BUT NO DATA WAS WRITTEN - (QSAM) */ -#define DCBSTQCK BIT0 /* ... STOP EQUAL QUICK WAS SPECIFIED FOR - APPLICATION PROG. DCBS (TCAM) */ -#define DCBSTFLS BIT1 /* ... STOP EQUAL FLUSH WAS SPECIFIED FOR - APPLICATION PROG. DCBS (TCAM) */ -#define DCBCNSRD BIT1 /* ... SEARCH DIRECT (BSAM, BPAM, QSAM) */ -#define DCBCNEVB BIT2 /* ... END OF VOLUME - USED BY EOB ROUTINES - (BSAM, BPAM, QSAM) */ -#define DCBCNEVA BIT3 /* ... END OF VOLUME - USED BY CHANNEL-END - APPENDAGE ROUTINES - (BSAM, BPAM, QSAM) */ -#define DCBCNBRM BIT5 /* ... BLOCKED RECORD BIT MODIFIED - (BSAM,BPAM,QSAM) */ -#define DCBCNEXB BIT7 /* ... EXCHANGE BUFFERING SUPPORTED - (QSAM) */ - }; - - char dcbcind2; /* 3D CONDITION INDICATORS */ -#define DCBCNSTO BIT0 /* ... PARTITIONED DATA SET - STOW HAS BEEN - PERFORMED (BSAM, BPAM, QSAM) - SEQUENTIAL DATA SET - UPDATE - (BSAM, BPAM) */ -#define DCBCNWR0 BIT1 /* ... DIRECT ORGANIZATION DATA SET - - LAST I/O WAS A WRITE RECORD ZERO - (BSAM, BPAM, QSAM) - SEQUENTIAL DATA SET - UPDATE EOF IS - INDICATED (BSAM, BPAM) */ -#define DCBCNCLO BIT2 /* ... CLOSE IN PROCESS (QSAM) */ -#define DCBCNIOE BIT3 /* ... PERMANENT I/O ERROR - (BSAM, BPAM, QSAM) */ -#define DCBCNBFP BIT4 /* ... OPEN ACQUIRED BUFFER POOL - (BSAM, BPAM, QSAM) */ -#define DCBCNCHS BIT5 /* ... CHAINED SCHEDULING BEING SUPPORTED - (BSAM, BPAM, QSAM) */ -#define DCBCNFEO BIT6 /* ... FEOV BIT (BSAM, BPAM, QSAM) */ -#define DCBCNQSM BIT7 /* ... ALWAYS ZERO (BSAM, BPAM) - THIS IS A QSAM DCB (QSAM) */ - - unsigned short dcbblksi;/* 3E MAXIMUM BLOCK SIZE */ - char dcbwcpo; /* 40 OFFSET OF WRITE CHANNEL PROGRAM - FROM THE START OF IOB */ - char dcbwcpl; /* 41 LENGTH OF WRITE CHANNEL PROGRAM */ - char dcboffsr; /* 42 OFFSET OF READ CCW FROM BSAM/BPAM - PREFIX OF IOB */ - char dcboffsw; /* 43 OFFSET OF WRITE CCW FROM BSAM/BPAM - PREFIX OF IOB */ - - union { - void *dcbioba; /* 44 FOR NORMAL SCHEDULING, ADDRESS OF - QSAM OR BSAM/BPAM PREFIX OF IOB. - FOR CHAINED SCHEDULING, ADDRESS OF - ICB. - FOR 1419/1275, ADDRESS OF MAGNETIC - INTERRUPT CONTROL BLOCK (MICB) - CURRENTLY BEING PROCESSED BY READ - ROUTINE. - FOR TSO TERMINAL DATA SET OPENED FOR - INPUT AND FORMAT U, SIMULATED - LOW-ORDER FOUR BYTES OF IOBCSW */ - - void *dcbcicb; /* 44 SAME AS DCBCICBA BELOW */ - struct { - char unused45; /* 45 unused */ - char dcbcicba[3];/* 45 POINTER TO JES C.I. CONTROL BLOCK - (CICB) */ - }; - }; - - union { - void *dcbeobr; /* 48 ADDRESS OF END-OF-BLOCK MODULE - FOR READ */ - void *dcblccw; /* 48 FOR EXCHANGE BUFFERING, ADDRESS - OF LAST CCW IN LIST (4 bytes) */ - void *dcbeobad; /* 48 FOR SIMPLE BUFFERING, ADDRESS - OF LAST BYTE OF CURRENT BUFFER */ - struct { - char dcbncp; /* 48 NUMBER OF CHANNEL PROGRAMS. - NUMBER OF READ OR WRITE REQUESTS - WHICH MAY BE ISSUED PRIOR TO A CHECK, - NUMBER OF IOB'S GENERATED. - (99 MAXIMUM) (1 byte) */ - char dcbeodra[3];/* 49 ADDRESS OF END-OF-BLOCK MODULE FOR - READ (3 bytes) */ - }; - }; - - union { - void *dcbeobw; /* 4C ADDRESS OF END-OF-BLOCK MODULE FOR - WRITE. - FOR BSAM CREATE BDAM PROCESSING OF - UNBLOCKED SPANNED RECORDS WITH - BKTEK=R SPECIFIED, ADDRESS OF - SEGMENT WORK AREA CONTROL BLOCK */ - void *dcbcccw; /* 4C FOR EXCHANGE BUFFERING, ADDRESS - OF CURRENT OR NEXT CCW */ - void *dcbrecad; /* 4C ADDRESS OF CURRENT OR NEXT LOGICAL - RECORD */ - struct { - char dcbrecbt; /* 4C FLAG BYTE */ -#define DCBRCREL BIT0+BIT1+BIT2+BIT3 - /* ... RELSE MACRO HAS BEEN ISSUED (QSAM - WITH SIMPLE BUFFERING) */ -#define DCBRCTRU BIT0 /* ... TRUNC MACRO HAS BEEN ISSUED (QSAM - LOCATE MODE) */ -#define DCBRCFGT BIT1 /* ... FIRST GET AFTER OPEN (QSAM LOCATE - MODE) */ - char dcbreca[3];/* 4D ADDRESS OF CURRENT OR NEXT LOGICAL - RECORD (3 bytes) */ - }; - }; - - union { - short dcbdirct; /* 50 NUMBER OF BYTES USED IN LAST - DIRECTORY BLOCK (RANGE 0-254) - (BSAM, BPAM) (2 bytes) */ - char dcbqsws; /* 50 FLAG BYTE */ -#define DCBPOPEN BIT5 /* ... QSAM PARALLEL INPUT PROCESSING */ - - char dcbusasi; /* 50 FLAG BYTE FOR ASCII TAPES */ -#define DCBBLBP BIT1 /* ... BLOCK PREFIX IS FOUR BYTE FIELD - CONTAINING BLOCK LENGTH IN UNPACKED - DECIMAL (SPECIFIED BY BUFFER=L). */ -#define DCBQADFS BIT2+BIT3+BIT4 /* ... USED TO PERFORM SEQUENCE CHECKING - WITH MULTIPLE FUNCTION SUPPORT - FOR 3525 (BSAM, QSAM) */ -#define DCBQADF1 BIT2 /* ... FIRST BIT OF DCBQADFS */ -#define DCBQADF2 BIT3 /* ... SECOND BIT OF DCBQADFS */ -#define DCBQADF3 BIT4 /* ... THIRD BIT OF DCBQADFS */ -#define DCB3525A BIT6 /* ... DCB IS 3525 - ASSOCIATED DATA - SETS EXIST */ -#define DCBQSTRU BIT7 /* ... TRUNC ENTRY POINT ENTERED (QSAM) */ - struct { - char unused50; - union { - char dcbbufof; /* 51 BLOCK PREFIX LENGTH (0-99), - SPECIFIED BY BUFOFF=N OR BUFOFF=L */ - char dcbdircq; /* 51 NUMBER OF BYTES USED IN LAST - DIRECTORY BLOCK (RANGE 0-254) - (QSAM) */ - }; - }; - }; - - unsigned short dcblrecl;/* 52 LOGICAL RECORD LENGTH (2 bytes) */ - - union { - void *dcbcntrl; /* 54 ADDRESS OF CNTRL MODULE (4 bytes) */ - void *dcbnote; /* 54 ADDRESS OF NOTE/POINT MODULE */ - void *dcbpoint; /* 54 ADDRESS OF NOTE/POINT MODULE */ - struct { - char dcberopt; /* 54 ERROR OPTION */ -#define DCBERACC BIT0 /* ... ACCEPT PERMANENT ERROR */ -#define DCBERSKP BIT1 /* ... SKIP PERMANENT ERROR */ -#define DCBERABE BIT2 /* ... ABNORMAL END OF TASK */ - char unused55[3]; - }; - }; - - short unused58; /* 58 unused? */ - - short dcbprecl; /* 5A FORMAT F RECORDS: (2 bytes) - BLOCK LENGTH - FORMAT U RECORDS: - MAXIMUM BLOCK LENGTH - FORMAT V RECORDS: - UNSPANNED RECORDS: - MAXIMUM BLOCK LENGTH - SPANNED RECORDS: - PUT, NOT DATA MODE: - MAXIMUM BOLCK LENGTH - PUT, DATA MODE: - DATA LENGTH - GET: - SEGMENT CONTROL CODE OF PREVIOUS - SEGMENT */ - void *dcbeob; /* 5C ADDRESS OF END OF BLOCK MODULE */ - }; /* struct */ - }; /* union */ - - /* extensions to the standard BSAM DCB for our own use */ - void *dcbuser; /* 60 not part of DCB proper, user data */ - void *dcbpriv; /* 64 not part of DCB proper, internal */ -}; /* struct dcb */ -#pragma pack(reset) - -#endif diff --git a/src/crent370/include/osdeb.h b/src/crent370/include/osdeb.h deleted file mode 100644 index 42e6d09..0000000 --- a/src/crent370/include/osdeb.h +++ /dev/null @@ -1,737 +0,0 @@ -#ifndef OSDEB_H -#define OSDEB_H - -typedef struct deb DEB; /* DATA EXTENT BLOCK */ -typedef struct debavt DEBAVT; /* APPENDAGE VECTOR TABLE */ -typedef struct debprfx DEBPRFX; /* PREFIX TABLE */ -typedef struct debbasic DEBBASIC; /* BASIC SECTION */ -typedef struct debdasd DEBDASD; /* DIRECT-ACCESS STORAGE DEVICE */ -typedef struct debacsmd DEBACSMD; /* EXCP ACCESS METHOD, BSAM AND QSAM */ -typedef struct debsubnm DEBSUBNM; /* SUBROUTINE NAME */ -typedef struct debxtn DEBXTN; /* DEB EXTENSION (OS/VS2) */ -typedef struct debdds1 DEBDDS1; /* UNIT RECORD, MAGNETIC TAPE, ... */ -typedef struct debisam DEBISAM; /* DEB ISAM DEPENDENT SECTION */ - -/* **************************************************************** */ -/* */ -/* ***** DATA EXTENT BLOCK ***** */ -/* */ -/* OS/VS2 RELEASE 3.0 AND 3.7 PTF, 12/20/77, LEVEL=2 @ZA34098*/ -/* */ -/* METHOD OF ACCESS */ -/* PL/S - DCL (DEBPTR,DEBDAPTR,DEBEXPTR,DEBSBPTR) PTR */ -/* BAL - FIVE DSECTS ARE PRODUCED. USING ON A DSECT NAME */ -/* GIVES ADDRESSABILITY FOR ALL SYMBOLS WITHIN THAT */ -/* DSECT. THE DSECT NAMES AND THE SECTIONS WITHIN EACH */ -/* DSECT ARE */ -/* */ -/* DEB *** APPENDAGE VECTOR TABLE SECTION */ -/* PREFIX TABLE */ -/* BASIC SECTION */ -/* UNIT RECORD, MAGNETIC TAPE AND */ -/* TELECOMMUNICATIONS DEVICES SECTION */ -/* 3540 ACCESS METHOD DEPENDENT SECTN @X04AA9A*/ -/* ISAM DEPENDENT SECTION */ -/* *** POINTERS TO THE DEB IN OTHER CONTROL */ -/* BLOCKS SUCH AS DCB POINT TO THE BASIC */ -/* SECTION. USING ON DEBBASIC GIVES */ -/* ADDRESSABILITY FOR BASIC SECTION AND */ -/* NEXT TWO SECTIONS. DEBAPPAD IN BASIC */ -/* SECTION CONTAINS ADDRESS OF APPENDAGE */ -/* VECTOR TABLE (AVT) SECTION. PREFIX */ -/* FOLLOWS AVT SECTION. */ -/* DEBDASD DIRECT ACCESS STORAGE DEVICE SECTION */ -/* DEBACSMD EXCP, BSAM AND QSAM DEPENDENT SECTION */ -/* BPAM DEPENDENT SECTION */ -/* BDAM DEPENDENT SECTION */ -/* BTAM DEPENDENT SECTION */ -/* GAM DEPENDENT SECTION */ -/* ISAM LOAD MODE EXTENSION ** */ -/* ISAM SCAN MODE EXTENSION ** */ -/* BISAM MODE EXTENSION ** */ -/* ** FOR THESE 3 EXTENSIONS, LOAD REGISTER */ -/* FROM DEBEXPT IN ISAM DEPENDENT SECTION */ -/* TO SET REGISTER FOR USING. */ -/* DEBSUBNM SUBROUTINE NAME SECTION */ -/* DEBXTN EXTENSION FOR OS/VS2 */ -/* */ -/* WHEN LISTING IS SUPPRESSED, YOU CAN DETERMINE WHICH */ -/* DSECT A SYMBOL IS IN BY USING THE STATEMENT NUMBER */ -/* IN THE DEFN COLUMN IN THE CROSS REFERENCE LISTING. */ -/* FOR EXAMPLE, ANY SYMBOL DEFINED BETWEEN THE */ -/* STATEMENT NUMBERS FOR DEBDASD AND DEBACSMD IS IN */ -/* THE DIRECT ACCESS STORAGE DEVICE SECTION. */ -/* */ -/* F.E.'S */ -/* MICROFICHE LISTING - IEZDEB */ -/* */ -/* DEVELOPERS */ -/* BAL LISTING - SPECIFY LIST=YES ON MACRO CALL */ -/* PL/S LISTING - SPECIFY %IHALIST='YES' BEFORE INCLUDE */ -/* */ -/* FOR INTEGRATION, A LISTING SHOULD NOT BE REQUESTED. */ -/* */ -/* FUNCTION */ -/* THE DATA EXTENT BLOCK (DEB) CONTAINS AN EXTENSION OF */ -/* INFORMATION IN THE DCB. EACH DEB IS ASSOCIATED WITH A */ -/* DCB, AND THE TWO POINT TO EACH OTHER. THE DEB CONTAINS */ -/* INFORMATION CONCERNING THE PHYSICAL CHARACTERISTICS OF */ -/* THE DATA SET AND OTHER INFORMATION THAT IS USED BY THE */ -/* CONTROL PROGRAM. */ -/* */ -/* **************************************************************** */ - -/********************************************************************** - * APPENDAGE VECTOR TABLE SECTION OF THE DEB * - * POINTED TO BY DEBAPPAD * - **********************************************************************/ -#pragma pack(1) -struct debavt { - union { - void *debeoea; /* 00 ADDRESS OF END-OF-EXTENT - APPENDAGE ROUTINE */ - struct { - char debeoeab; /* 00 FLAG BYTE */ -#define debtcamq debeoeab /* 00 TCAM USES AS WORK AREA (BITS 0-3) */ -#define DEBEOENP 0x0F /* ... NUMBER OF 2K PAGES TO BE FIXED - FOR THE END-OF-EXTENT APPENDAGE */ - char debeoead[3]; /* 01 ADDRESS OF END-OF-EXTENT - APPENDAGE ROUTINE */ - }; - }; - - union { - void *debsioa; /* 04 ADDRESS OF START I/O APPENDAGE - ROUTINE */ - struct { - char debsioab; /* 04 FLAG BYTE */ -#define DEBPGFX 0x80 /* ... ADDRESS IN DEBSIOAD CAN BE USED - TO DETERMINE THE ENTRY POINT TO - THE PAGE FIX (PGFX) APPENDAGE - ROUTINE BY ADDING 4 TO THE - ADDRESS IN DEBSIOAD */ -#define DEBSIOX 0x40 /* ... IF ZERO, DO NOT ENTER SIO - APPENDAGE WHEN ERP IS ACTIVE. - IF ONE, ENTER SIO APPENDAGE EVEN - WHEN ERP IS ACTIVE. */ -#define DEBIOVR 0x20 /* ... IF ONE, EXCPVR REQUEST IS VALID. - IF ZERO, EXCPVR REQUEST IS INVALID - AND WILL NOT BE EXECUTED. */ -#define DEBFIX 0x10 /* ... INDICATION THAT DEB HAS BEEN - FIXED (OS/VS2) */ -#define DEBSIONP 0x0F /* ... NUMBER OF 2K PAGES TO BE FIXED - FOR THE SIO APPENDAGE */ - char debsioad[3]; /* 05 ADDRESS OF START I/O APPENDAGE - ROUTINE */ - }; - }; - - union { - void *debpcia; /* 08 ADDRESS OF PCI APPENDAGE ROUTINE */ - struct { - char debpciab; /* 08 FLAG BYTE */ -#define DEBRSV24 0x80 /* ... RESERVED */ -#define DEBRSV25 0x40 /* ... RESERVED */ -#define DEBRSV26 0x20 /* ... RESERVED */ -#define DEBRSV27 0x10 /* ... RESERVED */ -#define DEBPCINP 0x0F /* ... NUMBER OF 2K PAGES TO BE FIXED - FOR THE PCI APPENDAGE */ - char debpicad[3]; /* 09 ADDRESS OF PROGRAM-CONTROLLED- - INTERRUPTION (PCI) APPENDAGE - ROUTINE */ - }; - }; - - union { - void *debcea; /* 0C ADDRESS OF CHANNEL-END APPENDAGE - ROUTINE */ - struct { - char debceab; /* 0C FLAG BYTE */ -#define DEBESMVR 0x80 /* ... VALIDITY CHECK FOR EXCPVR CALLER */ -#define DEBRSV29 0x40 /* ... RESERVED */ -#define DEBRSV30 0x20 /* ... RESERVED */ -#define DEBRSV31 0x10 /* ... RESERVED */ -#define DEBCENP 0x0F /* ... NUMBER OF 2K PAGES TO BE FIXED - FOR THE CHANNEL-END APPENDAGE */ - char debcead[3]; /* 0D ADDRESS OF CHANNEL-END APPENDAGE - ROUTINE */ - }; - }; - - union { - void *debxcea; /* 10 ADDRESS OF ABNORMAL-END APPENDAGE - ROUTINE */ - struct { - char debxcean; /* 10 FLAG BYTE */ -#define DEBRSV32 0x80 /* ... RESERVED */ -#define DEBRSV33 0x40 /* ... RESERVED */ -#define DEBRSV34 0x20 /* ... RESERVED */ -#define DEBRSV35 0x10 /* ... RESERVED */ -#define DEBXCENP 0x0F /* ... NUMBER OF 2K PAGES TO BE FIXED - FOR THE ABNORMAL-END APPENDAGE */ - char debxcead[3]; /* 11 ADDRESS OF ABNORMAL-END APPENDAGE - ROUTINE */ - }; - }; -}; -#pragma pack(reset) - -/********************************************************************** - * DEB PREFIX TABLE * - **********************************************************************/ -#pragma pack(1) -struct debprfx { - union { - void *debwkara; /* 00 I/O SUPPORT WORK AREA - (DIRECT ACCESS) */ - struct { - char unused01; - char debdscba[7]; /* 01 DSCB ADDRESS (BBCCHHR) USED BY - I/O SUPPORT (DIRECT ACCESS) */ - }; - }; - - union { - void *debxtnp; /* 08 POINTER TO DEB EXTENSION (OS/VS2) */ - char debdcbmk[4]; /* 08 DCB MODIFICATION MASK USED BY - I/O SUPPORT (OS/VS1) */ - }; - - char deblngth; /* 0C LENGTH OF DEB IN DOUBLE WORDS */ - char debamtyp; /* 0D ACCESS METHOD TYPE */ -#define DEBAMNON 0x00 /* ... ACCESS METHOD TYPE NOT KNOWN */ -#define DEBAMVSM 0x01 /* ... VSAM ACCESS METHOD TYPE */ -#define DEBAMXCP 0x02 /* ... EXCP ACCESS METHOD TYPE */ -#define DEBAMTCM 0x04 /* ... TCAM ACCESS METHOD TYPE */ -#define DEBAMGAM 0x08 /* ... GRAPHICS ACCESS METHOD TYPE */ -#define DEBAMTAM 0x10 /* ... BTAM ACCESS METHOD TYPE */ -#define DEBAMBPM 0x20 /* ... BPAM ACCESS METHOD TYPE */ -#define DEBAMSAM 0x20 /* ... SEQUENTIAL ACCESS METHOD TYPE */ -#define DEBAMBDM 0x40 /* ... DIRECT ACCESS METHOD TYPE */ -#define DEBAMISM 0x80 /* ... ISAM ACCESS METHOD TYPE */ -#define DEBAMSUB 0x81 /* ... SUBSYSTEM ACCESS METHOD TYPE */ -#define DEBAMVTM 0x82 /* ... VTAM® ACCESS METHOD TYPE */ -#define DEBAMTAP 0x84 /* ... TCAM APPLICATION ACC METHOD TYPE */ - - short debtblof; /* 0E2 OFFSET IN THE DEB TABLE TO THE - ENTRY FOR THIS DEB */ -}; -#pragma pack(reset) - -/*********************************************************************** - * DEB BASIC SECTION * - ***********************************************************************/ -#pragma pack(1) -struct debbasic { - union { - void *debtcbad; /* 00 ADDRESS OF TCB FOR THIS DEB */ - struct { - char debamid; /* 00 VTAM/TCAM DEB ID FLAG */ -#define DEBTAMID 0x00 /* ... TCAM DEB ID */ -#define DEBVAMID 0x0F /* ... VTAM DEB ID */ -#define debnmsub debamid /* 00 NUMBER OF SUBROUTINES LOADED BY - OPEN EXECUTOR ROUTINES */ - char debtcbb; /* 01 ADDRESS OF TCB FOR THIS DEB */ - char unused02[2]; - }; - }; - - union { - void *debdebad; /* 04 ADDRESS OF THE NEXT DEB IN THE - SAME TASK */ - struct { - char debamlng; /* 04 NUMBER OF BYTES IN THE ACCESS - METHOD DEPENDENT SECTION. - FOR BDAM THIS FIELD CONTAINS THE - LENGTH EXPRESSED IN NUMBER OF - WORDS. */ - char debdebb[3]; /* 05 ADDRESS OF THE NEXT DEB IN THE - SAME TASK */ - }; - }; - - union { - void *debirbad; /* 08 IRB STORAGE ADDRESS USED FOR - APPENDAGE ASYNCHRONOUS EXITS */ - struct { - char deboflgs; /* 08 DATA SET STATUS FLAGS */ -#define DEBDISP 0xC0 /* ... DATA SET DISPOSITION FLAGS - BIT SETTING DISPOSITION - DEBDSOLD 01 OLD DATA SET - DEBDSMOD 10 MOD DATA SET - DEBDSNEW 11 NEW DATA SET */ -#define DEBEOF 0x20 /* ... END-OF-FILE (EOF) ENCOUNTERED - (TAPE INPUT) - FORMAT 1 DSCB BIT 93.0 INDICATES - THAT THE CURRENT VOLUME IS THE LAST - VOLUME OF THE DATA SET - (DASD INPUT) */ -#define DEBRLSE 0x10 /* ... RELEASE UNUSED EXTERNAL STORAGE - (DASD) - EMULATOR TAPE WITH SECOND GENERATION - FORMAT. TAPE MAY CONTAIN BLOCKS - SHORTER THAN 12 CHARACTERS. - (TAPE) */ -#define DEBDCB 0x08 /* ... DCB MODIFICATION */ -#define DEBSPLIT 0x04 /* ... SPLIT CYLINDER (DASD) - 7-TRACK EMULATOR TAPE WITH POSSIBLE - MIXED PARITY RECORDS (TAPE) */ -#define DEBLABEL 0x02 /* ... NONSTANDARD LABELS */ -#define DEBRERR 0x01 /* ... USE REDUCED ERROR RECOVERY PROCEDURE - (TAPE) - CONCATENATED PARTITIONED ORGANIZATION - DATA SETS PROCESSED USING BPAM - (DASD) */ - char debirbb[3]; /* 09/2D IRB STORAGE ADDRESS USED FOR - APPENDAGE ASYNCHRONOUS EXITS */ - }; - }; - - - char debopatb; /* 0C FLAGS INDICATING BOTH THE METHOD OF - I/O PROCESSING AND THE DISPOSITION - THAT IS TO BE PERFORMED WHEN AN - END-OF-VOLUME (EOV) CONDITION - OCCURS */ -#define DEBABEND 0x80 /* ... SET BY ABEND INDICATING A SYSABEND - OR SYSUDUMP DATA SET (OS/VS2) */ -#define DEBZERO 0x40 /* ... ALWAYS ZERO */ -#define DEBPOSIT 0x30 /* ... DATA SET POSITIONING FLAGS - BIT SETTING POSITIONING - DEBRERED 01 REREAD - DEBLEAVE 11 LEAVE */ -#define DEBACCS 0x0F /* ... TYPE OF I/O ACCESSING BEING DONE - BIT SETTING ACCESSING - DEBINPUT 0000 INPUT - DEBOUTPT 1111 OUTPUT - DEBINOUT 0011 INOUT - DEBOUTIN 0111 OUTIN - DEBRDBCK 0001 RDBACK - DEBUPDAT 0100 UPDAT */ - char debqscnt; /* 0D PURGE (SVC 16) - QUIESCE COUNT. - NUMBER OF DEVICES EXECUTING USER'S - CHANNEL PROGRAMS, AS SHOWN BY BITS - 5 AND 6 OF UCBFL1 FIELDS. */ - char debflgs1; /* 0E FLAG FIELD */ -#define DEBPWCKD 0x80 /* ... PASSWORD WAS SUPPLIED DURING OPEN. - EOV WILL NOT REQUEST A PASSWORD - FOR EACH ADDITIONAL VOLUME OF A - MULTIVOLUME DATA SET. */ -#define DEBEOFDF 0x40 /* ... SET BY EOV TO INFORM CLOSE THAT - AN END-OF-FILE HAS BEEN ENCOUNTERED - AND, THEREFORE, DEFERRED USER LABEL - PROCESSING IS ALLOWED. */ -#define DEBRSIOA 0x20 /* ... SIO APPENDAGE RE-ENTRY AUTHORIZATION - BIT (OS/VS1) */ -#define DEBEXCPA 0x10 /* ... EXCP IS AUTHORIZED FOR THIS DEB */ -#define DEBCINDI 0x08 /* ... DCB ASSOCIATED WITH THIS DEB IS - BEING PROCESSED BY THE COMPATIBILITY - INTERFACE ROUTINES (VSAM) */ -#define DEBF1CEV 0x04 /* ... EOV PROCESSING OCCURRED DURING - CLOSE PROCESSING. TESTED AND SET - TO ZERO BY CLOSE, SET TO ONE BY - EOV. */ -#define DEBAPFIN 0x02 /* ... IF ON, AUTHORIZED PROGRAMS CAN BE - LOADED */ -#define DEBXTNIN 0x01 /* ... IF ONE, DEB EXTENSION EXISTS - (OS/VS2) */ - char debrsv05; /* 0F RESERVED */ - - union { - void *debusrpg; /* 10 ADDRESS OF FIRST IOB IN THE USER - PURGE CHAIN (OS/VS1) - ADDRESS OF PURGED I/O RESTORE LIST - (PIRL) (OS/VS2) */ - struct { - char debnmext; /* 10 NUMBER OF EXTENTS SPECIFIED IN - DSCB'S */ - char debusrpb[3]; /* 11 ADDRESS OF FIRST IOB IN THE USER - PURGE CHAIN (OS/VS1) - ADDRESS OF PURGED I/O RESTORE LIST - (PIRL) (OS/VS2) */ - }; - }; - - union { - void *debrrq; /* 14 POINTER TO RELATED REQUEST QUEUE - (OS/VS2) */ - void *debecbad; /* 14 ADDRESS OF A PARAMETER LIST USED - TO LOCATE THE PURGE ECB FOR AN - SVC PURGE REQUEST (OS/VS1) */ - struct { - char debprior; /* 14 PRIORITY OF THE TASK OWNING DEB */ - char debecbb[3]; /* 15 ADDRESS OF A PARAMETER LIST USED - TO LOCATE THE PURGE ECB FOR AN - SVC PURGE REQUEST (OS/VS1) */ - }; - }; - - union { - void *debdcbad; /* 18 ADDRESS OF DCB ASSOCIATED WITH - THIS DEB */ - struct { - union { - char debprotg; /* 18 TASK PROTECTION KEY IN HIGH-ORDER - 4 BITS */ - char debdebid; /* 18 A HEX F IN LOW-ORDER 4 BITS TO - IDENTIFY THIS BLOCK AS A DEB */ - }; - char debdcbb[3]; /* 19 ADDRESS OF DCB ASSOCIATED WITH - THIS DEB */ - }; - }; - - union { - void *debappad; /* 1C ADDRESS OF THE I/O APPENDAGE - VECTOR TABLE */ - struct { - char debexscl; /* 1C EXTENT SCALE - 4 FOR DIRECT ACCESS - DEVICE AND 3525 CARD PUNCH WITH - DEVICE-ASSOCIATED DATA SET SUPPORT - AND 2 FOR NONDIRECT ACCESS DEVICE - AND COMMUNICATION DEVICE. - THIS FIELD IS USED TO DETERMINE - THE SIZE OF THE DEVICE DEPENDENT - SECTION */ - char debappb[3]; /* 1D ADDRESS OF THE I/O APPENDAGE - VECTOR TABLE */ - }; - }; -}; -#pragma pack(reset) - -/*********************************************************************** - * UNIT RECORD, MAGNETIC TAPE, TELECOMMUNICATIONS DEVICES SECTION * - * * - * NOTE FOR TELECOMMUNICATIONS DEVICES, THE UCB ADDRESS IS * - * REPEATED FOR EACH LINE ASSIGNED * - ***********************************************************************/ -#pragma pack(1) -struct debdds1 { - union { - void *debsucba; /* 00 ADDRESS OF A UCB ASSOCIATED WITH - A GIVEN DATA SET */ - struct { - char debsdvm; /* 00 DEVICE MODIFIER. - FOR MAGNETIC TAPE, SET MODE - OPERATION CODE. - FOR UNIT RECORD, NOT USED. */ - char debsucbb[3]; /* 01 ADDRESS OF A UCB ASSOCIATED WITH - A GIVEN DATA SET */ - }; - }; - - union { - char debdeved[4]; /* 04 END OF COMMON UNIT RECORD FIELDS */ - /* - * THE FOLLOWING FIELDS ARE PRESENT ONLY FOR THE 3525 WITH - * DEVICE-ASSOCIATED DATA SET SUPPORT */ - void *debrdcb; /* 04 ADDRESS OF DCB FOR THE READ - ASSOCIATED DATA SET */ - struct { - char unused04; - char debrdcba[3]; /* 05 ADDRESS OF DCB FOR THE READ - ASSOCIATED DATA SET */ - }; - }; - - union { - void *debpdcb; /* 08 ADDRESS OF DCB FOR THE PUNCH - ASSOCIATED DATA SET */ - struct { - char unused08; - char debpdcba[3]; /* 09 ADDRESS OF DCB FOR THE PUNCH - ASSOCIATED DATA SET */ - }; - }; - - union { - void *debwdcb; /* 0C ADDRESS OF DCB FOR THE PRINT - ASSOCIATED DATA SET */ - struct { - char unused0C; - char debwdcba[3]; /* 0D ADDRESS OF DCB FOR THE PRINT - ASSOCIATED DATA SET */ - }; - }; - -/*********************************************************************** - * 3540 ACCESS METHOD DEPENDENT SECTION @X04AA9A* - * (OS/VS1 ONLY) @X04AA9A* - * * - * NOTE THIS SECTION FOLLOWS DEBSUCBA IN UNIT RECORD, MAGNETIC * - * TAPE, TELECOMMUNICATIONS DEVICES SECTION IF DEB IS * - * FOR 3540 DEVICE. @X04AA9A* - ***********************************************************************/ -#define debasc09 debdeved /* 04 3540 ACCESS METHOD DEPENDENT - SECTION */ -#define debvolac debdeved[0] /* 04 VOLUME ACCESSABILITY INDICATOR */ -#define debdssql debdeved[1] /* 05 DATA SET SECURITY QUALIFIER */ -#define debvsequ debdeved[2] /* 06 VOLUME SEQUENCE NUMBER */ -#define debeamfg debdeved[3] /* 07 FLAG BYTE */ -#define DEBMULTI 0x80 /* ... MULTI-VOLUME INDICATOR */ -#define DEBDSOPN 0x40 /* ... DATA SET IS OPEN */ -#define DEBVAMSG 0x20 /* ... VOLUME ACCESSABILITY MESSAGE HAS - BEEN ISSUED */ -#define DEBSECVL 0x10 /* ... SECURE VOLUME */ -#define DEBRV004 0x08 /* ... RESERVED */ -#define DEBRV005 0x04 /* ... RESERVED */ -#define DEBRV006 0x02 /* ... RESERVED */ -#define DEBRV007 0x01 /* ... RESERVED */ - -#define debdsid debpdcb /* 08 DATA SET IDENTIFIER (DSID) (INPUT)*/ -#define debexdte debpdcb /* 08 EXPIRATION DATE (OUTPUT) */ -#define debwtpti debwdcb /* 0E WRITE PROTECT INDICATOR (OUTPUT) */ - - union { - void *debeod; /* 10 END OF DATA (EOD) ADDRESS (INPUT) */ - void *debboe; /* 10 BEGINNING OF EXTENT (BOE) ADDRESS */ - struct { - char unused10; - union { - char debeodtt; /* 11 EOD TRACK NUMBER */ - char debboett; /* 11 BOE TRACK NUMBER */ - }; - union { - char debeod0; /* 12 MUST BE ZERO */ - char debboe0; /* 12 MUST BE ZERO */ - }; - union { - char debeodss; /* 13 EOD SECTOR NUMBER */ - char debboess; /* 13 BOE SECTOR NUMBER */ - }; - }; - }; -}; -#pragma pack(reset) - -/*********************************************************************** - * DEB ISAM DEPENDENT SECTION * - * * - * NOTE PRESENT ONLY IF ISAM IS USED. FOLLOWS THE BASIC * - * SECTION AND PRECEDES THE DIRECT ACCESS STORAGE DEVICE * - * SECTION. COUNTED AS ONE EXTENT IN DEBNMEXT. * - ***********************************************************************/ -#pragma pack(1) -struct debisam { - union { - void *debfiead; /* 00 ADDRESS OF FIRST INDEX EXTENT */ - struct { - char debniee; /* 00 NUMBER OF EXTENTS OF INDEPENDENT - INDEX AREA */ - char debfieb[3]; /* 01 ADDRESS OF FIRST INDEX EXTENT */ - }; - }; - - union { - void *debfpead; /* 04 ADDRESS OF THE FIRST PRIME DATA - EXTENT */ - struct { - char debnpee; /* 04 NUMBER OF EXTENTS OF PRIME DATA - AREA (M=0 EXTENT) */ - char debfpeb[3]; /* 05 ADDRESS OF THE FIRST PRIME DATA - EXTENT */ - }; - }; - - union { - void *debfoead; /* 08 ADDRESS OF THE FIRST OVERFLOW - EXTENT */ - struct { - char debnoee; /* 08 NUMBER OF EXTENTS OF INDEPENDENT - OVERFLOW AREA */ - char debfoeb[3]; /* 09 ADDRESS OF THE FIRST OVERFLOW - EXTENT */ - }; - }; - - union { - void *debexpt; /* 0C ADDRESS OF ISAM DEB EXTENSION */ - struct { - char debrpsid; /* 0C ROTATIONAL POSITION SENSING (RPS) - DEVICE INDICATORS */ -#define DEBRPSP 0x80 /* ... PRIME DATA AREA IS ON RPS DEVICE */ -#define DEBRPSI 0x40 /* ... INDEPENDENT INDEX AREA IS ON RPS - DEVICE */ -#define DEBRPSO 0x20 /* ... INDEPENDENT OVERFLOW AREA IS ON - RPS DEVICE */ -#define DEBRPSAP 0x10 /* ... RPS SIO APPENDAGE HAS BEEN LOADED*/ -#define DEBRSV09 0x08 /* ... RESERVED */ -#define DEBRSV10 0x04 /* ... RESERVED */ -#define DEBRSV11 0x02 /* ... RESERVED */ -#define DEBRSV12 0x01 /* ... RESERVED */ - char debexpta[3]; /* 0D ADDRESS OF ISAM DEB EXTENSION */ - }; - }; -}; -#pragma pack(reset) - -/*********************************************************************** - * DIRECT-ACCESS STORAGE DEVICE SECTION * - * * - * NOTE IF ISAM IS BEING USED, THIS SECTION FOLLOWS THE ISAM * - * DEVICE DEPENDENT SECTION. OTHERWISE, IT FOLLOWS THE * - * BASIC SECTION. * - * * - * THERE IS ONE OF THESE SECTIONS FOR EACH EXTENT. * - ***********************************************************************/ -#pragma pack(1) -struct debdasd { - union { - void *debucbad; /* 00 ADDRESS OF UCB ASSOCIATED WITH - THIS DATA EXTENT */ - struct { - char debdvmod; /* 00 DEVICE MODIFIER - FILE MASK */ - char debucba[3]; /* 01 ADDRESS OF UCB ASSOCIATED WITH - THIS DATA EXTENT */ - }; - }; - - unsigned short debbinum; /* 04 BIN NUMBER */ - unsigned short debstrcc; /* 06 CYLINDER ADDRESS FOR THE START OF - AN EXTENT LIMIT */ - unsigned short debstrhh; /* 08 READ/WRITE TRACK ADDRESS FOR THE - START OF AN EXTENT LIMIT */ - unsigned short debendcc; /* 0A CYLINDER ADDRESS FOR THE END OF - AN EXTENT LIMIT */ - unsigned short debendhh; /* 0C READ/WRITE TRACK ADDRESS FOR THE - END OF AN EXTENT LIMIT */ - unsigned short debnmtrk; /* 0E NUMBER OF TRACKS ALLOCATED TO A - GIVEN EXTENT. - FOR SPLIT CYLINDER DATA SETS, - THIS FIELD REPRESENTS THE NUMBER - OF TRACKS BETWEEN THE START ADDRESS - OF THE EXTENT AND THE END ADDRESS - OF THE EXTENT. */ -}; -#pragma pack(reset) - -/*********************************************************************** - * EXCP ACCESS METHOD, BSAM AND QSAM DEPENDENT SECTION * - ***********************************************************************/ -#pragma pack(1) -struct debacsmd { - union { - unsigned short debvolsq; /* 00 VOLUME SEQUENCE NUMBER FOR - MULTIVOLUME SEQUENTIAL DATA SETS */ - struct { - char debvolbt; /* 00 FIRST BYTE OF DEBVOLSQ */ -#define DEBEXFUL 0x80 /* ... SET BY EOV WHEN REWRITING AN OLD - DIRECT ACCESS DATA SET TO INDICATE - THAT ALL PREVIOUS EXISTING EXTENTS - HAVE BEEN FILLED */ - char debvlseq; /* 01 FOR DIRECT ACCESS, SEQUENCE NUMBER - OF THE VOLUME OF THE DATA SET - RELATIVE TO THE FIRST VOLUME OF - THE DATA SET. - FOR TAPE, SEQUENCE NUMBER OF THE - VOLUME OF THE DATA SET RELATIVE - TO THE FIRST VOLUME PROCESSED. */ - }; - }; - - unsigned short debvolnm; /* 02 TOTAL NUMBER OF VOLUMES IN A - MULTIVOLUME SEQUENTIAL DATA SET. */ - char debdsnm[8]; /* 04 MEMBER NAME. THIS FIELD APPEARS - ONLY WHEN AN OUTPUT DATA SET HAS - BEEN OPENED FOR A MEMBER NAME AND - THE DSCB SPECIFIES A PARTITIONED - DATA SET. */ -#define debutsaa debdsnm /* 04 ADDRESS OF THE USER TOTALING - SAVE AREA */ -#define debutsab debdsnm[1] /* 05 ADDRESS OF THE USER TOTALING - SAVE AREA */ - - unsigned short debblksi; /* 0C MAXIMUM BLOCK SIZE */ - unsigned short deblrecl; /* 0E LOGICAL RECORD LENGTH */ -}; -#pragma pack(reset) - -/*********************************************************************** - * SUBROUTINE NAME SECTION * - * * - * NOTE FOLLOWS THE ACCESS METHOD DEPENDENT SECTION, OR THE * - * DEVICE DEPENDENT SECTION IF THERE IS NO ACCESS * - * METHOD SECTION * - ***********************************************************************/ -#pragma pack(1) -struct debsubnm { - char debsubid[2]; /* 00 SUBROUTINE IDENTIFICATION. - EACH ACCESS METHOD SUBROUTINE, - APPENDAGE SUBROUTINE, AND IRB - ROUTINE WILL HAVE A UNIQUE - EIGHT-BYTE NAME. - THE LOW-ORDER TWO BYTES OF EACH - ROUTINE NAME WILL BE IN THIS FIELD - IF THE SUBROUTINE IS LOADED BY - THE OPEN ROUTINES. */ -}; -#pragma pack(reset) - -/*********************************************************************** - * DEB EXTENSION (OS/VS2) * - * POINTED TO BY DEBXTNP * - ***********************************************************************/ -#pragma pack(1) -struct debxtn { - short debxlngh; /* 00 LENGTH OF DEB EXTENSION */ - char debxflg1; /* 02 FLAG BYTE */ -#define DEBXCDCB 0x80 /* ... DEBDCBAD FIELD CONTAINS THE - ADDRESS OF A COPIED DCB. - USED BY END-OF-VOLUME, TCLOSE AND - TASK CLOSE. */ -#define DEBXTSKC 0x40 /* ... TASK CLOSE IS CLOSING THE RELATED - DCB. SET BY TASK CLOSE AND - INTERROGATED BY END-OF-VOLUME, - FEOV AND TCLOSE FOR DEB'S NOT ON - THE CURRENT TCB DEB CHAIN. */ -#define DEBXDSSI 0x20 /* ... DATA SET SECURITY INDICATOR. - SET BY OPEN AND CHECKPOINT. - INTERROGATED BY EOV. */ -#define DEBXWIND 0x10 /* ... MSS WINDOW PROCESSING INDICATOR. - SET BY OPEN. INTERROGATED BY EOV, - SAM EOB AND CLOSE. */ -#define DEBXACIS 0x08 /* ... ACQUIRE ISSUED WITH INHIBIT STAGE - INDICATED DURING OPEN OR EOV. - SET BY OPEN AND EOV. - INTERROGATED BY SVC 126. */ - - char debxrv48; /* 03 RESERVED */ - void *debxdsab; /* 04 POINTER TO DSAB */ - unsigned debxdcbm; /* 08 DCB MODIFICATION MASK USED BY I/O - SUPPORT */ - void *debxdbpr; /* 0C POINTER TO DEB */ - char debxdso1; /* 10 SAME AS DCBDSORG BYTE 1 */ - char debxdso2; /* 11 SAME AS DCBDSORG BYTE 2 */ - char debxmcf1; /* 12 SAME AS DCBMACRF BYTE 1 */ - char debxmcf2; /* 13 SAME AS DCBMACRF BYTE 2 */ - void *debxxarg; /* 14 ADDRESS OF BDAM READ EXCLUSIVE - LIST */ - void *debxopnj; /* 18 POINTER TO DSAB (SEPARATE FROM - DEBXDSAB) DYNAMICALLY ALLOCATED BY - OPEN TYPE=J. THIS POINTER WILL - EXIST FOR NON-AUTHORIZED CALLERS - OF OPEN TYPE=J FOR A DIRECT ACCESS - DATA SET WHERE THE DATA SET NAME - BEING OPENED IS DIFFERENT FROM THE - DATA SET DESCRIBED BY THE DDNAME - IN DCB AND THE JFCNWRIT BIT IS ON - IN JFCB. THE POINTER WILL BE USED - BY CLOSE TO DYNAMICALLY UNALLOCATE - THE DATA SET. */ - void *debxsamb; /* 1C ADDRESS OF SAM BLOCK (SAMB) */ - char debxopet[8]; /* 20 DATASET OPEN TIME SET BY OPEN - INITIAL */ -}; -#pragma pack(reset) - -#pragma pack(1) -struct deb { - DEBAVT debavt; /* 00 appendage vector table */ - DEBPRFX debprfx; /* 14 prefix table */ - DEBBASIC debbasic; /* 24 basic section */ - DEBDASD debdasd; /* 54 dasd section */ -}; -#pragma pack(reset) - -#endif diff --git a/src/crent370/include/osdecb.h b/src/crent370/include/osdecb.h deleted file mode 100644 index f0084d2..0000000 --- a/src/crent370/include/osdecb.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef OSDECB_H -#define OSDECB_H - -typedef struct decb DECB; /* DECB for read/write/check */ - -#pragma pack(1) -struct decb { - unsigned decsdecb; /* 00 EVENT CONTROL BLOCK */ - char dectype1; /* 04 TYPE OF LENGTH OPERAND */ -#define DECLNS 0x80 /* ... S CODED FOR LENGTH */ - char dectype2; /* 05 TYPE OF OPERATION */ -#define DECRDSF 0x80 /* ... READ SF */ -#define DECRDSB 0x40 /* ... READ SB */ -#define DECWRSF 0x20 /* ... WRITE SF */ -#define DECWRSD 0x10 /* ... WRITE SD */ -/* #define DECRSV08 0x08 ... RESERVED */ -#define DECWRSZ 0x04 /* ... WRITE SZ */ -/* #define DECRSV09 0x02 ... RESERVED */ -#define DECWRSFR 0x01 /* ... WRITE SFR (BIT 2 IS ALSO ON) OR - READ RBL (BIT 0 IS ALSO ON) */ - short declngth; /* 06 LENGTH OF KEY AND DATA */ - void *decdcbad; /* 08 ADDRESS OF THE DCB TO WHICH THIS - I/O REQUEST IS RELATED */ - void *decarea; /* 0C ADDRESS OF KEY AND DATA, OR FOR - 1287 OR 1288 OPTICAL READERS, THE - ADDRESS OF A USER-SPECIFIED - CHANNEL PROGRAM */ - void *deciobpt; /* 10 ADDRESS OF THE IOB */ - void *decnext; /* 14 ADDRESS OF THE NEXT ADDRESS - FEEDBACK FIELD. PRESENT ONLY IF - R IS CODED IN THE WRITE MACRO. */ - void *decrecpt; /* 18 ADDRESS OF THE BLOCK REFERENCE - FIELD */ - void *decnaa; /* 1C ADDRESS OF THE NEXT ADDRESS - FEEDBACK FIELD */ -}; -#pragma pack(reset) - -#endif diff --git a/src/crent370/include/osio.h b/src/crent370/include/osio.h deleted file mode 100644 index b04ea73..0000000 --- a/src/crent370/include/osio.h +++ /dev/null @@ -1,81 +0,0 @@ -#ifndef OSIO_H -#define OSIO_H - -#include "osdcb.h" -#include "osdeb.h" -#include "osdecb.h" -#include "osiob.h" -#include "osjfcb.h" - -/* - - - - B S A M - - - - */ -/* allocate and initialize DCB for BSAM access */ -extern DCB * osbdcb(const char *ddname, EXITLIST *exitlist); - -/* open DCB for "read", "write", "load" or "update" access mode */ -extern int osbopen(DCB *dcb, int typej, const char *mode); - -/* close DCB with/without option and free of DCB storage -** option can be NULL, "reread", "leave", "rewind", "free", "disp". -** freedcb can be 0 (false) or any value (true) to free DCB storage. -** type_t is for close,type=t and should be 0 for normal close. -*/ -extern void osbclose(DCB *dcb, const char *option, int freedcb, int type_t); - -/* read a block from DCB dataset - does not wait for completion */ -extern void osread(DECB *decb, DCB *dcb, void *buf, int length); -extern void osbread(DECB *decb, DCB *dcb, void *buf, int length) asm("OSREAD"); - -/* write a block to DCB dataset - does not wait for completion */ -extern int oswrite(DECB *decb, DCB *dcb, void *buf, int length); -extern int osbwrite(DECB *decb, DCB *dcb, void *buf, int length) asm("OSWRITE"); - -/* check last read or write for completion */ -extern int oscheck(DECB *decb); - -/* - - - - E X C P - - - - */ -/* allocate and initialize DCB for EXCP access */ -extern DCB * osxdcb(const char *ddname, EXITLIST *exitlist); - -/* open DCB for EXCP access */ -extern int osxopen(DCB *dcb, int typej); - -/* given a DCB, number of blocks per track, and a block number, -** calculate 8 byte MBBCCHHR value. -** returns record number or -1 on error. -*/ -extern int osxcalc(DCB *dcb, unsigned blkstrk, unsigned block, - char *mbbcchhr); - -/* read one block from dataset by block number */ -extern int osxread(DCB *dcb, unsigned blkstrk, unsigned block, - void *buf, char *sense); - -/* write one block to dataset by block number */ -extern int osxwrite(DCB *dcb, unsigned blkstrk, unsigned block, - void *buf, char *sense); - -/* close EXCP DCB created by osxdcb() -** freedcb can be 0 (false) or any value (true) to free DCB storage. -*/ -extern void osxclose(DCB *dcb, int freedcb); - - -/* - - - - B D A M - - - - */ -/* allocate and initialize DCB for BDAM access (read+write) by relative block number */ -extern DCB * osddcb(const char *ddname); - -/* open DCB for BDAM UPDATE access (read+write) */ -extern int osdopen(DCB *dcb, int typej); - -/* read one block from dataset by relative block number */ -extern int osdread(DECB *decb, DCB *dcb, void *buf, int length, unsigned block); - -/* write one block to dataset by relative block number */ -extern int osdwrite(DECB *decb, DCB *dcb, void *buf, int length, unsigned block); - -/* close BDAM DCB created by osddcb() -** freedcb can be 0 (false) or any value (true) to free DCB storage. -*/ -extern void osdclose(DCB *dcb, int freedcb); - -#endif diff --git a/src/crent370/include/osiob.h b/src/crent370/include/osiob.h deleted file mode 100644 index 45db99c..0000000 --- a/src/crent370/include/osiob.h +++ /dev/null @@ -1,329 +0,0 @@ -#ifndef IOB_H -#define IOB_H - -typedef struct iob IOB; -typedef struct iobprfx IOBPRFX; - -#pragma pack(1) -struct iobprfx { - /* IOB Prefix area */ - char iobcflg1; /* 00 I/O INDICATORS */ -#define IOBV6CHN 0x80 /* ... I/O CHAINED BIT SET BY IGG019V6 */ -#define IOBRSV02 0x40 /* ... RESERVED */ -#define IOBRSV03 0x20 /* ... RESERVED */ -#define IOBRSV04 0x10 /* ... RESERVED */ -#define IOBPTST 0x08 /* ... NOTE OR POINT OPERATION IS IN - PROCESS */ -#define IOBABAPP 0x04 /* ... ERROR HAS BEEN PROCESSED ONCE - BY ABNORMAL-END APPENDAGE ROUTINE*/ -#define IOBRSTCH 0x02 /* ... RESTART CHANNEL */ -#define IOBPCI 0x01 /* ... SET WHEN A PROGRAM-CONTROLLED - INTERRUPTION (PCI) OCCURS */ - - char iobrsv05; /* 01 RESERVED */ - char iobcinop; /* 02 OFFSET OF THE LAST I/O COMMAND - FOR INPUT OPERATION (NOP CCW) - FROM THE ORIGIN OF THE ICB */ - char iobconop; /* 03 OFFSET OF THE LAST I/O COMMAND - FOR AN OUTPUT OPERATION (NOP CCW) - FROM THE ORIGIN OF THE ICB */ - unsigned iobcecb; /* 04 EVENT CONTROL BLOCK USED BY BSAM - OR QSAM. SHOWS THE STATUS OF THE - I/O OPERATION. */ - void *iobcicb; /* 08 ADDRESS OF THE FIRST INTERRUPT - CONTROL BLOCK (ICB) ON THE ICB - QUEUE */ - void *iobcnopa; /* 0C ADDRESS OF THE NOP COMMAND AT THE - END OF THE QUEUE */ -}; - -struct iob { - /* Start of IOB */ -#define IOBSTDRD iobflag1 - char iobflag1; /* 00 FLAG BYTE 1 */ -#define IOBDATCH 0x80 /* ... DATA CHAINING USED IN CHANNEL - PROGRAM */ -#define IOBCMDCH 0x40 /* ... COMMAND CHAINING USED IN CHANNEL - PROGRAM */ -#define IOBERRTN 0x20 /* ... ERROR ROUTINE IS IN CONTROL */ -#define IOBRPSTN 0x10 /* ... DEVICE IS TO BE REPOSITIONED */ -#define IOBCYCCK 0x08 /* ... CYCLIC REDUNDANCY CHECK (CRC) - NEEDED (TAPE) */ -#define IOBFCREX 0x08 /* ... FETCH COMMAND RETRY EXIT - DIRECT ACCESS) */ -#define IOBIOERR 0x04 /* ... EXCEPTIONAL CONDITION. AFTER - THE ERROR ROUTINE RETURNS AND - THIS BIT IS ON, THE ERROR IS - CONSIDERED PERMANENT. */ -#define IOBUNREL 0x02 /* ... IOB UNRELATED FLAG (I.E., - NONSEQUENTIAL) */ -#define IOBRSTRT 0x01 /* ... IF 1, RESTART ADDRESS IN IOB TO - BE USED. - IF 0, START. (OS/VS1) */ -#define IOBSPSVC 0x01 /* ... FOR SAM/PAM, SET BY SVC IF I/O - APPENDAGE SHOULD NOT PROCESS - INTERRUPT (OS/VS2) */ - - char iobflag2; /* 01 FLAG BYTE 2 */ -#define IOBHALT 0x80 /* ... HALT I/O HAS BEEN ISSUED BY SVC - PURGE ROUTINE */ -#define IOBSENSE 0x40 /* ... SENSE WILL NOT BE PERFORMED UNTIL - THE DEVICE IS FREE */ -#define IOBPURGE 0x20 /* ... IOB HAS BEEN PURGED TO ALLOW I/O - ACTIVITY TO QUIESCE. (OS/VS1) */ -#define IOBRRT3 0x20 /* ... TYPE 3 RELATED REQUEST (OS/VS2) */ -#define IOBRDHA0 0x10 /* ... HOME ADDRESS (R0) RECORD IS TO - BE READ. SEEK COMMAND NOT NEEDED. - (OS/VS1) */ -#define IOBRRT2 0x10 /* ... TYPE 2 RELATED REQUEST (OS/VS2) */ -#define IOBALTTR 0x08 /* ... NO TEST FOR OUT-OF-EXTENT. - AN ALTERNATE TRACK IS IN USE. */ -#define IOBSKUPD 0x04 /* ... SEEK ADDRESS IS BEING UPDATED. - CYLINDER END OR FILE MASK - VIOLATION HAS OCCURRED. */ -#define IOBSTATO 0x02 /* ... DEVICE END STATUS HAS BEEN OR'ED - WITH CHANNEL END STATUS - (GRAPHICS DEVICE) */ -#define IOBPNCH 0x01 /* ... ERROR RECOVERY IN CONTROL FOR A - 2540 CARD PUNCH WITH THREE - BUFFERS (QSAM) - RESETPL MACRO INSTRUCTION WAS - USED (BTAM) */ - - char iobsens0; /* 02 FIRST SENSE BYTE */ -#ifndef SENSE0_CMD_REJECT -#define SENSE0_CMD_REJECT 0x80 /* ... Command reject */ -#define SENSE0_INT_REQ 0x40 /* ... Intervention required */ -#define SENSE0_BUS_CHECK 0x20 /* ... Bus out check */ -#define SENSE0_EQU_CHECK 0x10 /* ... Equipment check */ -#define SENSE0_DATA_CHECK 0x08 /* ... Data check */ -#define SENSE0_OVERRUN 0x04 /* ... Overrun */ -#endif - - char iobsens1; /* 03 SECOND SENSE BYTE */ -#ifndef SENSE1_PERM_ERROR -#define SENSE1_PERM_ERROR 0x80 /* ... Permanent Error - - Unrecoverbale error has occured */ -#define SENSE1_INV_TRACK 0x40 /* ... Invalid Track Format - - Write exceedes track capacity */ -#define SENSE1_END_CYL 0x20 /* ... End of Cylinder - - Multitrack opeartion has - encountered cylinder end */ -#define SENSE1_NOT_FOUND 0x08 /* ... No Record Found - - Two index points encoutered - without interveaning read */ -#define SENSE1_FILE_PROTECT 0x04 /* ... File Protected - - File Mask violated */ -#define SENSE1_WRITE_INH 0x02 /* ... Write Inhibited */ -#define SENSE1_OPER_INCOMP 0x01 /* ... Operation Incomplete */ -#endif - - union { - void *iobecbpt; /* 04 ADDRESS OF ECB TO BE POSTED ON - I/O COMPLETION */ - struct { - char iobecbcc; /* 04 COMPLETION CODE FOR AN I/O REQUEST. - THIS CODE WILL APPEAR IN THE FIRST - BYTE OF AN ECB. */ - char iobecbpb[3]; /* 05 ADDRESS OF THE ECB TO BE POSTED - UPON THE COMPLETION OF AN I/O - EVENT. - FOR BSAM/BPAM, ECB IS IN THE DECB. - FOR QSAM, ECB IS IN THE QSAM PREFIX - OF THE IOB. */ - }; - }; - -#define IOBFLAG3 iobfl3 /* 08 I/O SUPERVISOR ERROR ROUTINE FLAG - BYTE (DEVICE DEPENDENT) */ - char iobfl3; /* 08 FLAG 3 - STATUS ERROR COUNTS FOR - MAGNETIC DOCUMENT READER (3890) - OR FLAGS FOR 3800 (OS/VS1) */ -#define IOBCCC 0x80 /* ... CHANNEL CONTROL CHECK ERROR - COUNT (3890) */ -#define IOBICC 0x40 /* ... INTERFACE CONTROL CHECK ERROR - COUNT (3890) */ -#define IOBCDC 0x20 /* ... CHANNEL DATA CHECK ERROR (3890) */ -#define IOBACU 0x10 /* ... ATTENTION/CONTROL UNIT ERROR - (3890) */ -#define IOBCNC 0x08 /* ... CHAIN CHECK ERROR (3890) */ -#define IOBSDR 0x08 /* ... STATISTICS ONLY FLAG (3800) */ -#define IOBMSG 0x04 /* ... MESSAGE FLAG (3890 OR 3800) */ -#define IOBICL 0x02 /* ... INCORRECT LENGTH ERROR (3890) */ -#define IOBJAM 0x02 /* ... SET ON WHEN JES SUBSYSTEM HAS - DETECTED A PAPER JAM SO 3800 ERP - WILL SUPPRESS ITS INTERVENTION - REQUIRED MESSAGE (3800) */ -#define IOBLOG 0x01 /* ... LOG OUT FLAG (3890 OR 3800) */ - - char iobcsw[7]; /* 09 LOW-ORDER SEVEN BYTES OF THE LAST - CSW THAT REFLECTS THE STATUS FOR - THIS REQUEST */ -#define iobcmda iobcsw /* 09 COMMAND ADDRESS (3890) */ - -#define iobustat iobcsw[3] /* 0C CSW UNIT STATUS FLAGS (3800) */ -#define IOBUSB0 0x80 /* ... ATTENTION */ -#define IOBUSB1 0x40 /* ... STATUS MODIFIER */ -#define IOBUSB2 0x20 /* ... CONTROL UNIT END */ -#define IOBUSB3 0x10 /* ... BUSY */ -#define IOBUSB4 0x08 /* ... CHANNEL END */ -#define IOBUSB5 0x04 /* ... DEVICE END */ -#define IOBUSB6 0x02 /* ... UNIT CHECK */ -#define IOBUSB7 0x01 /* ... UNIT EXCEPTION */ - -#define iobcstat iobcsw[4] /* 0D CSW CHANNEL STATUS FLAGS (3800) */ -#define IOBCSB0 0x80 /* ... PROGRAM CONTROL INTERRUPT */ -#define IOBCSB1 0x40 /* ... INCORRECT LENGTH */ -#define IOBCSB2 0x20 /* ... PROGRAM CHECK */ -#define IOBCSB3 0x10 /* ... PROTECTION CHECK */ -#define IOBCSB4 0x08 /* ... CHANNEL DATA CHECK */ -#define IOBCSB5 0x04 /* ... CHANNEL CONTROL CHECK */ -#define IOBCSB6 0x02 /* ... INTERFACE CONTROL CHECK */ -#define IOBCSB7 0x01 /* ... CHAINING CHECK */ - - union { - void *iobstart; /* 10 ADDRESS OF CHANNEL PROGRAM TO BE - EXECUTED */ - struct { - char iobsiocc; /* 10 SIO CODE. BITS 2 AND 3 CONTAIN - CONDITION CODE RETURNED AFTER - EXECUTION OF SIO INSTRUCTION - FOR THIS I/O EVENT. */ - char iobstrtb[3]; /* 11 ADDRESS OF CHANNEL PROGRAM TO BE - EXECUTED */ - }; - }; - - union { - void *iobdcbpt; /* 14 ADDRESS OF DCB ASSOCIATED WITH - THIS IOB */ - struct { - char iobflag4; /* 14 FLAG BYTE */ -#define IOBGDPOL 0x80 /* ... RE-ENTER SIO APPENDAGE FOR OLTEP - GUARANTEED DEVICE PATH */ -#define IOBCC3WE 0x40 /* ... USER REQUESTS THAT IOS POST A - X'6D' FOR A CONDITION CODE 3 ON - ATTEMPTED I/O OPERATIONS (OS/VS2)*/ -#define IOBPMERR 0x20 /* ... VTAM SETS THIS BIT ON TO INDICATE - TO IOS THAT VTAM SHOULD BE POSTED - WITH A PERMANENT I/O ERROR BECAUSE - ALL ALTERNATE PATHS TO THE 3705 - HAVE BEEN TRIED (OS/VS1) */ -#define IOBRSV40 0x10 /* ... RESERVED */ -#define IOBRSV41 0x08 /* ... RESERVED */ -#define IOBRSV42 0x04 /* ... RESERVED */ -#define IOBJES3I 0x02 /* ... JES3 INTERVENTION REQUIRED - NOTIFICATION. SETTING THIS BIT - WILL RESULT IN TURNING ON BIT - IOSPGDPX IN THE IOSB. (OS/VS2) */ -#define IOBRSV44 0x01 /* ... RESERVED */ - - char iobdcbpb[3]; /* 15 ADDRESS OF DCB ASSOCIATED WITH - THIS IOB */ - }; - }; - - union { - void *iobrestr; /* 18 AFTER SVC 16 (PURGE) - QUIESCE - - ADDRESS OF THE NEXT IOB IN THE PURGE - CHAIN. (LAST IOB IN THE CHAIN, - BYTE 4 IS FF.) - DURING I/O SUPERVISOR WRITE-TO- - OPERATOR ROUTINE CONTROL - CCHH PART - OF THE ADDRESS OF A DEFECTIVE TRACK. - DURING I/O ERROR CORRECTION - (MEANINGFUL ONLY IF BIT 3 IN THE - IOBFLAG1 FIELD IS ON) - ADDRESS OF - THE CHANNEL PROGRAM USED TO CORRECT - AN ERROR CONDITION. - AFTER I/O ERROR CORRECTION - IF A - CHANNEL PROGRAM IS RESTARTED THROUGH - A CCW OTHER THAN THE ONE POINTED TO - BY THE IOBSTART FIELD, ITS ADDRESS - IS HERE. */ - struct { - char iobrepos; /* 18 DURING I/O ERROR CORRECTION - (MEANINGFUL ONLY IF BIT 3 IN THE - IOBFLAG1 FIELD IS ON) FOR MAGNETIC - TAPE ONLY - THE CONTROL COMMAND - (BSR, FSR, ERG) REQUIRED TO - REPOSITION OVER A BLOCK. */ - char iobrstrb[3]; /* 19 SAME AS IOBRESTR ABOVE */ - }; - }; - - union { - unsigned short iobincam; /* 1C QSAM, BSAM, EXCP ACCESS METHOD -- - NORMAL SCHEDULING - VALUE USED TO - INCREMENT BLOCK COUNT FIELD IN DCB - FOR MAGNETIC TAPE. - CHAINED SCHEDULING - ZEROS. - QSAM, BSAM -- OPERATION CODE OF - WRITE CCW WHEN A USASI CONTROL - CHARACTER AND NO DATA IS TO BE - WRITTEN (PRINTER AND CARD PUNCH ONLY) - */ - struct { - char iobbtamf; /* 1C FLAG BYTE FOR BTAM */ -#define IOBPRMER 0x80 /* ... SAD OR ENABLE ISSUED BY OPEN - RESULTED IN A PERMANENT I/O ERROR*/ -#define IOBINUSE 0x40 /* ... THIS IOB IS CURRENTLY IN USE BY - AN I/O OPERATION */ -#define IOBRSV14 0x20 /* ... RESERVED */ -#define IOBRSV15 0x10 /* ... RESERVED */ -#define IOBRSV16 0x08 /* ... RESERVED */ -#define IOBRSV17 0x04 /* ... RESERVED */ -#define IOBRFTMG 0x02 /* ... A REQUEST-FOR-TEST MESSAGE RECEIVED - FROM A REMOTE 3270 DISPLAY STATION - */ -#define IOBOLTST 0x01 /* ... LINE IS UNDER ON-LINE TEST - OPERATION */ - char unused2E; - }; - }; - - unsigned short ioberrct; /* 1E USED BY I/O SUPERVISOR ERROR ROUTINES - TO COUNT TEMPORARY ERRORS DURING - RETRY */ -/*********************************************************************** - * * - * EXTENSION SECTIONS OF THE IOB * - * * - ***********************************************************************/ - union { - char iobexten[8]; /* 20 IOB Extension */ - char iobseek[8]; /* 20 A SEEK ADDRESS (IN THE FORMAT - MBBCCHHR) USED WITH A CHANNEL - PROGRAM */ - struct { - char iobm; /* 20 THE NUMBER OF THE DEB EXTENT TO BE - USED FOR THIS REQUEST. THE FIRST - EXTENT IS NUMBER 0. */ - union { - unsigned char iobbb[2];/* 21 BIN NUMBER(DATA CELL) */ - struct { - char iobbb1; /* 21 */ - char iobbb2; /* 22 */ - }; - }; - union { - unsigned char iobcc[2];/* 23 CYLINDER NUMBER */ - struct { - char iobcc1; /* 23 */ - char iobcc2; /* 24 */ - }; - }; - union { - unsigned char iobhh[2];/* 25 TRACK NUMBER */ - struct { - char iobhh1; /* 25 */ - char iobhh2; /* 26 */ - }; - }; - char iobr; /* 27 RECORD NUMBER */ - }; - }; -}; /* 28 (40 bytes) */ -#pragma pack(reset) - -#endif diff --git a/src/crent370/include/osjfcb.h b/src/crent370/include/osjfcb.h deleted file mode 100644 index de2f925..0000000 --- a/src/crent370/include/osjfcb.h +++ /dev/null @@ -1,607 +0,0 @@ -#ifndef OSJFCB_H -#define OSJFCB_H - -#include "osdcb.h" - -typedef struct jfcb JFCB; /* Job File Control Block */ - -#pragma pack(1) -struct jfcb { - char jfcbdsnm[44]; /* 00 DATA SET NAME */ - char jfcbelnm[8]; /* 2C ELEMENT NAME OR RELATIVE GENERATION - NUMBER. - TYPE OF AREA (INDEX, PRIME OR - OVERFLOW) FOR AN INDEXED SEQUENTIAL - DATA SET ONLY. */ - char jfcbtsdm; /* 34 JOB MANAGEMENT/DATA MANAGEMENT - INTERFACE */ -#define JFCCAT 0x80 /* ... DATA SET IS CATALOGED */ -#define JFCVSL 0x40 /* ... VOLUME SERIAL LIST HAS BEEN - CHANGED */ -#define JFCSDS 0x20 /* ... DATA SET IS A SYSIN OR SYSOUT - DATA SET */ -#define JFCTTR 0x10 /* ... A JOB STEP IS TO BE RESTARTED. - USE JFCBOTTR INSTEAD OF DS1LSTAR - FIELD TO REPOSITION DATA SET - IF AUTOMATIC STEP RESTART OCCURS. - (THIS JOB HAD ABEND PROCESSING - FOR A DATA SET OPENED FOR MOD.) */ -#define JFCNWRIT 0x08 /* ... DO NOT WRITE BACK THE JFCB DURING - OPEN PROCESSING */ -#define JFCNDSCB 0x04 /* ... DO NOT MERGE DSCB OR LABEL FIELDS - INTO THIS JFCB */ -#define JFCNDCB 0x02 /* ... DO NOT MERGE DCB FIELDS INTO - THIS JFCB */ -#define JFCPAT 0x01 /* ... THE PATTERNING DSCB IS COMPLETE */ - char jfcbdscb[3]; /* 35 TTR ADDRESS OF THE FORMAT 1 DSCB - FOR DATA SET PART ON THE FIRST - VOLUME OF THE DATA SET */ - char jfcamcro[2]; /* 38 VSAM CHECKPOINT/RESTART OPTION - INDICATORS */ - unsigned short jfcamstr; /* 3A NUMBER OF STRINGS */ - unsigned short jfcbadbf; /* 3C NUMBER OF DATA BUFFERS */ - unsigned short jfcnlrec; /* 3E LOGICAL RECORD LENGTH FOR VSAM */ - unsigned short jfcvindx; /* 40 MASS STORAGE SYSTEM COMMUNICATOR - (MSSC) VOLUME SELECTION INDEX */ - char jfcbltyp; /* 42 LABEL TYPE */ -#define JFCRSV38 0x80 /* ... RESERVED */ -#define JFCBAL 0x40 /* ... AMERICAN NATIONAL STANDARD TAPE - LABELS (AL OR IF BIT 4 IS ALSO ON, - AUL) */ -#define JFCBLTM 0x20 /* ... UNLABELLED TAPE CREATED BY DOS - MAY HAVE LEADING TAPE MARK. - OPEN/CLOSE/EOV AND RESTART - MUST SPACE OVER A TAPE MARK - IF ONE EXISTS. */ -#define JFCBLP 0x10 /* ... BYPASS LABEL PROCESSING */ -#define JFCSUL 0x0A /* ... USER LABEL */ -#define JFCNSL 0x04 /* ... NONSTANDARD LABEL */ -#define JFCSL 0x02 /* ... STANDARD LABEL */ -#define JFCNL 0x01 /* ... NO LABEL */ - char jfcbottr[3]; /* 43 DASD MOD DATA SET - IF AUTOMATIC - STEP RESTART WAS REQUESTED, TTR - OF THE END-OF-DATA INDICATOR - EXISTING WHEN THE DATA SET WAS - FIRST OPENED DURING THE ORIGINAL - EXECUTION OF THE CURRENT STEP */ -#define jfcbufof jfcbottr[0] /* 43 TAPE DATA SET - THIS FIELD CONTAINS - THE BUFFER OFFSET (DCB SUBPARAMETER - VALUE) */ -#define JFCBFOFL 0x80 /* ... IF 1, THE OFFSET EQUALS FOUR AND - THE BUFFER OFFSET FIELD OF EACH - BLOCK (D-FORMAT RECORDS) CONTAINS - THE BLOCK LENGTH (SPECIFIED BY - BUFOFF=L). - IF 0, THE OFFSET IS AS SPECIFIED - IN THE REMAINING SEVEN BITS AND - THE BUFFER OFFSET FIELD OF EACH - BLOCK DOES NOT CONTAIN THE BLOCK - LENGTH. */ -#define jfcfunc jfcbottr[1] /* 44 FUNCTION INDICATORS FOR THE 3525 - CARD PUNCH (SPECIFIED BY THE FUNC - PARAMETER) */ -#define JFCFNCBI 0x80 /* ... I - INTERPRET (PUNCH AND PRINT - TWO LINES) */ -#define JFCFNCBR 0x40 /* ... R - READ */ -#define JFCFNCBP 0x20 /* ... P - PUNCH */ -#define JFCFNCBW 0x10 /* ... W - PRINT */ -#define JFCFNCBD 0x08 /* ... D - DATA PROTECTION */ -#define JFCFNCBX 0x04 /* ... X - THIS DATA SET IS TO BE - PRINTED. THIS MAY BE CODED WITH - PW OR RPW TO DISTINGUISH THE DATA - SET TO BE PRINTED FROM THE DATA - SET TO BE PUNCHED. */ -#define JFCFNCBT 0x02 /* ... T - TWO-LINE PRINT SUPPORT REQUEST. - THE SECOND PRINT LINE IS LOCATED - ON CARD LINE THREE. */ -#define JFCRSV31 0x01 /* ... RESERVED */ -#define jfcbflsq jfcbottr[1] /* 44 FOR MAGNETIC TAPE DEVICES, FILE - SEQUENCE NUMBER (2 bytes) */ - unsigned short jfcbvlsq; /* 46 VOLUME SEQUENCE NUMBER */ - - char jfcbmask[8]; /* 48 DATA MANAGEMENT MASK */ -#define jfcbops1 jfcbmask /* 48 OPEN ROUTINE INTERNAL SWITCHES - (5 bytes) */ -#define jfcbflg1 jfcbmask[5] /* 4D FLAG BYTE */ -#define JFCSTAND 0x80 /* ... VOLUME LABEL PROCESSING STANDARD */ -#define JFCSLCRE 0x40 /* ... CREATION OF A STANDARD LABEL IS - NECESSARY */ -#define JFCSLDES 0x20 /* ... DESTRUCTION OF A STANDARD LABEL - IS NECESSARY */ -#define JFCDUAL 0x10 /* ... DUAL-DENSITY CHECK DETECTED */ -#define JFCOPEN 0x0F /* ... OPEN ROUTINE INTERNAL SWITCHES */ -#define JFCBPWBP 0x01 /* ... PASSWORD BYPASS INDICATOR */ - -#define jfcbflg2 jfcbmask[6] /* 4E FLAG BYTE OF OPEN SWITCHES */ -#define JFCINOP 0x80 /* ... TREAT THE INOUT OPTION OF OPEN - AS INPUT */ -#define JFCOUTOP 0x40 /* ... TREAT THE OUTIN OPTION OF OPEN - AS OUTPUT */ -#define JFCDEFER 0x20 /* ... SET ONLY IN A JFCB RECORDED IN A - DATA SET DESCRIPTOR RECORD (DSDR) - BY THE CHECKPOINT ROUTINE. - INDICATES THAT THE DATA SET RELATED - TO THE JFCB IS BEING PROCESSED - SEQUENTIALLY, AT THE CHECKPOINT, - ON A VOLUME OTHER THAN THE VOLUME - ON WHICH PROCESSING BEGAN IN THE - CURRENT STEP. WHEN RESTART OCCURS, - THIS BIT CAUSES DEFERRED VOLUME - MOUNTING. */ -#define JFCNRPS 0x20 /* ... USE BY OPEN ROUTINES - SET TO - INDICATE THAT THIS DATA SET - RESIDES ON A NON-RPS DEVICE. - RESET TO ZERO WHEN OPEN PROCESSING - IS COMPLETED. */ -#define JFCMODNW 0x10 /* ... DISPOSITION OF THIS DATA SET HAS - BEEN CHANGED FROM MOD TO NEW. - DISPOSITION (IN JFCBIND2) WILL BE - RESTORED TO MOD AFTER OPEN. */ -#define JFCSDRPS 0x08 /* ... USE SEARCH DIRECT FOR ROTATIONAL - POSITION SENSING (RPS) DEVICES */ -#define JFCTRACE 0x04 /* ... GTF TRACE IS TO OCCUR DURING - OPEN/CLOSE/EOV AND DYNAMIC - ALLOCATION PROCESSING OF DCB */ -#define JFCBBUFF 0x02 /* ... INDICATOR TO OPEN THAT A NON-ZERO - VALUE IN JFCBOTTR IS NOT TO - PREVENT THE NORMAL STORING BY - OPEN OF A TTR IN JFCBOTTR. - BEFORE OPEN - JFCBUFOF (OFFSET 67) - CONTAINS A BUFFER OFFSET OR INVALID - INFORMATION RESULTING FROM A - JFCB-TO-JFCB MERGE. - AFTER OPEN - OPEN MAY HAVE STORED - A TTR IN JFCBOTTR (OFFSET 67), IN - WHICH CASE OPEN WILL HAVE SET THIS - BIT TO ZERO. */ -#define JFCRCTLG 0x01 /* ... OPEN HAS UPDATED THE TTR. - SCHEDULER STEP TERMINATION ROUTINE - IS TO RECATALOG THIS DATA SET AND - PLACE IN THE CATALOG ENTRY THE DSCB - TTR CONTAINED IN JFCBDSCB IF THIS - DATA SET IS CATALOGED. */ - -#define jfcbops2 jfcbmask[7] /* 4F OPEN ROUTINE INTERNAL SWITCHES */ - - char jfcbcrdt[3]; /* 50 DATA SET CREATION DATE - (YDD, Y=YEAR AND DD=DAY) */ - char jfcbxpdt[3]; /* 53 DATA SET EXPIRATION DATE (YDD) */ - char jfcbind1; /* 56 INDICATOR BYTE 1 */ -#define JFCRLSE 0xC0 /* ... RELEASE EXTERNAL STORAGE */ -#define JFCLOC 0x30 /* ... DATA SET HAS BEEN LOCATED */ -#define JFCADDED 0x0C /* ... NEW VOLUME HAS BEEN ADDED TO THE - DATA SET */ -#define JFCGDG 0x02 /* ... DATA SET IS A MEMBER OF A - GENERATION DATA GROUP */ -#define JFCPDS 0x01 /* ... DATA SET IS A MEMBER OF A - PARTITIONED DATA SET */ - - char jfcbind2; /* 57 INDICATOR BYTE 2 */ -#define JFCDISP 0xC0 /* ... BIT PATTERN FOR NEW, MOD, OLD */ -#define JFCNEW 0xC0 /* ... NEW DATA SET */ -#define JFCMOD 0x80 /* ... MOD DATA SET */ -#define JFCOLD 0x40 /* ... OLD DATA SET */ -#define JFCBRWPW 0x30 /* ... PASSWORD IS REQUIRED TO WRITE BUT - NOT TO READ (DATA SET SECURITY) */ -#define JFCSECUR 0x10 /* ... PASSWORD IS REQUIRED TO READ OR - TO WRITE (DATA SET SECURITY) */ -#define JFCSHARE 0x08 /* ... SHARED DATA SET */ -#define JFCENT 0x04 /* ... DELETE THIS JFCB BEFORE ALLOCATION - FOR A RESTARTED GENERATION DATA - GROUP */ -#define JFCREQ 0x02 /* ... STORAGE VOLUME REQUESTED */ -#define JFCTEMP 0x01 /* ... TEMPORARY DATA SET */ - - - char jfcbufno; /* 58 NUMBER OF BUFFERS REQUIRED FOR THIS - DATA SET (ACCESS METHODS OTHER THAN - TCAM AND QTAM) */ - char jfcbgncp; /* 59 FOR GAM, THIS FIELD IS USED FOR THE - NUMBER OF IOB'S CONSTRUCTED BY THE - OPEN ROUTINE. MAXIMUM NUMBER IS 99.*/ -#define jfcbhiar jfcbgncp /* 59 BUFFER POOL LOCATION IN MAIN STORAGE - (HIERARCHY) */ -#define jfcbfaln jfcbgncp /* 59 BUFFER ALIGNMENT */ -#define jfcbftek jfcbgncp /* 59 BUFFERING TECHNIQUE */ -#define JFCHIER 0x84 /* ... BITS 0 AND 5 DESCRIBE MAIN STORAGE - HIERARCHY. - BOTH BITS OFF, HIERARCHY 0. - BIT 0 OFF AND BIT 5 ON, HIERARCHY 1. - */ -#define JFCSIM 0x40 /* ... S - SIMPLE BUFFERING */ -#define JFCBBFTA 0x60 /* ... A - FOR QSAM LOCATE MODE - PROCESSING OF SPANNED RECORDS, - AUTOMATIC RECORD AREA CONSTRUCTION - DURING LOGICAL RECORD INTERFACE - PROCESSING. - OPEN IS TO CONSTRUCT A RECORD AREA - IF IT AUTOMATICALLY CONSTRUCTS - BUFFERS. */ -#define JFCBBFTR 0x20 /* ... R - FOR BSAM CREATE BDAM PROCESSING - OR BDAM PROCESSING OF UNBLOCKED - SPANNED RECORDS, SOFTWARE TRACK - OVERFLOW. - OPEN FORMS A SEGMENT WORK AREA - POOL AND STORES THE ADDRESS OF THE - SEGMENT WORK AREA CONTROL BLOCK - IN THE DCBEOBW FIELD OF THE DATA - CONTROL BLOCK. - WRITE USES A SEGMENT WORK AREA TO - WRITE A RECORD AS ONE OR MORE - SEGMENTS. - FOR BSAM INPUT PROCESSING OF - UNBLOCKED SPANNED RECORDS WITH - KEYS, RECORD OFFSET PROCESSING. - READ READS ONE RECORD SEGMENT - INTO THE RECORD AREA. - THE FIRST SEGMENT OF A RECORD IS - PRECEDED IN THE RECORD AREA BY - THE KEY. - SUBSEQUENT SEGMENTS ARE AT AN - OFFSET EQUAL TO THE KEY LENGTH. */ -#define JFCEXC 0x10 /* ... E - EXCHANGE BUFFERING */ -#define JFCDYN 0x08 /* ... DYNAMIC BUFFERING */ -#define JFCHIER1 0x04 /* ... HIERARCHY 1 MAIN STORAGE */ -#define JFCDWORD 0x02 /* ... D - DOUBLE WORD BOUNDARY */ -#define JFCFWORD 0x01 /* ... F - FULL WORD NOT A DOUBLE WORD - BOUNDARY */ - unsigned short jfcbufl; /* 5A BUFFER LENGTH (2 bytes) */ - char jfceropt; /* 5C ERROR OPTION. DISPOSITION OF - PERMANENT ERRORS IF USER RETURNS - FROM A SYNCHRONOUS ERROR EXIT. - (QSAM) */ -#define JFCACC 0x80 /* ... ACCEPT */ -#define JFCSKP 0x40 /* ... SKIP */ -#define JFCABN 0x20 /* ... ABNORMAL END OF TASK */ -#define JFCTOPT 0x10 /* ... ON-LINE TERMINAL TEST (BTAM) */ - - char jfckeyle; /* 5D DIRECT ACCESS KEY LENGTH */ -#define jfcprtsp jfckeyle /* 5D NORMAL PRINTER SPACING */ -#define JFCSPTHR 0x19 /* ... 3 - SPACE THREE LINES */ -#define JFCSPTWO 0x11 /* ... 2 - SPACE TWO LINES */ -#define JFCSPONE 0x09 /* ... 1 - SPACE ONE LINE */ -#define JFCSPNO 0x01 /* ... 0 - NO SPACING */ - - char jfcden; /* 5E TAPE DENSITY - 2400/3400 SERIES - MAGNETIC TAPE UNITS */ -#define JFC200 0x03 /* ... 7-TRACK 200 BPI */ -#define JFC556 0x43 /* ... 7-TRACK 556 BPI */ -#define JFC800 0x83 /* ... 7-TRACK AND 9-TRACK 800 BPI */ -#define JFC1600 0xC3 /* ... 9-TRACK 1600 BPI */ -#define JFC6250 0xD3 /* ... 9-TRACK 6250 BPI */ - - char jfcbabfs[3]; /* 5F TOTAL BUFFER SIZE FOR ALL VSAM - BUFFERS */ -#define jfclimct jfcbabfs /* 5F SEARCH LIMIT (BDAM) */ -#define jfctrkbl jfcbabfs[1] /* 60 DATA SET OPENED FOR MOD - IF - AUTOMATIC STEP RESTART WAS REQUESTED, - TRACK BALANCE EXISTING WHEN THE - DATA SET WAS FIRST OPENED DURING - THE ORIGINAL EXECUTION OF THE - CURRENT STEP */ - union { - unsigned short jfcdsorg; /* 62 DATA SET ORGANIZATION BEING USED */ - struct { - char jfcdsrg1; /* 62 BYTE 1 OF JFCDSORG */ -#define JFCORGIS 0x80 /* ... INDEXED SEQUENTIAL */ -#define JFCORGPS 0x40 /* ... PHYSICAL SEQUENTIAL */ -#define JFCORGDA 0x20 /* ... DIRECT */ -#define JFCORGCX 0x10 /* ... BTAM OR QTAM LINE GROUP */ -#define JFCORGCQ 0x08 /* ... QTAM DIRECT ACCESS MESSAGE QUEUE */ -#define JFCORGMQ 0x04 /* ... QTAM PROBLEM PROGRAM MESSAGE - QUEUE */ -#define JFCORGPO 0x02 /* ... PARTITIONED */ -#define JFCORGU 0x01 /* ... UNMOVABLE - THE DATA CONTAINS - LOCATION DEPENDENT INFORMATION */ - - char jfcdsrg2; /* 63 BYTE 2 OF JFCDSORG */ -#define JFCORGGS 0x80 /* ... GRAPHICS */ -#define JFCORGTX 0x40 /* ... TCAM LINE GROUP */ -#define JFCORGTQ 0x20 /* ... TCAM MESSAGE QUEUE */ -#define JFCRSV13 0x10 /* ... RESERVED, BINARY ZERO */ -#define JFCORGAM 0x08 /* ... VSAM */ -#define JFCORGTR 0x04 /* ... TCAM 3705 */ -#define JFCRSV15 0x02 /* ... RESERVED, BINARY ZERO */ -#define JFCRSV16 0x01 /* ... RESERVED, BINARY ZERO */ - }; - }; - - char jfcrecfm; /* 64 RECORD FORMAT */ -#define JFCFMREC 0xC0 /* ... HIGH-ORDER TWO BITS OF JFCRECFM - TO BE TESTED FOR RECORD FORMAT */ -#define JFCUND 0xC0 /* ... U - UNDEFINED */ -#define JFCFIX 0x80 /* ... F - FIXED */ -#define JFCVAR 0x40 /* ... V - VARIABLE */ -#define JFCRCFM 0xE0 /* ... RECORD FORMAT (USASI/USASCII) */ -#define JFCVARD 0x20 /* ... D - VARIABLE (FORMAT D FOR - USASI/USASCII) */ -#define JFCRFO 0x20 /* ... T - TRACK OVERFLOW */ -#define JFCRFB 0x10 /* ... B - BLOCKED - MAY NOT OCCUR WITH - UNDEFINED */ -#define JFCRFS 0x08 /* ... S - FOR FIXED LENGTH RECORD - FORMAT, STANDARD BLOCKS. - NO TRUNCATED BLOCKS OR UNFILLED - TRACKS ARE EMBEDDED IN THE DATA SET. - FOR VARIABLE LENGTH RECORD FORMAT, - SPANNED RECORDS. */ -#define JFCCHAR 0x06 /* ... CONTROL CHARACTER */ -#define JFCASA 0x04 /* ... A - AMERICAN NATIONAL STANDARD - (ASA) CONTROL CHARACTER */ -#define JFCMAC 0x02 /* ... M - MACHINE CODE CONTROL - CHARACTER */ -#define JFCNOCC 0x00 /* ... NO CONTROL CHARACTER */ - - char jfcoptcd; /* 65 OPTION CODES */ - /* QSAM - BSAM - BPAM */ -#define JFCWVCSP 0x80 /* ... W - WRITE VALIDITY CHECK */ -#define JFCALLOW 0x40 /* ... U - ALLOW A DATA CHECK CAUSED BY - AN INVALID CHARACTER (1403 PRINTER - WITH UCS FEATURE) */ -#define JFCPCIBT 0x20 /* ... C - CHAINED SCHEDULING USING THE - PROGRAM CONTROLLED INTERRUPTION */ -#define JFCBCKPT 0x10 /* ... BYPASS EMBEDDED DOS CHECKPOINT - RECORDS ON TAPE */ -#define JFCRSV18 0x08 /* ... RESERVED */ -#define JFCREDUC 0x04 /* ... Z - USE REDUCED ERROR RECOVERY - PROCEDURE - (MAGNETIC TAPE) (EXCP ALSO) */ -#define JFCSRCHD 0x04 /* ... USE SEARCH DIRECT (SD), INSTEAD OF - SEARCH PREVIOUS, ON ROTATIONAL - POSITION SENSING (RPS) DEVICE. - (DIRECT ACCESS) */ -#define JFCRSV21 0x02 /* ... RESERVED */ -#define JFCOPTJ 0x01 /* ... J - 3800 CONTROL CHARACTER */ - - /* BISAM - QISAM */ -#define JFCWVCIS 0x80 /* ... W - WRITE VALIDITY CHECK */ -#define JFCRSV17 0x40 /* ... RESERVED */ -#define JFCMAST 0x20 /* ... M - MASTER INDEXES */ -#define JFCIND 0x10 /* ... I - INDEPENDENT OVERFLOW AREA */ -#define JFCCYL 0x08 /* ... Y - CYLINDER OVERFLOW AREA */ -#define JFCRSV19 0x04 /* ... RESERVED */ -#define JFCDEL 0x02 /* ... L - DELETE OPTION */ -#define JFCREORG 0x01 /* ... R - REORGANIZATION CRITERIA */ - - /* BDAM */ -#define JFCWVCBD 0x80 /* ... W - WRITE VALIDITY CHECK */ -#define JFCOVER 0x40 /* ... TRACK OVERFLOW */ -#define JFCEXT 0x20 /* ... E - EXTENDED SEARCH */ -#define JFCFEED 0x10 /* ... F - FEEDBACK */ -#define JFCACT 0x08 /* ... A - ACTUAL ADDRESSING */ -#define JFCRSV20 0x04 /* ... RESERVED */ -#define JFCRSV22 0x02 /* ... RESERVED */ -#define JFCREL 0x01 /* ... R - RELATIVE BLOCK ADDRESSING */ - - /* USASI/USASCII */ -#define JFCOPTQ 0x08 /* ... EBCDIC TO ASCII OR ASCII TO EBCDIC - TRANSLATION REQUIRED */ - - /* TCAM */ -#define JFCSDNAM 0x80 /* ... SOURCE OR DESTINATION NAME PRECEDES - MESSAGE (AFTER CONTROL BYTE) */ -#define JFCWUMSG 0x40 /* ... WORK UNIT IS A MESSAGE (DEFAULT WORK - UNIT IS A RECORD) */ -#define JFCCBWU 0x20 /* ... CONTROL BYTE PRECEDES WORK UNIT */ - unsigned short jfcblksi; /* 66 MAXIMUM BLOCK SIZE */ -#define jfcbufsi jfcblksi /* 66 MAXIMUM BUFFER SIZE */ -#define jfcbaxbf jfcblksi /* 66 NUMBER OF INDEX BUFFERS (VSAM) */ - - union { - char jfcamsyn[8]; /* 68 MODULE NAME FOR SYNAD ROUTINE FOR - VSAM */ - struct { - unsigned short jfclrecl;/* 68 LOGICAL RECORD LENGTH (2 bytes) */ - unsigned short jfcncp; /* 6A NUMBER OF CHANNEL PROGRAMS. NUMBER - OF READ OR WRITE REQUESTS WHICH MAY - BE ISSUED PRIOR TO A CHECK. - NUMBER OF IOB'S GENERATED. - (MAXIMUM NUMBER IS 99.) - NOTE - GAM USES JFCBFTEK FOR THIS - INFORMATION AND DOES NOT USE THIS - FIELD AT ALL. (2 bytes) */ - char unused6C[4]; - }; - }; -#define jfcbufmx jfcamsyn[2] /* 6A THE MAXIMUM NUMBER OF BUFFERS TO BE - USED FOR DATA TRANSFER FOR EACH LINE - IN THIS LINE GROUP (TCAM) (1 byte)*/ -#define jfcbfseq jfcamsyn[3] /* 6B TAPE POSITIONING INFORMATION FOR - CHECKPOINT RESTART. THIS FIELD IS - USED TO PASS A PHYSICAL FILE SEQUENCE - COUNT FROM CHECKPOINT TO RESTART. - THE COUNT TELLS THE PHYSICAL - POSITION OF THE TAPE VOLUME THAT - WAS BEING PROCESSED WHEN THE - CHECKPOINT WAS TAKEN. (1 byte) */ -#define jfcntm jfcamsyn[3] /* 6B THE NUMBER OF TRACKS THAT DETERMINE - THE DEVELOPMENT OF A MASTER INDEX. - MAXIMUM NUMBER IS 99. (ISAM) */ -#define jfcpci jfcamsyn[3] /* 6B PROGRAM-CONTROLLED INTERRUPTION - (PCI) FLAG BYTE (TCAM) */ -#define JFCPCIX1 0x80 /* ... PCI=(X,) RECEIVE OPERATIONS */ -#define JFCPCIX2 0x40 /* ... PCI=(,X) SEND OPERATIONS - X INDICATES THAT AFTER THE FIRST - BUFFER IS FILLED (ON RECEIVE - OPERATIONS) OR EMPTIED (ON SEND - OPERATIONS), A PCI OCCURS DURING - THE FILLING OR EMPTYING OF THE - NEXT BUFFER. THE FIRST BUFFER - REMAINS ALLOCATED AND ANOTHER - IS ALLOCATED. */ -#define JFCPCIA1 0x20 /* ... PCI=(A,) RECEIVE OPERATIONS */ -#define JFCPCIA2 0x10 /* ... PCI=(,A) SEND OPERATIONS - A INDICATES THAT AFTER THE FIRST - BUFFER IS FILLED (ON RECEIVE - OPERATIONS) OR EMPTIED (ON SEND - OPERATIONS), A PCI OCCURS DURING - THE FILLING OR EMPTYING OF THE - NEXT BUFFER. THE FIRST BUFFER IS - DEALLOCATED. A BUFFER IS ALLOCATED - IN PLACE OF THE DEALLOCATED - BUFFER. */ -#define JFCPCIN1 0x08 /* ... PCI=(N,) RECEIVE OPERATIONS */ -#define JFCPCIN2 0x04 /* ... PCI=(,N) SEND OPERATIONS - N INDICATES THAT NO PCI'S ARE TAKEN - DURING FILLING (ON RECEIVE - OPERATIONS) OR EMPTYING (ON SEND - OPERATIONS) OF BUFFERS. BUFFERS - ARE DEALLOCATED AT THE END OF - TRANSMISSION. */ -#define JFCPCIR1 0x02 /* ... PCI=(R,) RECEIVE OPERATIONS */ -#define JFCPCIR2 0x01 /* ... PCI=(,R) SEND OPERATIONS - R INDICATES THAT AFTER THE FIRST - BUFFER IS FILLED (ON RECEIVE - OPERATIONS) OR EMPTIED (ON SEND - OPERATIONS), A PCI OCCURS DURING - THE FILLING OR EMPTYING OF EACH - SUCCEEDING BUFFER. - THE COMPLETED BUFFER IS DEALLOCATED, - BUT NO NEW BUFFER IS ALLOCATED TO - TAKE ITS PLACE. */ - - /******************************************************************* - * - * NORMAL 108 SEGMENT - */ -#define jfcresrv jfcamsyn[4] /* 6C FIRST BYTE CONTAINS NUMBER OF BYTES - FOR TIME OF DAY. SECOND BYTE - CONTAINS NUMBER OF BYTES FOR DATE. - THIRD BYTE CONTAINS NUMBER OF BYTES - FOR OUT SEQ. FOURTH BYTE CONTAINS - NUMBER OF BYTES IN. (TCAM) */ -#define jfcrkp jfcamsyn[4] /* 6C THE RELATIVE POSITION OF THE FIRST - BYTE OF THE KEY WITHIN EACH LOGICAL - RECORD. MAXIMUM VALUE IS LOGICAL - RECORD LENGTH MINUS KEY LENGTH. */ -#define jfccylof jfcamsyn[6] /* 6E THE NUMBER OF TRACKS TO BE RESERVED - ON EACH CYLINDER TO HOLD RECORDS - THAT OVERFLOW FROM OTHER TRACKS ON - THAT CYLINDER. MAXIMUM VALUE - IS 99. */ -#define jfcdbufn jfcamsyn[7] /* 6F RESERVED */ - - char jfcintvl; /* 70 INTENTIONAL DELAY, IN SECONDS, - BETWEEN PASSES THROUGH A POLLING - LIST (QTAM) */ - /* END OF NORMAL 108 SEGMENT - *******************************************************************/ - - /******************************************************************* - * - * 108 PRINTER SEGMENT - * - * NOTE THIS SEGMENT REPLACES THE NORMAL 108 SEGMENT IF - * THE DD STATEMENT USES THE UCS PARAMETER. - */ -#define jfcucsid jfcamsyn[4] /* 6C NAME OF THE UCS IMAGE TO BE LOADED*/ -#define jfcucsop jfcintvl /* 70 OPERATION OF THE UCS IMAGE TO BE - LOADED */ -#define JFCBEXTP 0x80 /* ... JFCB EXTENSION PRESENT FOR 3800 - DEVICE */ -#define JFCFOLD 0x40 /* ... UCS IMAGE IS TO BE LOADED IN THE - FOLD MODE */ -#define JFCRSV25 0x20 /* ... RESERVED */ -#define JFCVER 0x10 /* ... UCS IMAGE IS TO BE VERIFIED */ -#define JFCFCBAL 0x08 /* ... FORMS ARE TO BE ALIGNED */ -#define JFCFCBVR 0x04 /* ... FORMS CONTROL BUFFER (FCB) IMAGE - IS TO BE VERIFIED */ -#define JFCRSV26 0x02 /* ... RESERVED */ -#define JFCRSV27 0x01 /* ... RESERVED */ - /* END OF 108 PRINTER SEGMENT - *******************************************************************/ - - char jfcoutli[3]; /* 71 SMF - SYSOUT LIMIT. BINARY - REPRESENTATION OF THE OUTLIM= - PARAMETER ON THE SYSOUT DD - STATEMENT. THE MAXIMUM NUMBER OF - LOGICAL RECORDS SPECIFIED FOR THIS - OUTPUT DATA SET. */ -#define jfcthrsh jfcoutli[0] /* 71 RECORDS TO BE USED */ -#define jfccpri jfcoutli[0] /* 71 PRIORITY BETWEEN SEND AND RECEIVE - OPERATIONS (TCAM) */ -#define JFCRECV 0x04 /* ... RECEIVE PRIORITY */ -#define JFCEQUAL 0x02 /* ... EQUAL PRIORITY */ -#define JFCSEND 0x01 /* ... SEND PRIORITY */ -#define jfcsowa jfcoutli[1] /* 72 LENGTH, IN BYTES, OF THE USER- - PROVIDED WORK AREA (QTAM) */ - char jfcbntcs; /* 74 NUMBER OF OVERFLOW TRACKS */ - char jfcbnvol; /* 75 NUMBER OF VOLUME SERIAL NUMBERS */ - char jfcbvols[30]; /* 76 THE FIRST FIVE VOLUME SERIAL - NUMBERS */ -#define jfcmsvgp jfcbvols[22]; /* 8C MASS STORAGE VOLUME GROUP FROM - WHICH TO SELECT A VOLUME */ - char jfcbextl; /* 94 LENGTH OF BLOCK OF EXTRA VOLUME - SERIAL NUMBERS (BEYOND FIVE) */ - char jfcbexad[3]; /* 95 RELATIVE TRACK ADDRESS (TTR) OF - FIRST JFCB EXTENSION BLOCK FOR - VOLUME SERIAL NUMBERS OR TTR OF - JFCB EXTENSION BLOCK FOR 3800 */ - char jfcbpqty[3]; /* 98 PRIMARY QUANTITY OF DIRECT ACCESS - STORAGE REQUIRED */ -#define jfcrunit jfcbpqty /* 98 UNIT TYPE (EBCDIC) OF A DEVICE AT - A REMOTE TERMINAL. THE FIRST TWO - CHARACTERS ARE RD (READER), - PR (PRINTER) OR PU (PUNCH). - THE THIRD CHARACTER IS A NUMBER - FROM 1 TO 9 */ - char jfcbctri; /* 9B SPACE PARAMETERS */ -#define JFCBSPAC 0xC0 /* ... BIT PATTERN FOR SPACE REQUESTS */ -#define JFCBABS 0x00 /* ... ABSTR REQUEST */ -#define JFCBAVR 0x40 /* ... AVERAGE BLOCK LENGTH REQUEST */ -#define JFCBTRK 0x80 /* ... TRK REQUEST */ -#define JFCBCYL 0xC0 /* ... CYL REQUEST */ -#define JFCBMSGP 0x20 /* ... REQUEST IS FOR A MASS STORAGE - VOLUME GROUP (MSVGP) VOLUME */ -#define JFCRSV29 0x10 /* ... RESERVED */ -#define JFCONTIG 0x08 /* ... CONTIG REQUEST */ -#define JFCMIXG 0x04 /* ... MXIG REQUEST */ -#define JFCALX 0x02 /* ... ALX REQUEST */ -#define JFCROUND 0x01 /* ... ROUND REQUEST */ - char jfcbsqty[3]; /* 9C SECONDARY QUANTITY OF DIRECT ACCESS - STORAGE REQUIRED */ -#define jfcrqid jfcbsqty /* 9C QUEUE IDENTIFICATION (QID) USED BY - ACCESS METHOD TO DETERMINE THE - REMOTE TERMINAL LOCATION FOR THIS - JOB. */ - char jfcflgs1; /* 9F FLAG BYTE */ -#define JFCBDLET 0x80 /* ... IF ONE, DELETE THE DATA SET USED - WHEN EXTENDING THE JOB QUEUE OR - SPOOL DATA SETS (OS/VS1) */ -#define JFCTOPEN 0x40 /* ... TAPE DATA SET HAS BEEN OPENED */ -#define JFCBADSP 0x20 /* ... AUTOMATIC DATA SET PROTECTION - INDICATOR */ -#define JFCBPROT 0x10 /* ... RACF PROTECT REQUESTED (OS/VS2) */ -#define JFCBCEOV 0x08 /* ... IF ONE, CHKPT=EOV SPECIFIED FOR - THIS DATA SET */ -#define JFCVRDS 0x04 /* ... VIO DATA SET */ -#define JFCBCKDS 0x02 /* ... DATA SET IS CHECKPOINT DATASET */ -#define JFCBUAFF 0x01 /* ... UNIT AFFINITY SPECIFIED FOR THIS - DATA SET */ - - char jfcbdqty[3]; /* A0 QUANTITY OF DIRECT ACCESS STORAGE - REQUIRED FOR A DIRECTORY OR AN - EMBEDDED INDEX AREA */ - char jfcbspnm[3]; /* A3 MAIN STORAGE ADDRESS OF THE JFCB - WITH WHICH CYLINDERS ARE SPLIT - (OS/VS1) */ -#define jfcbflg3 jfcbspnm[0] /* A3 FLAG BYTE (OS/VS2) */ -#define JFCDQDSP 0x80 /* ... REQUEST DEQUEUE OF TAPE VOLUME - WHEN DEMOUNTED */ -#define JFCBEXP 0x40 /* ... EXPIRATION DATE SPECIFIED */ - - unsigned short jfcbabst; /* A6 RELATIVE ADDRESS OF FIRST TRACK - TO BE ALLOCATED */ - char jfcbsbnm[3]; /* A8 MAIN STORAGE ADDRESS OF THE JFCB - FROM WHICH SPACE IS TO BE - SUBALLOCATED */ - char jfcbdrlh[3]; /* AB AVERAGE DATA BLOCK LENGTH */ - char jfcbvlct; /* AE VOLUME COUNT */ - char jfcbsptn; /* AF NUMBER OF TRACKS PER CYLINDER TO - BE USED BY THIS DATA SET WHEN - SPLIT CYLINDER IS INDICATED */ -}; -#pragma pack(reset) - -extern int __rdjfcb(DCB *dcb, JFCB *jfcb); - -#endif diff --git a/src/crent370/include/racf.h b/src/crent370/include/racf.h deleted file mode 100644 index 30636a9..0000000 --- a/src/crent370/include/racf.h +++ /dev/null @@ -1,48 +0,0 @@ -#ifndef RACF_H -#define RACF_H - -#include "acee.h" /* ACCESSOR ENVIRONMENT ELEMENT */ -#include "safp.h" /* SAF ROUTER PARAMETER LIST */ -#include "safv.h" /* SAF VECTOR TABLE */ -#include "racinit.h" /* RACINIT parameter list */ -#include "racheck.h" /* RACHECK parameter list */ - -/* racf_auth() attribute values */ -#define RACF_ATTR_READ RACHECK_ATTR_READ -#define RACF_ATTR_UPDATE RACHECK_ATTR_UPDATE -#define RACF_ATTR_CONTROL RACHECK_ATTR_CONTROL -#define RACF_ATTR_ALTER RACHECK_ATTR_ALTER - -/* racf_set_acee() - set the ASXBSENV value, returns previous value */ -extern ACEE * racsacee(ACEE *newacee); -extern ACEE * racf_set_acee(ACEE *newacee) asm("RACSACEE"); - -/* racf_get_acee() - get the ASXBSENV value */ -extern ACEE * racgacee(void); -extern ACEE * racf_get_acee(void) asm("RACGACEE"); - -/* racf_login() - create a new ACEE for user. -** if pass is NULL then password checking is bypassed for this user. -** if racf_rc is not NULL then the RACF return code is returned. -*/ -extern ACEE * raclogin(const char *user, const char *pass, - const char *group, int *racf_rc); -extern ACEE * racf_login(const char *user, const char *pass, - const char *group, int *racf_rc) asm("RACLOGIN"); - -/* racf_logout() - release a ACEE */ -extern int raclgout(ACEE **acee); -extern int racf_logout(ACEE **acee) asm("RACLGOUT"); - -/* racf_auth() - check access to resource in security class -** where attr is one of RACF_ATTR_READ, RACF_ATTR_UPDATE, RACF_ATTR_CONTROL -** or RACF_ATTR_ALTER. If attr is 0 the RACF_ATTR_READ is assumed. -** if attr is an invalid value the RACF_ATTR_ALTER is assumed. -*/ -extern int racauth(ACEE *acee, const char *classname, - const char *resource, int attr); -extern int racf_auth(ACEE *acee, const char *classname, - const char *resource, int attr) asm("RACAUTH"); - - -#endif diff --git a/src/crent370/include/racheck.h b/src/crent370/include/racheck.h deleted file mode 100644 index b903b34..0000000 --- a/src/crent370/include/racheck.h +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef RACHECK_H -#define RACHECK_H - -typedef struct racheck RACHECK; -typedef struct raclass RACLASS; -typedef struct raentity RAENTITY; - -struct racheck { - char len; /* 00 length of racheck struct (plist) */ - char instdata[3]; /* 01 AL3(address of installation data) */ - char flag1; /* 04 flags */ -#define RACHECK_FLAG1_LOG_NONE 0x10/* ... LOG=(NONE) */ - char entity[3]; /* 05 AL3(entity name) */ - char attr; /* 08 attr flags */ -#define RACHECK_ATTR_READ 0x02/* ... READ */ -#define RACHECK_ATTR_UPDATE 0x04/* ... UPDATE */ -#define RACHECK_ATTR_CONTROL 0x08/* ... CONTROL */ -#define RACHECK_ATTR_ALTER 0x80/* ... ALTER */ - - char aclass[3]; /* 09 AL3(class name) */ - - char flag2; /* 0C flags */ - char volser[3]; /* 0D AL3(volser name) */ - - void *oldvolser; /* 10 old volser addr */ - void *appl; /* 14 appl */ - void *acee; /* 18 ACEE */ - void *owner; /* 1C owner */ - void *unused[4]; /* 20 unused */ - void *access1; /* 30 access value address */ - void *access2; /* 34 2nd access address */ -}; - -struct raclass { - char len; /* 00 length of class name */ - char name[8]; /* 01 class name */ -}; - -struct raentity { - char name[40]; /* 00 entity name */ -}; - -#endif diff --git a/src/crent370/include/racinit.h b/src/crent370/include/racinit.h deleted file mode 100644 index a37a838..0000000 --- a/src/crent370/include/racinit.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef RACINIT_H -#define RACINIT_H - -typedef struct racinit RACINIT; - -struct racinit { - char len; /* 00 list length */ - char subpool; /* 01 subpool number */ - char unused1; /* 02 reserved */ - char flag; /* 03 flags from envir parm */ -#define RACINIT_FLAG_VERIFY 0x80 /* ... ENVIR=VERIFY */ -#define RACINIT_FLAG_CHANGE 0x40 /* ... ENVIR=CHANGE */ -#define RACINIT_FLAG_SMC 0x20 /* ... SMC=YES */ -#define RACINIT_FLAG_SUBPOOL 0x10 /* ... SUBPOOL=nn */ -#define RACINIT_FLAG_PASSCHK 0x08 /* ... PASSCHK=NO */ -#define RACINIT_FLAG_STAT 0x04 /* ... STAT=NO */ -/* 0x02 */ -#define RACINIT_FLAG_ENCRYPT 0x01 /* ... ENCRYPT=NO */ - void *userid; /* 04 userid address */ - void *passwrd; /* 08 password address */ - void *start; /* 0C procedure name */ - void *instln; /* 10 installation parm address */ - void *group; /* 14 group address */ - void *newpass; /* 18 new password address */ - void *pgmname; /* 1C program name address */ - void *actinfo; /* 20 account info address */ - void *oidcard; /* 24 oid card address */ - void *termid; /* 28 term id address */ - void *jobname; /* 2C job name address */ - void *appl; /* 30 application name */ - void *acee; /* 34 acee address */ -}; - -#endif diff --git a/src/crent370/include/rb99.h b/src/crent370/include/rb99.h deleted file mode 100644 index d51216a..0000000 --- a/src/crent370/include/rb99.h +++ /dev/null @@ -1,91 +0,0 @@ -#ifndef RB99_H -#define RB99_H - -typedef struct rb99 RB99; -typedef struct rbx99 RBX99; - -struct rb99 { - unsigned char len; /* Lenght of RB (20) */ - - unsigned char request; /* Request */ -#define S99VRBAL 0x01 /* ALLOCATION */ -#define S99VRBUN 0x02 /* UNALLOCATION */ -#define S99VRBCC 0x03 /* CONCATENATION */ -#define S99VRBDC 0x04 /* DECONCATENATION */ -#define S99VRBRI 0x05 /* REMOVE IN-USE */ -#define S99VRBDN 0x06 /* DDNAME ALLOCATION */ -#define S99VRBIN 0x07 /* INFORMATION RETRIEVAL */ - - unsigned char flag1; /* First falg byte */ -#define S99ONCNV 0x80 /* ALLOC FUNCTION-DO NOT USE AN EXISTING - ALLOCATION THAT DOES NOT HAVE THE - CONVERTIBLE ATTRIBUTE TO SATISFY A - REQUEST */ -#define S99NOCNV 0x40 /* ALLOC FUNCTION-DO NOT USE AN EXISTING - ALLOCATION TO SATISFY THE REQUEST */ -#define S99NOMNT 0x20 /* ALLOC FUNCTION-DO NOT MOUNT VOLUMES - OR CONSIDER OFFLINE UNITS (THIS FLAG - OVERRIDES S99MOUNT AND S99OFFLN BELOW)*/ -#define S99JBSYS 0x10 /* ALLOC FUNC-JOB RELATED SYSOUT */ -#define S99CNENQ 0x08 /* ALL FUNCTIONS-ISSUE A CONDITIONAL ENQ - ON TIOT RESOURCE. IF NOT AVAILABLE, - RETURN AN ERROR CODE TO USER. */ -#define S99GDGNT 0x04 /* ALLOC FUNCTION - IGNORE THE GDG NAME - TABLE AND PERFORM A LOCATE FOR THE - GDG BASE LEVEL. */ -#define S99MSGL0 0x02 /* All functions - ignore the MSGLEVEL - parameter in the JCT and use - MSGLEVEL=(,0) */ -#define S99NOMIG 0x01 /* ALLOC function - do not recall - migrated data sets */ - - unsigned char flag2; /* Second flag byte */ -#define S99NOSYM 0x80 /* Allocate, unallocate, info retrieval - - do not perform symbolic substitution*/ -#define S99ACUCB 0x40 /* Alloc function-use Actual UCB address */ - - short error; /* DAIR Error Code */ - short info; /* DAIR Information Code */ - void *txtptr; /* Text pointers address */ - void *rbx99; /* Reserved */ - unsigned flag3; /* Special Flags */ -}; - -struct rbx99 { - unsigned char eye[6]; /* CONTROL BLOCK ID ='S99RBX' */ - unsigned char ver; /* VERSION NUMBER */ -#define S99RBXVR 0x01 /* CURRENT VERSION NUMBER */ - - unsigned char flag1; /* PROCESSING OPTIONS */ -#define S99EIMSG 0x80 /* ISSUE MSG BEFORE RETURNING TO CALLER */ -#define S99ERMSG 0x40 /* RETURN MSG TO CALLER */ -#define S99ELSTO 0x20 /* USER STORAGE SHOULD BE BELOW 16M - BOUNDRY */ -#define S99EMKEY 0x10 /* USER SPECIFIED STORAGE KEY FOR MESSAGE - BLOCKS */ -#define S99EMSUB 0x08 /* USER SPECIFIED SUBPOOL FOR MESSAGE - BLOCKS */ -#define S99EWTP 0x04 /* USE WTO FOR MESSAGE OUTPUT */ - - unsigned char subpool; /* SUBPOOL FOR MESSAGE BLOCKS */ - unsigned char key; /* STORAGE KEY FOR MESSAGE BLOCKS */ - unsigned char msgsev; /* SEVERITY LEVEL FOR MESSAGES PROCESSING */ -#define S99XINFO 0x00 /* INFORMATIONAL MSG SEVERITY */ -#define S99XWARN 0x04 /* WARNING MESSAGE SEVERITY */ -#define S99XSEVE 0x08 /* SEVERE MESSAGE SEVERITY */ - - unsigned char msgblks; /* NUMBER OF MESSAGE BLOCKS RETURNED */ - void *cppl; /* ADDRESS OF CPPL */ - unsigned char s99ercr; /* RESERVED */ - unsigned char s99ercm; /* RESERVED */ - unsigned char s99erco; /* RETURN CODE DEALING WITH MESSAGE OUTPUT */ - unsigned char s99ercf; /* RETURN CODE DEALING WITH STORAGE FOR - MESSAGE BLOCKS */ - int s99ewrc; /* PUTLINE/WTO RETURN CODE */ - void *s99emsgp; /* MESSAGE BLOCK POINTER */ - unsigned short s99eerr; /* ERROR REASON CODE */ - unsigned short s99einfo; /* INFORMATION REASON CODE */ - unsigned long s99ersn; /* SMS REASON CODE */ -}; - -#endif diff --git a/src/crent370/include/rfile.h b/src/crent370/include/rfile.h deleted file mode 100644 index bbf90c1..0000000 --- a/src/crent370/include/rfile.h +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef RFILE_H -#define RFILE_H -/* This header defines a record oriented dataset interface. */ - -/* ROPEN provides a low level structure for sequential access -** of MVS datasets. -*/ -typedef struct rfile RFILE; - -struct rfile { - char eye[8]; /* 00 eye catcher */ -#define RFILE_EYE "*RFILE*" /* ... */ - int dyn; /* 08 true=ddname was dyn alloced */ - int recfm; /* 0C record format flags */ -#define RFILE_RECFM_F 0 /* ... fixed length records */ -#define RFILE_RECFM_V 1 /* ... variable length records */ -#define RFILE_RECFM_U 2 /* ... undefined length records */ - int lrecl; /* 10 logical record length */ - int write; /* 14 true=open for output */ - void *hfile; /* 18 __a....() handle */ - void *asmbuf; /* 1C __a....() data buffer */ - char ddname[9]; /* 20 ddname string */ - char member[9]; /* 29 member string */ -}; /* 32 (50 bytes) */ - -/* ropen() - open dataset -** fnm: "dd:ddname" or "dataset.name" or "'my.dataset.name'" or -** "dd:ddname(member)" or "dataset(member)" or "'my.dataset(member)'" -*/ -extern int ropen(const char *fnm, int write, RFILE **fp); - -/* rclose() - close handle created by ropen() */ -extern int rclose(RFILE *fp); - -/* rread() - read record from dataset -** rc: 0==success, otherwise eof or error. -** read: number of bytes actually read. *read can be NULL* -*/ -extern int rread(RFILE *fp, void *ptr, size_t *read); - -/* rwrite() - write record to dataset -** rc: 0==success, otherwise error. -** size: record length or 0 to use lrecl. -*/ -extern int rwrite(RFILE *fp, const void *ptr, size_t size); - -#endif diff --git a/src/crent370/include/safp.h b/src/crent370/include/safp.h deleted file mode 100644 index 7d18875..0000000 --- a/src/crent370/include/safp.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef SAFP_H -#define SAFP_H - -typedef struct safp SAFP; /* SAF ROUTER PARAMETER LIST */ - -struct safp { - int safprret; /* 00 RACF OR INSTALLATION EXIT RETURN CODE */ - int safprrea; /* 04 RACF OR INSTALLATION EXIT REASON CODE */ - short safpln; /* 08 LENGTH OF SAFP PARAMETER LIST IN BYTES*/ - short unused1; /* 0A RESERVED */ - short safpreqt; /* 0C REQUEST NUMBER (VALUES DEFINED BELOW) */ -#define SAFPAU 1 /* ... RACHECK - AUTHORIZATION FUNCTION */ -#define SAFPFAU 2 /* ... FRACHECK - FAST AUTHORIZATION - FUNCTION */ -#define SAFPLIS 3 /* ... RACLIST - INCORE LIST BUILDING - FUNCTION */ -#define SAFPDEF 4 /* ... RACDEF - DEFINITION FUNCTION */ -#define SAFPVER 5 /* ... RACINIT - VERIFICATION FUNCTION */ -#define SAFPEXT 6 /* ... ICHEXTRT - EXTRACT FUNCTION */ - short unused2; /* 0E RESERVED */ - char *safpreqr; /* 10 REQUESTOR NAME ADDRESS (POINTS - TO AN 8-BYTE CHARACTER FIELD) */ - char *safpsubs; /* 14 SUBSYSTEM NAME ADDRESS (POINTS - TO AN 8-BYTE CHARACTER FIELD) */ - void *safpwa; /* 18 SAF WORKAREA ADDRESS */ - unsigned unused3[2]; /* 1C RESERVED */ - int safpracp; /* 24 OFFSET TO RACF-RELATED PARAMETER LIST - FROM BASE ADDRESS OF SAFP */ -}; /* 28 (40 bytes) */ - -#endif diff --git a/src/crent370/include/safv.h b/src/crent370/include/safv.h deleted file mode 100644 index 0970813..0000000 --- a/src/crent370/include/safv.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef SAFV_H -#define SAFV_H - -typedef struct safv SAFV; /* SAF VECTOR TABLE */ - -struct safv { - char safviden[4]; /* 00 IDENTIFYING LITERAL FOR DUMPS 'SAFV' */ -#define SAFVIDC "SAFV" - char safvvrsn; /* 04 TABLE VERSION NUMBER - '00'X */ - char unused1[3]; /* 05 RESERVED */ - void *safvexit; /* 08 ADDRESS OF THE SAF ROUTER EXIT - ROUTINE (ICHRTX00) */ - void *safvsafr; /* 0C ADDRESS OF THE SAF ROUTER - ROUTINE (ICHSFR00) */ - void *safvracr; /* 10 ADDRESS OF THE RACF FRONT END - ROUTINE (ICHRFR00), SET BY - RACF INITIALIZATION (ICHSEC00) - IF RACF IS INSTALLED */ - void *safvract; /* 14 ADDRESS OF THE RACF FRONT END - TABLE (ICHRFR01), SET BY - RACF INITIALIZATION (ICHSEC00) - IF RACF IS INSTALLED */ - void *safvexus; /* 18 RESERVED FOR INSTALLATION EXIT USE */ - void *unused2; /* 1C RESERVED */ -}; /* 20 (32 bytes) */ - -#endif diff --git a/src/crent370/include/setjmp.h b/src/crent370/include/setjmp.h deleted file mode 100644 index 904a213..0000000 --- a/src/crent370/include/setjmp.h +++ /dev/null @@ -1,25 +0,0 @@ -/*********************************************************************/ -/* */ -/* This Program Written by Paul Edwards. */ -/* Released to the Public Domain */ -/* */ -/*********************************************************************/ -/*********************************************************************/ -/* */ -/* setjmp.h - setjmp header file. */ -/* */ -/*********************************************************************/ - -#ifndef __SETJMP_INCLUDED -#define __SETJMP_INCLUDED - -typedef struct { - int regs[15]; /* R0-R14 */ - int retval; /* R15 */ -} jmp_buf[1]; - -int __setj(jmp_buf env); -#define setjmp(x) (__setj(x)) -void longjmp(jmp_buf env, int val); - -#endif diff --git a/src/crent370/include/sha256.h b/src/crent370/include/sha256.h deleted file mode 100644 index f69cf5e..0000000 --- a/src/crent370/include/sha256.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef SHA256_H -#define SHA256_H -/********************************************************************* -* Filename: sha256.h -* Author: Brad Conte (brad AT bradconte.com) -* Copyright: -* Disclaimer: This code is presented "as is" without any guarantees. -* Details: Defines the API for the corresponding SHA1 implementation. -*********************************************************************/ -#include -#include - -#define SHA256_BLOCK_SIZE 32 /* SHA256 outputs a 32 byte digest */ - -typedef struct { - __64 bitlen; - unsigned int datalen; - unsigned int state[8]; - unsigned char data[64]; -} SHA256_CTX; - -void sha256_init(SHA256_CTX *ctx) asm("SHA256I"); -void sha256_update(SHA256_CTX *ctx, const unsigned char data[], size_t len) asm("SHA256U"); -void sha256_final(SHA256_CTX *ctx, unsigned char hash[]) asm("SHA256F"); - -void sha256_transform(SHA256_CTX *ctx, const unsigned char data[]) asm("SHA256T"); - -#endif // SHA256_H diff --git a/src/crent370/include/signal.h b/src/crent370/include/signal.h deleted file mode 100644 index 77df249..0000000 --- a/src/crent370/include/signal.h +++ /dev/null @@ -1,39 +0,0 @@ -/*********************************************************************/ -/* */ -/* This Program Written by Paul Edwards. */ -/* Released to the Public Domain */ -/* */ -/*********************************************************************/ -/*********************************************************************/ -/* */ -/* signal.h - signal header file. */ -/* */ -/*********************************************************************/ - -#ifndef __SIGNAL_INCLUDED -#define __SIGNAL_INCLUDED - -typedef int sig_atomic_t; - -typedef void (*__SIGHDL)(int); -extern __SIGHDL *__sighdl(void); - -void __sigdfl(int sig); -void __sigerr(int sig); -void __sigign(int sig); - -#define SIG_DFL __sigdfl -#define SIG_ERR __sigerr -#define SIG_IGN __sigign - -#define SIGABRT 1 -#define SIGFPE 2 -#define SIGILL 3 -#define SIGINT 4 -#define SIGSEGV 5 -#define SIGTERM 6 - -void (*signal(int sig, void (*func)(int)))(int); -int raise(int sig); - -#endif diff --git a/src/crent370/include/socket.h b/src/crent370/include/socket.h deleted file mode 100644 index 7a9a449..0000000 --- a/src/crent370/include/socket.h +++ /dev/null @@ -1,311 +0,0 @@ -#ifndef SOCKET_H -#define SOCKET_H - -#ifndef OR -#define OR ??!??! -#endif - -#ifndef BOR -#define BOR ??! -#endif - -#ifndef FIONBIO -#define FIONBIO 1 /* set/clear non-blocking i/o */ -#endif - -#ifndef FIONREAD -#define FIONREAD 2 /* get # bytes to read */ -#endif - -#if 0 -struct in_addr { - union { - struct { unsigned char s_b1,s_b2,s_b3,s_b4; } S_un_b; - struct { unsigned short s_w1,s_w2; } S_un_w; - unsigned long S_addr; - } S_un_a; -}; -#else -struct in_addr { - unsigned long s_addr; -}; -#endif -typedef struct in_addr in_addr_t; - -int inet_aton(const char *cp, in_addr_t *inp) asm("@@INATON"); - - -struct sockaddr { - unsigned short sa_family; /* address family, AF_xxx */ - char sa_data[14]; /* 14 bytes of protocol address */ -}; - -struct sockaddr_in { - short sin_family; - unsigned short sin_port; - struct in_addr sin_addr; - char sin_zero [8]; -}; - -struct hostent { - char *h_name; - char **h_aliases; - int h_addrtype; - int h_length; - char **h_addr_list; -}; - -typedef long fd_mask; - -#define NBBY 8 -#ifndef FD_SETSIZE -#define FD_SETSIZE 1024 -#endif -#define NFDBITS (sizeof(fd_mask) * NBBY) /* bits per mask */ -#define howmany(x, y) (((x) + ((y) - 1)) / (y)) - -typedef struct fd_set { - fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)]; -} fd_set; - -#define FD_SET(n, p) \ - ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS))) -#define FD_CLR(n, p) \ - ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS))) -#define FD_ISSET(n, p) \ - ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS))) - -#define FD_ZERO(p) \ - __asm__("XC\t0(0,%1),0(%1) *** executed ***\n\t" \ - "EX\t%0,*-6 clear memory" \ - : : "r" (sizeof(*(p))), "r" ((p))) - -typedef struct timeval -{ - long tv_sec; - long tv_usec; -} timeval; - -struct linger { - int onoff; - int linger; -}; - -struct clientid { - int domain; - char name[8]; - char subtaskname[8]; - char reserved[20]; -}; - -/* Supported address families. */ -#define AF_UNSPEC 0 -#define AF_UNIX 1 /* Unix domain sockets */ -#define AF_INET 2 /* Internet IP Protocol */ -#define AF_AX25 3 /* Amateur Radio AX.25 */ -#define AF_IPX 4 /* Novell IPX */ -#define AF_APPLETALK 5 /* Appletalk DDP */ -#define AF_NETROM 6 /* Amateur radio NetROM */ -#define AF_BRIDGE 7 /* Multiprotocol bridge */ -#define AF_AAL5 8 /* Reserved for Werner's ATM */ -#define AF_X25 9 /* Reserved for X.25 project */ -#define AF_INET6 10 /* IP version 6 */ -#define AF_MAX 12 /* For now.. */ - -#define SOCK_STREAM 1 /* virtual circuit */ -#define SOCK_DGRAM 2 /* datagram */ -#define SOCK_RAW 3 /* raw socket */ -#define SOCK_RDM 4 /* reliably-delivered message */ -#define SOCK_SEQPACKET 5 /* sequenced packet stream */ - -#define IPPROTO_IP 0 /* Dummy protocol for TCP */ -#define IPPROTO_ICMP 1 /* Internet Control Message Protocol */ -#define IPPROTO_IGMP 2 /* Internet Group Management Protocol */ -#define IPPROTO_IPIP 4 /* IPIP tunnels (older KA9Q tunnels use 94) */ -#define IPPROTO_TCP 6 /* Transmission Control Protocol */ -#define IPPROTO_EGP 8 /* Exterior Gateway Protocol */ -#define IPPROTO_PUP 12 /* PUP protocol */ -#define IPPROTO_UDP 17 /* User Datagram Protocol */ -#define IPPROTO_IDP 22 /* XNS IDP protocol */ -#define IPPROTO_TP 29 /* SO Transport Protocol Class 4 */ -#define IPPROTO_DCCP 33 /* Datagram Congestion Control Protocol */ -#define IPPROTO_IPV6 41 /* IPv6-in-IPv4 tunnelling */ -#define IPPROTO_RSVP 46 /* RSVP Protocol */ -#define IPPROTO_GRE 47 /* Cisco GRE tunnels (rfc 1701,1702) */ -#define IPPROTO_ESP 50 /* Encapsulation Security Payload protocol */ -#define IPPROTO_AH 51 /* Authentication Header protocol */ -#define IPPROTO_MTP 92 /* Multicast Transport Protocol */ -#define IPPROTO_BEETPH 94 /* IP option pseudo header for BEET */ -#define IPPROTO_ENCAP 98 /* Encapsulation Header */ -#define IPPROTO_PIM 103 /* Protocol Independent Multicast */ -#define IPPROTO_COMP 108 /* Compression Header Protocol */ -#define IPPROTO_SCTP 132 /* Stream Control Transport Protocol */ -#define IPPROTO_UDPLITE 136 /* UDP-Lite (RFC 3828) */ -#define IPPROTO_MPLS 137 /* MPLS in IP (RFC 4023) */ -#define IPPROTO_RAW 255 /* Raw IP packets */ - -#define SOMAXCONN 256 - -#define INADDR_ANY (unsigned)0x00000000 -#define INADDR_NONE (unsigned)0xFFFFFFFF - -#define ntohl(x) (x) -#define ntohs(x) (x) -#define htonl(x) (x) -#define htons(x) (x) -#define NTOHL(x) (x) -#define NTOHS(x) (x) -#define HTONL(x) (x) -#define HTONS(x) (x) - - -typedef struct __75vect __75VECT; -extern __75VECT *__75vect; /* global pointer to vector */ - -unsigned getaddrbyname(const char *name) asm("@@75GABN"); -unsigned __75gabn(const char *name); - -struct hostent * gethostbyname(const char *name) asm("@@75GHBN"); -struct hostent * __75ghbn(const char *name); - -int socket(int af, int type, int protocol) asm("@@75SOCK"); -int __75sock(int af, int type, int protocol); - -int bind(int ss, struct sockaddr_in *add, int length) asm("@@75BIND"); -int __75bind(int ss, struct sockaddr_in * name, int length); - -int connect(int ss, struct sockaddr_in *addr, int length) asm("@@75CONN"); -int __75conn(int ss, struct sockaddr_in *name, int length); - -int listen(int ss, int backlog) asm("@@75LIST"); -int __75list(int ss, int backlog); - -int accept(int ss, struct sockaddr_in *addr, int *length) asm("@@75ACCE"); -int __75acce(int ss, struct sockaddr_in *name, int *length); - -int send(int ss, const void *buf, int len, int flags) asm("@@75SEND"); -int __75send(int ss, const void *buf, int len, int flags); - -int recv(int ss, void *buf, int len, int flags) asm("@@75RECV"); -int __75recv(int ss, void *buf, int len, int flags); - -int closesocket(int ss) asm("@@75CLOS"); -int __75clos(int ss); - -int ioctlsocket(int ss, int cmd, void *argp) asm("@@75IOCT"); -int __75ioct(int ss, int cmd, void *argp); - -int getsockname(int ss, struct sockaddr *addr, int *addrlen) asm("@@75SNAM"); -int __75snam(int ss, struct sockaddr *addr, int *addrlen); - -int select(int msock, fd_set *r, fd_set *w, fd_set *e, timeval * t) asm("@@75SELE"); -int __75sele(int maxsock, fd_set *r, fd_set *w, fd_set *e, timeval * t); - -int selectex(int, fd_set *, fd_set *, fd_set *, timeval *, unsigned **) asm("@@75SELX"); -int __75selx(int, fd_set *, fd_set *, fd_set *, timeval *, unsigned **); - -int getpeername(int ss, struct sockaddr *addr, int *addrlen) asm("@@75PNAM"); -int __75pnam(int ss, struct sockaddr *addr, int *addrlen); - -struct hostent * gethostbyaddr(void *addr) asm("@@75GHBA"); -struct hostent * __75ghba(void *addr); - - -struct __75vect { - int inited; /* 00 API initialized flag (deprecated) */ - int error; /* 04 last error code */ - fd_set *inuse; /* 08 sockets in use (deprecated) */ - unsigned (*getaddrbyname)(const char *name); - /* 0C get IP address by name */ - - struct hostent * (*gethostbyname)(const char *name); - /* 10 get host by name */ - int (*socket)(int af, int type, int protocol); - /* 14 allocate a socket */ - int (*bind)(int ss, struct sockaddr_in *add, int length); - /* 18 bind socket to name */ - int (*connect)(int ss, struct sockaddr_in *addr, int length); - /* 1C connect socket to name */ - - int (*listen)(int ss, int backlog); - /* 20 listen for connection */ - int (*accept)(int ss, struct sockaddr_in *addr, int *length); - /* 24 accept socket connection */ - int (*send)(int ss, const void *buf, int len, int flags); - /* 28 send data to socket */ - int (*recv)(int ss, void *buf, int len, int flags); - /* 2C recv data from socket */ - - int (*closesocket)(int ss); - /* 30 close socket */ - int (*ioctlsocket)(int ss, int cmd, void *argp); - /* 34 ioctl for socket */ - int (*getsockname)(int ss, struct sockaddr *addr, int *addrlen); - /* 38 getsockname() */ - int (*select)(int msock, fd_set *r, fd_set *w, fd_set *e, timeval * t); - /* 3C select() */ - int (*selectex)(int, fd_set *, fd_set *, fd_set *, timeval *, unsigned **); - /* 40 selectex() */ - int (*getpeername)(int ss, struct sockaddr *addr, int *addrlen); - /* 44 getpeername() */ - struct hostent * (*gethostbyaddr)(void *addr); - /* 48 gethostbyaddr() */ -}; - -extern int __75init(void); /* initialize API */ - -#if 0 -#ifndef __75_H -/* public calls via __75vect vector */ -#define getaddrbyname(name) \ - ((__75vect->getaddrbyname)(name)) - -#define gethostbyname(name) \ - ((__75vect->gethostbyname)(name)) - -#define socket(af,type,protocol) \ - ((__75vect->socket)((af),(type),(protocol))) - -#define bind(ss,name,length) \ - ((__75vect->bind)((ss),(name),(length))) - -#define connect(ss,name,length) \ - ((__75vect->connect)((ss),(name),(length))) - -#define listen(ss,backlog) \ - ((__75vect->listen)((ss),(backlog))) - -#define accept(ss,name,length) \ - ((__75vect->accept)((ss),(name),(length))) - -#define send(ss,buf,len,flags) \ - ((__75vect->send)((ss),(buf),(len),(flags))) - -#define recv(ss,buf,len,flags) \ - ((__75vect->recv)((ss),(buf),(len),(flags))) - -#define closesocket(ss) \ - ((__75vect->closesocket)((ss))) - -#define ioctlsocket(ss,cmd,argp) \ - ((__75vect->ioctlsocket)((ss),(cmd),(argp))) - -#define getsockname(ss,addr,addrlen) \ - ((__75vect->getsockname)((ss),(addr),(addrlen))) - -#define select(maxsock,r,w,e,t) \ - ((__75vect->select)((maxsock),(r),(w),(e),(t))) - -#define selectex(maxsock,r,w,e,t,ecblist) \ - ((__75vect->selectex)((maxsock),(r),(w),(e),(t),(ecblist))) - -#define getpeername(ss,addr,addrlen) \ - ((__75vect->getpeername)((ss),(addr),(addrlen))) - -#define gethostbyaddr(addr) \ - ((__75vect->gethostbyaddr)(addr)) - -#endif /* ifndef __75_H */ -#endif /* ifdef 0 */ - -#endif /* ifndef SOCKET_H */ diff --git a/src/crent370/include/stdarg.h b/src/crent370/include/stdarg.h deleted file mode 100644 index 19a2144..0000000 --- a/src/crent370/include/stdarg.h +++ /dev/null @@ -1,45 +0,0 @@ -/*********************************************************************/ -/* */ -/* This Program Written by Paul Edwards. */ -/* Released to the Public Domain */ -/* */ -/*********************************************************************/ -/*********************************************************************/ -/* */ -/* stdarg.h - stdarg header file. */ -/* */ -/*********************************************************************/ - -#ifndef __STDARG_INCLUDED -#define __STDARG_INCLUDED - -/* don't use builtins on MVS until they have been implemented */ -#if defined(__GNUC__) && !defined(__MVS__) && !defined(__CMS__) \ - && !defined(__VSE__) - -#ifndef __GNUC_VA_LIST -#define __GNUC_VA_LIST -typedef __builtin_va_list __gnuc_va_list; -#endif - -typedef __gnuc_va_list va_list; - -#define va_start(v,l) __builtin_va_start(v,l) -#define va_end(v) __builtin_va_end(v) -#define va_arg(v,l) __builtin_va_arg(v,l) -#if !defined(__STRICT_ANSI__) || __STDC_VERSION__ + 0 >= 199900L -#define va_copy(d,s) __builtin_va_copy(d,s) -#endif -#define __va_copy(d,s) __builtin_va_copy(d,s) - -#else /* __GNUC__ */ - -typedef char * va_list; - -#define va_start(ap, parmN) ap = (char *)&parmN + 4 -#define va_arg(ap, type) *(type *)(ap += sizeof(type), ap - sizeof(type)) -#define va_end(ap) ap = 0 - -#endif - -#endif diff --git a/src/crent370/include/stddef.h b/src/crent370/include/stddef.h deleted file mode 100644 index 45ecb00..0000000 --- a/src/crent370/include/stddef.h +++ /dev/null @@ -1,45 +0,0 @@ -/*********************************************************************/ -/* */ -/* This Program Written by Paul Edwards. */ -/* Released to the Public Domain */ -/* */ -/*********************************************************************/ -/*********************************************************************/ -/* */ -/* stddef.h - assert header file. */ -/* */ -/*********************************************************************/ - -#ifndef __STDDEF_INCLUDED -#define __STDDEF_INCLUDED - -typedef int ptrdiff_t; -#ifndef __SIZE_T_DEFINED -#define __SIZE_T_DEFINED -#if (defined(__OS2__) || defined(__32BIT__) || defined(__MVS__) \ - || defined(__CMS__) || defined(__VSE__)) -typedef unsigned long size_t; -#elif (defined(__MSDOS__) || defined(__DOS__) || defined(__POWERC) \ - || defined(__WIN32__) || defined(__gnu_linux__)) -typedef unsigned int size_t; -#endif -#endif -#ifndef __WCHAR_T_DEFINED -#define __WCHAR_T_DEFINED -#ifndef _WCHAR_T_DEFINED -#define _WCHAR_T_DEFINED -#endif -typedef char wchar_t; -#endif - -#define NULL ((void *)0) -#define offsetof(x, y) (size_t)&(((x *)0)->y) - -#ifdef __PDPCLIB_DLL -#define __PDPCLIB_API__ __declspec(dllexport) -#define __MAIN_FP__ -#else -#define __PDPCLIB_API__ -#endif - -#endif diff --git a/src/crent370/include/stdint.h b/src/crent370/include/stdint.h deleted file mode 100644 index c1359eb..0000000 --- a/src/crent370/include/stdint.h +++ /dev/null @@ -1,655 +0,0 @@ -/* A portable stdint.h - * - * Copyright (c) 2005 Paul Hsieh - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * Redistributions in binary form must not misrepresent the orignal - * source in the documentation and/or other materials provided - * with the distribution. - * - * The names of the authors not its contributors may be used to - * endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * - **************************************************************************** - * - * Version 0.1.0 - * - * The ANSI C standard committee, for the C99 standard, specified the - * inclusion of a new standard include file called stdint.h. This is - * a very useful and long desired include file which contains several - * very precise definitions for integer scalar types that is - * critically important for making portable several classes of - * applications including cryptography, hashing, variable length - * integer libraries and so on. But for most developers its likely - * useful just for programming sanity. - * - * The problem is that most compiler vendors have decided not to - * implement the C99 standard, and the next C++ language standard - * (which has a lot more mindshare these days) will be a long time in - * coming and its unknown whether or not it will include stdint.h or - * how much adoption it will have. Either way, it will be a long time - * before all compilers come with a stdint.h and it also does nothing - * for the extremely large number of compilers available today which - * do not include this file, or anything comparable to it. - * - * So that's what this file is all about. Its an attempt to build a - * single universal include file that works on as many platforms as - * possible to deliver what stdint.h is supposed to. A few things - * that should be noted about this file: - * - * 1) It is not guaranteed to be portable and/or present an identical - * interface on all platforms. The extreme variability of the - * ANSI C standard makes this an impossibility right from the - * very get go. Its really only meant to be useful for the vast - * majority of platforms that possess the capability of - * implementing usefully and precisely defined, standard sized - * integer scalars. Systems which are not intrinsically 2s - * complement may produce invalid constants. - * - * 2) There is an unavoidable use of non-reserved symbols. - * - * 3) Other standard include files are invoked. - * - * 4) This file may come in conflict with future platforms that do - * include stdint.h. The hope is that one or the other can be - * used with no real difference. - * - * 5) In the current verison, if your platform can't represent - * int32_t, int16_t and int8_t, it just dumps out with a compiler - * error. - * - * 6) 64 bit integers may or may not be defined. Test for their - * presence with the test: #ifdef INT64_MAX or #ifdef UINT64_MAX. - * Note that this is different from the C99 specification which - * requires the existence of 64 bit support in the compiler. If - * this is not defined for your platform, yet it is capable of - * dealing with 64 bits then it is because this file has not yet - * been extended to cover all of your system's capabilities. - * - * 7) (u)intptr_t may or may not be defined. Test for its presence - * with the test: #ifdef PTRDIFF_MAX. If this is not defined - * for your platform, then it is because this file has not yet - * been extended to cover all of your system's capabilities, not - * because its optional. - * - * 8) The following might not been defined even if your platform is - * capable of defining it: - * - * WCHAR_MIN - * WCHAR_MAX - * (u)int64_t - * PTRDIFF_MIN - * PTRDIFF_MAX - * (u)intptr_t - * - * 9) The following have not been defined: - * - * WINT_MIN - * WINT_MAX - * - * 10) The criteria for defining (u)int_least(*)_t isn't clear, - * except for systems which don't have a type that precisely - * defined 8, 16, or 32 bit types (which this include file does - * not support anyways). Default definitions have been given. - * - * 11) The criteria for defining (u)int_fast(*)_t isn't something I - * would trust to any particular compiler vendor or the ANSI C - * comittee. It is well known that "compatible systems" are - * commonly created that have very different performance - * characteristics from the systems they are compatible with, - * especially those whose vendors make both the compiler and the - * system. Default definitions have been given, but its strongly - * recommended that users never use these definitions for any - * reason (they do *NOT* deliver any serious guarantee of - * improved performance -- not in this file, nor any vendor's - * stdint.h). - * - * 12) The following macros: - * - * PRINTF_INTMAX_MODIFIER - * PRINTF_INT64_MODIFIER - * PRINTF_INT32_MODIFIER - * PRINTF_INT16_MODIFIER - * PRINTF_LEAST64_MODIFIER - * PRINTF_LEAST32_MODIFIER - * PRINTF_LEAST16_MODIFIER - * PRINTF_INTPTR_MODIFIER - * - * are strings which have been defined as the modifiers required - * for the "d", "u" and "x" printf formats to correctly output - * (u)intmax_t, (u)int64_t, (u)int32_t, (u)int16_t, (u)least64_t, - * (u)least32_t, (u)least16_t and (u)intptr_t types respectively. - * PRINTF_INTPTR_MODIFIER is not defined for some systems which - * provide their own stdint.h. PRINTF_INT64_MODIFIER is not - * defined if INT64_MAX is not defined. These are an extension - * beyond what C99 specifies must be in stdint.h. - * - * In addition, the following macros are defined: - * - * PRINTF_INTMAX_HEX_WIDTH - * PRINTF_INT64_HEX_WIDTH - * PRINTF_INT32_HEX_WIDTH - * PRINTF_INT16_HEX_WIDTH - * PRINTF_INT8_HEX_WIDTH - * PRINTF_INTMAX_DEC_WIDTH - * PRINTF_INT64_DEC_WIDTH - * PRINTF_INT32_DEC_WIDTH - * PRINTF_INT16_DEC_WIDTH - * PRINTF_INT8_DEC_WIDTH - * - * Which specifies the maximum number of characters required to - * print the number of that type in either hexadecimal or decimal. - * These are an extension beyond what C99 specifies must be in - * stdint.h. - * - * Compilers tested (all with 0 warnings at their highest respective - * settings): Borland Turbo C 2.0, WATCOM C/C++ 11.0 (16 bits and 32 - * bits), Microsoft Visual C++ 6.0 (32 bit), Microsoft Visual Studio - * .net (VC7), Intel C++ 4.0, GNU gcc v3.3.3 - * - * This file should be considered a work in progress. Suggestions for - * improvements, especially those which increase coverage are strongly - * encouraged. - * - */ - -#include -#include -#include - -#ifndef SIZE_MAX -# define SIZE_MAX (~(size_t)0) -#endif - -/* - * For gcc with _STDINT_H, fill in the PRINTF_INT*_MODIFIER macros, and - * do nothing else. - */ - -#if defined(__GNUC__) && defined(_STDINT_H) && !defined (_STDINT_H_INCLUDED) -#define _STDINT_H_INCLUDED -# ifndef PRINTF_INT64_MODIFIER -# define PRINTF_INT64_MODIFIER "ll" -# endif -# ifndef PRINTF_INT32_MODIFIER -# define PRINTF_INT32_MODIFIER "l" -# endif -# ifndef PRINTF_INT16_MODIFIER -# define PRINTF_INT16_MODIFIER "h" -# endif -# ifndef PRINTF_INTMAX_MODIFIER -# define PRINTF_INTMAX_MODIFIER PRINTF_INT64_MODIFIER -# endif -# ifndef PRINTF_INT64_HEX_WIDTH -# define PRINTF_INT64_HEX_WIDTH "16" -# endif -# ifndef PRINTF_INT32_HEX_WIDTH -# define PRINTF_INT32_HEX_WIDTH "8" -# endif -# ifndef PRINTF_INT16_HEX_WIDTH -# define PRINTF_INT16_HEX_WIDTH "4" -# endif -# ifndef PRINTF_INT8_HEX_WIDTH -# define PRINTF_INT8_HEX_WIDTH "2" -# endif -# ifndef PRINTF_INT64_DEC_WIDTH -# define PRINTF_INT64_DEC_WIDTH "20" -# endif -# ifndef PRINTF_INT32_DEC_WIDTH -# define PRINTF_INT32_DEC_WIDTH "10" -# endif -# ifndef PRINTF_INT16_DEC_WIDTH -# define PRINTF_INT16_DEC_WIDTH "5" -# endif -# ifndef PRINTF_INT8_DEC_WIDTH -# define PRINTF_INT8_DEC_WIDTH "3" -# endif -# ifndef PRINTF_INTMAX_HEX_WIDTH -# define PRINTF_INTMAX_HEX_WIDTH PRINTF_INT64_HEX_WIDTH -# endif -# ifndef PRINTF_INTMAX_DEC_WIDTH -# define PRINTF_INTMAX_DEC_WIDTH PRINTF_INT64_DEC_WIDTH -# endif -#endif - -#ifndef _STDINT_H_INCLUDED -#define _STDINT_H_INCLUDED - -/* - * Deduce the type assignments from limits.h under the assumption that - * integer sizes in bits are powers of 2, and follow the ANSI - * definitions. - */ - -#ifndef UINT8_MAX -# define UINT8_MAX 0xff -#endif -#ifndef uint8_t -# if (UCHAR_MAX == UINT8_MAX) || defined (S_SPLINT_S) - typedef unsigned char uint8_t; -# define UINT8_C(v) ((uint8_t) v) -# else -# error "Platform not supported" -# endif -#endif - -#ifndef INT8_MAX -# define INT8_MAX 0x7f -#endif -#ifndef INT8_MIN -# define INT8_MIN INT8_C(0x80) -#endif -#ifndef int8_t -# if (SCHAR_MAX == INT8_MAX) || defined (S_SPLINT_S) - typedef signed char int8_t; -# define INT8_C(v) ((int8_t) v) -# else -# error "Platform not supported" -# endif -#endif - -#ifndef UINT16_MAX -# define UINT16_MAX 0xffff -#endif -#ifndef uint16_t -#if (UINT_MAX == UINT16_MAX) || defined (S_SPLINT_S) - typedef unsigned int uint16_t; -# ifndef PRINTF_INT16_MODIFIER -# define PRINTF_INT16_MODIFIER "" -# endif -# define UINT16_C(v) ((uint16_t) (v)) -#elif (USHRT_MAX == UINT16_MAX) - typedef unsigned short uint16_t; -# define UINT16_C(v) ((uint16_t) (v)) -# ifndef PRINTF_INT16_MODIFIER -# define PRINTF_INT16_MODIFIER "h" -# endif -#else -#error "Platform not supported" -#endif -#endif - -#ifndef INT16_MAX -# define INT16_MAX 0x7fff -#endif -#ifndef INT16_MIN -# define INT16_MIN INT16_C(0x8000) -#endif -#ifndef int16_t -#if (INT_MAX == INT16_MAX) || defined (S_SPLINT_S) - typedef signed int int16_t; -# define INT16_C(v) ((int16_t) (v)) -# ifndef PRINTF_INT16_MODIFIER -# define PRINTF_INT16_MODIFIER "" -# endif -#elif (SHRT_MAX == INT16_MAX) - typedef signed short int16_t; -# define INT16_C(v) ((int16_t) (v)) -# ifndef PRINTF_INT16_MODIFIER -# define PRINTF_INT16_MODIFIER "h" -# endif -#else -#error "Platform not supported" -#endif -#endif - -#ifndef UINT32_MAX -# define UINT32_MAX (0xffffffffUL) -#endif -#ifndef uint32_t -#if (ULONG_MAX == UINT32_MAX) || defined (S_SPLINT_S) - typedef unsigned long uint32_t; -# define UINT32_C(v) v ## UL -# ifndef PRINTF_INT32_MODIFIER -# define PRINTF_INT32_MODIFIER "l" -# endif -#elif (UINT_MAX == UINT32_MAX) - typedef unsigned int uint32_t; -# ifndef PRINTF_INT32_MODIFIER -# define PRINTF_INT32_MODIFIER "" -# endif -# define UINT32_C(v) v ## U -#elif (USHRT_MAX == UINT32_MAX) - typedef unsigned short uint32_t; -# define UINT32_C(v) ((unsigned short) (v)) -# ifndef PRINTF_INT32_MODIFIER -# define PRINTF_INT32_MODIFIER "" -# endif -#else -#error "Platform not supported" -#endif -#endif - -#ifndef INT32_MAX -# define INT32_MAX (0x7fffffffL) -#endif -#ifndef INT32_MIN -# define INT32_MIN INT32_C(0x80000000) -#endif -#ifndef int32_t -#if (LONG_MAX == INT32_MAX) || defined (S_SPLINT_S) - typedef signed long int32_t; -# define INT32_C(v) v ## L -# ifndef PRINTF_INT32_MODIFIER -# define PRINTF_INT32_MODIFIER "l" -# endif -#elif (INT_MAX == INT32_MAX) - typedef signed int int32_t; -# define INT32_C(v) v -# ifndef PRINTF_INT32_MODIFIER -# define PRINTF_INT32_MODIFIER "" -# endif -#elif (SHRT_MAX == INT32_MAX) - typedef signed short int32_t; -# define INT32_C(v) ((short) (v)) -# ifndef PRINTF_INT32_MODIFIER -# define PRINTF_INT32_MODIFIER "" -# endif -#else -#error "Platform not supported" -#endif -#endif - -/* - * The macro stdint_int64_defined is temporarily used to record - * whether or not 64 integer support is available. It must be - * defined for any 64 integer extensions for new platforms that are - * added. - */ - -#undef stdint_int64_defined -#if (defined(__STDC__) && defined(__STDC_VERSION__)) || defined (S_SPLINT_S) -# if (__STDC__ && __STDC_VERSION >= 199901L) || defined (S_SPLINT_S) -# define stdint_int64_defined - typedef long long int64_t; - typedef unsigned long long uint64_t; -# define UINT64_C(v) v ## ULL -# define INT64_C(v) v ## LL -# ifndef PRINTF_INT64_MODIFIER -# define PRINTF_INT64_MODIFIER "ll" -# endif -# endif -#endif - -#if !defined (stdint_int64_defined) -# if defined(__GNUC__) || defined(__MWERKS__) || defined (__SUNPRO_C) || defined (__SUNPRO_CC) || defined (__APPLE_CC__) || defined (_LONG_LONG) || defined (_CRAYC) || defined (S_SPLINT_S) -# define stdint_int64_defined - typedef long long int64_t; - typedef unsigned long long uint64_t; -# define UINT64_C(v) v ## ULL -# define INT64_C(v) v ## LL -# ifndef PRINTF_INT64_MODIFIER -# define PRINTF_INT64_MODIFIER "ll" -# endif -# elif (defined(__WATCOMC__) && defined(__WATCOM_INT64__)) || (defined(_MSC_VER) && _INTEGRAL_MAX_BITS >= 64) || defined (__BORLANDC__) || defined (__alpha) || defined (__DECC) -# define stdint_int64_defined - typedef __int64 int64_t; - typedef unsigned __int64 uint64_t; -# define UINT64_C(v) v ## UI64 -# define INT64_C(v) v ## I64 -# ifndef PRINTF_INT64_MODIFIER -# define PRINTF_INT64_MODIFIER "I64" -# endif -# endif -#endif - -#if !defined (LONG_LONG_MAX) && defined (INT64_C) -# define LONG_LONG_MAX INT64_C (9223372036854775807) -#endif -#ifndef ULONG_LONG_MAX -# define ULONG_LONG_MAX UINT64_C (18446744073709551615) -#endif - -#if !defined (INT64_MAX) && defined (INT64_C) -# define INT64_MAX INT64_C (9223372036854775807) -#endif -#if !defined (INT64_MIN) && defined (INT64_C) -# define INT64_MIN INT64_C (-9223372036854775808) -#endif -#if !defined (UINT64_MAX) && defined (INT64_C) -# define UINT64_MAX UINT64_C (18446744073709551615) -#endif - -/* - * Width of hexadecimal for number field. - */ - -#ifndef PRINTF_INT64_HEX_WIDTH -# define PRINTF_INT64_HEX_WIDTH "16" -#endif -#ifndef PRINTF_INT32_HEX_WIDTH -# define PRINTF_INT32_HEX_WIDTH "8" -#endif -#ifndef PRINTF_INT16_HEX_WIDTH -# define PRINTF_INT16_HEX_WIDTH "4" -#endif -#ifndef PRINTF_INT8_HEX_WIDTH -# define PRINTF_INT8_HEX_WIDTH "2" -#endif - -#ifndef PRINTF_INT64_DEC_WIDTH -# define PRINTF_INT64_DEC_WIDTH "20" -#endif -#ifndef PRINTF_INT32_DEC_WIDTH -# define PRINTF_INT32_DEC_WIDTH "10" -#endif -#ifndef PRINTF_INT16_DEC_WIDTH -# define PRINTF_INT16_DEC_WIDTH "5" -#endif -#ifndef PRINTF_INT8_DEC_WIDTH -# define PRINTF_INT8_DEC_WIDTH "3" -#endif - -/* - * Ok, lets not worry about 128 bit integers for now. Moore's law says - * we don't need to worry about that until about 2040 at which point - * I'll have bigger things to worry about; like what W did to my social - * security. - */ - -#ifdef stdint_int64_defined - typedef int64_t intmax_t; - typedef uint64_t uintmax_t; -# define INTMAX_MAX INT64_MAX -# define INTMAX_MIN INT64_MIN -# define UINTMAX_MAX UINT64_MAX -# define UINTMAX_C(v) UINT64_C(v) -# define INTMAX_C(v) INT64_C(v) -# ifndef PRINTF_INTMAX_MODIFIER -# define PRINTF_INTMAX_MODIFIER PRINTF_INT64_MODIFIER -# endif -# ifndef PRINTF_INTMAX_HEX_WIDTH -# define PRINTF_INTMAX_HEX_WIDTH PRINTF_INT64_HEX_WIDTH -# endif -# ifndef PRINTF_INTMAX_DEC_WIDTH -# define PRINTF_INTMAX_DEC_WIDTH PRINTF_INT64_DEC_WIDTH -# endif -#else - typedef int32_t intmax_t; - typedef uint32_t uintmax_t; -# define INTMAX_MAX INT32_MAX -# define UINTMAX_MAX UINT32_MAX -# define UINTMAX_C(v) UINT32_C(v) -# define INTMAX_C(v) INT32_C(v) -# ifndef PRINTF_INTMAX_MODIFIER -# define PRINTF_INTMAX_MODIFIER PRINTF_INT32_MODIFIER -# endif -# ifndef PRINTF_INTMAX_HEX_WIDTH -# define PRINTF_INTMAX_HEX_WIDTH PRINTF_INT32_HEX_WIDTH -# endif -# ifndef PRINTF_INTMAX_DEC_WIDTH -# define PRINTF_INTMAX_DEC_WIDTH PRINTF_INT32_DEC_WIDTH -# endif -#endif - -/* - * Because this file currently only supports platforms which have - * precise powers of 2 as bit sizes for the default integers, the - * least definitions are all trivial. Its possible that a future - * version of this file could have different definitions. - */ - -#ifndef stdint_least_defined - typedef int8_t int_least8_t; - typedef uint8_t uint_least8_t; - typedef int16_t int_least16_t; - typedef uint16_t uint_least16_t; - typedef int32_t int_least32_t; - typedef uint32_t uint_least32_t; -# define PRINTF_LEAST32_MODIFIER PRINTF_INT32_MODIFIER -# define PRINTF_LEAST16_MODIFIER PRINTF_INT16_MODIFIER -# define UINT_LEAST8_MAX UINT8_MAX -# define INT_LEAST8_MAX INT8_MAX -# define UINT_LEAST16_MAX UINT16_MAX -# define INT_LEAST16_MAX INT16_MAX -# define UINT_LEAST32_MAX UINT32_MAX -# define INT_LEAST32_MAX INT32_MAX -# define INT_LEAST8_MIN INT8_MIN -# define INT_LEAST16_MIN INT16_MIN -# define INT_LEAST32_MIN INT32_MIN -# ifdef stdint_int64_defined - typedef int64_t int_least64_t; - typedef uint64_t uint_least64_t; -# define PRINTF_LEAST64_MODIFIER PRINTF_INT64_MODIFIER -# define UINT_LEAST64_MAX UINT64_MAX -# define INT_LEAST64_MAX INT64_MAX -# define INT_LEAST64_MIN INT64_MIN -# endif -#endif -#undef stdint_least_defined - -/* - * The ANSI C committee pretending to know or specify anything about - * performance is the epitome of misguided arrogance. The mandate of - * this file is to *ONLY* ever support that absolute minimum - * definition of the fast integer types, for compatibility purposes. - * No extensions, and no attempt to suggest what may or may not be a - * faster integer type will ever be made in this file. Developers are - * warned to stay away from these types when using this or any other - * stdint.h. - */ - -typedef int_least8_t int_fast8_t; -typedef uint_least8_t uint_fast8_t; -typedef int_least16_t int_fast16_t; -typedef uint_least16_t uint_fast16_t; -typedef int_least32_t int_fast32_t; -typedef uint_least32_t uint_fast32_t; -#define UINT_FAST8_MAX UINT_LEAST8_MAX -#define INT_FAST8_MAX INT_LEAST8_MAX -#define UINT_FAST16_MAX UINT_LEAST16_MAX -#define INT_FAST16_MAX INT_LEAST16_MAX -#define UINT_FAST32_MAX UINT_LEAST32_MAX -#define INT_FAST32_MAX INT_LEAST32_MAX -#define INT_FAST8_MIN IN_LEASTT8_MIN -#define INT_FAST16_MIN INT_LEAST16_MIN -#define INT_FAST32_MIN INT_LEAST32_MIN -#ifdef stdint_int64_defined - typedef int_least64_t int_fast64_t; - typedef uint_least64_t uint_fast64_t; -# define UINT_FAST64_MAX UINT_LEAST64_MAX -# define INT_FAST64_MAX INT_LEAST64_MAX -# define INT_FAST64_MIN INT_LEAST64_MIN -#endif - -#undef stdint_int64_defined - -/* - * Whatever piecemeal, per compiler thing we can do about the wchar_t - * type limits. - */ - -#if defined(__WATCOMC__) || defined(_MSC_VER) /* || defined (__GNUC__) */ -# include -# ifndef WCHAR_MIN -# define WCHAR_MIN 0 -# endif -# ifndef WCHAR_MAX -# define WCHAR_MAX ((wchar_t)-1) -# endif -#endif - -/* - * Whatever piecemeal, per compiler/platform thing we can do about the - * (u)intptr_t types and limits. - */ - -#if defined (_MSC_VER) && defined (_UINTPTR_T_DEFINED) -# define STDINT_H_UINTPTR_T_DEFINED -#endif - -#ifndef STDINT_H_UINTPTR_T_DEFINED -# if defined (__alpha__) || defined (__ia64__) || defined (__x86_64__) || defined (_WIN64) -# define stdint_intptr_bits 64 -# elif defined (__WATCOMC__) || defined (__TURBOC__) -# if defined(__TINY__) || defined(__SMALL__) || defined(__MEDIUM__) -# define stdint_intptr_bits 16 -# else -# define stdint_intptr_bits 32 -# endif -# elif defined (__i386__) || defined (_WIN32) || defined (WIN32) -# define stdint_intptr_bits 32 -# elif defined (__INTEL_COMPILER) -/* TODO -- what will Intel do about x86-64? */ -# endif - -# ifdef stdint_intptr_bits -# define stdint_intptr_glue3_i(a,b,c) a##b##c -# define stdint_intptr_glue3(a,b,c) stdint_intptr_glue3_i(a,b,c) -# ifndef PRINTF_INTPTR_MODIFIER -# define PRINTF_INTPTR_MODIFIER stdint_intptr_glue3(PRINTF_INT,stdint_intptr_bits,_MODIFIER) -# endif -# ifndef PTRDIFF_MAX -# define PTRDIFF_MAX stdint_intptr_glue3(INT,stdint_intptr_bits,_MAX) -# endif -# ifndef PTRDIFF_MIN -# define PTRDIFF_MIN stdint_intptr_glue3(INT,stdint_intptr_bits,_MIN) -# endif -# ifndef UINTPTR_MAX -# define UINTPTR_MAX stdint_intptr_glue3(UINT,stdint_intptr_bits,_MAX) -# endif -# ifndef INTPTR_MAX -# define INTPTR_MAX stdint_intptr_glue3(INT,stdint_intptr_bits,_MAX) -# endif -# ifndef INTPTR_MIN -# define INTPTR_MIN stdint_intptr_glue3(INT,stdint_intptr_bits,_MIN) -# endif - typedef stdint_intptr_glue3(uint,stdint_intptr_bits,_t) uintptr_t; - typedef stdint_intptr_glue3( int,stdint_intptr_bits,_t) intptr_t; -# else -/* TODO -- This following is likely wrong for some platforms, and does - nothing for the definition of uintptr_t. */ - typedef ptrdiff_t intptr_t; -# endif -# define STDINT_H_UINTPTR_T_DEFINED -#endif - -/* - * Assumes sig_atomic_t is signed and we have a 2s complement machine. - */ - -#ifndef SIG_ATOMIC_MAX -# define SIG_ATOMIC_MAX ((((sig_atomic_t) 1) << (sizeof (sig_atomic_t)*CHAR_BIT-1)) - 1) -#endif - -#endif diff --git a/src/crent370/include/stdio.h b/src/crent370/include/stdio.h deleted file mode 100644 index 44f8894..0000000 --- a/src/crent370/include/stdio.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef STDIO_H -#define STDIO_H - -#include "clibio.h" - -#if 0 -#undef stdin -#define stdin (*(stdio->___gtin())) -#undef stdout -#define stdout (*(stdio->___gtout())) -#undef stderr -#define stderr (*(stdio->___gterr())) -#endif // 0 - -#endif diff --git a/src/crent370/include/stdlib.h b/src/crent370/include/stdlib.h deleted file mode 100644 index 877683f..0000000 --- a/src/crent370/include/stdlib.h +++ /dev/null @@ -1,99 +0,0 @@ -/*********************************************************************/ -/* */ -/* This Program Written by Paul Edwards. */ -/* Released to the Public Domain */ -/* */ -/*********************************************************************/ -/*********************************************************************/ -/* */ -/* stdlib.h - stdlib header file */ -/* */ -/*********************************************************************/ - -#ifndef __STDLIB_INCLUDED -#define __STDLIB_INCLUDED - -#ifndef __SIZE_T_DEFINED -#define __SIZE_T_DEFINED -#if (defined(__OS2__) || defined(__32BIT__) || defined(__MVS__) \ - || defined(__CMS__) || defined(__VSE__)) -typedef unsigned long size_t; -#elif (defined(__MSDOS__) || defined(__DOS__) || defined(__POWERC) \ - || defined(__WIN32__) || defined(__gnu_linux__)) -typedef unsigned int size_t; -#endif -#endif -#ifndef __WCHAR_T_DEFINED -#define __WCHAR_T_DEFINED -#ifndef _WCHAR_T_DEFINED -#define _WCHAR_T_DEFINED -#endif -typedef char wchar_t; -#endif -typedef struct { int quot; int rem; } div_t; -typedef struct { long int quot; long int rem; } ldiv_t; - -#define NULL ((void *)0) -#define EXIT_SUCCESS 0 -#if defined(__MVS__) || defined(__CMS__) || defined(__VSE__) -#define EXIT_FAILURE 12 -#else -#define EXIT_FAILURE 1 -#endif -#define RAND_MAX 32767 -#define MB_CUR_MAX 1 -#define __NATEXIT 32 - -extern void (*__userExit[__NATEXIT])(void); - -void *malloc(size_t size); -void *calloc(size_t nmemb, size_t size); -void *realloc(void *ptr, size_t size); -void free(void *ptr); -#if defined(__MVS__) || defined(__CMS__) || defined(__VSE__) -void abort(void) __attribute__((noreturn)); -void exit(int status) __attribute__((noreturn)); -#else -void abort(void); -void exit(int status); -#endif -void qsort(void *, size_t, size_t, - int (*)(const void *, const void *)); -void srand(unsigned int seed); -int rand(void); -double atof(const char *nptr); -double strtod(const char *nptr, char **endptr); -int atoi(const char *nptr); -long int atol(const char *nptr); -long int strtol(const char *nptr, char **endptr, int base); -unsigned long int strtoul(const char *nptr, char **endptr, int base); -int mblen(const char *s, size_t n); -int mbtowc(wchar_t *pwc, const char *s, size_t n); -int wctomb(char *s, wchar_t wchar); -size_t mbstowcs(wchar_t *pwcs, const char *s, size_t n); -size_t wcstombs(char *s, const wchar_t *pwcs, size_t n); -int abs(int j); -div_t div(int numer, int denom); -long int labs(long int j); -ldiv_t ldiv(long int numer, long int denom); -int atexit(void (*func)(void)); -char *getenv(const char *name); -int system(const char *string); -void *bsearch(const void *key, const void *base, - size_t nmemb, size_t size, - int (*compar)(const void *, const void *)); - -void bcopy (const void *src, void *dest, size_t len); - -#ifdef __WATCOMC__ -#pragma intrinsic (abs,labs,div,ldiv) -#endif - -#ifdef __IBMC__ -int _Builtin __abs(int j); -#define abs(j) (__abs((j))) -long int _Builtin __labs(long int j); -#define labs(j) (__labs((j))) -#endif - -#endif diff --git a/src/crent370/include/string.h b/src/crent370/include/string.h deleted file mode 100644 index b090453..0000000 --- a/src/crent370/include/string.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef STRING_H -#define STRING_H - -#include "clibstr.h" - -#endif diff --git a/src/crent370/include/svc99.h b/src/crent370/include/svc99.h deleted file mode 100644 index d069a8c..0000000 --- a/src/crent370/include/svc99.h +++ /dev/null @@ -1,206 +0,0 @@ -#ifndef SVC99_H -#define SVC99_H - -#include "rb99.h" -#include "txt99.h" - -extern TXT99 *__nwtx99(int dal, int count, int size, const char *text); -#define NewTXT99(dal,count,size,text) __nwtx99((dal),(count),(size),(text)) - -extern TXT99 *__nwtx9a(int dal, int count, char **array); -#define NewTXT99a(dal,count,array) __nwtx9a((dal),(count),(array)) - -extern TXT99 *__nwtx9s(int dal, int count, ...); -#define NewTXT99s(dal,count, ...) __nwtx9s((dal),(count),## __VA_ARGS__) - -extern void __frtx99(TXT99 **txt99); -#define FreeTXT99(txt99) __frtx99(txt99) - -extern void __frtx9a(TXT99 ***txt99array); -#define FreeTXT99Array(txt99array) __frtx9a(txt99array) - - -/* __txdsn() - add text unit for DATASET name to array of text units */ -extern int __txdsn(TXT99 ***txt99, const char *dataset); - -/* __txdmy() - add text unit for DUMMY to array of text units */ -extern int __txdmy(TXT99 ***txt99, const char *unused); - -/* __txddn() - add text unit for DDNAME to array of text units */ -extern int __txddn(TXT99 ***txt99, const char *ddname); - -/* __txrddn() - add text unit for RETURN DDNAME to array of text units */ -extern int __txrddn(TXT99 ***txt99, const char *unused); - -/* __txdest() - add text unit for DEST to array of text units */ -extern int __txdest(TXT99 ***txt99, const char *dest); - -/* __txnew() - add text unit for DISP=NEW to array of text units */ -extern int __txnew(TXT99 ***txt99, const char *unused); - -/* __txold() - add text unit for DISP=OLD to array of text units */ -extern int __txold(TXT99 ***txt99, const char *unused); - -/* __txmod() - add text unit for DISP=MOD to array of text units */ -extern int __txmod(TXT99 ***txt99, const char *unused); - -/* __txshr() - add text unit for DISP=SHR to array of text units */ -extern int __txshr(TXT99 ***txt99, const char *unused); - -/* __txsyso() - add text unit for SYSOUT to array of text units */ -extern int __txsyso(TXT99 ***txt99, const char *out_class); - -/* __txvols() - add text unit(s) for "VOL1[,VOL2,...] VOLSER(s) -** to array of text units */ -extern int __txvols(TXT99 ***txt99, const char *vols); - -/* __txspac() - add text units for "PRI[,SEC]" SPACE to array of text units */ -extern int __txspac(TXT99 ***txt99, const char *space); - -/* __txdir() - add text unit for PDS directory blocks to array of text units */ -extern int __txdir(TXT99 ***txt99, const char *pds_dir); - -/* __txblk() - add text unit for BLOCKS to array of text units */ -extern int __txblk(TXT99 ***txt99, const char *blocks); - -/* __txtrk() - add text unit for TRACKS to array of text units */ -extern int __txtrk(TXT99 ***txt99, const char *unused); - -/* __txcyl() - add text unit for CYLINDERS to array of text units */ -extern int __txcyl(TXT99 ***txt99, const char *unused); - -/* __txhold() - add text unit for HOLD to array of text units */ -extern int __txhold(TXT99 ***txt99, const char *unused); - -/* __txunit() - add text unit for UNIT to array of text units */ -extern int __txunit(TXT99 ***txt99, const char *unit); - -/* __txunct() - add text unit for UNIT count to array of text units */ -extern int __txunct(TXT99 ***txt99, const char *count); - -/* __txpara() - add text unit for PARALLEL volume mount to arr of text units */ -extern int __txpara(TXT99 ***txt99, const char *unused); - -/* __txlabe() - add text unit for LABEL to array of text units */ -extern int __txlabe(TXT99 ***txt99, const char *label); - -/* __txseq() - add text unit for dataset sequence to array of text units */ -extern int __txseq(TXT99 ***txt99, const char *sequence); - -/* __txvlct() - add text unit for max volume count to array of text units */ -extern int __txvlct(TXT99 ***txt99, const char *max_vols); - -/* __txpriv() - add text unit for PRIVATE volume to array of text units */ -extern int __txpriv(TXT99 ***txt99, const char *unused); - -/* __txrlse() - add text unit for RLSE to array of text units */ -extern int __txrlse(TXT99 ***txt99, const char *unused); - -/* __txvseq() - add text unit for volume sequence to array of text units */ -extern int __txvseq(TXT99 ***txt99, const char *sequence); - -/* __txrnd() - add text unit for ROUND to array of text units */ -extern int __txrnd(TXT99 ***txt99, const char *unused); - -/* __txkeep() - add text unit for DISP=,KEEP to array of text units */ -extern int __txkeep(TXT99 ***txt99, const char *unused); - -/* __txdel() - add text unit for DISP=,DELETE to array of text units */ -extern int __txdel(TXT99 ***txt99, const char *unused); - -/* __txcat() - add text unit for DISP=,CATALOG to array of text units */ -extern int __txcat(TXT99 ***txt99, const char *unused); - -/* __txucat() - add text unit for DISP=,UNCATALOG to array of text units */ -extern int __txucat(TXT99 ***txt99, const char *unused); - -/* __txbfal() - add text unit for "FULL|DOUBLE" buffer alignment - to array of text units */ -extern int __txbfal(TXT99 ***txt99, const char *align); - -/* __txbfte() - add text unit for buffer technique to array of text units */ -extern int __txbfte(TXT99 ***txt99, const char *technique); - -/* __txbksz() - add text unit for BLKSIZE to array of text units */ -extern int __txbksz(TXT99 ***txt99, const char *blksize); - -/* __txbufl() - add text unit for buffer length */ -extern int __txbufl(TXT99 ***txt99, const char *length); - -/* __txbufn() - add text unit for BUFNO to array of text units */ -extern int __txbufn(TXT99 ***txt99, const char *bufno); - -/* __txbufo() - add text unit for buffer offset to array of text units */ -extern int __txbufo(TXT99 ***txt99, const char *offset); - -/* __txden() - add text unit for tape density to array of text units */ -/* density="200|556|800|1600|6250" */ -extern int __txden(TXT99 ***txt99, const char *density); - -/* __txorg() - add text unit for DSORG to array of text units */ -extern int __txorg(TXT99 ***txt99, const char *dsorg); - -/* __txerop() - add text unit for error option to array of text units */ -extern int __txerop(TXT99 ***txt99, const char *option); - -/* __txkeyl() - add text unit for key length to array of text units */ -extern int __txkeyl(TXT99 ***txt99, const char *length); - -/* __txlmct() - add text unit for limit count to array of text units */ -extern int __txlmct(TXT99 ***txt99, const char *limit); - -/* __txlrec() - add text unit for LRECL to array of text units */ -/* lrecl="nnn[K]|X" */ -extern int __txlrec(TXT99 ***txt99, const char *lrecl); - -/* __txncp() - add text unit for NCP to array of text units */ -extern int __txncp(TXT99 ***txt99, const char *count); - -/* __txrecf() - add text unit for RECFM to array of text units */ -extern int __txrecf(TXT99 ***txt99, const char *recfm); - -/* __txtrtc() - add text unit for TRTCH to array of text units */ -extern int __txtrtc(TXT99 ***txt99, const char *trtch); - -/* __txinpu() - add text unit for INPUT ONLY to array of text units */ -extern int __txinpu(TXT99 ***txt99, const char *unused); - -/* __txoutp() - add text unit for OUTPUT ONLY to array of text units */ -extern int __txoutp(TXT99 ***txt99, const char *unused); - -/* __txexpd() - add text unit for YYDDD expiration date to array of text units*/ -extern int __txexpd(TXT99 ***txt99, const char *yyddd); - -/* __txretp() - add text unit for retension period to array of text units */ -extern int __txretp(TXT99 ***txt99, const char *days); - -/* __txfcb() - add text unit for FCB to array of text units */ -/* fcb="ALIGN|VERIFY|name" */ -extern int __txfcb(TXT99 ***txt99, const char *fcb); - -/* __txcopy() - add text unit for COPIES to array of text units */ -extern int __txcopy(TXT99 ***txt99, const char *copies); - -/* __txprot() - add text unit for dataset protection to array of text units */ -extern int __txprot(TXT99 ***txt99, const char *unused); - -/* __txform() - add text unit for FORM to array of text units */ -extern int __txform(TXT99 ***txt99, const char *form); - -/* __txucs() - add text unit for UCS name to array of text units */ -/* name="FOLD|VERIFY|name" */ -extern int __txucs(TXT99 ***txt99, const char *name); - -/* __txpgm() - add text unit for PGM (writer) to array of text units */ -extern int __txpgm(TXT99 ***txt99, const char *pgm); - -/* __txterm() - add text unit for terminal to array of text units */ -extern int __txterm(TXT99 ***txt99, const char *unused); - -/* __txperm() - add text unit for permanent to array of text units */ -extern int __txperm(TXT99 ***txt99, const char *unused); - -/* __txunal() - unallocate */ -extern int __txunal(TXT99 ***txt99, const char *unused); - -#endif diff --git a/src/crent370/include/time.h b/src/crent370/include/time.h deleted file mode 100644 index 733e139..0000000 --- a/src/crent370/include/time.h +++ /dev/null @@ -1,60 +0,0 @@ -/*********************************************************************/ -/* */ -/* This Program Written by Paul Edwards. */ -/* Released to the Public Domain */ -/* */ -/*********************************************************************/ -/*********************************************************************/ -/* */ -/* time.h - time header file. */ -/* */ -/*********************************************************************/ - -#ifndef __TIME_INCLUDED -#define __TIME_INCLUDED - -#define CLOCKS_PER_SEC 1000 -#define NULL ((void *)0) - -typedef unsigned int clock_t; - -#ifndef __SIZE_T_DEFINED -#define __SIZE_T_DEFINED -#if (defined(__OS2__) || defined(__32BIT__) || defined(__MVS__) \ - || defined(__CMS__) || defined(__VSE__)) -typedef unsigned long size_t; -#elif (defined(__MSDOS__) || defined(__DOS__) || defined(__POWERC) \ - || defined(__WIN32__) || defined(__gnu_linux__)) -typedef unsigned int size_t; -#endif -#endif - -typedef unsigned long time_t; - -struct tm -{ - int tm_sec; - int tm_min; - int tm_hour; - int tm_mday; - int tm_mon; - int tm_year; - int tm_wday; - int tm_yday; - int tm_isdst; -}; - -time_t time(time_t *timer); -clock_t clock(void); -double difftime(time_t time1, time_t time0); -time_t mktime(struct tm *timeptr); -char *asctime(const struct tm *timeptr); -char *ctime(const time_t *timer); -struct tm *gmtime(const time_t *timer); -struct tm *gmtime_r(const time_t *timer, struct tm *p) asm("GMTIMER"); -struct tm *localtime(const time_t *timer); -struct tm *localtime_r(const time_t *timer, struct tm *p) asm("LOCALTMR"); -size_t strftime(char *s, size_t maxsize, - const char *format, const struct tm *timeptr); - -#endif diff --git a/src/crent370/include/time64.h b/src/crent370/include/time64.h deleted file mode 100644 index bf22cef..0000000 --- a/src/crent370/include/time64.h +++ /dev/null @@ -1,105 +0,0 @@ -/* -Copyright (c) 2007-2008 Michael G Schwern -This software originally derived from Paul Sheer's pivotal_gmtime_r.c. -The MIT License: -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ -#ifndef TIME64_H -#define TIME64_H -#if defined(__LP64__) -#error Your time_t is already 64-bit. -#else -/* Legacy cruft for LP32 where time_t was 32-bit. */ -#include /* legacy time_t and function prototypes */ -#include /* standard types int32_t, uint32_t, uint64_t, ... */ -#include /* __64 union typedef and related function prototypes */ - -/* Notes about time: - * In general time values have been represented as the number of seconds - * since midnight January 1 1970 (epoch). In the earlier years a single - * 31 bit (int) or 32 bit (unsigned int) value was used. - * - * More modern "time" implementations are now using 63 bit (long long) - * or 64 bit (unsigned lonh long) values while keeping the same epoch. - * - * To that extent we have the prototypes listed below in this header - * file in support of 64 bit values using the __64 type (see clib64.h). - * - * Extensions are also provided for mtime64_t and utime64_t values. - */ - -/* clock64_t is unsigned long long 64 bit value with seconds resulution */ -typedef uint64_t clock64_t; /* unsigned long long variable */ - -/* mclock64_t is unsigned long long 64 bit value with miliseconds resulution .001 */ -typedef uint64_t mclock64_t; /* unsigned long long variable 1ms = .001 seconds*/ - -/* uclock64_t is unsigned long long 64 bit value with microseconds resulution .000001 */ -typedef uint64_t uclock64_t; /* unsigned long long variable 1us = .000001 seconds */ - -/* make time64_t a __64 struct (8 bytes or 64 bits) seconds resulution */ -typedef __64 time64_t; /* union with unsigned long long as primary u64 variable */ - -/* make utime64_t a __64 struct (8 bytes or 64 bits) micro seconds resolution */ -typedef __64 mtime64_t; /* can be converted to time64_t by dividing by 1000 */ - -/* make utime64_t a __64 struct (8 bytes or 64 bits) micro seconds resolution */ -typedef __64 utime64_t; /* can be converted to time64_t by dividing by 1000000 */ - -/* get system time value GMT as uint64_t value */ -clock64_t clock64(void) asm("TM64CLCK"); /* get system clock sec */ -mclock64_t mclock64(void) asm("TM64MCLK"); /* get system clock msec */ -uclock64_t uclock64(void) asm("TM64UCLK"); /* get system clock usec */ - -/* get system time value GMT as time64_t value */ -time64_t time64(time64_t *timer) asm("TM64TIME"); /* get system time sec */ -mtime64_t mtime64(mtime64_t *itimer) asm("TM64MTIM"); /* get system time msec */ -utime64_t utime64(utime64_t *itimer) asm("TM64UTIM"); /* get system time usec */ - -/* difference between times */ -double difftime64(time64_t time1, time64_t time0) asm("TM64DTIM"); - -/* create time value from struct tm */ -time64_t timegm64(const struct tm*) asm("TM64TGM"); -time64_t mktime64(struct tm*) asm("TM64MKT"); - -/* create struct tm from time value GMT */ -struct tm* gmtime64(const time64_t*) asm("TM64GMT"); -struct tm* gmtime64_r(const time64_t*, struct tm*) asm("TM64GMTR"); -struct tm* mgmtime64(const mtime64_t*) asm("TM64MGMT"); -struct tm* ugmtime64(const utime64_t*) asm("TM64UGMT"); - -/* create struct tm from time value with adjustment for local time zone */ -struct tm* localtime64(const time64_t*) asm("TM64LTM"); -struct tm* localtime64_r(const time64_t*, struct tm*) asm("TM64LTMR"); -struct tm* mlocaltime64(const mtime64_t*) asm("TM64MLTM"); -struct tm* ulocaltime64(const utime64_t*) asm("TM64ULTM"); - -/* return pointer to formatted string from struct tm */ -char* asctime64(const struct tm*) asm("TM64ASC"); -char* asctime64_r(const struct tm*, char*) asm("TM64ASCR"); - -/* return pointer for formatted string from time value pointer */ -char* ctime64(const time64_t*) asm("TM64CTI"); -char* ctime64_r(const time64_t*, char*) asm("TM64CTIR"); -char* mctime64(const mtime64_t*) asm("TM64MCTI"); -char* uctime64(const utime64_t*) asm("TM64UCTI"); - - -#endif -#endif /* TIME64_H */ - diff --git a/src/crent370/include/trkcalc.h b/src/crent370/include/trkcalc.h deleted file mode 100644 index 4c2da81..0000000 --- a/src/crent370/include/trkcalc.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef TRKCALC_H -#define TRKCALC_H - -typedef enum devtype DEVTYPE; -enum devtype { - DEV2311=0x01, - DEV2301=0x02, - DEV2303=0x03, - DEV2302=0x04, - DEV2321=0x05, - DEV23051=0x06, /* 2305-1 */ - DEV23052=0x07, /* 2305-2 */ - DEV2314=0x08, - DEV3330=0x09, - DEV3340=0x0A, - DEV3350=0x0B, - DEB3375=0x0C, - DEV333011=0x0D, /* 3330-11 */ - DEV3380=0x0E, - DEV3390=0x0F, -}; - -/* trkcalc() - returns number of blocks that will fit on track */ -extern int trkcalc(DEVTYPE devtype, int keylen, int blksize); - -#endif diff --git a/src/crent370/include/txt99.h b/src/crent370/include/txt99.h deleted file mode 100644 index 0b4f316..0000000 --- a/src/crent370/include/txt99.h +++ /dev/null @@ -1,251 +0,0 @@ -#ifndef TXT99_H -#define TXT99_H - -typedef struct txt99 TXT99; - -struct txt99 { - unsigned short dal; /* DAIR Type Code */ -#define DALDDNAM 0x0001 /* DDNAME */ -#define DALDSNAM 0x0002 /* DSNAME */ -#define DALMEMBR 0x0003 /* MEMBER NAME */ -#define DALSTATS 0x0004 /* DATA SET STATUS */ -#define DALNDISP 0x0005 /* DATA SET NORMAL DISPOSITION */ -#define DALCDISP 0x0006 /* DATA SET CONDITIONAL DISP */ -#define DALTRK 0x0007 /* TRACK SPACE TYPE */ -#define DALCYL 0x0008 /* CYLINDER SPACE TYPE */ -#define DALBLKLN 0x0009 /* AVERAGE DATA BLOCK LENGTH */ -#define DALPRIME 0x000A /* PRIMARY SPACE QUANTITY */ -#define DALSECND 0x000B /* SECONDARY SPACE QUANTITY */ -#define DALDIR 0x000C /* DIRECTORY SPACE QUANTITY */ -#define DALRLSE 0x000D /* UNUSED SPACE RELEASE */ -#define DALSPFRM 0x000E /* CONTIG,MXIG,ALX SPACE FORMAT */ -#define DALROUND 0x000F /* WHOLE CYLINDER (ROUND) SPACE */ -#define DALVLSER 0x0010 /* VOLUME SERIAL */ -#define DALPRIVT 0x0011 /* PRIVATE VOLUME */ -#define DALVLSEQ 0x0012 /* VOL SENCE NUMBER */ -#define DALVLCNT 0x0013 /* VOLUME COUNT */ -#define DALVLRDS 0x0014 /* VOLUME REFERENCE TO DSNAME */ -#define DALUNIT 0x0015 /* UNIT DESCRIPTION */ -#define DALUNCNT 0x0016 /* UNIT COUNT */ -#define DALPARAL 0x0017 /* PARALLEL MOUNT */ -#define DALSYSOU 0x0018 /* SYSOUT */ -#define DALSPGNM 0x0019 /* SYSOUT PROGRAM NAME */ -#define DALSFMNO 0x001A /* SYSOUT FORM NUMBER */ -#define DALOUTLM 0x001B /* OUTPUT LIMIT */ -#define DALCLOSE 0x001C /* UNALLOCATE AT CLOSE */ -#define DALCOPYS 0x001D /* SYSOUT COPIES */ -#define DALLABEL 0x001E /* LABEL TYPE */ -#define DALDSSEQ 0x001F /* DATA SET SENCE NUMBER */ -#define DALPASPR 0x0020 /* PASSWORD PROTECTION */ -#define DALINOUT 0x0021 /* INPUT ONLY OR OUTPUT ONLY */ -#define DALEXPDT 0x0022 /* 2 DIGIT YEAR EXPIRATION DATE */ -#define DALRETPD 0x0023 /* RETENTION PERIOD */ -#define DALDUMMY 0x0024 /* DUMMY ALLOCATION */ -#define DALFCBIM 0x0025 /* FCB IMAGE-ID */ -#define DALFCBAV 0x0026 /* FCB FORM ALIGNMENT,IMAGE VERIFY */ -#define DALQNAME 0x0027 /* QNAME ALLOCATION */ -#define DALTERM 0x0028 /* TERMINAL ALLOCATION */ -#define DALUCS 0x0029 /* UNIVERSAL CHARACTER SET */ -#define DALUFOLD 0x002A /* UCS FOLD MODE */ -#define DALUVRFY 0x002B /* UCS VERIFY CHARACTER SET */ -#define DALDCBDS 0x002C /* DCB DSNAME REFERENCE */ -#define DALDCBDD 0x002D /* DCB DDNAME REFERENCE */ -#define DALBFALN 0x002E /* BUFFER ALIGNMENT */ -#define DALBFTEK 0x002F /* BUFFERING TECHNIQUE */ -#define DALBLKSZ 0x0030 /* BLOCKSIZE */ -#define DALBUFIN 0x0031 /* NUMBER OF INPUT BUFFERS */ -#define DALBUFL 0x0032 /* BUFFER LENGTH */ -#define DALBUFMX 0x0033 /* MAXIMUM NUMBER OF BUFFERS */ -#define DALBUFNO 0x0034 /* NUMBER OF DCB BUFFERS */ -#define DALBUFOF 0x0035 /* BUFFER OFFSET */ -#define DALBUFOU 0x0036 /* NUMBER OF OUTPUT BUFFERS */ -#define DALBUFRQ 0x0037 /* NUMBER OF GET MACRO BUFFERS */ -#define DALBUFSZ 0x0038 /* LINE BUFFER SIZE */ -#define DALCODE 0x0039 /* PAPER TAPE CODE */ -#define DALCPRI 0x003A /* SEND/RECEIVE PRIORITY */ -#define DALDEN 0x003B /* TAPE DENSITY */ -#define DALDSORG 0x003C /* DATA SET ORGANIZATION */ -#define DALEROPT 0x003D /* ERROR OPTIONS */ -#define DALGNCP 0x003E /* NO. OF GAM I/O BEFORE WAIT */ -#define DALINTVL 0x003F /* POLLING INTERVAL */ -#define DALKYLEN 0x0040 /* DATA SET KEYS LENGTH */ -#define DALLIMCT 0x0041 /* SEARCH LIMIT */ -#define DALLRECL 0x0042 /* LOGICAL RECORD LENGTH */ -#define DALMODE 0x0043 /* CARD READER/PUNCH MODE */ -#define DALNCP 0x0044 /* NO. READ/WRITE BEFORE CHECK */ -#define DALOPTCD 0x0045 /* OPTIONAL SERVICES */ -#define DALPCIR 0x0046 /* RECEIVING PCI */ -#define DALPCIS 0x0047 /* SENDING PCI */ -#define DALPRTSP 0x0048 /* PRINTER LINE SPACING */ -#define DALRECFM 0x0049 /* RECORD FORMAT */ -#define DALRSRVF 0x004A /* FIRST BUFFER RESERVE */ -#define DALRSRVS 0x004B /* SECONDARY BUFFER RESERVE */ -#define DALSOWA 0x004C /* TCAM USER WORK AREA SIZE */ -#define DALSTACK 0x004D /* STACKER BIN */ -#define DALTHRSH 0x004E /* MESSAGE QUEUE PERCENTAGE */ -#define DALTRTCH 0x004F /* TAPE RECORDING TECHNOLOGY @T1C */ -#define DALPASSW 0x0050 /* PASSWORD */ -#define DALIPLTX 0x0051 /* IPL TEXT ID */ -#define DALPERMA 0x0052 /* PERMANENTLY ALLOCATED ATTRIB */ -#define DALCNVRT 0x0053 /* CONVERTIBLE ATTRIBUTE */ -#define DALDIAGN 0x0054 /* OPEN/CLOSE/EOV DIAGNOSTIC TRACE */ -#define DALRTDDN 0x0055 /* RETURN DDNAME */ -#define DALRTDSN 0x0056 /* RETURN DSNAME */ -#define DALRTORG 0x0057 /* RETURN D.S. ORGANIZATION */ -#define DALSUSER 0x0058 /* SYSOUT REMOTE USER */ -#define DALSHOLD 0x0059 /* SYSOUT HOLD QUEUE */ -#define DALFUNC 0x005A /* D.S. TYPE FOR 3525 CARD DEVICE */ -#define DALFRID 0x005B /* IMAGELIB MEMBER FOR SHARK */ -#define DALSSREQ 0x005C /* SUBSYSTEM REST */ -#define DALRTVOL 0x005D /* RETURN VOLUME SERIAL */ -#define DALMSVGP 0x005E /* MSVGP FOR 3330V */ -#define DALSSNM 0x005F /* SUBSYSTEM NAME REST */ -#define DALSSPRM 0x0060 /* SUBSYSTEM PARAMETERS */ -#define DALPROT 0x0061 /* RACF PROTECT FEATURE */ -#define DALSSATT 0x0062 /* SUBSYSTEM ATTRIBUTE */ -#define DALUSRID 0x0063 /* SYSOUT USER ID */ -#define DALBURST 0x0064 /* BURSTER-TRIMMER-STACKER */ -#define DALCHARS 0x0065 /* CHAR ARRANGEMENT TABLE */ -#define DALCOPYG 0x0066 /* COPY GROUP VALUES */ -#define DALFFORM 0x0067 /* FLASH FORMS OVERLAY */ -#define DALFCNT 0x0068 /* FLASH FORMS OVERLAY COUNT */ -#define DALMMOD 0x0069 /* COPY MODIFICATION MODULE */ -#define DALMTRC 0x006A /* TABLE REFERENCE CHARACTER */ -#define DALLRECK 0x006B /* LRECL IN MULT OF 1K FORMAT */ -#define DALDEFER 0x006C /* DEFER MOUNT UNTIL OPEN */ -#define DALEXPDL 0x006D /* 4 DIGIT YEAR EXP. DATE */ -#define DALBRTKN 0x006E /* Browse token supplied */ -#define DALINCHG 0x006F /* Volume Interchange */ -/* Attributes */ -#define DALOVAFF 0x0070 /* Tell JES to override */ -/* system affinity for INTRDR */ -#define DALACODE 0x8001 /* ACCESSIBILITY CODE */ -#define DALOUTPT 0x8002 /* OUTPUT REFERENCE */ -/* JDT defined Allocation keys */ -/* SJF DD ALLOCATION KEYS */ -#define DALCNTL 0x8003 /* CNTL */ -#define DALSTCL 0x8004 /* STORCLAS */ -#define DALMGCL 0x8005 /* MGMTCLAS */ -#define DALDACL 0x8006 /* DATACLAS */ -#define DALRECO 0x800B /* RECORG */ -#define DALKEYO 0x800C /* KEYOFF */ -#define DALREFD 0x800D /* REFDD */ -#define DALSECM 0x800E /* SECMODEL */ -#define DALLIKE 0x800F /* LIKE */ -#define DALAVGR 0x8010 /* AVGREC */ -#define DALDSNT 0x8012 /* DSNTYPE */ -#define DALSPIN 0x8013 /* SPIN */ -#define DALSEGM 0x8014 /* SEGMENT */ -/* */ -#define DALPATH 0x8017 /* PATH */ -#define DALPOPT 0x8018 /* PATHOPTS */ -#define DALPMDE 0x8019 /* PATHMODE */ -#define DALPNDS 0x801A /* PATHDISP - Normal Disposition */ -#define DALPCDS 0x801B /* PATHDISP - Conditional Disposition */ -#define DALRLS 0x801C /* RLS - Record Level Sharing */ -#define DALFDAT 0x801D /* FILEDATA - file organization */ -#define DALLGST 0x801F /* LGSTREAM */ -#define DALDCCS 0x8020 /* CCSID */ -/* */ -#define DALBSLM 0x0822 /* BLKSZLIM */ -/******************************************************************* -/** -/** KEYS FOR CONCATENATION FUNCTION -/** -/******************************************************************/ -#define DCCDDNAM 0x0001 /* DDNAMES */ -#define DCCPERMC 0x0004 /* PERMANENTLY CONCATENATED */ -/******************************************************************* -/** -/** KEYS FOR DECONCATENATION FUNCTION -/** -/******************************************************************/ -#define DDCDDNAM 0x0001 /* DDNAME */ -/******************************************************************* -/** -/** KEYS FOR INFORMATION RETRIEVAL FUNCTION -/** -/******************************************************************/ -#define DINDDNAM 0x0001 /* DDNAME */ -#define DINDSNAM 0x0002 /* DSNAME */ -#define DINRTDDN 0x0004 /* RETURN DDNAME */ -#define DINRTDSN 0x0005 /* RETURN DSNAME */ -#define DINRTMEM 0x0006 /* RETURN MEMBER NAME */ -#define DINRTSTA 0x0007 /* RETURN DATA SET STATUS */ -#define DINRTNDP 0x0008 /* RETURN NORMAL DISPOSITION */ -#define DINRTCDP 0x0009 /* RETURN CONDITIONAL DISP */ -#define DINRTORG 0x000A /* RETURN D.S. ORGANIZATION */ -#define DINRTLIM 0x000B /* RETURN # TO NOT-IN-USE LIMIT */ -#define DINRTATT 0x000C /* RETURN DYN. ALLOC ATTRIBUTES */ -#define DINRTLST 0x000D /* RETURN LAST ENTRY INDICATION */ -#define DINRTTYP 0x000E /* RETURN S.D. TYPE INDICATION */ -#define DINRELNO 0x000F /* RELATIVE REST NUMBER */ -#define DINRTVOL 0x0010 /* Return First Volser @L7A */ -/** JDT defined Information Retrieval output keys */ -/** SJF DD INFORMATION RETRIEVAL KEYS @L3A */ -#define DINRCNTL 0xC003 /* CNTL @D1A */ -#define DINRSTCL 0xC004 /* STORCLAS */ -#define DINRMGCL 0xC005 /* MGMTCLAS */ -#define DINRDACL 0xC006 /* DATACLAS */ -#define DINRRECO 0xC00B /* RECORG */ -#define DINRKEYO 0xC00C /* KEYOFF */ -#define DINRREFD 0xC00D /* REFDD */ -#define DINRSECM 0xC00E /* SECMODEL */ -#define DINRLIKE 0xC00F /* LIKE */ -#define DINRAVGR 0xC010 /* AVGREC */ -#define DINRDSNT 0xC012 /* DSNTYPE */ -#define DINRSPIN 0xC013 /* SPIN */ -#define DINRSEGM 0xC014 /* SEGMENT */ -#define DINRPATH 0xC017 /* PATH */ -#define DINRPOPT 0xC018 /* PATHOPTS */ -#define DINRPMDE 0xC019 /* PATHMODE */ -#define DINRPNDS 0xC01A /* NORMAL PATHDISP */ -#define DINRCNDS 0xC01B /* CONDITIONAL PATHDISP */ -#define DINRFDAT 0xC01D /* FILEDATA */ -/** JDT defined Information Retrieval input keys */ -/** SJF DD INFORMATION RETRIEVAL INPUT KEYS */ -#define DINPATH 0x8017 /* PATH */ -/************************************************************* -/** -/** KEYS FOR REMOVE IN-USE FUNCTION -/** -/*************************************************************/ -#define DRITCBAD 0x0001 /* TCB ADDRESS */ -#define DRICURNT 0x0002 /* CURRENT TASK OPTION */ -/************************************************************* -/** -/** KEYS FOR DDNAME ALLOCATION FUNCTION -/** -/*************************************************************/ -#define DDNDDNAM 0x0001 /* DDNAME */ -#define DDNRTDUM 0x0002 /* RETURN DUMMY D.S. INDIC */ -/************************************************************* -/** -/** KEYS FOR UNALLOCATION FUNCTION -/** -/*************************************************************/ -#define DUNDDNAM 0x0001 /* DDNAME */ -#define DUNDSNAM 0x0002 /* DSNAME */ -#define DUNMEMBR 0x0003 /* MEMBER NAME */ -#define DUNOVDSP 0x0005 /* OVERRIDING DISPOSITION */ -#define DUNUNALC 0x0007 /* UNALLOC OPTION */ -#define DUNREMOV 0x0008 /* REMOVE OPTION */ -#define DUNOVSNH 0x000A /* OVERRIDING SYSOUT NOHOLD */ -#define DUNOVCLS 0x0018 /* OVERRIDING SYSOUT CLASS */ -#define DUNOVSUS 0x0058 /* OVERRIDING SYSOUT NODE @ */ -#define DUNOVSHQ 0x0059 /* OVERRIDING SYSOUT HOLD QUEUE */ -#define DUNOVUID 0x0063 /* Overriding SYSOUT User ID @ */ -/** JDT defined Unallocation keys */ -/** SJF DD UNALLOCATION KEYS */ -#define DUNSPIN 0x8013 /* SPIN */ -/** */ -#define DUNPATH 0x8017 /* PATH */ -/** */ -#define DUNOVPDS 0x801A /* PATHDISP - Override Disposition */ - - unsigned short count; /* Number of text segments */ - unsigned short size; /* Size of each text segment */ - unsigned char text[1]; /* Text segment */ -}; - -#endif diff --git a/src/crent370/jes/file.txt b/src/crent370/jes/file.txt deleted file mode 100644 index 54b62e4..0000000 --- a/src/crent370/jes/file.txt +++ /dev/null @@ -1,14 +0,0 @@ -file.txt -jescanj.c -jesclose.c -jesdelj.c -jesjob.c -jesjobf1.c -jesjobfr.c -jesopen.c -jesprint.c -jesreque.c -jesxdone.c -jesxwrtr.c -josjobfr.c -makefile diff --git a/src/crent370/jes/jescanj.c b/src/crent370/jes/jescanj.c deleted file mode 100644 index 5e8adb8..0000000 --- a/src/crent370/jes/jescanj.c +++ /dev/null @@ -1,38 +0,0 @@ -#include -#include -#include -#include - -int jescanj(const char *jobname, const char *jobid, int purge) -{ - int rc = -1; - SSOB ssob; - SSCS sscs; - - initssob(&ssob, &sscs); /* initialize the SSOB header */ - ssob.SSOBFUNC = SSOBCANC; /* request CACNEL function */ - - memset(&sscs, 0, sizeof(SSCS)); /* clear the CANCEL parm list */ - sscs.SSCSLEN = SSCSIZE; /* length of CANCEL parm list */ - - if (jobname) { - strcpyp(sscs.SSCSJOBN, sizeof(sscs.SSCSJOBN), (void*)jobname, ' '); - } - - if (jobid) { - strcpyp(sscs.SSCSJOBI, sizeof(sscs.SSCSJOBI), (void*)jobid, ' '); - } - - if (purge) { - sscs.SSCSFLGS = SSCSCOUT; /* purge the output */ - } - - sscs.SSCSDIMP = SSCSELSZ; /* size of SSCSARAY area */ - - iefssreq(&ssob); /* send request to jes */ - - rc = ssob.SSOBRETN; - -quit: - return rc; -} diff --git a/src/crent370/jes/jescanj.o b/src/crent370/jes/jescanj.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/jes/jescanj.s b/src/crent370/jes/jescanj.s deleted file mode 100644 index 0b90b13..0000000 --- a/src/crent370/jes/jescanj.s +++ /dev/null @@ -1,124 +0,0 @@ - TITLE '/home/projects/crent370/jes/jescanj.c' - COPY PDPTOP - CSECT -* Program text area - DS 0F - EJECT -* external function 'jescanj' prologue -* frame base=88, local stack=72, call args=16 -&FUNC SETC 'jescanj' -JESCANJ PDPPRLG CINDEX=0,FRAME=176,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'jescanj' code - MVC 104(4,13),=F'-1' - LA 2,112(,13) - ST 2,88(13) - LA 2,136(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(INITSSOB) - BALR 14,15 - MVC 118(2,13),=H'2' - LA 2,136(,13) - ST 2,88(13) - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'40' - LA 1,88(,13) - L 15,=A(@@0) - BALR 14,15 - MVC 136(2,13),=H'40' - L 2,0(11) - LTR 2,2 - BE @@L4 - LA 2,136(,13) - A 2,=F'4' - ST 2,88(13) - MVC 92(4,13),=F'8' - MVC 96(4,13),0(11) - MVC 100(4,13),=F'64' - LA 1,88(,13) - L 15,=V(STRCPYP) - BALR 14,15 -@@L4 EQU * - L 2,4(11) - LTR 2,2 - BE @@L5 - LA 2,136(,13) - A 2,=F'12' - ST 2,88(13) - MVC 92(4,13),=F'8' - MVC 96(4,13),4(11) - MVC 100(4,13),=F'64' - LA 1,88(,13) - L 15,=V(STRCPYP) - BALR 14,15 -@@L5 EQU * - L 2,8(11) - LTR 2,2 - BE @@L6 - MVI 138(13),64 -@@L6 EQU * - MVC 156(2,13),=H'16' - LA 2,112(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(IEFSSREQ) - BALR 14,15 - MVC 104(4,13),124(13) -@@L7 EQU * - L 2,104(13) - LR 15,2 -* Function 'jescanj' epilogue - PDPEPIL -* Function 'jescanj' literal pool - DS 0D - LTORG -* Function 'jescanj' page table -@@PGT0 DS 0F - DC A(@@PG0) - DS 0F - EJECT -* static function 'memset' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'memset' -@@0 PDPPRLG CINDEX=1,FRAME=88,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'memset' code - L 4,0(11) - L 3,8(11) - L 2,4(11) - -*** MEMSET *** - LR 14,4 => target (s) - LR 15,3 => length (n) - SLR 0,0 => source (NULL) - LR 1,2 fill character - SLL 1,24 move fill to high byte - MVCL 14,0 Set target to fill character - L 2,0(11) - LR 15,2 -* Function 'memset' epilogue - PDPEPIL -* Function 'memset' literal pool - DS 0D - LTORG -* Function 'memset' page table -@@PGT1 DS 0F - DC A(@@PG1) - END diff --git a/src/crent370/jes/jesclose.c b/src/crent370/jes/jesclose.c deleted file mode 100644 index 02ff892..0000000 --- a/src/crent370/jes/jesclose.c +++ /dev/null @@ -1,43 +0,0 @@ -/* JESCLOSE.C - Close JES spool datasets */ -#include -#include -#include "hasphct.h" /* JES Checkpoint Control Table, record 3 in HASPCKPT */ -#include "haspjct.h" /* JES Job Control Table */ -#include "hasppddb.h" /* JES PDDB Print Datasets */ -#include "haspiot.h" /* JES IOT */ -#include "clibjes2.h" /* JES prototypes */ -#include "clibary.h" /* dynamic array */ - -int jesclose(JES **ppjes) -{ - JES *jes = NULL; - unsigned count; - unsigned n; - - if (!ppjes) goto quit; - - jes = *ppjes; - if (jes) { - if (jes->js) { - count = arraycount(&jes->js); - for (n=0; n < count; n++) { - if (!jes->js[n]) continue; - spool_close(jes->js[n]); - jes->js[n] = NULL; - } - arrayfree(&jes->js); - } - if (jes->cp) { - checkpoint_close(jes->cp); - jes->cp = NULL; - } - free(jes); - *ppjes = NULL; - } - -quit: - return 0; -} - - - diff --git a/src/crent370/jes/jesclose.o b/src/crent370/jes/jesclose.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/jes/jesclose.s b/src/crent370/jes/jesclose.s deleted file mode 100644 index 1a8f1ae..0000000 --- a/src/crent370/jes/jesclose.s +++ /dev/null @@ -1,115 +0,0 @@ - TITLE '/home/projects/crent370/jes/jesclose.c' - COPY PDPTOP - CSECT -* Program text area - DS 0F - EJECT -* external function 'jesclose' prologue -* frame base=88, local stack=16, call args=8 -&FUNC SETC 'jesclose' -JESCLOSE PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'jesclose' code - MVC 96(4,13),=F'0' - L 2,0(11) - LTR 2,2 - BNE @@L4 - B @@L5 -@@L4 EQU * - L 2,0(11) - MVC 96(4,13),0(2) - L 2,96(13) - LTR 2,2 - BE @@L5 - L 2,96(13) - L 2,12(2) - LTR 2,2 - BE @@L7 - L 2,96(13) - A 2,=F'12' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 2,15 - ST 2,100(13) - MVC 104(4,13),=F'0' -@@L8 EQU * - L 2,104(13) - CL 2,100(13) - BL @@L11 - B @@L9 -@@L11 EQU * - L 3,96(13) - L 2,104(13) - MH 2,=H'4' - A 2,12(3) - L 2,0(2) - LTR 2,2 - BNE @@L12 - B @@L10 -@@L12 EQU * - L 3,96(13) - L 2,104(13) - MH 2,=H'4' - A 2,12(3) - MVC 88(4,13),0(2) - LA 1,88(,13) - L 15,=V(@@JSCLOS) - BALR 14,15 - L 3,96(13) - L 2,104(13) - MH 2,=H'4' - A 2,12(3) - MVC 0(4,2),=F'0' -@@L10 EQU * - L 2,104(13) - A 2,=F'1' - ST 2,104(13) - B @@L8 -@@L9 EQU * - L 2,96(13) - A 2,=F'12' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARFRE) - BALR 14,15 -@@L7 EQU * - L 2,96(13) - L 2,8(2) - LTR 2,2 - BE @@L13 - L 2,96(13) - MVC 88(4,13),8(2) - LA 1,88(,13) - L 15,=V(@@CPCLOS) - BALR 14,15 - L 2,96(13) - MVC 8(4,2),=F'0' -@@L13 EQU * - MVC 88(4,13),96(13) - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - L 2,0(11) - MVC 0(4,2),=F'0' -@@L5 EQU * - SLR 2,2 - LR 15,2 -* Function 'jesclose' epilogue - PDPEPIL -* Function 'jesclose' literal pool - DS 0D - LTORG -* Function 'jesclose' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/jes/jesdelj.c b/src/crent370/jes/jesdelj.c deleted file mode 100644 index d4ca61b..0000000 --- a/src/crent370/jes/jesdelj.c +++ /dev/null @@ -1,41 +0,0 @@ -#include -#include -#include -#include - -int jesdelj(const char *jobname, const char *jobid) -{ - int rc = -1; - SSOB ssob; - SSSO ssso; - - /* we must have either job name or job id (both are allowed) */ - if (!jobname && !jobid) goto quit; - - initssob(&ssob, &ssso); /* initialize the SSOB header */ - ssob.SSOBFUNC = SSOBSOUT; /* request SYSOUT function */ - - memset(&ssso, 0, sizeof(SSSO)); /* clear the SYSOUT parm list */ - ssso.SSSOLEN = SSSOSIZE; /* length of SYSOUT parm list */ - ssso.SSSOUFLG = SSSODELC; /* delete request */ - ssso.SSSOFLG1 |= SSSOHLD; /* include HELD output */ - - if (jobname) { - strcpyp(ssso.SSSOJOBN, sizeof(ssso.SSSOJOBN), (void*)jobname, ' '); - ssso.SSSOFLG1 |= SSSOSJBN; /* job name present */ - } - - if (jobid) { - strcpyp(ssso.SSSOJOBI, sizeof(ssso.SSSOJOBI), (void*)jobid, ' '); - ssso.SSSOFLG1 |= SSSOSJBI; /* job id present */ - } - - ssso.SSSOFLG2 = SSSOCTRL; /* processing completed */ - - iefssreq(&ssob); /* send request to jes */ - - rc = ssob.SSOBRETN; - -quit: - return rc; -} diff --git a/src/crent370/jes/jesdelj.o b/src/crent370/jes/jesdelj.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/jes/jesdelj.s b/src/crent370/jes/jesdelj.s deleted file mode 100644 index e9eb994..0000000 --- a/src/crent370/jes/jesdelj.s +++ /dev/null @@ -1,137 +0,0 @@ - TITLE '/home/projects/crent370/jes/jesdelj.c' - COPY PDPTOP - CSECT -* Program text area - DS 0F - EJECT -* external function 'jesdelj' prologue -* frame base=88, local stack=152, call args=16 -&FUNC SETC 'jesdelj' -JESDELJ PDPPRLG CINDEX=0,FRAME=256,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'jesdelj' code - MVC 104(4,13),=F'-1' - L 2,0(11) - LTR 2,2 - BNE @@L4 - L 2,4(11) - LTR 2,2 - BNE @@L4 - B @@L5 -@@L4 EQU * - LA 2,112(,13) - ST 2,88(13) - LA 2,136(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(INITSSOB) - BALR 14,15 - MVC 118(2,13),=H'1' - LA 2,136(,13) - ST 2,88(13) - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'120' - LA 1,88(,13) - L 15,=A(@@0) - BALR 14,15 - MVC 136(2,13),=H'120' - MVI 138(13),64 - IC 2,140(13) - O 2,=F'-128' - STC 2,140(13) - L 2,0(11) - LTR 2,2 - BE @@L6 - LA 2,136(,13) - A 2,=F'8' - ST 2,88(13) - MVC 92(4,13),=F'8' - MVC 96(4,13),0(11) - MVC 100(4,13),=F'64' - LA 1,88(,13) - L 15,=V(STRCPYP) - BALR 14,15 - IC 2,140(13) - O 2,=F'16' - STC 2,140(13) -@@L6 EQU * - L 2,4(11) - LTR 2,2 - BE @@L7 - LA 2,136(,13) - A 2,=F'16' - ST 2,88(13) - MVC 92(4,13),=F'8' - MVC 96(4,13),4(11) - MVC 100(4,13),=F'64' - LA 1,88(,13) - L 15,=V(STRCPYP) - BALR 14,15 - IC 2,140(13) - O 2,=F'8' - STC 2,140(13) -@@L7 EQU * - MVI 141(13),128 - LA 2,112(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(IEFSSREQ) - BALR 14,15 - MVC 104(4,13),124(13) -@@L5 EQU * - L 2,104(13) - LR 15,2 -* Function 'jesdelj' epilogue - PDPEPIL -* Function 'jesdelj' literal pool - DS 0D - LTORG -* Function 'jesdelj' page table -@@PGT0 DS 0F - DC A(@@PG0) - DS 0F - EJECT -* static function 'memset' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'memset' -@@0 PDPPRLG CINDEX=1,FRAME=88,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'memset' code - L 4,0(11) - L 3,8(11) - L 2,4(11) - -*** MEMSET *** - LR 14,4 => target (s) - LR 15,3 => length (n) - SLR 0,0 => source (NULL) - LR 1,2 fill character - SLL 1,24 move fill to high byte - MVCL 14,0 Set target to fill character - L 2,0(11) - LR 15,2 -* Function 'memset' epilogue - PDPEPIL -* Function 'memset' literal pool - DS 0D - LTORG -* Function 'memset' page table -@@PGT1 DS 0F - DC A(@@PG1) - END diff --git a/src/crent370/jes/jesjob.c b/src/crent370/jes/jesjob.c deleted file mode 100644 index f40656e..0000000 --- a/src/crent370/jes/jesjob.c +++ /dev/null @@ -1,760 +0,0 @@ -/* JESJOB.C - Get JES Job information */ -#include -#include -#include -#include "hasphct.h" /* JES Checkpoint Control Table, record 3 in HASPCKPT */ -#include "haspjct.h" /* JES Job Control Table */ -#include "hasppddb.h" /* JES PDDB Print Datasets */ -#include "haspiot.h" /* JES IOT */ -#include "ieftxtft.h" /* text string types */ -#include "iefvkeys.h" /* text key values */ -#include "clibjes2.h" /* JES prototypes */ -#include "clibary.h" /* dynamic array */ - -static int process_intxt(JES *jes, __JQE *jqe, __JCT *jct, unsigned pddb_mttr, JESJOB *job); -static int process_job(char *buf, char *jobname, char *userid); -static JESDD *process_pddb(__PDDB *pddb, JESJOB *job); -static int process_exec(char *buf, char *stepname, char *procname, char *program); -static int process_dd(char *buf, char *ddname, char *dsname, char *sysout, unsigned *sysin); -static int process_sysout(JESDD **jesdd, const char *ddname, const char *dsname, const char *sysout, const char *stepname, const char *procstep); -static int process_sysin(JESDD **jesdd, const char *ddname, const char *dsname, const char *stepname, const char *procstep); -static int is_dup_dsid(JESDD **jesdd, unsigned dsid); -static time64_t make_time(unsigned int t_hundreths_seconds_since_midnight, unsigned int d_packed_yyyydddf); - -static int dsid_comp(const void *, const void *); - -JESJOB **jesjob(JES *jes, const char *filter, JESFILT type, int dd) -{ - JESJOB **array = NULL; - JESJOB *job = NULL; - JESDD *jesdd = NULL; - HASPCP *cp = NULL; - HASPJS *js = NULL; - __HCT *hct = NULL; - __JCT *jct = NULL; - __PDDB *pddb = NULL; - __PDDB *pddbend= NULL; - __JQE *jqe = NULL; - __IOT *iot = NULL; - char *buf = NULL; - char *jctbuf = NULL; - char *iotbuf = NULL; - char *jobtype; - unsigned mttr; - int i; - int rc; - char filt[12]; - char jobid[12]; - char jobname[12]; - char owner[12]; - - if (!jes) goto quit; - - /* if the caller supplied a filter we want to make an UPPERCASE copy */ - if (type != FILTER_NONE && filter) { - for(i=0; filter[i] && i < sizeof(filt); i++) { - filt[i] = toupper(filter[i]); - } - filt[i] = 0; - } - - cp = jes->cp; - hct = &cp->hct; - /* wtodumpf(hct, sizeof(__HCT), "HCT"); */ - - js = jes->js[0]; - - buf = calloc(1, hct->_BUFSIZE * 2); - if (!buf) { - wtof("Unable to allocate storage for %u byte buffer", hct->_BUFSIZE * 2); - goto quit; - } - jctbuf = buf; - jct = (__JCT*)jctbuf; - iotbuf = jctbuf + hct->_BUFSIZE; - iot = (__IOT*)iotbuf; - pddbend= (__PDDB*)&iotbuf[hct->_BUFSIZE]; - - for(jqe=cp->jqe; jqe < cp->jqeend; jqe++) { - if (jqe->JQETYPE == _FREE) continue; /* Skip this JQE */ - if (jqe->JQETYPE == _PURGE) continue; /* Skip this JQE */ - - /* read this jobs JCT record */ - if (spool_read(js, jqe->JQETRAK, jctbuf, hct->_BUFSIZE)) continue; - jct = (__JCT*)jctbuf; - - /* wtodumpf(jct, sizeof(__JCT), "JCT mttr=%08X", jqe->JQETRAK); */ - - if (jct->JCTJOBFL & JCTBATCH) { - jobtype = "JOB"; /* Batch job */ - } - else if (jct->JCTJOBFL & JCTTSUJB) { - jobtype = "TSU"; /* TSU User */ - } - else if (jct->JCTJOBFL & JCTSTCJB) { - jobtype = "STC"; /* System Task */ - } - else { - jobtype = "???"; /* No idea we we have here */ - } - - sprintf(jobid, "%s%05u", jobtype, jqe->JQEJOBNO % 10000); - memcpyp(jobname, sizeof(jobname), jqe->JQEJNAME, sizeof(jqe->JQEJNAME), 0); - strtok(jobname, " "); - - if (jct->JCTJOBFL & JCTTSUJB) { - /* TSO User is owner of itself */ - strcpy(owner, jobname); - } - else if (jct->JCTJOBFL & JCTSTCJB) { - /* STC are owned by the system */ - strcpy(owner, "SYSTEM"); - } - else { - /* Batch jobs are owned by the job submitter or USERID= from job card. - note: we don't have the userid from the job card at this point, however - we'll see it when we process the INTERNAL TEXT (DSID#5) below - and update the job->owner at that time. */ - memcpyp(owner, sizeof(owner), jct->JCTUSEID, sizeof(jct->JCTUSEID), 0); - if (owner[0] > ' ') strtok(owner, " "); else owner[0] = 0; - } - /* wtodumpf(owner, sizeof(owner), "owner"); */ - - if (type != FILTER_NONE && filter) { - /* Filter as needed */ - if (type == FILTER_JOBNAME) { - if (!__patmat(jobname, filt)) continue; - } - else if (type == FILTER_JOBID) { - if (!__patmat(jobid, filt)) continue; - } - } - - job = calloc(1, sizeof(JESJOB)); - if (!job) { - wtof("Unable to allocate storage for %u byte JESJOB handle", sizeof(JESJOB)); - goto quit; - } - - /* add this JESJOB to the array of JESJOBs */ - arrayadd(&array, job); - strcpy(job->eye, JESJOB_EYE); - - /* Fill in the job info from the JQE and JCT records */ - strcpyp(job->jobname, sizeof(job->jobname), jobname, 0); - strcpyp(job->jobid, sizeof(job->jobid), jobid, 0); - strcpyp(job->owner, sizeof(job->owner), owner, 0); - - job->eclass = jct->JCTCLASS; - job->priority = jct->JCTPRIO; - job->q_type = jqe->JQETYPE; - job->q_flag1 = jqe->JQEFLAGS; - job->q_flag2 = jqe->JQEFLAG2; - job->iotmttr = jct->JCTIOT; - job->spinmttr = jct->JCTSPIOT; - job->start_time64 = make_time(jct->JCTXEQON, jct->JCTXDTON); - job->end_time64 = make_time(jct->JCTXEQOF, jct->JCTXDTOF); - job->jobkey = jct->JCTJBKEY; - - if (dd) { - /* Process the IOT */ - /* wtof("%s process the IOT", __func__); */ - for(mttr = jct->JCTIOT; mttr; mttr=iot->IOTIOTTR) { - /* read this jobs IOT (and PDDBs) record */ - spool_read(js, mttr, iotbuf, hct->_BUFSIZE); - - for(i=0, pddb = (__PDDB*)&iotbuf[cp->pddb1]; pddb < pddbend; i++, pddb++) { - /* wtodumpf(pddb, sizeof(__PDDB), "PDDB#%d", i); */ - - if (pddb->PDBDSKEY == 0) break; - if (pddb->PDBMTTR == 0) continue; - if (is_dup_dsid(job->jesdd, pddb->PDBDSKEY)) continue; - - /* populate jesdd from the pddb record */ - if (!(jesdd=process_pddb(pddb, job))) goto quit; - } - } - - /* Process the SPIN IOT */ - /* wtof("%s process the SPIN IOT", __func__); */ - for(mttr = jct->JCTSPIOT; mttr; mttr=iot->IOTIOTTR) { - /* read this jobs IOT (and PDDBs) record */ - /* wtof("%s spool_read() MTTR=%08X", __func__, mttr); */ - spool_read(js, mttr, iotbuf, hct->_BUFSIZE); - /* wtodumpf(iotbuf, sizeof(__IOT), "IOT %08X", mttr); */ - - for(i=0, pddb = (__PDDB*)&iotbuf[cp->pddb1]; pddb < pddbend; i++, pddb++) { - /* wtodumpf(pddb, sizeof(__PDDB), "PDDB#%d", i); */ - - if (pddb->PDBDSKEY == 0) break; - if (pddb->PDBMTTR == 0) continue; - if (is_dup_dsid(job->jesdd, pddb->PDBDSKEY)) continue; - - /* populate jesdd from the pddb record */ - if (!(jesdd=process_pddb(pddb, job))) goto quit; - } - } - } /* if (dd) */ - - /* process the JCL for this job if we want DD info OR if this is a - batch job (so we can get the USERID= as the job owner). */ - /* wtof("%s process the JCL", __func__); */ - if (dd || (jct->JCTJOBFL & JCTBATCH)) { - /* Find the DSID #5 PDDB for this job */ - for(rc=0, mttr = jct->JCTIOT; mttr; mttr=iot->IOTIOTTR) { - /* read this jobs IOT (and PDDBs) record */ - /* wtof("%s spool_read() MTTR=%08X", __func__, mttr); */ - spool_read(js, mttr, iotbuf, hct->_BUFSIZE); - /* wtodumpf(iotbuf, sizeof(__IOT), "IOT %08X", mttr); */ - - for(mttr=0, i=0, pddb = (__PDDB*)&iotbuf[cp->pddb1]; pddb < pddbend; i++, pddb++) { -#if 0 - wtodumpf(pddb, sizeof(__PDDB), "PDDB#%d", i); - wtof("%s PDBDSKEY=%08X", __func__, pddb->PDBDSKEY); - wtof("%s PDBMTTR =%08X", __func__, pddb->PDBMTTR); -#endif - if (pddb->PDBDSKEY != PDBINTXT) continue; - - rc = process_intxt(jes, jqe, jct, pddb->PDBMTTR, job); - break; - } - if (rc) break; - } - } - - if (job->jesdd) { - /* check for missing ddname and remove them from results */ - unsigned count = arraycount(&job->jesdd); - unsigned n; - - for(n=0; n < count; n++) { - JESDD *dd = job->jesdd[n]; - - if (!dd) continue; - if (dd->ddname[0]==0 || dd->ddname[0]==' ') { - arraydel(&job->jesdd, n+1); - free(dd); - count--; - } - } - - count = arraycount(&job->jesdd); - if (count > 1) { - qsort(job->jesdd, count, sizeof(JESDD*), dsid_comp); - } - - } -#if 0 - { - unsigned count = arraycount(&job->jesdd); - unsigned n; - - wtof("%-8.8s %-8.8s %-8.8s CLASS=%c PRTY=%u IOTMTTR=%08X SPINMTTR=%08X", - job->jobname, job->jobid, job->owner, job->eclass, job->priority, job->iotmttr, job->spinmttr); - wtof("start=%u %s", job->start_time, ctime(&job->start_time)); - wtof("end=%u %s", job->end_time, ctime(&job->end_time)); - - for(n=0; n < count; n++) { - JESDD *dd = job->jesdd[n]; - - if (!dd) continue; - wtof("dd=%s, step=%s, proc=%s, class=%c, recfm=%02X, mttr=%08X, recs=%u, lrecl=%u, dsid=%u", - dd->ddname, dd->stepname, dd->procstep, dd->oclass, dd->recfm, dd->mttr, dd->records, dd->lrecl, dd->dsid); - wtof("dsname=%-44.44s, flag=%02X", dd->dsname, dd->flag); - } - } -#endif - } - -quit: - if (buf) free(buf); - return array; -} - -__asm__("\n&FUNC SETC 'dsid_comp'"); -static int -dsid_comp(const void *v1, const void *v2) -{ - JESDD *dd1 = *(JESDD **)v1; - JESDD *dd2 = *(JESDD **)v2; - - /* wtof("%s dd1->ddname=%s, dd2->ddname=%s", __func__, dd1->ddname, dd2->ddname); */ - - return (int) (dd1->dsid - dd2->dsid); -} - -__asm__("\n&FUNC SETC 'process_pddb'"); -static JESDD * -process_pddb(__PDDB *pddb, JESJOB *job) -{ - JESDD *jesdd = calloc(1, sizeof(JESDD)); - - if (!jesdd) { - wtof("Unable to allocate storage for %u byte JESDD handle", sizeof(JESDD)); - goto quit; - } - - /* add the jesdd to the array of jesdd in the job handle */ - arrayadd(&job->jesdd, jesdd); - - /* initialize the jesdd handle */ - strcpy(jesdd->eye, JESDD_EYE); - - memcpyp(jesdd->ddname, sizeof(jesdd->ddname), pddb->PDBDSID, sizeof(pddb->PDBDSID), 0); - strtok(jesdd->ddname, " "); - - switch (pddb->PDBDSKEY) { - case PDBINJCL: { - strcpy(jesdd->ddname, "JESJCLIN"); - sprintf(jesdd->dsname, "JES2.%s.SI%04u", job->jobid, pddb->PDBDSKEY); - jesdd->flag = FLAG_JES2 | FLAG_SYSIN; - break; - } - case PDBOUHJL: { - strcpy(jesdd->ddname, "JESMSGLG"); - sprintf(jesdd->dsname, "JES2.%s.SO%04u", job->jobid, pddb->PDBDSKEY); - jesdd->flag = FLAG_JES2 | FLAG_SYSOUT; - break; - } - case PDBOUJCI: { - strcpy(jesdd->ddname, "JESJCL"); - sprintf(jesdd->dsname, "JES2.%s.SO%04u", job->jobid, pddb->PDBDSKEY); - jesdd->flag = FLAG_JES2 | FLAG_SYSOUT; - break; - } - case PDBOUMSG: { - strcpy(jesdd->ddname, "JESYSMSG"); - sprintf(jesdd->dsname, "JES2.%s.SO%04u", job->jobid, pddb->PDBDSKEY); - jesdd->flag = FLAG_JES2 | FLAG_SYSOUT; - break; - } - case PDBINTXT: { - strcpy(jesdd->ddname, "JESINTXT"); - sprintf(jesdd->dsname, "JES2.%s.SI%04u", job->jobid, pddb->PDBDSKEY); - jesdd->flag = FLAG_JES2 | FLAG_SYSIN; - break; - } - case PDBINJNL: { - strcpy(jesdd->ddname, "JESJRNL"); - sprintf(jesdd->dsname, "JES2.%s.SI%04u", job->jobid, pddb->PDBDSKEY); - jesdd->flag = FLAG_JES2 | FLAG_SYSIN; - break; - } - } -#if 0 - if (jesdd->ddname[0]==0 || jesdd->ddname[0]==' ') { - sprintf(jesdd->ddname, "JES%05u", pddb->PDBDSKEY); - sprintf(jesdd->dsname, "JES2.%s.SI%04u", job->jobid, pddb->PDBDSKEY); - } -#endif - jesdd->oclass = pddb->PDBCLASS; - jesdd->recfm = pddb->PDBRECFM; - jesdd->mttr = pddb->PDBMTTR; - jesdd->records = pddb->PDBRECCT; - jesdd->lrecl = pddb->PDBLRECL; - jesdd->dsid = pddb->PDBDSKEY; - -quit: - return jesdd; -} - -__asm__("\n&FUNC SETC 'make_time'"); -static time64_t -make_time(unsigned int t, unsigned int d) -{ - time64_t result; - unsigned year = 0; - unsigned days = 0; - struct tm tm = {0}; - char buf[20]; - - __64_init(&result); /* initialize to 0 */ - - if (!t) goto quit; /* t is hundredths seconds since midnight */ - if (!d) goto quit; /* d is packed date YYYYDDDF julian day */ - - /* fprintf(stderr, "make_time(%08X, %08X)\n", t, d); */ - - tm.tm_sec = (t/100); /* convert to seconds */ - - /* unpack the year from the YYYYDDDF packed date */ - year = (d >> 16); - sprintf(buf, "%X", year); - year = atoi(buf); - tm.tm_year = year; - - /* unpack the year days from the YYYYDDDF packed date */ - days = (d & 0xFFFF) >> 4; - sprintf(buf, "%X", days); - days = atoi(buf); - tm.tm_mday = days; - - /* we don't know if DST is in effect */ - tm.tm_isdst = -1; - - /* convert to time64_t format date and time */ - result = mktime64(&tm); - /* fprintf(stderr, "mktime64 result=%llu, 0x%016llX\n", result, result); */ - - /* if mktime64() failed, return 0 */ - if (result.u32[0] == 0xFFFFFFFF && result.u32[1] == 0xFFFFFFFF) __64_init(&result); - -quit: - /* fprintf(stderr, "make_time result=%llu, 0x%016llX\n \n", result, result); */ - return result; -} - -/* process_intxt() read internal text for job and merge with job->jesdd array */ -__asm__("\n&FUNC SETC 'process_intxt'"); -static int -process_intxt(JES *jes, __JQE *jqe, __JCT *jct, unsigned pddb_mttr, JESJOB *job) -{ - HASPCP *cp = jes->cp; - HASPJS *js = jes->js[0]; - __HCT *hct = &cp->hct; - char *buf = NULL; - __TXTPRE *pre = NULL; - JESDD **jesdd = job->jesdd; - unsigned count = arraycount(&jesdd); - unsigned n; - unsigned mttr; - unsigned char *p; - unsigned char *eob; /* end of block */ - struct hdr { - unsigned int next; - unsigned int jobid; - unsigned short dsid; - unsigned char len1; /* 1 byte length */ - unsigned char len2[2]; /* 2 byte length */ - unsigned char record[0]; /* start of text string records */ - } *hdr; - unsigned char jobname[12] = ""; - unsigned char userid[12] = ""; - unsigned char stepname[12] = ""; - unsigned char procstep[12] = ""; - unsigned char program[12] = ""; - unsigned char ddname[12] = ""; - unsigned char dsname[56] = ""; - unsigned char sysout[8] = ""; - unsigned sysin; - - /* wtof("%s enter", __func__); */ - - buf = calloc(1, hct->_BUFSIZE); - if (!buf) goto quit; - - for(mttr=pddb_mttr; mttr; mttr=hdr->next) { - /* read the internal text record */ - /* wtof("%s spool_read() MTTR=%08X", __func__, mttr); */ - spool_read(js, mttr, buf, hct->_BUFSIZE); - /* wtodumpf(buf, hct->_BUFSIZE, "text record for mttr=%08X", mttr); */ - - hdr = (struct hdr*)buf; - if (hdr->jobid != jct->JCTJBKEY) break; - if (hdr->dsid != PDBINTXT) break; - - p = hdr->record; - eob = buf + hct->_BUFSIZE - 1; - - while( p < eob ) { - pre = (__TXTPRE*)p; - if (pre->STRLTH==0) break; - - switch(pre->STRINDCS & 0x0F) { - case JOBSTR: /* ... JOB STATEMENT TEXT STRING */ - /* wtodumpf(pre, pre->STRLTH, "JOB Text String"); */ - process_job(p, jobname, userid); - if (userid[0]) strcpy(job->owner, userid); - if (!count) goto quit; /* no JESDD so we're done */ - break; - case EXECSTR: /* ... EXEC STATEMENT TEXT STRING */ - /* wtodumpf(pre, pre->STRLTH, "EXEC Text String"); */ - process_exec(p, stepname, procstep, program); - break; - case DDSTR: /* ... DD STATEMENT TEXT STRING */ - /* wtodumpf(pre, pre->STRLTH, "DD Text String"); */ - process_dd(p, ddname, dsname, sysout, &sysin); - /* wtof("ddname=%s, dsname=%s, sysout=%s, sysin=%u", ddname, dsname, sysout, sysin); */ - if (sysout[0]) { - /* DD is for SYSOUT */ - process_sysout(job->jesdd, ddname, dsname, sysout, stepname, procstep); - } - if (sysin) { - /* DD is for SYSOUT */ - process_sysin(job->jesdd, ddname, dsname, stepname, procstep); - } - break; - case PROCSTR: /* ... PROC STATEMENT TEXT STRING */ - /* wtodumpf(pre, pre->STRLTH, "PROC Text String"); */ - process_exec(p, procstep, program, program); - break; - } - - p += pre->STRLTH + 3; - } - } - -quit: - if (buf) free(buf); - /* wtof("%s exit count=%u", __func__, count); */ - return (int)count; -} - -typedef struct { - unsigned char key; - unsigned char count; - unsigned char len; - unsigned char data[0]; -} TEXT; - -__asm__("\n&FUNC SETC 'process_job'"); -static int -process_job(char *buf, char *jobname, char *userid) -{ - __JOBSTR *job = (__JOBSTR*)buf; - TEXT *t; - unsigned n; - unsigned len; - - buf = job->STRJKEY; - jobname[0] = 0; - userid[0] = 0; - - for(t = (TEXT*)buf; t->key != 0 && t->key != ENDK; t = (TEXT*)buf) { - len = t->len & 0x7F; - - switch (t->key) { - case USERK: /* JOB USER= */ - memcpy(userid, t->data, len); - userid[len] = 0; - strtok(userid, " "); - break; - case JOBK: /* JOB JOB */ - memcpy(jobname, t->data, len); - jobname[len] = 0; - strtok(jobname, " "); - break; - } - - /* move buf pointer to next key */ - for(buf+=2, n=0; n < t->count; n++) buf += (1 + (buf[0] & 0x7F)); - } - - /* wtof("process_job(%s,%s)", jobname, userid); */ - return 0; -} - -__asm__("\n&FUNC SETC 'process_exec'"); -static int -process_exec(char *buf, char *stepname, char *procname, char *program) -{ - __EXECSTR *exec = (__EXECSTR*)buf; - TEXT *t; - unsigned n; - unsigned len; - - buf = exec->STREKEY; - stepname[0] = 0; - - for(t = (TEXT*)buf; t->key != 0 && t->key != ENDK; t = (TEXT*)buf) { - /* wtodumpf(t, sizeof(TEXT), "%s TEXT", __func__); */ - - len = t->len & 0x7F; - - /* wtof("%s t->key=%u", __func__, t->key); */ - switch (t->key) { - case PGMEK: /* EXEC PGM= */ - /* wtof("%s PGMEK t->data=%08X, t->len=%08X", __func__, t->data, t->len); */ - memcpy(program, t->data, len); - program[len] = 0; - strtok(program, " "); - break; - case PROCEK: /* EXEC PROC= */ - /* wtof("%s PROCEK t->data=%08X, t->len=%08X", __func__, t->data, t->len); */ - program[0] = 0; - memcpy(procname, t->data, len); - procname[len] = 0; - strtok(procname, " "); - break; - case EXECK: /* EXEC EXEC */ - /* wtof("%s EXECK t->data=%08X, t->len=%08X", __func__, t->data, t->len); */ - memcpy(stepname, t->data, len); - stepname[len] = 0; - strtok(stepname, " "); - break; - } - - /* move buf pointer to next key */ - for(buf+=2, n=0; n < t->count; n++) buf += (1 + (buf[0] & 0x7F)); - } - - /* wtof("process_exec(%s,%s,%s)", stepname, procname, program); */ - return 0; -} - -__asm__("\n&FUNC SETC 'process_dd'"); -static int -process_dd(char *buf, char *ddname, char *dsname, char *sysout, unsigned *sysin) -{ - __DDSTR *dd = (__DDSTR*)buf; - TEXT *t; - unsigned n; - - // wtof("%s: enter buf=%p", __func__, buf); - - buf = dd->STRDKEY; - dsname[0] = 0; - sysout[0] = 0; - *sysin = 0; - - for(t = (TEXT*)buf; t->key != 0 && t->key != ENDK; t = (TEXT*)buf) { -#if 0 - char *p = buf; - for(p+=2, n=0; n < t->count; n++) p += (1 + p[0]); - wtodumpf(buf, n, "%s: t->key=%d", __func__, t->key); -#endif - switch (t->key) { - case DDK: /* DD DD */ - memcpy(ddname, t->data, t->len); - ddname[t->len] = 0; - strtok(ddname, " "); - // wtodumpf(ddname, t->len, "DDK"); - break; - case DSNAMEK: /* DD C DSNAME= */ - if (t->len & 0x80) { - buf++; - t = (TEXT*)buf; - } - memcpy(dsname, t->data, t->len); - dsname[t->len] = 0; - strtok(dsname, " "); - break; - case SYSOUTK: /* DD SYSOUT= */ - memcpy(sysout, t->data, t->len); - sysout[t->len] = 0; - strtok(sysout, " "); - break; - case SYSINCTK: /* DD SYSIN number of records */ -#if 1 - *sysin = 1; -#else - memcpy(sysin, t->data, t->len); -#endif - break; - case SPACEK: /* SPACE 4702 03E3D9D2 83 01F1 01F1 01F1 :...TRKc.1.1.1...: */ - // wtodumpf(buf, 16, "SPACEK"); - buf += 3 + t->len; - continue; - case 0x83: /* SPACE lvlvlv */ - // wtodumpf(buf, 16, "0x83"); - buf += 7; - continue; - } - - /* move buf pointer to next key */ - for(buf+=2, n=0; n < t->count; n++) buf += (1 + buf[0]); - } - - // wtof("process_dd(%s,%s,%s)", ddname, dsname, sysout); - // wtof("%s: exit", __func__); - return 0; -} - -__asm__("\n&FUNC SETC 'process_sysout'"); -static int -process_sysout(JESDD **jesdd, const char *ddname, const char *dsname, const char *sysout, const char *stepname, const char *procstep) -{ - unsigned count = arraycount(&jesdd); - unsigned n; - const char *p; - unsigned short dsid; - - p = strrchr(dsname, '.'); - if (!p) goto quit; - - if (p[1] != 'S') goto quit; - if (p[2] != 'O') goto quit; - - dsid = (unsigned short) atoi(&p[3]); - if (!dsid) goto quit; -#if 1 - if (ddname[0]==0 || ddname[0]==' ') { - wtodumpf(ddname, 8, "process_sysout() null ddname for dsid=%d", dsid); - } -#endif - for(n=0; n < count; n++) { - JESDD *dd = jesdd[n]; - - if (!dd) continue; - if (dd->dsid == dsid) { - strcpy(dd->ddname, ddname); - strcpy(dd->stepname, stepname); - strcpy(dd->procstep, procstep); - strcpy(dd->dsname, dsname); - if (!dd->oclass) dd->oclass = sysout[0]; - dd->flag = FLAG_SYSOUT; - break; - } - } - -quit: - return 0; -} - -__asm__("\n&FUNC SETC 'process_sysin'"); -static int -process_sysin(JESDD **jesdd, const char *ddname, const char *dsname, const char *stepname, const char *procstep) -{ - unsigned count = arraycount(&jesdd); - unsigned n; - const char *p; - unsigned short dsid; - - p = strrchr(dsname, '.'); - if (!p) goto quit; - - if (p[1] != 'S') goto quit; - if (p[2] != 'I') goto quit; - - dsid = (unsigned short) atoi(&p[3]); - if (!dsid) goto quit; - -#if 1 - if (ddname[0]==0 || ddname[0]==' ') { - wtodumpf(ddname, 8, "process_sysin() null ddname for dsid=%d", dsid); - } -#endif - for(n=0; n < count; n++) { - JESDD *dd = jesdd[n]; - - if (!dd) continue; - if (dd->dsid == dsid) { - strcpy(dd->ddname, ddname); - strcpy(dd->stepname, stepname); - strcpy(dd->procstep, procstep); - strcpy(dd->dsname, dsname); - dd->flag = FLAG_SYSIN; - break; - } - } - -quit: - return 0; -} - -__asm__("\n&FUNC SETC 'is_dup_dsid'"); -static int -is_dup_dsid(JESDD **jesdd, unsigned dsid) -{ - unsigned count = arraycount(&jesdd); - unsigned n; - - for(n=0; n < count; n++) { - JESDD *dd = jesdd[n]; - - if (!dd) continue; - if (dd->dsid == dsid) return 1; - } - - return 0; -} diff --git a/src/crent370/jes/jesjob.o b/src/crent370/jes/jesjob.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/jes/jesjob.s b/src/crent370/jes/jesjob.s deleted file mode 100644 index 1dc3ab7..0000000 --- a/src/crent370/jes/jesjob.s +++ /dev/null @@ -1,2544 +0,0 @@ - TITLE '/home/projects/crent370/jes/jesjob.c' - COPY PDPTOP - CSECT -* Program text area -@@LC0 EQU * - DC C'Unable to allocate storage for %u byte buffer' - DC X'0' -@@LC1 EQU * - DC C'JOB' - DC X'0' -@@LC2 EQU * - DC C'TSU' - DC X'0' -@@LC3 EQU * - DC C'STC' - DC X'0' -@@LC4 EQU * - DC C'???' - DC X'0' -@@LC5 EQU * - DC C'%s%05u' - DC X'0' -@@LC6 EQU * - DC C' ' - DC X'0' -@@LC7 EQU * - DC C'SYSTEM' - DC X'0' -@@LC8 EQU * - DC C'Unable to allocate storage for %u byte JESJOB ha' - DC C'ndle' - DC X'0' -@@LC9 EQU * - DC C'*JESJOB' - DC X'0' - DS 0F - EJECT -* external function 'jesjob' prologue -* frame base=88, local stack=176, call args=24 -&FUNC SETC 'jesjob' -JESJOB PDPPRLG CINDEX=0,FRAME=288,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'jesjob' code - MVC 112(4,13),=F'0' - MVC 116(4,13),=F'0' - MVC 120(4,13),=F'0' - MVC 124(4,13),=F'0' - MVC 128(4,13),=F'0' - MVC 132(4,13),=F'0' - MVC 136(4,13),=F'0' - MVC 140(4,13),=F'0' - MVC 144(4,13),=F'0' - MVC 148(4,13),=F'0' - MVC 152(4,13),=F'0' - MVC 156(4,13),=F'0' - MVC 160(4,13),=F'0' - MVC 164(4,13),=F'0' - L 2,0(11) - LTR 2,2 - BNE @@L4 - L 14,=A(@@L5) - BR 14 -@@L4 EQU * - L 2,8(11) - LTR 2,2 - BE @@L6 - L 2,4(11) - LTR 2,2 - BE @@L6 - MVC 176(4,13),=F'0' -@@L7 EQU * - L 2,4(11) - A 2,176(13) - IC 2,0(2) - CLM 2,1,=XL1'00' - BE @@L8 - L 2,176(13) - LA 3,11(0,0) - CLR 2,3 - BNH @@L10 - B @@L8 -@@L10 EQU * - LA 3,72(0,0) - LA 2,112(,13) - A 2,176(13) - AR 3,2 - L 2,4(11) - A 2,176(13) - SLR 4,4 - IC 4,0(2) - LR 2,4 - ST 2,88(13) - LA 1,88(,13) - L 15,=V(TOUPPER) - BALR 14,15 - LR 2,15 - STC 2,0(3) - L 2,176(13) - A 2,=F'1' - ST 2,176(13) - B @@L7 -@@L8 EQU * - LA 3,72(0,0) - LA 2,112(,13) - A 2,176(13) - AR 2,3 - MVI 0(2),0 -@@L6 EQU * - L 2,0(11) - MVC 124(4,13),8(2) - L 2,124(13) - A 2,=F'20' - ST 2,132(13) - L 2,0(11) - L 2,12(2) - MVC 128(4,13),0(2) - MVC 88(4,13),=F'1' - L 2,132(13) - LH 2,176(2) - N 2,=XL4'0000FFFF' - MVC 268(4,13),=F'2' - L 4,264(13) - L 5,4+264(13) - MR 4,2 - ST 4,264(13) - ST 5,4+264(13) - MVC 92(4,13),268(13) - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 2,15 - ST 2,156(13) - L 2,156(13) - LTR 2,2 - BNE @@L12 - MVC 88(4,13),=A(@@LC0) - L 2,132(13) - LH 2,176(2) - N 2,=XL4'0000FFFF' - MVC 276(4,13),=F'2' - L 4,272(13) - L 5,4+272(13) - MR 4,2 - ST 4,272(13) - ST 5,4+272(13) - MVC 92(4,13),276(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - L 14,=A(@@L5) - BR 14 -@@L12 EQU * - MVC 160(4,13),156(13) - MVC 136(4,13),160(13) - L 2,132(13) - LH 2,176(2) - N 2,=XL4'0000FFFF' - A 2,160(13) - ST 2,164(13) - MVC 152(4,13),164(13) - L 2,132(13) - LH 2,176(2) - N 2,=XL4'0000FFFF' - A 2,164(13) - ST 2,144(13) - L 2,124(13) - MVC 148(4,13),240(2) -@@L13 EQU * - L 12,0(,10) - L 3,124(13) - L 2,148(13) - CL 2,244(3) - BL @@L16 - L 14,=A(@@L5) - BR 14 -@@L16 EQU * - L 2,148(13) - IC 2,1(2) - CLM 2,1,=XL1'FF' - BNE @@L17 - L 14,=A(@@L15) - BR 14 -@@L17 EQU * - L 2,148(13) - IC 2,1(2) - CLM 2,1,=XL1'00' - BNE @@L18 - L 14,=A(@@L15) - BR 14 -@@L18 EQU * - MVC 88(4,13),128(13) - L 2,148(13) - MVC 92(4,13),8(2) - MVC 96(4,13),160(13) - L 2,132(13) - LH 2,176(2) - N 2,=XL4'0000FFFF' - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@JSRD4) - BALR 14,15 - LR 2,15 - LTR 2,2 - BE @@L19 - L 14,=A(@@L15) - BR 14 -@@L19 EQU * - MVC 136(4,13),160(13) - L 2,136(13) - IC 2,58(2) - N 2,=F'-128' - CLM 2,1,=XL1'00' - BE @@L20 - MVC 168(4,13),=A(@@LC1) - B @@L21 -@@L20 EQU * - L 2,136(13) - IC 2,58(2) - N 2,=F'64' - CLM 2,1,=XL1'00' - BE @@L22 - MVC 168(4,13),=A(@@LC2) - B @@L21 -@@L22 EQU * - L 2,136(13) - IC 2,58(2) - N 2,=F'32' - CLM 2,1,=XL1'00' - BE @@L24 - MVC 168(4,13),=A(@@LC3) - B @@L21 -@@L24 EQU * - MVC 168(4,13),=A(@@LC4) -@@L21 EQU * - LA 2,200(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC5) - MVC 96(4,13),168(13) - L 2,148(13) - LH 2,2(2) - N 2,=XL4'0000FFFF' - ST 2,280(13) - L 2,280(13) - L 3,4+280(13) - SRDL 2,32 - ST 2,280(13) - ST 3,4+280(13) - L 4,280(13) - L 5,4+280(13) - L 2,=F'10000' - DR 4,2 - ST 4,280(13) - ST 5,4+280(13) - L 2,280(13) - N 2,=XL4'0000FFFF' - ST 2,100(13) - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - LA 2,216(,13) - ST 2,88(13) - MVC 92(4,13),=F'12' - L 2,148(13) - A 2,=F'20' - ST 2,96(13) - MVC 100(4,13),=F'8' - MVC 104(4,13),=F'0' - LA 1,88(,13) - L 15,=V(MEMCPYP) - BALR 14,15 - LA 2,216(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC6) - LA 1,88(,13) - L 15,=V(STRTOK) - BALR 14,15 - L 2,136(13) - IC 2,58(2) - N 2,=F'64' - CLM 2,1,=XL1'00' - BE @@L26 - LA 2,232(,13) - ST 2,88(13) - LA 2,216(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - B @@L27 -@@L26 EQU * - L 2,136(13) - IC 2,58(2) - N 2,=F'32' - CLM 2,1,=XL1'00' - BE @@L28 - LA 2,232(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC7) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - B @@L27 -@@L28 EQU * - LA 2,232(,13) - ST 2,88(13) - MVC 92(4,13),=F'12' - L 2,136(13) - A 2,=F'440' - ST 2,96(13) - MVC 100(4,13),=F'8' - MVC 104(4,13),=F'0' - LA 1,88(,13) - L 15,=V(MEMCPYP) - BALR 14,15 - IC 2,232(13) - CLM 2,1,=XL1'40' - BNH @@L30 - LA 2,232(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC6) - LA 1,88(,13) - L 15,=V(STRTOK) - BALR 14,15 - B @@L27 -@@L30 EQU * - MVI 232(13),0 -@@L27 EQU * - L 2,8(11) - LTR 2,2 - BE @@L32 - L 2,4(11) - LTR 2,2 - BE @@L32 - L 2,8(11) - LA 3,1(0,0) - CLR 2,3 - BNE @@L33 - LA 2,216(,13) - ST 2,88(13) - LA 2,184(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@PATMAT) - BALR 14,15 - LR 2,15 - LTR 2,2 - BNE @@L32 - L 14,=A(@@L15) - BR 14 -@@L33 EQU * - L 2,8(11) - LA 4,2(0,0) - CLR 2,4 - BNE @@L32 - LA 2,200(,13) - ST 2,88(13) - LA 2,184(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@PATMAT) - BALR 14,15 - LR 2,15 - LTR 2,2 - BNE @@L32 - L 14,=A(@@L15) - BR 14 -@@L32 EQU * - MVC 88(4,13),=F'1' - MVC 92(4,13),=F'80' - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 2,15 - ST 2,116(13) - L 2,116(13) - LTR 2,2 - BNE @@L38 - MVC 88(4,13),=A(@@LC8) - MVC 92(4,13),=F'80' - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - L 14,=A(@@L5) - BR 14 -@@L38 EQU * - LA 2,112(,13) - ST 2,88(13) - MVC 92(4,13),116(13) - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - MVC 88(4,13),116(13) - MVC 92(4,13),=A(@@LC9) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - L 2,116(13) - A 2,=F'8' - ST 2,88(13) - MVC 92(4,13),=F'9' - LA 2,216(,13) - ST 2,96(13) - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(STRCPYP) - BALR 14,15 - L 2,116(13) - A 2,=F'17' - ST 2,88(13) - MVC 92(4,13),=F'9' - LA 2,200(,13) - ST 2,96(13) - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(STRCPYP) - BALR 14,15 - L 2,116(13) - A 2,=F'26' - ST 2,88(13) - MVC 92(4,13),=F'9' - LA 2,232(,13) - ST 2,96(13) - MVC 100(4,13),=F'0' - LA 1,88(,13) - L 15,=V(STRCPYP) - BALR 14,15 - L 3,116(13) - L 2,136(13) - MVC 35(1,3),451(2) - L 3,116(13) - L 2,136(13) - MVC 36(1,3),99(2) - L 3,116(13) - L 2,148(13) - MVC 37(1,3),1(2) - L 3,116(13) - L 2,148(13) - MVC 38(1,3),4(2) - L 3,116(13) - L 2,148(13) - MVC 39(1,3),5(2) - L 3,116(13) - L 2,136(13) - MVC 40(4,3),16(2) - L 3,116(13) - L 2,136(13) - MVC 44(4,3),12(2) - L 3,116(13) - L 2,136(13) - MVC 88(4,13),184(2) - L 2,136(13) - MVC 92(4,13),188(2) - LR 2,3 - A 2,=F'56' - LR 0,2 - LA 1,88(,13) - L 15,=A(@@2) - BALR 14,15 - L 3,116(13) - L 2,136(13) - MVC 88(4,13),192(2) - L 2,136(13) - MVC 92(4,13),196(2) - LR 2,3 - A 2,=F'64' - LR 0,2 - LA 1,88(,13) - L 15,=A(@@2) - BALR 14,15 - L 3,116(13) - L 2,136(13) - MVC 72(4,3),8(2) - L 2,12(11) - LTR 2,2 - BE @@L39 - L 2,136(13) - MVC 172(4,13),16(2) -@@L40 EQU * - L 2,172(13) - LTR 2,2 - BNE @@L43 - B @@L41 -@@L43 EQU * - MVC 88(4,13),128(13) - MVC 92(4,13),172(13) - MVC 96(4,13),164(13) - L 2,132(13) - LH 2,176(2) - N 2,=XL4'0000FFFF' - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@JSRD4) - BALR 14,15 - MVC 176(4,13),=F'0' - L 2,124(13) - L 5,164(13) - A 5,224(2) - LR 2,5 - ST 2,140(13) -@@L44 EQU * - L 2,140(13) - CL 2,144(13) - BL @@L47 - B @@L42 -@@L47 EQU * - L 2,140(13) - LH 2,8(2) - CH 2,=H'0' - BNE @@L48 - B @@L42 -@@L48 EQU * - L 2,140(13) - L 2,4(2) - LTR 2,2 - BNE @@L49 - B @@L46 -@@L49 EQU * - L 2,116(13) - MVC 88(4,13),48(2) - L 2,140(13) - LH 2,8(2) - N 2,=XL4'0000FFFF' - ST 2,92(13) - LA 1,88(,13) - L 15,=A(@@3) - BALR 14,15 - LR 2,15 - LTR 2,2 - BE @@L50 - B @@L46 -@@L50 EQU * - MVC 88(4,13),140(13) - MVC 92(4,13),116(13) - LA 1,88(,13) - L 15,=A(@@4) - BALR 14,15 - LR 2,15 - ST 2,120(13) - L 2,120(13) - LTR 2,2 - BNE @@L46 - L 14,=A(@@L5) - BR 14 -@@L46 EQU * - L 2,176(13) - A 2,=F'1' - ST 2,176(13) - L 2,140(13) - A 2,=F'104' - ST 2,140(13) - B @@L44 -@@L42 EQU * - L 2,152(13) - MVC 172(4,13),16(2) - B @@L40 -@@L41 EQU * - L 2,136(13) - MVC 172(4,13),12(2) -@@L52 EQU * - L 2,172(13) - LTR 2,2 - BNE @@L55 - B @@L39 -@@L55 EQU * - MVC 88(4,13),128(13) - MVC 92(4,13),172(13) - MVC 96(4,13),164(13) - L 2,132(13) - LH 2,176(2) - N 2,=XL4'0000FFFF' - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@JSRD4) - BALR 14,15 - MVC 176(4,13),=F'0' - L 2,124(13) - L 3,164(13) - A 3,224(2) - LR 2,3 - ST 2,140(13) -@@L56 EQU * - L 2,140(13) - CL 2,144(13) - BL @@L59 - B @@L54 -@@L59 EQU * - L 2,140(13) - LH 2,8(2) - CH 2,=H'0' - BNE @@L60 - B @@L54 -@@L60 EQU * - L 2,140(13) - L 2,4(2) - LTR 2,2 - BNE @@L61 - B @@L58 -@@L61 EQU * - L 2,116(13) - MVC 88(4,13),48(2) - L 2,140(13) - LH 2,8(2) - N 2,=XL4'0000FFFF' - ST 2,92(13) - LA 1,88(,13) - L 15,=A(@@3) - BALR 14,15 - LR 2,15 - LTR 2,2 - BE @@L62 - B @@L58 -@@L62 EQU * - MVC 88(4,13),140(13) - MVC 92(4,13),116(13) - LA 1,88(,13) - L 15,=A(@@4) - BALR 14,15 - LR 2,15 - ST 2,120(13) - L 2,120(13) - LTR 2,2 - BNE @@L58 - L 14,=A(@@L5) - BR 14 -@@L58 EQU * - L 2,176(13) - A 2,=F'1' - ST 2,176(13) - L 2,140(13) - A 2,=F'104' - ST 2,140(13) - B @@L56 -@@L54 EQU * - L 2,152(13) - MVC 172(4,13),16(2) - B @@L52 -@@L39 EQU * - L 2,12(11) - LTR 2,2 - BNE @@L65 - L 2,136(13) - IC 2,58(2) - N 2,=F'-128' - CLM 2,1,=XL1'00' - BNE @@L65 - B @@L64 -@@L65 EQU * - MVC 180(4,13),=F'0' - L 2,136(13) - MVC 172(4,13),16(2) -@@L66 EQU * - L 2,172(13) - LTR 2,2 - BNE @@L69 - B @@L64 -@@L69 EQU * - MVC 88(4,13),128(13) - MVC 92(4,13),172(13) - MVC 96(4,13),164(13) - L 2,132(13) - LH 2,176(2) - N 2,=XL4'0000FFFF' - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@JSRD4) - BALR 14,15 - MVC 172(4,13),=F'0' - MVC 176(4,13),=F'0' - L 2,124(13) - L 4,164(13) - A 4,224(2) - LR 2,4 - ST 2,140(13) -@@L70 EQU * - L 2,140(13) - CL 2,144(13) - BL @@L73 - B @@L71 -@@L73 EQU * - L 2,140(13) - LH 2,8(2) - CLM 2,3,=H'5' - BE @@L74 - B @@L72 -@@L74 EQU * - MVC 88(4,13),0(11) - MVC 92(4,13),148(13) - MVC 96(4,13),136(13) - L 2,140(13) - MVC 100(4,13),4(2) - MVC 104(4,13),116(13) - LA 1,88(,13) - L 15,=A(@@5) - BALR 14,15 - LR 2,15 - ST 2,180(13) - B @@L71 -@@L72 EQU * - L 2,176(13) - A 2,=F'1' - ST 2,176(13) - L 2,140(13) - A 2,=F'104' - ST 2,140(13) - B @@L70 -@@L71 EQU * - L 2,180(13) - LTR 2,2 - BE @@L68 - B @@L64 -@@L68 EQU * - L 2,152(13) - MVC 172(4,13),16(2) - B @@L66 -@@L64 EQU * - L 2,116(13) - L 2,48(2) - LTR 2,2 - L 14,=A(@@L15) - BER 14 - L 2,116(13) - A 2,=F'48' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 2,15 - ST 2,248(13) - MVC 252(4,13),=F'0' -@@L77 EQU * - L 2,252(13) - CL 2,248(13) - BL @@L80 - B @@L78 -@@L80 EQU * - L 3,116(13) - L 2,252(13) - MH 2,=H'4' - A 2,48(3) - MVC 256(4,13),0(2) - L 2,256(13) - LTR 2,2 - BNE @@L81 - B @@L79 -@@L81 EQU * - L 2,256(13) - IC 2,8(2) - CLM 2,1,=XL1'00' - BE @@L83 - L 2,256(13) - IC 2,8(2) - CLM 2,1,=XL1'40' - BE @@L83 - B @@L79 -@@L83 EQU * - L 2,116(13) - A 2,=F'48' - ST 2,88(13) - L 2,252(13) - A 2,=F'1' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@ARDEL) - BALR 14,15 - MVC 88(4,13),256(13) - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - L 2,248(13) - BCTR 2,0 - ST 2,248(13) -@@L79 EQU * - L 2,252(13) - A 2,=F'1' - ST 2,252(13) - B @@L77 -@@L78 EQU * - L 2,116(13) - A 2,=F'48' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 2,15 - ST 2,248(13) - L 2,248(13) - LA 5,1(0,0) - CLR 2,5 - BNH @@L15 - L 2,116(13) - MVC 88(4,13),48(2) - MVC 92(4,13),248(13) - MVC 96(4,13),=F'4' - MVC 100(4,13),=A(@@6) - LA 1,88(,13) - L 15,=V(QSORT) - BALR 14,15 -@@L15 EQU * - L 2,148(13) - A 2,=F'28' - ST 2,148(13) - B @@L13 -@@L5 EQU * - L 2,156(13) - LTR 2,2 - BE @@L85 - MVC 88(4,13),156(13) - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L85 EQU * - L 2,112(13) - LR 15,2 -* Function 'jesjob' epilogue - PDPEPIL -* Function 'jesjob' literal pool - DS 0D - LTORG -* Function 'jesjob' page table -@@PGT0 DS 0F - DC A(@@PG0) - -&FUNC SETC 'dsid_comp' - DS 0F - EJECT -* static function 'dsid_comp' prologue -* frame base=88, local stack=8, call args=0 -&FUNC SETC 'dsid_comp' -@@6 PDPPRLG CINDEX=1,FRAME=96,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'dsid_comp' code - L 2,0(11) - MVC 88(4,13),0(2) - L 2,4(11) - MVC 92(4,13),0(2) - L 2,88(13) - LH 2,94(2) - N 2,=XL4'0000FFFF' - L 3,92(13) - LH 3,94(3) - N 3,=XL4'0000FFFF' - SR 2,3 - LR 15,2 -* Function 'dsid_comp' epilogue - PDPEPIL -* Function 'dsid_comp' literal pool - DS 0D - LTORG -* Function 'dsid_comp' page table -@@PGT1 DS 0F - DC A(@@PG1) - -&FUNC SETC 'process_pddb' -@@LC10 EQU * - DC C'Unable to allocate storage for %u byte JESDD han' - DC C'dle' - DC X'0' -@@LC11 EQU * - DC C'*JESDD*' - DC X'0' -@@LC12 EQU * - DC C'JESJCLIN' - DC X'0' -@@LC13 EQU * - DC C'JES2.%s.SI%04u' - DC X'0' -@@LC14 EQU * - DC C'JESMSGLG' - DC X'0' -@@LC15 EQU * - DC C'JES2.%s.SO%04u' - DC X'0' -@@LC16 EQU * - DC C'JESJCL' - DC X'0' -@@LC17 EQU * - DC C'JESYSMSG' - DC X'0' -@@LC18 EQU * - DC C'JESINTXT' - DC X'0' -@@LC19 EQU * - DC C'JESJRNL' - DC X'0' - DS 0F - EJECT -* static function 'process_pddb' prologue -* frame base=88, local stack=8, call args=24 -&FUNC SETC 'process_pddb' -@@4 PDPPRLG CINDEX=2,FRAME=120,BASER=12,ENTRY=NO - B @@FEN2 - LTORG -@@FEN2 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG2 EQU * - LR 11,1 - L 10,=A(@@PGT2) -* Function 'process_pddb' code - MVC 88(4,13),=F'1' - MVC 92(4,13),=F'96' - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 2,15 - ST 2,112(13) - L 2,112(13) - LTR 2,2 - BNE @@L88 - MVC 88(4,13),=A(@@LC10) - MVC 92(4,13),=F'96' - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - B @@L89 -@@L88 EQU * - L 2,4(11) - A 2,=F'48' - ST 2,88(13) - MVC 92(4,13),112(13) - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - MVC 88(4,13),112(13) - MVC 92(4,13),=A(@@LC11) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - L 2,112(13) - A 2,=F'8' - ST 2,88(13) - MVC 92(4,13),=F'9' - L 2,0(11) - A 2,=F'36' - ST 2,96(13) - MVC 100(4,13),=F'8' - MVC 104(4,13),=F'0' - LA 1,88(,13) - L 15,=V(MEMCPYP) - BALR 14,15 - L 2,112(13) - A 2,=F'8' - ST 2,88(13) - MVC 92(4,13),=A(@@LC6) - LA 1,88(,13) - L 15,=V(STRTOK) - BALR 14,15 - L 2,0(11) - LH 2,8(2) - N 2,=XL4'0000FFFF' - ST 2,116(13) - L 3,116(13) - LA 2,6(0,0) - CLR 3,2 - BH @@L90 - L 2,=A(@@L97) - L 3,116(13) - MH 3,=H'4' - L 2,0(3,2) - BR 2 - DS 0F - DS 0F - DS 0F - LTORG - DS 0F -@@L97 EQU * - DC A(@@L90) - DC A(@@L91) - DC A(@@L92) - DC A(@@L93) - DC A(@@L94) - DC A(@@L95) - DC A(@@L96) -@@L91 EQU * - L 2,112(13) - A 2,=F'8' - ST 2,88(13) - MVC 92(4,13),=A(@@LC12) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - L 2,112(13) - A 2,=F'35' - ST 2,88(13) - MVC 92(4,13),=A(@@LC13) - L 2,4(11) - A 2,=F'17' - ST 2,96(13) - L 2,0(11) - LH 2,8(2) - N 2,=XL4'0000FFFF' - ST 2,100(13) - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - L 2,112(13) - MVI 82(2),160 - B @@L90 -@@L92 EQU * - L 2,112(13) - A 2,=F'8' - ST 2,88(13) - MVC 92(4,13),=A(@@LC14) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - L 2,112(13) - A 2,=F'35' - ST 2,88(13) - MVC 92(4,13),=A(@@LC15) - L 2,4(11) - A 2,=F'17' - ST 2,96(13) - L 2,0(11) - LH 2,8(2) - N 2,=XL4'0000FFFF' - ST 2,100(13) - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - L 2,112(13) - MVI 82(2),192 - B @@L90 -@@L93 EQU * - L 2,112(13) - A 2,=F'8' - ST 2,88(13) - MVC 92(4,13),=A(@@LC16) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - L 2,112(13) - A 2,=F'35' - ST 2,88(13) - MVC 92(4,13),=A(@@LC15) - L 2,4(11) - A 2,=F'17' - ST 2,96(13) - L 2,0(11) - LH 2,8(2) - N 2,=XL4'0000FFFF' - ST 2,100(13) - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - L 2,112(13) - MVI 82(2),192 - B @@L90 -@@L94 EQU * - L 2,112(13) - A 2,=F'8' - ST 2,88(13) - MVC 92(4,13),=A(@@LC17) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - L 2,112(13) - A 2,=F'35' - ST 2,88(13) - MVC 92(4,13),=A(@@LC15) - L 2,4(11) - A 2,=F'17' - ST 2,96(13) - L 2,0(11) - LH 2,8(2) - N 2,=XL4'0000FFFF' - ST 2,100(13) - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - L 2,112(13) - MVI 82(2),192 - B @@L90 -@@L95 EQU * - L 2,112(13) - A 2,=F'8' - ST 2,88(13) - MVC 92(4,13),=A(@@LC18) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - L 2,112(13) - A 2,=F'35' - ST 2,88(13) - MVC 92(4,13),=A(@@LC13) - L 2,4(11) - A 2,=F'17' - ST 2,96(13) - L 2,0(11) - LH 2,8(2) - N 2,=XL4'0000FFFF' - ST 2,100(13) - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - L 2,112(13) - MVI 82(2),160 - B @@L90 -@@L96 EQU * - L 2,112(13) - A 2,=F'8' - ST 2,88(13) - MVC 92(4,13),=A(@@LC19) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - L 2,112(13) - A 2,=F'35' - ST 2,88(13) - MVC 92(4,13),=A(@@LC13) - L 2,4(11) - A 2,=F'17' - ST 2,96(13) - L 2,0(11) - LH 2,8(2) - N 2,=XL4'0000FFFF' - ST 2,100(13) - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - L 2,112(13) - MVI 82(2),160 -@@L90 EQU * - L 3,112(13) - L 2,0(11) - MVC 80(1,3),10(2) - L 3,112(13) - L 2,0(11) - MVC 81(1,3),1(2) - L 3,112(13) - L 2,0(11) - MVC 84(4,3),4(2) - L 3,112(13) - L 2,0(11) - MVC 88(4,3),20(2) - L 3,112(13) - L 2,0(11) - MVC 92(2,3),2(2) - L 3,112(13) - L 2,0(11) - MVC 94(2,3),8(2) -@@L89 EQU * - L 2,112(13) - LR 15,2 -* Function 'process_pddb' epilogue - PDPEPIL -* Function 'process_pddb' literal pool - DS 0D - LTORG -* Function 'process_pddb' page table -@@PGT2 DS 0F - DC A(@@PG2) - -&FUNC SETC 'make_time' -@@LC20 EQU * - DC C'%X' - DC X'0' - DS 0F - EJECT -* static function 'make_time' prologue -* frame base=88, local stack=112, call args=16 -&FUNC SETC 'make_time' -@@2 PDPPRLG CINDEX=3,FRAME=216,BASER=12,ENTRY=NO - B @@FEN3 - LTORG -@@FEN3 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG3 EQU * - LR 11,1 - L 10,=A(@@PGT3) -* Function 'make_time' code - ST 0,184(13) - MVC 112(4,13),=F'0' - MVC 116(4,13),=F'0' - LA 2,120(,13) - ST 2,192(13) - MVC 196(4,13),=F'36' - MVC 200(4,13),=F'0' - MVC 204(4,13),=F'0' - L 2,192(13) - L 3,4+192(13) - L 4,200(13) - L 5,4+200(13) - MVCL 2,4 - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64INIT) - BALR 14,15 - L 2,0(11) - LTR 2,2 - BNE @@L100 - B @@L101 -@@L100 EQU * - L 2,4(11) - LTR 2,2 - BNE @@L102 - B @@L101 -@@L102 EQU * - L 2,0(11) - ST 2,208(13) - L 2,208(13) - L 3,4+208(13) - SRDL 2,32 - ST 2,208(13) - ST 3,4+208(13) - L 4,208(13) - L 5,4+208(13) - LA 2,100(0,0) - DR 4,2 - ST 4,208(13) - ST 5,4+208(13) - L 2,212(13) - ST 2,120(13) - L 2,4(11) - SRL 2,16 - ST 2,112(13) - LA 2,160(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC20) - MVC 96(4,13),112(13) - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - LA 2,160(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(ATOI) - BALR 14,15 - ST 15,112(13) - MVC 140(4,13),112(13) - L 2,4(11) - N 2,=F'65535' - SRL 2,4 - ST 2,116(13) - LA 2,160(,13) - ST 2,88(13) - MVC 92(4,13),=A(@@LC20) - MVC 96(4,13),116(13) - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - LA 2,160(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(ATOI) - BALR 14,15 - ST 15,116(13) - MVC 132(4,13),116(13) - MVC 152(4,13),=F'-1' - LA 2,120(,13) - ST 2,88(13) - LA 0,104(,13) - LA 1,88(,13) - L 15,=V(TM64MKT) - BALR 14,15 - L 2,104(13) - L 3,=F'-1' - CLR 2,3 - BNE @@L101 - L 2,108(13) - L 4,=F'-1' - CLR 2,4 - BNE @@L101 - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64INIT) - BALR 14,15 -@@L101 EQU * - L 5,184(13) - MVC 0(8,5),104(13) - L 15,184(13) -* Function 'make_time' epilogue - PDPEPIL -* Function 'make_time' literal pool - DS 0D - LTORG -* Function 'make_time' page table -@@PGT3 DS 0F - DC A(@@PG3) - -&FUNC SETC 'process_intxt' -@@LC21 EQU * - DC X'0' - DC 11X'00' -@@LC22 EQU * - DC X'0' - DC 7X'00' - DS 0F - EJECT -* static function 'process_intxt' prologue -* frame base=88, local stack=336, call args=24 -&FUNC SETC 'process_intxt' -@@5 PDPPRLG CINDEX=4,FRAME=448,BASER=12,ENTRY=NO - B @@FEN4 - LTORG -@@FEN4 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG4 EQU * - LR 11,1 - L 10,=A(@@PGT4) -* Function 'process_intxt' code - L 2,0(11) - MVC 112(4,13),8(2) - L 2,0(11) - L 2,12(2) - MVC 116(4,13),0(2) - L 2,112(13) - A 2,=F'20' - ST 2,120(13) - MVC 124(4,13),=F'0' - MVC 128(4,13),=F'0' - L 2,16(11) - MVC 132(4,13),48(2) - LA 2,132(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 2,15 - ST 2,136(13) - L 2,=A(@@LC21) - MVC 160(1,13),0(2) - LA 2,161(,13) - ST 2,328(13) - MVC 332(4,13),=F'11' - MVC 336(4,13),=F'0' - MVC 340(4,13),=F'0' - L 2,328(13) - L 3,4+328(13) - L 4,336(13) - L 5,4+336(13) - MVCL 2,4 - L 2,=A(@@LC21) - MVC 176(1,13),0(2) - LA 2,177(,13) - ST 2,344(13) - MVC 348(4,13),=F'11' - MVC 352(4,13),=F'0' - MVC 356(4,13),=F'0' - L 2,344(13) - L 3,4+344(13) - L 4,352(13) - L 5,4+352(13) - MVCL 2,4 - L 2,=A(@@LC21) - MVC 192(1,13),0(2) - LA 2,193(,13) - ST 2,360(13) - MVC 364(4,13),=F'11' - MVC 368(4,13),=F'0' - MVC 372(4,13),=F'0' - L 2,360(13) - L 3,4+360(13) - L 4,368(13) - L 5,4+368(13) - MVCL 2,4 - L 2,=A(@@LC21) - MVC 208(1,13),0(2) - LA 2,209(,13) - ST 2,376(13) - MVC 380(4,13),=F'11' - MVC 384(4,13),=F'0' - MVC 388(4,13),=F'0' - L 2,376(13) - L 3,4+376(13) - L 4,384(13) - L 5,4+384(13) - MVCL 2,4 - L 2,=A(@@LC21) - MVC 224(1,13),0(2) - LA 2,225(,13) - ST 2,392(13) - MVC 396(4,13),=F'11' - MVC 400(4,13),=F'0' - MVC 404(4,13),=F'0' - L 2,392(13) - L 3,4+392(13) - L 4,400(13) - L 5,4+400(13) - MVCL 2,4 - L 2,=A(@@LC21) - MVC 240(1,13),0(2) - LA 2,241(,13) - ST 2,408(13) - MVC 412(4,13),=F'11' - MVC 416(4,13),=F'0' - MVC 420(4,13),=F'0' - L 2,408(13) - L 3,4+408(13) - L 4,416(13) - L 5,4+416(13) - MVCL 2,4 - L 2,=A(@@LC21) - MVC 256(1,13),0(2) - LA 2,257(,13) - ST 2,424(13) - MVC 428(4,13),=F'55' - MVC 432(4,13),=F'0' - MVC 436(4,13),=F'0' - L 2,424(13) - L 3,4+424(13) - L 4,432(13) - L 5,4+432(13) - MVCL 2,4 - L 2,=A(@@LC22) - MVC 312(8,13),0(2) - MVC 88(4,13),=F'1' - L 2,120(13) - LH 2,176(2) - N 2,=XL4'0000FFFF' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 2,15 - ST 2,124(13) - L 2,124(13) - LTR 2,2 - BNE @@L105 - B @@L106 -@@L105 EQU * - MVC 144(4,13),12(11) -@@L107 EQU * - L 2,144(13) - LTR 2,2 - BNE @@L110 - B @@L106 -@@L110 EQU * - MVC 88(4,13),116(13) - MVC 92(4,13),144(13) - MVC 96(4,13),124(13) - L 2,120(13) - LH 2,176(2) - N 2,=XL4'0000FFFF' - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@JSRD4) - BALR 14,15 - MVC 156(4,13),124(13) - L 2,156(13) - L 3,8(11) - L 2,4(2) - CL 2,8(3) - BE @@L111 - B @@L106 -@@L111 EQU * - L 2,156(13) - LH 2,8(2) - CLM 2,3,=H'5' - BE @@L112 - B @@L106 -@@L112 EQU * - L 2,156(13) - A 2,=F'13' - ST 2,148(13) - L 2,120(13) - LH 2,176(2) - N 2,=XL4'0000FFFF' - A 2,124(13) - BCTR 2,0 - ST 2,152(13) -@@L113 EQU * - L 2,148(13) - CL 2,152(13) - BL @@L115 - B @@L109 -@@L115 EQU * - MVC 128(4,13),148(13) - L 2,128(13) - LH 2,0(2) - CH 2,=H'0' - BNE @@L116 - B @@L109 -@@L116 EQU * - L 2,128(13) - IC 2,2(2) - N 2,=F'15' - LR 5,2 - N 5,=XL4'000000FF' - ST 5,440(13) - L 3,440(13) - LA 2,2(0,0) - CR 3,2 - BE @@L121 - L 5,440(13) - LA 4,2(0,0) - CR 5,4 - BH @@L128 - L 3,440(13) - LA 2,1(0,0) - CLR 3,2 - BE @@L118 - B @@L117 -@@L128 EQU * - L 5,440(13) - LA 4,4(0,0) - CLR 5,4 - BE @@L122 - L 3,440(13) - LA 2,8(0,0) - CLR 3,2 - BE @@L125 - B @@L117 -@@L118 EQU * - MVC 88(4,13),148(13) - LA 2,160(,13) - ST 2,92(13) - LA 2,176(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=A(@@7) - BALR 14,15 - IC 2,176(13) - CLM 2,1,=XL1'00' - BE @@L119 - L 2,16(11) - A 2,=F'26' - ST 2,88(13) - LA 2,176(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 -@@L119 EQU * - L 2,136(13) - LTR 2,2 - BNE @@L117 - B @@L106 -@@L121 EQU * - MVC 88(4,13),148(13) - LA 2,192(,13) - ST 2,92(13) - LA 2,208(,13) - ST 2,96(13) - LA 2,224(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=A(@@8) - BALR 14,15 - B @@L117 -@@L122 EQU * - MVC 88(4,13),148(13) - LA 2,240(,13) - ST 2,92(13) - LA 2,256(,13) - ST 2,96(13) - LA 2,312(,13) - ST 2,100(13) - LA 2,320(,13) - ST 2,104(13) - LA 1,88(,13) - L 15,=A(@@9) - BALR 14,15 - IC 2,312(13) - CLM 2,1,=XL1'00' - BE @@L123 - L 2,16(11) - MVC 88(4,13),48(2) - LA 2,240(,13) - ST 2,92(13) - LA 2,256(,13) - ST 2,96(13) - LA 2,312(,13) - ST 2,100(13) - LA 2,192(,13) - ST 2,104(13) - LA 2,208(,13) - ST 2,108(13) - LA 1,88(,13) - L 15,=A(@@10) - BALR 14,15 -@@L123 EQU * - L 2,320(13) - LTR 2,2 - BE @@L117 - L 2,16(11) - MVC 88(4,13),48(2) - LA 2,240(,13) - ST 2,92(13) - LA 2,256(,13) - ST 2,96(13) - LA 2,192(,13) - ST 2,100(13) - LA 2,208(,13) - ST 2,104(13) - LA 1,88(,13) - L 15,=A(@@11) - BALR 14,15 - B @@L117 -@@L125 EQU * - MVC 88(4,13),148(13) - LA 2,208(,13) - ST 2,92(13) - LA 2,224(,13) - ST 2,96(13) - LA 2,224(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=A(@@8) - BALR 14,15 -@@L117 EQU * - L 2,128(13) - LH 2,0(2) - N 2,=XL4'0000FFFF' - A 2,148(13) - A 2,=F'3' - ST 2,148(13) - B @@L113 -@@L109 EQU * - L 2,156(13) - MVC 144(4,13),0(2) - B @@L107 -@@L106 EQU * - L 2,124(13) - LTR 2,2 - BE @@L129 - MVC 88(4,13),124(13) - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L129 EQU * - L 2,136(13) - LR 15,2 -* Function 'process_intxt' epilogue - PDPEPIL -* Function 'process_intxt' literal pool - DS 0D - LTORG -* Function 'process_intxt' page table -@@PGT4 DS 0F - DC A(@@PG4) - -&FUNC SETC 'process_job' - DS 0F - EJECT -* static function 'process_job' prologue -* frame base=88, local stack=24, call args=16 -&FUNC SETC 'process_job' -@@7 PDPPRLG CINDEX=5,FRAME=128,BASER=12,ENTRY=NO - B @@FEN5 - LTORG -@@FEN5 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG5 EQU * - LR 11,1 - L 10,=A(@@PGT5) -* Function 'process_job' code - MVC 104(4,13),0(11) - L 2,104(13) - A 2,=F'6' - ST 2,0(11) - L 2,4(11) - MVI 0(2),0 - L 2,8(11) - MVI 0(2),0 - MVC 108(4,13),0(11) -@@L131 EQU * - L 2,108(13) - IC 2,0(2) - CLM 2,1,=XL1'00' - BE @@L132 - L 2,108(13) - IC 2,0(2) - CLM 2,1,=XL1'FE' - BNE @@L134 - B @@L132 -@@L134 EQU * - L 2,108(13) - IC 2,2(2) - N 2,=F'127' - N 2,=XL4'000000FF' - ST 2,116(13) - L 2,108(13) - SLR 3,3 - IC 3,0(2) - ST 3,120(13) - L 3,120(13) - LA 2,165(0,0) - CLR 3,2 - BE @@L137 - L 3,120(13) - LA 2,180(0,0) - CLR 3,2 - BE @@L138 - B @@L136 -@@L137 EQU * - MVC 88(4,13),8(11) - L 2,108(13) - A 2,=F'3' - ST 2,92(13) - MVC 96(4,13),116(13) - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - L 2,8(11) - A 2,116(13) - MVI 0(2),0 - MVC 88(4,13),8(11) - MVC 92(4,13),=A(@@LC6) - LA 1,88(,13) - L 15,=V(STRTOK) - BALR 14,15 - B @@L136 -@@L138 EQU * - MVC 88(4,13),4(11) - L 2,108(13) - A 2,=F'3' - ST 2,92(13) - MVC 96(4,13),116(13) - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - L 2,4(11) - A 2,116(13) - MVI 0(2),0 - MVC 88(4,13),4(11) - MVC 92(4,13),=A(@@LC6) - LA 1,88(,13) - L 15,=V(STRTOK) - BALR 14,15 -@@L136 EQU * - L 2,0(11) - A 2,=F'2' - ST 2,0(11) - MVC 112(4,13),=F'0' -@@L141 EQU * - L 2,108(13) - SLR 3,3 - IC 3,1(2) - L 2,112(13) - CLR 2,3 - BL @@L144 - B @@L133 -@@L144 EQU * - L 2,0(11) - IC 2,0(2) - N 2,=F'127' - N 2,=XL4'000000FF' - A 2,0(11) - A 2,=F'1' - ST 2,0(11) - L 2,112(13) - A 2,=F'1' - ST 2,112(13) - B @@L141 -@@L133 EQU * - MVC 108(4,13),0(11) - B @@L131 -@@L132 EQU * - SLR 2,2 - LR 15,2 -* Function 'process_job' epilogue - PDPEPIL -* Function 'process_job' literal pool - DS 0D - LTORG -* Function 'process_job' page table -@@PGT5 DS 0F - DC A(@@PG5) - -&FUNC SETC 'process_exec' - DS 0F - EJECT -* static function 'process_exec' prologue -* frame base=88, local stack=24, call args=16 -&FUNC SETC 'process_exec' -@@8 PDPPRLG CINDEX=6,FRAME=128,BASER=12,ENTRY=NO - B @@FEN6 - LTORG -@@FEN6 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG6 EQU * - LR 11,1 - L 10,=A(@@PGT6) -* Function 'process_exec' code - MVC 104(4,13),0(11) - L 2,104(13) - A 2,=F'4' - ST 2,0(11) - L 2,4(11) - MVI 0(2),0 - MVC 108(4,13),0(11) -@@L146 EQU * - L 2,108(13) - IC 2,0(2) - CLM 2,1,=XL1'00' - BE @@L147 - L 2,108(13) - IC 2,0(2) - CLM 2,1,=XL1'FE' - BNE @@L149 - B @@L147 -@@L149 EQU * - L 2,108(13) - IC 2,2(2) - N 2,=F'127' - N 2,=XL4'000000FF' - ST 2,116(13) - L 2,108(13) - SLR 3,3 - IC 3,0(2) - ST 3,120(13) - L 3,120(13) - LA 2,139(0,0) - CR 3,2 - BE @@L153 - L 3,120(13) - LA 2,139(0,0) - CR 3,2 - BH @@L157 - L 3,120(13) - LA 2,138(0,0) - CLR 3,2 - BE @@L152 - B @@L151 -@@L157 EQU * - L 3,120(13) - LA 2,148(0,0) - CLR 3,2 - BE @@L154 - B @@L151 -@@L152 EQU * - MVC 88(4,13),12(11) - L 2,108(13) - A 2,=F'3' - ST 2,92(13) - MVC 96(4,13),116(13) - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - L 2,12(11) - A 2,116(13) - MVI 0(2),0 - MVC 88(4,13),12(11) - MVC 92(4,13),=A(@@LC6) - LA 1,88(,13) - L 15,=V(STRTOK) - BALR 14,15 - B @@L151 -@@L153 EQU * - L 2,12(11) - MVI 0(2),0 - MVC 88(4,13),8(11) - L 2,108(13) - A 2,=F'3' - ST 2,92(13) - MVC 96(4,13),116(13) - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - L 2,8(11) - A 2,116(13) - MVI 0(2),0 - MVC 88(4,13),8(11) - MVC 92(4,13),=A(@@LC6) - LA 1,88(,13) - L 15,=V(STRTOK) - BALR 14,15 - B @@L151 -@@L154 EQU * - MVC 88(4,13),4(11) - L 2,108(13) - A 2,=F'3' - ST 2,92(13) - MVC 96(4,13),116(13) - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - L 2,4(11) - A 2,116(13) - MVI 0(2),0 - MVC 88(4,13),4(11) - MVC 92(4,13),=A(@@LC6) - LA 1,88(,13) - L 15,=V(STRTOK) - BALR 14,15 -@@L151 EQU * - L 2,0(11) - A 2,=F'2' - ST 2,0(11) - MVC 112(4,13),=F'0' -@@L158 EQU * - L 2,108(13) - SLR 3,3 - IC 3,1(2) - L 2,112(13) - CLR 2,3 - BL @@L161 - B @@L148 -@@L161 EQU * - L 2,0(11) - IC 2,0(2) - N 2,=F'127' - N 2,=XL4'000000FF' - A 2,0(11) - A 2,=F'1' - ST 2,0(11) - L 2,112(13) - A 2,=F'1' - ST 2,112(13) - B @@L158 -@@L148 EQU * - MVC 108(4,13),0(11) - B @@L146 -@@L147 EQU * - SLR 2,2 - LR 15,2 -* Function 'process_exec' epilogue - PDPEPIL -* Function 'process_exec' literal pool - DS 0D - LTORG -* Function 'process_exec' page table -@@PGT6 DS 0F - DC A(@@PG6) - -&FUNC SETC 'process_dd' - DS 0F - EJECT -* static function 'process_dd' prologue -* frame base=88, local stack=16, call args=16 -&FUNC SETC 'process_dd' -@@9 PDPPRLG CINDEX=7,FRAME=120,BASER=12,ENTRY=NO - B @@FEN7 - LTORG -@@FEN7 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG7 EQU * - LR 11,1 - L 10,=A(@@PGT7) -* Function 'process_dd' code - MVC 104(4,13),0(11) - L 2,104(13) - A 2,=F'4' - ST 2,0(11) - L 2,8(11) - MVI 0(2),0 - L 2,12(11) - MVI 0(2),0 - L 2,16(11) - MVC 0(4,2),=F'0' - MVC 108(4,13),0(11) -@@L163 EQU * - L 2,108(13) - IC 2,0(2) - CLM 2,1,=XL1'00' - BE @@L164 - L 2,108(13) - IC 2,0(2) - CLM 2,1,=XL1'FE' - BNE @@L166 - B @@L164 -@@L166 EQU * - L 2,108(13) - SLR 3,3 - IC 3,0(2) - ST 3,116(13) - L 3,116(13) - LA 2,74(0,0) - CR 3,2 - BE @@L170 - L 3,116(13) - LA 2,74(0,0) - CR 3,2 - BH @@L178 - L 3,116(13) - LA 2,36(0,0) - CLR 3,2 - BE @@L173 - L 3,116(13) - LA 2,71(0,0) - CLR 3,2 - BE @@L174 - B @@L168 -@@L178 EQU * - L 3,116(13) - LA 2,110(0,0) - CR 3,2 - BE @@L169 - L 3,116(13) - LA 2,110(0,0) - CR 3,2 - BH @@L179 - L 3,116(13) - LA 2,75(0,0) - CLR 3,2 - BE @@L172 - B @@L168 -@@L179 EQU * - L 3,116(13) - LA 2,131(0,0) - CLR 3,2 - BE @@L175 - B @@L168 -@@L169 EQU * - MVC 88(4,13),4(11) - L 2,108(13) - A 2,=F'3' - ST 2,92(13) - L 2,108(13) - SLR 3,3 - IC 3,2(2) - LR 2,3 - ST 2,96(13) - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - L 2,108(13) - SLR 3,3 - IC 3,2(2) - LR 2,3 - A 2,4(11) - MVI 0(2),0 - MVC 88(4,13),4(11) - MVC 92(4,13),=A(@@LC6) - LA 1,88(,13) - L 15,=V(STRTOK) - BALR 14,15 - B @@L168 -@@L170 EQU * - L 2,108(13) - IC 2,2(2) - N 2,=F'-128' - CLM 2,1,=XL1'00' - BE @@L171 - L 2,0(11) - A 2,=F'1' - ST 2,0(11) - MVC 108(4,13),0(11) -@@L171 EQU * - MVC 88(4,13),8(11) - L 2,108(13) - A 2,=F'3' - ST 2,92(13) - L 2,108(13) - SLR 3,3 - IC 3,2(2) - LR 2,3 - ST 2,96(13) - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - L 2,108(13) - SLR 3,3 - IC 3,2(2) - LR 2,3 - A 2,8(11) - MVI 0(2),0 - MVC 88(4,13),8(11) - MVC 92(4,13),=A(@@LC6) - LA 1,88(,13) - L 15,=V(STRTOK) - BALR 14,15 - B @@L168 -@@L172 EQU * - MVC 88(4,13),12(11) - L 2,108(13) - A 2,=F'3' - ST 2,92(13) - L 2,108(13) - SLR 3,3 - IC 3,2(2) - LR 2,3 - ST 2,96(13) - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - L 2,108(13) - SLR 3,3 - IC 3,2(2) - LR 2,3 - A 2,12(11) - MVI 0(2),0 - MVC 88(4,13),12(11) - MVC 92(4,13),=A(@@LC6) - LA 1,88(,13) - L 15,=V(STRTOK) - BALR 14,15 - B @@L168 -@@L173 EQU * - L 2,16(11) - MVC 0(4,2),=F'1' - B @@L168 -@@L174 EQU * - L 2,108(13) - SLR 3,3 - IC 3,2(2) - LR 2,3 - A 2,0(11) - A 2,=F'3' - ST 2,0(11) - B @@L165 -@@L175 EQU * - L 2,0(11) - A 2,=F'7' - ST 2,0(11) - B @@L165 -@@L168 EQU * - L 2,0(11) - A 2,=F'2' - ST 2,0(11) - MVC 112(4,13),=F'0' -@@L180 EQU * - L 2,108(13) - SLR 3,3 - IC 3,1(2) - L 2,112(13) - CLR 2,3 - BL @@L183 - B @@L165 -@@L183 EQU * - L 2,0(11) - SLR 3,3 - IC 3,0(2) - LR 2,3 - A 2,0(11) - A 2,=F'1' - ST 2,0(11) - L 2,112(13) - A 2,=F'1' - ST 2,112(13) - B @@L180 -@@L165 EQU * - MVC 108(4,13),0(11) - B @@L163 -@@L164 EQU * - SLR 2,2 - LR 15,2 -* Function 'process_dd' epilogue - PDPEPIL -* Function 'process_dd' literal pool - DS 0D - LTORG -* Function 'process_dd' page table -@@PGT7 DS 0F - DC A(@@PG7) - -&FUNC SETC 'process_sysout' -@@LC23 EQU * - DC C'process_sysout() null ddname for dsid=%d' - DC X'0' - DS 0F - EJECT -* static function 'process_sysout' prologue -* frame base=88, local stack=24, call args=16 -&FUNC SETC 'process_sysout' -@@10 PDPPRLG CINDEX=8,FRAME=128,BASER=12,ENTRY=NO - B @@FEN8 - LTORG -@@FEN8 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG8 EQU * - LR 11,1 - L 10,=A(@@PGT8) -* Function 'process_sysout' code - ST 11,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 2,15 - ST 2,104(13) - MVC 88(4,13),8(11) - MVC 92(4,13),=F'75' - LA 1,88(,13) - L 15,=V(STRRCHR) - BALR 14,15 - ST 15,112(13) - L 2,112(13) - LTR 2,2 - BNE @@L185 - B @@L186 -@@L185 EQU * - LA 2,1(0,0) - A 2,112(13) - IC 2,0(2) - CLM 2,1,=XL1'E2' - BE @@L187 - B @@L186 -@@L187 EQU * - LA 2,2(0,0) - A 2,112(13) - IC 2,0(2) - CLM 2,1,=XL1'D6' - BE @@L188 - B @@L186 -@@L188 EQU * - L 2,112(13) - A 2,=F'3' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(ATOI) - BALR 14,15 - LR 2,15 - STH 2,116(13) - LH 2,116(13) - CH 2,=H'0' - BNE @@L189 - B @@L186 -@@L189 EQU * - L 2,4(11) - IC 2,0(2) - CLM 2,1,=XL1'00' - BE @@L191 - L 2,4(11) - IC 2,0(2) - CLM 2,1,=XL1'40' - BE @@L191 - B @@L190 -@@L191 EQU * - MVC 88(4,13),4(11) - MVC 92(4,13),=F'8' - MVC 96(4,13),=A(@@LC23) - LH 2,116(13) - N 2,=XL4'0000FFFF' - ST 2,100(13) - LA 1,88(,13) - L 15,=V(WTODUMPF) - BALR 14,15 -@@L190 EQU * - MVC 108(4,13),=F'0' -@@L192 EQU * - L 2,108(13) - CL 2,104(13) - BL @@L195 - B @@L186 -@@L195 EQU * - L 2,108(13) - MH 2,=H'4' - A 2,0(11) - MVC 120(4,13),0(2) - L 2,120(13) - LTR 2,2 - BNE @@L196 - B @@L194 -@@L196 EQU * - L 2,120(13) - LH 2,94(2) - MVC 80(2,13),116(13) - CLM 2,3,80(13) - BNE @@L194 - L 2,120(13) - A 2,=F'8' - ST 2,88(13) - MVC 92(4,13),4(11) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - L 2,120(13) - A 2,=F'17' - ST 2,88(13) - MVC 92(4,13),16(11) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - L 2,120(13) - A 2,=F'26' - ST 2,88(13) - MVC 92(4,13),20(11) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - L 2,120(13) - A 2,=F'35' - ST 2,88(13) - MVC 92(4,13),8(11) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - L 2,120(13) - IC 2,80(2) - CLM 2,1,=XL1'00' - BNE @@L198 - L 3,120(13) - L 2,12(11) - MVC 80(1,3),0(2) -@@L198 EQU * - L 2,120(13) - MVI 82(2),64 - B @@L186 -@@L194 EQU * - L 2,108(13) - A 2,=F'1' - ST 2,108(13) - B @@L192 -@@L186 EQU * - SLR 2,2 - LR 15,2 -* Function 'process_sysout' epilogue - PDPEPIL -* Function 'process_sysout' literal pool - DS 0D - LTORG -* Function 'process_sysout' page table -@@PGT8 DS 0F - DC A(@@PG8) - -&FUNC SETC 'process_sysin' -@@LC24 EQU * - DC C'process_sysin() null ddname for dsid=%d' - DC X'0' - DS 0F - EJECT -* static function 'process_sysin' prologue -* frame base=88, local stack=24, call args=16 -&FUNC SETC 'process_sysin' -@@11 PDPPRLG CINDEX=9,FRAME=128,BASER=12,ENTRY=NO - B @@FEN9 - LTORG -@@FEN9 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG9 EQU * - LR 11,1 - L 10,=A(@@PGT9) -* Function 'process_sysin' code - ST 11,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 2,15 - ST 2,104(13) - MVC 88(4,13),8(11) - MVC 92(4,13),=F'75' - LA 1,88(,13) - L 15,=V(STRRCHR) - BALR 14,15 - ST 15,112(13) - L 2,112(13) - LTR 2,2 - BNE @@L200 - B @@L201 -@@L200 EQU * - LA 2,1(0,0) - A 2,112(13) - IC 2,0(2) - CLM 2,1,=XL1'E2' - BE @@L202 - B @@L201 -@@L202 EQU * - LA 2,2(0,0) - A 2,112(13) - IC 2,0(2) - CLM 2,1,=XL1'C9' - BE @@L203 - B @@L201 -@@L203 EQU * - L 2,112(13) - A 2,=F'3' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(ATOI) - BALR 14,15 - LR 2,15 - STH 2,116(13) - LH 2,116(13) - CH 2,=H'0' - BNE @@L204 - B @@L201 -@@L204 EQU * - L 2,4(11) - IC 2,0(2) - CLM 2,1,=XL1'00' - BE @@L206 - L 2,4(11) - IC 2,0(2) - CLM 2,1,=XL1'40' - BE @@L206 - B @@L205 -@@L206 EQU * - MVC 88(4,13),4(11) - MVC 92(4,13),=F'8' - MVC 96(4,13),=A(@@LC24) - LH 2,116(13) - N 2,=XL4'0000FFFF' - ST 2,100(13) - LA 1,88(,13) - L 15,=V(WTODUMPF) - BALR 14,15 -@@L205 EQU * - MVC 108(4,13),=F'0' -@@L207 EQU * - L 2,108(13) - CL 2,104(13) - BL @@L210 - B @@L201 -@@L210 EQU * - L 2,108(13) - MH 2,=H'4' - A 2,0(11) - MVC 120(4,13),0(2) - L 2,120(13) - LTR 2,2 - BNE @@L211 - B @@L209 -@@L211 EQU * - L 2,120(13) - LH 2,94(2) - MVC 80(2,13),116(13) - CLM 2,3,80(13) - BNE @@L209 - L 2,120(13) - A 2,=F'8' - ST 2,88(13) - MVC 92(4,13),4(11) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - L 2,120(13) - A 2,=F'17' - ST 2,88(13) - MVC 92(4,13),12(11) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - L 2,120(13) - A 2,=F'26' - ST 2,88(13) - MVC 92(4,13),16(11) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - L 2,120(13) - A 2,=F'35' - ST 2,88(13) - MVC 92(4,13),8(11) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - L 2,120(13) - MVI 82(2),32 - B @@L201 -@@L209 EQU * - L 2,108(13) - A 2,=F'1' - ST 2,108(13) - B @@L207 -@@L201 EQU * - SLR 2,2 - LR 15,2 -* Function 'process_sysin' epilogue - PDPEPIL -* Function 'process_sysin' literal pool - DS 0D - LTORG -* Function 'process_sysin' page table -@@PGT9 DS 0F - DC A(@@PG9) - -&FUNC SETC 'is_dup_dsid' - DS 0F - EJECT -* static function 'is_dup_dsid' prologue -* frame base=88, local stack=16, call args=8 -&FUNC SETC 'is_dup_dsid' -@@3 PDPPRLG CINDEX=10,FRAME=112,BASER=12,ENTRY=NO - B @@FEN10 - LTORG -@@FEN10 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG10 EQU * - LR 11,1 - L 10,=A(@@PGT10) -* Function 'is_dup_dsid' code - ST 11,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 2,15 - ST 2,96(13) - MVC 100(4,13),=F'0' -@@L214 EQU * - L 2,100(13) - CL 2,96(13) - BL @@L217 - B @@L215 -@@L217 EQU * - L 2,100(13) - MH 2,=H'4' - A 2,0(11) - MVC 104(4,13),0(2) - L 2,104(13) - LTR 2,2 - BNE @@L218 - B @@L216 -@@L218 EQU * - L 2,104(13) - LH 2,94(2) - N 2,=XL4'0000FFFF' - CL 2,4(11) - BNE @@L216 - MVC 108(4,13),=F'1' - B @@L213 -@@L216 EQU * - L 2,100(13) - A 2,=F'1' - ST 2,100(13) - B @@L214 -@@L215 EQU * - MVC 108(4,13),=F'0' -@@L213 EQU * - L 15,108(13) -* Function 'is_dup_dsid' epilogue - PDPEPIL -* Function 'is_dup_dsid' literal pool - DS 0D - LTORG -* Function 'is_dup_dsid' page table -@@PGT10 DS 0F - DC A(@@PG10) - END diff --git a/src/crent370/jes/jesjobf1.c b/src/crent370/jes/jesjobf1.c deleted file mode 100644 index 26dae23..0000000 --- a/src/crent370/jes/jesjobf1.c +++ /dev/null @@ -1,36 +0,0 @@ -/* JESJOBF1.C - Free 1 JESJOB */ -#include -#include -#include "hasphct.h" /* JES Checkpoint Control Table, record 3 in HASPCKPT */ -#include "haspjct.h" /* JES Job Control Table */ -#include "hasppddb.h" /* JES PDDB Print Datasets */ -#include "haspiot.h" /* JES IOT */ -#include "clibjes2.h" /* JES prototypes */ -#include "clibary.h" /* dynamic array */ - -int jesjobf1(JESJOB **ppjesjob) -{ - JESJOB *jesjob = NULL; - unsigned count; - unsigned n; - - if (!ppjesjob) goto quit; - - jesjob = *ppjesjob; - if (jesjob) { - if (jesjob->jesdd) { - count = arraycount(&jesjob->jesdd); - for (n=0; n < count; n++) { - if (!jesjob->jesdd[n]) continue; - free(jesjob->jesdd[n]); - jesjob->jesdd[n] = NULL; - } - arrayfree(&jesjob->jesdd); - } - free(jesjob); - *ppjesjob = NULL; - } - -quit: - return 0; -} diff --git a/src/crent370/jes/jesjobf1.o b/src/crent370/jes/jesjobf1.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/jes/jesjobf1.s b/src/crent370/jes/jesjobf1.s deleted file mode 100644 index 2676cf6..0000000 --- a/src/crent370/jes/jesjobf1.s +++ /dev/null @@ -1,103 +0,0 @@ - TITLE '/home/projects/crent370/jes/jesjobf1.c' - COPY PDPTOP - CSECT -* Program text area - DS 0F - EJECT -* external function 'jesjobf1' prologue -* frame base=88, local stack=16, call args=8 -&FUNC SETC 'jesjobf1' -JESJOBF1 PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'jesjobf1' code - MVC 96(4,13),=F'0' - L 2,0(11) - LTR 2,2 - BNE @@L4 - B @@L5 -@@L4 EQU * - L 2,0(11) - MVC 96(4,13),0(2) - L 2,96(13) - LTR 2,2 - BE @@L5 - L 2,96(13) - L 2,48(2) - LTR 2,2 - BE @@L7 - L 2,96(13) - A 2,=F'48' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 2,15 - ST 2,100(13) - MVC 104(4,13),=F'0' -@@L8 EQU * - L 2,104(13) - CL 2,100(13) - BL @@L11 - B @@L9 -@@L11 EQU * - L 3,96(13) - L 2,104(13) - MH 2,=H'4' - A 2,48(3) - L 2,0(2) - LTR 2,2 - BNE @@L12 - B @@L10 -@@L12 EQU * - L 3,96(13) - L 2,104(13) - MH 2,=H'4' - A 2,48(3) - MVC 88(4,13),0(2) - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - L 3,96(13) - L 2,104(13) - MH 2,=H'4' - A 2,48(3) - MVC 0(4,2),=F'0' -@@L10 EQU * - L 2,104(13) - A 2,=F'1' - ST 2,104(13) - B @@L8 -@@L9 EQU * - L 2,96(13) - A 2,=F'48' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARFRE) - BALR 14,15 -@@L7 EQU * - MVC 88(4,13),96(13) - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - L 2,0(11) - MVC 0(4,2),=F'0' -@@L5 EQU * - SLR 2,2 - LR 15,2 -* Function 'jesjobf1' epilogue - PDPEPIL -* Function 'jesjobf1' literal pool - DS 0D - LTORG -* Function 'jesjobf1' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/jes/jesjobfr.c b/src/crent370/jes/jesjobfr.c deleted file mode 100644 index 2178ecc..0000000 --- a/src/crent370/jes/jesjobfr.c +++ /dev/null @@ -1,37 +0,0 @@ -/* JESJOBFR.C - Free JESJOB array */ -#include -#include -#include "hasphct.h" /* JES Checkpoint Control Table, record 3 in HASPCKPT */ -#include "haspjct.h" /* JES Job Control Table */ -#include "hasppddb.h" /* JES PDDB Print Datasets */ -#include "haspiot.h" /* JES IOT */ -#include "clibjes2.h" /* JES prototypes */ -#include "clibary.h" - -int jesjobfr(JESJOB ***pppjesjob) -{ - JESJOB **jesjob = NULL; - unsigned count; - unsigned n; - - if (!pppjesjob) goto quit; - jesjob = *pppjesjob; - - count = arraycount(&jesjob); - for (n=0; n < count; n++) { - jesjobf1(&jesjob[n]); - } - arrayfree(pppjesjob); - *pppjesjob = NULL; - -quit: - return 0; -} - - - - - - - - diff --git a/src/crent370/jes/jesjobfr.o b/src/crent370/jes/jesjobfr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/jes/jesjobfr.s b/src/crent370/jes/jesjobfr.s deleted file mode 100644 index 09de94f..0000000 --- a/src/crent370/jes/jesjobfr.s +++ /dev/null @@ -1,72 +0,0 @@ - TITLE '/home/projects/crent370/jes/jesjobfr.c' - COPY PDPTOP - CSECT -* Program text area - DS 0F - EJECT -* external function 'jesjobfr' prologue -* frame base=88, local stack=16, call args=8 -&FUNC SETC 'jesjobfr' -JESJOBFR PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'jesjobfr' code - MVC 96(4,13),=F'0' - L 2,0(11) - LTR 2,2 - BNE @@L4 - B @@L5 -@@L4 EQU * - L 2,0(11) - MVC 96(4,13),0(2) - LA 2,96(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 2,15 - ST 2,100(13) - MVC 104(4,13),=F'0' -@@L6 EQU * - L 2,104(13) - CL 2,100(13) - BL @@L9 - B @@L7 -@@L9 EQU * - L 2,104(13) - MH 2,=H'4' - A 2,96(13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(JESJOBF1) - BALR 14,15 - L 2,104(13) - A 2,=F'1' - ST 2,104(13) - B @@L6 -@@L7 EQU * - MVC 88(4,13),0(11) - LA 1,88(,13) - L 15,=V(@@ARFRE) - BALR 14,15 - L 2,0(11) - MVC 0(4,2),=F'0' -@@L5 EQU * - SLR 2,2 - LR 15,2 -* Function 'jesjobfr' epilogue - PDPEPIL -* Function 'jesjobfr' literal pool - DS 0D - LTORG -* Function 'jesjobfr' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/jes/jesopen.c b/src/crent370/jes/jesopen.c deleted file mode 100644 index ab90b50..0000000 --- a/src/crent370/jes/jesopen.c +++ /dev/null @@ -1,61 +0,0 @@ -/* JESOPEN.C - Open JES spool datasets */ -#include -#include -#include "hasphct.h" /* JES Checkpoint Control Table, record 3 in HASPCKPT */ -#include "haspjct.h" /* JES Job Control Table */ -#include "hasppddb.h" /* JES PDDB Print Datasets */ -#include "haspiot.h" /* JES IOT */ -#include "clibjes2.h" /* JES prototypes */ -#include "clibstae.h" /* ESTAE functions */ -#include "clibary.h" /* dynamic array */ - -static void try_jesopen(JES **jespp); - -JES *jesopen(void) -{ - JES *jes = NULL; - - try(try_jesopen, &jes); - - return jes; -} - -__asm__("\n&FUNC SETC 'try_jesopen'"); -static void try_jesopen(JES **jespp) -{ - JES *jes = NULL; - HASPCP *cp = NULL; - HASPJS *js = NULL; - - jes = calloc(1, sizeof(JES)); - if (!jes) { - wtof("Unable to allocate storage for JES handle"); - goto quit; - } - - cp = checkpoint_open("DD:HASPCKPT"); - if (!cp) { - wtof("Unable to open checkpoint dataset DD:HASPCKPT"); - jesclose(&jes); - goto quit; - } - - /* Put checkpoint handle into our JES handle */ - jes->cp = cp; - - js = spool_open("DD:HASPACE1"); - if (!js) { - wtof("Unable to open spool dataset DD:HASPACE1"); - jesclose(&jes); - goto quit; - } - - /* Add spool handle to array of spool handle in our JES handle */ - arrayadd(&jes->js, js); - -quit: - *jespp = jes; - return; -} - - diff --git a/src/crent370/jes/jesopen.o b/src/crent370/jes/jesopen.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/jes/jesopen.s b/src/crent370/jes/jesopen.s deleted file mode 100644 index 80d0ff8..0000000 --- a/src/crent370/jes/jesopen.s +++ /dev/null @@ -1,150 +0,0 @@ - TITLE '/home/projects/crent370/jes/jesopen.c' - COPY PDPTOP - CSECT -* Program text area - DS 0F - EJECT -* external function 'jesopen' prologue -* frame base=88, local stack=8, call args=8 -&FUNC SETC 'jesopen' -JESOPEN PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'jesopen' code - MVC 96(4,13),=F'0' - MVC 88(4,13),=A(@@2) - LA 2,96(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@@TRY) - BALR 14,15 - L 2,96(13) - LR 15,2 -* Function 'jesopen' epilogue - PDPEPIL -* Function 'jesopen' literal pool - DS 0D - LTORG -* Function 'jesopen' page table -@@PGT0 DS 0F - DC A(@@PG0) - -&FUNC SETC 'try_jesopen' -@@LC0 EQU * - DC C'Unable to allocate storage for JES handle' - DC X'0' -@@LC1 EQU * - DC C'DD:HASPCKPT' - DC X'0' -@@LC2 EQU * - DC C'Unable to open checkpoint dataset DD:HASPCKPT' - DC X'0' -@@LC3 EQU * - DC C'DD:HASPACE1' - DC X'0' -@@LC4 EQU * - DC C'Unable to open spool dataset DD:HASPACE1' - DC X'0' - DS 0F - EJECT -* static function 'try_jesopen' prologue -* frame base=88, local stack=16, call args=8 -&FUNC SETC 'try_jesopen' -@@2 PDPPRLG CINDEX=1,FRAME=112,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'try_jesopen' code - MVC 96(4,13),=F'0' - MVC 100(4,13),=F'0' - MVC 104(4,13),=F'0' - MVC 88(4,13),=F'1' - MVC 92(4,13),=F'16' - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 2,15 - ST 2,96(13) - L 2,96(13) - LTR 2,2 - BNE @@L5 - MVC 88(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - B @@L6 -@@L5 EQU * - MVC 88(4,13),=A(@@LC1) - LA 1,88(,13) - L 15,=V(@@CPOPEN) - BALR 14,15 - LR 2,15 - ST 2,100(13) - L 2,100(13) - LTR 2,2 - BNE @@L7 - MVC 88(4,13),=A(@@LC2) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LA 2,96(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(JESCLOSE) - BALR 14,15 - B @@L6 -@@L7 EQU * - L 2,96(13) - MVC 8(4,2),100(13) - MVC 88(4,13),=A(@@LC3) - LA 1,88(,13) - L 15,=V(@@JSOPEN) - BALR 14,15 - LR 2,15 - ST 2,104(13) - L 2,104(13) - LTR 2,2 - BNE @@L8 - MVC 88(4,13),=A(@@LC4) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LA 2,96(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(JESCLOSE) - BALR 14,15 - B @@L6 -@@L8 EQU * - L 2,96(13) - A 2,=F'12' - ST 2,88(13) - MVC 92(4,13),104(13) - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 -@@L6 EQU * - L 2,0(11) - MVC 0(4,2),96(13) -* Function 'try_jesopen' epilogue - PDPEPIL -* Function 'try_jesopen' literal pool - DS 0D - LTORG -* Function 'try_jesopen' page table -@@PGT1 DS 0F - DC A(@@PG1) - END diff --git a/src/crent370/jes/jesprint.c b/src/crent370/jes/jesprint.c deleted file mode 100644 index b0d2547..0000000 --- a/src/crent370/jes/jesprint.c +++ /dev/null @@ -1,252 +0,0 @@ -/* JESPRINT.C - Print JES Job by DSID */ -#include -#include -#include -#include "hasphct.h" /* JES Checkpoint Control Table, record 3 in HASPCKPT */ -#include "haspjct.h" /* JES Job Control Table */ -#include "hasppddb.h" /* JES PDDB Print Datasets */ -#include "haspiot.h" /* JES IOT */ -#include "ieftxtft.h" /* text string types */ -#include "iefvkeys.h" /* text key values */ -#include "clibjes2.h" /* JES prototypes */ -#include "clibary.h" /* dynamic array */ - -typedef struct prline { - unsigned char len; /* length of data (not including cc if any) */ -#define EOB 0xff /* indicates end of block */ - - unsigned char flags; /* processing flags for data */ -#define FLAG_HASCC 0x80 /* ... first data byte is carriage control char */ -#define FLAG_SPAN 0x10 /* ... spanned line/record */ -#define FLAG_FIRST 0x08 /* ... first part of spanned line */ -#define FLAG_MIDDLE 0x04 /* ... middle part of spanned line */ -#define FLAG_LAST 0x02 /* ... last part of spanned line */ - - unsigned char len2; /* looks like len but not always the same??? */ - unsigned char data[0]; /* start of print line (including cc if any) */ -} PRLINE; - -typedef struct spline { - unsigned char len; /* length of data (may be zero on spanned lines) */ - unsigned char flags; /* same as prline.flags */ - unsigned short len2; /* length of this line part */ - unsigned char data[0]; /* start of spanned print line */ -} SPLINE; - -typedef struct prblock { - unsigned int next; - unsigned int jobkey; - unsigned short dsid; -} PRBLOCK; - -static int esc_print(int(*prt)(const char *, unsigned), char *line, unsigned linelen); - -int jesprint(JES *jes, JESJOB *job, unsigned dsid, int(*prt)(const char *line, unsigned linelen)) -{ - int rc = 503; /* service unavailable */ - JESDD *jesdd = NULL; - HASPCP *cp = NULL; - HASPJS *js = NULL; - __HCT *hct = NULL; - char *buf = NULL; - char *prbuf = NULL; - char *p; - char *eob; - PRBLOCK *block; - PRLINE *line; - unsigned linelen; - unsigned blksize = 0; - unsigned bufsize; - unsigned mttr; - unsigned count; - unsigned n; - int i; - - if (!jes) goto quit; - if (!job) goto quit; - if (!dsid) goto quit; - - cp = jes->cp; - if (!cp) goto quit; - - hct = &cp->hct; - bufsize = hct->_BUFSIZE; - - js = jes->js[0]; - if (!js) goto quit; - - buf = calloc(1, bufsize); - if (!buf) { - wtof("Unable to allocate storage for %u byte buffer", bufsize); - goto quit; - } - eob = &buf[bufsize-sizeof(PRLINE)]; - - count = arraycount(&job->jesdd); - for(n=0; n < count; n++) { - JESDD *dd = job->jesdd[n]; - - if (!dd) continue; - /* wtof("dd->dsid=%u, dsid=%u", dd->dsid, dsid); */ - if (dd->dsid == dsid) { - jesdd = dd; - break; - } - } - - rc = 404; /* not found */ - if (!jesdd) goto quit; - - /* at this point we know which DSID in the job we want to start with */ - rc = 0; - if (!jesdd->mttr) goto quit; /* no sysout for this dsid, nothing to do */ - - /* process the sysout dataset */ - for(block = (PRBLOCK*)buf, mttr = jesdd->mttr; mttr; mttr = block->next) { - /* read block from spool dataset */ - if (spool_read(js, mttr, buf, hct->_BUFSIZE)) break; - - if (strcmp(job->jobname, "SYSLOG")==0) { - wtodumpf(buf, hct->_BUFSIZE, "SYSLOG DSID=%u", jesdd->dsid); - } - - /* make sure this block is for our job */ - if (job->jobkey != block->jobkey) break; - if (jesdd->dsid != block->dsid) break; -#if 0 - wtodumpf(buf, sizeof(PRBLOCK), "PRBLOCK"); -#endif - /* unwind the print lines in the block */ - for(p=&buf[10], line=(PRLINE*)p; line->len != EOB && p < eob; line=(PRLINE*)p) { -#if 0 - wtodumpf(line, line->len + sizeof(PRLINE), "PRLINE"); - if (line->len==0 && line->flags & FLAG_SPAN) { - wtodumpf(buf, bufsize, "SPANNED LINE BLOCK"); - break; - } -#endif - if (line->flags & FLAG_SPAN) { - SPLINE *sp = (SPLINE*)line; - - /* wtodumpf(sp, sizeof(SPLINE), "SPLINE"); */ - - p = sp->data; - if (sp->flags & FLAG_FIRST) { - unsigned newblock = *(unsigned short *)p; - p += 2; - - if (newblock > blksize) { - if (prbuf) free(prbuf); - blksize = newblock; - prbuf = calloc(1, blksize + 4); - if (!prbuf) { - wtof("Unable to allocate storage for %u byte buffer", blksize + 4); - goto quit; - } - } - - linelen = 0; - if (sp->flags & FLAG_HASCC) p++; - } - - if (!prbuf) break; /* we don't have a print buffer for the spanned record */ - - memcpy(&prbuf[linelen], p, sp->len2); - linelen += sp->len2; - - if (sp->flags & FLAG_LAST || linelen > blksize) { - rc = esc_print(prt, prbuf, linelen); - if (rc < 0) goto quit; - linelen = 0; - } - - p+=sp->len2; - continue; - } - - p = line->data; - if (line->flags & FLAG_HASCC) p++; /* skip over carriage control character */ - - /* print this line after HTML escaping it */ - rc = esc_print(prt, p, line->len); - if (rc < 0) goto quit; - p+=line->len; - } - } - -quit: - if (prbuf) free(prbuf); - if (buf) free(buf); - return rc; -} - -__asm__("\n&FUNC SETC 'esc_print'"); -static int -esc_print(int(*prt)(const char *, unsigned), char *line, unsigned linelen) -{ - int rc = 0; - char *p; - char *e; - unsigned n; - char buf[1024]; - - if (!linelen) goto quit; - - /* wtodumpf(line, linelen, "esc_print()"); */ - - /* here we attempt to remove any trailing spaces */ - while(linelen > 1 && line[linelen-1]==' ') linelen--; - - /* here we limit linelen to 255 (mostly for the inline translate of unprintable characters) */ - if (linelen > 255) linelen = 255; - - /* translate any unprintable characters to spaces */ - __asm("LR\t1,%0 => our print line\n\t" - "LR\t14,%1 => length of line\n\t" - "BCTR\t14,0 decrement for execute\n\t" - "EX\t14,TRLINE translate unsafe characters" - : :"r"(line), "r"(linelen) : "14", "1"); - -#if 0 /* we don't really need this since we're sending out "text/plain" lines */ - /* escape HTML special characters */ - for(p=buf, e=&buf[sizeof(buf)-1], n=0; (n < linelen) && (p < e); n++) { - switch(line[n]) { - case '&': - *p++ = '&'; - *p++ = 'a'; - *p++ = 'm'; - *p++ = 'p'; - *p++ = ';'; - break; - case '<': - *p++ = '&'; - *p++ = 'l'; - *p++ = 't'; - *p++ = ';'; - break; - case '>': - *p++ = '&'; - *p++ = 'g'; - *p++ = 't'; - *p++ = ';'; - break; - default: - *p++ = line[n]; - break; - } - } - - linelen = (unsigned) (p - buf); - - /* print the translated and escaped buffer */ - rc = prt(buf, linelen); -#else - /* print the translated buffer */ - rc = prt(line, linelen); -#endif -quit: - return rc; -} -__asm("\nTRLINE TR 0(*-*,1),PRTXLATE REMOVE UNPRINTABLES"); -__asm("\nPRTXLATE DC 64C' ',191AL1(*-PRTXLATE),C' '"); - diff --git a/src/crent370/jes/jesprint.o b/src/crent370/jes/jesprint.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/jes/jesprint.s b/src/crent370/jes/jesprint.s deleted file mode 100644 index 5590961..0000000 --- a/src/crent370/jes/jesprint.s +++ /dev/null @@ -1,492 +0,0 @@ - TITLE '/home/projects/crent370/jes/jesprint.c' - COPY PDPTOP - CSECT -* Program text area -@@LC0 EQU * - DC C'Unable to allocate storage for %u byte buffer' - DC X'0' -@@LC1 EQU * - DC C'SYSLOG' - DC X'0' -@@LC2 EQU * - DC C'SYSLOG DSID=%u' - DC X'0' - DS 0F - EJECT -* external function 'jesprint' prologue -* frame base=88, local stack=80, call args=16 -&FUNC SETC 'jesprint' -JESPRINT PDPPRLG CINDEX=0,FRAME=184,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'jesprint' code - MVC 104(4,13),=F'503' - MVC 108(4,13),=F'0' - MVC 112(4,13),=F'0' - MVC 116(4,13),=F'0' - MVC 120(4,13),=F'0' - MVC 124(4,13),=F'0' - MVC 128(4,13),=F'0' - MVC 152(4,13),=F'0' - L 2,0(11) - LTR 2,2 - BNE @@L4 - L 14,=A(@@L5) - BR 14 -@@L4 EQU * - L 2,4(11) - LTR 2,2 - BNE @@L6 - L 14,=A(@@L5) - BR 14 -@@L6 EQU * - L 2,8(11) - LTR 2,2 - BNE @@L7 - L 14,=A(@@L5) - BR 14 -@@L7 EQU * - L 2,0(11) - MVC 112(4,13),8(2) - L 2,112(13) - LTR 2,2 - BNE @@L8 - L 14,=A(@@L5) - BR 14 -@@L8 EQU * - L 2,112(13) - A 2,=F'20' - ST 2,120(13) - L 2,120(13) - LH 2,176(2) - N 2,=XL4'0000FFFF' - ST 2,156(13) - L 2,0(11) - L 2,12(2) - MVC 116(4,13),0(2) - L 2,116(13) - LTR 2,2 - BNE @@L9 - B @@L5 -@@L9 EQU * - MVC 88(4,13),=F'1' - MVC 92(4,13),156(13) - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 2,15 - ST 2,124(13) - L 2,124(13) - LTR 2,2 - BNE @@L10 - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),156(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - B @@L5 -@@L10 EQU * - L 2,124(13) - A 2,156(13) - A 2,=F'-3' - ST 2,136(13) - L 2,4(11) - A 2,=F'48' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 2,15 - ST 2,164(13) - MVC 168(4,13),=F'0' -@@L11 EQU * - L 2,168(13) - CL 2,164(13) - BL @@L14 - B @@L12 -@@L14 EQU * - L 3,4(11) - L 2,168(13) - MH 2,=H'4' - A 2,48(3) - MVC 176(4,13),0(2) - L 2,176(13) - LTR 2,2 - BNE @@L15 - B @@L13 -@@L15 EQU * - L 2,176(13) - LH 2,94(2) - N 2,=XL4'0000FFFF' - CL 2,8(11) - BNE @@L13 - MVC 108(4,13),176(13) - B @@L12 -@@L13 EQU * - L 2,168(13) - A 2,=F'1' - ST 2,168(13) - B @@L11 -@@L12 EQU * - MVC 104(4,13),=F'404' - L 2,108(13) - LTR 2,2 - BNE @@L17 - B @@L5 -@@L17 EQU * - MVC 104(4,13),=F'0' - L 2,108(13) - L 2,84(2) - LTR 2,2 - BNE @@L18 - B @@L5 -@@L18 EQU * - MVC 140(4,13),124(13) - L 2,108(13) - MVC 160(4,13),84(2) -@@L19 EQU * - L 2,160(13) - LTR 2,2 - BNE @@L22 - B @@L5 -@@L22 EQU * - MVC 88(4,13),116(13) - MVC 92(4,13),160(13) - MVC 96(4,13),124(13) - L 2,120(13) - LH 2,176(2) - N 2,=XL4'0000FFFF' - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@JSRD4) - BALR 14,15 - LR 2,15 - LTR 2,2 - BE @@L23 - B @@L5 -@@L23 EQU * - L 2,4(11) - A 2,=F'8' - ST 2,88(13) - MVC 92(4,13),=A(@@LC1) - LA 1,88(,13) - L 15,=V(STRCMP) - BALR 14,15 - LR 2,15 - LTR 2,2 - BNE @@L24 - MVC 88(4,13),124(13) - L 2,120(13) - LH 2,176(2) - N 2,=XL4'0000FFFF' - ST 2,92(13) - MVC 96(4,13),=A(@@LC2) - L 2,108(13) - LH 2,94(2) - N 2,=XL4'0000FFFF' - ST 2,100(13) - LA 1,88(,13) - L 15,=V(WTODUMPF) - BALR 14,15 -@@L24 EQU * - L 2,4(11) - L 3,140(13) - L 2,72(2) - CL 2,4(3) - BE @@L25 - B @@L5 -@@L25 EQU * - L 2,108(13) - L 3,140(13) - LH 2,94(2) - MVC 80(2,13),8(3) - CLM 2,3,80(13) - BE @@L26 - B @@L5 -@@L26 EQU * - L 2,124(13) - A 2,=F'10' - ST 2,132(13) - MVC 144(4,13),132(13) -@@L27 EQU * - L 2,144(13) - IC 2,0(2) - CLM 2,1,=XL1'FF' - BE @@L21 - L 2,132(13) - CL 2,136(13) - BL @@L30 - B @@L21 -@@L30 EQU * - L 2,144(13) - IC 2,1(2) - N 2,=F'16' - CLM 2,1,=XL1'00' - BE @@L32 - MVC 176(4,13),144(13) - L 2,176(13) - A 2,=F'4' - ST 2,132(13) - L 2,176(13) - IC 2,1(2) - N 2,=F'8' - CLM 2,1,=XL1'00' - BE @@L33 - L 2,132(13) - LH 2,0(2) - N 2,=XL4'0000FFFF' - ST 2,180(13) - L 2,132(13) - A 2,=F'2' - ST 2,132(13) - L 2,180(13) - CL 2,152(13) - BNH @@L34 - L 2,128(13) - LTR 2,2 - BE @@L35 - MVC 88(4,13),128(13) - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L35 EQU * - MVC 152(4,13),180(13) - MVC 88(4,13),=F'1' - L 2,152(13) - A 2,=F'4' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 2,15 - ST 2,128(13) - L 2,128(13) - LTR 2,2 - BNE @@L34 - MVC 88(4,13),=A(@@LC0) - L 2,152(13) - A 2,=F'4' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - B @@L5 -@@L34 EQU * - MVC 148(4,13),=F'0' - L 2,176(13) - IC 2,1(2) - N 2,=F'-128' - CLM 2,1,=XL1'00' - BE @@L33 - L 2,132(13) - A 2,=F'1' - ST 2,132(13) -@@L33 EQU * - L 2,128(13) - LTR 2,2 - BNE @@L38 - B @@L21 -@@L38 EQU * - L 2,128(13) - A 2,148(13) - ST 2,88(13) - MVC 92(4,13),132(13) - L 2,176(13) - LH 2,2(2) - N 2,=XL4'0000FFFF' - ST 2,96(13) - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 - L 2,176(13) - LH 2,2(2) - N 2,=XL4'0000FFFF' - A 2,148(13) - ST 2,148(13) - L 2,176(13) - IC 2,1(2) - N 2,=F'2' - CLM 2,1,=XL1'00' - BNE @@L40 - L 2,148(13) - CL 2,152(13) - BH @@L40 - B @@L39 -@@L40 EQU * - MVC 88(4,13),12(11) - MVC 92(4,13),128(13) - MVC 96(4,13),148(13) - LA 1,88(,13) - L 15,=A(@@2) - BALR 14,15 - LR 2,15 - ST 2,104(13) - L 2,104(13) - LTR 2,2 - BNL @@L41 - B @@L5 -@@L41 EQU * - MVC 148(4,13),=F'0' -@@L39 EQU * - L 2,176(13) - LH 2,2(2) - N 2,=XL4'0000FFFF' - A 2,132(13) - ST 2,132(13) - B @@L29 -@@L32 EQU * - L 2,144(13) - A 2,=F'3' - ST 2,132(13) - L 2,144(13) - IC 2,1(2) - N 2,=F'-128' - CLM 2,1,=XL1'00' - BE @@L42 - L 2,132(13) - A 2,=F'1' - ST 2,132(13) -@@L42 EQU * - MVC 88(4,13),12(11) - MVC 92(4,13),132(13) - L 2,144(13) - SLR 3,3 - IC 3,0(2) - LR 2,3 - ST 2,96(13) - LA 1,88(,13) - L 15,=A(@@2) - BALR 14,15 - LR 2,15 - ST 2,104(13) - L 2,104(13) - LTR 2,2 - BNL @@L43 - B @@L5 -@@L43 EQU * - L 2,144(13) - SLR 3,3 - IC 3,0(2) - LR 2,3 - A 2,132(13) - ST 2,132(13) -@@L29 EQU * - MVC 144(4,13),132(13) - B @@L27 -@@L21 EQU * - L 2,140(13) - MVC 160(4,13),0(2) - B @@L19 -@@L5 EQU * - L 2,128(13) - LTR 2,2 - BE @@L44 - MVC 88(4,13),128(13) - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L44 EQU * - L 2,124(13) - LTR 2,2 - BE @@L45 - MVC 88(4,13),124(13) - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 -@@L45 EQU * - L 2,104(13) - LR 15,2 -* Function 'jesprint' epilogue - PDPEPIL -* Function 'jesprint' literal pool - DS 0D - LTORG -* Function 'jesprint' page table -@@PGT0 DS 0F - DC A(@@PG0) - -&FUNC SETC 'esc_print' - DS 0F - EJECT -* static function 'esc_print' prologue -* frame base=88, local stack=1040, call args=8 -&FUNC SETC 'esc_print' -@@2 PDPPRLG CINDEX=1,FRAME=1136,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'esc_print' code - MVC 96(4,13),=F'0' - L 2,8(11) - LTR 2,2 - BNE @@L47 - B @@L48 -@@L47 EQU * - NOPR 0 -@@L49 EQU * - L 2,8(11) - LA 3,1(0,0) - CLR 2,3 - BNH @@L50 - L 2,4(11) - A 2,8(11) - BCTR 2,0 - IC 2,0(2) - CLM 2,1,=XL1'40' - BE @@L51 - B @@L50 -@@L51 EQU * - L 2,8(11) - BCTR 2,0 - ST 2,8(11) - B @@L49 -@@L50 EQU * - L 2,8(11) - LA 3,255(0,0) - CLR 2,3 - BNH @@L53 - MVC 8(4,11),=F'255' -@@L53 EQU * - L 3,4(11) - L 2,8(11) - LR 1,3 => our print line - LR 14,2 => length of line - BCTR 14,0 decrement for execute - EX 14,TRLINE translate unsafe characters - MVC 88(4,13),4(11) - MVC 92(4,13),8(11) - L 2,0(11) - LA 1,88(,13) - LA 15,0(2) - BALR 14,15 - LR 2,15 - ST 2,96(13) -@@L48 EQU * - L 2,96(13) - LR 15,2 -* Function 'esc_print' epilogue - PDPEPIL -* Function 'esc_print' literal pool - DS 0D - LTORG -* Function 'esc_print' page table -@@PGT1 DS 0F - DC A(@@PG1) - -TRLINE TR 0(*-*,1),PRTXLATE REMOVE UNPRINTABLES - -PRTXLATE DC 64C' ',191AL1(*-PRTXLATE),C' ' - END diff --git a/src/crent370/jes/jesreque.c b/src/crent370/jes/jesreque.c deleted file mode 100644 index f6d9ce6..0000000 --- a/src/crent370/jes/jesreque.c +++ /dev/null @@ -1,47 +0,0 @@ -#include -#include -#include -#include - -int jesreque(const char *jobname, const char *jobid, const char *oclass) -{ - int rc = -1; - SSOB ssob; - SSSO ssso; - - /* we must have either job name or job id (both are allowed) */ - if (!jobname && !jobid) goto quit; - - initssob(&ssob, &ssso); /* initialize the SSOB header */ - ssob.SSOBFUNC = SSOBSOUT; /* request SYSOUT function */ - - memset(&ssso, 0, sizeof(SSSO)); /* clear the SYSOUT parm list */ - ssso.SSSOLEN = SSSOSIZE; /* length of SYSOUT parm list */ - ssso.SSSOUFLG |= SSSOSETC; /* use SSSOCLAS as disposition */ - ssso.SSSOUFLG |= SSSORLSE; /* release all selected datasets*/ - ssso.SSSOFLG1 |= SSSOHLD; /* include HELD output */ - - if (jobname) { - strcpyp(ssso.SSSOJOBN, sizeof(ssso.SSSOJOBN), (void*)jobname, ' '); - ssso.SSSOFLG1 |= SSSOSJBN; /* job name present */ - } - - if (jobid) { - strcpyp(ssso.SSSOJOBI, sizeof(ssso.SSSOJOBI), (void*)jobid, ' '); - ssso.SSSOFLG1 |= SSSOSJBI; /* job id present */ - } - - if (!oclass || *oclass == 0) { - oclass = "C"; /* default to output class C */ - } - ssso.SSSOCLAS = *oclass; - - ssso.SSSOFLG2 = SSSOCTRL; /* processing completed */ - - iefssreq(&ssob); /* send request to jes */ - - rc = ssob.SSOBRETN; - -quit: - return rc; -} diff --git a/src/crent370/jes/jesreque.o b/src/crent370/jes/jesreque.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/jes/jesreque.s b/src/crent370/jes/jesreque.s deleted file mode 100644 index 7026206..0000000 --- a/src/crent370/jes/jesreque.s +++ /dev/null @@ -1,157 +0,0 @@ - TITLE '/home/projects/crent370/jes/jesreque.c' - COPY PDPTOP - CSECT -* Program text area -@@LC0 EQU * - DC C'C' - DC X'0' - DS 0F - EJECT -* external function 'jesreque' prologue -* frame base=88, local stack=152, call args=16 -&FUNC SETC 'jesreque' -JESREQUE PDPPRLG CINDEX=0,FRAME=256,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'jesreque' code - MVC 104(4,13),=F'-1' - L 2,0(11) - LTR 2,2 - BNE @@L4 - L 2,4(11) - LTR 2,2 - BNE @@L4 - B @@L5 -@@L4 EQU * - LA 2,112(,13) - ST 2,88(13) - LA 2,136(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(INITSSOB) - BALR 14,15 - MVC 118(2,13),=H'1' - LA 2,136(,13) - ST 2,88(13) - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'120' - LA 1,88(,13) - L 15,=A(@@0) - BALR 14,15 - MVC 136(2,13),=H'120' - IC 2,138(13) - O 2,=F'-128' - STC 2,138(13) - IC 2,138(13) - O 2,=F'8' - STC 2,138(13) - IC 2,140(13) - O 2,=F'-128' - STC 2,140(13) - L 2,0(11) - LTR 2,2 - BE @@L6 - LA 2,136(,13) - A 2,=F'8' - ST 2,88(13) - MVC 92(4,13),=F'8' - MVC 96(4,13),0(11) - MVC 100(4,13),=F'64' - LA 1,88(,13) - L 15,=V(STRCPYP) - BALR 14,15 - IC 2,140(13) - O 2,=F'16' - STC 2,140(13) -@@L6 EQU * - L 2,4(11) - LTR 2,2 - BE @@L7 - LA 2,136(,13) - A 2,=F'16' - ST 2,88(13) - MVC 92(4,13),=F'8' - MVC 96(4,13),4(11) - MVC 100(4,13),=F'64' - LA 1,88(,13) - L 15,=V(STRCPYP) - BALR 14,15 - IC 2,140(13) - O 2,=F'8' - STC 2,140(13) -@@L7 EQU * - L 2,8(11) - LTR 2,2 - BE @@L9 - L 2,8(11) - IC 2,0(2) - CLM 2,1,=XL1'00' - BNE @@L8 -@@L9 EQU * - MVC 8(4,11),=A(@@LC0) -@@L8 EQU * - L 2,8(11) - MVC 160(1,13),0(2) - MVI 141(13),128 - LA 2,112(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(IEFSSREQ) - BALR 14,15 - MVC 104(4,13),124(13) -@@L5 EQU * - L 2,104(13) - LR 15,2 -* Function 'jesreque' epilogue - PDPEPIL -* Function 'jesreque' literal pool - DS 0D - LTORG -* Function 'jesreque' page table -@@PGT0 DS 0F - DC A(@@PG0) - DS 0F - EJECT -* static function 'memset' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'memset' -@@0 PDPPRLG CINDEX=1,FRAME=88,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'memset' code - L 4,0(11) - L 3,8(11) - L 2,4(11) - -*** MEMSET *** - LR 14,4 => target (s) - LR 15,3 => length (n) - SLR 0,0 => source (NULL) - LR 1,2 fill character - SLL 1,24 move fill to high byte - MVCL 14,0 Set target to fill character - L 2,0(11) - LR 15,2 -* Function 'memset' epilogue - PDPEPIL -* Function 'memset' literal pool - DS 0D - LTORG -* Function 'memset' page table -@@PGT1 DS 0F - DC A(@@PG1) - END diff --git a/src/crent370/jes/jesxdone.c b/src/crent370/jes/jesxdone.c deleted file mode 100644 index daa7bff..0000000 --- a/src/crent370/jes/jesxdone.c +++ /dev/null @@ -1,24 +0,0 @@ -#include -#include - -int jesxdone(SSSO *ssso) -{ - int rc = -1; - SSOB ssob; - - initssob(&ssob, ssso); /* initialize the SSOB header */ - ssob.SSOBFUNC = SSOBSOUT; /* request SYSOUT function */ - - ssso->SSSOFLG1 = 0; /* no request for SYSOUT */ - ssso->SSSOFLG2 = SSSOCTRL; /* tell jes we're done */ - - iefssreq(&ssob); /* send request to jes */ -#if 0 - wtodumpf(&ssob, sizeof(ssob), "jesxdone SSOB after IEFSSREQ"); - wtodumpf(ssso, sizeof(SSSO), "jesxdone SSSO after IEFSSREQ"); -#endif - rc = ssob.SSOBRETN; - -quit: - return rc; -} diff --git a/src/crent370/jes/jesxdone.o b/src/crent370/jes/jesxdone.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/jes/jesxdone.s b/src/crent370/jes/jesxdone.s deleted file mode 100644 index 11b4d15..0000000 --- a/src/crent370/jes/jesxdone.s +++ /dev/null @@ -1,50 +0,0 @@ - TITLE '/home/projects/crent370/jes/jesxdone.c' - COPY PDPTOP - CSECT -* Program text area - DS 0F - EJECT -* external function 'jesxdone' prologue -* frame base=88, local stack=32, call args=8 -&FUNC SETC 'jesxdone' -JESXDONE PDPPRLG CINDEX=0,FRAME=128,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'jesxdone' code - MVC 96(4,13),=F'-1' - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),0(11) - LA 1,88(,13) - L 15,=V(INITSSOB) - BALR 14,15 - MVC 110(2,13),=H'1' - L 2,0(11) - MVI 4(2),0 - L 2,0(11) - MVI 5(2),128 - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(IEFSSREQ) - BALR 14,15 - MVC 96(4,13),116(13) -@@L4 EQU * - L 2,96(13) - LR 15,2 -* Function 'jesxdone' epilogue - PDPEPIL -* Function 'jesxdone' literal pool - DS 0D - LTORG -* Function 'jesxdone' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/jes/jesxwrtr.c b/src/crent370/jes/jesxwrtr.c deleted file mode 100644 index 08b3158..0000000 --- a/src/crent370/jes/jesxwrtr.c +++ /dev/null @@ -1,58 +0,0 @@ -#include -#include -#include - -int jesxwrtr(SSSO *ssso, const char *class_list, const char *dest, const char *form) -{ - int rc = -1; - SSOB ssob; - - if (!ssso) goto quit; - - initssob(&ssob, ssso); /* initialize the SSOB header */ - ssob.SSOBFUNC = SSOBSOUT; /* request SYSOUT function */ - - memset(ssso, 0, sizeof(SSSO)); /* clear the SYSOUT parm list */ - ssso->SSSOLEN = SSSOSIZE; /* length of SYSOUT parm list */ - - if (class_list) { - strcpyp(ssso->SSSOCLSL, sizeof(ssso->SSSOCLSL), (char*)class_list, ' '); - if (ssso->SSSOCLSL[0] > ' ') { - ssso->SSSOFLG1 |= SSSOSCLS; /* use SYSOUT class */ - } - } - - if (dest) { - strcpyp(ssso->SSSODEST, sizeof(ssso->SSSODEST), (char*)dest, ' '); - if (ssso->SSSODEST[0] > ' ') { - ssso->SSSOFLG1 |= SSSODST; /* use SYSOUT dest */ - } - } - - if (form) { - strcpyp(ssso->SSSOFORM, sizeof(ssso->SSSOFORM), (char*)form, ' '); - if (ssso->SSSOFORM[0] > ' ') { - ssso->SSSOFLG1 |= SSSOSFRM; /* use SYSOUT form */ - } - } - - if (!ssso->SSSOFLG1) goto quit; /* no selection criteria */ - - iefssreq(&ssob); /* send request to jes */ -#if 0 - wtodumpf(&ssob, sizeof(ssob), "jesxwrtr SSOB after IEFSSREQ"); - wtodumpf(ssso, sizeof(SSSO), "jesxwrtr SSSO after IEFSSREQ"); -#endif -#if 0 - if (ssso->SSSOWTRC) { - __asm__("MODESET KEY=ZERO,MODE=SUP"); - wtodumpf(ssso->SSSOWTRC, sizeof(WTRC), "WTRC"); - __asm__("MODESET KEY=NZERO,MODE=PROB"); - } -#endif - - rc = ssob.SSOBRETN; - -quit: - return rc; -} diff --git a/src/crent370/jes/jesxwrtr.o b/src/crent370/jes/jesxwrtr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/jes/jesxwrtr.s b/src/crent370/jes/jesxwrtr.s deleted file mode 100644 index 19dc75b..0000000 --- a/src/crent370/jes/jesxwrtr.s +++ /dev/null @@ -1,168 +0,0 @@ - TITLE '/home/projects/crent370/jes/jesxwrtr.c' - COPY PDPTOP - CSECT -* Program text area - DS 0F - EJECT -* external function 'jesxwrtr' prologue -* frame base=88, local stack=32, call args=16 -&FUNC SETC 'jesxwrtr' -JESXWRTR PDPPRLG CINDEX=0,FRAME=136,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'jesxwrtr' code - MVC 104(4,13),=F'-1' - L 2,0(11) - LTR 2,2 - BNE @@L4 - B @@L5 -@@L4 EQU * - LA 2,112(,13) - ST 2,88(13) - MVC 92(4,13),0(11) - LA 1,88(,13) - L 15,=V(INITSSOB) - BALR 14,15 - MVC 118(2,13),=H'1' - MVC 88(4,13),0(11) - MVC 92(4,13),=F'0' - MVC 96(4,13),=F'120' - LA 1,88(,13) - L 15,=A(@@0) - BALR 14,15 - L 2,0(11) - MVC 0(2,2),=H'120' - L 2,4(11) - LTR 2,2 - BE @@L6 - L 2,0(11) - A 2,=F'100' - ST 2,88(13) - MVC 92(4,13),=F'8' - MVC 96(4,13),4(11) - MVC 100(4,13),=F'64' - LA 1,88(,13) - L 15,=V(STRCPYP) - BALR 14,15 - L 2,0(11) - IC 2,100(2) - CLM 2,1,=XL1'40' - BNH @@L6 - L 2,0(11) - L 3,0(11) - IC 3,4(3) - O 3,=F'64' - STC 3,4(2) -@@L6 EQU * - L 2,8(11) - LTR 2,2 - BE @@L8 - L 2,0(11) - A 2,=F'28' - ST 2,88(13) - MVC 92(4,13),=F'8' - MVC 96(4,13),8(11) - MVC 100(4,13),=F'64' - LA 1,88(,13) - L 15,=V(STRCPYP) - BALR 14,15 - L 2,0(11) - IC 2,28(2) - CLM 2,1,=XL1'40' - BNH @@L8 - L 2,0(11) - L 3,0(11) - IC 3,4(3) - O 3,=F'32' - STC 3,4(2) -@@L8 EQU * - L 2,12(11) - LTR 2,2 - BE @@L10 - L 2,0(11) - A 2,=F'96' - ST 2,88(13) - MVC 92(4,13),=F'4' - MVC 96(4,13),12(11) - MVC 100(4,13),=F'64' - LA 1,88(,13) - L 15,=V(STRCPYP) - BALR 14,15 - L 2,0(11) - IC 2,96(2) - CLM 2,1,=XL1'40' - BNH @@L10 - L 2,0(11) - L 3,0(11) - IC 3,4(3) - O 3,=F'2' - STC 3,4(2) -@@L10 EQU * - L 2,0(11) - IC 2,4(2) - CLM 2,1,=XL1'00' - BNE @@L12 - B @@L5 -@@L12 EQU * - LA 2,112(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(IEFSSREQ) - BALR 14,15 - MVC 104(4,13),124(13) -@@L5 EQU * - L 2,104(13) - LR 15,2 -* Function 'jesxwrtr' epilogue - PDPEPIL -* Function 'jesxwrtr' literal pool - DS 0D - LTORG -* Function 'jesxwrtr' page table -@@PGT0 DS 0F - DC A(@@PG0) - DS 0F - EJECT -* static function 'memset' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'memset' -@@0 PDPPRLG CINDEX=1,FRAME=88,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'memset' code - L 4,0(11) - L 3,8(11) - L 2,4(11) - -*** MEMSET *** - LR 14,4 => target (s) - LR 15,3 => length (n) - SLR 0,0 => source (NULL) - LR 1,2 fill character - SLL 1,24 move fill to high byte - MVCL 14,0 Set target to fill character - L 2,0(11) - LR 15,2 -* Function 'memset' epilogue - PDPEPIL -* Function 'memset' literal pool - DS 0D - LTORG -* Function 'memset' page table -@@PGT1 DS 0F - DC A(@@PG1) - END diff --git a/src/crent370/jes/josjobfr.c b/src/crent370/jes/josjobfr.c deleted file mode 100644 index e7fe47f..0000000 --- a/src/crent370/jes/josjobfr.c +++ /dev/null @@ -1,36 +0,0 @@ -/* JESJOBFR.C - Free JESJOB array */ -#include -#include -#include "hasphct.h" /* JES Checkpoint Control Table, record 3 in HASPCKPT */ -#include "haspjct.h" /* JES Job Control Table */ -#include "hasppddb.h" /* JES PDDB Print Datasets */ -#include "haspiot.h" /* JES IOT */ -#include "clibjes2.h" /* JES prototypes */ -#include "clibary.h" /* dynamic array */ - -int jesjobfr(JESJOB ***pppjesjob) -{ - JESJOB **jesjob = NULL; - unsigned count; - unsigned n; - - if (!pppjesjob) goto quit; - jesjob = *pppjesjob; - - count = arraycount(&jesjob); - for (n=0; n < count; n++) { - jesjobf1(&jesjob[n]); - } - arrayfree(pppjesjob); - *pppjesjob = NULL; - -quit: - return 0; -} - - - - - - - diff --git a/src/crent370/jes/josjobfr.o b/src/crent370/jes/josjobfr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/jes/josjobfr.s b/src/crent370/jes/josjobfr.s deleted file mode 100644 index d2d5eef..0000000 --- a/src/crent370/jes/josjobfr.s +++ /dev/null @@ -1,72 +0,0 @@ - TITLE '/home/projects/crent370/jes/josjobfr.c' - COPY PDPTOP - CSECT -* Program text area - DS 0F - EJECT -* external function 'jesjobfr' prologue -* frame base=88, local stack=16, call args=8 -&FUNC SETC 'jesjobfr' -JESJOBFR PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'jesjobfr' code - MVC 96(4,13),=F'0' - L 2,0(11) - LTR 2,2 - BNE @@L4 - B @@L5 -@@L4 EQU * - L 2,0(11) - MVC 96(4,13),0(2) - LA 2,96(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 2,15 - ST 2,100(13) - MVC 104(4,13),=F'0' -@@L6 EQU * - L 2,104(13) - CL 2,100(13) - BL @@L9 - B @@L7 -@@L9 EQU * - L 2,104(13) - MH 2,=H'4' - A 2,96(13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(JESJOBF1) - BALR 14,15 - L 2,104(13) - A 2,=F'1' - ST 2,104(13) - B @@L6 -@@L7 EQU * - MVC 88(4,13),0(11) - LA 1,88(,13) - L 15,=V(@@ARFRE) - BALR 14,15 - L 2,0(11) - MVC 0(4,2),=F'0' -@@L5 EQU * - SLR 2,2 - LR 15,2 -* Function 'jesjobfr' epilogue - PDPEPIL -* Function 'jesjobfr' literal pool - DS 0D - LTORG -* Function 'jesjobfr' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/jes/makefile b/src/crent370/jes/makefile deleted file mode 100644 index 2099e64..0000000 --- a/src/crent370/jes/makefile +++ /dev/null @@ -1,66 +0,0 @@ -# -# makefile for crent370/jes c files -# -# gccmvs compiler flags -INC1 := -I. -INC2 := -I/home/projects/crent370/include -CFLAGS := -S $(INC1) $(INC2) -# -# c source code files -C_FILES := jescanj.c \ - jesclose.c \ - jesdelj.c \ - jesjob.c \ - jesjobf1.c \ - jesjobfr.c \ - jesopen.c \ - jesprint.c \ - jesreque.c \ - jesxdone.c \ - jesxwrtr.c \ - josjobfr.c - -# non-generated .asm assembler source files -A_FILES := - -# generated .s assembler source files (one for each source file) -S_FILES := $(foreach filename,$(C_FILES),$(filename:.c=.s)) - -# object files (one for each .c and .asm source file) -O_FILES := $(foreach filename,$(C_FILES),$(filename:.c=.o)) \ - $(foreach filename,$(A_FILES),$(filename:.asm=.o)) - -# export MACn variables for mvsasm->jobasm script -export MAC1=MDR.CRENT370.MACLIB - -# export dataset names used by mvsasm script -export MVSASM_PUNCH=MDR.CRENT370.OBJECT -export MVSASM_SYSLMOD=MDR.CRENT370.NCALIB - -all: $(S_FILES) $(O_FILES) - @echo "Done" -# Note: PHONY is important here. Without it, implicit rules will try -# to build the executable "all", since the prereqs are ".o" files. -.PHONY: all - -# build object files from the generated assembler files (.s) -%.o: %.s - @echo "mvsasm $(notdir $<)" - @mvsasm "$<" - @touch "$@" - -# build object files from assembler files (.asm) -%.o: %.asm - @echo "mvsasm $(notdir $<)" - @mvsasm "$<" - @touch "$@" - -# compile C source files (.c) into assembler files (.s) -%.s: %.c - @echo "Compile $(notdir $<)" - gccmvs $(CFLAGS) -c $< -o $@ - -# remove generated files -clean: - @rm -f $(S_FILES) $(O_FILES) - diff --git a/src/crent370/maclib/clibcrt.copy b/src/crent370/maclib/clibcrt.copy deleted file mode 100644 index 80406f8..0000000 --- a/src/crent370/maclib/clibcrt.copy +++ /dev/null @@ -1,37 +0,0 @@ -* -* Keep CLIBCRT.COPY sync'd with CLIBCRT.H -* -@CLIBCRT DSECT -CRTEYE DS CL8 Eye catcher for dumps -CRTTCBU DS A old TCBUSER value -CRTSAVE DS A first save area address -CRTACEE DS A ACEE for this task/thread -CRTSEED DS F seed for rand()/srand() -CRTCTIME DS CL28 result for asctime() -CRTTZOFF DS F time zone offset (-west|+east) -CRTSTIME DS A STIMER exit plist -CRTCLIBL DS F length of CLIBCRT area -CRTHOSTE DS 10F hostent areas for DYN75 -CRTHOSTN DS CL80 host name for DYN75 -CRTESTCT DS F ESTAE stack count -CRTESTPL DS 20F ESTAE parameter list -CRTOPTS DS X copy of JFCBOPTS at startup -CRTAUTH DS X flags for @@AUTH - DS 2X unused -CRTERRNO DS F error number -CRTSTRTK DS A used by strtok for "old" ptr -CRTGRT DS A A(global C runtime anchor) -CRTTMPNM DS CL12 tmpnam() buffer -CRTTMS DS CL36 struct tm for gmtime() -CRTPUSH DS A push/pop function array -CRTARGS DS A push/pop arg array -CRTMUTX DS A mutex cleanup array -CRTAPP1 DS A application use #1 -CRTAPP2 DS A application use #2 -CRTUFS DS A Unix "like" File System - DS F unused/available -CRTNTOA DS CL16 "nnn.nnn.nnn.nnn" xxxx_ntoa() -CRTTRYRC DS F return/abend code from try() -CRTAVAIL DS 3F unused/available - DS 0D align to double word -CLIBCRT EQU @CLIBCRT,*-@CLIBCRT diff --git a/src/crent370/maclib/clibgrt.copy b/src/crent370/maclib/clibgrt.copy deleted file mode 100644 index ce24211..0000000 --- a/src/crent370/maclib/clibgrt.copy +++ /dev/null @@ -1,28 +0,0 @@ -* -* Keep CLIBGRT.COPY sync'd with CLIBGRT.H -* -@CLIBGRT DSECT -GRTEYE DS CL8 Eye catcher for dumps 'CLIBGRT' -GRTCLIBL DS H Length of CLIBGRT -GRTFLAG1 DS X flags - DS X unused -GRTTMPNM DS F tmpnam() counter -GRTEXIT DS A array of atexit() functions -GRTEXITA DS A array of on_exit() args -GRTFILE DS A open FILE handle array -GRTSOCK DS A open sockets array -GRTENV DS A environment variables array -GRTIN DS A stdin file handle -GRTOUT DS A stdout file handle -GRTERR DS A stderr file handle -GRTCOM DS A console communication -GRTAPP1 DS A for use by applications -GRTAPP2 DS A for use by applications -GRTAPP3 DS A for use by applications -GRTCTHRD DS A CTHDTASK array -GRTWSA DS A writable static array -GRTDEVTB DS A device array -GRTPTRS DS A pointer passed in via argv -* - DS 0D align to double word -CLIBGRT EQU @CLIBGRT,*-@CLIBGRT diff --git a/src/crent370/maclib/clibjpa.copy b/src/crent370/maclib/clibjpa.copy deleted file mode 100644 index ccf22ac..0000000 --- a/src/crent370/maclib/clibjpa.copy +++ /dev/null @@ -1,9 +0,0 @@ -@CLIBJPA DSECT -JPAEYE DS CL8'@@CLIB' Eye Catcher -JPACRT DS A(0) C Runtime Library Anchor (Task) - DS A(0) unused - DS A(0) unused - DS A(0) unused - DS A(0) unused - DS A(0) unused -CLIBJPA EQU @CLIBJPA,*-@CLIBJPA diff --git a/src/crent370/maclib/clibppa.copy b/src/crent370/maclib/clibppa.copy deleted file mode 100644 index 7886521..0000000 --- a/src/crent370/maclib/clibppa.copy +++ /dev/null @@ -1,23 +0,0 @@ -@CLIBPPA DSECT -PPAEYE DS CL4 00 Eye Catcher -PPAEYE$ EQU C'@PPA' ... -PPAPREV DS A(0) 04 Previous Save Area -PPANEXT DS A(0) 08 Next Save Area -PPACRT DS A(0) 0C C Runtime Library Anchor (Task) -PPAGRT DS A(0) 10 C Runtime Global Anchor (AS) -PPASAVE DS A(0) 14 saved "next" from TCBFSA -PPATIOT DS A 18 TIOT address -PPAPSCB DS A 1C PSCB address -PPAFLAG DS X 20 Processing flags -PPATSOFG EQU X'80' ... TSO foreground environment -PPATSOBG EQU X'40' ... TSO background environment -PPATIN EQU X'08' ... STDIN is terminal -PPATOUT EQU X'04' ... STDOUT is terminal -PPATERR EQU X'02' ... STDERR is terminal -PPASUBPL DS X 21 save area subpool number - DS 2X 22 unused / available -PPASTKLN DS F 24 stack area length -PPAEXITA DS A(0) 28 EXITA entry point address - DS F 2C unused / available - DS 0D force double word alignment -CLIBPPA EQU @CLIBPPA,*-@CLIBPPA diff --git a/src/crent370/maclib/clibregs.macro b/src/crent370/maclib/clibregs.macro deleted file mode 100644 index 84f46ec..0000000 --- a/src/crent370/maclib/clibregs.macro +++ /dev/null @@ -1,16 +0,0 @@ -R0 EQU 0 00000100 -R1 EQU 1 00000200 -R2 EQU 2 00000300 -R3 EQU 3 00000400 -R4 EQU 4 00000500 -R5 EQU 5 00000600 -R6 EQU 6 00000700 -R7 EQU 7 00000800 -R8 EQU 8 00000900 -R9 EQU 9 00001000 -R10 EQU 10 00001100 -R11 EQU 11 00001200 -R12 EQU 12 00001300 -R13 EQU 13 00001400 -R14 EQU 14 00001500 -R15 EQU 15 00001600 diff --git a/src/crent370/maclib/clibsupa.copy b/src/crent370/maclib/clibsupa.copy deleted file mode 100644 index 0dd70fc..0000000 --- a/src/crent370/maclib/clibsupa.copy +++ /dev/null @@ -1,135 +0,0 @@ -*********************************************************************** -* * -* The work area includes both a register save area and various * -* variables used by the different routines. * -* * -*********************************************************************** -DUMMY DSECT , -* CAMDUM CAMLST SEARCH,DSNAME,VOLSER,DSCB+44 -ZCAMDUM CAMLST SEARCH,*-*,*-*,*-* -ZCAMLEN EQU *-ZCAMDUM Length of CAMLST Template -ZBSAMDCB DCB MACRF=(RP,WP),DSORG=PS,DDNAME=BSAMDCB, input and output * - EXLST=1-1 JFCB and DCB exits added later -BSAMDCBZ EQU *-ZBSAMDCB -ZQSAMDCB DCB MACRF=P&OUTM.M,DSORG=PS,DDNAME=QSAMDCB -QSAMDCBZ EQU *-ZQSAMDCB -ZENDFILE LA R6,1 Indicate @@AREAD reached end-of-file - LNR R6,R6 Make negative - BR R14 Return to instruction after the GET -ZEOFRLEN EQU *-ZENDFILE - -WORKAREA DSECT -SAVEAREA DS 18F -DWORK DS D Extra work space -WWORK DS D Extra work space -DWDDNAM DS D Extra work space -WORKLEN EQU *-WORKAREA -JFCB DS 0F - IEFJFCBN LIST=YES Job File Control Block -CAMLST DS XL(ZCAMLEN) CAMLST for OBTAIN to get VTOC entry -* Format 1 Data Set Control Block -* N.B. Current program logic does not use DS1DSNAM, leaving 44 bytes -* of available space - IECSDSL1 1 Map the Format 1 DSCB -DSCBCCHH DS CL5 CCHHR of DSCB returned by OBTAIN - DS CL47 Rest of OBTAIN's 148 byte work area -OPENLEN EQU *-WORKAREA Length for @@AOPEN processing - SPACE 2 -*********************************************************************** -* * -* ZDCBAREA - the address of this memory is used by the C caller * -* as a "handle". The block of memory has different contents depending * -* on what sort of file is being opened, but it will be whatever the * -* assembler code is expecting, and the caller merely needs to * -* provide the handle (returned from AOPEN) in subsequent calls so * -* that the assembler can keep track of things. * -* * -* FILE ACCESS CONTROL BLOCK (N.B.-STARTS WITH DCBD DUE TO DSECT) * -* CONTAINS DCB, DECB, JFCB, DSCB 1, BUFFER POINTERS, FLAGS, ETC. * -* * -*********************************************************************** - DCBD DSORG=PS,DEVD=(DA,TA) Map Data Control Block - ORG IHADCB Overlay the DCB DSECT -ZDCBAREA DS 0H - DS CL(BSAMDCBZ) - READ DECB,SF,IHADCB,2-2,3-3,MF=L READ/WRITE BSAM - ORG IHADCB Only using one DCB - DS CL(QSAMDCBZ) so overlay this one - ORG IHADCB Only using one DCB -TAPEDCB DCB DDNAME=TAPE,MACRF=E,DSORG=PS,REPOS=Y,BLKSIZE=0, * - DEVD=TA LARGE SIZE - ORG TAPEDCB+84 LEAVE ROOM FOR DCBLRECL -ZXCPVOLS DC F'0' VOLUME COUNT -TAPECCW CCW 1,3-3,X'40',4-4 - CCW 3,3-3,X'20',1 -TAPEXLEN EQU *-TAPEDCB PATTERN TO MOVE -TAPEECB DC A(0) -TAPEIOB DC X'42,00,00,00' - DC A(TAPEECB) - DC 2A(0) - DC A(TAPECCW) - DC A(TAPEDCB) - DC 2A(0) - SPACE 1 - ORG IHADCB -ZPUTLINE PUTLINE MF=L PATTERN FOR TERMINAL I/O -*DSECT* IKJIOPL , - SPACE 1 -ZIOPL DS 0A MANUAL EXPANSION TO AVOID DSECT -IOPLUPT DS A PTR TO UPT -IOPLECT DS A PTR TO ECT -IOPLECB DS A PTR TO USER'S ECB -IOPLIOPB DS A PTR TO THE I/O SERVICE RTN PARM BLOCK -ZIOECB DS A TPUT ECB -ZIOECT DS A ORIGINATING ECT -ZIOUPT DS A UPT -ZIODDNM DS CL8 DD NAME AT OFFSET X'28' FOR DCB COMPAT. -ZGETLINE GETLINE MF=L TWO WORD GTPB - ORG , -OPENCLOS DS A OPEN/CLOSE parameter list -DCBXLST DS 2A 07 JFCB / 85 DCB EXIT -EOFR24 DS CL(ZEOFRLEN) - AIF ('&SYS' EQ 'S370').NOD24 If S/370, no 24-bit OPEN exit - DS 0H -DOPE24 DS CL(DOPELEN) DCB open 24-bit code -DOPE31 DS A Address of DCB open exit -.NOD24 ANOP , -ZBUFF1 DS A,F Address, length of buffer -ZBUFF2 DS A,F Address, length of 2nd buffer -KEPTREC DS A,F Address & length of saved rcd -* -BLKSIZE DS F Save area for input DCB BLKSIZE -LRECL DS F Save area for input DCB LRECL -BUFFADDR DS A 1/3 Location of the BLOCK Buffer -BUFFCURR DS A 2/3 Current record in the buffer -BUFFEND DS A 3/3 Address after end of current block -VBSADDR DS A Location of the VBS record build area -VBSEND DS A Addr. after end VBS record build area - SPACE 1 -ZWORK DS D Below the line work storage -DEVINFO DS 2F UCB Type / Max block size -MEMBER24 DS CL8 -RECFMIX DS X Record format index: 0-F 4-V 8-U -IOMFLAGS DS X Remember open MODE -IOFOUT EQU X'01' Output mode -IOFEXCP EQU X'08' Use EXCP for TAPE -IOFBLOCK EQU X'10' Using BSAM READ/WRITE mode -IOFUREC EQU X'40' DEVICE IS UNIT RECORD -IOFTERM EQU X'80' Using GETLINE/PUTLINE -IOPFLAGS DS X Remember prior events -IOFKEPT EQU X'01' Record info kept -IOFCONCT EQU X'02' Reread - unlike concatenation -IOFDCBEX EQU X'04' DCB exit entered -IOFCURSE EQU X'08' Write buffer recursion -IOFLIOWR EQU X'10' Last I/O was Write type -IOFLDATA EQU X'20' Output buffer has data -IOFLSDW EQU X'40' Spanned record incomplete -IOFLEOF EQU X'80' Encountered an End-of-File -FILEMODE DS X AOPEN requested record format dftl -FMFIX EQU 0 Fixed RECFM (blocked) -FMVAR EQU 1 Variable (blocked) -FMUND EQU 2 Undefined -ZRECFM DS X Equivalent RECFM bits -ZIOSAVE2 DS 18F Save area for physical write -SAVEADCB DS 18F Register save area for PUT -ZDCBLEN EQU *-ZDCBAREA diff --git a/src/crent370/maclib/clibvsfi.copy b/src/crent370/maclib/clibvsfi.copy deleted file mode 100644 index 350887b..0000000 --- a/src/crent370/maclib/clibvsfi.copy +++ /dev/null @@ -1,38 +0,0 @@ -@VSFILE DSECT -VSEYE DS CL8 00 eye catcher for dumps -VSDDNAME DS CL8 08 DD Name -VSZERO DS X 10 zero byte -VSFLAGS DS X 11 flags -VSOPEN EQU X'80' ... VSAM cluster is open -VSSTRTGE EQU X'40' ... start greater than or equal -VSWRITE EQU X'20' ... write record -VSERROR EQU X'02' ... Error has occured -VSEOF EQU X'01' ... EOF has occured -* -VSRC DS X 12 VSAM return code -VSRSN DS X 13 VSAM reason code -VSCOMP DS X 14 VSAM component -VSTYPE DS X 15 VSTYPE -VSKSDS EQU 0 ... keyed sequential dataset -VSESDS EQU 1 ... entry sequenced dataset -VSRRDS EQU 2 ... relative record number -* -VSACCESS DS X 16 VSACCESS -VSDIR EQU 0 ... direct access -VSSEQ EQU 1 ... sequential access -VSDYNAM EQU 2 ... dynamic access -* -VSMODE DS X 17 VSMODE -VSIN EQU 0 ... input (read only) -VSOUT EQU 1 ... output (write only) -VSUPD EQU 2 ... update (read and write) -* - IFGACB DSECT=NO 18 Access Control Block -$ACBLEN EQU *-IFGACB -VSAVAIL DS F 64 Available - IFGRPL DSECT=NO 68 Request Parameter List -$RPLLEN EQU *-IFGRPL - DS 0D Align to double word -VSSELF DS A B8 pointer to self, used in __vserr -VSRESET DS A BC reset function called by __vserr -VSFILE EQU @VSFILE,*-@VSFILE diff --git a/src/crent370/maclib/mvsmacs.macro b/src/crent370/maclib/mvsmacs.macro deleted file mode 100644 index 3cc9186..0000000 --- a/src/crent370/maclib/mvsmacs.macro +++ /dev/null @@ -1,214 +0,0 @@ -*********************************************************************** -* * -* Macros to support MVS * -* Written by Gerhard Postpischil * -* Released to the public domain * -* * -*********************************************************************** - MACRO , -&NM AMUSE &WRK1=R14,&WRK2=R15 - GBLC &SYS -.* -.* AMUSE sets addressing mode to back to the caller's -.* Expands nothing or label for S370 or S390 -.* Required after GO24 call to return data to caller -.* - AIF ('&SYS' NE 'S380').OLDSYS -&NM L &WRK1,4(,R13) Old save area - L &WRK1,12(,R14) Caller's mode in high bit - N &WRK1,=X'80000000' Kill address - LA &WRK2,*+4+2+2 Get new mode and address - OR &WRK1,&WRK2 - BSM R0,&WRK1 CONTINUE IN USER MODE - MEXIT , -.OLDSYS AIF ('&NM' EQ '').MEND -&NM DS 0H DEFINE LABEL ONLY -.MEND MEND , -* -* -* - MACRO , FIXED 2010.293 -&NM FUNEXIT &RC= - GBLC &SYS,&ZZSETSA,&ZZSETSL,&ZZSETSP - GBLB &ZZSETAM - LCLC &LBL -&LBL SETC '&NM' - AIF ('&ZZSETSL' NE '' AND '&RC' EQ '').JUSTF - AIF ('&ZZSETSA' EQ '').SAMESA - AIF ('&ZZSETSL' NE '').SAMESA -&LBL L R13,4(,R13) RESTORE HIGHER SA -&LBL SETC '' -.SAMESA AIF ('&RC' EQ '').LMALL - AIF ('&RC' EQ '(15)' OR '&RC' EQ '(R15)').NORC - AIF (K'&RC LT 3).LA - AIF ('&RC'(1,1) NE '(' OR '&RC'(2,1) EQ '(').LA - AIF ('&RC'(K'&RC,1) NE ')' OR '&RC'(K'&RC-1,1) EQ ')').LA -&LBL LR R15,&RC(1) -&LBL SETC '' - AGO .NORC -.LA ANOP , -&LBL LA R15,&RC SET RETURN CODE -&LBL SETC '' -.NORC AIF ('&ZZSETSL' EQ '').NOFRM - LR R1,R13 SAVE CURRENT SA - L R13,4(,R13) REGAIN CALLER'S SA - ST R15,16(,R13) SAVE RETURN CODE - FREEMAIN R,A=(1),LV=&ZZSETSL,SP=&ZZSETSP - AGO .LMALL GOTTA LOVE SPAGHETTI CODE -.NOFRM ANOP , -&LBL L R14,12(,R13) - LM R0,R12,20(R13) - AGO .EXMODE -.JUSTF ANOP , -&LBL LR R1,R13 SAVE CURRENT SA -&LBL SETC '' - L R13,4(,R13) REGAIN CALLER'S SA - FREEMAIN R,A=(1),LV=&ZZSETSL,SP=&ZZSETSP -.LMALL ANOP , -&LBL LM R14,R12,12(R13) RELOAD ALL -.EXMODE AIF (&ZZSETAM).BSM - BR R14 - MEXIT , -.BSM BSM R0,R14 - MEND , -* -* -* - MACRO , UPDATED 2010.293 -&NM FUNHEAD &ID=YES,&IO=NO,&AM=NO,&SAVE=,&US=YES -.* -.* MACRO TO BEGIN EACH FUNCTION -.* HANDLES STANDARD OS ENTRY CONVENTIONS -.* ID= YES | NO YES GENERATES DC WITH FUNCTION NAME -.* IO= YES | NO YES GENERATES LOAD / USING FOR ZDCBAREA -.* AM= YES | NO YES USES BSM TO PRESERVE CALER'S AMODE -.* SAVE=name USES STATIC SAVE AREA OF THAT NAME, -.* SETS R13, AND DECLARES ON USING -.* SAVE=(name,len{,subpool}) CREATES SAVE AREA WITH GETMAIN, -.* SETS R13, AND DECLARES ON USING -.* US= YES | NO YES - want a USING for R13 -.* Options used here are remembered and handled properly by -.* subsequent FUNEXIT macros -.* - GBLC &SYS,&ZZSETSA,&ZZSETSL,&ZZSETSP - GBLB &ZZSETAM - LCLC &LBL - LCLA &I -&I SETA K'&NM -&I SETA ((&I)/2*2+1) NEED ODD LENGTH FOR STM ALIGN -&LBL SETC '&NM' -&ZZSETAM SETB ('&AM' NE 'NO') -&ZZSETAM SETB (&ZZSETAM AND '&SYS' EQ 'S380') -&ZZSETSA SETC '' -&ZZSETSL SETC '' -&ZZSETSP SETC '' - ENTRY &NM - DROP , Isolate from other code - AIF ('&ID' EQ 'NO').SKIPID -&LBL B *+4+1+&I-&NM.(,R15) SKIP LABEL - DC AL1(&I),CL(&I)'&NM' EXPAND LABEL -&LBL SETC '' -.SKIPID AIF (NOT &ZZSETAM).SKIPAM -&LBL BSM R14,R0 PRESERVE AMODE -&LBL SETC '' -.SKIPAM ANOP , -&LBL STM R14,R12,12(R13) SAVE CALLER'S REGISTERS - LR R12,R15 - USING &NM,R12 - AIF ('&IO' EQ 'NO').SAVE - L R10,0(,R1) LOAD FILE WORK AREA - USING IHADCB,R10 -.SAVE AIF ('&SAVE' EQ '').MEND - AIF (N'&SAVE EQ 1).STATIC - AIF (N'&SAVE EQ 2).DYNAM -&ZZSETSP SETC '&SAVE(3)' -.DYNAM ANOP , -&ZZSETSL SETC '&SAVE(2)' -&ZZSETSA SETC '&SAVE(1)' - GETMAIN R,LV=&ZZSETSL,SP=&ZZSETSP - LR R14,R1 START OF NEW AREA - LA R15,&ZZSETSL LENGTH - SR R3,R3 ZERO FILL - MVCL R14,R2 CLEAR GOTTEN STORAGE - ST R1,8(,R13) POINT DOWN - ST R13,4(,R1) POINT UP - LR R2,R13 SAVE OLD SAVE - LR R13,R1 NEW SAVE AREA - USING &SAVE(1),R13 DECLARE IT - LM R14,R3,12(R2) RESTORE FROM ENTRY - MEXIT , -.STATIC LA R15,&SAVE(1) - ST R15,8(,R13) - ST R13,4(,R15) - LR R13,R15 -&ZZSETSA SETC '&SAVE(1)' - AIF ('&US' EQ 'NO').MEND - USING &SAVE(1),R13 DECLARE IT -.MEND MEND , -* -* -* - MACRO , -&NM GO24 &WORK=R15 - GBLC &SYS -.* -.* GO24 sets addressing mode to 24 for S380 -.* expands nothing or label for S370 or S390 -.* - AIF ('&SYS' NE 'S380').OLDSYS -&NM LA &WORK,*+6 GET PAST BSM WITH BIT 0 OFF - BSM R0,&WORK CONTINUE IN 24-BIT MODE - MEXIT , -.OLDSYS AIF ('&NM' EQ '').MEND -&NM DS 0H DEFINE LABEL ONLY -.MEND MEND , -* -* -* - MACRO , -&NM GO31 &WORK=R15 - GBLC &SYS -.* -.* GO31 sets addressing mode to 31 for S380. -.* expands nothing or label for S370 or S390 -.* - AIF ('&SYS' NE 'S380').OLDSYS -&NM LA &WORK,*+10 GET PAST BSM WITH BIT 0 ON - O &WORK,=X'80000000' SET MODE BIT - BSM R0,&WORK CONTINUE IN 31-BIT MODE - MEXIT , -.OLDSYS AIF ('&NM' EQ '').MEND -&NM DS 0H DEFINE LABEL ONLY -.MEND MEND , -* -* -* - MACRO , COMPILER DEPENDENT LOAD INTEGER -&NM LDINT &R,&A LOAD INTEGER VALUE FROM PARM LIST - GBLC &COMP COMPILER GCC OR C/370 -&NM L &R,&A LOAD PARM VALUE - AIF ('&COMP' EQ 'GCC').MEND -.* THIS LINE IS FOR ANYTHING NOT GCC: C/370 - L &R,0(,&R) LOAD INTEGER VALUE -.MEND MEND , -* -* -* - MACRO , -&NM QBSM &F1,&F2 - GBLC &SYS -.* -.* QBSM expands as BSM on environments that require such -.* mode switch (S380-only) -.* Otherwise it expands as BALR r1,r2 (instead of BSM r1,r2) -.* Unless r1 = 0, in which case, a simple BR r2 is done instead -.* - AIF ('&SYS' NE 'S380').OLDSYS -&NM BSM &F1,&F2 - MEXIT , -.OLDSYS AIF ('&F1' EQ '0' OR '&F1' EQ 'R0').BR -&NM BALR &F1,&F2 - MEXIT , -.BR ANOP , -&NM BR &F2 -.MEND MEND , diff --git a/src/crent370/maclib/pdp370.copy b/src/crent370/maclib/pdp370.copy deleted file mode 100644 index 0f5851b..0000000 --- a/src/crent370/maclib/pdp370.copy +++ /dev/null @@ -1,48 +0,0 @@ -********************************************************************** -* * -* This macro was written by Paul Edwards * -* Released to the public domain * -* * -********************************************************************** -********************************************************************** -* * -* PDPTOP - standard code for the start of every assembler file. * -* * -* (version customized for S/370 - see PDPTOP/PDPORIG for original) * -* * -********************************************************************** -* -* Is the GCC or C/370 calling convention being used? -* - GBLC &COMP Declare compiler switch -* -* What system are the compiles being done for? -* - GBLC &SYS Declare variable for system -* -* Which OS are we targetting? -* - GBLC &OS Declare compiler switch -* -* Are PUTs done in locate or move mode? -* - GBLC &OUTM -* -* -* -&COMP SETC 'GCC' Indicate that this is for GCC -* &COMP SETC 'C370' Indicate that this is for C/370 -&SYS SETC 'S370' Define either S370, S380 or S390 -&OUTM SETC 'M' Indicate move mode -* &OUTM SETC 'L' Indicate locate mode -&OS SETC 'UNKNOWN' Indicate that the OS is not known -* &OS SETC 'MVS' Indicate that this is for MVS -* &OS SETC 'MUSIC' Indicate that this is for MUSIC/SP -* -* AMODE/RMODE not available on S370. In the S/370 model, -* everything is 24-bit so these considerations are not -* important. -* -* AMODE ANY -* RMODE ANY -* diff --git a/src/crent370/maclib/pdp380.copy b/src/crent370/maclib/pdp380.copy deleted file mode 100644 index 2879220..0000000 --- a/src/crent370/maclib/pdp380.copy +++ /dev/null @@ -1,49 +0,0 @@ -********************************************************************** -* * -* This macro was written by Paul Edwards * -* Released to the public domain * -* * -********************************************************************** -********************************************************************** -* * -* PDPTOP - standard code for the start of every assembler file. * -* * -* (version customized for S/380 - see PDPTOP/PDPORIG for original) * -* * -********************************************************************** -* -* Is the GCC or C/370 calling convention being used? -* - GBLC &COMP Declare compiler switch -* -* What system are the compiles being done for? -* - GBLC &SYS Declare variable for system -* -* Which OS are we targetting? -* - GBLC &OS Declare compiler switch -* -* Are PUTs done in locate or move mode? -* - GBLC &OUTM -* -* -* -&COMP SETC 'GCC' Indicate that this is for GCC -* &COMP SETC 'C370' Indicate that this is for C/370 -&SYS SETC 'S380' Define either S370, S380 or S390 -&OUTM SETC 'M' Indicate move mode -* &OUTM SETC 'L' Indicate locate mode -&OS SETC 'UNKNOWN' Indicate that the OS is not known -* &OS SETC 'MVS' Indicate that this is for MVS -* &OS SETC 'MUSIC' Indicate that this is for MUSIC/SP -* -* The S/380 model (e.g. MVS/XA) is a hybrid model - the code -* needs to reside below the line so that it can do I/O, but it -* can address data above the line. So it has to constantly -* switch between AMODEs. -* - AMODE 31 - RMODE 24 -* diff --git a/src/crent370/maclib/pdp390.copy b/src/crent370/maclib/pdp390.copy deleted file mode 100644 index e60bc21..0000000 --- a/src/crent370/maclib/pdp390.copy +++ /dev/null @@ -1,49 +0,0 @@ -********************************************************************** -* * -* This macro was written by Paul Edwards * -* Released to the public domain * -* * -********************************************************************** -********************************************************************** -* * -* PDPTOP - standard code for the start of every assembler file. * -* * -* (version customized for S/390 - see PDPTOP/PDPORIG for original) * -* * -********************************************************************** -* -* Is the GCC or C/370 calling convention being used? -* - GBLC &COMP Declare compiler switch -* -* What system are the compiles being done for? -* - GBLC &SYS Declare variable for system -* -* Which OS are we targetting? -* - GBLC &OS Declare compiler switch -* -* Are PUTs done in locate or move mode? -* - GBLC &OUTM -* -* -* -&COMP SETC 'GCC' Indicate that this is for GCC -* &COMP SETC 'C370' Indicate that this is for C/370 -&SYS SETC 'S390' Define either S370, S380 or S390 -&OUTM SETC 'M' Indicate move mode -* &OUTM SETC 'L' Indicate locate mode -&OS SETC 'UNKNOWN' Indicate that the OS is not known -* &OS SETC 'MVS' Indicate that this is for MVS -* &OS SETC 'MUSIC' Indicate that this is for MUSIC/SP -* -* The S/390 model (with code able to reside above the 16 MB line) -* has no AMODE/RMODE restrictions. -* Note that this option isn't available under CMS, which -* requires the executable to be RMODE 24 - even under z/VM. -* - AMODE ANY - RMODE ANY -* diff --git a/src/crent370/maclib/pdpepil.macro b/src/crent370/maclib/pdpepil.macro deleted file mode 100644 index d5b991b..0000000 --- a/src/crent370/maclib/pdpepil.macro +++ /dev/null @@ -1,22 +0,0 @@ - MACRO 00000100 -&N PDPEPIL 00000200 - GBLC &FUNC 00000301 - GBLB &PDFEPIL 00000400 - AIF (&PDFEPIL).ONCED 00000500 -&PDFEPIL SETB 1 00000600 - PRINT OFF 00000702 -* 00000800 -* THE STANDARD GCC EXIT CODE MACRO 00000900 -* BY CHRIS LANGFORD AND DAVE JONES 00001000 -* AUGUST, 2006 00001100 -* 00001200 -* THIS CODE IS IN THE PUBLIC DOMAIN AND CAN BE USED WITHOUT 00001300 -* RESTRICTION IN ANY APPLICATION, EITHER COMMERCIAL OR NON-COMMERICAL, 00001400 -* AND CAN BE FREELY REDISTRIBUTED. 00001500 -* 00001600 - PRINT ON 00001702 -.ONCED ANOP , 00001800 -&N L 13,4(,13) 00001900 - RETURN (14,12),RC=(15) 00002000 -&FUNC SETC '' 00002101 - MEND 00002200 diff --git a/src/crent370/maclib/pdpmain.macro b/src/crent370/maclib/pdpmain.macro deleted file mode 100644 index 5c9282d..0000000 --- a/src/crent370/maclib/pdpmain.macro +++ /dev/null @@ -1,29 +0,0 @@ -********************************************************************** 00000100 -* * 00000200 -* THIS MACRO WAS WRITTEN BY PAUL EDWARDS * 00000300 -* RELEASED TO THE PUBLIC DOMAIN * 00000400 -* * 00000500 -********************************************************************** 00000600 -********************************************************************** 00000700 -* * 00000800 -* PDPMAIN - STANDARD CODE TO INSERT WHEN "MAIN" FOUND. * 00000900 -* * 00001000 -********************************************************************** 00001100 -* 00001200 - DS 0F 00001300 -* 00001400 -* EYECATCHER 00001500 -* 00001600 - DC C'GCCMVS!!' 00001700 -* 00001800 -* THIS IS THE NORMAL ENTRY POINT FOR THE MODULE REGARDLESS 00001900 -* OF WHETHER RUNNING ON Z/OS OR MVS 3.8J 00002000 -* 00002100 - EXTRN @@CRT0 00002200 - ENTRY @@MAIN 00002300 -@@MAIN DS 0H 00002400 - USING *,15 00002500 - L 15,=V(@@CRT0) 00002600 - BR 15 00002700 - LTORG 00002800 - DROP 15 00002900 diff --git a/src/crent370/maclib/pdporig.copy b/src/crent370/maclib/pdporig.copy deleted file mode 100644 index eb8d88b..0000000 --- a/src/crent370/maclib/pdporig.copy +++ /dev/null @@ -1,52 +0,0 @@ -********************************************************************** -* * -* This macro was written by Paul Edwards * -* Released to the public domain * -* * -********************************************************************** -********************************************************************** -* * -* PDPTOP - standard code for the start of every assembler file. * -* * -* Allow user to specify system-specific things * -* * -* * -********************************************************************** -* -* Is the GCC or C/370 calling convention being used? -* - GBLC &COMP Declare compiler switch -* -* What system are the compiles being done for? -* - GBLC &SYS Declare variable for system -* -* Which OS are we targetting? -* - GBLC &OS Declare compiler switch -* -* Are PUTs done in locate or move mode? -* - GBLC &OUTM -* -* -* -&COMP SETC 'GCC' Indicate that this is for GCC -* &COMP SETC 'C370' Indicate that this is for C/370 -&SYS SETC 'S380' Define either S370, S380 or S390 -&OUTM SETC 'M' Indicate move mode -* &OUTM SETC 'L' Indicate locate mode -&OS SETC 'UNKNOWN' Indicate that the OS is not known -* &OS SETC 'MVS' Indicate that this is for MVS -* &OS SETC 'MUSIC' Indicate that this is for MUSIC/SP -* -* AMODE/RMODE not available on S370 -* On S/380 they are a hybrid (currently) -* On S/390 there is no restriction -* -* MVS/XA and earlier versions of MVS/ESA should use the S/380 -* hybrid -* - AMODE 31 - RMODE 24 -* diff --git a/src/crent370/maclib/pdpprlg.macro b/src/crent370/maclib/pdpprlg.macro deleted file mode 100644 index 06c08ce..0000000 --- a/src/crent370/maclib/pdpprlg.macro +++ /dev/null @@ -1,42 +0,0 @@ - MACRO 00000100 -&N PDPPRLG &CINDEX=,&FRAME=,&BASER=,&ENTRY= 00000200 - GBLC &FUNC 00000301 - GBLB &PDFPRLG 00000400 - AIF (&PDFPRLG).ONCED 00000500 -&PDFPRLG SETB 1 00000600 - PRINT OFF 00000702 -* 00000800 -* THE STANDARD GCC ENTRY PROLOG MACRO 00000900 -* BY CHRIS LANGFORD AND DAVE JONES 00001000 -* AUGUST, 2006 00001100 -* 00001200 -* THIS CODE IS IN THE PUBLIC DOMAIN AND CAN BE USED WITHOUT 00001300 -* RESTRICTION IN ANY APPLICATION, EITHER COMMERCIAL OR NON-COMMERICAL, 00001400 -* AND CAN BE FREELY REDISTRIBUTED. 00001500 -* 00001600 - PRINT ON 00001702 -.ONCED AIF ('&ENTRY' EQ 'NO').NENT 00001800 -* 00001900 - ENTRY &N 00002000 -.NENT ANOP 00002100 -&N DS 0H 00002200 - USING *,&BASER 00002300 - AIF ('&FUNC' NE '').LNAME 00002401 - SAVE (14,12),,&N 00002500 - AGO .BASEREG 00002600 -.LNAME ANOP 00002700 - SAVE (14,12),,&FUNC 00002801 -.BASEREG ANOP 00002900 - LA &BASER,0(,15) 00003000 - L 15,76(,13) 00003100 - ST 13,4(,15) 00003200 - ST 15,8(,13) 00003300 - LR 13,15 00003400 - AIF ('&FRAME' EQ '' OR '&FRAME' EQ '0').COMNUM 00003500 - AIF (T'&FRAME NE 'N').NONNUM 00003600 - AIF (&FRAME GE 4096).NONNUM 00003700 - LA 15,&FRAME.(,15) 00003800 - AGO .COMNUM 00003900 -.NONNUM A 15,=A(&FRAME) 00004000 -.COMNUM ST 15,76(13) 00004100 - MEND 00004200 diff --git a/src/crent370/maclib/pdptop.copy b/src/crent370/maclib/pdptop.copy deleted file mode 100644 index f7c6f0b..0000000 --- a/src/crent370/maclib/pdptop.copy +++ /dev/null @@ -1,90 +0,0 @@ - PRINT OFF -********************************************************************** -* * -* This macro was written by Paul Edwards * -* Released to the public domain * -* * -********************************************************************** -********************************************************************** -* * -* PDPTOP - standard code for the start of every assembler file. * -* * -* (version customized for S/370 - see PDPTOP/PDPORIG for original) * -* * -********************************************************************** - GBLC &FUNC Function long name for SAVE -* -* Is the GCC or C/370 calling convention being used? -* - GBLC &COMP Declare compiler switch -* -* What system are the compiles being done for? -* - GBLC &SYS Declare variable for system -* -* Which OS are we targetting? -* - GBLC &OS Declare compiler switch -* -* Are PUTs done in locate or move mode? -* - GBLC &OUTM -* -* -* -&COMP SETC 'GCC' Indicate that this is for GCC -* &COMP SETC 'C370' Indicate that this is for C/370 -&SYS SETC 'S370' Define either S370, S380 or S390 -&OUTM SETC 'M' Indicate move mode -* &OUTM SETC 'L' Indicate locate mode -&OS SETC 'UNKNOWN' Indicate that the OS is not known -* &OS SETC 'MVS' Indicate that this is for MVS -* &OS SETC 'MUSIC' Indicate that this is for MUSIC/SP -* -* AMODE/RMODE not available on S370. In the S/370 model, -* everything is 24-bit so these considerations are not -* important. -* -* AMODE ANY -* RMODE ANY -* -R0 EQU 0 -R1 EQU 1 -R2 EQU 2 -R3 EQU 3 -R4 EQU 4 -R5 EQU 5 -R6 EQU 6 -R7 EQU 7 -R8 EQU 8 -R9 EQU 9 -R10 EQU 10 -R11 EQU 11 -R12 EQU 12 -R13 EQU 13 -R14 EQU 14 -R15 EQU 15 -* -DSA DSECT -DSAFLAGS DS F 00 +0 unused/available -DSAPREV DS F 04 +4 chain previous DSA/SAVEAREA -DSANEXT DS F 08 +8 chain next DSA/SAVEAREA -DSAR14 DS F 0C +12 callers R14 -DSAR15 DS F 10 +16 callers R15 -DSAR0 DS F 14 +20 callers R0 -DSAR1 DS F 18 +24 callers R1 -DSAR2 DS F 1C +28 callers R2 -DSAR3 DS F 20 +32 callers R3 -DSAR4 DS F 24 +36 callers R4 -DSAR5 DS F 28 +40 callers R5 -DSAR6 DS F 2C +44 callers R6 -DSAR7 DS F 30 +48 callers R7 -DSAR8 DS F 34 +52 callers R8 -DSAR9 DS F 38 +56 callers R9 -DSAR10 DS F 3C +60 callers R10 -DSAR11 DS F 40 +64 callers R11 -DSAR12 DS F 44 +68 callers R12 -DSALWA DS F 48 +72 language work area -DSANAB DS F 4C +76 next available byte -* - PRINT ON diff --git a/src/crent370/miniz/@@mzadlr.c b/src/crent370/miniz/@@mzadlr.c deleted file mode 100644 index 8d32353..0000000 --- a/src/crent370/miniz/@@mzadlr.c +++ /dev/null @@ -1,56 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#include - -__asm__("\n&FUNC SETC 'mz_adler32'"); -mz_ulong mz_adler32(mz_ulong adler, const unsigned char *ptr, size_t buf_len) -{ - mz_uint32 i, s1 = (mz_uint32)(adler & 0xffff), s2 = (mz_uint32)(adler >> 16); - size_t block_len = buf_len % 5552; - if (!ptr) - return MZ_ADLER32_INIT; - while (buf_len) - { - for (i = 0; i + 7 < block_len; i += 8, ptr += 8) - { - s1 += ptr[0], s2 += s1; - s1 += ptr[1], s2 += s1; - s1 += ptr[2], s2 += s1; - s1 += ptr[3], s2 += s1; - s1 += ptr[4], s2 += s1; - s1 += ptr[5], s2 += s1; - s1 += ptr[6], s2 += s1; - s1 += ptr[7], s2 += s1; - } - for (; i < block_len; ++i) - s1 += *ptr++, s2 += s1; - s1 %= 65521U, s2 %= 65521U; - buf_len -= block_len; - block_len = 5552; - } - return (s2 << 16) + s1; -} - diff --git a/src/crent370/miniz/@@mzcbnd.c b/src/crent370/miniz/@@mzcbnd.c deleted file mode 100644 index 4feeeca..0000000 --- a/src/crent370/miniz/@@mzcbnd.c +++ /dev/null @@ -1,33 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#define MZ_PRIVATE -#include - -__asm__("\n&FUNC SETC 'mz_compressBound'"); -mz_ulong mz_compressBound(mz_ulong source_len) -{ - return mz_deflateBound(NULL, source_len); -} diff --git a/src/crent370/miniz/@@mzcmp2.c b/src/crent370/miniz/@@mzcmp2.c deleted file mode 100644 index 6d92c90..0000000 --- a/src/crent370/miniz/@@mzcmp2.c +++ /dev/null @@ -1,58 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#define MZ_PRIVATE -#include - -__asm__("\n&FUNC SETC 'mz_compress2'"); -int mz_compress2(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len, int level) -{ - int status; - mz_stream stream; - memset(&stream, 0, sizeof(stream)); - - /* In case mz_ulong is 64-bits (argh I hate longs). */ - if ((source_len | *pDest_len) > 0xFFFFFFFFU) - return MZ_PARAM_ERROR; - - stream.next_in = pSource; - stream.avail_in = (mz_uint32)source_len; - stream.next_out = pDest; - stream.avail_out = (mz_uint32)*pDest_len; - - status = mz_deflateInit(&stream, level); - if (status != MZ_OK) - return status; - - status = mz_deflate(&stream, MZ_FINISH); - if (status != MZ_STREAM_END) - { - mz_deflateEnd(&stream); - return (status == MZ_OK) ? MZ_BUF_ERROR : status; - } - - *pDest_len = stream.total_out; - return mz_deflateEnd(&stream); -} diff --git a/src/crent370/miniz/@@mzcmpr.c b/src/crent370/miniz/@@mzcmpr.c deleted file mode 100644 index 4bba1da..0000000 --- a/src/crent370/miniz/@@mzcmpr.c +++ /dev/null @@ -1,33 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#define MZ_PRIVATE -#include - -__asm__("\n&FUNC SETC 'mz_compress'"); -int mz_compress(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len) -{ - return mz_compress2(pDest, pDest_len, pSource, source_len, MZ_DEFAULT_COMPRESSION); -} diff --git a/src/crent370/miniz/@@mzcore.c b/src/crent370/miniz/@@mzcore.c deleted file mode 100644 index 001d966..0000000 --- a/src/crent370/miniz/@@mzcore.c +++ /dev/null @@ -1,1063 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#include - -/* ------------------- Low-level Compression (independent from all decompression API's) */ - -/* Purposely making these tables static for faster init and thread safety. */ -static const mz_uint16 s_tdefl_len_sym[256] = - { - 257, 258, 259, 260, 261, 262, 263, 264, 265, 265, 266, 266, 267, 267, 268, 268, 269, 269, 269, 269, 270, 270, 270, 270, 271, 271, 271, 271, 272, 272, 272, 272, - 273, 273, 273, 273, 273, 273, 273, 273, 274, 274, 274, 274, 274, 274, 274, 274, 275, 275, 275, 275, 275, 275, 275, 275, 276, 276, 276, 276, 276, 276, 276, 276, - 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 285 - }; - -static const mz_uint8 s_tdefl_len_extra[256] = - { - 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0 - }; - -static const mz_uint8 s_tdefl_small_dist_sym[512] = - { - 0, 1, 2, 3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17 - }; - -static const mz_uint8 s_tdefl_small_dist_extra[512] = - { - 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7 - }; - -static const mz_uint8 s_tdefl_large_dist_sym[128] = - { - 0, 0, 18, 19, 20, 20, 21, 21, 22, 22, 22, 22, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29 - }; - -static const mz_uint8 s_tdefl_large_dist_extra[128] = - { - 0, 0, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 - }; - -static const mz_uint8 s_tdefl_packed_code_size_syms_swizzle[] = { 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 }; - -static const mz_uint mz_bitmasks[17] = { 0x0000, 0x0001, 0x0003, 0x0007, 0x000F, 0x001F, 0x003F, 0x007F, 0x00FF, 0x01FF, 0x03FF, 0x07FF, 0x0FFF, 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF }; - -static const mz_uint s_tdefl_num_probes[11] = { 0, 1, 6, 32, 16, 32, 128, 256, 512, 768, 1500 }; - -__asm__("\n&FUNC SETC 'tdefl_radix_sort_syms'"); -static tdefl_sym_freq *tdefl_radix_sort_syms(mz_uint num_syms, tdefl_sym_freq *pSyms0, tdefl_sym_freq *pSyms1) -{ - mz_uint32 total_passes = 2, pass_shift, pass, i, hist[256 * 2]; - tdefl_sym_freq *pCur_syms = pSyms0, *pNew_syms = pSyms1; - MZ_CLEAR_OBJ(hist); - for (i = 0; i < num_syms; i++) - { - mz_uint freq = pSyms0[i].m_key; - hist[freq & 0xFF]++; - hist[256 + ((freq >> 8) & 0xFF)]++; - } - while ((total_passes > 1) && (num_syms == hist[(total_passes - 1) * 256])) - total_passes--; - for (pass_shift = 0, pass = 0; pass < total_passes; pass++, pass_shift += 8) - { - const mz_uint32 *pHist = &hist[pass << 8]; - mz_uint offsets[256], cur_ofs = 0; - for (i = 0; i < 256; i++) - { - offsets[i] = cur_ofs; - cur_ofs += pHist[i]; - } - for (i = 0; i < num_syms; i++) - pNew_syms[offsets[(pCur_syms[i].m_key >> pass_shift) & 0xFF]++] = pCur_syms[i]; - { - tdefl_sym_freq *t = pCur_syms; - pCur_syms = pNew_syms; - pNew_syms = t; - } - } - return pCur_syms; -} - -/* tdefl_calculate_minimum_redundancy() originally written by: Alistair Moffat, alistair@cs.mu.oz.au, Jyrki Katajainen, jyrki@diku.dk, November 1996. */ -__asm__("\n&FUNC SETC 'tdefl_calculate_minimum_redundancy'"); -static void tdefl_calculate_minimum_redundancy(tdefl_sym_freq *A, int n) -{ - int root, leaf, next, avbl, used, dpth; - if (n == 0) - return; - else if (n == 1) - { - A[0].m_key = 1; - return; - } - A[0].m_key += A[1].m_key; - root = 0; - leaf = 2; - for (next = 1; next < n - 1; next++) - { - if (leaf >= n || A[root].m_key < A[leaf].m_key) - { - A[next].m_key = A[root].m_key; - A[root++].m_key = (mz_uint16)next; - } - else - A[next].m_key = A[leaf++].m_key; - if (leaf >= n || (root < next && A[root].m_key < A[leaf].m_key)) - { - A[next].m_key = (mz_uint16)(A[next].m_key + A[root].m_key); - A[root++].m_key = (mz_uint16)next; - } - else - A[next].m_key = (mz_uint16)(A[next].m_key + A[leaf++].m_key); - } - A[n - 2].m_key = 0; - for (next = n - 3; next >= 0; next--) - A[next].m_key = A[A[next].m_key].m_key + 1; - avbl = 1; - used = dpth = 0; - root = n - 2; - next = n - 1; - while (avbl > 0) - { - while (root >= 0 && (int)A[root].m_key == dpth) - { - used++; - root--; - } - while (avbl > used) - { - A[next--].m_key = (mz_uint16)(dpth); - avbl--; - } - avbl = 2 * used; - dpth++; - used = 0; - } -} - -__asm__("\n&FUNC SETC 'tdefl_huffman_enforce_max_code_size'"); -static void tdefl_huffman_enforce_max_code_size(int *pNum_codes, int code_list_len, int max_code_size) -{ - int i; - mz_uint32 total = 0; - if (code_list_len <= 1) - return; - for (i = max_code_size + 1; i <= TDEFL_MAX_SUPPORTED_HUFF_CODESIZE; i++) - pNum_codes[max_code_size] += pNum_codes[i]; - for (i = max_code_size; i > 0; i--) - total += (((mz_uint32)pNum_codes[i]) << (max_code_size - i)); - while (total != (1UL << max_code_size)) - { - pNum_codes[max_code_size]--; - for (i = max_code_size - 1; i > 0; i--) - if (pNum_codes[i]) - { - pNum_codes[i]--; - pNum_codes[i + 1] += 2; - break; - } - total--; - } -} - -__asm__("\n&FUNC SETC 'tdefl_optimize_huffman_table'"); -static void tdefl_optimize_huffman_table(tdefl_compressor *d, int table_num, int table_len, int code_size_limit, int static_table) -{ - int i, j, l, num_codes[1 + TDEFL_MAX_SUPPORTED_HUFF_CODESIZE]; - mz_uint next_code[TDEFL_MAX_SUPPORTED_HUFF_CODESIZE + 1]; - MZ_CLEAR_OBJ(num_codes); - if (static_table) - { - for (i = 0; i < table_len; i++) - num_codes[d->m_huff_code_sizes[table_num][i]]++; - } - else - { - tdefl_sym_freq syms0[TDEFL_MAX_HUFF_SYMBOLS], syms1[TDEFL_MAX_HUFF_SYMBOLS], *pSyms; - int num_used_syms = 0; - const mz_uint16 *pSym_count = &d->m_huff_count[table_num][0]; - for (i = 0; i < table_len; i++) - if (pSym_count[i]) - { - syms0[num_used_syms].m_key = (mz_uint16)pSym_count[i]; - syms0[num_used_syms++].m_sym_index = (mz_uint16)i; - } - - pSyms = tdefl_radix_sort_syms(num_used_syms, syms0, syms1); - tdefl_calculate_minimum_redundancy(pSyms, num_used_syms); - - for (i = 0; i < num_used_syms; i++) - num_codes[pSyms[i].m_key]++; - - tdefl_huffman_enforce_max_code_size(num_codes, num_used_syms, code_size_limit); - - MZ_CLEAR_OBJ(d->m_huff_code_sizes[table_num]); - MZ_CLEAR_OBJ(d->m_huff_codes[table_num]); - for (i = 1, j = num_used_syms; i <= code_size_limit; i++) - for (l = num_codes[i]; l > 0; l--) - d->m_huff_code_sizes[table_num][pSyms[--j].m_sym_index] = (mz_uint8)(i); - } - - next_code[1] = 0; - for (j = 0, i = 2; i <= code_size_limit; i++) - next_code[i] = j = ((j + num_codes[i - 1]) << 1); - - for (i = 0; i < table_len; i++) - { - mz_uint rev_code = 0, code, code_size; - if ((code_size = d->m_huff_code_sizes[table_num][i]) == 0) - continue; - code = next_code[code_size]++; - for (l = code_size; l > 0; l--, code >>= 1) - rev_code = (rev_code << 1) | (code & 1); - d->m_huff_codes[table_num][i] = (mz_uint16)rev_code; - } -} - -__asm__("\n&FUNC SETC 'tdefl_start_dynamic_block'"); -static void tdefl_start_dynamic_block(tdefl_compressor *d) -{ - int num_lit_codes, num_dist_codes, num_bit_lengths; - mz_uint i, total_code_sizes_to_pack, num_packed_code_sizes, rle_z_count, rle_repeat_count, packed_code_sizes_index; - mz_uint8 code_sizes_to_pack[TDEFL_MAX_HUFF_SYMBOLS_0 + TDEFL_MAX_HUFF_SYMBOLS_1], packed_code_sizes[TDEFL_MAX_HUFF_SYMBOLS_0 + TDEFL_MAX_HUFF_SYMBOLS_1], prev_code_size = 0xFF; - - d->m_huff_count[0][256] = 1; - - tdefl_optimize_huffman_table(d, 0, TDEFL_MAX_HUFF_SYMBOLS_0, 15, MZ_FALSE); - tdefl_optimize_huffman_table(d, 1, TDEFL_MAX_HUFF_SYMBOLS_1, 15, MZ_FALSE); - - for (num_lit_codes = 286; num_lit_codes > 257; num_lit_codes--) - if (d->m_huff_code_sizes[0][num_lit_codes - 1]) - break; - for (num_dist_codes = 30; num_dist_codes > 1; num_dist_codes--) - if (d->m_huff_code_sizes[1][num_dist_codes - 1]) - break; - - memcpy(code_sizes_to_pack, &d->m_huff_code_sizes[0][0], num_lit_codes); - memcpy(code_sizes_to_pack + num_lit_codes, &d->m_huff_code_sizes[1][0], num_dist_codes); - total_code_sizes_to_pack = num_lit_codes + num_dist_codes; - num_packed_code_sizes = 0; - rle_z_count = 0; - rle_repeat_count = 0; - - memset(&d->m_huff_count[2][0], 0, sizeof(d->m_huff_count[2][0]) * TDEFL_MAX_HUFF_SYMBOLS_2); - for (i = 0; i < total_code_sizes_to_pack; i++) - { - mz_uint8 code_size = code_sizes_to_pack[i]; - if (!code_size) - { - TDEFL_RLE_PREV_CODE_SIZE(); - if (++rle_z_count == 138) - { - TDEFL_RLE_ZERO_CODE_SIZE(); - } - } - else - { - TDEFL_RLE_ZERO_CODE_SIZE(); - if (code_size != prev_code_size) - { - TDEFL_RLE_PREV_CODE_SIZE(); - d->m_huff_count[2][code_size] = (mz_uint16)(d->m_huff_count[2][code_size] + 1); - packed_code_sizes[num_packed_code_sizes++] = code_size; - } - else if (++rle_repeat_count == 6) - { - TDEFL_RLE_PREV_CODE_SIZE(); - } - } - prev_code_size = code_size; - } - if (rle_repeat_count) - { - TDEFL_RLE_PREV_CODE_SIZE(); - } - else - { - TDEFL_RLE_ZERO_CODE_SIZE(); - } - - tdefl_optimize_huffman_table(d, 2, TDEFL_MAX_HUFF_SYMBOLS_2, 7, MZ_FALSE); - - TDEFL_PUT_BITS(2, 2); - - TDEFL_PUT_BITS(num_lit_codes - 257, 5); - TDEFL_PUT_BITS(num_dist_codes - 1, 5); - - for (num_bit_lengths = 18; num_bit_lengths >= 0; num_bit_lengths--) - if (d->m_huff_code_sizes[2][s_tdefl_packed_code_size_syms_swizzle[num_bit_lengths]]) - break; - num_bit_lengths = MZ_MAX(4, (num_bit_lengths + 1)); - TDEFL_PUT_BITS(num_bit_lengths - 4, 4); - for (i = 0; (int)i < num_bit_lengths; i++) - TDEFL_PUT_BITS(d->m_huff_code_sizes[2][s_tdefl_packed_code_size_syms_swizzle[i]], 3); - - for (packed_code_sizes_index = 0; packed_code_sizes_index < num_packed_code_sizes;) - { - mz_uint code = packed_code_sizes[packed_code_sizes_index++]; - MZ_ASSERT(code < TDEFL_MAX_HUFF_SYMBOLS_2); - TDEFL_PUT_BITS(d->m_huff_codes[2][code], d->m_huff_code_sizes[2][code]); - if (code >= 16) - TDEFL_PUT_BITS(packed_code_sizes[packed_code_sizes_index++], "\02\03\07"[code - 16]); - } -} - -__asm__("\n&FUNC SETC 'tdefl_start_static_block'"); -static void tdefl_start_static_block(tdefl_compressor *d) -{ - mz_uint i; - mz_uint8 *p = &d->m_huff_code_sizes[0][0]; - - for (i = 0; i <= 143; ++i) - *p++ = 8; - for (; i <= 255; ++i) - *p++ = 9; - for (; i <= 279; ++i) - *p++ = 7; - for (; i <= 287; ++i) - *p++ = 8; - - memset(d->m_huff_code_sizes[1], 5, 32); - - tdefl_optimize_huffman_table(d, 0, 288, 15, MZ_TRUE); - tdefl_optimize_huffman_table(d, 1, 32, 15, MZ_TRUE); - - TDEFL_PUT_BITS(1, 2); -} - -__asm__("\n&FUNC SETC 'tdefl_compress_lz_codes'"); -static mz_bool tdefl_compress_lz_codes(tdefl_compressor *d) -{ - mz_uint flags; - mz_uint8 *pLZ_codes; - - flags = 1; - for (pLZ_codes = d->m_lz_code_buf; pLZ_codes < d->m_pLZ_code_buf; flags >>= 1) - { - if (flags == 1) - flags = *pLZ_codes++ | 0x100; - if (flags & 1) - { - mz_uint sym, num_extra_bits; - mz_uint match_len = pLZ_codes[0], match_dist = (pLZ_codes[1] | (pLZ_codes[2] << 8)); - pLZ_codes += 3; - - MZ_ASSERT(d->m_huff_code_sizes[0][s_tdefl_len_sym[match_len]]); - TDEFL_PUT_BITS(d->m_huff_codes[0][s_tdefl_len_sym[match_len]], d->m_huff_code_sizes[0][s_tdefl_len_sym[match_len]]); - TDEFL_PUT_BITS(match_len & mz_bitmasks[s_tdefl_len_extra[match_len]], s_tdefl_len_extra[match_len]); - - if (match_dist < 512) - { - sym = s_tdefl_small_dist_sym[match_dist]; - num_extra_bits = s_tdefl_small_dist_extra[match_dist]; - } - else - { - sym = s_tdefl_large_dist_sym[match_dist >> 8]; - num_extra_bits = s_tdefl_large_dist_extra[match_dist >> 8]; - } - MZ_ASSERT(d->m_huff_code_sizes[1][sym]); - TDEFL_PUT_BITS(d->m_huff_codes[1][sym], d->m_huff_code_sizes[1][sym]); - TDEFL_PUT_BITS(match_dist & mz_bitmasks[num_extra_bits], num_extra_bits); - } - else - { - mz_uint lit = *pLZ_codes++; - MZ_ASSERT(d->m_huff_code_sizes[0][lit]); - TDEFL_PUT_BITS(d->m_huff_codes[0][lit], d->m_huff_code_sizes[0][lit]); - } - } - - TDEFL_PUT_BITS(d->m_huff_codes[0][256], d->m_huff_code_sizes[0][256]); - - return (d->m_pOutput_buf < d->m_pOutput_buf_end); -} - -__asm__("\n&FUNC SETC 'tdefl_compress_block'"); -static mz_bool tdefl_compress_block(tdefl_compressor *d, mz_bool static_block) -{ - if (static_block) - tdefl_start_static_block(d); - else - tdefl_start_dynamic_block(d); - return tdefl_compress_lz_codes(d); -} - -__asm__("\n&FUNC SETC 'tdefl_flush_block'"); -static int tdefl_flush_block(tdefl_compressor *d, int flush) -{ - mz_uint saved_bit_buf, saved_bits_in; - mz_uint8 *pSaved_output_buf; - mz_bool comp_block_succeeded = MZ_FALSE; - int n, use_raw_block = ((d->m_flags & TDEFL_FORCE_ALL_RAW_BLOCKS) != 0) && (d->m_lookahead_pos - d->m_lz_code_buf_dict_pos) <= d->m_dict_size; - mz_uint8 *pOutput_buf_start = ((d->m_pPut_buf_func == NULL) && ((*d->m_pOut_buf_size - d->m_out_buf_ofs) >= TDEFL_OUT_BUF_SIZE)) ? ((mz_uint8 *)d->m_pOut_buf + d->m_out_buf_ofs) : d->m_output_buf; - - d->m_pOutput_buf = pOutput_buf_start; - d->m_pOutput_buf_end = d->m_pOutput_buf + TDEFL_OUT_BUF_SIZE - 16; - - MZ_ASSERT(!d->m_output_flush_remaining); - d->m_output_flush_ofs = 0; - d->m_output_flush_remaining = 0; - - *d->m_pLZ_flags = (mz_uint8)(*d->m_pLZ_flags >> d->m_num_flags_left); - d->m_pLZ_code_buf -= (d->m_num_flags_left == 8); - - if ((d->m_flags & TDEFL_WRITE_ZLIB_HEADER) && (!d->m_block_index)) - { - TDEFL_PUT_BITS(0x78, 8); - TDEFL_PUT_BITS(0x01, 8); - } - - TDEFL_PUT_BITS(flush == TDEFL_FINISH, 1); - - pSaved_output_buf = d->m_pOutput_buf; - saved_bit_buf = d->m_bit_buffer; - saved_bits_in = d->m_bits_in; - - if (!use_raw_block) - comp_block_succeeded = tdefl_compress_block(d, (d->m_flags & TDEFL_FORCE_ALL_STATIC_BLOCKS) || (d->m_total_lz_bytes < 48)); - - /* If the block gets expanded, forget the current contents of the output buffer and send a raw block instead. */ - if (((use_raw_block) || ((d->m_total_lz_bytes) && ((d->m_pOutput_buf - pSaved_output_buf + 1U) >= d->m_total_lz_bytes))) && - ((d->m_lookahead_pos - d->m_lz_code_buf_dict_pos) <= d->m_dict_size)) - { - mz_uint i; - d->m_pOutput_buf = pSaved_output_buf; - d->m_bit_buffer = saved_bit_buf, d->m_bits_in = saved_bits_in; - TDEFL_PUT_BITS(0, 2); - if (d->m_bits_in) - { - TDEFL_PUT_BITS(0, 8 - d->m_bits_in); - } - for (i = 2; i; --i, d->m_total_lz_bytes ^= 0xFFFF) - { - TDEFL_PUT_BITS(d->m_total_lz_bytes & 0xFFFF, 16); - } - for (i = 0; i < d->m_total_lz_bytes; ++i) - { - TDEFL_PUT_BITS(d->m_dict[(d->m_lz_code_buf_dict_pos + i) & TDEFL_LZ_DICT_SIZE_MASK], 8); - } - } - /* Check for the extremely unlikely (if not impossible) case of the compressed block not fitting into the output buffer when using dynamic codes. */ - else if (!comp_block_succeeded) - { - d->m_pOutput_buf = pSaved_output_buf; - d->m_bit_buffer = saved_bit_buf, d->m_bits_in = saved_bits_in; - tdefl_compress_block(d, MZ_TRUE); - } - - if (flush) - { - if (flush == TDEFL_FINISH) - { - if (d->m_bits_in) - { - TDEFL_PUT_BITS(0, 8 - d->m_bits_in); - } - if (d->m_flags & TDEFL_WRITE_ZLIB_HEADER) - { - mz_uint i, a = d->m_adler32; - for (i = 0; i < 4; i++) - { - TDEFL_PUT_BITS((a >> 24) & 0xFF, 8); - a <<= 8; - } - } - } - else - { - mz_uint i, z = 0; - TDEFL_PUT_BITS(0, 3); - if (d->m_bits_in) - { - TDEFL_PUT_BITS(0, 8 - d->m_bits_in); - } - for (i = 2; i; --i, z ^= 0xFFFF) - { - TDEFL_PUT_BITS(z & 0xFFFF, 16); - } - } - } - - MZ_ASSERT(d->m_pOutput_buf < d->m_pOutput_buf_end); - - memset(&d->m_huff_count[0][0], 0, sizeof(d->m_huff_count[0][0]) * TDEFL_MAX_HUFF_SYMBOLS_0); - memset(&d->m_huff_count[1][0], 0, sizeof(d->m_huff_count[1][0]) * TDEFL_MAX_HUFF_SYMBOLS_1); - - d->m_pLZ_code_buf = d->m_lz_code_buf + 1; - d->m_pLZ_flags = d->m_lz_code_buf; - d->m_num_flags_left = 8; - d->m_lz_code_buf_dict_pos += d->m_total_lz_bytes; - d->m_total_lz_bytes = 0; - d->m_block_index++; - - if ((n = (int)(d->m_pOutput_buf - pOutput_buf_start)) != 0) - { - if (d->m_pPut_buf_func) - { - *d->m_pIn_buf_size = d->m_pSrc - (const mz_uint8 *)d->m_pIn_buf; - if (!(*d->m_pPut_buf_func)(d->m_output_buf, n, d->m_pPut_buf_user)) - return (d->m_prev_return_status = TDEFL_STATUS_PUT_BUF_FAILED); - } - else if (pOutput_buf_start == d->m_output_buf) - { - int bytes_to_copy = (int)MZ_MIN((size_t)n, (size_t)(*d->m_pOut_buf_size - d->m_out_buf_ofs)); - memcpy((mz_uint8 *)d->m_pOut_buf + d->m_out_buf_ofs, d->m_output_buf, bytes_to_copy); - d->m_out_buf_ofs += bytes_to_copy; - if ((n -= bytes_to_copy) != 0) - { - d->m_output_flush_ofs = bytes_to_copy; - d->m_output_flush_remaining = n; - } - } - else - { - d->m_out_buf_ofs += n; - } - } - - return d->m_output_flush_remaining; -} - -__asm__("\n&FUNC SETC 'tdefl_find_match'"); -static MZ_FORCEINLINE void tdefl_find_match(tdefl_compressor *d, mz_uint lookahead_pos, mz_uint max_dist, mz_uint max_match_len, mz_uint *pMatch_dist, mz_uint *pMatch_len) -{ - mz_uint dist, pos = lookahead_pos & TDEFL_LZ_DICT_SIZE_MASK, match_len = *pMatch_len, probe_pos = pos, next_probe_pos, probe_len; - mz_uint num_probes_left = d->m_max_probes[match_len >= 32]; - const mz_uint8 *s = d->m_dict + pos, *p, *q; - mz_uint8 c0 = d->m_dict[pos + match_len], c1 = d->m_dict[pos + match_len - 1]; - MZ_ASSERT(max_match_len <= TDEFL_MAX_MATCH_LEN); - if (max_match_len <= match_len) - return; - for (;;) - { - for (;;) - { - if (--num_probes_left == 0) - return; -#define TDEFL_PROBE \ - next_probe_pos = d->m_next[probe_pos]; \ - if ((!next_probe_pos) || ((dist = (mz_uint16)(lookahead_pos - next_probe_pos)) > max_dist)) \ - return; \ - probe_pos = next_probe_pos & TDEFL_LZ_DICT_SIZE_MASK; \ - if ((d->m_dict[probe_pos + match_len] == c0) && (d->m_dict[probe_pos + match_len - 1] == c1)) \ - break; - TDEFL_PROBE; - TDEFL_PROBE; - TDEFL_PROBE; - } - if (!dist) - break; - p = s; - q = d->m_dict + probe_pos; - for (probe_len = 0; probe_len < max_match_len; probe_len++) - if (*p++ != *q++) - break; - if (probe_len > match_len) - { - *pMatch_dist = dist; - if ((*pMatch_len = match_len = probe_len) == max_match_len) - return; - c0 = d->m_dict[pos + match_len]; - c1 = d->m_dict[pos + match_len - 1]; - } - } -} - -__asm__("\n&FUNC SETC 'tdefl_compress_fast'"); -static mz_bool tdefl_compress_fast(tdefl_compressor *d) -{ - /* Faster, minimally featured LZRW1-style match+parse loop with better register utilization. Intended for applications where raw throughput is valued more highly than ratio. */ - mz_uint lookahead_pos = d->m_lookahead_pos, lookahead_size = d->m_lookahead_size, dict_size = d->m_dict_size, total_lz_bytes = d->m_total_lz_bytes, num_flags_left = d->m_num_flags_left; - mz_uint8 *pLZ_code_buf = d->m_pLZ_code_buf, *pLZ_flags = d->m_pLZ_flags; - mz_uint cur_pos = lookahead_pos & TDEFL_LZ_DICT_SIZE_MASK; - - while ((d->m_src_buf_left) || ((d->m_flush) && (lookahead_size))) - { - const mz_uint TDEFL_COMP_FAST_LOOKAHEAD_SIZE = 4096; - mz_uint dst_pos = (lookahead_pos + lookahead_size) & TDEFL_LZ_DICT_SIZE_MASK; - mz_uint num_bytes_to_process = (mz_uint)MZ_MIN(d->m_src_buf_left, TDEFL_COMP_FAST_LOOKAHEAD_SIZE - lookahead_size); - d->m_src_buf_left -= num_bytes_to_process; - lookahead_size += num_bytes_to_process; - - while (num_bytes_to_process) - { - mz_uint32 n = MZ_MIN(TDEFL_LZ_DICT_SIZE - dst_pos, num_bytes_to_process); - memcpy(d->m_dict + dst_pos, d->m_pSrc, n); - if (dst_pos < (TDEFL_MAX_MATCH_LEN - 1)) - memcpy(d->m_dict + TDEFL_LZ_DICT_SIZE + dst_pos, d->m_pSrc, MZ_MIN(n, (TDEFL_MAX_MATCH_LEN - 1) - dst_pos)); - d->m_pSrc += n; - dst_pos = (dst_pos + n) & TDEFL_LZ_DICT_SIZE_MASK; - num_bytes_to_process -= n; - } - - dict_size = MZ_MIN(TDEFL_LZ_DICT_SIZE - lookahead_size, dict_size); - if ((!d->m_flush) && (lookahead_size < TDEFL_COMP_FAST_LOOKAHEAD_SIZE)) - break; - - while (lookahead_size >= 4) - { - mz_uint cur_match_dist, cur_match_len = 1; - mz_uint8 *pCur_dict = d->m_dict + cur_pos; - mz_uint first_trigram = TDEFL_READ_UNALIGNED_WORD32(pCur_dict) & 0xFFFFFF; - mz_uint hash = (first_trigram ^ (first_trigram >> (24 - (TDEFL_LZ_HASH_BITS - 8)))) & TDEFL_LEVEL1_HASH_SIZE_MASK; - mz_uint probe_pos = d->m_hash[hash]; - d->m_hash[hash] = (mz_uint16)lookahead_pos; - - if (((cur_match_dist = (mz_uint16)(lookahead_pos - probe_pos)) <= dict_size) && ((TDEFL_READ_UNALIGNED_WORD32(d->m_dict + (probe_pos &= TDEFL_LZ_DICT_SIZE_MASK)) & 0xFFFFFF) == first_trigram)) - { - const mz_uint16 *p = (const mz_uint16 *)pCur_dict; - const mz_uint16 *q = (const mz_uint16 *)(d->m_dict + probe_pos); - mz_uint32 probe_len = 32; - do - { - } while ((TDEFL_READ_UNALIGNED_WORD2(++p) == TDEFL_READ_UNALIGNED_WORD2(++q)) && (TDEFL_READ_UNALIGNED_WORD2(++p) == TDEFL_READ_UNALIGNED_WORD2(++q)) && - (TDEFL_READ_UNALIGNED_WORD2(++p) == TDEFL_READ_UNALIGNED_WORD2(++q)) && (TDEFL_READ_UNALIGNED_WORD2(++p) == TDEFL_READ_UNALIGNED_WORD2(++q)) && (--probe_len > 0)); - cur_match_len = ((mz_uint)(p - (const mz_uint16 *)pCur_dict) * 2) + (mz_uint)(*(const mz_uint8 *)p == *(const mz_uint8 *)q); - if (!probe_len) - cur_match_len = cur_match_dist ? TDEFL_MAX_MATCH_LEN : 0; - - if ((cur_match_len < TDEFL_MIN_MATCH_LEN) || ((cur_match_len == TDEFL_MIN_MATCH_LEN) && (cur_match_dist >= 8U * 1024U))) - { - cur_match_len = 1; - *pLZ_code_buf++ = (mz_uint8)first_trigram; - *pLZ_flags = (mz_uint8)(*pLZ_flags >> 1); - d->m_huff_count[0][(mz_uint8)first_trigram]++; - } - else - { - mz_uint32 s0, s1; - cur_match_len = MZ_MIN(cur_match_len, lookahead_size); - - MZ_ASSERT((cur_match_len >= TDEFL_MIN_MATCH_LEN) && (cur_match_dist >= 1) && (cur_match_dist <= TDEFL_LZ_DICT_SIZE)); - - cur_match_dist--; - - pLZ_code_buf[0] = (mz_uint8)(cur_match_len - TDEFL_MIN_MATCH_LEN); -#ifdef MINIZ_UNALIGNED_USE_MEMCPY - memcpy(&pLZ_code_buf[1], &cur_match_dist, sizeof(cur_match_dist)); -#else - *(mz_uint16 *)(&pLZ_code_buf[1]) = (mz_uint16)cur_match_dist; -#endif - pLZ_code_buf += 3; - *pLZ_flags = (mz_uint8)((*pLZ_flags >> 1) | 0x80); - - s0 = s_tdefl_small_dist_sym[cur_match_dist & 511]; - s1 = s_tdefl_large_dist_sym[cur_match_dist >> 8]; - d->m_huff_count[1][(cur_match_dist < 512) ? s0 : s1]++; - - d->m_huff_count[0][s_tdefl_len_sym[cur_match_len - TDEFL_MIN_MATCH_LEN]]++; - } - } - else - { - *pLZ_code_buf++ = (mz_uint8)first_trigram; - *pLZ_flags = (mz_uint8)(*pLZ_flags >> 1); - d->m_huff_count[0][(mz_uint8)first_trigram]++; - } - - if (--num_flags_left == 0) - { - num_flags_left = 8; - pLZ_flags = pLZ_code_buf++; - } - - total_lz_bytes += cur_match_len; - lookahead_pos += cur_match_len; - dict_size = MZ_MIN(dict_size + cur_match_len, (mz_uint)TDEFL_LZ_DICT_SIZE); - cur_pos = (cur_pos + cur_match_len) & TDEFL_LZ_DICT_SIZE_MASK; - MZ_ASSERT(lookahead_size >= cur_match_len); - lookahead_size -= cur_match_len; - - if (pLZ_code_buf > &d->m_lz_code_buf[TDEFL_LZ_CODE_BUF_SIZE - 8]) - { - int n; - d->m_lookahead_pos = lookahead_pos; - d->m_lookahead_size = lookahead_size; - d->m_dict_size = dict_size; - d->m_total_lz_bytes = total_lz_bytes; - d->m_pLZ_code_buf = pLZ_code_buf; - d->m_pLZ_flags = pLZ_flags; - d->m_num_flags_left = num_flags_left; - if ((n = tdefl_flush_block(d, 0)) != 0) - return (n < 0) ? MZ_FALSE : MZ_TRUE; - total_lz_bytes = d->m_total_lz_bytes; - pLZ_code_buf = d->m_pLZ_code_buf; - pLZ_flags = d->m_pLZ_flags; - num_flags_left = d->m_num_flags_left; - } - } - - while (lookahead_size) - { - mz_uint8 lit = d->m_dict[cur_pos]; - - total_lz_bytes++; - *pLZ_code_buf++ = lit; - *pLZ_flags = (mz_uint8)(*pLZ_flags >> 1); - if (--num_flags_left == 0) - { - num_flags_left = 8; - pLZ_flags = pLZ_code_buf++; - } - - d->m_huff_count[0][lit]++; - - lookahead_pos++; - dict_size = MZ_MIN(dict_size + 1, (mz_uint)TDEFL_LZ_DICT_SIZE); - cur_pos = (cur_pos + 1) & TDEFL_LZ_DICT_SIZE_MASK; - lookahead_size--; - - if (pLZ_code_buf > &d->m_lz_code_buf[TDEFL_LZ_CODE_BUF_SIZE - 8]) - { - int n; - d->m_lookahead_pos = lookahead_pos; - d->m_lookahead_size = lookahead_size; - d->m_dict_size = dict_size; - d->m_total_lz_bytes = total_lz_bytes; - d->m_pLZ_code_buf = pLZ_code_buf; - d->m_pLZ_flags = pLZ_flags; - d->m_num_flags_left = num_flags_left; - if ((n = tdefl_flush_block(d, 0)) != 0) - return (n < 0) ? MZ_FALSE : MZ_TRUE; - total_lz_bytes = d->m_total_lz_bytes; - pLZ_code_buf = d->m_pLZ_code_buf; - pLZ_flags = d->m_pLZ_flags; - num_flags_left = d->m_num_flags_left; - } - } - } - - d->m_lookahead_pos = lookahead_pos; - d->m_lookahead_size = lookahead_size; - d->m_dict_size = dict_size; - d->m_total_lz_bytes = total_lz_bytes; - d->m_pLZ_code_buf = pLZ_code_buf; - d->m_pLZ_flags = pLZ_flags; - d->m_num_flags_left = num_flags_left; - return MZ_TRUE; -} - -__asm__("\n&FUNC SETC 'tdefl_record_literal'"); -static MZ_FORCEINLINE void tdefl_record_literal(tdefl_compressor *d, mz_uint8 lit) -{ - d->m_total_lz_bytes++; - *d->m_pLZ_code_buf++ = lit; - *d->m_pLZ_flags = (mz_uint8)(*d->m_pLZ_flags >> 1); - if (--d->m_num_flags_left == 0) - { - d->m_num_flags_left = 8; - d->m_pLZ_flags = d->m_pLZ_code_buf++; - } - d->m_huff_count[0][lit]++; -} - -__asm__("\n&FUNC SETC 'tdefl_record_match'"); -static MZ_FORCEINLINE void tdefl_record_match(tdefl_compressor *d, mz_uint match_len, mz_uint match_dist) -{ - mz_uint32 s0, s1; - - MZ_ASSERT((match_len >= TDEFL_MIN_MATCH_LEN) && (match_dist >= 1) && (match_dist <= TDEFL_LZ_DICT_SIZE)); - - d->m_total_lz_bytes += match_len; - - d->m_pLZ_code_buf[0] = (mz_uint8)(match_len - TDEFL_MIN_MATCH_LEN); - - match_dist -= 1; - d->m_pLZ_code_buf[1] = (mz_uint8)(match_dist & 0xFF); - d->m_pLZ_code_buf[2] = (mz_uint8)(match_dist >> 8); - d->m_pLZ_code_buf += 3; - - *d->m_pLZ_flags = (mz_uint8)((*d->m_pLZ_flags >> 1) | 0x80); - if (--d->m_num_flags_left == 0) - { - d->m_num_flags_left = 8; - d->m_pLZ_flags = d->m_pLZ_code_buf++; - } - - s0 = s_tdefl_small_dist_sym[match_dist & 511]; - s1 = s_tdefl_large_dist_sym[(match_dist >> 8) & 127]; - d->m_huff_count[1][(match_dist < 512) ? s0 : s1]++; - - if (match_len >= TDEFL_MIN_MATCH_LEN) - d->m_huff_count[0][s_tdefl_len_sym[match_len - TDEFL_MIN_MATCH_LEN]]++; -} - -__asm__("\n&FUNC SETC 'tdefl_compress_normal'"); -static mz_bool tdefl_compress_normal(tdefl_compressor *d) -{ - const mz_uint8 *pSrc = d->m_pSrc; - size_t src_buf_left = d->m_src_buf_left; - tdefl_flush flush = d->m_flush; - - while ((src_buf_left) || ((flush) && (d->m_lookahead_size))) - { - mz_uint len_to_move, cur_match_dist, cur_match_len, cur_pos; - /* Update dictionary and hash chains. Keeps the lookahead size equal to TDEFL_MAX_MATCH_LEN. */ - if ((d->m_lookahead_size + d->m_dict_size) >= (TDEFL_MIN_MATCH_LEN - 1)) - { - mz_uint dst_pos = (d->m_lookahead_pos + d->m_lookahead_size) & TDEFL_LZ_DICT_SIZE_MASK, ins_pos = d->m_lookahead_pos + d->m_lookahead_size - 2; - mz_uint hash = (d->m_dict[ins_pos & TDEFL_LZ_DICT_SIZE_MASK] << TDEFL_LZ_HASH_SHIFT) ^ d->m_dict[(ins_pos + 1) & TDEFL_LZ_DICT_SIZE_MASK]; - mz_uint num_bytes_to_process = (mz_uint)MZ_MIN(src_buf_left, TDEFL_MAX_MATCH_LEN - d->m_lookahead_size); - const mz_uint8 *pSrc_end = pSrc + num_bytes_to_process; - src_buf_left -= num_bytes_to_process; - d->m_lookahead_size += num_bytes_to_process; - while (pSrc != pSrc_end) - { - mz_uint8 c = *pSrc++; - d->m_dict[dst_pos] = c; - if (dst_pos < (TDEFL_MAX_MATCH_LEN - 1)) - d->m_dict[TDEFL_LZ_DICT_SIZE + dst_pos] = c; - hash = ((hash << TDEFL_LZ_HASH_SHIFT) ^ c) & (TDEFL_LZ_HASH_SIZE - 1); - d->m_next[ins_pos & TDEFL_LZ_DICT_SIZE_MASK] = d->m_hash[hash]; - d->m_hash[hash] = (mz_uint16)(ins_pos); - dst_pos = (dst_pos + 1) & TDEFL_LZ_DICT_SIZE_MASK; - ins_pos++; - } - } - else - { - while ((src_buf_left) && (d->m_lookahead_size < TDEFL_MAX_MATCH_LEN)) - { - mz_uint8 c = *pSrc++; - mz_uint dst_pos = (d->m_lookahead_pos + d->m_lookahead_size) & TDEFL_LZ_DICT_SIZE_MASK; - src_buf_left--; - d->m_dict[dst_pos] = c; - if (dst_pos < (TDEFL_MAX_MATCH_LEN - 1)) - d->m_dict[TDEFL_LZ_DICT_SIZE + dst_pos] = c; - if ((++d->m_lookahead_size + d->m_dict_size) >= TDEFL_MIN_MATCH_LEN) - { - mz_uint ins_pos = d->m_lookahead_pos + (d->m_lookahead_size - 1) - 2; - mz_uint hash = ((d->m_dict[ins_pos & TDEFL_LZ_DICT_SIZE_MASK] << (TDEFL_LZ_HASH_SHIFT * 2)) ^ (d->m_dict[(ins_pos + 1) & TDEFL_LZ_DICT_SIZE_MASK] << TDEFL_LZ_HASH_SHIFT) ^ c) & (TDEFL_LZ_HASH_SIZE - 1); - d->m_next[ins_pos & TDEFL_LZ_DICT_SIZE_MASK] = d->m_hash[hash]; - d->m_hash[hash] = (mz_uint16)(ins_pos); - } - } - } - d->m_dict_size = MZ_MIN(TDEFL_LZ_DICT_SIZE - d->m_lookahead_size, d->m_dict_size); - if ((!flush) && (d->m_lookahead_size < TDEFL_MAX_MATCH_LEN)) - break; - - /* Simple lazy/greedy parsing state machine. */ - len_to_move = 1; - cur_match_dist = 0; - cur_match_len = d->m_saved_match_len ? d->m_saved_match_len : (TDEFL_MIN_MATCH_LEN - 1); - cur_pos = d->m_lookahead_pos & TDEFL_LZ_DICT_SIZE_MASK; - if (d->m_flags & (TDEFL_RLE_MATCHES | TDEFL_FORCE_ALL_RAW_BLOCKS)) - { - if ((d->m_dict_size) && (!(d->m_flags & TDEFL_FORCE_ALL_RAW_BLOCKS))) - { - mz_uint8 c = d->m_dict[(cur_pos - 1) & TDEFL_LZ_DICT_SIZE_MASK]; - cur_match_len = 0; - while (cur_match_len < d->m_lookahead_size) - { - if (d->m_dict[cur_pos + cur_match_len] != c) - break; - cur_match_len++; - } - if (cur_match_len < TDEFL_MIN_MATCH_LEN) - cur_match_len = 0; - else - cur_match_dist = 1; - } - } - else - { - tdefl_find_match(d, d->m_lookahead_pos, d->m_dict_size, d->m_lookahead_size, &cur_match_dist, &cur_match_len); - } - if (((cur_match_len == TDEFL_MIN_MATCH_LEN) && (cur_match_dist >= 8U * 1024U)) || (cur_pos == cur_match_dist) || ((d->m_flags & TDEFL_FILTER_MATCHES) && (cur_match_len <= 5))) - { - cur_match_dist = cur_match_len = 0; - } - if (d->m_saved_match_len) - { - if (cur_match_len > d->m_saved_match_len) - { - tdefl_record_literal(d, (mz_uint8)d->m_saved_lit); - if (cur_match_len >= 128) - { - tdefl_record_match(d, cur_match_len, cur_match_dist); - d->m_saved_match_len = 0; - len_to_move = cur_match_len; - } - else - { - d->m_saved_lit = d->m_dict[cur_pos]; - d->m_saved_match_dist = cur_match_dist; - d->m_saved_match_len = cur_match_len; - } - } - else - { - tdefl_record_match(d, d->m_saved_match_len, d->m_saved_match_dist); - len_to_move = d->m_saved_match_len - 1; - d->m_saved_match_len = 0; - } - } - else if (!cur_match_dist) - tdefl_record_literal(d, d->m_dict[MZ_MIN(cur_pos, sizeof(d->m_dict) - 1)]); - else if ((d->m_greedy_parsing) || (d->m_flags & TDEFL_RLE_MATCHES) || (cur_match_len >= 128)) - { - tdefl_record_match(d, cur_match_len, cur_match_dist); - len_to_move = cur_match_len; - } - else - { - d->m_saved_lit = d->m_dict[MZ_MIN(cur_pos, sizeof(d->m_dict) - 1)]; - d->m_saved_match_dist = cur_match_dist; - d->m_saved_match_len = cur_match_len; - } - /* Move the lookahead forward by len_to_move bytes. */ - d->m_lookahead_pos += len_to_move; - MZ_ASSERT(d->m_lookahead_size >= len_to_move); - d->m_lookahead_size -= len_to_move; - d->m_dict_size = MZ_MIN(d->m_dict_size + len_to_move, (mz_uint)TDEFL_LZ_DICT_SIZE); - /* Check if it's time to flush the current LZ codes to the internal output buffer. */ - if ((d->m_pLZ_code_buf > &d->m_lz_code_buf[TDEFL_LZ_CODE_BUF_SIZE - 8]) || - ((d->m_total_lz_bytes > 31 * 1024) && (((((mz_uint)(d->m_pLZ_code_buf - d->m_lz_code_buf) * 115) >> 7) >= d->m_total_lz_bytes) || (d->m_flags & TDEFL_FORCE_ALL_RAW_BLOCKS)))) - { - int n; - d->m_pSrc = pSrc; - d->m_src_buf_left = src_buf_left; - if ((n = tdefl_flush_block(d, 0)) != 0) - return (n < 0) ? MZ_FALSE : MZ_TRUE; - } - } - - d->m_pSrc = pSrc; - d->m_src_buf_left = src_buf_left; - return MZ_TRUE; -} - -__asm__("\n&FUNC SETC 'tdefl_flush_output_buffer'"); -static tdefl_status tdefl_flush_output_buffer(tdefl_compressor *d) -{ - if (d->m_pIn_buf_size) - { - *d->m_pIn_buf_size = d->m_pSrc - (const mz_uint8 *)d->m_pIn_buf; - } - - if (d->m_pOut_buf_size) - { - size_t n = MZ_MIN(*d->m_pOut_buf_size - d->m_out_buf_ofs, d->m_output_flush_remaining); - memcpy((mz_uint8 *)d->m_pOut_buf + d->m_out_buf_ofs, d->m_output_buf + d->m_output_flush_ofs, n); - d->m_output_flush_ofs += (mz_uint)n; - d->m_output_flush_remaining -= (mz_uint)n; - d->m_out_buf_ofs += n; - - *d->m_pOut_buf_size = d->m_out_buf_ofs; - } - - return (d->m_finished && !d->m_output_flush_remaining) ? TDEFL_STATUS_DONE : TDEFL_STATUS_OKAY; -} - -__asm__("\n&FUNC SETC 'tdefl_output_buffer_putter'"); -static mz_bool tdefl_output_buffer_putter(const void *pBuf, int len, void *pUser) -{ - tdefl_output_buffer *p = (tdefl_output_buffer *)pUser; - size_t new_size = p->m_size + len; - if (new_size > p->m_capacity) - { - size_t new_capacity = p->m_capacity; - mz_uint8 *pNew_buf; - if (!p->m_expandable) - return MZ_FALSE; - do - { - new_capacity = MZ_MAX(128U, new_capacity << 1U); - } while (new_size > new_capacity); - pNew_buf = (mz_uint8 *)MZ_REALLOC(p->m_pBuf, new_capacity); - if (!pNew_buf) - return MZ_FALSE; - p->m_pBuf = pNew_buf; - p->m_capacity = new_capacity; - } - memcpy((mz_uint8 *)p->m_pBuf + p->m_size, pBuf, len); - p->m_size = new_size; - return MZ_TRUE; -} - -static struct mz_private my_private = { - /* private structures */ - s_tdefl_len_sym, - s_tdefl_len_extra, - s_tdefl_small_dist_sym, - s_tdefl_small_dist_extra, - s_tdefl_large_dist_sym, - s_tdefl_large_dist_extra, - s_tdefl_packed_code_size_syms_swizzle, - mz_bitmasks, - s_tdefl_num_probes, - - /* function pointers */ - tdefl_radix_sort_syms, - tdefl_calculate_minimum_redundancy, - tdefl_huffman_enforce_max_code_size, - tdefl_optimize_huffman_table, - tdefl_start_dynamic_block, - tdefl_start_static_block, - tdefl_compress_lz_codes, - tdefl_compress_block, - tdefl_flush_block, - tdefl_find_match, - tdefl_compress_fast, - tdefl_record_literal, - tdefl_record_match, - tdefl_compress_normal, - tdefl_flush_output_buffer, - tdefl_output_buffer_putter, -}; - -struct mz_private *__mzcore = &my_private; diff --git a/src/crent370/miniz/@@mzcrc.c b/src/crent370/miniz/@@mzcrc.c deleted file mode 100644 index 3f8a2d4..0000000 --- a/src/crent370/miniz/@@mzcrc.c +++ /dev/null @@ -1,117 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#include - -__asm__("\n&FUNC SETC 'mz_crc32'"); - -/* Karl Malbrain's compact CRC-32. See "A compact CCITT crc16 and crc32 C implementation that balances processor cache usage against speed": http://www.geocities.com/malbrain/ */ -#if 0 -mz_ulong mz_crc32(mz_ulong crc, const mz_uint8 *ptr, size_t buf_len) -{ - static const mz_uint32 s_crc32[16] = { 0, 0x1db71064, 0x3b6e20c8, 0x26d930ac, 0x76dc4190, 0x6b6b51f4, 0x4db26158, 0x5005713c, - 0xedb88320, 0xf00f9344, 0xd6d6a3e8, 0xcb61b38c, 0x9b64c2b0, 0x86d3d2d4, 0xa00ae278, 0xbdbdf21c }; - mz_uint32 crcu32 = (mz_uint32)crc; - if (!ptr) - return MZ_CRC32_INIT; - crcu32 = ~crcu32; - while (buf_len--) - { - mz_uint8 b = *ptr++; - crcu32 = (crcu32 >> 4) ^ s_crc32[(crcu32 & 0xF) ^ (b & 0xF)]; - crcu32 = (crcu32 >> 4) ^ s_crc32[(crcu32 & 0xF) ^ (b >> 4)]; - } - return ~crcu32; -} -#else -/* Faster, but larger CPU cache footprint. - */ -mz_ulong mz_crc32(mz_ulong crc, const mz_uint8 *ptr, size_t buf_len) -{ - static const mz_uint32 s_crc_table[256] = - { - 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, 0x706AF48F, 0xE963A535, - 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, - 0xE7B82D07, 0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, 0x1ADAD47D, - 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, - 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4, - 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, 0x35B5A8FA, 0x42B2986C, - 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC, - 0x51DE003A, 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F, - 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, 0x2F6F7C87, 0x58684C11, 0xC1611DAB, - 0xB6662D3D, 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F, - 0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, 0x7F6A0DBB, - 0x086D3D2D, 0x91646C97, 0xE6635C01, 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, - 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, - 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65, 0x4DB26158, 0x3AB551CE, - 0xA3BC0074, 0xD4BB30E2, 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A, - 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9, - 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, - 0xCE61E49F, 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, 0x2EB40D81, - 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, 0xEAD54739, - 0x9DD277AF, 0x04DB2615, 0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, - 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344, 0x8708A3D2, 0x1E01F268, - 0x6906C2FE, 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, - 0x10DA7A5A, 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, 0xD6D6A3E8, - 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B, - 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, - 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, 0xCC0C7795, 0xBB0B4703, - 0x220216B9, 0x5505262F, 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, - 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, - 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, - 0x0CB61B38, 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242, - 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777, 0x88085AE6, - 0xFF0F6A70, 0x66063BCA, 0x11010B5C, 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, - 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7, 0x4969474D, - 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, - 0x47B2CF7F, 0x30B5FFE9, 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, - 0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, - 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D - }; - - mz_uint32 crc32 = (mz_uint32)crc ^ 0xFFFFFFFF; - const mz_uint8 *pByte_buf = (const mz_uint8 *)ptr; - - while (buf_len >= 4) - { - crc32 = (crc32 >> 8) ^ s_crc_table[(crc32 ^ pByte_buf[0]) & 0xFF]; - crc32 = (crc32 >> 8) ^ s_crc_table[(crc32 ^ pByte_buf[1]) & 0xFF]; - crc32 = (crc32 >> 8) ^ s_crc_table[(crc32 ^ pByte_buf[2]) & 0xFF]; - crc32 = (crc32 >> 8) ^ s_crc_table[(crc32 ^ pByte_buf[3]) & 0xFF]; - pByte_buf += 4; - buf_len -= 4; - } - - while (buf_len) - { - crc32 = (crc32 >> 8) ^ s_crc_table[(crc32 ^ pByte_buf[0]) & 0xFF]; - ++pByte_buf; - --buf_len; - } - - return ~crc32; -} -#endif - diff --git a/src/crent370/miniz/@@mzdalf.c b/src/crent370/miniz/@@mzdalf.c deleted file mode 100644 index 0a951de..0000000 --- a/src/crent370/miniz/@@mzdalf.c +++ /dev/null @@ -1,33 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#include - -__asm__("\n&FUNC SETC 'miniz_def_alloc_func'"); -void *miniz_def_alloc_func(void *opaque, size_t items, size_t size) -{ - (void)opaque, (void)items, (void)size; - return MZ_MALLOC(items * size); -} diff --git a/src/crent370/miniz/@@mzdbnd.c b/src/crent370/miniz/@@mzdbnd.c deleted file mode 100644 index a649e77..0000000 --- a/src/crent370/miniz/@@mzdbnd.c +++ /dev/null @@ -1,35 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#define MZ_PRIVATE -#include - -__asm__("\n&FUNC SETC 'mz_deflateBound'"); -mz_ulong mz_deflateBound(mz_streamp pStream, mz_ulong source_len) -{ - (void)pStream; - /* This is really over conservative. (And lame, but it's actually pretty tricky to compute a true upper bound given the way tdefl's blocking works.) */ - return MZ_MAX(128 + (source_len * 110) / 100, 128 + source_len + ((source_len / (31 * 1024)) + 1) * 5); -} diff --git a/src/crent370/miniz/@@mzdend.c b/src/crent370/miniz/@@mzdend.c deleted file mode 100644 index f0d1ec3..0000000 --- a/src/crent370/miniz/@@mzdend.c +++ /dev/null @@ -1,40 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#define MZ_PRIVATE -#include - -__asm__("\n&FUNC SETC 'mz_deflateEnd'"); -int mz_deflateEnd(mz_streamp pStream) -{ - if (!pStream) - return MZ_STREAM_ERROR; - if (pStream->state) - { - pStream->zfree(pStream->opaque, pStream->state); - pStream->state = NULL; - } - return MZ_OK; -} diff --git a/src/crent370/miniz/@@mzdflt.c b/src/crent370/miniz/@@mzdflt.c deleted file mode 100644 index ff9ce33..0000000 --- a/src/crent370/miniz/@@mzdflt.c +++ /dev/null @@ -1,85 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#include - -__asm__("\n&FUNC SETC 'mz_deflate'"); -int mz_deflate(mz_streamp pStream, int flush) -{ - size_t in_bytes, out_bytes; - mz_ulong orig_total_in, orig_total_out; - int mz_status = MZ_OK; - - if ((!pStream) || (!pStream->state) || (flush < 0) || (flush > MZ_FINISH) || (!pStream->next_out)) - return MZ_STREAM_ERROR; - if (!pStream->avail_out) - return MZ_BUF_ERROR; - - if (flush == MZ_PARTIAL_FLUSH) - flush = MZ_SYNC_FLUSH; - - if (((tdefl_compressor *)pStream->state)->m_prev_return_status == TDEFL_STATUS_DONE) - return (flush == MZ_FINISH) ? MZ_STREAM_END : MZ_BUF_ERROR; - - orig_total_in = pStream->total_in; - orig_total_out = pStream->total_out; - for (;;) - { - tdefl_status defl_status; - in_bytes = pStream->avail_in; - out_bytes = pStream->avail_out; - - defl_status = tdefl_compress((tdefl_compressor *)pStream->state, pStream->next_in, &in_bytes, pStream->next_out, &out_bytes, (tdefl_flush)flush); - pStream->next_in += (mz_uint)in_bytes; - pStream->avail_in -= (mz_uint)in_bytes; - pStream->total_in += (mz_uint)in_bytes; - pStream->adler = tdefl_get_adler32((tdefl_compressor *)pStream->state); - - pStream->next_out += (mz_uint)out_bytes; - pStream->avail_out -= (mz_uint)out_bytes; - pStream->total_out += (mz_uint)out_bytes; - - if (defl_status < 0) - { - mz_status = MZ_STREAM_ERROR; - break; - } - else if (defl_status == TDEFL_STATUS_DONE) - { - mz_status = MZ_STREAM_END; - break; - } - else if (!pStream->avail_out) - break; - else if ((!pStream->avail_in) && (flush != MZ_FINISH)) - { - if ((flush) || (pStream->total_in != orig_total_in) || (pStream->total_out != orig_total_out)) - break; - return MZ_BUF_ERROR; /* Can't make forward progress without some input. - */ - } - } - return mz_status; -} diff --git a/src/crent370/miniz/@@mzdfrf.c b/src/crent370/miniz/@@mzdfrf.c deleted file mode 100644 index a9182eb..0000000 --- a/src/crent370/miniz/@@mzdfrf.c +++ /dev/null @@ -1,33 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#include - -__asm__("\n&FUNC SETC 'miniz_def_free_func'"); -void miniz_def_free_func(void *opaque, void *address) -{ - (void)opaque, (void)address; - MZ_FREE(address); -} diff --git a/src/crent370/miniz/@@mzdin2.c b/src/crent370/miniz/@@mzdin2.c deleted file mode 100644 index 103c50a..0000000 --- a/src/crent370/miniz/@@mzdin2.c +++ /dev/null @@ -1,63 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#include - -__asm__("\n&FUNC SETC 'mz_deflateInit2'"); -int mz_deflateInit2(mz_streamp pStream, int level, int method, int window_bits, int mem_level, int strategy) -{ - tdefl_compressor *pComp; - mz_uint comp_flags = TDEFL_COMPUTE_ADLER32 | tdefl_create_comp_flags_from_zip_params(level, window_bits, strategy); - - if (!pStream) - return MZ_STREAM_ERROR; - if ((method != MZ_DEFLATED) || ((mem_level < 1) || (mem_level > 9)) || ((window_bits != MZ_DEFAULT_WINDOW_BITS) && (-window_bits != MZ_DEFAULT_WINDOW_BITS))) - return MZ_PARAM_ERROR; - - pStream->data_type = 0; - pStream->adler = MZ_ADLER32_INIT; - pStream->msg = NULL; - pStream->reserved = 0; - pStream->total_in = 0; - pStream->total_out = 0; - if (!pStream->zalloc) - pStream->zalloc = miniz_def_alloc_func; - if (!pStream->zfree) - pStream->zfree = miniz_def_free_func; - - pComp = (tdefl_compressor *)pStream->zalloc(pStream->opaque, 1, sizeof(tdefl_compressor)); - if (!pComp) - return MZ_MEM_ERROR; - - pStream->state = (struct mz_internal_state *)pComp; - - if (tdefl_init(pComp, NULL, NULL, comp_flags) != TDEFL_STATUS_OKAY) - { - mz_deflateEnd(pStream); - return MZ_PARAM_ERROR; - } - - return MZ_OK; -} diff --git a/src/crent370/miniz/@@mzdini.c b/src/crent370/miniz/@@mzdini.c deleted file mode 100644 index d6e0210..0000000 --- a/src/crent370/miniz/@@mzdini.c +++ /dev/null @@ -1,32 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#include - -__asm__("\n&FUNC SETC 'mz_deflateInit'"); -int mz_deflateInit(mz_streamp pStream, int level) -{ - return mz_deflateInit2(pStream, level, MZ_DEFLATED, MZ_DEFAULT_WINDOW_BITS, 9, MZ_DEFAULT_STRATEGY); -} diff --git a/src/crent370/miniz/@@mzdref.c b/src/crent370/miniz/@@mzdref.c deleted file mode 100644 index e7b20ef..0000000 --- a/src/crent370/miniz/@@mzdref.c +++ /dev/null @@ -1,33 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#include - -__asm__("\n&FUNC SETC 'miniz_def_realloc_func'"); -void *miniz_def_realloc_func(void *opaque, void *address, size_t items, size_t size) -{ - (void)opaque, (void)address, (void)items, (void)size; - return MZ_REALLOC(address, items * size); -} diff --git a/src/crent370/miniz/@@mzdrst.c b/src/crent370/miniz/@@mzdrst.c deleted file mode 100644 index d9a2268..0000000 --- a/src/crent370/miniz/@@mzdrst.c +++ /dev/null @@ -1,36 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#include - -__asm__("\n&FUNC SETC 'mz_deflateReset'"); -int mz_deflateReset(mz_streamp pStream) -{ - if ((!pStream) || (!pStream->state) || (!pStream->zalloc) || (!pStream->zfree)) - return MZ_STREAM_ERROR; - pStream->total_in = pStream->total_out = 0; - tdefl_init((tdefl_compressor *)pStream->state, NULL, NULL, ((tdefl_compressor *)pStream->state)->m_flags); - return MZ_OK; -} diff --git a/src/crent370/miniz/@@mzerr.c b/src/crent370/miniz/@@mzerr.c deleted file mode 100644 index 55612f7..0000000 --- a/src/crent370/miniz/@@mzerr.c +++ /dev/null @@ -1,54 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#define MZ_PRIVATE -#include - -__asm__("\n&FUNC SETC 'mz_error'"); -const char *mz_error(int err) -{ - static struct - { - int m_err; - const char *m_pDesc; - } s_error_descs[] = - { - { MZ_OK, "" }, - { MZ_STREAM_END, "stream end" }, - { MZ_NEED_DICT, "need dictionary" }, - { MZ_ERRNO, "file error" }, - { MZ_STREAM_ERROR, "stream error" }, - { MZ_DATA_ERROR, "data error" }, - { MZ_MEM_ERROR, "out of memory" }, - { MZ_BUF_ERROR, "buf error" }, - { MZ_VERSION_ERROR, "version error" }, - { MZ_PARAM_ERROR, "parameter error" } - }; - mz_uint i; - for (i = 0; i < sizeof(s_error_descs) / sizeof(s_error_descs[0]); ++i) - if (s_error_descs[i].m_err == err) - return s_error_descs[i].m_pDesc; - return NULL; -} diff --git a/src/crent370/miniz/@@mzfree.c b/src/crent370/miniz/@@mzfree.c deleted file mode 100644 index 949f609..0000000 --- a/src/crent370/miniz/@@mzfree.c +++ /dev/null @@ -1,32 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#include - -__asm__("\n&FUNC SETC 'mz_free'"); -void mz_free(void *p) -{ - MZ_FREE(p); -} diff --git a/src/crent370/miniz/@@mziend.c b/src/crent370/miniz/@@mziend.c deleted file mode 100644 index 727d27c..0000000 --- a/src/crent370/miniz/@@mziend.c +++ /dev/null @@ -1,40 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#define MZ_PRIVATE -#include - -__asm__("\n&FUNC SETC 'mz_inflateEnd'"); -int mz_inflateEnd(mz_streamp pStream) -{ - if (!pStream) - return MZ_STREAM_ERROR; - if (pStream->state) - { - pStream->zfree(pStream->opaque, pStream->state); - pStream->state = NULL; - } - return MZ_OK; -} diff --git a/src/crent370/miniz/@@mziin2.c b/src/crent370/miniz/@@mziin2.c deleted file mode 100644 index 07f84f6..0000000 --- a/src/crent370/miniz/@@mziin2.c +++ /dev/null @@ -1,64 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#define MZ_PRIVATE -#include - -__asm__("\n&FUNC SETC 'mz_inflateInit2'"); -int mz_inflateInit2(mz_streamp pStream, int window_bits) -{ - inflate_state *pDecomp; - if (!pStream) - return MZ_STREAM_ERROR; - if ((window_bits != MZ_DEFAULT_WINDOW_BITS) && (-window_bits != MZ_DEFAULT_WINDOW_BITS)) - return MZ_PARAM_ERROR; - - pStream->data_type = 0; - pStream->adler = 0; - pStream->msg = NULL; - pStream->total_in = 0; - pStream->total_out = 0; - pStream->reserved = 0; - if (!pStream->zalloc) - pStream->zalloc = miniz_def_alloc_func; - if (!pStream->zfree) - pStream->zfree = miniz_def_free_func; - - pDecomp = (inflate_state *)pStream->zalloc(pStream->opaque, 1, sizeof(inflate_state)); - if (!pDecomp) - return MZ_MEM_ERROR; - - pStream->state = (struct mz_internal_state *)pDecomp; - - tinfl_init(&pDecomp->m_decomp); - pDecomp->m_dict_ofs = 0; - pDecomp->m_dict_avail = 0; - pDecomp->m_last_status = TINFL_STATUS_NEEDS_MORE_INPUT; - pDecomp->m_first_call = 1; - pDecomp->m_has_flushed = 0; - pDecomp->m_window_bits = window_bits; - - return MZ_OK; -} diff --git a/src/crent370/miniz/@@mziini.c b/src/crent370/miniz/@@mziini.c deleted file mode 100644 index 509777f..0000000 --- a/src/crent370/miniz/@@mziini.c +++ /dev/null @@ -1,33 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#define MZ_PRIVATE -#include - -__asm__("\n&FUNC SETC 'mz_inflateInit'"); -int mz_inflateInit(mz_streamp pStream) -{ - return mz_inflateInit2(pStream, MZ_DEFAULT_WINDOW_BITS); -} diff --git a/src/crent370/miniz/@@mzinfl.c b/src/crent370/miniz/@@mzinfl.c deleted file mode 100644 index 5516dfc..0000000 --- a/src/crent370/miniz/@@mzinfl.c +++ /dev/null @@ -1,140 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#define MZ_PRIVATE -#include - -__asm__("\n&FUNC SETC 'mz_inflate'"); -int mz_inflate(mz_streamp pStream, int flush) -{ - inflate_state *pState; - mz_uint n, first_call, decomp_flags = TINFL_FLAG_COMPUTE_ADLER32; - size_t in_bytes, out_bytes, orig_avail_in; - tinfl_status status; - - if ((!pStream) || (!pStream->state)) - return MZ_STREAM_ERROR; - if (flush == MZ_PARTIAL_FLUSH) - flush = MZ_SYNC_FLUSH; - if ((flush) && (flush != MZ_SYNC_FLUSH) && (flush != MZ_FINISH)) - return MZ_STREAM_ERROR; - - pState = (inflate_state *)pStream->state; - if (pState->m_window_bits > 0) - decomp_flags |= TINFL_FLAG_PARSE_ZLIB_HEADER; - orig_avail_in = pStream->avail_in; - - first_call = pState->m_first_call; - pState->m_first_call = 0; - if (pState->m_last_status < 0) - return MZ_DATA_ERROR; - - if (pState->m_has_flushed && (flush != MZ_FINISH)) - return MZ_STREAM_ERROR; - pState->m_has_flushed |= (flush == MZ_FINISH); - - if ((flush == MZ_FINISH) && (first_call)) - { - /* MZ_FINISH on the first call implies that the input and output buffers are large enough to hold the entire compressed/decompressed file. */ - decomp_flags |= TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF; - in_bytes = pStream->avail_in; - out_bytes = pStream->avail_out; - status = tinfl_decompress(&pState->m_decomp, pStream->next_in, &in_bytes, pStream->next_out, pStream->next_out, &out_bytes, decomp_flags); - pState->m_last_status = status; - pStream->next_in += (mz_uint)in_bytes; - pStream->avail_in -= (mz_uint)in_bytes; - pStream->total_in += (mz_uint)in_bytes; - pStream->adler = tinfl_get_adler32(&pState->m_decomp); - pStream->next_out += (mz_uint)out_bytes; - pStream->avail_out -= (mz_uint)out_bytes; - pStream->total_out += (mz_uint)out_bytes; - - if (status < 0) - return MZ_DATA_ERROR; - else if (status != TINFL_STATUS_DONE) - { - pState->m_last_status = TINFL_STATUS_FAILED; - return MZ_BUF_ERROR; - } - return MZ_STREAM_END; - } - /* flush != MZ_FINISH then we must assume there's more input. */ - if (flush != MZ_FINISH) - decomp_flags |= TINFL_FLAG_HAS_MORE_INPUT; - - if (pState->m_dict_avail) - { - n = MZ_MIN(pState->m_dict_avail, pStream->avail_out); - memcpy(pStream->next_out, pState->m_dict + pState->m_dict_ofs, n); - pStream->next_out += n; - pStream->avail_out -= n; - pStream->total_out += n; - pState->m_dict_avail -= n; - pState->m_dict_ofs = (pState->m_dict_ofs + n) & (TINFL_LZ_DICT_SIZE - 1); - return ((pState->m_last_status == TINFL_STATUS_DONE) && (!pState->m_dict_avail)) ? MZ_STREAM_END : MZ_OK; - } - - for (;;) - { - in_bytes = pStream->avail_in; - out_bytes = TINFL_LZ_DICT_SIZE - pState->m_dict_ofs; - - status = tinfl_decompress(&pState->m_decomp, pStream->next_in, &in_bytes, pState->m_dict, pState->m_dict + pState->m_dict_ofs, &out_bytes, decomp_flags); - pState->m_last_status = status; - - pStream->next_in += (mz_uint)in_bytes; - pStream->avail_in -= (mz_uint)in_bytes; - pStream->total_in += (mz_uint)in_bytes; - pStream->adler = tinfl_get_adler32(&pState->m_decomp); - - pState->m_dict_avail = (mz_uint)out_bytes; - - n = MZ_MIN(pState->m_dict_avail, pStream->avail_out); - memcpy(pStream->next_out, pState->m_dict + pState->m_dict_ofs, n); - pStream->next_out += n; - pStream->avail_out -= n; - pStream->total_out += n; - pState->m_dict_avail -= n; - pState->m_dict_ofs = (pState->m_dict_ofs + n) & (TINFL_LZ_DICT_SIZE - 1); - - if (status < 0) - return MZ_DATA_ERROR; /* Stream is corrupted (there could be some uncompressed data left in the output dictionary - oh well). */ - else if ((status == TINFL_STATUS_NEEDS_MORE_INPUT) && (!orig_avail_in)) - return MZ_BUF_ERROR; /* Signal caller that we can't make forward progress without supplying more input or by setting flush to MZ_FINISH. */ - else if (flush == MZ_FINISH) - { - /* The output buffer MUST be large to hold the remaining uncompressed data when flush==MZ_FINISH. */ - if (status == TINFL_STATUS_DONE) - return pState->m_dict_avail ? MZ_BUF_ERROR : MZ_STREAM_END; - /* status here must be TINFL_STATUS_HAS_MORE_OUTPUT, which means there's at least 1 more byte on the way. If there's no more room left in the output buffer then something is wrong. */ - else if (!pStream->avail_out) - return MZ_BUF_ERROR; - } - else if ((status == TINFL_STATUS_DONE) || (!pStream->avail_in) || (!pStream->avail_out) || (pState->m_dict_avail)) - break; - } - - return ((status == TINFL_STATUS_DONE) && (!pState->m_dict_avail)) ? MZ_STREAM_END : MZ_OK; -} diff --git a/src/crent370/miniz/@@mzucmp.c b/src/crent370/miniz/@@mzucmp.c deleted file mode 100644 index 18ce4dc..0000000 --- a/src/crent370/miniz/@@mzucmp.c +++ /dev/null @@ -1,58 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#define MZ_PRIVATE -#include - -__asm__("\n&FUNC SETC 'mz_uncompress'"); -int mz_uncompress(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len) -{ - mz_stream stream; - int status; - memset(&stream, 0, sizeof(stream)); - - /* In case mz_ulong is 64-bits (argh I hate longs). */ - if ((source_len | *pDest_len) > 0xFFFFFFFFU) - return MZ_PARAM_ERROR; - - stream.next_in = pSource; - stream.avail_in = (mz_uint32)source_len; - stream.next_out = pDest; - stream.avail_out = (mz_uint32)*pDest_len; - - status = mz_inflateInit(&stream); - if (status != MZ_OK) - return status; - - status = mz_inflate(&stream, MZ_FINISH); - if (status != MZ_STREAM_END) - { - mz_inflateEnd(&stream); - return ((status == MZ_BUF_ERROR) && (!stream.avail_in)) ? MZ_DATA_ERROR : status; - } - *pDest_len = stream.total_out; - - return mz_inflateEnd(&stream); -} diff --git a/src/crent370/miniz/@@mzvers.c b/src/crent370/miniz/@@mzvers.c deleted file mode 100644 index c668aae..0000000 --- a/src/crent370/miniz/@@mzvers.c +++ /dev/null @@ -1,32 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#include - -__asm__("\n&FUNC SETC 'mz_version'"); -const char *mz_version(void) -{ - return MZ_VERSION; -} diff --git a/src/crent370/miniz/@@tdccfz.c b/src/crent370/miniz/@@tdccfz.c deleted file mode 100644 index e2c4ee1..0000000 --- a/src/crent370/miniz/@@tdccfz.c +++ /dev/null @@ -1,49 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#define MZ_PRIVATE -#include - -__asm__("\n&FUNC SETC 'tdefl_create_comp_flags_from_zip_params'"); -/* level may actually range from [0,10] (10 is a "hidden" max level, where we want a bit more compression and it's fine if throughput to fall off a cliff on some files). */ -mz_uint tdefl_create_comp_flags_from_zip_params(int level, int window_bits, int strategy) -{ - mz_uint comp_flags = s_tdefl_num_probes[(level >= 0) ? MZ_MIN(10, level) : MZ_DEFAULT_LEVEL] | ((level <= 3) ? TDEFL_GREEDY_PARSING_FLAG : 0); - if (window_bits > 0) - comp_flags |= TDEFL_WRITE_ZLIB_HEADER; - - if (!level) - comp_flags |= TDEFL_FORCE_ALL_RAW_BLOCKS; - else if (strategy == MZ_FILTERED) - comp_flags |= TDEFL_FILTER_MATCHES; - else if (strategy == MZ_HUFFMAN_ONLY) - comp_flags &= ~TDEFL_MAX_PROBES_MASK; - else if (strategy == MZ_FIXED) - comp_flags |= TDEFL_FORCE_ALL_STATIC_BLOCKS; - else if (strategy == MZ_RLE) - comp_flags |= TDEFL_RLE_MATCHES; - - return comp_flags; -} diff --git a/src/crent370/miniz/@@tdcm2h.c b/src/crent370/miniz/@@tdcm2h.c deleted file mode 100644 index 6b0df68..0000000 --- a/src/crent370/miniz/@@tdcm2h.c +++ /dev/null @@ -1,45 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#define MZ_PRIVATE -#include - -__asm__("\n&FUNC SETC 'tdefl_compress_mem_to_heap'"); -void *tdefl_compress_mem_to_heap(const void *pSrc_buf, size_t src_buf_len, size_t *pOut_len, int flags) -{ - tdefl_output_buffer out_buf; - MZ_CLEAR_OBJ(out_buf); - if (!pOut_len) - return MZ_FALSE; - else - *pOut_len = 0; - out_buf.m_expandable = MZ_TRUE; -#undef tdefl_output_buffer_putter - if (!tdefl_compress_mem_to_output(pSrc_buf, src_buf_len, __mzcore->tdefl_output_buffer_putter, &out_buf, flags)) - return NULL; - *pOut_len = out_buf.m_size; - return out_buf.m_pBuf; -} - diff --git a/src/crent370/miniz/@@tdcm2m.c b/src/crent370/miniz/@@tdcm2m.c deleted file mode 100644 index b1c7f8d..0000000 --- a/src/crent370/miniz/@@tdcm2m.c +++ /dev/null @@ -1,42 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#define MZ_PRIVATE -#include - -__asm__("\n&FUNC SETC 'tdefl_compress_mem_to_mem'"); -size_t tdefl_compress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void *pSrc_buf, size_t src_buf_len, int flags) -{ - tdefl_output_buffer out_buf; - MZ_CLEAR_OBJ(out_buf); - if (!pOut_buf) - return 0; - out_buf.m_pBuf = (mz_uint8 *)pOut_buf; - out_buf.m_capacity = out_buf_len; -#undef tdefl_output_buffer_putter - if (!tdefl_compress_mem_to_output(pSrc_buf, src_buf_len, __mzcore->tdefl_output_buffer_putter, &out_buf, flags)) - return 0; - return out_buf.m_size; -} diff --git a/src/crent370/miniz/@@tdcm2o.c b/src/crent370/miniz/@@tdcm2o.c deleted file mode 100644 index 62efae6..0000000 --- a/src/crent370/miniz/@@tdcm2o.c +++ /dev/null @@ -1,44 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#define MZ_PRIVATE -#include - -__asm__("\n&FUNC SETC 'tdefl_compress_mem_to_output'"); -mz_bool tdefl_compress_mem_to_output(const void *pBuf, size_t buf_len, tdefl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags) -{ - tdefl_compressor *pComp; - mz_bool succeeded; - if (((buf_len) && (!pBuf)) || (!pPut_buf_func)) - return MZ_FALSE; - pComp = (tdefl_compressor *)MZ_MALLOC(sizeof(tdefl_compressor)); - if (!pComp) - return MZ_FALSE; - succeeded = (tdefl_init(pComp, pPut_buf_func, pPut_buf_user, flags) == TDEFL_STATUS_OKAY); - succeeded = succeeded && (tdefl_compress_buffer(pComp, pBuf, buf_len, TDEFL_FINISH) == TDEFL_STATUS_DONE); - MZ_FREE(pComp); - return succeeded; -} - diff --git a/src/crent370/miniz/@@tdcmpa.c b/src/crent370/miniz/@@tdcmpa.c deleted file mode 100644 index 6bb6773..0000000 --- a/src/crent370/miniz/@@tdcmpa.c +++ /dev/null @@ -1,37 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#define MZ_PRIVATE -#include - -__asm__("\n&FUNC SETC 'tdefl_compressor_alloc'"); -/* Allocate the tdefl_compressor and tinfl_decompressor structures in C so that */ -/* non-C language bindings to tdefL_ and tinfl_ API don't need to worry about */ -/* structure size and allocation mechanism. */ -tdefl_compressor *tdefl_compressor_alloc() -{ - return (tdefl_compressor *)MZ_MALLOC(sizeof(tdefl_compressor)); -} - diff --git a/src/crent370/miniz/@@tdcmpb.c b/src/crent370/miniz/@@tdcmpb.c deleted file mode 100644 index 397ddb6..0000000 --- a/src/crent370/miniz/@@tdcmpb.c +++ /dev/null @@ -1,34 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#define MZ_PRIVATE -#include - -__asm__("\n&FUNC SETC 'tdefl_compress_buffer'"); -tdefl_status tdefl_compress_buffer(tdefl_compressor *d, const void *pIn_buf, size_t in_buf_size, tdefl_flush flush) -{ - MZ_ASSERT(d->m_pPut_buf_func); - return tdefl_compress(d, pIn_buf, &in_buf_size, NULL, NULL, flush); -} diff --git a/src/crent370/miniz/@@tdcmpf.c b/src/crent370/miniz/@@tdcmpf.c deleted file mode 100644 index 2ed471f..0000000 --- a/src/crent370/miniz/@@tdcmpf.c +++ /dev/null @@ -1,34 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#define MZ_PRIVATE -#include - -__asm__("\n&FUNC SETC 'tdefl_compressor_free'"); -void tdefl_compressor_free(tdefl_compressor *pComp) -{ - MZ_FREE(pComp); -} - diff --git a/src/crent370/miniz/@@tdcmpr.c b/src/crent370/miniz/@@tdcmpr.c deleted file mode 100644 index 65ad6b9..0000000 --- a/src/crent370/miniz/@@tdcmpr.c +++ /dev/null @@ -1,96 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#define MZ_PRIVATE -#include - -__asm__("\n&FUNC SETC 'tdefl_compress'"); -tdefl_status tdefl_compress(tdefl_compressor *d, const void *pIn_buf, size_t *pIn_buf_size, void *pOut_buf, size_t *pOut_buf_size, tdefl_flush flush) -{ - if (!d) - { - if (pIn_buf_size) - *pIn_buf_size = 0; - if (pOut_buf_size) - *pOut_buf_size = 0; - return TDEFL_STATUS_BAD_PARAM; - } - - d->m_pIn_buf = pIn_buf; - d->m_pIn_buf_size = pIn_buf_size; - d->m_pOut_buf = pOut_buf; - d->m_pOut_buf_size = pOut_buf_size; - d->m_pSrc = (const mz_uint8 *)(pIn_buf); - d->m_src_buf_left = pIn_buf_size ? *pIn_buf_size : 0; - d->m_out_buf_ofs = 0; - d->m_flush = flush; - - if (((d->m_pPut_buf_func != NULL) == ((pOut_buf != NULL) || (pOut_buf_size != NULL))) || (d->m_prev_return_status != TDEFL_STATUS_OKAY) || - (d->m_wants_to_finish && (flush != TDEFL_FINISH)) || (pIn_buf_size && *pIn_buf_size && !pIn_buf) || (pOut_buf_size && *pOut_buf_size && !pOut_buf)) - { - if (pIn_buf_size) - *pIn_buf_size = 0; - if (pOut_buf_size) - *pOut_buf_size = 0; - return (d->m_prev_return_status = TDEFL_STATUS_BAD_PARAM); - } - d->m_wants_to_finish |= (flush == TDEFL_FINISH); - - if ((d->m_output_flush_remaining) || (d->m_finished)) - return (d->m_prev_return_status = tdefl_flush_output_buffer(d)); - -#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN - if (((d->m_flags & TDEFL_MAX_PROBES_MASK) == 1) && - ((d->m_flags & TDEFL_GREEDY_PARSING_FLAG) != 0) && - ((d->m_flags & (TDEFL_FILTER_MATCHES | TDEFL_FORCE_ALL_RAW_BLOCKS | TDEFL_RLE_MATCHES)) == 0)) - { - if (!tdefl_compress_fast(d)) - return d->m_prev_return_status; - } - else -#endif /* #if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN */ - { - if (!tdefl_compress_normal(d)) - return d->m_prev_return_status; - } - - if ((d->m_flags & (TDEFL_WRITE_ZLIB_HEADER | TDEFL_COMPUTE_ADLER32)) && (pIn_buf)) - d->m_adler32 = (mz_uint32)mz_adler32(d->m_adler32, (const mz_uint8 *)pIn_buf, d->m_pSrc - (const mz_uint8 *)pIn_buf); - - if ((flush) && (!d->m_lookahead_size) && (!d->m_src_buf_left) && (!d->m_output_flush_remaining)) - { - if (tdefl_flush_block(d, flush) < 0) - return d->m_prev_return_status; - d->m_finished = (flush == TDEFL_FINISH); - if (flush == TDEFL_FULL_FLUSH) - { - MZ_CLEAR_OBJ(d->m_hash); - MZ_CLEAR_OBJ(d->m_next); - d->m_dict_size = 0; - } - } - - return (d->m_prev_return_status = tdefl_flush_output_buffer(d)); -} diff --git a/src/crent370/miniz/@@tdgadl.c b/src/crent370/miniz/@@tdgadl.c deleted file mode 100644 index 5312d9b..0000000 --- a/src/crent370/miniz/@@tdgadl.c +++ /dev/null @@ -1,34 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#define MZ_PRIVATE -#include - -__asm__("\n&FUNC SETC 'tdefl_get_adler32'"); -mz_uint32 tdefl_get_adler32(tdefl_compressor *d) -{ - return d->m_adler32; -} - diff --git a/src/crent370/miniz/@@tdgprs.c b/src/crent370/miniz/@@tdgprs.c deleted file mode 100644 index 4ad28c3..0000000 --- a/src/crent370/miniz/@@tdgprs.c +++ /dev/null @@ -1,34 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#define MZ_PRIVATE -#include - -__asm__("\n&FUNC SETC 'tdefl_get_prev_return_status'"); -tdefl_status tdefl_get_prev_return_status(tdefl_compressor *d) -{ - return d->m_prev_return_status; -} - diff --git a/src/crent370/miniz/@@tdinit.c b/src/crent370/miniz/@@tdinit.c deleted file mode 100644 index ac003b9..0000000 --- a/src/crent370/miniz/@@tdinit.c +++ /dev/null @@ -1,63 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#define MZ_PRIVATE -#include - -__asm__("\n&FUNC SETC 'tdefl_init'"); -tdefl_status tdefl_init(tdefl_compressor *d, tdefl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags) -{ - d->m_pPut_buf_func = pPut_buf_func; - d->m_pPut_buf_user = pPut_buf_user; - d->m_flags = (mz_uint)(flags); - d->m_max_probes[0] = 1 + ((flags & 0xFFF) + 2) / 3; - d->m_greedy_parsing = (flags & TDEFL_GREEDY_PARSING_FLAG) != 0; - d->m_max_probes[1] = 1 + (((flags & 0xFFF) >> 2) + 2) / 3; - if (!(flags & TDEFL_NONDETERMINISTIC_PARSING_FLAG)) - MZ_CLEAR_OBJ(d->m_hash); - d->m_lookahead_pos = d->m_lookahead_size = d->m_dict_size = d->m_total_lz_bytes = d->m_lz_code_buf_dict_pos = d->m_bits_in = 0; - d->m_output_flush_ofs = d->m_output_flush_remaining = d->m_finished = d->m_block_index = d->m_bit_buffer = d->m_wants_to_finish = 0; - d->m_pLZ_code_buf = d->m_lz_code_buf + 1; - d->m_pLZ_flags = d->m_lz_code_buf; - d->m_num_flags_left = 8; - d->m_pOutput_buf = d->m_output_buf; - d->m_pOutput_buf_end = d->m_output_buf; - d->m_prev_return_status = TDEFL_STATUS_OKAY; - d->m_saved_match_dist = d->m_saved_match_len = d->m_saved_lit = 0; - d->m_adler32 = 1; - d->m_pIn_buf = NULL; - d->m_pOut_buf = NULL; - d->m_pIn_buf_size = NULL; - d->m_pOut_buf_size = NULL; - d->m_flush = TDEFL_NO_FLUSH; - d->m_pSrc = NULL; - d->m_src_buf_left = 0; - d->m_out_buf_ofs = 0; - if (!(flags & TDEFL_NONDETERMINISTIC_PARSING_FLAG)) - MZ_CLEAR_OBJ(d->m_dict); - memset(&d->m_huff_count[0][0], 0, sizeof(d->m_huff_count[0][0]) * TDEFL_MAX_HUFF_SYMBOLS_0); - memset(&d->m_huff_count[1][0], 0, sizeof(d->m_huff_count[1][0]) * TDEFL_MAX_HUFF_SYMBOLS_1); - return TDEFL_STATUS_OKAY; -} diff --git a/src/crent370/miniz/@@tdwi2m.c b/src/crent370/miniz/@@tdwi2m.c deleted file mode 100644 index ed7f697..0000000 --- a/src/crent370/miniz/@@tdwi2m.c +++ /dev/null @@ -1,35 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#define MZ_PRIVATE -#include - -__asm__("\n&FUNC SETC 'tdefl_write_image_to_png_file_in_memory'"); -void *tdefl_write_image_to_png_file_in_memory(const void *pImage, int w, int h, int num_chans, size_t *pLen_out) -{ - /* Level 6 corresponds to TDEFL_DEFAULT_MAX_PROBES or MZ_DEFAULT_LEVEL (but we can't depend on MZ_DEFAULT_LEVEL being available in case the zlib API's where #defined out) */ - return tdefl_write_image_to_png_file_in_memory_ex(pImage, w, h, num_chans, pLen_out, 6, MZ_FALSE); -} - diff --git a/src/crent370/miniz/@@tdwi2x.c b/src/crent370/miniz/@@tdwi2x.c deleted file mode 100644 index 0844814..0000000 --- a/src/crent370/miniz/@@tdwi2x.c +++ /dev/null @@ -1,112 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#define MZ_PRIVATE -#include - -__asm__("\n&FUNC SETC 'tdefl_write_image_to_png_file_in_memory_ex'"); -/* Simple PNG writer function by Alex Evans, 2011. Released into the public domain: https://gist.github.com/908299, more context at - http://altdevblogaday.org/2011/04/06/a-smaller-jpg-encoder/. - This is actually a modification of Alex's original code so PNG files generated by this function pass pngcheck. */ -void *tdefl_write_image_to_png_file_in_memory_ex(const void *pImage, int w, int h, int num_chans, size_t *pLen_out, mz_uint level, mz_bool flip) -{ - /* Using a local copy of this array here in case MINIZ_NO_ZLIB_APIS was defined. */ - static const mz_uint s_tdefl_png_num_probes[11] = { 0, 1, 6, 32, 16, 32, 128, 256, 512, 768, 1500 }; - tdefl_compressor *pComp = (tdefl_compressor *)MZ_MALLOC(sizeof(tdefl_compressor)); - tdefl_output_buffer out_buf; - int i, bpl = w * num_chans, y, z; - mz_uint32 c; - *pLen_out = 0; - if (!pComp) - return NULL; - MZ_CLEAR_OBJ(out_buf); - out_buf.m_expandable = MZ_TRUE; - out_buf.m_capacity = 57 + MZ_MAX(64, (1 + bpl) * h); - if (NULL == (out_buf.m_pBuf = (mz_uint8 *)MZ_MALLOC(out_buf.m_capacity))) - { - MZ_FREE(pComp); - return NULL; - } - /* write dummy header */ - for (z = 41; z; --z) - tdefl_output_buffer_putter(&z, 1, &out_buf); - /* compress image data */ -#undef tdefl_output_buffer_putter - tdefl_init(pComp, __mzcore->tdefl_output_buffer_putter, &out_buf, s_tdefl_png_num_probes[MZ_MIN(10, level)] | TDEFL_WRITE_ZLIB_HEADER); - for (y = 0; y < h; ++y) - { - tdefl_compress_buffer(pComp, &z, 1, TDEFL_NO_FLUSH); - tdefl_compress_buffer(pComp, (mz_uint8 *)pImage + (flip ? (h - 1 - y) : y) * bpl, bpl, TDEFL_NO_FLUSH); - } - if (tdefl_compress_buffer(pComp, NULL, 0, TDEFL_FINISH) != TDEFL_STATUS_DONE) - { - MZ_FREE(pComp); - MZ_FREE(out_buf.m_pBuf); - return NULL; - } - /* write real header */ - *pLen_out = out_buf.m_size - 41; - { - static const mz_uint8 chans[] = { 0x00, 0x00, 0x04, 0x02, 0x06 }; - mz_uint8 pnghdr[41] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, - 0x0a, 0x1a, 0x0a, 0x00, 0x00, - 0x00, 0x0d, 0x49, 0x48, 0x44, - 0x52, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x08, - 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x49, 0x44, 0x41, - 0x54 }; - pnghdr[18] = (mz_uint8)(w >> 8); - pnghdr[19] = (mz_uint8)w; - pnghdr[22] = (mz_uint8)(h >> 8); - pnghdr[23] = (mz_uint8)h; - pnghdr[25] = chans[num_chans]; - pnghdr[33] = (mz_uint8)(*pLen_out >> 24); - pnghdr[34] = (mz_uint8)(*pLen_out >> 16); - pnghdr[35] = (mz_uint8)(*pLen_out >> 8); - pnghdr[36] = (mz_uint8)*pLen_out; - c = (mz_uint32)mz_crc32(MZ_CRC32_INIT, pnghdr + 12, 17); - for (i = 0; i < 4; ++i, c <<= 8) - ((mz_uint8 *)(pnghdr + 29))[i] = (mz_uint8)(c >> 24); - memcpy(out_buf.m_pBuf, pnghdr, 41); - } - /* write footer (IDAT CRC-32, followed by IEND chunk) */ - if (!__mzcore->tdefl_output_buffer_putter("\0\0\0\0\0\0\0\0\x49\x45\x4e\x44\xae\x42\x60\x82", 16, &out_buf)) - { - *pLen_out = 0; - MZ_FREE(pComp); - MZ_FREE(out_buf.m_pBuf); - return NULL; - } - c = (mz_uint32)mz_crc32(MZ_CRC32_INIT, out_buf.m_pBuf + 41 - 4, *pLen_out + 4); - for (i = 0; i < 4; ++i, c <<= 8) - (out_buf.m_pBuf + out_buf.m_size - 16)[i] = (mz_uint8)(c >> 24); - /* compute final size of file, grab compressed data buffer and return */ - *pLen_out += 57; - MZ_FREE(pComp); - return out_buf.m_pBuf; -} - diff --git a/src/crent370/miniz/@@tidalc.c b/src/crent370/miniz/@@tidalc.c deleted file mode 100644 index 4badee1..0000000 --- a/src/crent370/miniz/@@tidalc.c +++ /dev/null @@ -1,37 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#define MZ_PRIVATE -#include - -__asm__("\n&FUNC SETC 'tinfl_decompressor_alloc'"); -tinfl_decompressor *tinfl_decompressor_alloc() -{ - tinfl_decompressor *pDecomp = (tinfl_decompressor *)MZ_MALLOC(sizeof(tinfl_decompressor)); - if (pDecomp) - tinfl_init(pDecomp); - return pDecomp; -} - diff --git a/src/crent370/miniz/@@tidcmp.c b/src/crent370/miniz/@@tidcmp.c deleted file mode 100644 index 9dfff72..0000000 --- a/src/crent370/miniz/@@tidcmp.c +++ /dev/null @@ -1,501 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#define MZ_PRIVATE -#include - -__asm__("\n&FUNC SETC 'tinfl_decompress'"); -tinfl_status tinfl_decompress(tinfl_decompressor *r, const mz_uint8 *pIn_buf_next, size_t *pIn_buf_size, mz_uint8 *pOut_buf_start, mz_uint8 *pOut_buf_next, size_t *pOut_buf_size, const mz_uint32 decomp_flags) -{ - static const int s_length_base[31] = { 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0 }; - static const int s_length_extra[31] = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 0 }; - static const int s_dist_base[32] = { 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0 }; - static const int s_dist_extra[32] = { 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13 }; - static const mz_uint8 s_length_dezigzag[19] = { 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 }; - static const int s_min_table_sizes[3] = { 257, 1, 4 }; - - tinfl_status status = TINFL_STATUS_FAILED; - mz_uint32 num_bits, dist, counter, num_extra; - tinfl_bit_buf_t bit_buf; - const mz_uint8 *pIn_buf_cur = pIn_buf_next, *const pIn_buf_end = pIn_buf_next + *pIn_buf_size; - mz_uint8 *pOut_buf_cur = pOut_buf_next, *const pOut_buf_end = pOut_buf_next + *pOut_buf_size; - size_t out_buf_size_mask = (decomp_flags & TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF) ? (size_t)-1 : ((pOut_buf_next - pOut_buf_start) + *pOut_buf_size) - 1, dist_from_out_buf_start; - - /* Ensure the output buffer's size is a power of 2, unless the output buffer is large enough to hold the entire output file (in which case it doesn't matter). */ - if (((out_buf_size_mask + 1) & out_buf_size_mask) || (pOut_buf_next < pOut_buf_start)) - { - *pIn_buf_size = *pOut_buf_size = 0; - return TINFL_STATUS_BAD_PARAM; - } - - num_bits = r->m_num_bits; - bit_buf = r->m_bit_buf; - dist = r->m_dist; - counter = r->m_counter; - num_extra = r->m_num_extra; - dist_from_out_buf_start = r->m_dist_from_out_buf_start; - TINFL_CR_BEGIN - - bit_buf = num_bits = dist = counter = num_extra = r->m_zhdr0 = r->m_zhdr1 = 0; - r->m_z_adler32 = r->m_check_adler32 = 1; - if (decomp_flags & TINFL_FLAG_PARSE_ZLIB_HEADER) - { - TINFL_GET_BYTE(1, r->m_zhdr0); - TINFL_GET_BYTE(2, r->m_zhdr1); - counter = (((r->m_zhdr0 * 256 + r->m_zhdr1) % 31 != 0) || (r->m_zhdr1 & 32) || ((r->m_zhdr0 & 15) != 8)); - if (!(decomp_flags & TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF)) - counter |= (((1U << (8U + (r->m_zhdr0 >> 4))) > 32768U) || ((out_buf_size_mask + 1) < (size_t)(1U << (8U + (r->m_zhdr0 >> 4))))); - if (counter) - { - TINFL_CR_RETURN_FOREVER(36, TINFL_STATUS_FAILED); - } - } - - do - { - TINFL_GET_BITS(3, r->m_final, 3); - r->m_type = r->m_final >> 1; - if (r->m_type == 0) - { - TINFL_SKIP_BITS(5, num_bits & 7); - for (counter = 0; counter < 4; ++counter) - { - if (num_bits) - TINFL_GET_BITS(6, r->m_raw_header[counter], 8); - else - TINFL_GET_BYTE(7, r->m_raw_header[counter]); - } - if ((counter = (r->m_raw_header[0] | (r->m_raw_header[1] << 8))) != (mz_uint)(0xFFFF ^ (r->m_raw_header[2] | (r->m_raw_header[3] << 8)))) - { - TINFL_CR_RETURN_FOREVER(39, TINFL_STATUS_FAILED); - } - while ((counter) && (num_bits)) - { - TINFL_GET_BITS(51, dist, 8); - while (pOut_buf_cur >= pOut_buf_end) - { - TINFL_CR_RETURN(52, TINFL_STATUS_HAS_MORE_OUTPUT); - } - *pOut_buf_cur++ = (mz_uint8)dist; - counter--; - } - while (counter) - { - size_t n; - while (pOut_buf_cur >= pOut_buf_end) - { - TINFL_CR_RETURN(9, TINFL_STATUS_HAS_MORE_OUTPUT); - } - while (pIn_buf_cur >= pIn_buf_end) - { - TINFL_CR_RETURN(38, (decomp_flags & TINFL_FLAG_HAS_MORE_INPUT) ? TINFL_STATUS_NEEDS_MORE_INPUT : TINFL_STATUS_FAILED_CANNOT_MAKE_PROGRESS); - } - n = MZ_MIN(MZ_MIN((size_t)(pOut_buf_end - pOut_buf_cur), (size_t)(pIn_buf_end - pIn_buf_cur)), counter); - TINFL_MEMCPY(pOut_buf_cur, pIn_buf_cur, n); - pIn_buf_cur += n; - pOut_buf_cur += n; - counter -= (mz_uint)n; - } - } - else if (r->m_type == 3) - { - TINFL_CR_RETURN_FOREVER(10, TINFL_STATUS_FAILED); - } - else - { - if (r->m_type == 1) - { - mz_uint8 *p = r->m_tables[0].m_code_size; - mz_uint i; - r->m_table_sizes[0] = 288; - r->m_table_sizes[1] = 32; - TINFL_MEMSET(r->m_tables[1].m_code_size, 5, 32); - for (i = 0; i <= 143; ++i) - *p++ = 8; - for (; i <= 255; ++i) - *p++ = 9; - for (; i <= 279; ++i) - *p++ = 7; - for (; i <= 287; ++i) - *p++ = 8; - } - else - { - for (counter = 0; counter < 3; counter++) - { - TINFL_GET_BITS(11, r->m_table_sizes[counter], "\05\05\04"[counter]); - r->m_table_sizes[counter] += s_min_table_sizes[counter]; - } - MZ_CLEAR_OBJ(r->m_tables[2].m_code_size); - for (counter = 0; counter < r->m_table_sizes[2]; counter++) - { - mz_uint s; - TINFL_GET_BITS(14, s, 3); - r->m_tables[2].m_code_size[s_length_dezigzag[counter]] = (mz_uint8)s; - } - r->m_table_sizes[2] = 19; - } - for (; (int)r->m_type >= 0; r->m_type--) - { - int tree_next, tree_cur; - tinfl_huff_table *pTable; - mz_uint i, j, used_syms, total, sym_index, next_code[17], total_syms[16]; - pTable = &r->m_tables[r->m_type]; - MZ_CLEAR_OBJ(total_syms); - MZ_CLEAR_OBJ(pTable->m_look_up); - MZ_CLEAR_OBJ(pTable->m_tree); - for (i = 0; i < r->m_table_sizes[r->m_type]; ++i) - total_syms[pTable->m_code_size[i]]++; - used_syms = 0, total = 0; - next_code[0] = next_code[1] = 0; - for (i = 1; i <= 15; ++i) - { - used_syms += total_syms[i]; - next_code[i + 1] = (total = ((total + total_syms[i]) << 1)); - } - if ((65536 != total) && (used_syms > 1)) - { - TINFL_CR_RETURN_FOREVER(35, TINFL_STATUS_FAILED); - } - for (tree_next = -1, sym_index = 0; sym_index < r->m_table_sizes[r->m_type]; ++sym_index) - { - mz_uint rev_code = 0, l, cur_code, code_size = pTable->m_code_size[sym_index]; - if (!code_size) - continue; - cur_code = next_code[code_size]++; - for (l = code_size; l > 0; l--, cur_code >>= 1) - rev_code = (rev_code << 1) | (cur_code & 1); - if (code_size <= TINFL_FAST_LOOKUP_BITS) - { - mz_int16 k = (mz_int16)((code_size << 9) | sym_index); - while (rev_code < TINFL_FAST_LOOKUP_SIZE) - { - pTable->m_look_up[rev_code] = k; - rev_code += (1 << code_size); - } - continue; - } - if (0 == (tree_cur = pTable->m_look_up[rev_code & (TINFL_FAST_LOOKUP_SIZE - 1)])) - { - pTable->m_look_up[rev_code & (TINFL_FAST_LOOKUP_SIZE - 1)] = (mz_int16)tree_next; - tree_cur = tree_next; - tree_next -= 2; - } - rev_code >>= (TINFL_FAST_LOOKUP_BITS - 1); - for (j = code_size; j > (TINFL_FAST_LOOKUP_BITS + 1); j--) - { - tree_cur -= ((rev_code >>= 1) & 1); - if (!pTable->m_tree[-tree_cur - 1]) - { - pTable->m_tree[-tree_cur - 1] = (mz_int16)tree_next; - tree_cur = tree_next; - tree_next -= 2; - } - else - tree_cur = pTable->m_tree[-tree_cur - 1]; - } - tree_cur -= ((rev_code >>= 1) & 1); - pTable->m_tree[-tree_cur - 1] = (mz_int16)sym_index; - } - if (r->m_type == 2) - { - for (counter = 0; counter < (r->m_table_sizes[0] + r->m_table_sizes[1]);) - { - mz_uint s; - TINFL_HUFF_DECODE(16, dist, &r->m_tables[2]); - if (dist < 16) - { - r->m_len_codes[counter++] = (mz_uint8)dist; - continue; - } - if ((dist == 16) && (!counter)) - { - TINFL_CR_RETURN_FOREVER(17, TINFL_STATUS_FAILED); - } - num_extra = "\02\03\07"[dist - 16]; - TINFL_GET_BITS(18, s, num_extra); - s += "\03\03\013"[dist - 16]; - TINFL_MEMSET(r->m_len_codes + counter, (dist == 16) ? r->m_len_codes[counter - 1] : 0, s); - counter += s; - } - if ((r->m_table_sizes[0] + r->m_table_sizes[1]) != counter) - { - TINFL_CR_RETURN_FOREVER(21, TINFL_STATUS_FAILED); - } - TINFL_MEMCPY(r->m_tables[0].m_code_size, r->m_len_codes, r->m_table_sizes[0]); - TINFL_MEMCPY(r->m_tables[1].m_code_size, r->m_len_codes + r->m_table_sizes[0], r->m_table_sizes[1]); - } - } - for (;;) - { - mz_uint8 *pSrc; - for (;;) - { - if (((pIn_buf_end - pIn_buf_cur) < 4) || ((pOut_buf_end - pOut_buf_cur) < 2)) - { - TINFL_HUFF_DECODE(23, counter, &r->m_tables[0]); - if (counter >= 256) - break; - while (pOut_buf_cur >= pOut_buf_end) - { - TINFL_CR_RETURN(24, TINFL_STATUS_HAS_MORE_OUTPUT); - } - *pOut_buf_cur++ = (mz_uint8)counter; - } - else - { - int sym2; - mz_uint code_len; -#if TINFL_USE_64BIT_BITBUF - if (num_bits < 30) - { - bit_buf |= (((tinfl_bit_buf_t)MZ_READ_LE32(pIn_buf_cur)) << num_bits); - pIn_buf_cur += 4; - num_bits += 32; - } -#else - if (num_bits < 15) - { - bit_buf |= (((tinfl_bit_buf_t)MZ_READ_LE16(pIn_buf_cur)) << num_bits); - pIn_buf_cur += 2; - num_bits += 16; - } -#endif - if ((sym2 = r->m_tables[0].m_look_up[bit_buf & (TINFL_FAST_LOOKUP_SIZE - 1)]) >= 0) - code_len = sym2 >> 9; - else - { - code_len = TINFL_FAST_LOOKUP_BITS; - do - { - sym2 = r->m_tables[0].m_tree[~sym2 + ((bit_buf >> code_len++) & 1)]; - } while (sym2 < 0); - } - counter = sym2; - bit_buf >>= code_len; - num_bits -= code_len; - if (counter & 256) - break; - -#if !TINFL_USE_64BIT_BITBUF - if (num_bits < 15) - { - bit_buf |= (((tinfl_bit_buf_t)MZ_READ_LE16(pIn_buf_cur)) << num_bits); - pIn_buf_cur += 2; - num_bits += 16; - } -#endif - if ((sym2 = r->m_tables[0].m_look_up[bit_buf & (TINFL_FAST_LOOKUP_SIZE - 1)]) >= 0) - code_len = sym2 >> 9; - else - { - code_len = TINFL_FAST_LOOKUP_BITS; - do - { - sym2 = r->m_tables[0].m_tree[~sym2 + ((bit_buf >> code_len++) & 1)]; - } while (sym2 < 0); - } - bit_buf >>= code_len; - num_bits -= code_len; - - pOut_buf_cur[0] = (mz_uint8)counter; - if (sym2 & 256) - { - pOut_buf_cur++; - counter = sym2; - break; - } - pOut_buf_cur[1] = (mz_uint8)sym2; - pOut_buf_cur += 2; - } - } - if ((counter &= 511) == 256) - break; - - num_extra = s_length_extra[counter - 257]; - counter = s_length_base[counter - 257]; - if (num_extra) - { - mz_uint extra_bits; - TINFL_GET_BITS(25, extra_bits, num_extra); - counter += extra_bits; - } - - TINFL_HUFF_DECODE(26, dist, &r->m_tables[1]); - num_extra = s_dist_extra[dist]; - dist = s_dist_base[dist]; - if (num_extra) - { - mz_uint extra_bits; - TINFL_GET_BITS(27, extra_bits, num_extra); - dist += extra_bits; - } - - dist_from_out_buf_start = pOut_buf_cur - pOut_buf_start; - if ((dist > dist_from_out_buf_start) && (decomp_flags & TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF)) - { - TINFL_CR_RETURN_FOREVER(37, TINFL_STATUS_FAILED); - } - - pSrc = pOut_buf_start + ((dist_from_out_buf_start - dist) & out_buf_size_mask); - - if ((MZ_MAX(pOut_buf_cur, pSrc) + counter) > pOut_buf_end) - { - while (counter--) - { - while (pOut_buf_cur >= pOut_buf_end) - { - TINFL_CR_RETURN(53, TINFL_STATUS_HAS_MORE_OUTPUT); - } - *pOut_buf_cur++ = pOut_buf_start[(dist_from_out_buf_start++ - dist) & out_buf_size_mask]; - } - continue; - } -#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES - else if ((counter >= 9) && (counter <= dist)) - { - const mz_uint8 *pSrc_end = pSrc + (counter & ~7); - do - { -#ifdef MINIZ_UNALIGNED_USE_MEMCPY - memcpy(pOut_buf_cur, pSrc, sizeof(mz_uint32)*2); -#else - ((mz_uint32 *)pOut_buf_cur)[0] = ((const mz_uint32 *)pSrc)[0]; - ((mz_uint32 *)pOut_buf_cur)[1] = ((const mz_uint32 *)pSrc)[1]; -#endif - pOut_buf_cur += 8; - } while ((pSrc += 8) < pSrc_end); - if ((counter &= 7) < 3) - { - if (counter) - { - pOut_buf_cur[0] = pSrc[0]; - if (counter > 1) - pOut_buf_cur[1] = pSrc[1]; - pOut_buf_cur += counter; - } - continue; - } - } -#endif - while(counter>2) - { - pOut_buf_cur[0] = pSrc[0]; - pOut_buf_cur[1] = pSrc[1]; - pOut_buf_cur[2] = pSrc[2]; - pOut_buf_cur += 3; - pSrc += 3; - counter -= 3; - } - if (counter > 0) - { - pOut_buf_cur[0] = pSrc[0]; - if (counter > 1) - pOut_buf_cur[1] = pSrc[1]; - pOut_buf_cur += counter; - } - } - } - } while (!(r->m_final & 1)); - - /* Ensure byte alignment and put back any bytes from the bitbuf if we've looked ahead too far on gzip, or other Deflate streams followed by arbitrary data. */ - /* I'm being super conservative here. A number of simplifications can be made to the byte alignment part, and the Adler32 check shouldn't ever need to worry about reading from the bitbuf now. */ - TINFL_SKIP_BITS(32, num_bits & 7); - while ((pIn_buf_cur > pIn_buf_next) && (num_bits >= 8)) - { - --pIn_buf_cur; - num_bits -= 8; - } - bit_buf &= (tinfl_bit_buf_t)((((mz_uint64)1) << num_bits) - (mz_uint64)1); - MZ_ASSERT(!num_bits); /* if this assert fires then we've read beyond the end of non-deflate/zlib streams with following data (such as gzip streams). */ - - if (decomp_flags & TINFL_FLAG_PARSE_ZLIB_HEADER) - { - for (counter = 0; counter < 4; ++counter) - { - mz_uint s; - if (num_bits) - TINFL_GET_BITS(41, s, 8); - else - TINFL_GET_BYTE(42, s); - r->m_z_adler32 = (r->m_z_adler32 << 8) | s; - } - } - TINFL_CR_RETURN_FOREVER(34, TINFL_STATUS_DONE); - - TINFL_CR_FINISH - -common_exit: - /* As long as we aren't telling the caller that we NEED more input to make forward progress: */ - /* Put back any bytes from the bitbuf in case we've looked ahead too far on gzip, or other Deflate streams followed by arbitrary data. */ - /* We need to be very careful here to NOT push back any bytes we definitely know we need to make forward progress, though, or we'll lock the caller up into an inf loop. */ - if ((status != TINFL_STATUS_NEEDS_MORE_INPUT) && (status != TINFL_STATUS_FAILED_CANNOT_MAKE_PROGRESS)) - { - while ((pIn_buf_cur > pIn_buf_next) && (num_bits >= 8)) - { - --pIn_buf_cur; - num_bits -= 8; - } - } - r->m_num_bits = num_bits; - r->m_bit_buf = bit_buf & (tinfl_bit_buf_t)((((mz_uint64)1) << num_bits) - (mz_uint64)1); - r->m_dist = dist; - r->m_counter = counter; - r->m_num_extra = num_extra; - r->m_dist_from_out_buf_start = dist_from_out_buf_start; - *pIn_buf_size = pIn_buf_cur - pIn_buf_next; - *pOut_buf_size = pOut_buf_cur - pOut_buf_next; - if ((decomp_flags & (TINFL_FLAG_PARSE_ZLIB_HEADER | TINFL_FLAG_COMPUTE_ADLER32)) && (status >= 0)) - { - const mz_uint8 *ptr = pOut_buf_next; - size_t buf_len = *pOut_buf_size; - mz_uint32 i, s1 = r->m_check_adler32 & 0xffff, s2 = r->m_check_adler32 >> 16; - size_t block_len = buf_len % 5552; - while (buf_len) - { - for (i = 0; i + 7 < block_len; i += 8, ptr += 8) - { - s1 += ptr[0], s2 += s1; - s1 += ptr[1], s2 += s1; - s1 += ptr[2], s2 += s1; - s1 += ptr[3], s2 += s1; - s1 += ptr[4], s2 += s1; - s1 += ptr[5], s2 += s1; - s1 += ptr[6], s2 += s1; - s1 += ptr[7], s2 += s1; - } - for (; i < block_len; ++i) - s1 += *ptr++, s2 += s1; - s1 %= 65521U, s2 %= 65521U; - buf_len -= block_len; - block_len = 5552; - } - r->m_check_adler32 = (s2 << 16) + s1; - if ((status == TINFL_STATUS_DONE) && (decomp_flags & TINFL_FLAG_PARSE_ZLIB_HEADER) && (r->m_check_adler32 != r->m_z_adler32)) - status = TINFL_STATUS_ADLER32_MISMATCH; - } - return status; -} - diff --git a/src/crent370/miniz/@@tidfre.c b/src/crent370/miniz/@@tidfre.c deleted file mode 100644 index 456e081..0000000 --- a/src/crent370/miniz/@@tidfre.c +++ /dev/null @@ -1,33 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#define MZ_PRIVATE -#include - -__asm__("\n&FUNC SETC 'tinfl_decompressor_free'"); -void tinfl_decompressor_free(tinfl_decompressor *pDecomp) -{ - MZ_FREE(pDecomp); -} diff --git a/src/crent370/miniz/@@tidm2c.c b/src/crent370/miniz/@@tidm2c.c deleted file mode 100644 index 325027d..0000000 --- a/src/crent370/miniz/@@tidm2c.c +++ /dev/null @@ -1,58 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#define MZ_PRIVATE -#include - -__asm__("\n&FUNC SETC 'tinfl_decompress_mem_to_callback'"); -int tinfl_decompress_mem_to_callback(const void *pIn_buf, size_t *pIn_buf_size, tinfl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags) -{ - int result = 0; - tinfl_decompressor decomp; - mz_uint8 *pDict = (mz_uint8 *)MZ_MALLOC(TINFL_LZ_DICT_SIZE); - size_t in_buf_ofs = 0, dict_ofs = 0; - if (!pDict) - return TINFL_STATUS_FAILED; - tinfl_init(&decomp); - for (;;) - { - size_t in_buf_size = *pIn_buf_size - in_buf_ofs, dst_buf_size = TINFL_LZ_DICT_SIZE - dict_ofs; - tinfl_status status = tinfl_decompress(&decomp, (const mz_uint8 *)pIn_buf + in_buf_ofs, &in_buf_size, pDict, pDict + dict_ofs, &dst_buf_size, - (flags & ~(TINFL_FLAG_HAS_MORE_INPUT | TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF))); - in_buf_ofs += in_buf_size; - if ((dst_buf_size) && (!(*pPut_buf_func)(pDict + dict_ofs, (int)dst_buf_size, pPut_buf_user))) - break; - if (status != TINFL_STATUS_HAS_MORE_OUTPUT) - { - result = (status == TINFL_STATUS_DONE); - break; - } - dict_ofs = (dict_ofs + dst_buf_size) & (TINFL_LZ_DICT_SIZE - 1); - } - MZ_FREE(pDict); - *pIn_buf_size = in_buf_ofs; - return result; -} - diff --git a/src/crent370/miniz/@@tidm2h.c b/src/crent370/miniz/@@tidm2h.c deleted file mode 100644 index ef6ae36..0000000 --- a/src/crent370/miniz/@@tidm2h.c +++ /dev/null @@ -1,68 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#define MZ_PRIVATE -#include - -__asm__("\n&FUNC SETC 'tinfl_decompress_mem_to_heap'"); -/* Higher level helper functions. */ -void *tinfl_decompress_mem_to_heap(const void *pSrc_buf, size_t src_buf_len, size_t *pOut_len, int flags) -{ - tinfl_decompressor decomp; - void *pBuf = NULL, *pNew_buf; - size_t src_buf_ofs = 0, out_buf_capacity = 0; - *pOut_len = 0; - tinfl_init(&decomp); - for (;;) - { - size_t src_buf_size = src_buf_len - src_buf_ofs, dst_buf_size = out_buf_capacity - *pOut_len, new_out_buf_capacity; - tinfl_status status = tinfl_decompress(&decomp, (const mz_uint8 *)pSrc_buf + src_buf_ofs, &src_buf_size, (mz_uint8 *)pBuf, pBuf ? (mz_uint8 *)pBuf + *pOut_len : NULL, &dst_buf_size, - (flags & ~TINFL_FLAG_HAS_MORE_INPUT) | TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF); - if ((status < 0) || (status == TINFL_STATUS_NEEDS_MORE_INPUT)) - { - MZ_FREE(pBuf); - *pOut_len = 0; - return NULL; - } - src_buf_ofs += src_buf_size; - *pOut_len += dst_buf_size; - if (status == TINFL_STATUS_DONE) - break; - new_out_buf_capacity = out_buf_capacity * 2; - if (new_out_buf_capacity < 128) - new_out_buf_capacity = 128; - pNew_buf = MZ_REALLOC(pBuf, new_out_buf_capacity); - if (!pNew_buf) - { - MZ_FREE(pBuf); - *pOut_len = 0; - return NULL; - } - pBuf = pNew_buf; - out_buf_capacity = new_out_buf_capacity; - } - return pBuf; -} - diff --git a/src/crent370/miniz/@@tidm2m.c b/src/crent370/miniz/@@tidm2m.c deleted file mode 100644 index d1087e2..0000000 --- a/src/crent370/miniz/@@tidm2m.c +++ /dev/null @@ -1,38 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#define MZ_PRIVATE -#include - -__asm__("\n&FUNC SETC 'tinfl_decompress_mem_to_mem'"); -size_t tinfl_decompress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void *pSrc_buf, size_t src_buf_len, int flags) -{ - tinfl_decompressor decomp; - tinfl_status status; - tinfl_init(&decomp); - status = tinfl_decompress(&decomp, (const mz_uint8 *)pSrc_buf, &src_buf_len, (mz_uint8 *)pOut_buf, (mz_uint8 *)pOut_buf, &out_buf_len, (flags & ~TINFL_FLAG_HAS_MORE_INPUT) | TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF); - return (status != TINFL_STATUS_DONE) ? TINFL_DECOMPRESS_MEM_TO_MEM_FAILED : out_buf_len; -} - diff --git a/src/crent370/miniz/miniz.c b/src/crent370/miniz/miniz.c deleted file mode 100644 index acbc1d7..0000000 --- a/src/crent370/miniz/miniz.c +++ /dev/null @@ -1,604 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ - -#include "miniz.h" - -typedef unsigned char mz_validate_uint16[sizeof(mz_uint16) == 2 ? 1 : -1]; -typedef unsigned char mz_validate_uint32[sizeof(mz_uint32) == 4 ? 1 : -1]; -#if 0 /* the gccmvs.3.2.3 compiler lacks proper support for 64 bit ints */ -typedef unsigned char mz_validate_uint64[sizeof(mz_uint64) == 8 ? 1 : -1]; -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* ------------------- zlib-style API's */ - -mz_ulong mz_adler32(mz_ulong adler, const unsigned char *ptr, size_t buf_len) -{ - mz_uint32 i, s1 = (mz_uint32)(adler & 0xffff), s2 = (mz_uint32)(adler >> 16); - size_t block_len = buf_len % 5552; - if (!ptr) - return MZ_ADLER32_INIT; - while (buf_len) - { - for (i = 0; i + 7 < block_len; i += 8, ptr += 8) - { - s1 += ptr[0], s2 += s1; - s1 += ptr[1], s2 += s1; - s1 += ptr[2], s2 += s1; - s1 += ptr[3], s2 += s1; - s1 += ptr[4], s2 += s1; - s1 += ptr[5], s2 += s1; - s1 += ptr[6], s2 += s1; - s1 += ptr[7], s2 += s1; - } - for (; i < block_len; ++i) - s1 += *ptr++, s2 += s1; - s1 %= 65521U, s2 %= 65521U; - buf_len -= block_len; - block_len = 5552; - } - return (s2 << 16) + s1; -} - -/* Karl Malbrain's compact CRC-32. See "A compact CCITT crc16 and crc32 C implementation that balances processor cache usage against speed": http://www.geocities.com/malbrain/ */ -#if 0 - mz_ulong mz_crc32(mz_ulong crc, const mz_uint8 *ptr, size_t buf_len) - { - static const mz_uint32 s_crc32[16] = { 0, 0x1db71064, 0x3b6e20c8, 0x26d930ac, 0x76dc4190, 0x6b6b51f4, 0x4db26158, 0x5005713c, - 0xedb88320, 0xf00f9344, 0xd6d6a3e8, 0xcb61b38c, 0x9b64c2b0, 0x86d3d2d4, 0xa00ae278, 0xbdbdf21c }; - mz_uint32 crcu32 = (mz_uint32)crc; - if (!ptr) - return MZ_CRC32_INIT; - crcu32 = ~crcu32; - while (buf_len--) - { - mz_uint8 b = *ptr++; - crcu32 = (crcu32 >> 4) ^ s_crc32[(crcu32 & 0xF) ^ (b & 0xF)]; - crcu32 = (crcu32 >> 4) ^ s_crc32[(crcu32 & 0xF) ^ (b >> 4)]; - } - return ~crcu32; - } -#else -/* Faster, but larger CPU cache footprint. - */ -mz_ulong mz_crc32(mz_ulong crc, const mz_uint8 *ptr, size_t buf_len) -{ - static const mz_uint32 s_crc_table[256] = - { - 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, 0x706AF48F, 0xE963A535, - 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, - 0xE7B82D07, 0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, 0x1ADAD47D, - 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, - 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4, - 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, 0x35B5A8FA, 0x42B2986C, - 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC, - 0x51DE003A, 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F, - 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, 0x2F6F7C87, 0x58684C11, 0xC1611DAB, - 0xB6662D3D, 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F, - 0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, 0x7F6A0DBB, - 0x086D3D2D, 0x91646C97, 0xE6635C01, 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, - 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, - 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65, 0x4DB26158, 0x3AB551CE, - 0xA3BC0074, 0xD4BB30E2, 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A, - 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9, - 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, - 0xCE61E49F, 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, 0x2EB40D81, - 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, 0xEAD54739, - 0x9DD277AF, 0x04DB2615, 0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, - 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344, 0x8708A3D2, 0x1E01F268, - 0x6906C2FE, 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, - 0x10DA7A5A, 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, 0xD6D6A3E8, - 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B, - 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, - 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, 0xCC0C7795, 0xBB0B4703, - 0x220216B9, 0x5505262F, 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, - 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, - 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, - 0x0CB61B38, 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242, - 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777, 0x88085AE6, - 0xFF0F6A70, 0x66063BCA, 0x11010B5C, 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, - 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7, 0x4969474D, - 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, - 0x47B2CF7F, 0x30B5FFE9, 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, - 0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, - 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D - }; - - mz_uint32 crc32 = (mz_uint32)crc ^ 0xFFFFFFFF; - const mz_uint8 *pByte_buf = (const mz_uint8 *)ptr; - - while (buf_len >= 4) - { - crc32 = (crc32 >> 8) ^ s_crc_table[(crc32 ^ pByte_buf[0]) & 0xFF]; - crc32 = (crc32 >> 8) ^ s_crc_table[(crc32 ^ pByte_buf[1]) & 0xFF]; - crc32 = (crc32 >> 8) ^ s_crc_table[(crc32 ^ pByte_buf[2]) & 0xFF]; - crc32 = (crc32 >> 8) ^ s_crc_table[(crc32 ^ pByte_buf[3]) & 0xFF]; - pByte_buf += 4; - buf_len -= 4; - } - - while (buf_len) - { - crc32 = (crc32 >> 8) ^ s_crc_table[(crc32 ^ pByte_buf[0]) & 0xFF]; - ++pByte_buf; - --buf_len; - } - - return ~crc32; -} -#endif - -void mz_free(void *p) -{ - MZ_FREE(p); -} - -void *miniz_def_alloc_func(void *opaque, size_t items, size_t size) -{ - (void)opaque, (void)items, (void)size; - return MZ_MALLOC(items * size); -} -void miniz_def_free_func(void *opaque, void *address) -{ - (void)opaque, (void)address; - MZ_FREE(address); -} -void *miniz_def_realloc_func(void *opaque, void *address, size_t items, size_t size) -{ - (void)opaque, (void)address, (void)items, (void)size; - return MZ_REALLOC(address, items * size); -} - -const char *mz_version(void) -{ - return MZ_VERSION; -} - -#ifndef MINIZ_NO_ZLIB_APIS - -int mz_deflateInit(mz_streamp pStream, int level) -{ - return mz_deflateInit2(pStream, level, MZ_DEFLATED, MZ_DEFAULT_WINDOW_BITS, 9, MZ_DEFAULT_STRATEGY); -} - -int mz_deflateInit2(mz_streamp pStream, int level, int method, int window_bits, int mem_level, int strategy) -{ - tdefl_compressor *pComp; - mz_uint comp_flags = TDEFL_COMPUTE_ADLER32 | tdefl_create_comp_flags_from_zip_params(level, window_bits, strategy); - - if (!pStream) - return MZ_STREAM_ERROR; - if ((method != MZ_DEFLATED) || ((mem_level < 1) || (mem_level > 9)) || ((window_bits != MZ_DEFAULT_WINDOW_BITS) && (-window_bits != MZ_DEFAULT_WINDOW_BITS))) - return MZ_PARAM_ERROR; - - pStream->data_type = 0; - pStream->adler = MZ_ADLER32_INIT; - pStream->msg = NULL; - pStream->reserved = 0; - pStream->total_in = 0; - pStream->total_out = 0; - if (!pStream->zalloc) - pStream->zalloc = miniz_def_alloc_func; - if (!pStream->zfree) - pStream->zfree = miniz_def_free_func; - - pComp = (tdefl_compressor *)pStream->zalloc(pStream->opaque, 1, sizeof(tdefl_compressor)); - if (!pComp) - return MZ_MEM_ERROR; - - pStream->state = (struct mz_internal_state *)pComp; - - if (tdefl_init(pComp, NULL, NULL, comp_flags) != TDEFL_STATUS_OKAY) - { - mz_deflateEnd(pStream); - return MZ_PARAM_ERROR; - } - - return MZ_OK; -} - -int mz_deflateReset(mz_streamp pStream) -{ - if ((!pStream) || (!pStream->state) || (!pStream->zalloc) || (!pStream->zfree)) - return MZ_STREAM_ERROR; - pStream->total_in = pStream->total_out = 0; - tdefl_init((tdefl_compressor *)pStream->state, NULL, NULL, ((tdefl_compressor *)pStream->state)->m_flags); - return MZ_OK; -} - -int mz_deflate(mz_streamp pStream, int flush) -{ - size_t in_bytes, out_bytes; - mz_ulong orig_total_in, orig_total_out; - int mz_status = MZ_OK; - - if ((!pStream) || (!pStream->state) || (flush < 0) || (flush > MZ_FINISH) || (!pStream->next_out)) - return MZ_STREAM_ERROR; - if (!pStream->avail_out) - return MZ_BUF_ERROR; - - if (flush == MZ_PARTIAL_FLUSH) - flush = MZ_SYNC_FLUSH; - - if (((tdefl_compressor *)pStream->state)->m_prev_return_status == TDEFL_STATUS_DONE) - return (flush == MZ_FINISH) ? MZ_STREAM_END : MZ_BUF_ERROR; - - orig_total_in = pStream->total_in; - orig_total_out = pStream->total_out; - for (;;) - { - tdefl_status defl_status; - in_bytes = pStream->avail_in; - out_bytes = pStream->avail_out; - - defl_status = tdefl_compress((tdefl_compressor *)pStream->state, pStream->next_in, &in_bytes, pStream->next_out, &out_bytes, (tdefl_flush)flush); - pStream->next_in += (mz_uint)in_bytes; - pStream->avail_in -= (mz_uint)in_bytes; - pStream->total_in += (mz_uint)in_bytes; - pStream->adler = tdefl_get_adler32((tdefl_compressor *)pStream->state); - - pStream->next_out += (mz_uint)out_bytes; - pStream->avail_out -= (mz_uint)out_bytes; - pStream->total_out += (mz_uint)out_bytes; - - if (defl_status < 0) - { - mz_status = MZ_STREAM_ERROR; - break; - } - else if (defl_status == TDEFL_STATUS_DONE) - { - mz_status = MZ_STREAM_END; - break; - } - else if (!pStream->avail_out) - break; - else if ((!pStream->avail_in) && (flush != MZ_FINISH)) - { - if ((flush) || (pStream->total_in != orig_total_in) || (pStream->total_out != orig_total_out)) - break; - return MZ_BUF_ERROR; /* Can't make forward progress without some input. - */ - } - } - return mz_status; -} - -int mz_deflateEnd(mz_streamp pStream) -{ - if (!pStream) - return MZ_STREAM_ERROR; - if (pStream->state) - { - pStream->zfree(pStream->opaque, pStream->state); - pStream->state = NULL; - } - return MZ_OK; -} - -mz_ulong mz_deflateBound(mz_streamp pStream, mz_ulong source_len) -{ - (void)pStream; - /* This is really over conservative. (And lame, but it's actually pretty tricky to compute a true upper bound given the way tdefl's blocking works.) */ - return MZ_MAX(128 + (source_len * 110) / 100, 128 + source_len + ((source_len / (31 * 1024)) + 1) * 5); -} - -int mz_compress2(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len, int level) -{ - int status; - mz_stream stream; - memset(&stream, 0, sizeof(stream)); - - /* In case mz_ulong is 64-bits (argh I hate longs). */ - if ((source_len | *pDest_len) > 0xFFFFFFFFU) - return MZ_PARAM_ERROR; - - stream.next_in = pSource; - stream.avail_in = (mz_uint32)source_len; - stream.next_out = pDest; - stream.avail_out = (mz_uint32)*pDest_len; - - status = mz_deflateInit(&stream, level); - if (status != MZ_OK) - return status; - - status = mz_deflate(&stream, MZ_FINISH); - if (status != MZ_STREAM_END) - { - mz_deflateEnd(&stream); - return (status == MZ_OK) ? MZ_BUF_ERROR : status; - } - - *pDest_len = stream.total_out; - return mz_deflateEnd(&stream); -} - -int mz_compress(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len) -{ - return mz_compress2(pDest, pDest_len, pSource, source_len, MZ_DEFAULT_COMPRESSION); -} - -mz_ulong mz_compressBound(mz_ulong source_len) -{ - return mz_deflateBound(NULL, source_len); -} - -typedef struct -{ - tinfl_decompressor m_decomp; - mz_uint m_dict_ofs, m_dict_avail, m_first_call, m_has_flushed; - int m_window_bits; - mz_uint8 m_dict[TINFL_LZ_DICT_SIZE]; - tinfl_status m_last_status; -} inflate_state; - -int mz_inflateInit2(mz_streamp pStream, int window_bits) -{ - inflate_state *pDecomp; - if (!pStream) - return MZ_STREAM_ERROR; - if ((window_bits != MZ_DEFAULT_WINDOW_BITS) && (-window_bits != MZ_DEFAULT_WINDOW_BITS)) - return MZ_PARAM_ERROR; - - pStream->data_type = 0; - pStream->adler = 0; - pStream->msg = NULL; - pStream->total_in = 0; - pStream->total_out = 0; - pStream->reserved = 0; - if (!pStream->zalloc) - pStream->zalloc = miniz_def_alloc_func; - if (!pStream->zfree) - pStream->zfree = miniz_def_free_func; - - pDecomp = (inflate_state *)pStream->zalloc(pStream->opaque, 1, sizeof(inflate_state)); - if (!pDecomp) - return MZ_MEM_ERROR; - - pStream->state = (struct mz_internal_state *)pDecomp; - - tinfl_init(&pDecomp->m_decomp); - pDecomp->m_dict_ofs = 0; - pDecomp->m_dict_avail = 0; - pDecomp->m_last_status = TINFL_STATUS_NEEDS_MORE_INPUT; - pDecomp->m_first_call = 1; - pDecomp->m_has_flushed = 0; - pDecomp->m_window_bits = window_bits; - - return MZ_OK; -} - -int mz_inflateInit(mz_streamp pStream) -{ - return mz_inflateInit2(pStream, MZ_DEFAULT_WINDOW_BITS); -} - -int mz_inflate(mz_streamp pStream, int flush) -{ - inflate_state *pState; - mz_uint n, first_call, decomp_flags = TINFL_FLAG_COMPUTE_ADLER32; - size_t in_bytes, out_bytes, orig_avail_in; - tinfl_status status; - - if ((!pStream) || (!pStream->state)) - return MZ_STREAM_ERROR; - if (flush == MZ_PARTIAL_FLUSH) - flush = MZ_SYNC_FLUSH; - if ((flush) && (flush != MZ_SYNC_FLUSH) && (flush != MZ_FINISH)) - return MZ_STREAM_ERROR; - - pState = (inflate_state *)pStream->state; - if (pState->m_window_bits > 0) - decomp_flags |= TINFL_FLAG_PARSE_ZLIB_HEADER; - orig_avail_in = pStream->avail_in; - - first_call = pState->m_first_call; - pState->m_first_call = 0; - if (pState->m_last_status < 0) - return MZ_DATA_ERROR; - - if (pState->m_has_flushed && (flush != MZ_FINISH)) - return MZ_STREAM_ERROR; - pState->m_has_flushed |= (flush == MZ_FINISH); - - if ((flush == MZ_FINISH) && (first_call)) - { - /* MZ_FINISH on the first call implies that the input and output buffers are large enough to hold the entire compressed/decompressed file. */ - decomp_flags |= TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF; - in_bytes = pStream->avail_in; - out_bytes = pStream->avail_out; - status = tinfl_decompress(&pState->m_decomp, pStream->next_in, &in_bytes, pStream->next_out, pStream->next_out, &out_bytes, decomp_flags); - pState->m_last_status = status; - pStream->next_in += (mz_uint)in_bytes; - pStream->avail_in -= (mz_uint)in_bytes; - pStream->total_in += (mz_uint)in_bytes; - pStream->adler = tinfl_get_adler32(&pState->m_decomp); - pStream->next_out += (mz_uint)out_bytes; - pStream->avail_out -= (mz_uint)out_bytes; - pStream->total_out += (mz_uint)out_bytes; - - if (status < 0) - return MZ_DATA_ERROR; - else if (status != TINFL_STATUS_DONE) - { - pState->m_last_status = TINFL_STATUS_FAILED; - return MZ_BUF_ERROR; - } - return MZ_STREAM_END; - } - /* flush != MZ_FINISH then we must assume there's more input. */ - if (flush != MZ_FINISH) - decomp_flags |= TINFL_FLAG_HAS_MORE_INPUT; - - if (pState->m_dict_avail) - { - n = MZ_MIN(pState->m_dict_avail, pStream->avail_out); - memcpy(pStream->next_out, pState->m_dict + pState->m_dict_ofs, n); - pStream->next_out += n; - pStream->avail_out -= n; - pStream->total_out += n; - pState->m_dict_avail -= n; - pState->m_dict_ofs = (pState->m_dict_ofs + n) & (TINFL_LZ_DICT_SIZE - 1); - return ((pState->m_last_status == TINFL_STATUS_DONE) && (!pState->m_dict_avail)) ? MZ_STREAM_END : MZ_OK; - } - - for (;;) - { - in_bytes = pStream->avail_in; - out_bytes = TINFL_LZ_DICT_SIZE - pState->m_dict_ofs; - - status = tinfl_decompress(&pState->m_decomp, pStream->next_in, &in_bytes, pState->m_dict, pState->m_dict + pState->m_dict_ofs, &out_bytes, decomp_flags); - pState->m_last_status = status; - - pStream->next_in += (mz_uint)in_bytes; - pStream->avail_in -= (mz_uint)in_bytes; - pStream->total_in += (mz_uint)in_bytes; - pStream->adler = tinfl_get_adler32(&pState->m_decomp); - - pState->m_dict_avail = (mz_uint)out_bytes; - - n = MZ_MIN(pState->m_dict_avail, pStream->avail_out); - memcpy(pStream->next_out, pState->m_dict + pState->m_dict_ofs, n); - pStream->next_out += n; - pStream->avail_out -= n; - pStream->total_out += n; - pState->m_dict_avail -= n; - pState->m_dict_ofs = (pState->m_dict_ofs + n) & (TINFL_LZ_DICT_SIZE - 1); - - if (status < 0) - return MZ_DATA_ERROR; /* Stream is corrupted (there could be some uncompressed data left in the output dictionary - oh well). */ - else if ((status == TINFL_STATUS_NEEDS_MORE_INPUT) && (!orig_avail_in)) - return MZ_BUF_ERROR; /* Signal caller that we can't make forward progress without supplying more input or by setting flush to MZ_FINISH. */ - else if (flush == MZ_FINISH) - { - /* The output buffer MUST be large to hold the remaining uncompressed data when flush==MZ_FINISH. */ - if (status == TINFL_STATUS_DONE) - return pState->m_dict_avail ? MZ_BUF_ERROR : MZ_STREAM_END; - /* status here must be TINFL_STATUS_HAS_MORE_OUTPUT, which means there's at least 1 more byte on the way. If there's no more room left in the output buffer then something is wrong. */ - else if (!pStream->avail_out) - return MZ_BUF_ERROR; - } - else if ((status == TINFL_STATUS_DONE) || (!pStream->avail_in) || (!pStream->avail_out) || (pState->m_dict_avail)) - break; - } - - return ((status == TINFL_STATUS_DONE) && (!pState->m_dict_avail)) ? MZ_STREAM_END : MZ_OK; -} - -int mz_inflateEnd(mz_streamp pStream) -{ - if (!pStream) - return MZ_STREAM_ERROR; - if (pStream->state) - { - pStream->zfree(pStream->opaque, pStream->state); - pStream->state = NULL; - } - return MZ_OK; -} - -int mz_uncompress(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len) -{ - mz_stream stream; - int status; - memset(&stream, 0, sizeof(stream)); - - /* In case mz_ulong is 64-bits (argh I hate longs). */ - if ((source_len | *pDest_len) > 0xFFFFFFFFU) - return MZ_PARAM_ERROR; - - stream.next_in = pSource; - stream.avail_in = (mz_uint32)source_len; - stream.next_out = pDest; - stream.avail_out = (mz_uint32)*pDest_len; - - status = mz_inflateInit(&stream); - if (status != MZ_OK) - return status; - - status = mz_inflate(&stream, MZ_FINISH); - if (status != MZ_STREAM_END) - { - mz_inflateEnd(&stream); - return ((status == MZ_BUF_ERROR) && (!stream.avail_in)) ? MZ_DATA_ERROR : status; - } - *pDest_len = stream.total_out; - - return mz_inflateEnd(&stream); -} - -const char *mz_error(int err) -{ - static struct - { - int m_err; - const char *m_pDesc; - } s_error_descs[] = - { - { MZ_OK, "" }, { MZ_STREAM_END, "stream end" }, { MZ_NEED_DICT, "need dictionary" }, { MZ_ERRNO, "file error" }, { MZ_STREAM_ERROR, "stream error" }, { MZ_DATA_ERROR, "data error" }, { MZ_MEM_ERROR, "out of memory" }, { MZ_BUF_ERROR, "buf error" }, { MZ_VERSION_ERROR, "version error" }, { MZ_PARAM_ERROR, "parameter error" } - }; - mz_uint i; - for (i = 0; i < sizeof(s_error_descs) / sizeof(s_error_descs[0]); ++i) - if (s_error_descs[i].m_err == err) - return s_error_descs[i].m_pDesc; - return NULL; -} - -#endif /*MINIZ_NO_ZLIB_APIS */ - -#ifdef __cplusplus -} -#endif - -/* - This is free and unencumbered software released into the public domain. - - Anyone is free to copy, modify, publish, use, compile, sell, or - distribute this software, either in source code form or as a compiled - binary, for any purpose, commercial or non-commercial, and by any - means. - - In jurisdictions that recognize copyright laws, the author or authors - of this software dedicate any and all copyright interest in the - software to the public domain. We make this dedication for the benefit - of the public at large and to the detriment of our heirs and - successors. We intend this dedication to be an overt act of - relinquishment in perpetuity of all present and future rights to this - software under copyright law. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR - OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - OTHER DEALINGS IN THE SOFTWARE. - - For more information, please refer to -*/ diff --git a/src/crent370/miniz/mztdef.c b/src/crent370/miniz/mztdef.c deleted file mode 100644 index a2c638a..0000000 --- a/src/crent370/miniz/mztdef.c +++ /dev/null @@ -1,1577 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ - -#include "miniz_tdef.h" -#include "miniz.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ------------------- Low-level Compression (independent from all decompression API's) */ - -/* Purposely making these tables static for faster init and thread safety. */ -static const mz_uint16 s_tdefl_len_sym[256] = - { - 257, 258, 259, 260, 261, 262, 263, 264, 265, 265, 266, 266, 267, 267, 268, 268, 269, 269, 269, 269, 270, 270, 270, 270, 271, 271, 271, 271, 272, 272, 272, 272, - 273, 273, 273, 273, 273, 273, 273, 273, 274, 274, 274, 274, 274, 274, 274, 274, 275, 275, 275, 275, 275, 275, 275, 275, 276, 276, 276, 276, 276, 276, 276, 276, - 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, - 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, - 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, - 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, - 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, - 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 285 - }; - -static const mz_uint8 s_tdefl_len_extra[256] = - { - 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 0 - }; - -static const mz_uint8 s_tdefl_small_dist_sym[512] = - { - 0, 1, 2, 3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17 - }; - -static const mz_uint8 s_tdefl_small_dist_extra[512] = - { - 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7 - }; - -static const mz_uint8 s_tdefl_large_dist_sym[128] = - { - 0, 0, 18, 19, 20, 20, 21, 21, 22, 22, 22, 22, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29 - }; - -static const mz_uint8 s_tdefl_large_dist_extra[128] = - { - 0, 0, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 - }; - -/* Radix sorts tdefl_sym_freq[] array by 16-bit key m_key. Returns ptr to sorted values. */ -typedef struct -{ - mz_uint16 m_key, m_sym_index; -} tdefl_sym_freq; -static tdefl_sym_freq *tdefl_radix_sort_syms(mz_uint num_syms, tdefl_sym_freq *pSyms0, tdefl_sym_freq *pSyms1) -{ - mz_uint32 total_passes = 2, pass_shift, pass, i, hist[256 * 2]; - tdefl_sym_freq *pCur_syms = pSyms0, *pNew_syms = pSyms1; - MZ_CLEAR_OBJ(hist); - for (i = 0; i < num_syms; i++) - { - mz_uint freq = pSyms0[i].m_key; - hist[freq & 0xFF]++; - hist[256 + ((freq >> 8) & 0xFF)]++; - } - while ((total_passes > 1) && (num_syms == hist[(total_passes - 1) * 256])) - total_passes--; - for (pass_shift = 0, pass = 0; pass < total_passes; pass++, pass_shift += 8) - { - const mz_uint32 *pHist = &hist[pass << 8]; - mz_uint offsets[256], cur_ofs = 0; - for (i = 0; i < 256; i++) - { - offsets[i] = cur_ofs; - cur_ofs += pHist[i]; - } - for (i = 0; i < num_syms; i++) - pNew_syms[offsets[(pCur_syms[i].m_key >> pass_shift) & 0xFF]++] = pCur_syms[i]; - { - tdefl_sym_freq *t = pCur_syms; - pCur_syms = pNew_syms; - pNew_syms = t; - } - } - return pCur_syms; -} - -/* tdefl_calculate_minimum_redundancy() originally written by: Alistair Moffat, alistair@cs.mu.oz.au, Jyrki Katajainen, jyrki@diku.dk, November 1996. */ -static void tdefl_calculate_minimum_redundancy(tdefl_sym_freq *A, int n) -{ - int root, leaf, next, avbl, used, dpth; - if (n == 0) - return; - else if (n == 1) - { - A[0].m_key = 1; - return; - } - A[0].m_key += A[1].m_key; - root = 0; - leaf = 2; - for (next = 1; next < n - 1; next++) - { - if (leaf >= n || A[root].m_key < A[leaf].m_key) - { - A[next].m_key = A[root].m_key; - A[root++].m_key = (mz_uint16)next; - } - else - A[next].m_key = A[leaf++].m_key; - if (leaf >= n || (root < next && A[root].m_key < A[leaf].m_key)) - { - A[next].m_key = (mz_uint16)(A[next].m_key + A[root].m_key); - A[root++].m_key = (mz_uint16)next; - } - else - A[next].m_key = (mz_uint16)(A[next].m_key + A[leaf++].m_key); - } - A[n - 2].m_key = 0; - for (next = n - 3; next >= 0; next--) - A[next].m_key = A[A[next].m_key].m_key + 1; - avbl = 1; - used = dpth = 0; - root = n - 2; - next = n - 1; - while (avbl > 0) - { - while (root >= 0 && (int)A[root].m_key == dpth) - { - used++; - root--; - } - while (avbl > used) - { - A[next--].m_key = (mz_uint16)(dpth); - avbl--; - } - avbl = 2 * used; - dpth++; - used = 0; - } -} - -/* Limits canonical Huffman code table's max code size. */ -enum -{ - TDEFL_MAX_SUPPORTED_HUFF_CODESIZE = 32 -}; -static void tdefl_huffman_enforce_max_code_size(int *pNum_codes, int code_list_len, int max_code_size) -{ - int i; - mz_uint32 total = 0; - if (code_list_len <= 1) - return; - for (i = max_code_size + 1; i <= TDEFL_MAX_SUPPORTED_HUFF_CODESIZE; i++) - pNum_codes[max_code_size] += pNum_codes[i]; - for (i = max_code_size; i > 0; i--) - total += (((mz_uint32)pNum_codes[i]) << (max_code_size - i)); - while (total != (1UL << max_code_size)) - { - pNum_codes[max_code_size]--; - for (i = max_code_size - 1; i > 0; i--) - if (pNum_codes[i]) - { - pNum_codes[i]--; - pNum_codes[i + 1] += 2; - break; - } - total--; - } -} - -static void tdefl_optimize_huffman_table(tdefl_compressor *d, int table_num, int table_len, int code_size_limit, int static_table) -{ - int i, j, l, num_codes[1 + TDEFL_MAX_SUPPORTED_HUFF_CODESIZE]; - mz_uint next_code[TDEFL_MAX_SUPPORTED_HUFF_CODESIZE + 1]; - MZ_CLEAR_OBJ(num_codes); - if (static_table) - { - for (i = 0; i < table_len; i++) - num_codes[d->m_huff_code_sizes[table_num][i]]++; - } - else - { - tdefl_sym_freq syms0[TDEFL_MAX_HUFF_SYMBOLS], syms1[TDEFL_MAX_HUFF_SYMBOLS], *pSyms; - int num_used_syms = 0; - const mz_uint16 *pSym_count = &d->m_huff_count[table_num][0]; - for (i = 0; i < table_len; i++) - if (pSym_count[i]) - { - syms0[num_used_syms].m_key = (mz_uint16)pSym_count[i]; - syms0[num_used_syms++].m_sym_index = (mz_uint16)i; - } - - pSyms = tdefl_radix_sort_syms(num_used_syms, syms0, syms1); - tdefl_calculate_minimum_redundancy(pSyms, num_used_syms); - - for (i = 0; i < num_used_syms; i++) - num_codes[pSyms[i].m_key]++; - - tdefl_huffman_enforce_max_code_size(num_codes, num_used_syms, code_size_limit); - - MZ_CLEAR_OBJ(d->m_huff_code_sizes[table_num]); - MZ_CLEAR_OBJ(d->m_huff_codes[table_num]); - for (i = 1, j = num_used_syms; i <= code_size_limit; i++) - for (l = num_codes[i]; l > 0; l--) - d->m_huff_code_sizes[table_num][pSyms[--j].m_sym_index] = (mz_uint8)(i); - } - - next_code[1] = 0; - for (j = 0, i = 2; i <= code_size_limit; i++) - next_code[i] = j = ((j + num_codes[i - 1]) << 1); - - for (i = 0; i < table_len; i++) - { - mz_uint rev_code = 0, code, code_size; - if ((code_size = d->m_huff_code_sizes[table_num][i]) == 0) - continue; - code = next_code[code_size]++; - for (l = code_size; l > 0; l--, code >>= 1) - rev_code = (rev_code << 1) | (code & 1); - d->m_huff_codes[table_num][i] = (mz_uint16)rev_code; - } -} - -#define TDEFL_PUT_BITS(b, l) \ - do \ - { \ - mz_uint bits = b; \ - mz_uint len = l; \ - MZ_ASSERT(bits <= ((1U << len) - 1U)); \ - d->m_bit_buffer |= (bits << d->m_bits_in); \ - d->m_bits_in += len; \ - while (d->m_bits_in >= 8) \ - { \ - if (d->m_pOutput_buf < d->m_pOutput_buf_end) \ - *d->m_pOutput_buf++ = (mz_uint8)(d->m_bit_buffer); \ - d->m_bit_buffer >>= 8; \ - d->m_bits_in -= 8; \ - } \ - } \ - MZ_MACRO_END - -#define TDEFL_RLE_PREV_CODE_SIZE() \ - { \ - if (rle_repeat_count) \ - { \ - if (rle_repeat_count < 3) \ - { \ - d->m_huff_count[2][prev_code_size] = (mz_uint16)(d->m_huff_count[2][prev_code_size] + rle_repeat_count); \ - while (rle_repeat_count--) \ - packed_code_sizes[num_packed_code_sizes++] = prev_code_size; \ - } \ - else \ - { \ - d->m_huff_count[2][16] = (mz_uint16)(d->m_huff_count[2][16] + 1); \ - packed_code_sizes[num_packed_code_sizes++] = 16; \ - packed_code_sizes[num_packed_code_sizes++] = (mz_uint8)(rle_repeat_count - 3); \ - } \ - rle_repeat_count = 0; \ - } \ - } - -#define TDEFL_RLE_ZERO_CODE_SIZE() \ - { \ - if (rle_z_count) \ - { \ - if (rle_z_count < 3) \ - { \ - d->m_huff_count[2][0] = (mz_uint16)(d->m_huff_count[2][0] + rle_z_count); \ - while (rle_z_count--) \ - packed_code_sizes[num_packed_code_sizes++] = 0; \ - } \ - else if (rle_z_count <= 10) \ - { \ - d->m_huff_count[2][17] = (mz_uint16)(d->m_huff_count[2][17] + 1); \ - packed_code_sizes[num_packed_code_sizes++] = 17; \ - packed_code_sizes[num_packed_code_sizes++] = (mz_uint8)(rle_z_count - 3); \ - } \ - else \ - { \ - d->m_huff_count[2][18] = (mz_uint16)(d->m_huff_count[2][18] + 1); \ - packed_code_sizes[num_packed_code_sizes++] = 18; \ - packed_code_sizes[num_packed_code_sizes++] = (mz_uint8)(rle_z_count - 11); \ - } \ - rle_z_count = 0; \ - } \ - } - -static mz_uint8 s_tdefl_packed_code_size_syms_swizzle[] = { 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 }; - -static void tdefl_start_dynamic_block(tdefl_compressor *d) -{ - int num_lit_codes, num_dist_codes, num_bit_lengths; - mz_uint i, total_code_sizes_to_pack, num_packed_code_sizes, rle_z_count, rle_repeat_count, packed_code_sizes_index; - mz_uint8 code_sizes_to_pack[TDEFL_MAX_HUFF_SYMBOLS_0 + TDEFL_MAX_HUFF_SYMBOLS_1], packed_code_sizes[TDEFL_MAX_HUFF_SYMBOLS_0 + TDEFL_MAX_HUFF_SYMBOLS_1], prev_code_size = 0xFF; - - d->m_huff_count[0][256] = 1; - - tdefl_optimize_huffman_table(d, 0, TDEFL_MAX_HUFF_SYMBOLS_0, 15, MZ_FALSE); - tdefl_optimize_huffman_table(d, 1, TDEFL_MAX_HUFF_SYMBOLS_1, 15, MZ_FALSE); - - for (num_lit_codes = 286; num_lit_codes > 257; num_lit_codes--) - if (d->m_huff_code_sizes[0][num_lit_codes - 1]) - break; - for (num_dist_codes = 30; num_dist_codes > 1; num_dist_codes--) - if (d->m_huff_code_sizes[1][num_dist_codes - 1]) - break; - - memcpy(code_sizes_to_pack, &d->m_huff_code_sizes[0][0], num_lit_codes); - memcpy(code_sizes_to_pack + num_lit_codes, &d->m_huff_code_sizes[1][0], num_dist_codes); - total_code_sizes_to_pack = num_lit_codes + num_dist_codes; - num_packed_code_sizes = 0; - rle_z_count = 0; - rle_repeat_count = 0; - - memset(&d->m_huff_count[2][0], 0, sizeof(d->m_huff_count[2][0]) * TDEFL_MAX_HUFF_SYMBOLS_2); - for (i = 0; i < total_code_sizes_to_pack; i++) - { - mz_uint8 code_size = code_sizes_to_pack[i]; - if (!code_size) - { - TDEFL_RLE_PREV_CODE_SIZE(); - if (++rle_z_count == 138) - { - TDEFL_RLE_ZERO_CODE_SIZE(); - } - } - else - { - TDEFL_RLE_ZERO_CODE_SIZE(); - if (code_size != prev_code_size) - { - TDEFL_RLE_PREV_CODE_SIZE(); - d->m_huff_count[2][code_size] = (mz_uint16)(d->m_huff_count[2][code_size] + 1); - packed_code_sizes[num_packed_code_sizes++] = code_size; - } - else if (++rle_repeat_count == 6) - { - TDEFL_RLE_PREV_CODE_SIZE(); - } - } - prev_code_size = code_size; - } - if (rle_repeat_count) - { - TDEFL_RLE_PREV_CODE_SIZE(); - } - else - { - TDEFL_RLE_ZERO_CODE_SIZE(); - } - - tdefl_optimize_huffman_table(d, 2, TDEFL_MAX_HUFF_SYMBOLS_2, 7, MZ_FALSE); - - TDEFL_PUT_BITS(2, 2); - - TDEFL_PUT_BITS(num_lit_codes - 257, 5); - TDEFL_PUT_BITS(num_dist_codes - 1, 5); - - for (num_bit_lengths = 18; num_bit_lengths >= 0; num_bit_lengths--) - if (d->m_huff_code_sizes[2][s_tdefl_packed_code_size_syms_swizzle[num_bit_lengths]]) - break; - num_bit_lengths = MZ_MAX(4, (num_bit_lengths + 1)); - TDEFL_PUT_BITS(num_bit_lengths - 4, 4); - for (i = 0; (int)i < num_bit_lengths; i++) - TDEFL_PUT_BITS(d->m_huff_code_sizes[2][s_tdefl_packed_code_size_syms_swizzle[i]], 3); - - for (packed_code_sizes_index = 0; packed_code_sizes_index < num_packed_code_sizes;) - { - mz_uint code = packed_code_sizes[packed_code_sizes_index++]; - MZ_ASSERT(code < TDEFL_MAX_HUFF_SYMBOLS_2); - TDEFL_PUT_BITS(d->m_huff_codes[2][code], d->m_huff_code_sizes[2][code]); - if (code >= 16) - TDEFL_PUT_BITS(packed_code_sizes[packed_code_sizes_index++], "\02\03\07"[code - 16]); - } -} - -static void tdefl_start_static_block(tdefl_compressor *d) -{ - mz_uint i; - mz_uint8 *p = &d->m_huff_code_sizes[0][0]; - - for (i = 0; i <= 143; ++i) - *p++ = 8; - for (; i <= 255; ++i) - *p++ = 9; - for (; i <= 279; ++i) - *p++ = 7; - for (; i <= 287; ++i) - *p++ = 8; - - memset(d->m_huff_code_sizes[1], 5, 32); - - tdefl_optimize_huffman_table(d, 0, 288, 15, MZ_TRUE); - tdefl_optimize_huffman_table(d, 1, 32, 15, MZ_TRUE); - - TDEFL_PUT_BITS(1, 2); -} - -static const mz_uint mz_bitmasks[17] = { 0x0000, 0x0001, 0x0003, 0x0007, 0x000F, 0x001F, 0x003F, 0x007F, 0x00FF, 0x01FF, 0x03FF, 0x07FF, 0x0FFF, 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF }; - -#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN && MINIZ_HAS_64BIT_REGISTERS -static mz_bool tdefl_compress_lz_codes(tdefl_compressor *d) -{ - mz_uint flags; - mz_uint8 *pLZ_codes; - mz_uint8 *pOutput_buf = d->m_pOutput_buf; - mz_uint8 *pLZ_code_buf_end = d->m_pLZ_code_buf; - mz_uint64 bit_buffer = d->m_bit_buffer; - mz_uint bits_in = d->m_bits_in; - -#define TDEFL_PUT_BITS_FAST(b, l) \ - { \ - bit_buffer |= (((mz_uint64)(b)) << bits_in); \ - bits_in += (l); \ - } - - flags = 1; - for (pLZ_codes = d->m_lz_code_buf; pLZ_codes < pLZ_code_buf_end; flags >>= 1) - { - if (flags == 1) - flags = *pLZ_codes++ | 0x100; - - if (flags & 1) - { - mz_uint s0, s1, n0, n1, sym, num_extra_bits; - mz_uint match_len = pLZ_codes[0], match_dist = *(const mz_uint16 *)(pLZ_codes + 1); - pLZ_codes += 3; - - MZ_ASSERT(d->m_huff_code_sizes[0][s_tdefl_len_sym[match_len]]); - TDEFL_PUT_BITS_FAST(d->m_huff_codes[0][s_tdefl_len_sym[match_len]], d->m_huff_code_sizes[0][s_tdefl_len_sym[match_len]]); - TDEFL_PUT_BITS_FAST(match_len & mz_bitmasks[s_tdefl_len_extra[match_len]], s_tdefl_len_extra[match_len]); - - /* This sequence coaxes MSVC into using cmov's vs. jmp's. */ - s0 = s_tdefl_small_dist_sym[match_dist & 511]; - n0 = s_tdefl_small_dist_extra[match_dist & 511]; - s1 = s_tdefl_large_dist_sym[match_dist >> 8]; - n1 = s_tdefl_large_dist_extra[match_dist >> 8]; - sym = (match_dist < 512) ? s0 : s1; - num_extra_bits = (match_dist < 512) ? n0 : n1; - - MZ_ASSERT(d->m_huff_code_sizes[1][sym]); - TDEFL_PUT_BITS_FAST(d->m_huff_codes[1][sym], d->m_huff_code_sizes[1][sym]); - TDEFL_PUT_BITS_FAST(match_dist & mz_bitmasks[num_extra_bits], num_extra_bits); - } - else - { - mz_uint lit = *pLZ_codes++; - MZ_ASSERT(d->m_huff_code_sizes[0][lit]); - TDEFL_PUT_BITS_FAST(d->m_huff_codes[0][lit], d->m_huff_code_sizes[0][lit]); - - if (((flags & 2) == 0) && (pLZ_codes < pLZ_code_buf_end)) - { - flags >>= 1; - lit = *pLZ_codes++; - MZ_ASSERT(d->m_huff_code_sizes[0][lit]); - TDEFL_PUT_BITS_FAST(d->m_huff_codes[0][lit], d->m_huff_code_sizes[0][lit]); - - if (((flags & 2) == 0) && (pLZ_codes < pLZ_code_buf_end)) - { - flags >>= 1; - lit = *pLZ_codes++; - MZ_ASSERT(d->m_huff_code_sizes[0][lit]); - TDEFL_PUT_BITS_FAST(d->m_huff_codes[0][lit], d->m_huff_code_sizes[0][lit]); - } - } - } - - if (pOutput_buf >= d->m_pOutput_buf_end) - return MZ_FALSE; - - *(mz_uint64 *)pOutput_buf = bit_buffer; - pOutput_buf += (bits_in >> 3); - bit_buffer >>= (bits_in & ~7); - bits_in &= 7; - } - -#undef TDEFL_PUT_BITS_FAST - - d->m_pOutput_buf = pOutput_buf; - d->m_bits_in = 0; - d->m_bit_buffer = 0; - - while (bits_in) - { - mz_uint32 n = MZ_MIN(bits_in, 16); - TDEFL_PUT_BITS((mz_uint)bit_buffer & mz_bitmasks[n], n); - bit_buffer >>= n; - bits_in -= n; - } - - TDEFL_PUT_BITS(d->m_huff_codes[0][256], d->m_huff_code_sizes[0][256]); - - return (d->m_pOutput_buf < d->m_pOutput_buf_end); -} -#else -static mz_bool tdefl_compress_lz_codes(tdefl_compressor *d) -{ - mz_uint flags; - mz_uint8 *pLZ_codes; - - flags = 1; - for (pLZ_codes = d->m_lz_code_buf; pLZ_codes < d->m_pLZ_code_buf; flags >>= 1) - { - if (flags == 1) - flags = *pLZ_codes++ | 0x100; - if (flags & 1) - { - mz_uint sym, num_extra_bits; - mz_uint match_len = pLZ_codes[0], match_dist = (pLZ_codes[1] | (pLZ_codes[2] << 8)); - pLZ_codes += 3; - - MZ_ASSERT(d->m_huff_code_sizes[0][s_tdefl_len_sym[match_len]]); - TDEFL_PUT_BITS(d->m_huff_codes[0][s_tdefl_len_sym[match_len]], d->m_huff_code_sizes[0][s_tdefl_len_sym[match_len]]); - TDEFL_PUT_BITS(match_len & mz_bitmasks[s_tdefl_len_extra[match_len]], s_tdefl_len_extra[match_len]); - - if (match_dist < 512) - { - sym = s_tdefl_small_dist_sym[match_dist]; - num_extra_bits = s_tdefl_small_dist_extra[match_dist]; - } - else - { - sym = s_tdefl_large_dist_sym[match_dist >> 8]; - num_extra_bits = s_tdefl_large_dist_extra[match_dist >> 8]; - } - MZ_ASSERT(d->m_huff_code_sizes[1][sym]); - TDEFL_PUT_BITS(d->m_huff_codes[1][sym], d->m_huff_code_sizes[1][sym]); - TDEFL_PUT_BITS(match_dist & mz_bitmasks[num_extra_bits], num_extra_bits); - } - else - { - mz_uint lit = *pLZ_codes++; - MZ_ASSERT(d->m_huff_code_sizes[0][lit]); - TDEFL_PUT_BITS(d->m_huff_codes[0][lit], d->m_huff_code_sizes[0][lit]); - } - } - - TDEFL_PUT_BITS(d->m_huff_codes[0][256], d->m_huff_code_sizes[0][256]); - - return (d->m_pOutput_buf < d->m_pOutput_buf_end); -} -#endif /* MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN && MINIZ_HAS_64BIT_REGISTERS */ - -static mz_bool tdefl_compress_block(tdefl_compressor *d, mz_bool static_block) -{ - if (static_block) - tdefl_start_static_block(d); - else - tdefl_start_dynamic_block(d); - return tdefl_compress_lz_codes(d); -} - -static int tdefl_flush_block(tdefl_compressor *d, int flush) -{ - mz_uint saved_bit_buf, saved_bits_in; - mz_uint8 *pSaved_output_buf; - mz_bool comp_block_succeeded = MZ_FALSE; - int n, use_raw_block = ((d->m_flags & TDEFL_FORCE_ALL_RAW_BLOCKS) != 0) && (d->m_lookahead_pos - d->m_lz_code_buf_dict_pos) <= d->m_dict_size; - mz_uint8 *pOutput_buf_start = ((d->m_pPut_buf_func == NULL) && ((*d->m_pOut_buf_size - d->m_out_buf_ofs) >= TDEFL_OUT_BUF_SIZE)) ? ((mz_uint8 *)d->m_pOut_buf + d->m_out_buf_ofs) : d->m_output_buf; - - d->m_pOutput_buf = pOutput_buf_start; - d->m_pOutput_buf_end = d->m_pOutput_buf + TDEFL_OUT_BUF_SIZE - 16; - - MZ_ASSERT(!d->m_output_flush_remaining); - d->m_output_flush_ofs = 0; - d->m_output_flush_remaining = 0; - - *d->m_pLZ_flags = (mz_uint8)(*d->m_pLZ_flags >> d->m_num_flags_left); - d->m_pLZ_code_buf -= (d->m_num_flags_left == 8); - - if ((d->m_flags & TDEFL_WRITE_ZLIB_HEADER) && (!d->m_block_index)) - { - TDEFL_PUT_BITS(0x78, 8); - TDEFL_PUT_BITS(0x01, 8); - } - - TDEFL_PUT_BITS(flush == TDEFL_FINISH, 1); - - pSaved_output_buf = d->m_pOutput_buf; - saved_bit_buf = d->m_bit_buffer; - saved_bits_in = d->m_bits_in; - - if (!use_raw_block) - comp_block_succeeded = tdefl_compress_block(d, (d->m_flags & TDEFL_FORCE_ALL_STATIC_BLOCKS) || (d->m_total_lz_bytes < 48)); - - /* If the block gets expanded, forget the current contents of the output buffer and send a raw block instead. */ - if (((use_raw_block) || ((d->m_total_lz_bytes) && ((d->m_pOutput_buf - pSaved_output_buf + 1U) >= d->m_total_lz_bytes))) && - ((d->m_lookahead_pos - d->m_lz_code_buf_dict_pos) <= d->m_dict_size)) - { - mz_uint i; - d->m_pOutput_buf = pSaved_output_buf; - d->m_bit_buffer = saved_bit_buf, d->m_bits_in = saved_bits_in; - TDEFL_PUT_BITS(0, 2); - if (d->m_bits_in) - { - TDEFL_PUT_BITS(0, 8 - d->m_bits_in); - } - for (i = 2; i; --i, d->m_total_lz_bytes ^= 0xFFFF) - { - TDEFL_PUT_BITS(d->m_total_lz_bytes & 0xFFFF, 16); - } - for (i = 0; i < d->m_total_lz_bytes; ++i) - { - TDEFL_PUT_BITS(d->m_dict[(d->m_lz_code_buf_dict_pos + i) & TDEFL_LZ_DICT_SIZE_MASK], 8); - } - } - /* Check for the extremely unlikely (if not impossible) case of the compressed block not fitting into the output buffer when using dynamic codes. */ - else if (!comp_block_succeeded) - { - d->m_pOutput_buf = pSaved_output_buf; - d->m_bit_buffer = saved_bit_buf, d->m_bits_in = saved_bits_in; - tdefl_compress_block(d, MZ_TRUE); - } - - if (flush) - { - if (flush == TDEFL_FINISH) - { - if (d->m_bits_in) - { - TDEFL_PUT_BITS(0, 8 - d->m_bits_in); - } - if (d->m_flags & TDEFL_WRITE_ZLIB_HEADER) - { - mz_uint i, a = d->m_adler32; - for (i = 0; i < 4; i++) - { - TDEFL_PUT_BITS((a >> 24) & 0xFF, 8); - a <<= 8; - } - } - } - else - { - mz_uint i, z = 0; - TDEFL_PUT_BITS(0, 3); - if (d->m_bits_in) - { - TDEFL_PUT_BITS(0, 8 - d->m_bits_in); - } - for (i = 2; i; --i, z ^= 0xFFFF) - { - TDEFL_PUT_BITS(z & 0xFFFF, 16); - } - } - } - - MZ_ASSERT(d->m_pOutput_buf < d->m_pOutput_buf_end); - - memset(&d->m_huff_count[0][0], 0, sizeof(d->m_huff_count[0][0]) * TDEFL_MAX_HUFF_SYMBOLS_0); - memset(&d->m_huff_count[1][0], 0, sizeof(d->m_huff_count[1][0]) * TDEFL_MAX_HUFF_SYMBOLS_1); - - d->m_pLZ_code_buf = d->m_lz_code_buf + 1; - d->m_pLZ_flags = d->m_lz_code_buf; - d->m_num_flags_left = 8; - d->m_lz_code_buf_dict_pos += d->m_total_lz_bytes; - d->m_total_lz_bytes = 0; - d->m_block_index++; - - if ((n = (int)(d->m_pOutput_buf - pOutput_buf_start)) != 0) - { - if (d->m_pPut_buf_func) - { - *d->m_pIn_buf_size = d->m_pSrc - (const mz_uint8 *)d->m_pIn_buf; - if (!(*d->m_pPut_buf_func)(d->m_output_buf, n, d->m_pPut_buf_user)) - return (d->m_prev_return_status = TDEFL_STATUS_PUT_BUF_FAILED); - } - else if (pOutput_buf_start == d->m_output_buf) - { - int bytes_to_copy = (int)MZ_MIN((size_t)n, (size_t)(*d->m_pOut_buf_size - d->m_out_buf_ofs)); - memcpy((mz_uint8 *)d->m_pOut_buf + d->m_out_buf_ofs, d->m_output_buf, bytes_to_copy); - d->m_out_buf_ofs += bytes_to_copy; - if ((n -= bytes_to_copy) != 0) - { - d->m_output_flush_ofs = bytes_to_copy; - d->m_output_flush_remaining = n; - } - } - else - { - d->m_out_buf_ofs += n; - } - } - - return d->m_output_flush_remaining; -} - -#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES -#ifdef MINIZ_UNALIGNED_USE_MEMCPY -static mz_uint16 TDEFL_READ_UNALIGNED_WORD(const mz_uint8* p) -{ - mz_uint16 ret; - memcpy(&ret, p, sizeof(mz_uint16)); - return ret; -} -static mz_uint16 TDEFL_READ_UNALIGNED_WORD2(const mz_uint16* p) -{ - mz_uint16 ret; - memcpy(&ret, p, sizeof(mz_uint16)); - return ret; -} -#else -#define TDEFL_READ_UNALIGNED_WORD(p) *(const mz_uint16 *)(p) -#define TDEFL_READ_UNALIGNED_WORD2(p) *(const mz_uint16 *)(p) -#endif -static MZ_FORCEINLINE void tdefl_find_match(tdefl_compressor *d, mz_uint lookahead_pos, mz_uint max_dist, mz_uint max_match_len, mz_uint *pMatch_dist, mz_uint *pMatch_len) -{ - mz_uint dist, pos = lookahead_pos & TDEFL_LZ_DICT_SIZE_MASK, match_len = *pMatch_len, probe_pos = pos, next_probe_pos, probe_len; - mz_uint num_probes_left = d->m_max_probes[match_len >= 32]; - const mz_uint16 *s = (const mz_uint16 *)(d->m_dict + pos), *p, *q; - mz_uint16 c01 = TDEFL_READ_UNALIGNED_WORD(&d->m_dict[pos + match_len - 1]), s01 = TDEFL_READ_UNALIGNED_WORD2(s); - MZ_ASSERT(max_match_len <= TDEFL_MAX_MATCH_LEN); - if (max_match_len <= match_len) - return; - for (;;) - { - for (;;) - { - if (--num_probes_left == 0) - return; -#define TDEFL_PROBE \ - next_probe_pos = d->m_next[probe_pos]; \ - if ((!next_probe_pos) || ((dist = (mz_uint16)(lookahead_pos - next_probe_pos)) > max_dist)) \ - return; \ - probe_pos = next_probe_pos & TDEFL_LZ_DICT_SIZE_MASK; \ - if (TDEFL_READ_UNALIGNED_WORD(&d->m_dict[probe_pos + match_len - 1]) == c01) \ - break; - TDEFL_PROBE; - TDEFL_PROBE; - TDEFL_PROBE; - } - if (!dist) - break; - q = (const mz_uint16 *)(d->m_dict + probe_pos); - if (TDEFL_READ_UNALIGNED_WORD2(q) != s01) - continue; - p = s; - probe_len = 32; - do - { - } while ((TDEFL_READ_UNALIGNED_WORD2(++p) == TDEFL_READ_UNALIGNED_WORD2(++q)) && (TDEFL_READ_UNALIGNED_WORD2(++p) == TDEFL_READ_UNALIGNED_WORD2(++q)) && - (TDEFL_READ_UNALIGNED_WORD2(++p) == TDEFL_READ_UNALIGNED_WORD2(++q)) && (TDEFL_READ_UNALIGNED_WORD2(++p) == TDEFL_READ_UNALIGNED_WORD2(++q)) && (--probe_len > 0)); - if (!probe_len) - { - *pMatch_dist = dist; - *pMatch_len = MZ_MIN(max_match_len, (mz_uint)TDEFL_MAX_MATCH_LEN); - break; - } - else if ((probe_len = ((mz_uint)(p - s) * 2) + (mz_uint)(*(const mz_uint8 *)p == *(const mz_uint8 *)q)) > match_len) - { - *pMatch_dist = dist; - if ((*pMatch_len = match_len = MZ_MIN(max_match_len, probe_len)) == max_match_len) - break; - c01 = TDEFL_READ_UNALIGNED_WORD(&d->m_dict[pos + match_len - 1]); - } - } -} -#else -static MZ_FORCEINLINE void tdefl_find_match(tdefl_compressor *d, mz_uint lookahead_pos, mz_uint max_dist, mz_uint max_match_len, mz_uint *pMatch_dist, mz_uint *pMatch_len) -{ - mz_uint dist, pos = lookahead_pos & TDEFL_LZ_DICT_SIZE_MASK, match_len = *pMatch_len, probe_pos = pos, next_probe_pos, probe_len; - mz_uint num_probes_left = d->m_max_probes[match_len >= 32]; - const mz_uint8 *s = d->m_dict + pos, *p, *q; - mz_uint8 c0 = d->m_dict[pos + match_len], c1 = d->m_dict[pos + match_len - 1]; - MZ_ASSERT(max_match_len <= TDEFL_MAX_MATCH_LEN); - if (max_match_len <= match_len) - return; - for (;;) - { - for (;;) - { - if (--num_probes_left == 0) - return; -#define TDEFL_PROBE \ - next_probe_pos = d->m_next[probe_pos]; \ - if ((!next_probe_pos) || ((dist = (mz_uint16)(lookahead_pos - next_probe_pos)) > max_dist)) \ - return; \ - probe_pos = next_probe_pos & TDEFL_LZ_DICT_SIZE_MASK; \ - if ((d->m_dict[probe_pos + match_len] == c0) && (d->m_dict[probe_pos + match_len - 1] == c1)) \ - break; - TDEFL_PROBE; - TDEFL_PROBE; - TDEFL_PROBE; - } - if (!dist) - break; - p = s; - q = d->m_dict + probe_pos; - for (probe_len = 0; probe_len < max_match_len; probe_len++) - if (*p++ != *q++) - break; - if (probe_len > match_len) - { - *pMatch_dist = dist; - if ((*pMatch_len = match_len = probe_len) == max_match_len) - return; - c0 = d->m_dict[pos + match_len]; - c1 = d->m_dict[pos + match_len - 1]; - } - } -} -#endif /* #if MINIZ_USE_UNALIGNED_LOADS_AND_STORES */ - -#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN -#ifdef MINIZ_UNALIGNED_USE_MEMCPY -static mz_uint32 TDEFL_READ_UNALIGNED_WORD32(const mz_uint8* p) -{ - mz_uint32 ret; - memcpy(&ret, p, sizeof(mz_uint32)); - return ret; -} -#else -#define TDEFL_READ_UNALIGNED_WORD32(p) *(const mz_uint32 *)(p) -#endif -static mz_bool tdefl_compress_fast(tdefl_compressor *d) -{ - /* Faster, minimally featured LZRW1-style match+parse loop with better register utilization. Intended for applications where raw throughput is valued more highly than ratio. */ - mz_uint lookahead_pos = d->m_lookahead_pos, lookahead_size = d->m_lookahead_size, dict_size = d->m_dict_size, total_lz_bytes = d->m_total_lz_bytes, num_flags_left = d->m_num_flags_left; - mz_uint8 *pLZ_code_buf = d->m_pLZ_code_buf, *pLZ_flags = d->m_pLZ_flags; - mz_uint cur_pos = lookahead_pos & TDEFL_LZ_DICT_SIZE_MASK; - - while ((d->m_src_buf_left) || ((d->m_flush) && (lookahead_size))) - { - const mz_uint TDEFL_COMP_FAST_LOOKAHEAD_SIZE = 4096; - mz_uint dst_pos = (lookahead_pos + lookahead_size) & TDEFL_LZ_DICT_SIZE_MASK; - mz_uint num_bytes_to_process = (mz_uint)MZ_MIN(d->m_src_buf_left, TDEFL_COMP_FAST_LOOKAHEAD_SIZE - lookahead_size); - d->m_src_buf_left -= num_bytes_to_process; - lookahead_size += num_bytes_to_process; - - while (num_bytes_to_process) - { - mz_uint32 n = MZ_MIN(TDEFL_LZ_DICT_SIZE - dst_pos, num_bytes_to_process); - memcpy(d->m_dict + dst_pos, d->m_pSrc, n); - if (dst_pos < (TDEFL_MAX_MATCH_LEN - 1)) - memcpy(d->m_dict + TDEFL_LZ_DICT_SIZE + dst_pos, d->m_pSrc, MZ_MIN(n, (TDEFL_MAX_MATCH_LEN - 1) - dst_pos)); - d->m_pSrc += n; - dst_pos = (dst_pos + n) & TDEFL_LZ_DICT_SIZE_MASK; - num_bytes_to_process -= n; - } - - dict_size = MZ_MIN(TDEFL_LZ_DICT_SIZE - lookahead_size, dict_size); - if ((!d->m_flush) && (lookahead_size < TDEFL_COMP_FAST_LOOKAHEAD_SIZE)) - break; - - while (lookahead_size >= 4) - { - mz_uint cur_match_dist, cur_match_len = 1; - mz_uint8 *pCur_dict = d->m_dict + cur_pos; - mz_uint first_trigram = TDEFL_READ_UNALIGNED_WORD32(pCur_dict) & 0xFFFFFF; - mz_uint hash = (first_trigram ^ (first_trigram >> (24 - (TDEFL_LZ_HASH_BITS - 8)))) & TDEFL_LEVEL1_HASH_SIZE_MASK; - mz_uint probe_pos = d->m_hash[hash]; - d->m_hash[hash] = (mz_uint16)lookahead_pos; - - if (((cur_match_dist = (mz_uint16)(lookahead_pos - probe_pos)) <= dict_size) && ((TDEFL_READ_UNALIGNED_WORD32(d->m_dict + (probe_pos &= TDEFL_LZ_DICT_SIZE_MASK)) & 0xFFFFFF) == first_trigram)) - { - const mz_uint16 *p = (const mz_uint16 *)pCur_dict; - const mz_uint16 *q = (const mz_uint16 *)(d->m_dict + probe_pos); - mz_uint32 probe_len = 32; - do - { - } while ((TDEFL_READ_UNALIGNED_WORD2(++p) == TDEFL_READ_UNALIGNED_WORD2(++q)) && (TDEFL_READ_UNALIGNED_WORD2(++p) == TDEFL_READ_UNALIGNED_WORD2(++q)) && - (TDEFL_READ_UNALIGNED_WORD2(++p) == TDEFL_READ_UNALIGNED_WORD2(++q)) && (TDEFL_READ_UNALIGNED_WORD2(++p) == TDEFL_READ_UNALIGNED_WORD2(++q)) && (--probe_len > 0)); - cur_match_len = ((mz_uint)(p - (const mz_uint16 *)pCur_dict) * 2) + (mz_uint)(*(const mz_uint8 *)p == *(const mz_uint8 *)q); - if (!probe_len) - cur_match_len = cur_match_dist ? TDEFL_MAX_MATCH_LEN : 0; - - if ((cur_match_len < TDEFL_MIN_MATCH_LEN) || ((cur_match_len == TDEFL_MIN_MATCH_LEN) && (cur_match_dist >= 8U * 1024U))) - { - cur_match_len = 1; - *pLZ_code_buf++ = (mz_uint8)first_trigram; - *pLZ_flags = (mz_uint8)(*pLZ_flags >> 1); - d->m_huff_count[0][(mz_uint8)first_trigram]++; - } - else - { - mz_uint32 s0, s1; - cur_match_len = MZ_MIN(cur_match_len, lookahead_size); - - MZ_ASSERT((cur_match_len >= TDEFL_MIN_MATCH_LEN) && (cur_match_dist >= 1) && (cur_match_dist <= TDEFL_LZ_DICT_SIZE)); - - cur_match_dist--; - - pLZ_code_buf[0] = (mz_uint8)(cur_match_len - TDEFL_MIN_MATCH_LEN); -#ifdef MINIZ_UNALIGNED_USE_MEMCPY - memcpy(&pLZ_code_buf[1], &cur_match_dist, sizeof(cur_match_dist)); -#else - *(mz_uint16 *)(&pLZ_code_buf[1]) = (mz_uint16)cur_match_dist; -#endif - pLZ_code_buf += 3; - *pLZ_flags = (mz_uint8)((*pLZ_flags >> 1) | 0x80); - - s0 = s_tdefl_small_dist_sym[cur_match_dist & 511]; - s1 = s_tdefl_large_dist_sym[cur_match_dist >> 8]; - d->m_huff_count[1][(cur_match_dist < 512) ? s0 : s1]++; - - d->m_huff_count[0][s_tdefl_len_sym[cur_match_len - TDEFL_MIN_MATCH_LEN]]++; - } - } - else - { - *pLZ_code_buf++ = (mz_uint8)first_trigram; - *pLZ_flags = (mz_uint8)(*pLZ_flags >> 1); - d->m_huff_count[0][(mz_uint8)first_trigram]++; - } - - if (--num_flags_left == 0) - { - num_flags_left = 8; - pLZ_flags = pLZ_code_buf++; - } - - total_lz_bytes += cur_match_len; - lookahead_pos += cur_match_len; - dict_size = MZ_MIN(dict_size + cur_match_len, (mz_uint)TDEFL_LZ_DICT_SIZE); - cur_pos = (cur_pos + cur_match_len) & TDEFL_LZ_DICT_SIZE_MASK; - MZ_ASSERT(lookahead_size >= cur_match_len); - lookahead_size -= cur_match_len; - - if (pLZ_code_buf > &d->m_lz_code_buf[TDEFL_LZ_CODE_BUF_SIZE - 8]) - { - int n; - d->m_lookahead_pos = lookahead_pos; - d->m_lookahead_size = lookahead_size; - d->m_dict_size = dict_size; - d->m_total_lz_bytes = total_lz_bytes; - d->m_pLZ_code_buf = pLZ_code_buf; - d->m_pLZ_flags = pLZ_flags; - d->m_num_flags_left = num_flags_left; - if ((n = tdefl_flush_block(d, 0)) != 0) - return (n < 0) ? MZ_FALSE : MZ_TRUE; - total_lz_bytes = d->m_total_lz_bytes; - pLZ_code_buf = d->m_pLZ_code_buf; - pLZ_flags = d->m_pLZ_flags; - num_flags_left = d->m_num_flags_left; - } - } - - while (lookahead_size) - { - mz_uint8 lit = d->m_dict[cur_pos]; - - total_lz_bytes++; - *pLZ_code_buf++ = lit; - *pLZ_flags = (mz_uint8)(*pLZ_flags >> 1); - if (--num_flags_left == 0) - { - num_flags_left = 8; - pLZ_flags = pLZ_code_buf++; - } - - d->m_huff_count[0][lit]++; - - lookahead_pos++; - dict_size = MZ_MIN(dict_size + 1, (mz_uint)TDEFL_LZ_DICT_SIZE); - cur_pos = (cur_pos + 1) & TDEFL_LZ_DICT_SIZE_MASK; - lookahead_size--; - - if (pLZ_code_buf > &d->m_lz_code_buf[TDEFL_LZ_CODE_BUF_SIZE - 8]) - { - int n; - d->m_lookahead_pos = lookahead_pos; - d->m_lookahead_size = lookahead_size; - d->m_dict_size = dict_size; - d->m_total_lz_bytes = total_lz_bytes; - d->m_pLZ_code_buf = pLZ_code_buf; - d->m_pLZ_flags = pLZ_flags; - d->m_num_flags_left = num_flags_left; - if ((n = tdefl_flush_block(d, 0)) != 0) - return (n < 0) ? MZ_FALSE : MZ_TRUE; - total_lz_bytes = d->m_total_lz_bytes; - pLZ_code_buf = d->m_pLZ_code_buf; - pLZ_flags = d->m_pLZ_flags; - num_flags_left = d->m_num_flags_left; - } - } - } - - d->m_lookahead_pos = lookahead_pos; - d->m_lookahead_size = lookahead_size; - d->m_dict_size = dict_size; - d->m_total_lz_bytes = total_lz_bytes; - d->m_pLZ_code_buf = pLZ_code_buf; - d->m_pLZ_flags = pLZ_flags; - d->m_num_flags_left = num_flags_left; - return MZ_TRUE; -} -#endif /* MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN */ - -static MZ_FORCEINLINE void tdefl_record_literal(tdefl_compressor *d, mz_uint8 lit) -{ - d->m_total_lz_bytes++; - *d->m_pLZ_code_buf++ = lit; - *d->m_pLZ_flags = (mz_uint8)(*d->m_pLZ_flags >> 1); - if (--d->m_num_flags_left == 0) - { - d->m_num_flags_left = 8; - d->m_pLZ_flags = d->m_pLZ_code_buf++; - } - d->m_huff_count[0][lit]++; -} - -static MZ_FORCEINLINE void tdefl_record_match(tdefl_compressor *d, mz_uint match_len, mz_uint match_dist) -{ - mz_uint32 s0, s1; - - MZ_ASSERT((match_len >= TDEFL_MIN_MATCH_LEN) && (match_dist >= 1) && (match_dist <= TDEFL_LZ_DICT_SIZE)); - - d->m_total_lz_bytes += match_len; - - d->m_pLZ_code_buf[0] = (mz_uint8)(match_len - TDEFL_MIN_MATCH_LEN); - - match_dist -= 1; - d->m_pLZ_code_buf[1] = (mz_uint8)(match_dist & 0xFF); - d->m_pLZ_code_buf[2] = (mz_uint8)(match_dist >> 8); - d->m_pLZ_code_buf += 3; - - *d->m_pLZ_flags = (mz_uint8)((*d->m_pLZ_flags >> 1) | 0x80); - if (--d->m_num_flags_left == 0) - { - d->m_num_flags_left = 8; - d->m_pLZ_flags = d->m_pLZ_code_buf++; - } - - s0 = s_tdefl_small_dist_sym[match_dist & 511]; - s1 = s_tdefl_large_dist_sym[(match_dist >> 8) & 127]; - d->m_huff_count[1][(match_dist < 512) ? s0 : s1]++; - - if (match_len >= TDEFL_MIN_MATCH_LEN) - d->m_huff_count[0][s_tdefl_len_sym[match_len - TDEFL_MIN_MATCH_LEN]]++; -} - -static mz_bool tdefl_compress_normal(tdefl_compressor *d) -{ - const mz_uint8 *pSrc = d->m_pSrc; - size_t src_buf_left = d->m_src_buf_left; - tdefl_flush flush = d->m_flush; - - while ((src_buf_left) || ((flush) && (d->m_lookahead_size))) - { - mz_uint len_to_move, cur_match_dist, cur_match_len, cur_pos; - /* Update dictionary and hash chains. Keeps the lookahead size equal to TDEFL_MAX_MATCH_LEN. */ - if ((d->m_lookahead_size + d->m_dict_size) >= (TDEFL_MIN_MATCH_LEN - 1)) - { - mz_uint dst_pos = (d->m_lookahead_pos + d->m_lookahead_size) & TDEFL_LZ_DICT_SIZE_MASK, ins_pos = d->m_lookahead_pos + d->m_lookahead_size - 2; - mz_uint hash = (d->m_dict[ins_pos & TDEFL_LZ_DICT_SIZE_MASK] << TDEFL_LZ_HASH_SHIFT) ^ d->m_dict[(ins_pos + 1) & TDEFL_LZ_DICT_SIZE_MASK]; - mz_uint num_bytes_to_process = (mz_uint)MZ_MIN(src_buf_left, TDEFL_MAX_MATCH_LEN - d->m_lookahead_size); - const mz_uint8 *pSrc_end = pSrc + num_bytes_to_process; - src_buf_left -= num_bytes_to_process; - d->m_lookahead_size += num_bytes_to_process; - while (pSrc != pSrc_end) - { - mz_uint8 c = *pSrc++; - d->m_dict[dst_pos] = c; - if (dst_pos < (TDEFL_MAX_MATCH_LEN - 1)) - d->m_dict[TDEFL_LZ_DICT_SIZE + dst_pos] = c; - hash = ((hash << TDEFL_LZ_HASH_SHIFT) ^ c) & (TDEFL_LZ_HASH_SIZE - 1); - d->m_next[ins_pos & TDEFL_LZ_DICT_SIZE_MASK] = d->m_hash[hash]; - d->m_hash[hash] = (mz_uint16)(ins_pos); - dst_pos = (dst_pos + 1) & TDEFL_LZ_DICT_SIZE_MASK; - ins_pos++; - } - } - else - { - while ((src_buf_left) && (d->m_lookahead_size < TDEFL_MAX_MATCH_LEN)) - { - mz_uint8 c = *pSrc++; - mz_uint dst_pos = (d->m_lookahead_pos + d->m_lookahead_size) & TDEFL_LZ_DICT_SIZE_MASK; - src_buf_left--; - d->m_dict[dst_pos] = c; - if (dst_pos < (TDEFL_MAX_MATCH_LEN - 1)) - d->m_dict[TDEFL_LZ_DICT_SIZE + dst_pos] = c; - if ((++d->m_lookahead_size + d->m_dict_size) >= TDEFL_MIN_MATCH_LEN) - { - mz_uint ins_pos = d->m_lookahead_pos + (d->m_lookahead_size - 1) - 2; - mz_uint hash = ((d->m_dict[ins_pos & TDEFL_LZ_DICT_SIZE_MASK] << (TDEFL_LZ_HASH_SHIFT * 2)) ^ (d->m_dict[(ins_pos + 1) & TDEFL_LZ_DICT_SIZE_MASK] << TDEFL_LZ_HASH_SHIFT) ^ c) & (TDEFL_LZ_HASH_SIZE - 1); - d->m_next[ins_pos & TDEFL_LZ_DICT_SIZE_MASK] = d->m_hash[hash]; - d->m_hash[hash] = (mz_uint16)(ins_pos); - } - } - } - d->m_dict_size = MZ_MIN(TDEFL_LZ_DICT_SIZE - d->m_lookahead_size, d->m_dict_size); - if ((!flush) && (d->m_lookahead_size < TDEFL_MAX_MATCH_LEN)) - break; - - /* Simple lazy/greedy parsing state machine. */ - len_to_move = 1; - cur_match_dist = 0; - cur_match_len = d->m_saved_match_len ? d->m_saved_match_len : (TDEFL_MIN_MATCH_LEN - 1); - cur_pos = d->m_lookahead_pos & TDEFL_LZ_DICT_SIZE_MASK; - if (d->m_flags & (TDEFL_RLE_MATCHES | TDEFL_FORCE_ALL_RAW_BLOCKS)) - { - if ((d->m_dict_size) && (!(d->m_flags & TDEFL_FORCE_ALL_RAW_BLOCKS))) - { - mz_uint8 c = d->m_dict[(cur_pos - 1) & TDEFL_LZ_DICT_SIZE_MASK]; - cur_match_len = 0; - while (cur_match_len < d->m_lookahead_size) - { - if (d->m_dict[cur_pos + cur_match_len] != c) - break; - cur_match_len++; - } - if (cur_match_len < TDEFL_MIN_MATCH_LEN) - cur_match_len = 0; - else - cur_match_dist = 1; - } - } - else - { - tdefl_find_match(d, d->m_lookahead_pos, d->m_dict_size, d->m_lookahead_size, &cur_match_dist, &cur_match_len); - } - if (((cur_match_len == TDEFL_MIN_MATCH_LEN) && (cur_match_dist >= 8U * 1024U)) || (cur_pos == cur_match_dist) || ((d->m_flags & TDEFL_FILTER_MATCHES) && (cur_match_len <= 5))) - { - cur_match_dist = cur_match_len = 0; - } - if (d->m_saved_match_len) - { - if (cur_match_len > d->m_saved_match_len) - { - tdefl_record_literal(d, (mz_uint8)d->m_saved_lit); - if (cur_match_len >= 128) - { - tdefl_record_match(d, cur_match_len, cur_match_dist); - d->m_saved_match_len = 0; - len_to_move = cur_match_len; - } - else - { - d->m_saved_lit = d->m_dict[cur_pos]; - d->m_saved_match_dist = cur_match_dist; - d->m_saved_match_len = cur_match_len; - } - } - else - { - tdefl_record_match(d, d->m_saved_match_len, d->m_saved_match_dist); - len_to_move = d->m_saved_match_len - 1; - d->m_saved_match_len = 0; - } - } - else if (!cur_match_dist) - tdefl_record_literal(d, d->m_dict[MZ_MIN(cur_pos, sizeof(d->m_dict) - 1)]); - else if ((d->m_greedy_parsing) || (d->m_flags & TDEFL_RLE_MATCHES) || (cur_match_len >= 128)) - { - tdefl_record_match(d, cur_match_len, cur_match_dist); - len_to_move = cur_match_len; - } - else - { - d->m_saved_lit = d->m_dict[MZ_MIN(cur_pos, sizeof(d->m_dict) - 1)]; - d->m_saved_match_dist = cur_match_dist; - d->m_saved_match_len = cur_match_len; - } - /* Move the lookahead forward by len_to_move bytes. */ - d->m_lookahead_pos += len_to_move; - MZ_ASSERT(d->m_lookahead_size >= len_to_move); - d->m_lookahead_size -= len_to_move; - d->m_dict_size = MZ_MIN(d->m_dict_size + len_to_move, (mz_uint)TDEFL_LZ_DICT_SIZE); - /* Check if it's time to flush the current LZ codes to the internal output buffer. */ - if ((d->m_pLZ_code_buf > &d->m_lz_code_buf[TDEFL_LZ_CODE_BUF_SIZE - 8]) || - ((d->m_total_lz_bytes > 31 * 1024) && (((((mz_uint)(d->m_pLZ_code_buf - d->m_lz_code_buf) * 115) >> 7) >= d->m_total_lz_bytes) || (d->m_flags & TDEFL_FORCE_ALL_RAW_BLOCKS)))) - { - int n; - d->m_pSrc = pSrc; - d->m_src_buf_left = src_buf_left; - if ((n = tdefl_flush_block(d, 0)) != 0) - return (n < 0) ? MZ_FALSE : MZ_TRUE; - } - } - - d->m_pSrc = pSrc; - d->m_src_buf_left = src_buf_left; - return MZ_TRUE; -} - -static tdefl_status tdefl_flush_output_buffer(tdefl_compressor *d) -{ - if (d->m_pIn_buf_size) - { - *d->m_pIn_buf_size = d->m_pSrc - (const mz_uint8 *)d->m_pIn_buf; - } - - if (d->m_pOut_buf_size) - { - size_t n = MZ_MIN(*d->m_pOut_buf_size - d->m_out_buf_ofs, d->m_output_flush_remaining); - memcpy((mz_uint8 *)d->m_pOut_buf + d->m_out_buf_ofs, d->m_output_buf + d->m_output_flush_ofs, n); - d->m_output_flush_ofs += (mz_uint)n; - d->m_output_flush_remaining -= (mz_uint)n; - d->m_out_buf_ofs += n; - - *d->m_pOut_buf_size = d->m_out_buf_ofs; - } - - return (d->m_finished && !d->m_output_flush_remaining) ? TDEFL_STATUS_DONE : TDEFL_STATUS_OKAY; -} - -tdefl_status tdefl_compress(tdefl_compressor *d, const void *pIn_buf, size_t *pIn_buf_size, void *pOut_buf, size_t *pOut_buf_size, tdefl_flush flush) -{ - if (!d) - { - if (pIn_buf_size) - *pIn_buf_size = 0; - if (pOut_buf_size) - *pOut_buf_size = 0; - return TDEFL_STATUS_BAD_PARAM; - } - - d->m_pIn_buf = pIn_buf; - d->m_pIn_buf_size = pIn_buf_size; - d->m_pOut_buf = pOut_buf; - d->m_pOut_buf_size = pOut_buf_size; - d->m_pSrc = (const mz_uint8 *)(pIn_buf); - d->m_src_buf_left = pIn_buf_size ? *pIn_buf_size : 0; - d->m_out_buf_ofs = 0; - d->m_flush = flush; - - if (((d->m_pPut_buf_func != NULL) == ((pOut_buf != NULL) || (pOut_buf_size != NULL))) || (d->m_prev_return_status != TDEFL_STATUS_OKAY) || - (d->m_wants_to_finish && (flush != TDEFL_FINISH)) || (pIn_buf_size && *pIn_buf_size && !pIn_buf) || (pOut_buf_size && *pOut_buf_size && !pOut_buf)) - { - if (pIn_buf_size) - *pIn_buf_size = 0; - if (pOut_buf_size) - *pOut_buf_size = 0; - return (d->m_prev_return_status = TDEFL_STATUS_BAD_PARAM); - } - d->m_wants_to_finish |= (flush == TDEFL_FINISH); - - if ((d->m_output_flush_remaining) || (d->m_finished)) - return (d->m_prev_return_status = tdefl_flush_output_buffer(d)); - -#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN - if (((d->m_flags & TDEFL_MAX_PROBES_MASK) == 1) && - ((d->m_flags & TDEFL_GREEDY_PARSING_FLAG) != 0) && - ((d->m_flags & (TDEFL_FILTER_MATCHES | TDEFL_FORCE_ALL_RAW_BLOCKS | TDEFL_RLE_MATCHES)) == 0)) - { - if (!tdefl_compress_fast(d)) - return d->m_prev_return_status; - } - else -#endif /* #if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN */ - { - if (!tdefl_compress_normal(d)) - return d->m_prev_return_status; - } - - if ((d->m_flags & (TDEFL_WRITE_ZLIB_HEADER | TDEFL_COMPUTE_ADLER32)) && (pIn_buf)) - d->m_adler32 = (mz_uint32)mz_adler32(d->m_adler32, (const mz_uint8 *)pIn_buf, d->m_pSrc - (const mz_uint8 *)pIn_buf); - - if ((flush) && (!d->m_lookahead_size) && (!d->m_src_buf_left) && (!d->m_output_flush_remaining)) - { - if (tdefl_flush_block(d, flush) < 0) - return d->m_prev_return_status; - d->m_finished = (flush == TDEFL_FINISH); - if (flush == TDEFL_FULL_FLUSH) - { - MZ_CLEAR_OBJ(d->m_hash); - MZ_CLEAR_OBJ(d->m_next); - d->m_dict_size = 0; - } - } - - return (d->m_prev_return_status = tdefl_flush_output_buffer(d)); -} - -tdefl_status tdefl_compress_buffer(tdefl_compressor *d, const void *pIn_buf, size_t in_buf_size, tdefl_flush flush) -{ - MZ_ASSERT(d->m_pPut_buf_func); - return tdefl_compress(d, pIn_buf, &in_buf_size, NULL, NULL, flush); -} - -tdefl_status tdefl_init(tdefl_compressor *d, tdefl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags) -{ - d->m_pPut_buf_func = pPut_buf_func; - d->m_pPut_buf_user = pPut_buf_user; - d->m_flags = (mz_uint)(flags); - d->m_max_probes[0] = 1 + ((flags & 0xFFF) + 2) / 3; - d->m_greedy_parsing = (flags & TDEFL_GREEDY_PARSING_FLAG) != 0; - d->m_max_probes[1] = 1 + (((flags & 0xFFF) >> 2) + 2) / 3; - if (!(flags & TDEFL_NONDETERMINISTIC_PARSING_FLAG)) - MZ_CLEAR_OBJ(d->m_hash); - d->m_lookahead_pos = d->m_lookahead_size = d->m_dict_size = d->m_total_lz_bytes = d->m_lz_code_buf_dict_pos = d->m_bits_in = 0; - d->m_output_flush_ofs = d->m_output_flush_remaining = d->m_finished = d->m_block_index = d->m_bit_buffer = d->m_wants_to_finish = 0; - d->m_pLZ_code_buf = d->m_lz_code_buf + 1; - d->m_pLZ_flags = d->m_lz_code_buf; - d->m_num_flags_left = 8; - d->m_pOutput_buf = d->m_output_buf; - d->m_pOutput_buf_end = d->m_output_buf; - d->m_prev_return_status = TDEFL_STATUS_OKAY; - d->m_saved_match_dist = d->m_saved_match_len = d->m_saved_lit = 0; - d->m_adler32 = 1; - d->m_pIn_buf = NULL; - d->m_pOut_buf = NULL; - d->m_pIn_buf_size = NULL; - d->m_pOut_buf_size = NULL; - d->m_flush = TDEFL_NO_FLUSH; - d->m_pSrc = NULL; - d->m_src_buf_left = 0; - d->m_out_buf_ofs = 0; - if (!(flags & TDEFL_NONDETERMINISTIC_PARSING_FLAG)) - MZ_CLEAR_OBJ(d->m_dict); - memset(&d->m_huff_count[0][0], 0, sizeof(d->m_huff_count[0][0]) * TDEFL_MAX_HUFF_SYMBOLS_0); - memset(&d->m_huff_count[1][0], 0, sizeof(d->m_huff_count[1][0]) * TDEFL_MAX_HUFF_SYMBOLS_1); - return TDEFL_STATUS_OKAY; -} - -tdefl_status tdefl_get_prev_return_status(tdefl_compressor *d) -{ - return d->m_prev_return_status; -} - -mz_uint32 tdefl_get_adler32(tdefl_compressor *d) -{ - return d->m_adler32; -} - -mz_bool tdefl_compress_mem_to_output(const void *pBuf, size_t buf_len, tdefl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags) -{ - tdefl_compressor *pComp; - mz_bool succeeded; - if (((buf_len) && (!pBuf)) || (!pPut_buf_func)) - return MZ_FALSE; - pComp = (tdefl_compressor *)MZ_MALLOC(sizeof(tdefl_compressor)); - if (!pComp) - return MZ_FALSE; - succeeded = (tdefl_init(pComp, pPut_buf_func, pPut_buf_user, flags) == TDEFL_STATUS_OKAY); - succeeded = succeeded && (tdefl_compress_buffer(pComp, pBuf, buf_len, TDEFL_FINISH) == TDEFL_STATUS_DONE); - MZ_FREE(pComp); - return succeeded; -} - -typedef struct -{ - size_t m_size, m_capacity; - mz_uint8 *m_pBuf; - mz_bool m_expandable; -} tdefl_output_buffer; - -static mz_bool tdefl_output_buffer_putter(const void *pBuf, int len, void *pUser) -{ - tdefl_output_buffer *p = (tdefl_output_buffer *)pUser; - size_t new_size = p->m_size + len; - if (new_size > p->m_capacity) - { - size_t new_capacity = p->m_capacity; - mz_uint8 *pNew_buf; - if (!p->m_expandable) - return MZ_FALSE; - do - { - new_capacity = MZ_MAX(128U, new_capacity << 1U); - } while (new_size > new_capacity); - pNew_buf = (mz_uint8 *)MZ_REALLOC(p->m_pBuf, new_capacity); - if (!pNew_buf) - return MZ_FALSE; - p->m_pBuf = pNew_buf; - p->m_capacity = new_capacity; - } - memcpy((mz_uint8 *)p->m_pBuf + p->m_size, pBuf, len); - p->m_size = new_size; - return MZ_TRUE; -} - -void *tdefl_compress_mem_to_heap(const void *pSrc_buf, size_t src_buf_len, size_t *pOut_len, int flags) -{ - tdefl_output_buffer out_buf; - MZ_CLEAR_OBJ(out_buf); - if (!pOut_len) - return MZ_FALSE; - else - *pOut_len = 0; - out_buf.m_expandable = MZ_TRUE; - if (!tdefl_compress_mem_to_output(pSrc_buf, src_buf_len, tdefl_output_buffer_putter, &out_buf, flags)) - return NULL; - *pOut_len = out_buf.m_size; - return out_buf.m_pBuf; -} - -size_t tdefl_compress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void *pSrc_buf, size_t src_buf_len, int flags) -{ - tdefl_output_buffer out_buf; - MZ_CLEAR_OBJ(out_buf); - if (!pOut_buf) - return 0; - out_buf.m_pBuf = (mz_uint8 *)pOut_buf; - out_buf.m_capacity = out_buf_len; - if (!tdefl_compress_mem_to_output(pSrc_buf, src_buf_len, tdefl_output_buffer_putter, &out_buf, flags)) - return 0; - return out_buf.m_size; -} - -static const mz_uint s_tdefl_num_probes[11] = { 0, 1, 6, 32, 16, 32, 128, 256, 512, 768, 1500 }; - -/* level may actually range from [0,10] (10 is a "hidden" max level, where we want a bit more compression and it's fine if throughput to fall off a cliff on some files). */ -mz_uint tdefl_create_comp_flags_from_zip_params(int level, int window_bits, int strategy) -{ - mz_uint comp_flags = s_tdefl_num_probes[(level >= 0) ? MZ_MIN(10, level) : MZ_DEFAULT_LEVEL] | ((level <= 3) ? TDEFL_GREEDY_PARSING_FLAG : 0); - if (window_bits > 0) - comp_flags |= TDEFL_WRITE_ZLIB_HEADER; - - if (!level) - comp_flags |= TDEFL_FORCE_ALL_RAW_BLOCKS; - else if (strategy == MZ_FILTERED) - comp_flags |= TDEFL_FILTER_MATCHES; - else if (strategy == MZ_HUFFMAN_ONLY) - comp_flags &= ~TDEFL_MAX_PROBES_MASK; - else if (strategy == MZ_FIXED) - comp_flags |= TDEFL_FORCE_ALL_STATIC_BLOCKS; - else if (strategy == MZ_RLE) - comp_flags |= TDEFL_RLE_MATCHES; - - return comp_flags; -} - -#ifdef _MSC_VER -#pragma warning(push) -#pragma warning(disable : 4204) /* nonstandard extension used : non-constant aggregate initializer (also supported by GNU C and C99, so no big deal) */ -#endif - -/* Simple PNG writer function by Alex Evans, 2011. Released into the public domain: https://gist.github.com/908299, more context at - http://altdevblogaday.org/2011/04/06/a-smaller-jpg-encoder/. - This is actually a modification of Alex's original code so PNG files generated by this function pass pngcheck. */ -void *tdefl_write_image_to_png_file_in_memory_ex(const void *pImage, int w, int h, int num_chans, size_t *pLen_out, mz_uint level, mz_bool flip) -{ - /* Using a local copy of this array here in case MINIZ_NO_ZLIB_APIS was defined. */ - static const mz_uint s_tdefl_png_num_probes[11] = { 0, 1, 6, 32, 16, 32, 128, 256, 512, 768, 1500 }; - tdefl_compressor *pComp = (tdefl_compressor *)MZ_MALLOC(sizeof(tdefl_compressor)); - tdefl_output_buffer out_buf; - int i, bpl = w * num_chans, y, z; - mz_uint32 c; - *pLen_out = 0; - if (!pComp) - return NULL; - MZ_CLEAR_OBJ(out_buf); - out_buf.m_expandable = MZ_TRUE; - out_buf.m_capacity = 57 + MZ_MAX(64, (1 + bpl) * h); - if (NULL == (out_buf.m_pBuf = (mz_uint8 *)MZ_MALLOC(out_buf.m_capacity))) - { - MZ_FREE(pComp); - return NULL; - } - /* write dummy header */ - for (z = 41; z; --z) - tdefl_output_buffer_putter(&z, 1, &out_buf); - /* compress image data */ - tdefl_init(pComp, tdefl_output_buffer_putter, &out_buf, s_tdefl_png_num_probes[MZ_MIN(10, level)] | TDEFL_WRITE_ZLIB_HEADER); - for (y = 0; y < h; ++y) - { - tdefl_compress_buffer(pComp, &z, 1, TDEFL_NO_FLUSH); - tdefl_compress_buffer(pComp, (mz_uint8 *)pImage + (flip ? (h - 1 - y) : y) * bpl, bpl, TDEFL_NO_FLUSH); - } - if (tdefl_compress_buffer(pComp, NULL, 0, TDEFL_FINISH) != TDEFL_STATUS_DONE) - { - MZ_FREE(pComp); - MZ_FREE(out_buf.m_pBuf); - return NULL; - } - /* write real header */ - *pLen_out = out_buf.m_size - 41; - { - static const mz_uint8 chans[] = { 0x00, 0x00, 0x04, 0x02, 0x06 }; - mz_uint8 pnghdr[41] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, - 0x0a, 0x1a, 0x0a, 0x00, 0x00, - 0x00, 0x0d, 0x49, 0x48, 0x44, - 0x52, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x08, - 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x49, 0x44, 0x41, - 0x54 }; - pnghdr[18] = (mz_uint8)(w >> 8); - pnghdr[19] = (mz_uint8)w; - pnghdr[22] = (mz_uint8)(h >> 8); - pnghdr[23] = (mz_uint8)h; - pnghdr[25] = chans[num_chans]; - pnghdr[33] = (mz_uint8)(*pLen_out >> 24); - pnghdr[34] = (mz_uint8)(*pLen_out >> 16); - pnghdr[35] = (mz_uint8)(*pLen_out >> 8); - pnghdr[36] = (mz_uint8)*pLen_out; - c = (mz_uint32)mz_crc32(MZ_CRC32_INIT, pnghdr + 12, 17); - for (i = 0; i < 4; ++i, c <<= 8) - ((mz_uint8 *)(pnghdr + 29))[i] = (mz_uint8)(c >> 24); - memcpy(out_buf.m_pBuf, pnghdr, 41); - } - /* write footer (IDAT CRC-32, followed by IEND chunk) */ - if (!tdefl_output_buffer_putter("\0\0\0\0\0\0\0\0\x49\x45\x4e\x44\xae\x42\x60\x82", 16, &out_buf)) - { - *pLen_out = 0; - MZ_FREE(pComp); - MZ_FREE(out_buf.m_pBuf); - return NULL; - } - c = (mz_uint32)mz_crc32(MZ_CRC32_INIT, out_buf.m_pBuf + 41 - 4, *pLen_out + 4); - for (i = 0; i < 4; ++i, c <<= 8) - (out_buf.m_pBuf + out_buf.m_size - 16)[i] = (mz_uint8)(c >> 24); - /* compute final size of file, grab compressed data buffer and return */ - *pLen_out += 57; - MZ_FREE(pComp); - return out_buf.m_pBuf; -} -void *tdefl_write_image_to_png_file_in_memory(const void *pImage, int w, int h, int num_chans, size_t *pLen_out) -{ - /* Level 6 corresponds to TDEFL_DEFAULT_MAX_PROBES or MZ_DEFAULT_LEVEL (but we can't depend on MZ_DEFAULT_LEVEL being available in case the zlib API's where #defined out) */ - return tdefl_write_image_to_png_file_in_memory_ex(pImage, w, h, num_chans, pLen_out, 6, MZ_FALSE); -} - -/* Allocate the tdefl_compressor and tinfl_decompressor structures in C so that */ -/* non-C language bindings to tdefL_ and tinfl_ API don't need to worry about */ -/* structure size and allocation mechanism. */ -tdefl_compressor *tdefl_compressor_alloc() -{ - return (tdefl_compressor *)MZ_MALLOC(sizeof(tdefl_compressor)); -} - -void tdefl_compressor_free(tdefl_compressor *pComp) -{ - MZ_FREE(pComp); -} - -#ifdef _MSC_VER -#pragma warning(pop) -#endif - -#ifdef __cplusplus -} -#endif diff --git a/src/crent370/miniz/mztdef.c:zone.identifier:$data b/src/crent370/miniz/mztdef.c:zone.identifier:$data deleted file mode 100644 index 7d95642..0000000 --- a/src/crent370/miniz/mztdef.c:zone.identifier:$data +++ /dev/null @@ -1,3 +0,0 @@ -[ZoneTransfer] -ZoneId=3 -ReferrerUrl=O:\miniz-master.zip diff --git a/src/crent370/miniz/mztinfl.c b/src/crent370/miniz/mztinfl.c deleted file mode 100644 index 3acf56b..0000000 --- a/src/crent370/miniz/mztinfl.c +++ /dev/null @@ -1,738 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ - -#include "miniz_tinfl.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* ------------------- Low-level Decompression (completely independent from all compression API's) */ - -#define TINFL_MEMCPY(d, s, l) memcpy(d, s, l) -#define TINFL_MEMSET(p, c, l) memset(p, c, l) - -#define TINFL_CR_BEGIN \ - switch (r->m_state) \ - { \ - case 0: -#define TINFL_CR_RETURN(state_index, result) \ - do \ - { \ - status = result; \ - r->m_state = state_index; \ - goto common_exit; \ - case state_index:; \ - } \ - MZ_MACRO_END -#define TINFL_CR_RETURN_FOREVER(state_index, result) \ - do \ - { \ - for (;;) \ - { \ - TINFL_CR_RETURN(state_index, result); \ - } \ - } \ - MZ_MACRO_END -#define TINFL_CR_FINISH } - -#define TINFL_GET_BYTE(state_index, c) \ - do \ - { \ - while (pIn_buf_cur >= pIn_buf_end) \ - { \ - TINFL_CR_RETURN(state_index, (decomp_flags & TINFL_FLAG_HAS_MORE_INPUT) ? TINFL_STATUS_NEEDS_MORE_INPUT : TINFL_STATUS_FAILED_CANNOT_MAKE_PROGRESS); \ - } \ - c = *pIn_buf_cur++; \ - } \ - MZ_MACRO_END - -#define TINFL_NEED_BITS(state_index, n) \ - do \ - { \ - mz_uint c; \ - TINFL_GET_BYTE(state_index, c); \ - bit_buf |= (((tinfl_bit_buf_t)c) << num_bits); \ - num_bits += 8; \ - } while (num_bits < (mz_uint)(n)) -#define TINFL_SKIP_BITS(state_index, n) \ - do \ - { \ - if (num_bits < (mz_uint)(n)) \ - { \ - TINFL_NEED_BITS(state_index, n); \ - } \ - bit_buf >>= (n); \ - num_bits -= (n); \ - } \ - MZ_MACRO_END -#define TINFL_GET_BITS(state_index, b, n) \ - do \ - { \ - if (num_bits < (mz_uint)(n)) \ - { \ - TINFL_NEED_BITS(state_index, n); \ - } \ - b = bit_buf & ((1 << (n)) - 1); \ - bit_buf >>= (n); \ - num_bits -= (n); \ - } \ - MZ_MACRO_END - -/* TINFL_HUFF_BITBUF_FILL() is only used rarely, when the number of bytes remaining in the input buffer falls below 2. */ -/* It reads just enough bytes from the input stream that are needed to decode the next Huffman code (and absolutely no more). It works by trying to fully decode a */ -/* Huffman code by using whatever bits are currently present in the bit buffer. If this fails, it reads another byte, and tries again until it succeeds or until the */ -/* bit buffer contains >=15 bits (deflate's max. Huffman code size). */ -#define TINFL_HUFF_BITBUF_FILL(state_index, pHuff) \ - do \ - { \ - temp = (pHuff)->m_look_up[bit_buf & (TINFL_FAST_LOOKUP_SIZE - 1)]; \ - if (temp >= 0) \ - { \ - code_len = temp >> 9; \ - if ((code_len) && (num_bits >= code_len)) \ - break; \ - } \ - else if (num_bits > TINFL_FAST_LOOKUP_BITS) \ - { \ - code_len = TINFL_FAST_LOOKUP_BITS; \ - do \ - { \ - temp = (pHuff)->m_tree[~temp + ((bit_buf >> code_len++) & 1)]; \ - } while ((temp < 0) && (num_bits >= (code_len + 1))); \ - if (temp >= 0) \ - break; \ - } \ - TINFL_GET_BYTE(state_index, c); \ - bit_buf |= (((tinfl_bit_buf_t)c) << num_bits); \ - num_bits += 8; \ - } while (num_bits < 15); - -/* TINFL_HUFF_DECODE() decodes the next Huffman coded symbol. It's more complex than you would initially expect because the zlib API expects the decompressor to never read */ -/* beyond the final byte of the deflate stream. (In other words, when this macro wants to read another byte from the input, it REALLY needs another byte in order to fully */ -/* decode the next Huffman code.) Handling this properly is particularly important on raw deflate (non-zlib) streams, which aren't followed by a byte aligned adler-32. */ -/* The slow path is only executed at the very end of the input buffer. */ -/* v1.16: The original macro handled the case at the very end of the passed-in input buffer, but we also need to handle the case where the user passes in 1+zillion bytes */ -/* following the deflate data and our non-conservative read-ahead path won't kick in here on this code. This is much trickier. */ -#define TINFL_HUFF_DECODE(state_index, sym, pHuff) \ - do \ - { \ - int temp; \ - mz_uint code_len, c; \ - if (num_bits < 15) \ - { \ - if ((pIn_buf_end - pIn_buf_cur) < 2) \ - { \ - TINFL_HUFF_BITBUF_FILL(state_index, pHuff); \ - } \ - else \ - { \ - bit_buf |= (((tinfl_bit_buf_t)pIn_buf_cur[0]) << num_bits) | (((tinfl_bit_buf_t)pIn_buf_cur[1]) << (num_bits + 8)); \ - pIn_buf_cur += 2; \ - num_bits += 16; \ - } \ - } \ - if ((temp = (pHuff)->m_look_up[bit_buf & (TINFL_FAST_LOOKUP_SIZE - 1)]) >= 0) \ - code_len = temp >> 9, temp &= 511; \ - else \ - { \ - code_len = TINFL_FAST_LOOKUP_BITS; \ - do \ - { \ - temp = (pHuff)->m_tree[~temp + ((bit_buf >> code_len++) & 1)]; \ - } while (temp < 0); \ - } \ - sym = temp; \ - bit_buf >>= code_len; \ - num_bits -= code_len; \ - } \ - MZ_MACRO_END - -tinfl_status tinfl_decompress(tinfl_decompressor *r, const mz_uint8 *pIn_buf_next, size_t *pIn_buf_size, mz_uint8 *pOut_buf_start, mz_uint8 *pOut_buf_next, size_t *pOut_buf_size, const mz_uint32 decomp_flags) -{ - static const int s_length_base[31] = { 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0 }; - static const int s_length_extra[31] = { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 0 }; - static const int s_dist_base[32] = { 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0 }; - static const int s_dist_extra[32] = { 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13 }; - static const mz_uint8 s_length_dezigzag[19] = { 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 }; - static const int s_min_table_sizes[3] = { 257, 1, 4 }; - - tinfl_status status = TINFL_STATUS_FAILED; - mz_uint32 num_bits, dist, counter, num_extra; - tinfl_bit_buf_t bit_buf; - const mz_uint8 *pIn_buf_cur = pIn_buf_next, *const pIn_buf_end = pIn_buf_next + *pIn_buf_size; - mz_uint8 *pOut_buf_cur = pOut_buf_next, *const pOut_buf_end = pOut_buf_next + *pOut_buf_size; - size_t out_buf_size_mask = (decomp_flags & TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF) ? (size_t)-1 : ((pOut_buf_next - pOut_buf_start) + *pOut_buf_size) - 1, dist_from_out_buf_start; - - /* Ensure the output buffer's size is a power of 2, unless the output buffer is large enough to hold the entire output file (in which case it doesn't matter). */ - if (((out_buf_size_mask + 1) & out_buf_size_mask) || (pOut_buf_next < pOut_buf_start)) - { - *pIn_buf_size = *pOut_buf_size = 0; - return TINFL_STATUS_BAD_PARAM; - } - - num_bits = r->m_num_bits; - bit_buf = r->m_bit_buf; - dist = r->m_dist; - counter = r->m_counter; - num_extra = r->m_num_extra; - dist_from_out_buf_start = r->m_dist_from_out_buf_start; - TINFL_CR_BEGIN - - bit_buf = num_bits = dist = counter = num_extra = r->m_zhdr0 = r->m_zhdr1 = 0; - r->m_z_adler32 = r->m_check_adler32 = 1; - if (decomp_flags & TINFL_FLAG_PARSE_ZLIB_HEADER) - { - TINFL_GET_BYTE(1, r->m_zhdr0); - TINFL_GET_BYTE(2, r->m_zhdr1); - counter = (((r->m_zhdr0 * 256 + r->m_zhdr1) % 31 != 0) || (r->m_zhdr1 & 32) || ((r->m_zhdr0 & 15) != 8)); - if (!(decomp_flags & TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF)) - counter |= (((1U << (8U + (r->m_zhdr0 >> 4))) > 32768U) || ((out_buf_size_mask + 1) < (size_t)(1U << (8U + (r->m_zhdr0 >> 4))))); - if (counter) - { - TINFL_CR_RETURN_FOREVER(36, TINFL_STATUS_FAILED); - } - } - - do - { - TINFL_GET_BITS(3, r->m_final, 3); - r->m_type = r->m_final >> 1; - if (r->m_type == 0) - { - TINFL_SKIP_BITS(5, num_bits & 7); - for (counter = 0; counter < 4; ++counter) - { - if (num_bits) - TINFL_GET_BITS(6, r->m_raw_header[counter], 8); - else - TINFL_GET_BYTE(7, r->m_raw_header[counter]); - } - if ((counter = (r->m_raw_header[0] | (r->m_raw_header[1] << 8))) != (mz_uint)(0xFFFF ^ (r->m_raw_header[2] | (r->m_raw_header[3] << 8)))) - { - TINFL_CR_RETURN_FOREVER(39, TINFL_STATUS_FAILED); - } - while ((counter) && (num_bits)) - { - TINFL_GET_BITS(51, dist, 8); - while (pOut_buf_cur >= pOut_buf_end) - { - TINFL_CR_RETURN(52, TINFL_STATUS_HAS_MORE_OUTPUT); - } - *pOut_buf_cur++ = (mz_uint8)dist; - counter--; - } - while (counter) - { - size_t n; - while (pOut_buf_cur >= pOut_buf_end) - { - TINFL_CR_RETURN(9, TINFL_STATUS_HAS_MORE_OUTPUT); - } - while (pIn_buf_cur >= pIn_buf_end) - { - TINFL_CR_RETURN(38, (decomp_flags & TINFL_FLAG_HAS_MORE_INPUT) ? TINFL_STATUS_NEEDS_MORE_INPUT : TINFL_STATUS_FAILED_CANNOT_MAKE_PROGRESS); - } - n = MZ_MIN(MZ_MIN((size_t)(pOut_buf_end - pOut_buf_cur), (size_t)(pIn_buf_end - pIn_buf_cur)), counter); - TINFL_MEMCPY(pOut_buf_cur, pIn_buf_cur, n); - pIn_buf_cur += n; - pOut_buf_cur += n; - counter -= (mz_uint)n; - } - } - else if (r->m_type == 3) - { - TINFL_CR_RETURN_FOREVER(10, TINFL_STATUS_FAILED); - } - else - { - if (r->m_type == 1) - { - mz_uint8 *p = r->m_tables[0].m_code_size; - mz_uint i; - r->m_table_sizes[0] = 288; - r->m_table_sizes[1] = 32; - TINFL_MEMSET(r->m_tables[1].m_code_size, 5, 32); - for (i = 0; i <= 143; ++i) - *p++ = 8; - for (; i <= 255; ++i) - *p++ = 9; - for (; i <= 279; ++i) - *p++ = 7; - for (; i <= 287; ++i) - *p++ = 8; - } - else - { - for (counter = 0; counter < 3; counter++) - { - TINFL_GET_BITS(11, r->m_table_sizes[counter], "\05\05\04"[counter]); - r->m_table_sizes[counter] += s_min_table_sizes[counter]; - } - MZ_CLEAR_OBJ(r->m_tables[2].m_code_size); - for (counter = 0; counter < r->m_table_sizes[2]; counter++) - { - mz_uint s; - TINFL_GET_BITS(14, s, 3); - r->m_tables[2].m_code_size[s_length_dezigzag[counter]] = (mz_uint8)s; - } - r->m_table_sizes[2] = 19; - } - for (; (int)r->m_type >= 0; r->m_type--) - { - int tree_next, tree_cur; - tinfl_huff_table *pTable; - mz_uint i, j, used_syms, total, sym_index, next_code[17], total_syms[16]; - pTable = &r->m_tables[r->m_type]; - MZ_CLEAR_OBJ(total_syms); - MZ_CLEAR_OBJ(pTable->m_look_up); - MZ_CLEAR_OBJ(pTable->m_tree); - for (i = 0; i < r->m_table_sizes[r->m_type]; ++i) - total_syms[pTable->m_code_size[i]]++; - used_syms = 0, total = 0; - next_code[0] = next_code[1] = 0; - for (i = 1; i <= 15; ++i) - { - used_syms += total_syms[i]; - next_code[i + 1] = (total = ((total + total_syms[i]) << 1)); - } - if ((65536 != total) && (used_syms > 1)) - { - TINFL_CR_RETURN_FOREVER(35, TINFL_STATUS_FAILED); - } - for (tree_next = -1, sym_index = 0; sym_index < r->m_table_sizes[r->m_type]; ++sym_index) - { - mz_uint rev_code = 0, l, cur_code, code_size = pTable->m_code_size[sym_index]; - if (!code_size) - continue; - cur_code = next_code[code_size]++; - for (l = code_size; l > 0; l--, cur_code >>= 1) - rev_code = (rev_code << 1) | (cur_code & 1); - if (code_size <= TINFL_FAST_LOOKUP_BITS) - { - mz_int16 k = (mz_int16)((code_size << 9) | sym_index); - while (rev_code < TINFL_FAST_LOOKUP_SIZE) - { - pTable->m_look_up[rev_code] = k; - rev_code += (1 << code_size); - } - continue; - } - if (0 == (tree_cur = pTable->m_look_up[rev_code & (TINFL_FAST_LOOKUP_SIZE - 1)])) - { - pTable->m_look_up[rev_code & (TINFL_FAST_LOOKUP_SIZE - 1)] = (mz_int16)tree_next; - tree_cur = tree_next; - tree_next -= 2; - } - rev_code >>= (TINFL_FAST_LOOKUP_BITS - 1); - for (j = code_size; j > (TINFL_FAST_LOOKUP_BITS + 1); j--) - { - tree_cur -= ((rev_code >>= 1) & 1); - if (!pTable->m_tree[-tree_cur - 1]) - { - pTable->m_tree[-tree_cur - 1] = (mz_int16)tree_next; - tree_cur = tree_next; - tree_next -= 2; - } - else - tree_cur = pTable->m_tree[-tree_cur - 1]; - } - tree_cur -= ((rev_code >>= 1) & 1); - pTable->m_tree[-tree_cur - 1] = (mz_int16)sym_index; - } - if (r->m_type == 2) - { - for (counter = 0; counter < (r->m_table_sizes[0] + r->m_table_sizes[1]);) - { - mz_uint s; - TINFL_HUFF_DECODE(16, dist, &r->m_tables[2]); - if (dist < 16) - { - r->m_len_codes[counter++] = (mz_uint8)dist; - continue; - } - if ((dist == 16) && (!counter)) - { - TINFL_CR_RETURN_FOREVER(17, TINFL_STATUS_FAILED); - } - num_extra = "\02\03\07"[dist - 16]; - TINFL_GET_BITS(18, s, num_extra); - s += "\03\03\013"[dist - 16]; - TINFL_MEMSET(r->m_len_codes + counter, (dist == 16) ? r->m_len_codes[counter - 1] : 0, s); - counter += s; - } - if ((r->m_table_sizes[0] + r->m_table_sizes[1]) != counter) - { - TINFL_CR_RETURN_FOREVER(21, TINFL_STATUS_FAILED); - } - TINFL_MEMCPY(r->m_tables[0].m_code_size, r->m_len_codes, r->m_table_sizes[0]); - TINFL_MEMCPY(r->m_tables[1].m_code_size, r->m_len_codes + r->m_table_sizes[0], r->m_table_sizes[1]); - } - } - for (;;) - { - mz_uint8 *pSrc; - for (;;) - { - if (((pIn_buf_end - pIn_buf_cur) < 4) || ((pOut_buf_end - pOut_buf_cur) < 2)) - { - TINFL_HUFF_DECODE(23, counter, &r->m_tables[0]); - if (counter >= 256) - break; - while (pOut_buf_cur >= pOut_buf_end) - { - TINFL_CR_RETURN(24, TINFL_STATUS_HAS_MORE_OUTPUT); - } - *pOut_buf_cur++ = (mz_uint8)counter; - } - else - { - int sym2; - mz_uint code_len; -#if TINFL_USE_64BIT_BITBUF - if (num_bits < 30) - { - bit_buf |= (((tinfl_bit_buf_t)MZ_READ_LE32(pIn_buf_cur)) << num_bits); - pIn_buf_cur += 4; - num_bits += 32; - } -#else - if (num_bits < 15) - { - bit_buf |= (((tinfl_bit_buf_t)MZ_READ_LE16(pIn_buf_cur)) << num_bits); - pIn_buf_cur += 2; - num_bits += 16; - } -#endif - if ((sym2 = r->m_tables[0].m_look_up[bit_buf & (TINFL_FAST_LOOKUP_SIZE - 1)]) >= 0) - code_len = sym2 >> 9; - else - { - code_len = TINFL_FAST_LOOKUP_BITS; - do - { - sym2 = r->m_tables[0].m_tree[~sym2 + ((bit_buf >> code_len++) & 1)]; - } while (sym2 < 0); - } - counter = sym2; - bit_buf >>= code_len; - num_bits -= code_len; - if (counter & 256) - break; - -#if !TINFL_USE_64BIT_BITBUF - if (num_bits < 15) - { - bit_buf |= (((tinfl_bit_buf_t)MZ_READ_LE16(pIn_buf_cur)) << num_bits); - pIn_buf_cur += 2; - num_bits += 16; - } -#endif - if ((sym2 = r->m_tables[0].m_look_up[bit_buf & (TINFL_FAST_LOOKUP_SIZE - 1)]) >= 0) - code_len = sym2 >> 9; - else - { - code_len = TINFL_FAST_LOOKUP_BITS; - do - { - sym2 = r->m_tables[0].m_tree[~sym2 + ((bit_buf >> code_len++) & 1)]; - } while (sym2 < 0); - } - bit_buf >>= code_len; - num_bits -= code_len; - - pOut_buf_cur[0] = (mz_uint8)counter; - if (sym2 & 256) - { - pOut_buf_cur++; - counter = sym2; - break; - } - pOut_buf_cur[1] = (mz_uint8)sym2; - pOut_buf_cur += 2; - } - } - if ((counter &= 511) == 256) - break; - - num_extra = s_length_extra[counter - 257]; - counter = s_length_base[counter - 257]; - if (num_extra) - { - mz_uint extra_bits; - TINFL_GET_BITS(25, extra_bits, num_extra); - counter += extra_bits; - } - - TINFL_HUFF_DECODE(26, dist, &r->m_tables[1]); - num_extra = s_dist_extra[dist]; - dist = s_dist_base[dist]; - if (num_extra) - { - mz_uint extra_bits; - TINFL_GET_BITS(27, extra_bits, num_extra); - dist += extra_bits; - } - - dist_from_out_buf_start = pOut_buf_cur - pOut_buf_start; - if ((dist > dist_from_out_buf_start) && (decomp_flags & TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF)) - { - TINFL_CR_RETURN_FOREVER(37, TINFL_STATUS_FAILED); - } - - pSrc = pOut_buf_start + ((dist_from_out_buf_start - dist) & out_buf_size_mask); - - if ((MZ_MAX(pOut_buf_cur, pSrc) + counter) > pOut_buf_end) - { - while (counter--) - { - while (pOut_buf_cur >= pOut_buf_end) - { - TINFL_CR_RETURN(53, TINFL_STATUS_HAS_MORE_OUTPUT); - } - *pOut_buf_cur++ = pOut_buf_start[(dist_from_out_buf_start++ - dist) & out_buf_size_mask]; - } - continue; - } -#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES - else if ((counter >= 9) && (counter <= dist)) - { - const mz_uint8 *pSrc_end = pSrc + (counter & ~7); - do - { -#ifdef MINIZ_UNALIGNED_USE_MEMCPY - memcpy(pOut_buf_cur, pSrc, sizeof(mz_uint32)*2); -#else - ((mz_uint32 *)pOut_buf_cur)[0] = ((const mz_uint32 *)pSrc)[0]; - ((mz_uint32 *)pOut_buf_cur)[1] = ((const mz_uint32 *)pSrc)[1]; -#endif - pOut_buf_cur += 8; - } while ((pSrc += 8) < pSrc_end); - if ((counter &= 7) < 3) - { - if (counter) - { - pOut_buf_cur[0] = pSrc[0]; - if (counter > 1) - pOut_buf_cur[1] = pSrc[1]; - pOut_buf_cur += counter; - } - continue; - } - } -#endif - while(counter>2) - { - pOut_buf_cur[0] = pSrc[0]; - pOut_buf_cur[1] = pSrc[1]; - pOut_buf_cur[2] = pSrc[2]; - pOut_buf_cur += 3; - pSrc += 3; - counter -= 3; - } - if (counter > 0) - { - pOut_buf_cur[0] = pSrc[0]; - if (counter > 1) - pOut_buf_cur[1] = pSrc[1]; - pOut_buf_cur += counter; - } - } - } - } while (!(r->m_final & 1)); - - /* Ensure byte alignment and put back any bytes from the bitbuf if we've looked ahead too far on gzip, or other Deflate streams followed by arbitrary data. */ - /* I'm being super conservative here. A number of simplifications can be made to the byte alignment part, and the Adler32 check shouldn't ever need to worry about reading from the bitbuf now. */ - TINFL_SKIP_BITS(32, num_bits & 7); - while ((pIn_buf_cur > pIn_buf_next) && (num_bits >= 8)) - { - --pIn_buf_cur; - num_bits -= 8; - } - bit_buf &= (tinfl_bit_buf_t)((((mz_uint64)1) << num_bits) - (mz_uint64)1); - MZ_ASSERT(!num_bits); /* if this assert fires then we've read beyond the end of non-deflate/zlib streams with following data (such as gzip streams). */ - - if (decomp_flags & TINFL_FLAG_PARSE_ZLIB_HEADER) - { - for (counter = 0; counter < 4; ++counter) - { - mz_uint s; - if (num_bits) - TINFL_GET_BITS(41, s, 8); - else - TINFL_GET_BYTE(42, s); - r->m_z_adler32 = (r->m_z_adler32 << 8) | s; - } - } - TINFL_CR_RETURN_FOREVER(34, TINFL_STATUS_DONE); - - TINFL_CR_FINISH - -common_exit: - /* As long as we aren't telling the caller that we NEED more input to make forward progress: */ - /* Put back any bytes from the bitbuf in case we've looked ahead too far on gzip, or other Deflate streams followed by arbitrary data. */ - /* We need to be very careful here to NOT push back any bytes we definitely know we need to make forward progress, though, or we'll lock the caller up into an inf loop. */ - if ((status != TINFL_STATUS_NEEDS_MORE_INPUT) && (status != TINFL_STATUS_FAILED_CANNOT_MAKE_PROGRESS)) - { - while ((pIn_buf_cur > pIn_buf_next) && (num_bits >= 8)) - { - --pIn_buf_cur; - num_bits -= 8; - } - } - r->m_num_bits = num_bits; - r->m_bit_buf = bit_buf & (tinfl_bit_buf_t)((((mz_uint64)1) << num_bits) - (mz_uint64)1); - r->m_dist = dist; - r->m_counter = counter; - r->m_num_extra = num_extra; - r->m_dist_from_out_buf_start = dist_from_out_buf_start; - *pIn_buf_size = pIn_buf_cur - pIn_buf_next; - *pOut_buf_size = pOut_buf_cur - pOut_buf_next; - if ((decomp_flags & (TINFL_FLAG_PARSE_ZLIB_HEADER | TINFL_FLAG_COMPUTE_ADLER32)) && (status >= 0)) - { - const mz_uint8 *ptr = pOut_buf_next; - size_t buf_len = *pOut_buf_size; - mz_uint32 i, s1 = r->m_check_adler32 & 0xffff, s2 = r->m_check_adler32 >> 16; - size_t block_len = buf_len % 5552; - while (buf_len) - { - for (i = 0; i + 7 < block_len; i += 8, ptr += 8) - { - s1 += ptr[0], s2 += s1; - s1 += ptr[1], s2 += s1; - s1 += ptr[2], s2 += s1; - s1 += ptr[3], s2 += s1; - s1 += ptr[4], s2 += s1; - s1 += ptr[5], s2 += s1; - s1 += ptr[6], s2 += s1; - s1 += ptr[7], s2 += s1; - } - for (; i < block_len; ++i) - s1 += *ptr++, s2 += s1; - s1 %= 65521U, s2 %= 65521U; - buf_len -= block_len; - block_len = 5552; - } - r->m_check_adler32 = (s2 << 16) + s1; - if ((status == TINFL_STATUS_DONE) && (decomp_flags & TINFL_FLAG_PARSE_ZLIB_HEADER) && (r->m_check_adler32 != r->m_z_adler32)) - status = TINFL_STATUS_ADLER32_MISMATCH; - } - return status; -} - -/* Higher level helper functions. */ -void *tinfl_decompress_mem_to_heap(const void *pSrc_buf, size_t src_buf_len, size_t *pOut_len, int flags) -{ - tinfl_decompressor decomp; - void *pBuf = NULL, *pNew_buf; - size_t src_buf_ofs = 0, out_buf_capacity = 0; - *pOut_len = 0; - tinfl_init(&decomp); - for (;;) - { - size_t src_buf_size = src_buf_len - src_buf_ofs, dst_buf_size = out_buf_capacity - *pOut_len, new_out_buf_capacity; - tinfl_status status = tinfl_decompress(&decomp, (const mz_uint8 *)pSrc_buf + src_buf_ofs, &src_buf_size, (mz_uint8 *)pBuf, pBuf ? (mz_uint8 *)pBuf + *pOut_len : NULL, &dst_buf_size, - (flags & ~TINFL_FLAG_HAS_MORE_INPUT) | TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF); - if ((status < 0) || (status == TINFL_STATUS_NEEDS_MORE_INPUT)) - { - MZ_FREE(pBuf); - *pOut_len = 0; - return NULL; - } - src_buf_ofs += src_buf_size; - *pOut_len += dst_buf_size; - if (status == TINFL_STATUS_DONE) - break; - new_out_buf_capacity = out_buf_capacity * 2; - if (new_out_buf_capacity < 128) - new_out_buf_capacity = 128; - pNew_buf = MZ_REALLOC(pBuf, new_out_buf_capacity); - if (!pNew_buf) - { - MZ_FREE(pBuf); - *pOut_len = 0; - return NULL; - } - pBuf = pNew_buf; - out_buf_capacity = new_out_buf_capacity; - } - return pBuf; -} - -size_t tinfl_decompress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void *pSrc_buf, size_t src_buf_len, int flags) -{ - tinfl_decompressor decomp; - tinfl_status status; - tinfl_init(&decomp); - status = tinfl_decompress(&decomp, (const mz_uint8 *)pSrc_buf, &src_buf_len, (mz_uint8 *)pOut_buf, (mz_uint8 *)pOut_buf, &out_buf_len, (flags & ~TINFL_FLAG_HAS_MORE_INPUT) | TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF); - return (status != TINFL_STATUS_DONE) ? TINFL_DECOMPRESS_MEM_TO_MEM_FAILED : out_buf_len; -} - -int tinfl_decompress_mem_to_callback(const void *pIn_buf, size_t *pIn_buf_size, tinfl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags) -{ - int result = 0; - tinfl_decompressor decomp; - mz_uint8 *pDict = (mz_uint8 *)MZ_MALLOC(TINFL_LZ_DICT_SIZE); - size_t in_buf_ofs = 0, dict_ofs = 0; - if (!pDict) - return TINFL_STATUS_FAILED; - tinfl_init(&decomp); - for (;;) - { - size_t in_buf_size = *pIn_buf_size - in_buf_ofs, dst_buf_size = TINFL_LZ_DICT_SIZE - dict_ofs; - tinfl_status status = tinfl_decompress(&decomp, (const mz_uint8 *)pIn_buf + in_buf_ofs, &in_buf_size, pDict, pDict + dict_ofs, &dst_buf_size, - (flags & ~(TINFL_FLAG_HAS_MORE_INPUT | TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF))); - in_buf_ofs += in_buf_size; - if ((dst_buf_size) && (!(*pPut_buf_func)(pDict + dict_ofs, (int)dst_buf_size, pPut_buf_user))) - break; - if (status != TINFL_STATUS_HAS_MORE_OUTPUT) - { - result = (status == TINFL_STATUS_DONE); - break; - } - dict_ofs = (dict_ofs + dst_buf_size) & (TINFL_LZ_DICT_SIZE - 1); - } - MZ_FREE(pDict); - *pIn_buf_size = in_buf_ofs; - return result; -} - -tinfl_decompressor *tinfl_decompressor_alloc() -{ - tinfl_decompressor *pDecomp = (tinfl_decompressor *)MZ_MALLOC(sizeof(tinfl_decompressor)); - if (pDecomp) - tinfl_init(pDecomp); - return pDecomp; -} - -void tinfl_decompressor_free(tinfl_decompressor *pDecomp) -{ - MZ_FREE(pDecomp); -} - -#ifdef __cplusplus -} -#endif diff --git a/src/crent370/miniz/mztinfl.c:zone.identifier:$data b/src/crent370/miniz/mztinfl.c:zone.identifier:$data deleted file mode 100644 index 7d95642..0000000 --- a/src/crent370/miniz/mztinfl.c:zone.identifier:$data +++ /dev/null @@ -1,3 +0,0 @@ -[ZoneTransfer] -ZoneId=3 -ReferrerUrl=O:\miniz-master.zip diff --git a/src/crent370/miniz/mzzip.c b/src/crent370/miniz/mzzip.c deleted file mode 100644 index e9e043b..0000000 --- a/src/crent370/miniz/mzzip.c +++ /dev/null @@ -1,4714 +0,0 @@ -/************************************************************************** - * - * Copyright 2013-2014 RAD Game Tools and Valve Software - * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC - * Copyright 2016 Martin Raiber - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - **************************************************************************/ -#include "miniz_zip.h" - -#ifndef MINIZ_NO_ARCHIVE_APIS - -#ifdef __cplusplus -extern "C" { -#endif - -/* ------------------- .ZIP archive reading */ -#ifdef MINIZ_NO_STDIO -#define MZ_FILE void * -#else -#include - -#if defined(_MSC_VER) || defined(__MINGW64__) -static FILE *mz_fopen(const char *pFilename, const char *pMode) -{ - FILE *pFile = NULL; - fopen_s(&pFile, pFilename, pMode); - return pFile; -} -static FILE *mz_freopen(const char *pPath, const char *pMode, FILE *pStream) -{ - FILE *pFile = NULL; - if (freopen_s(&pFile, pPath, pMode, pStream)) - return NULL; - return pFile; -} -#ifndef MINIZ_NO_TIME -#include -#endif -#define MZ_FOPEN mz_fopen -#define MZ_FCLOSE fclose -#define MZ_FREAD fread -#define MZ_FWRITE fwrite -#define MZ_FTELL64 _ftelli64 -#define MZ_FSEEK64 _fseeki64 -#define MZ_FILE_STAT_STRUCT _stat -#define MZ_FILE_STAT _stat -#define MZ_FFLUSH fflush -#define MZ_FREOPEN mz_freopen -#define MZ_DELETE_FILE remove -#elif defined(__MINGW32__) -#ifndef MINIZ_NO_TIME -#include -#endif -#define MZ_FOPEN(f, m) fopen(f, m) -#define MZ_FCLOSE fclose -#define MZ_FREAD fread -#define MZ_FWRITE fwrite -#define MZ_FTELL64 ftello64 -#define MZ_FSEEK64 fseeko64 -#define MZ_FILE_STAT_STRUCT _stat -#define MZ_FILE_STAT _stat -#define MZ_FFLUSH fflush -#define MZ_FREOPEN(f, m, s) freopen(f, m, s) -#define MZ_DELETE_FILE remove -#elif defined(__TINYC__) -#ifndef MINIZ_NO_TIME -#include -#endif -#define MZ_FOPEN(f, m) fopen(f, m) -#define MZ_FCLOSE fclose -#define MZ_FREAD fread -#define MZ_FWRITE fwrite -#define MZ_FTELL64 ftell -#define MZ_FSEEK64 fseek -#define MZ_FILE_STAT_STRUCT stat -#define MZ_FILE_STAT stat -#define MZ_FFLUSH fflush -#define MZ_FREOPEN(f, m, s) freopen(f, m, s) -#define MZ_DELETE_FILE remove -#elif defined(__GNUC__) && _LARGEFILE64_SOURCE -#ifndef MINIZ_NO_TIME -#include -#endif -#define MZ_FOPEN(f, m) fopen64(f, m) -#define MZ_FCLOSE fclose -#define MZ_FREAD fread -#define MZ_FWRITE fwrite -#define MZ_FTELL64 ftello64 -#define MZ_FSEEK64 fseeko64 -#define MZ_FILE_STAT_STRUCT stat64 -#define MZ_FILE_STAT stat64 -#define MZ_FFLUSH fflush -#define MZ_FREOPEN(p, m, s) freopen64(p, m, s) -#define MZ_DELETE_FILE remove -#elif defined(__APPLE__) -#ifndef MINIZ_NO_TIME -#include -#endif -#define MZ_FOPEN(f, m) fopen(f, m) -#define MZ_FCLOSE fclose -#define MZ_FREAD fread -#define MZ_FWRITE fwrite -#define MZ_FTELL64 ftello -#define MZ_FSEEK64 fseeko -#define MZ_FILE_STAT_STRUCT stat -#define MZ_FILE_STAT stat -#define MZ_FFLUSH fflush -#define MZ_FREOPEN(p, m, s) freopen(p, m, s) -#define MZ_DELETE_FILE remove - -#else -#pragma message("Using fopen, ftello, fseeko, stat() etc. path for file I/O - this path may not support large files.") -#ifndef MINIZ_NO_TIME -#include -#endif -#define MZ_FOPEN(f, m) fopen(f, m) -#define MZ_FCLOSE fclose -#define MZ_FREAD fread -#define MZ_FWRITE fwrite -#ifdef __STRICT_ANSI__ -#define MZ_FTELL64 ftell -#define MZ_FSEEK64 fseek -#else -#define MZ_FTELL64 ftello -#define MZ_FSEEK64 fseeko -#endif -#define MZ_FILE_STAT_STRUCT stat -#define MZ_FILE_STAT stat -#define MZ_FFLUSH fflush -#define MZ_FREOPEN(f, m, s) freopen(f, m, s) -#define MZ_DELETE_FILE remove -#endif /* #ifdef _MSC_VER */ -#endif /* #ifdef MINIZ_NO_STDIO */ - -#define MZ_TOLOWER(c) ((((c) >= 'A') && ((c) <= 'Z')) ? ((c) - 'A' + 'a') : (c)) - -/* Various ZIP archive enums. To completely avoid cross platform compiler alignment and platform endian issues, miniz.c doesn't use structs for any of this stuff. */ -enum -{ - /* ZIP archive identifiers and record sizes */ - MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG = 0x06054b50, - MZ_ZIP_CENTRAL_DIR_HEADER_SIG = 0x02014b50, - MZ_ZIP_LOCAL_DIR_HEADER_SIG = 0x04034b50, - MZ_ZIP_LOCAL_DIR_HEADER_SIZE = 30, - MZ_ZIP_CENTRAL_DIR_HEADER_SIZE = 46, - MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE = 22, - - /* ZIP64 archive identifier and record sizes */ - MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIG = 0x06064b50, - MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIG = 0x07064b50, - MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE = 56, - MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE = 20, - MZ_ZIP64_EXTENDED_INFORMATION_FIELD_HEADER_ID = 0x0001, - MZ_ZIP_DATA_DESCRIPTOR_ID = 0x08074b50, - MZ_ZIP_DATA_DESCRIPTER_SIZE64 = 24, - MZ_ZIP_DATA_DESCRIPTER_SIZE32 = 16, - - /* Central directory header record offsets */ - MZ_ZIP_CDH_SIG_OFS = 0, - MZ_ZIP_CDH_VERSION_MADE_BY_OFS = 4, - MZ_ZIP_CDH_VERSION_NEEDED_OFS = 6, - MZ_ZIP_CDH_BIT_FLAG_OFS = 8, - MZ_ZIP_CDH_METHOD_OFS = 10, - MZ_ZIP_CDH_FILE_TIME_OFS = 12, - MZ_ZIP_CDH_FILE_DATE_OFS = 14, - MZ_ZIP_CDH_CRC32_OFS = 16, - MZ_ZIP_CDH_COMPRESSED_SIZE_OFS = 20, - MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS = 24, - MZ_ZIP_CDH_FILENAME_LEN_OFS = 28, - MZ_ZIP_CDH_EXTRA_LEN_OFS = 30, - MZ_ZIP_CDH_COMMENT_LEN_OFS = 32, - MZ_ZIP_CDH_DISK_START_OFS = 34, - MZ_ZIP_CDH_INTERNAL_ATTR_OFS = 36, - MZ_ZIP_CDH_EXTERNAL_ATTR_OFS = 38, - MZ_ZIP_CDH_LOCAL_HEADER_OFS = 42, - - /* Local directory header offsets */ - MZ_ZIP_LDH_SIG_OFS = 0, - MZ_ZIP_LDH_VERSION_NEEDED_OFS = 4, - MZ_ZIP_LDH_BIT_FLAG_OFS = 6, - MZ_ZIP_LDH_METHOD_OFS = 8, - MZ_ZIP_LDH_FILE_TIME_OFS = 10, - MZ_ZIP_LDH_FILE_DATE_OFS = 12, - MZ_ZIP_LDH_CRC32_OFS = 14, - MZ_ZIP_LDH_COMPRESSED_SIZE_OFS = 18, - MZ_ZIP_LDH_DECOMPRESSED_SIZE_OFS = 22, - MZ_ZIP_LDH_FILENAME_LEN_OFS = 26, - MZ_ZIP_LDH_EXTRA_LEN_OFS = 28, - MZ_ZIP_LDH_BIT_FLAG_HAS_LOCATOR = 1 << 3, - - /* End of central directory offsets */ - MZ_ZIP_ECDH_SIG_OFS = 0, - MZ_ZIP_ECDH_NUM_THIS_DISK_OFS = 4, - MZ_ZIP_ECDH_NUM_DISK_CDIR_OFS = 6, - MZ_ZIP_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS = 8, - MZ_ZIP_ECDH_CDIR_TOTAL_ENTRIES_OFS = 10, - MZ_ZIP_ECDH_CDIR_SIZE_OFS = 12, - MZ_ZIP_ECDH_CDIR_OFS_OFS = 16, - MZ_ZIP_ECDH_COMMENT_SIZE_OFS = 20, - - /* ZIP64 End of central directory locator offsets */ - MZ_ZIP64_ECDL_SIG_OFS = 0, /* 4 bytes */ - MZ_ZIP64_ECDL_NUM_DISK_CDIR_OFS = 4, /* 4 bytes */ - MZ_ZIP64_ECDL_REL_OFS_TO_ZIP64_ECDR_OFS = 8, /* 8 bytes */ - MZ_ZIP64_ECDL_TOTAL_NUMBER_OF_DISKS_OFS = 16, /* 4 bytes */ - - /* ZIP64 End of central directory header offsets */ - MZ_ZIP64_ECDH_SIG_OFS = 0, /* 4 bytes */ - MZ_ZIP64_ECDH_SIZE_OF_RECORD_OFS = 4, /* 8 bytes */ - MZ_ZIP64_ECDH_VERSION_MADE_BY_OFS = 12, /* 2 bytes */ - MZ_ZIP64_ECDH_VERSION_NEEDED_OFS = 14, /* 2 bytes */ - MZ_ZIP64_ECDH_NUM_THIS_DISK_OFS = 16, /* 4 bytes */ - MZ_ZIP64_ECDH_NUM_DISK_CDIR_OFS = 20, /* 4 bytes */ - MZ_ZIP64_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS = 24, /* 8 bytes */ - MZ_ZIP64_ECDH_CDIR_TOTAL_ENTRIES_OFS = 32, /* 8 bytes */ - MZ_ZIP64_ECDH_CDIR_SIZE_OFS = 40, /* 8 bytes */ - MZ_ZIP64_ECDH_CDIR_OFS_OFS = 48, /* 8 bytes */ - MZ_ZIP_VERSION_MADE_BY_DOS_FILESYSTEM_ID = 0, - MZ_ZIP_DOS_DIR_ATTRIBUTE_BITFLAG = 0x10, - MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_IS_ENCRYPTED = 1, - MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_COMPRESSED_PATCH_FLAG = 32, - MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_USES_STRONG_ENCRYPTION = 64, - MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_LOCAL_DIR_IS_MASKED = 8192, - MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_UTF8 = 1 << 11 -}; - -typedef struct -{ - void *m_p; - size_t m_size, m_capacity; - mz_uint m_element_size; -} mz_zip_array; - -struct mz_zip_internal_state_tag -{ - mz_zip_array m_central_dir; - mz_zip_array m_central_dir_offsets; - mz_zip_array m_sorted_central_dir_offsets; - - /* The flags passed in when the archive is initially opened. */ - uint32_t m_init_flags; - - /* MZ_TRUE if the archive has a zip64 end of central directory headers, etc. */ - mz_bool m_zip64; - - /* MZ_TRUE if we found zip64 extended info in the central directory (m_zip64 will also be slammed to true too, even if we didn't find a zip64 end of central dir header, etc.) */ - mz_bool m_zip64_has_extended_info_fields; - - /* These fields are used by the file, FILE, memory, and memory/heap read/write helpers. */ - MZ_FILE *m_pFile; - mz_uint64 m_file_archive_start_ofs; - - void *m_pMem; - size_t m_mem_size; - size_t m_mem_capacity; -}; - -#define MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(array_ptr, element_size) (array_ptr)->m_element_size = element_size - -#if defined(DEBUG) || defined(_DEBUG) || defined(NDEBUG) -static MZ_FORCEINLINE mz_uint mz_zip_array_range_check(const mz_zip_array *pArray, mz_uint index) -{ - MZ_ASSERT(index < pArray->m_size); - return index; -} -#define MZ_ZIP_ARRAY_ELEMENT(array_ptr, element_type, index) ((element_type *)((array_ptr)->m_p))[mz_zip_array_range_check(array_ptr, index)] -#else -#define MZ_ZIP_ARRAY_ELEMENT(array_ptr, element_type, index) ((element_type *)((array_ptr)->m_p))[index] -#endif - -static MZ_FORCEINLINE void mz_zip_array_init(mz_zip_array *pArray, mz_uint32 element_size) -{ - memset(pArray, 0, sizeof(mz_zip_array)); - pArray->m_element_size = element_size; -} - -static MZ_FORCEINLINE void mz_zip_array_clear(mz_zip_archive *pZip, mz_zip_array *pArray) -{ - pZip->m_pFree(pZip->m_pAlloc_opaque, pArray->m_p); - memset(pArray, 0, sizeof(mz_zip_array)); -} - -static mz_bool mz_zip_array_ensure_capacity(mz_zip_archive *pZip, mz_zip_array *pArray, size_t min_new_capacity, mz_uint growing) -{ - void *pNew_p; - size_t new_capacity = min_new_capacity; - MZ_ASSERT(pArray->m_element_size); - if (pArray->m_capacity >= min_new_capacity) - return MZ_TRUE; - if (growing) - { - new_capacity = MZ_MAX(1, pArray->m_capacity); - while (new_capacity < min_new_capacity) - new_capacity *= 2; - } - if (NULL == (pNew_p = pZip->m_pRealloc(pZip->m_pAlloc_opaque, pArray->m_p, pArray->m_element_size, new_capacity))) - return MZ_FALSE; - pArray->m_p = pNew_p; - pArray->m_capacity = new_capacity; - return MZ_TRUE; -} - -static MZ_FORCEINLINE mz_bool mz_zip_array_reserve(mz_zip_archive *pZip, mz_zip_array *pArray, size_t new_capacity, mz_uint growing) -{ - if (new_capacity > pArray->m_capacity) - { - if (!mz_zip_array_ensure_capacity(pZip, pArray, new_capacity, growing)) - return MZ_FALSE; - } - return MZ_TRUE; -} - -static MZ_FORCEINLINE mz_bool mz_zip_array_resize(mz_zip_archive *pZip, mz_zip_array *pArray, size_t new_size, mz_uint growing) -{ - if (new_size > pArray->m_capacity) - { - if (!mz_zip_array_ensure_capacity(pZip, pArray, new_size, growing)) - return MZ_FALSE; - } - pArray->m_size = new_size; - return MZ_TRUE; -} - -static MZ_FORCEINLINE mz_bool mz_zip_array_ensure_room(mz_zip_archive *pZip, mz_zip_array *pArray, size_t n) -{ - return mz_zip_array_reserve(pZip, pArray, pArray->m_size + n, MZ_TRUE); -} - -static MZ_FORCEINLINE mz_bool mz_zip_array_push_back(mz_zip_archive *pZip, mz_zip_array *pArray, const void *pElements, size_t n) -{ - size_t orig_size = pArray->m_size; - if (!mz_zip_array_resize(pZip, pArray, orig_size + n, MZ_TRUE)) - return MZ_FALSE; - memcpy((mz_uint8 *)pArray->m_p + orig_size * pArray->m_element_size, pElements, n * pArray->m_element_size); - return MZ_TRUE; -} - -#ifndef MINIZ_NO_TIME -static MZ_TIME_T mz_zip_dos_to_time_t(int dos_time, int dos_date) -{ - struct tm tm; - memset(&tm, 0, sizeof(tm)); - tm.tm_isdst = -1; - tm.tm_year = ((dos_date >> 9) & 127) + 1980 - 1900; - tm.tm_mon = ((dos_date >> 5) & 15) - 1; - tm.tm_mday = dos_date & 31; - tm.tm_hour = (dos_time >> 11) & 31; - tm.tm_min = (dos_time >> 5) & 63; - tm.tm_sec = (dos_time << 1) & 62; - return mktime(&tm); -} - -#ifndef MINIZ_NO_ARCHIVE_WRITING_APIS -static void mz_zip_time_t_to_dos_time(MZ_TIME_T time, mz_uint16 *pDOS_time, mz_uint16 *pDOS_date) -{ -#ifdef _MSC_VER - struct tm tm_struct; - struct tm *tm = &tm_struct; - errno_t err = localtime_s(tm, &time); - if (err) - { - *pDOS_date = 0; - *pDOS_time = 0; - return; - } -#else - struct tm *tm = localtime(&time); -#endif /* #ifdef _MSC_VER */ - - *pDOS_time = (mz_uint16)(((tm->tm_hour) << 11) + ((tm->tm_min) << 5) + ((tm->tm_sec) >> 1)); - *pDOS_date = (mz_uint16)(((tm->tm_year + 1900 - 1980) << 9) + ((tm->tm_mon + 1) << 5) + tm->tm_mday); -} -#endif /* MINIZ_NO_ARCHIVE_WRITING_APIS */ - -#ifndef MINIZ_NO_STDIO -#ifndef MINIZ_NO_ARCHIVE_WRITING_APIS -static mz_bool mz_zip_get_file_modified_time(const char *pFilename, MZ_TIME_T *pTime) -{ - struct MZ_FILE_STAT_STRUCT file_stat; - - /* On Linux with x86 glibc, this call will fail on large files (I think >= 0x80000000 bytes) unless you compiled with _LARGEFILE64_SOURCE. Argh. */ - if (MZ_FILE_STAT(pFilename, &file_stat) != 0) - return MZ_FALSE; - - *pTime = file_stat.st_mtime; - - return MZ_TRUE; -} -#endif /* #ifndef MINIZ_NO_ARCHIVE_WRITING_APIS*/ - -static mz_bool mz_zip_set_file_times(const char *pFilename, MZ_TIME_T access_time, MZ_TIME_T modified_time) -{ - struct utimbuf t; - - memset(&t, 0, sizeof(t)); - t.actime = access_time; - t.modtime = modified_time; - - return !utime(pFilename, &t); -} -#endif /* #ifndef MINIZ_NO_STDIO */ -#endif /* #ifndef MINIZ_NO_TIME */ - -static MZ_FORCEINLINE mz_bool mz_zip_set_error(mz_zip_archive *pZip, mz_zip_error err_num) -{ - if (pZip) - pZip->m_last_error = err_num; - return MZ_FALSE; -} - -static mz_bool mz_zip_reader_init_internal(mz_zip_archive *pZip, mz_uint flags) -{ - (void)flags; - if ((!pZip) || (pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_INVALID)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - - if (!pZip->m_pAlloc) - pZip->m_pAlloc = miniz_def_alloc_func; - if (!pZip->m_pFree) - pZip->m_pFree = miniz_def_free_func; - if (!pZip->m_pRealloc) - pZip->m_pRealloc = miniz_def_realloc_func; - - pZip->m_archive_size = 0; - pZip->m_central_directory_file_ofs = 0; - pZip->m_total_files = 0; - pZip->m_last_error = MZ_ZIP_NO_ERROR; - - if (NULL == (pZip->m_pState = (mz_zip_internal_state *)pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, sizeof(mz_zip_internal_state)))) - return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - - memset(pZip->m_pState, 0, sizeof(mz_zip_internal_state)); - MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_central_dir, sizeof(mz_uint8)); - MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_central_dir_offsets, sizeof(mz_uint32)); - MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_sorted_central_dir_offsets, sizeof(mz_uint32)); - pZip->m_pState->m_init_flags = flags; - pZip->m_pState->m_zip64 = MZ_FALSE; - pZip->m_pState->m_zip64_has_extended_info_fields = MZ_FALSE; - - pZip->m_zip_mode = MZ_ZIP_MODE_READING; - - return MZ_TRUE; -} - -static MZ_FORCEINLINE mz_bool mz_zip_reader_filename_less(const mz_zip_array *pCentral_dir_array, const mz_zip_array *pCentral_dir_offsets, mz_uint l_index, mz_uint r_index) -{ - const mz_uint8 *pL = &MZ_ZIP_ARRAY_ELEMENT(pCentral_dir_array, mz_uint8, MZ_ZIP_ARRAY_ELEMENT(pCentral_dir_offsets, mz_uint32, l_index)), *pE; - const mz_uint8 *pR = &MZ_ZIP_ARRAY_ELEMENT(pCentral_dir_array, mz_uint8, MZ_ZIP_ARRAY_ELEMENT(pCentral_dir_offsets, mz_uint32, r_index)); - mz_uint l_len = MZ_READ_LE16(pL + MZ_ZIP_CDH_FILENAME_LEN_OFS), r_len = MZ_READ_LE16(pR + MZ_ZIP_CDH_FILENAME_LEN_OFS); - mz_uint8 l = 0, r = 0; - pL += MZ_ZIP_CENTRAL_DIR_HEADER_SIZE; - pR += MZ_ZIP_CENTRAL_DIR_HEADER_SIZE; - pE = pL + MZ_MIN(l_len, r_len); - while (pL < pE) - { - if ((l = MZ_TOLOWER(*pL)) != (r = MZ_TOLOWER(*pR))) - break; - pL++; - pR++; - } - return (pL == pE) ? (l_len < r_len) : (l < r); -} - -#define MZ_SWAP_UINT32(a, b) \ - do \ - { \ - mz_uint32 t = a; \ - a = b; \ - b = t; \ - } \ - MZ_MACRO_END - -/* Heap sort of lowercased filenames, used to help accelerate plain central directory searches by mz_zip_reader_locate_file(). (Could also use qsort(), but it could allocate memory.) */ -static void mz_zip_reader_sort_central_dir_offsets_by_filename(mz_zip_archive *pZip) -{ - mz_zip_internal_state *pState = pZip->m_pState; - const mz_zip_array *pCentral_dir_offsets = &pState->m_central_dir_offsets; - const mz_zip_array *pCentral_dir = &pState->m_central_dir; - mz_uint32 *pIndices; - mz_uint32 start, end; - const mz_uint32 size = pZip->m_total_files; - - if (size <= 1U) - return; - - pIndices = &MZ_ZIP_ARRAY_ELEMENT(&pState->m_sorted_central_dir_offsets, mz_uint32, 0); - - start = (size - 2U) >> 1U; - for (;;) - { - mz_uint64 child, root = start; - for (;;) - { - if ((child = (root << 1U) + 1U) >= size) - break; - child += (((child + 1U) < size) && (mz_zip_reader_filename_less(pCentral_dir, pCentral_dir_offsets, pIndices[child], pIndices[child + 1U]))); - if (!mz_zip_reader_filename_less(pCentral_dir, pCentral_dir_offsets, pIndices[root], pIndices[child])) - break; - MZ_SWAP_UINT32(pIndices[root], pIndices[child]); - root = child; - } - if (!start) - break; - start--; - } - - end = size - 1; - while (end > 0) - { - mz_uint64 child, root = 0; - MZ_SWAP_UINT32(pIndices[end], pIndices[0]); - for (;;) - { - if ((child = (root << 1U) + 1U) >= end) - break; - child += (((child + 1U) < end) && mz_zip_reader_filename_less(pCentral_dir, pCentral_dir_offsets, pIndices[child], pIndices[child + 1U])); - if (!mz_zip_reader_filename_less(pCentral_dir, pCentral_dir_offsets, pIndices[root], pIndices[child])) - break; - MZ_SWAP_UINT32(pIndices[root], pIndices[child]); - root = child; - } - end--; - } -} - -static mz_bool mz_zip_reader_locate_header_sig(mz_zip_archive *pZip, mz_uint32 record_sig, mz_uint32 record_size, mz_int64 *pOfs) -{ - mz_int64 cur_file_ofs; - mz_uint32 buf_u32[4096 / sizeof(mz_uint32)]; - mz_uint8 *pBuf = (mz_uint8 *)buf_u32; - - /* Basic sanity checks - reject files which are too small */ - if (pZip->m_archive_size < record_size) - return MZ_FALSE; - - /* Find the record by scanning the file from the end towards the beginning. */ - cur_file_ofs = MZ_MAX((mz_int64)pZip->m_archive_size - (mz_int64)sizeof(buf_u32), 0); - for (;;) - { - int i, n = (int)MZ_MIN(sizeof(buf_u32), pZip->m_archive_size - cur_file_ofs); - - if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf, n) != (mz_uint)n) - return MZ_FALSE; - - for (i = n - 4; i >= 0; --i) - { - mz_uint s = MZ_READ_LE32(pBuf + i); - if (s == record_sig) - { - if ((pZip->m_archive_size - (cur_file_ofs + i)) >= record_size) - break; - } - } - - if (i >= 0) - { - cur_file_ofs += i; - break; - } - - /* Give up if we've searched the entire file, or we've gone back "too far" (~64kb) */ - if ((!cur_file_ofs) || ((pZip->m_archive_size - cur_file_ofs) >= (MZ_UINT16_MAX + record_size))) - return MZ_FALSE; - - cur_file_ofs = MZ_MAX(cur_file_ofs - (sizeof(buf_u32) - 3), 0); - } - - *pOfs = cur_file_ofs; - return MZ_TRUE; -} - -static mz_bool mz_zip_reader_read_central_dir(mz_zip_archive *pZip, mz_uint flags) -{ - mz_uint cdir_size = 0, cdir_entries_on_this_disk = 0, num_this_disk = 0, cdir_disk_index = 0; - mz_uint64 cdir_ofs = 0; - mz_int64 cur_file_ofs = 0; - const mz_uint8 *p; - - mz_uint32 buf_u32[4096 / sizeof(mz_uint32)]; - mz_uint8 *pBuf = (mz_uint8 *)buf_u32; - mz_bool sort_central_dir = ((flags & MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY) == 0); - mz_uint32 zip64_end_of_central_dir_locator_u32[(MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE + sizeof(mz_uint32) - 1) / sizeof(mz_uint32)]; - mz_uint8 *pZip64_locator = (mz_uint8 *)zip64_end_of_central_dir_locator_u32; - - mz_uint32 zip64_end_of_central_dir_header_u32[(MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE + sizeof(mz_uint32) - 1) / sizeof(mz_uint32)]; - mz_uint8 *pZip64_end_of_central_dir = (mz_uint8 *)zip64_end_of_central_dir_header_u32; - - mz_uint64 zip64_end_of_central_dir_ofs = 0; - - /* Basic sanity checks - reject files which are too small, and check the first 4 bytes of the file to make sure a local header is there. */ - if (pZip->m_archive_size < MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) - return mz_zip_set_error(pZip, MZ_ZIP_NOT_AN_ARCHIVE); - - if (!mz_zip_reader_locate_header_sig(pZip, MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG, MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE, &cur_file_ofs)) - return mz_zip_set_error(pZip, MZ_ZIP_FAILED_FINDING_CENTRAL_DIR); - - /* Read and verify the end of central directory record. */ - if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf, MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) != MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) - return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); - - if (MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_SIG_OFS) != MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG) - return mz_zip_set_error(pZip, MZ_ZIP_NOT_AN_ARCHIVE); - - if (cur_file_ofs >= (MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE + MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE)) - { - if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs - MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE, pZip64_locator, MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE) == MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE) - { - if (MZ_READ_LE32(pZip64_locator + MZ_ZIP64_ECDL_SIG_OFS) == MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIG) - { - zip64_end_of_central_dir_ofs = MZ_READ_LE64(pZip64_locator + MZ_ZIP64_ECDL_REL_OFS_TO_ZIP64_ECDR_OFS); - if (zip64_end_of_central_dir_ofs > (pZip->m_archive_size - MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE)) - return mz_zip_set_error(pZip, MZ_ZIP_NOT_AN_ARCHIVE); - - if (pZip->m_pRead(pZip->m_pIO_opaque, zip64_end_of_central_dir_ofs, pZip64_end_of_central_dir, MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE) == MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE) - { - if (MZ_READ_LE32(pZip64_end_of_central_dir + MZ_ZIP64_ECDH_SIG_OFS) == MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIG) - { - pZip->m_pState->m_zip64 = MZ_TRUE; - } - } - } - } - } - - pZip->m_total_files = MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_CDIR_TOTAL_ENTRIES_OFS); - cdir_entries_on_this_disk = MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS); - num_this_disk = MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_NUM_THIS_DISK_OFS); - cdir_disk_index = MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_NUM_DISK_CDIR_OFS); - cdir_size = MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_CDIR_SIZE_OFS); - cdir_ofs = MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_CDIR_OFS_OFS); - - if (pZip->m_pState->m_zip64) - { - mz_uint32 zip64_total_num_of_disks = MZ_READ_LE32(pZip64_locator + MZ_ZIP64_ECDL_TOTAL_NUMBER_OF_DISKS_OFS); - mz_uint64 zip64_cdir_total_entries = MZ_READ_LE64(pZip64_end_of_central_dir + MZ_ZIP64_ECDH_CDIR_TOTAL_ENTRIES_OFS); - mz_uint64 zip64_cdir_total_entries_on_this_disk = MZ_READ_LE64(pZip64_end_of_central_dir + MZ_ZIP64_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS); - mz_uint64 zip64_size_of_end_of_central_dir_record = MZ_READ_LE64(pZip64_end_of_central_dir + MZ_ZIP64_ECDH_SIZE_OF_RECORD_OFS); - mz_uint64 zip64_size_of_central_directory = MZ_READ_LE64(pZip64_end_of_central_dir + MZ_ZIP64_ECDH_CDIR_SIZE_OFS); - - if (zip64_size_of_end_of_central_dir_record < (MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE - 12)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - - if (zip64_total_num_of_disks != 1U) - return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_MULTIDISK); - - /* Check for miniz's practical limits */ - if (zip64_cdir_total_entries > MZ_UINT32_MAX) - return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); - - pZip->m_total_files = (mz_uint32)zip64_cdir_total_entries; - - if (zip64_cdir_total_entries_on_this_disk > MZ_UINT32_MAX) - return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); - - cdir_entries_on_this_disk = (mz_uint32)zip64_cdir_total_entries_on_this_disk; - - /* Check for miniz's current practical limits (sorry, this should be enough for millions of files) */ - if (zip64_size_of_central_directory > MZ_UINT32_MAX) - return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_CDIR_SIZE); - - cdir_size = (mz_uint32)zip64_size_of_central_directory; - - num_this_disk = MZ_READ_LE32(pZip64_end_of_central_dir + MZ_ZIP64_ECDH_NUM_THIS_DISK_OFS); - - cdir_disk_index = MZ_READ_LE32(pZip64_end_of_central_dir + MZ_ZIP64_ECDH_NUM_DISK_CDIR_OFS); - - cdir_ofs = MZ_READ_LE64(pZip64_end_of_central_dir + MZ_ZIP64_ECDH_CDIR_OFS_OFS); - } - - if (pZip->m_total_files != cdir_entries_on_this_disk) - return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_MULTIDISK); - - if (((num_this_disk | cdir_disk_index) != 0) && ((num_this_disk != 1) || (cdir_disk_index != 1))) - return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_MULTIDISK); - - if (cdir_size < pZip->m_total_files * MZ_ZIP_CENTRAL_DIR_HEADER_SIZE) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - - if ((cdir_ofs + (mz_uint64)cdir_size) > pZip->m_archive_size) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - - pZip->m_central_directory_file_ofs = cdir_ofs; - - if (pZip->m_total_files) - { - mz_uint i, n; - /* Read the entire central directory into a heap block, and allocate another heap block to hold the unsorted central dir file record offsets, and possibly another to hold the sorted indices. */ - if ((!mz_zip_array_resize(pZip, &pZip->m_pState->m_central_dir, cdir_size, MZ_FALSE)) || - (!mz_zip_array_resize(pZip, &pZip->m_pState->m_central_dir_offsets, pZip->m_total_files, MZ_FALSE))) - return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - - if (sort_central_dir) - { - if (!mz_zip_array_resize(pZip, &pZip->m_pState->m_sorted_central_dir_offsets, pZip->m_total_files, MZ_FALSE)) - return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - } - - if (pZip->m_pRead(pZip->m_pIO_opaque, cdir_ofs, pZip->m_pState->m_central_dir.m_p, cdir_size) != cdir_size) - return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); - - /* Now create an index into the central directory file records, do some basic sanity checking on each record */ - p = (const mz_uint8 *)pZip->m_pState->m_central_dir.m_p; - for (n = cdir_size, i = 0; i < pZip->m_total_files; ++i) - { - mz_uint total_header_size, disk_index, bit_flags, filename_size, ext_data_size; - mz_uint64 comp_size, decomp_size, local_header_ofs; - - if ((n < MZ_ZIP_CENTRAL_DIR_HEADER_SIZE) || (MZ_READ_LE32(p) != MZ_ZIP_CENTRAL_DIR_HEADER_SIG)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - - MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir_offsets, mz_uint32, i) = (mz_uint32)(p - (const mz_uint8 *)pZip->m_pState->m_central_dir.m_p); - - if (sort_central_dir) - MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_sorted_central_dir_offsets, mz_uint32, i) = i; - - comp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_COMPRESSED_SIZE_OFS); - decomp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS); - local_header_ofs = MZ_READ_LE32(p + MZ_ZIP_CDH_LOCAL_HEADER_OFS); - filename_size = MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS); - ext_data_size = MZ_READ_LE16(p + MZ_ZIP_CDH_EXTRA_LEN_OFS); - - if ((!pZip->m_pState->m_zip64_has_extended_info_fields) && - (ext_data_size) && - (MZ_MAX(MZ_MAX(comp_size, decomp_size), local_header_ofs) == MZ_UINT32_MAX)) - { - /* Attempt to find zip64 extended information field in the entry's extra data */ - mz_uint32 extra_size_remaining = ext_data_size; - - if (extra_size_remaining) - { - const mz_uint8 *pExtra_data; - void* buf = NULL; - - if (MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + filename_size + ext_data_size > n) - { - buf = MZ_MALLOC(ext_data_size); - if(buf==NULL) - return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - - if (pZip->m_pRead(pZip->m_pIO_opaque, cdir_ofs + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + filename_size, buf, ext_data_size) != ext_data_size) - { - MZ_FREE(buf); - return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); - } - - pExtra_data = buf; - } - else - { - pExtra_data = p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + filename_size; - } - - do - { - mz_uint32 field_id; - mz_uint32 field_data_size; - - if (extra_size_remaining < (sizeof(mz_uint16) * 2)) - { - MZ_FREE(buf); - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - } - - field_id = MZ_READ_LE16(pExtra_data); - field_data_size = MZ_READ_LE16(pExtra_data + sizeof(mz_uint16)); - - if ((field_data_size + sizeof(mz_uint16) * 2) > extra_size_remaining) - { - MZ_FREE(buf); - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - } - - if (field_id == MZ_ZIP64_EXTENDED_INFORMATION_FIELD_HEADER_ID) - { - /* Ok, the archive didn't have any zip64 headers but it uses a zip64 extended information field so mark it as zip64 anyway (this can occur with infozip's zip util when it reads compresses files from stdin). */ - pZip->m_pState->m_zip64 = MZ_TRUE; - pZip->m_pState->m_zip64_has_extended_info_fields = MZ_TRUE; - break; - } - - pExtra_data += sizeof(mz_uint16) * 2 + field_data_size; - extra_size_remaining = extra_size_remaining - sizeof(mz_uint16) * 2 - field_data_size; - } while (extra_size_remaining); - - MZ_FREE(buf); - } - } - - /* I've seen archives that aren't marked as zip64 that uses zip64 ext data, argh */ - if ((comp_size != MZ_UINT32_MAX) && (decomp_size != MZ_UINT32_MAX)) - { - if (((!MZ_READ_LE32(p + MZ_ZIP_CDH_METHOD_OFS)) && (decomp_size != comp_size)) || (decomp_size && !comp_size)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - } - - disk_index = MZ_READ_LE16(p + MZ_ZIP_CDH_DISK_START_OFS); - if ((disk_index == MZ_UINT16_MAX) || ((disk_index != num_this_disk) && (disk_index != 1))) - return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_MULTIDISK); - - if (comp_size != MZ_UINT32_MAX) - { - if (((mz_uint64)MZ_READ_LE32(p + MZ_ZIP_CDH_LOCAL_HEADER_OFS) + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + comp_size) > pZip->m_archive_size) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - } - - bit_flags = MZ_READ_LE16(p + MZ_ZIP_CDH_BIT_FLAG_OFS); - if (bit_flags & MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_LOCAL_DIR_IS_MASKED) - return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_ENCRYPTION); - - if ((total_header_size = MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS) + MZ_READ_LE16(p + MZ_ZIP_CDH_EXTRA_LEN_OFS) + MZ_READ_LE16(p + MZ_ZIP_CDH_COMMENT_LEN_OFS)) > n) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - - n -= total_header_size; - p += total_header_size; - } - } - - if (sort_central_dir) - mz_zip_reader_sort_central_dir_offsets_by_filename(pZip); - - return MZ_TRUE; -} - -void mz_zip_zero_struct(mz_zip_archive *pZip) -{ - if (pZip) - MZ_CLEAR_OBJ(*pZip); -} - -static mz_bool mz_zip_reader_end_internal(mz_zip_archive *pZip, mz_bool set_last_error) -{ - mz_bool status = MZ_TRUE; - - if (!pZip) - return MZ_FALSE; - - if ((!pZip->m_pState) || (!pZip->m_pAlloc) || (!pZip->m_pFree) || (pZip->m_zip_mode != MZ_ZIP_MODE_READING)) - { - if (set_last_error) - pZip->m_last_error = MZ_ZIP_INVALID_PARAMETER; - - return MZ_FALSE; - } - - if (pZip->m_pState) - { - mz_zip_internal_state *pState = pZip->m_pState; - pZip->m_pState = NULL; - - mz_zip_array_clear(pZip, &pState->m_central_dir); - mz_zip_array_clear(pZip, &pState->m_central_dir_offsets); - mz_zip_array_clear(pZip, &pState->m_sorted_central_dir_offsets); - -#ifndef MINIZ_NO_STDIO - if (pState->m_pFile) - { - if (pZip->m_zip_type == MZ_ZIP_TYPE_FILE) - { - if (MZ_FCLOSE(pState->m_pFile) == EOF) - { - if (set_last_error) - pZip->m_last_error = MZ_ZIP_FILE_CLOSE_FAILED; - status = MZ_FALSE; - } - } - pState->m_pFile = NULL; - } -#endif /* #ifndef MINIZ_NO_STDIO */ - - pZip->m_pFree(pZip->m_pAlloc_opaque, pState); - } - pZip->m_zip_mode = MZ_ZIP_MODE_INVALID; - - return status; -} - -mz_bool mz_zip_reader_end(mz_zip_archive *pZip) -{ - return mz_zip_reader_end_internal(pZip, MZ_TRUE); -} -mz_bool mz_zip_reader_init(mz_zip_archive *pZip, mz_uint64 size, mz_uint flags) -{ - if ((!pZip) || (!pZip->m_pRead)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - - if (!mz_zip_reader_init_internal(pZip, flags)) - return MZ_FALSE; - - pZip->m_zip_type = MZ_ZIP_TYPE_USER; - pZip->m_archive_size = size; - - if (!mz_zip_reader_read_central_dir(pZip, flags)) - { - mz_zip_reader_end_internal(pZip, MZ_FALSE); - return MZ_FALSE; - } - - return MZ_TRUE; -} - -static size_t mz_zip_mem_read_func(void *pOpaque, mz_uint64 file_ofs, void *pBuf, size_t n) -{ - mz_zip_archive *pZip = (mz_zip_archive *)pOpaque; - size_t s = (file_ofs >= pZip->m_archive_size) ? 0 : (size_t)MZ_MIN(pZip->m_archive_size - file_ofs, n); - memcpy(pBuf, (const mz_uint8 *)pZip->m_pState->m_pMem + file_ofs, s); - return s; -} - -mz_bool mz_zip_reader_init_mem(mz_zip_archive *pZip, const void *pMem, size_t size, mz_uint flags) -{ - if (!pMem) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - - if (size < MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) - return mz_zip_set_error(pZip, MZ_ZIP_NOT_AN_ARCHIVE); - - if (!mz_zip_reader_init_internal(pZip, flags)) - return MZ_FALSE; - - pZip->m_zip_type = MZ_ZIP_TYPE_MEMORY; - pZip->m_archive_size = size; - pZip->m_pRead = mz_zip_mem_read_func; - pZip->m_pIO_opaque = pZip; - pZip->m_pNeeds_keepalive = NULL; - -#ifdef __cplusplus - pZip->m_pState->m_pMem = const_cast(pMem); -#else - pZip->m_pState->m_pMem = (void *)pMem; -#endif - - pZip->m_pState->m_mem_size = size; - - if (!mz_zip_reader_read_central_dir(pZip, flags)) - { - mz_zip_reader_end_internal(pZip, MZ_FALSE); - return MZ_FALSE; - } - - return MZ_TRUE; -} - -#ifndef MINIZ_NO_STDIO -static size_t mz_zip_file_read_func(void *pOpaque, mz_uint64 file_ofs, void *pBuf, size_t n) -{ - mz_zip_archive *pZip = (mz_zip_archive *)pOpaque; - mz_int64 cur_ofs = MZ_FTELL64(pZip->m_pState->m_pFile); - - file_ofs += pZip->m_pState->m_file_archive_start_ofs; - - if (((mz_int64)file_ofs < 0) || (((cur_ofs != (mz_int64)file_ofs)) && (MZ_FSEEK64(pZip->m_pState->m_pFile, (mz_int64)file_ofs, SEEK_SET)))) - return 0; - - return MZ_FREAD(pBuf, 1, n, pZip->m_pState->m_pFile); -} - -mz_bool mz_zip_reader_init_file(mz_zip_archive *pZip, const char *pFilename, mz_uint32 flags) -{ - return mz_zip_reader_init_file_v2(pZip, pFilename, flags, 0, 0); -} - -mz_bool mz_zip_reader_init_file_v2(mz_zip_archive *pZip, const char *pFilename, mz_uint flags, mz_uint64 file_start_ofs, mz_uint64 archive_size) -{ - mz_uint64 file_size; - MZ_FILE *pFile; - - if ((!pZip) || (!pFilename) || ((archive_size) && (archive_size < MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE))) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - - pFile = MZ_FOPEN(pFilename, "rb"); - if (!pFile) - return mz_zip_set_error(pZip, MZ_ZIP_FILE_OPEN_FAILED); - - file_size = archive_size; - if (!file_size) - { - if (MZ_FSEEK64(pFile, 0, SEEK_END)) - { - MZ_FCLOSE(pFile); - return mz_zip_set_error(pZip, MZ_ZIP_FILE_SEEK_FAILED); - } - - file_size = MZ_FTELL64(pFile); - } - - /* TODO: Better sanity check archive_size and the # of actual remaining bytes */ - - if (file_size < MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) - { - MZ_FCLOSE(pFile); - return mz_zip_set_error(pZip, MZ_ZIP_NOT_AN_ARCHIVE); - } - - if (!mz_zip_reader_init_internal(pZip, flags)) - { - MZ_FCLOSE(pFile); - return MZ_FALSE; - } - - pZip->m_zip_type = MZ_ZIP_TYPE_FILE; - pZip->m_pRead = mz_zip_file_read_func; - pZip->m_pIO_opaque = pZip; - pZip->m_pState->m_pFile = pFile; - pZip->m_archive_size = file_size; - pZip->m_pState->m_file_archive_start_ofs = file_start_ofs; - - if (!mz_zip_reader_read_central_dir(pZip, flags)) - { - mz_zip_reader_end_internal(pZip, MZ_FALSE); - return MZ_FALSE; - } - - return MZ_TRUE; -} - -mz_bool mz_zip_reader_init_cfile(mz_zip_archive *pZip, MZ_FILE *pFile, mz_uint64 archive_size, mz_uint flags) -{ - mz_uint64 cur_file_ofs; - - if ((!pZip) || (!pFile)) - return mz_zip_set_error(pZip, MZ_ZIP_FILE_OPEN_FAILED); - - cur_file_ofs = MZ_FTELL64(pFile); - - if (!archive_size) - { - if (MZ_FSEEK64(pFile, 0, SEEK_END)) - return mz_zip_set_error(pZip, MZ_ZIP_FILE_SEEK_FAILED); - - archive_size = MZ_FTELL64(pFile) - cur_file_ofs; - - if (archive_size < MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) - return mz_zip_set_error(pZip, MZ_ZIP_NOT_AN_ARCHIVE); - } - - if (!mz_zip_reader_init_internal(pZip, flags)) - return MZ_FALSE; - - pZip->m_zip_type = MZ_ZIP_TYPE_CFILE; - pZip->m_pRead = mz_zip_file_read_func; - - pZip->m_pIO_opaque = pZip; - pZip->m_pState->m_pFile = pFile; - pZip->m_archive_size = archive_size; - pZip->m_pState->m_file_archive_start_ofs = cur_file_ofs; - - if (!mz_zip_reader_read_central_dir(pZip, flags)) - { - mz_zip_reader_end_internal(pZip, MZ_FALSE); - return MZ_FALSE; - } - - return MZ_TRUE; -} - -#endif /* #ifndef MINIZ_NO_STDIO */ - -static MZ_FORCEINLINE const mz_uint8 *mz_zip_get_cdh(mz_zip_archive *pZip, mz_uint file_index) -{ - if ((!pZip) || (!pZip->m_pState) || (file_index >= pZip->m_total_files)) - return NULL; - return &MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir, mz_uint8, MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir_offsets, mz_uint32, file_index)); -} - -mz_bool mz_zip_reader_is_file_encrypted(mz_zip_archive *pZip, mz_uint file_index) -{ - mz_uint m_bit_flag; - const mz_uint8 *p = mz_zip_get_cdh(pZip, file_index); - if (!p) - { - mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - return MZ_FALSE; - } - - m_bit_flag = MZ_READ_LE16(p + MZ_ZIP_CDH_BIT_FLAG_OFS); - return (m_bit_flag & (MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_IS_ENCRYPTED | MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_USES_STRONG_ENCRYPTION)) != 0; -} - -mz_bool mz_zip_reader_is_file_supported(mz_zip_archive *pZip, mz_uint file_index) -{ - mz_uint bit_flag; - mz_uint method; - - const mz_uint8 *p = mz_zip_get_cdh(pZip, file_index); - if (!p) - { - mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - return MZ_FALSE; - } - - method = MZ_READ_LE16(p + MZ_ZIP_CDH_METHOD_OFS); - bit_flag = MZ_READ_LE16(p + MZ_ZIP_CDH_BIT_FLAG_OFS); - - if ((method != 0) && (method != MZ_DEFLATED)) - { - mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_METHOD); - return MZ_FALSE; - } - - if (bit_flag & (MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_IS_ENCRYPTED | MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_USES_STRONG_ENCRYPTION)) - { - mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_ENCRYPTION); - return MZ_FALSE; - } - - if (bit_flag & MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_COMPRESSED_PATCH_FLAG) - { - mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_FEATURE); - return MZ_FALSE; - } - - return MZ_TRUE; -} - -mz_bool mz_zip_reader_is_file_a_directory(mz_zip_archive *pZip, mz_uint file_index) -{ - mz_uint filename_len, attribute_mapping_id, external_attr; - const mz_uint8 *p = mz_zip_get_cdh(pZip, file_index); - if (!p) - { - mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - return MZ_FALSE; - } - - filename_len = MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS); - if (filename_len) - { - if (*(p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + filename_len - 1) == '/') - return MZ_TRUE; - } - - /* Bugfix: This code was also checking if the internal attribute was non-zero, which wasn't correct. */ - /* Most/all zip writers (hopefully) set DOS file/directory attributes in the low 16-bits, so check for the DOS directory flag and ignore the source OS ID in the created by field. */ - /* FIXME: Remove this check? Is it necessary - we already check the filename. */ - attribute_mapping_id = MZ_READ_LE16(p + MZ_ZIP_CDH_VERSION_MADE_BY_OFS) >> 8; - (void)attribute_mapping_id; - - external_attr = MZ_READ_LE32(p + MZ_ZIP_CDH_EXTERNAL_ATTR_OFS); - if ((external_attr & MZ_ZIP_DOS_DIR_ATTRIBUTE_BITFLAG) != 0) - { - return MZ_TRUE; - } - - return MZ_FALSE; -} - -static mz_bool mz_zip_file_stat_internal(mz_zip_archive *pZip, mz_uint file_index, const mz_uint8 *pCentral_dir_header, mz_zip_archive_file_stat *pStat, mz_bool *pFound_zip64_extra_data) -{ - mz_uint n; - const mz_uint8 *p = pCentral_dir_header; - - if (pFound_zip64_extra_data) - *pFound_zip64_extra_data = MZ_FALSE; - - if ((!p) || (!pStat)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - - /* Extract fields from the central directory record. */ - pStat->m_file_index = file_index; - pStat->m_central_dir_ofs = MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir_offsets, mz_uint32, file_index); - pStat->m_version_made_by = MZ_READ_LE16(p + MZ_ZIP_CDH_VERSION_MADE_BY_OFS); - pStat->m_version_needed = MZ_READ_LE16(p + MZ_ZIP_CDH_VERSION_NEEDED_OFS); - pStat->m_bit_flag = MZ_READ_LE16(p + MZ_ZIP_CDH_BIT_FLAG_OFS); - pStat->m_method = MZ_READ_LE16(p + MZ_ZIP_CDH_METHOD_OFS); -#ifndef MINIZ_NO_TIME - pStat->m_time = mz_zip_dos_to_time_t(MZ_READ_LE16(p + MZ_ZIP_CDH_FILE_TIME_OFS), MZ_READ_LE16(p + MZ_ZIP_CDH_FILE_DATE_OFS)); -#endif - pStat->m_crc32 = MZ_READ_LE32(p + MZ_ZIP_CDH_CRC32_OFS); - pStat->m_comp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_COMPRESSED_SIZE_OFS); - pStat->m_uncomp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS); - pStat->m_internal_attr = MZ_READ_LE16(p + MZ_ZIP_CDH_INTERNAL_ATTR_OFS); - pStat->m_external_attr = MZ_READ_LE32(p + MZ_ZIP_CDH_EXTERNAL_ATTR_OFS); - pStat->m_local_header_ofs = MZ_READ_LE32(p + MZ_ZIP_CDH_LOCAL_HEADER_OFS); - - /* Copy as much of the filename and comment as possible. */ - n = MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS); - n = MZ_MIN(n, MZ_ZIP_MAX_ARCHIVE_FILENAME_SIZE - 1); - memcpy(pStat->m_filename, p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE, n); - pStat->m_filename[n] = '\0'; - - n = MZ_READ_LE16(p + MZ_ZIP_CDH_COMMENT_LEN_OFS); - n = MZ_MIN(n, MZ_ZIP_MAX_ARCHIVE_FILE_COMMENT_SIZE - 1); - pStat->m_comment_size = n; - memcpy(pStat->m_comment, p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS) + MZ_READ_LE16(p + MZ_ZIP_CDH_EXTRA_LEN_OFS), n); - pStat->m_comment[n] = '\0'; - - /* Set some flags for convienance */ - pStat->m_is_directory = mz_zip_reader_is_file_a_directory(pZip, file_index); - pStat->m_is_encrypted = mz_zip_reader_is_file_encrypted(pZip, file_index); - pStat->m_is_supported = mz_zip_reader_is_file_supported(pZip, file_index); - - /* See if we need to read any zip64 extended information fields. */ - /* Confusingly, these zip64 fields can be present even on non-zip64 archives (Debian zip on a huge files from stdin piped to stdout creates them). */ - if (MZ_MAX(MZ_MAX(pStat->m_comp_size, pStat->m_uncomp_size), pStat->m_local_header_ofs) == MZ_UINT32_MAX) - { - /* Attempt to find zip64 extended information field in the entry's extra data */ - mz_uint32 extra_size_remaining = MZ_READ_LE16(p + MZ_ZIP_CDH_EXTRA_LEN_OFS); - - if (extra_size_remaining) - { - const mz_uint8 *pExtra_data = p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS); - - do - { - mz_uint32 field_id; - mz_uint32 field_data_size; - - if (extra_size_remaining < (sizeof(mz_uint16) * 2)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - - field_id = MZ_READ_LE16(pExtra_data); - field_data_size = MZ_READ_LE16(pExtra_data + sizeof(mz_uint16)); - - if ((field_data_size + sizeof(mz_uint16) * 2) > extra_size_remaining) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - - if (field_id == MZ_ZIP64_EXTENDED_INFORMATION_FIELD_HEADER_ID) - { - const mz_uint8 *pField_data = pExtra_data + sizeof(mz_uint16) * 2; - mz_uint32 field_data_remaining = field_data_size; - - if (pFound_zip64_extra_data) - *pFound_zip64_extra_data = MZ_TRUE; - - if (pStat->m_uncomp_size == MZ_UINT32_MAX) - { - if (field_data_remaining < sizeof(mz_uint64)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - - pStat->m_uncomp_size = MZ_READ_LE64(pField_data); - pField_data += sizeof(mz_uint64); - field_data_remaining -= sizeof(mz_uint64); - } - - if (pStat->m_comp_size == MZ_UINT32_MAX) - { - if (field_data_remaining < sizeof(mz_uint64)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - - pStat->m_comp_size = MZ_READ_LE64(pField_data); - pField_data += sizeof(mz_uint64); - field_data_remaining -= sizeof(mz_uint64); - } - - if (pStat->m_local_header_ofs == MZ_UINT32_MAX) - { - if (field_data_remaining < sizeof(mz_uint64)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - - pStat->m_local_header_ofs = MZ_READ_LE64(pField_data); - pField_data += sizeof(mz_uint64); - field_data_remaining -= sizeof(mz_uint64); - } - - break; - } - - pExtra_data += sizeof(mz_uint16) * 2 + field_data_size; - extra_size_remaining = extra_size_remaining - sizeof(mz_uint16) * 2 - field_data_size; - } while (extra_size_remaining); - } - } - - return MZ_TRUE; -} - -static MZ_FORCEINLINE mz_bool mz_zip_string_equal(const char *pA, const char *pB, mz_uint len, mz_uint flags) -{ - mz_uint i; - if (flags & MZ_ZIP_FLAG_CASE_SENSITIVE) - return 0 == memcmp(pA, pB, len); - for (i = 0; i < len; ++i) - if (MZ_TOLOWER(pA[i]) != MZ_TOLOWER(pB[i])) - return MZ_FALSE; - return MZ_TRUE; -} - -static MZ_FORCEINLINE int mz_zip_filename_compare(const mz_zip_array *pCentral_dir_array, const mz_zip_array *pCentral_dir_offsets, mz_uint l_index, const char *pR, mz_uint r_len) -{ - const mz_uint8 *pL = &MZ_ZIP_ARRAY_ELEMENT(pCentral_dir_array, mz_uint8, MZ_ZIP_ARRAY_ELEMENT(pCentral_dir_offsets, mz_uint32, l_index)), *pE; - mz_uint l_len = MZ_READ_LE16(pL + MZ_ZIP_CDH_FILENAME_LEN_OFS); - mz_uint8 l = 0, r = 0; - pL += MZ_ZIP_CENTRAL_DIR_HEADER_SIZE; - pE = pL + MZ_MIN(l_len, r_len); - while (pL < pE) - { - if ((l = MZ_TOLOWER(*pL)) != (r = MZ_TOLOWER(*pR))) - break; - pL++; - pR++; - } - return (pL == pE) ? (int)(l_len - r_len) : (l - r); -} - -static mz_bool mz_zip_locate_file_binary_search(mz_zip_archive *pZip, const char *pFilename, mz_uint32 *pIndex) -{ - mz_zip_internal_state *pState = pZip->m_pState; - const mz_zip_array *pCentral_dir_offsets = &pState->m_central_dir_offsets; - const mz_zip_array *pCentral_dir = &pState->m_central_dir; - mz_uint32 *pIndices = &MZ_ZIP_ARRAY_ELEMENT(&pState->m_sorted_central_dir_offsets, mz_uint32, 0); - const uint32_t size = pZip->m_total_files; - const mz_uint filename_len = (mz_uint)strlen(pFilename); - - if (pIndex) - *pIndex = 0; - - if (size) - { - /* yes I could use uint32_t's, but then we would have to add some special case checks in the loop, argh, and */ - /* honestly the major expense here on 32-bit CPU's will still be the filename compare */ - mz_int64 l = 0, h = (mz_int64)size - 1; - - while (l <= h) - { - mz_int64 m = l + ((h - l) >> 1); - uint32_t file_index = pIndices[(uint32_t)m]; - - int comp = mz_zip_filename_compare(pCentral_dir, pCentral_dir_offsets, file_index, pFilename, filename_len); - if (!comp) - { - if (pIndex) - *pIndex = file_index; - return MZ_TRUE; - } - else if (comp < 0) - l = m + 1; - else - h = m - 1; - } - } - - return mz_zip_set_error(pZip, MZ_ZIP_FILE_NOT_FOUND); -} - -int mz_zip_reader_locate_file(mz_zip_archive *pZip, const char *pName, const char *pComment, mz_uint flags) -{ - mz_uint32 index; - if (!mz_zip_reader_locate_file_v2(pZip, pName, pComment, flags, &index)) - return -1; - else - return (int)index; -} - -mz_bool mz_zip_reader_locate_file_v2(mz_zip_archive *pZip, const char *pName, const char *pComment, mz_uint flags, mz_uint32 *pIndex) -{ - mz_uint file_index; - size_t name_len, comment_len; - - if (pIndex) - *pIndex = 0; - - if ((!pZip) || (!pZip->m_pState) || (!pName)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - - /* See if we can use a binary search */ - if (((pZip->m_pState->m_init_flags & MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY) == 0) && - (pZip->m_zip_mode == MZ_ZIP_MODE_READING) && - ((flags & (MZ_ZIP_FLAG_IGNORE_PATH | MZ_ZIP_FLAG_CASE_SENSITIVE)) == 0) && (!pComment) && (pZip->m_pState->m_sorted_central_dir_offsets.m_size)) - { - return mz_zip_locate_file_binary_search(pZip, pName, pIndex); - } - - /* Locate the entry by scanning the entire central directory */ - name_len = strlen(pName); - if (name_len > MZ_UINT16_MAX) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - - comment_len = pComment ? strlen(pComment) : 0; - if (comment_len > MZ_UINT16_MAX) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - - for (file_index = 0; file_index < pZip->m_total_files; file_index++) - { - const mz_uint8 *pHeader = &MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir, mz_uint8, MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir_offsets, mz_uint32, file_index)); - mz_uint filename_len = MZ_READ_LE16(pHeader + MZ_ZIP_CDH_FILENAME_LEN_OFS); - const char *pFilename = (const char *)pHeader + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE; - if (filename_len < name_len) - continue; - if (comment_len) - { - mz_uint file_extra_len = MZ_READ_LE16(pHeader + MZ_ZIP_CDH_EXTRA_LEN_OFS), file_comment_len = MZ_READ_LE16(pHeader + MZ_ZIP_CDH_COMMENT_LEN_OFS); - const char *pFile_comment = pFilename + filename_len + file_extra_len; - if ((file_comment_len != comment_len) || (!mz_zip_string_equal(pComment, pFile_comment, file_comment_len, flags))) - continue; - } - if ((flags & MZ_ZIP_FLAG_IGNORE_PATH) && (filename_len)) - { - int ofs = filename_len - 1; - do - { - if ((pFilename[ofs] == '/') || (pFilename[ofs] == '\\') || (pFilename[ofs] == ':')) - break; - } while (--ofs >= 0); - ofs++; - pFilename += ofs; - filename_len -= ofs; - } - if ((filename_len == name_len) && (mz_zip_string_equal(pName, pFilename, filename_len, flags))) - { - if (pIndex) - *pIndex = file_index; - return MZ_TRUE; - } - } - - return mz_zip_set_error(pZip, MZ_ZIP_FILE_NOT_FOUND); -} - -mz_bool mz_zip_reader_extract_to_mem_no_alloc(mz_zip_archive *pZip, mz_uint file_index, void *pBuf, size_t buf_size, mz_uint flags, void *pUser_read_buf, size_t user_read_buf_size) -{ - int status = TINFL_STATUS_DONE; - mz_uint64 needed_size, cur_file_ofs, comp_remaining, out_buf_ofs = 0, read_buf_size, read_buf_ofs = 0, read_buf_avail; - mz_zip_archive_file_stat file_stat; - void *pRead_buf; - mz_uint32 local_header_u32[(MZ_ZIP_LOCAL_DIR_HEADER_SIZE + sizeof(mz_uint32) - 1) / sizeof(mz_uint32)]; - mz_uint8 *pLocal_header = (mz_uint8 *)local_header_u32; - tinfl_decompressor inflator; - - if ((!pZip) || (!pZip->m_pState) || ((buf_size) && (!pBuf)) || ((user_read_buf_size) && (!pUser_read_buf)) || (!pZip->m_pRead)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - - if (!mz_zip_reader_file_stat(pZip, file_index, &file_stat)) - return MZ_FALSE; - - /* A directory or zero length file */ - if ((file_stat.m_is_directory) || (!file_stat.m_comp_size)) - return MZ_TRUE; - - /* Encryption and patch files are not supported. */ - if (file_stat.m_bit_flag & (MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_IS_ENCRYPTED | MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_USES_STRONG_ENCRYPTION | MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_COMPRESSED_PATCH_FLAG)) - return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_ENCRYPTION); - - /* This function only supports decompressing stored and deflate. */ - if ((!(flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) && (file_stat.m_method != 0) && (file_stat.m_method != MZ_DEFLATED)) - return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_METHOD); - - /* Ensure supplied output buffer is large enough. */ - needed_size = (flags & MZ_ZIP_FLAG_COMPRESSED_DATA) ? file_stat.m_comp_size : file_stat.m_uncomp_size; - if (buf_size < needed_size) - return mz_zip_set_error(pZip, MZ_ZIP_BUF_TOO_SMALL); - - /* Read and parse the local directory entry. */ - cur_file_ofs = file_stat.m_local_header_ofs; - if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pLocal_header, MZ_ZIP_LOCAL_DIR_HEADER_SIZE) != MZ_ZIP_LOCAL_DIR_HEADER_SIZE) - return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); - - if (MZ_READ_LE32(pLocal_header) != MZ_ZIP_LOCAL_DIR_HEADER_SIG) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - - cur_file_ofs += MZ_ZIP_LOCAL_DIR_HEADER_SIZE + MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_FILENAME_LEN_OFS) + MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_EXTRA_LEN_OFS); - if ((cur_file_ofs + file_stat.m_comp_size) > pZip->m_archive_size) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - - if ((flags & MZ_ZIP_FLAG_COMPRESSED_DATA) || (!file_stat.m_method)) - { - /* The file is stored or the caller has requested the compressed data. */ - if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf, (size_t)needed_size) != needed_size) - return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); - -#ifndef MINIZ_DISABLE_ZIP_READER_CRC32_CHECKS - if ((flags & MZ_ZIP_FLAG_COMPRESSED_DATA) == 0) - { - if (mz_crc32(MZ_CRC32_INIT, (const mz_uint8 *)pBuf, (size_t)file_stat.m_uncomp_size) != file_stat.m_crc32) - return mz_zip_set_error(pZip, MZ_ZIP_CRC_CHECK_FAILED); - } -#endif - - return MZ_TRUE; - } - - /* Decompress the file either directly from memory or from a file input buffer. */ - tinfl_init(&inflator); - - if (pZip->m_pState->m_pMem) - { - /* Read directly from the archive in memory. */ - pRead_buf = (mz_uint8 *)pZip->m_pState->m_pMem + cur_file_ofs; - read_buf_size = read_buf_avail = file_stat.m_comp_size; - comp_remaining = 0; - } - else if (pUser_read_buf) - { - /* Use a user provided read buffer. */ - if (!user_read_buf_size) - return MZ_FALSE; - pRead_buf = (mz_uint8 *)pUser_read_buf; - read_buf_size = user_read_buf_size; - read_buf_avail = 0; - comp_remaining = file_stat.m_comp_size; - } - else - { - /* Temporarily allocate a read buffer. */ - read_buf_size = MZ_MIN(file_stat.m_comp_size, (mz_uint64)MZ_ZIP_MAX_IO_BUF_SIZE); - if (((sizeof(size_t) == sizeof(mz_uint32))) && (read_buf_size > 0x7FFFFFFF)) - return mz_zip_set_error(pZip, MZ_ZIP_INTERNAL_ERROR); - - if (NULL == (pRead_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, (size_t)read_buf_size))) - return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - - read_buf_avail = 0; - comp_remaining = file_stat.m_comp_size; - } - - do - { - /* The size_t cast here should be OK because we've verified that the output buffer is >= file_stat.m_uncomp_size above */ - size_t in_buf_size, out_buf_size = (size_t)(file_stat.m_uncomp_size - out_buf_ofs); - if ((!read_buf_avail) && (!pZip->m_pState->m_pMem)) - { - read_buf_avail = MZ_MIN(read_buf_size, comp_remaining); - if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pRead_buf, (size_t)read_buf_avail) != read_buf_avail) - { - status = TINFL_STATUS_FAILED; - mz_zip_set_error(pZip, MZ_ZIP_DECOMPRESSION_FAILED); - break; - } - cur_file_ofs += read_buf_avail; - comp_remaining -= read_buf_avail; - read_buf_ofs = 0; - } - in_buf_size = (size_t)read_buf_avail; - status = tinfl_decompress(&inflator, (mz_uint8 *)pRead_buf + read_buf_ofs, &in_buf_size, (mz_uint8 *)pBuf, (mz_uint8 *)pBuf + out_buf_ofs, &out_buf_size, TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF | (comp_remaining ? TINFL_FLAG_HAS_MORE_INPUT : 0)); - read_buf_avail -= in_buf_size; - read_buf_ofs += in_buf_size; - out_buf_ofs += out_buf_size; - } while (status == TINFL_STATUS_NEEDS_MORE_INPUT); - - if (status == TINFL_STATUS_DONE) - { - /* Make sure the entire file was decompressed, and check its CRC. */ - if (out_buf_ofs != file_stat.m_uncomp_size) - { - mz_zip_set_error(pZip, MZ_ZIP_UNEXPECTED_DECOMPRESSED_SIZE); - status = TINFL_STATUS_FAILED; - } -#ifndef MINIZ_DISABLE_ZIP_READER_CRC32_CHECKS - else if (mz_crc32(MZ_CRC32_INIT, (const mz_uint8 *)pBuf, (size_t)file_stat.m_uncomp_size) != file_stat.m_crc32) - { - mz_zip_set_error(pZip, MZ_ZIP_CRC_CHECK_FAILED); - status = TINFL_STATUS_FAILED; - } -#endif - } - - if ((!pZip->m_pState->m_pMem) && (!pUser_read_buf)) - pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); - - return status == TINFL_STATUS_DONE; -} - -mz_bool mz_zip_reader_extract_file_to_mem_no_alloc(mz_zip_archive *pZip, const char *pFilename, void *pBuf, size_t buf_size, mz_uint flags, void *pUser_read_buf, size_t user_read_buf_size) -{ - mz_uint32 file_index; - if (!mz_zip_reader_locate_file_v2(pZip, pFilename, NULL, flags, &file_index)) - return MZ_FALSE; - return mz_zip_reader_extract_to_mem_no_alloc(pZip, file_index, pBuf, buf_size, flags, pUser_read_buf, user_read_buf_size); -} - -mz_bool mz_zip_reader_extract_to_mem(mz_zip_archive *pZip, mz_uint file_index, void *pBuf, size_t buf_size, mz_uint flags) -{ - return mz_zip_reader_extract_to_mem_no_alloc(pZip, file_index, pBuf, buf_size, flags, NULL, 0); -} - -mz_bool mz_zip_reader_extract_file_to_mem(mz_zip_archive *pZip, const char *pFilename, void *pBuf, size_t buf_size, mz_uint flags) -{ - return mz_zip_reader_extract_file_to_mem_no_alloc(pZip, pFilename, pBuf, buf_size, flags, NULL, 0); -} - -void *mz_zip_reader_extract_to_heap(mz_zip_archive *pZip, mz_uint file_index, size_t *pSize, mz_uint flags) -{ - mz_uint64 comp_size, uncomp_size, alloc_size; - const mz_uint8 *p = mz_zip_get_cdh(pZip, file_index); - void *pBuf; - - if (pSize) - *pSize = 0; - - if (!p) - { - mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - return NULL; - } - - comp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_COMPRESSED_SIZE_OFS); - uncomp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS); - - alloc_size = (flags & MZ_ZIP_FLAG_COMPRESSED_DATA) ? comp_size : uncomp_size; - if (((sizeof(size_t) == sizeof(mz_uint32))) && (alloc_size > 0x7FFFFFFF)) - { - mz_zip_set_error(pZip, MZ_ZIP_INTERNAL_ERROR); - return NULL; - } - - if (NULL == (pBuf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, (size_t)alloc_size))) - { - mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - return NULL; - } - - if (!mz_zip_reader_extract_to_mem(pZip, file_index, pBuf, (size_t)alloc_size, flags)) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); - return NULL; - } - - if (pSize) - *pSize = (size_t)alloc_size; - return pBuf; -} - -void *mz_zip_reader_extract_file_to_heap(mz_zip_archive *pZip, const char *pFilename, size_t *pSize, mz_uint flags) -{ - mz_uint32 file_index; - if (!mz_zip_reader_locate_file_v2(pZip, pFilename, NULL, flags, &file_index)) - { - if (pSize) - *pSize = 0; - return MZ_FALSE; - } - return mz_zip_reader_extract_to_heap(pZip, file_index, pSize, flags); -} - -mz_bool mz_zip_reader_extract_to_callback(mz_zip_archive *pZip, mz_uint file_index, mz_file_write_func pCallback, void *pOpaque, mz_uint flags) -{ - int status = TINFL_STATUS_DONE; - mz_uint file_crc32 = MZ_CRC32_INIT; - mz_uint64 read_buf_size, read_buf_ofs = 0, read_buf_avail, comp_remaining, out_buf_ofs = 0, cur_file_ofs; - mz_zip_archive_file_stat file_stat; - void *pRead_buf = NULL; - void *pWrite_buf = NULL; - mz_uint32 local_header_u32[(MZ_ZIP_LOCAL_DIR_HEADER_SIZE + sizeof(mz_uint32) - 1) / sizeof(mz_uint32)]; - mz_uint8 *pLocal_header = (mz_uint8 *)local_header_u32; - - if ((!pZip) || (!pZip->m_pState) || (!pCallback) || (!pZip->m_pRead)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - - if (!mz_zip_reader_file_stat(pZip, file_index, &file_stat)) - return MZ_FALSE; - - /* A directory or zero length file */ - if ((file_stat.m_is_directory) || (!file_stat.m_comp_size)) - return MZ_TRUE; - - /* Encryption and patch files are not supported. */ - if (file_stat.m_bit_flag & (MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_IS_ENCRYPTED | MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_USES_STRONG_ENCRYPTION | MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_COMPRESSED_PATCH_FLAG)) - return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_ENCRYPTION); - - /* This function only supports decompressing stored and deflate. */ - if ((!(flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) && (file_stat.m_method != 0) && (file_stat.m_method != MZ_DEFLATED)) - return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_METHOD); - - /* Read and do some minimal validation of the local directory entry (this doesn't crack the zip64 stuff, which we already have from the central dir) */ - cur_file_ofs = file_stat.m_local_header_ofs; - if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pLocal_header, MZ_ZIP_LOCAL_DIR_HEADER_SIZE) != MZ_ZIP_LOCAL_DIR_HEADER_SIZE) - return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); - - if (MZ_READ_LE32(pLocal_header) != MZ_ZIP_LOCAL_DIR_HEADER_SIG) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - - cur_file_ofs += MZ_ZIP_LOCAL_DIR_HEADER_SIZE + MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_FILENAME_LEN_OFS) + MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_EXTRA_LEN_OFS); - if ((cur_file_ofs + file_stat.m_comp_size) > pZip->m_archive_size) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - - /* Decompress the file either directly from memory or from a file input buffer. */ - if (pZip->m_pState->m_pMem) - { - pRead_buf = (mz_uint8 *)pZip->m_pState->m_pMem + cur_file_ofs; - read_buf_size = read_buf_avail = file_stat.m_comp_size; - comp_remaining = 0; - } - else - { - read_buf_size = MZ_MIN(file_stat.m_comp_size, (mz_uint64)MZ_ZIP_MAX_IO_BUF_SIZE); - if (NULL == (pRead_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, (size_t)read_buf_size))) - return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - - read_buf_avail = 0; - comp_remaining = file_stat.m_comp_size; - } - - if ((flags & MZ_ZIP_FLAG_COMPRESSED_DATA) || (!file_stat.m_method)) - { - /* The file is stored or the caller has requested the compressed data. */ - if (pZip->m_pState->m_pMem) - { - if (((sizeof(size_t) == sizeof(mz_uint32))) && (file_stat.m_comp_size > MZ_UINT32_MAX)) - return mz_zip_set_error(pZip, MZ_ZIP_INTERNAL_ERROR); - - if (pCallback(pOpaque, out_buf_ofs, pRead_buf, (size_t)file_stat.m_comp_size) != file_stat.m_comp_size) - { - mz_zip_set_error(pZip, MZ_ZIP_WRITE_CALLBACK_FAILED); - status = TINFL_STATUS_FAILED; - } - else if (!(flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) - { -#ifndef MINIZ_DISABLE_ZIP_READER_CRC32_CHECKS - file_crc32 = (mz_uint32)mz_crc32(file_crc32, (const mz_uint8 *)pRead_buf, (size_t)file_stat.m_comp_size); -#endif - } - - cur_file_ofs += file_stat.m_comp_size; - out_buf_ofs += file_stat.m_comp_size; - comp_remaining = 0; - } - else - { - while (comp_remaining) - { - read_buf_avail = MZ_MIN(read_buf_size, comp_remaining); - if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pRead_buf, (size_t)read_buf_avail) != read_buf_avail) - { - mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); - status = TINFL_STATUS_FAILED; - break; - } - -#ifndef MINIZ_DISABLE_ZIP_READER_CRC32_CHECKS - if (!(flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) - { - file_crc32 = (mz_uint32)mz_crc32(file_crc32, (const mz_uint8 *)pRead_buf, (size_t)read_buf_avail); - } -#endif - - if (pCallback(pOpaque, out_buf_ofs, pRead_buf, (size_t)read_buf_avail) != read_buf_avail) - { - mz_zip_set_error(pZip, MZ_ZIP_WRITE_CALLBACK_FAILED); - status = TINFL_STATUS_FAILED; - break; - } - - cur_file_ofs += read_buf_avail; - out_buf_ofs += read_buf_avail; - comp_remaining -= read_buf_avail; - } - } - } - else - { - tinfl_decompressor inflator; - tinfl_init(&inflator); - - if (NULL == (pWrite_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, TINFL_LZ_DICT_SIZE))) - { - mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - status = TINFL_STATUS_FAILED; - } - else - { - do - { - mz_uint8 *pWrite_buf_cur = (mz_uint8 *)pWrite_buf + (out_buf_ofs & (TINFL_LZ_DICT_SIZE - 1)); - size_t in_buf_size, out_buf_size = TINFL_LZ_DICT_SIZE - (out_buf_ofs & (TINFL_LZ_DICT_SIZE - 1)); - if ((!read_buf_avail) && (!pZip->m_pState->m_pMem)) - { - read_buf_avail = MZ_MIN(read_buf_size, comp_remaining); - if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pRead_buf, (size_t)read_buf_avail) != read_buf_avail) - { - mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); - status = TINFL_STATUS_FAILED; - break; - } - cur_file_ofs += read_buf_avail; - comp_remaining -= read_buf_avail; - read_buf_ofs = 0; - } - - in_buf_size = (size_t)read_buf_avail; - status = tinfl_decompress(&inflator, (const mz_uint8 *)pRead_buf + read_buf_ofs, &in_buf_size, (mz_uint8 *)pWrite_buf, pWrite_buf_cur, &out_buf_size, comp_remaining ? TINFL_FLAG_HAS_MORE_INPUT : 0); - read_buf_avail -= in_buf_size; - read_buf_ofs += in_buf_size; - - if (out_buf_size) - { - if (pCallback(pOpaque, out_buf_ofs, pWrite_buf_cur, out_buf_size) != out_buf_size) - { - mz_zip_set_error(pZip, MZ_ZIP_WRITE_CALLBACK_FAILED); - status = TINFL_STATUS_FAILED; - break; - } - -#ifndef MINIZ_DISABLE_ZIP_READER_CRC32_CHECKS - file_crc32 = (mz_uint32)mz_crc32(file_crc32, pWrite_buf_cur, out_buf_size); -#endif - if ((out_buf_ofs += out_buf_size) > file_stat.m_uncomp_size) - { - mz_zip_set_error(pZip, MZ_ZIP_DECOMPRESSION_FAILED); - status = TINFL_STATUS_FAILED; - break; - } - } - } while ((status == TINFL_STATUS_NEEDS_MORE_INPUT) || (status == TINFL_STATUS_HAS_MORE_OUTPUT)); - } - } - - if ((status == TINFL_STATUS_DONE) && (!(flags & MZ_ZIP_FLAG_COMPRESSED_DATA))) - { - /* Make sure the entire file was decompressed, and check its CRC. */ - if (out_buf_ofs != file_stat.m_uncomp_size) - { - mz_zip_set_error(pZip, MZ_ZIP_UNEXPECTED_DECOMPRESSED_SIZE); - status = TINFL_STATUS_FAILED; - } -#ifndef MINIZ_DISABLE_ZIP_READER_CRC32_CHECKS - else if (file_crc32 != file_stat.m_crc32) - { - mz_zip_set_error(pZip, MZ_ZIP_DECOMPRESSION_FAILED); - status = TINFL_STATUS_FAILED; - } -#endif - } - - if (!pZip->m_pState->m_pMem) - pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); - - if (pWrite_buf) - pZip->m_pFree(pZip->m_pAlloc_opaque, pWrite_buf); - - return status == TINFL_STATUS_DONE; -} - -mz_bool mz_zip_reader_extract_file_to_callback(mz_zip_archive *pZip, const char *pFilename, mz_file_write_func pCallback, void *pOpaque, mz_uint flags) -{ - mz_uint32 file_index; - if (!mz_zip_reader_locate_file_v2(pZip, pFilename, NULL, flags, &file_index)) - return MZ_FALSE; - - return mz_zip_reader_extract_to_callback(pZip, file_index, pCallback, pOpaque, flags); -} - -mz_zip_reader_extract_iter_state* mz_zip_reader_extract_iter_new(mz_zip_archive *pZip, mz_uint file_index, mz_uint flags) -{ - mz_zip_reader_extract_iter_state *pState; - mz_uint32 local_header_u32[(MZ_ZIP_LOCAL_DIR_HEADER_SIZE + sizeof(mz_uint32) - 1) / sizeof(mz_uint32)]; - mz_uint8 *pLocal_header = (mz_uint8 *)local_header_u32; - - /* Argument sanity check */ - if ((!pZip) || (!pZip->m_pState)) - return NULL; - - /* Allocate an iterator status structure */ - pState = (mz_zip_reader_extract_iter_state*)pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, sizeof(mz_zip_reader_extract_iter_state)); - if (!pState) - { - mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - return NULL; - } - - /* Fetch file details */ - if (!mz_zip_reader_file_stat(pZip, file_index, &pState->file_stat)) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pState); - return NULL; - } - - /* Encryption and patch files are not supported. */ - if (pState->file_stat.m_bit_flag & (MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_IS_ENCRYPTED | MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_USES_STRONG_ENCRYPTION | MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_COMPRESSED_PATCH_FLAG)) - { - mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_ENCRYPTION); - pZip->m_pFree(pZip->m_pAlloc_opaque, pState); - return NULL; - } - - /* This function only supports decompressing stored and deflate. */ - if ((!(flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) && (pState->file_stat.m_method != 0) && (pState->file_stat.m_method != MZ_DEFLATED)) - { - mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_METHOD); - pZip->m_pFree(pZip->m_pAlloc_opaque, pState); - return NULL; - } - - /* Init state - save args */ - pState->pZip = pZip; - pState->flags = flags; - - /* Init state - reset variables to defaults */ - pState->status = TINFL_STATUS_DONE; -#ifndef MINIZ_DISABLE_ZIP_READER_CRC32_CHECKS - pState->file_crc32 = MZ_CRC32_INIT; -#endif - pState->read_buf_ofs = 0; - pState->out_buf_ofs = 0; - pState->pRead_buf = NULL; - pState->pWrite_buf = NULL; - pState->out_blk_remain = 0; - - /* Read and parse the local directory entry. */ - pState->cur_file_ofs = pState->file_stat.m_local_header_ofs; - if (pZip->m_pRead(pZip->m_pIO_opaque, pState->cur_file_ofs, pLocal_header, MZ_ZIP_LOCAL_DIR_HEADER_SIZE) != MZ_ZIP_LOCAL_DIR_HEADER_SIZE) - { - mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); - pZip->m_pFree(pZip->m_pAlloc_opaque, pState); - return NULL; - } - - if (MZ_READ_LE32(pLocal_header) != MZ_ZIP_LOCAL_DIR_HEADER_SIG) - { - mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - pZip->m_pFree(pZip->m_pAlloc_opaque, pState); - return NULL; - } - - pState->cur_file_ofs += MZ_ZIP_LOCAL_DIR_HEADER_SIZE + MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_FILENAME_LEN_OFS) + MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_EXTRA_LEN_OFS); - if ((pState->cur_file_ofs + pState->file_stat.m_comp_size) > pZip->m_archive_size) - { - mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - pZip->m_pFree(pZip->m_pAlloc_opaque, pState); - return NULL; - } - - /* Decompress the file either directly from memory or from a file input buffer. */ - if (pZip->m_pState->m_pMem) - { - pState->pRead_buf = (mz_uint8 *)pZip->m_pState->m_pMem + pState->cur_file_ofs; - pState->read_buf_size = pState->read_buf_avail = pState->file_stat.m_comp_size; - pState->comp_remaining = pState->file_stat.m_comp_size; - } - else - { - if (!((flags & MZ_ZIP_FLAG_COMPRESSED_DATA) || (!pState->file_stat.m_method))) - { - /* Decompression required, therefore intermediate read buffer required */ - pState->read_buf_size = MZ_MIN(pState->file_stat.m_comp_size, MZ_ZIP_MAX_IO_BUF_SIZE); - if (NULL == (pState->pRead_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, (size_t)pState->read_buf_size))) - { - mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - pZip->m_pFree(pZip->m_pAlloc_opaque, pState); - return NULL; - } - } - else - { - /* Decompression not required - we will be reading directly into user buffer, no temp buf required */ - pState->read_buf_size = 0; - } - pState->read_buf_avail = 0; - pState->comp_remaining = pState->file_stat.m_comp_size; - } - - if (!((flags & MZ_ZIP_FLAG_COMPRESSED_DATA) || (!pState->file_stat.m_method))) - { - /* Decompression required, init decompressor */ - tinfl_init( &pState->inflator ); - - /* Allocate write buffer */ - if (NULL == (pState->pWrite_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, TINFL_LZ_DICT_SIZE))) - { - mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - if (pState->pRead_buf) - pZip->m_pFree(pZip->m_pAlloc_opaque, pState->pRead_buf); - pZip->m_pFree(pZip->m_pAlloc_opaque, pState); - return NULL; - } - } - - return pState; -} - -mz_zip_reader_extract_iter_state* mz_zip_reader_extract_file_iter_new(mz_zip_archive *pZip, const char *pFilename, mz_uint flags) -{ - mz_uint32 file_index; - - /* Locate file index by name */ - if (!mz_zip_reader_locate_file_v2(pZip, pFilename, NULL, flags, &file_index)) - return NULL; - - /* Construct iterator */ - return mz_zip_reader_extract_iter_new(pZip, file_index, flags); -} - -size_t mz_zip_reader_extract_iter_read(mz_zip_reader_extract_iter_state* pState, void* pvBuf, size_t buf_size) -{ - size_t copied_to_caller = 0; - - /* Argument sanity check */ - if ((!pState) || (!pState->pZip) || (!pState->pZip->m_pState) || (!pvBuf)) - return 0; - - if ((pState->flags & MZ_ZIP_FLAG_COMPRESSED_DATA) || (!pState->file_stat.m_method)) - { - /* The file is stored or the caller has requested the compressed data, calc amount to return. */ - copied_to_caller = MZ_MIN( buf_size, pState->comp_remaining ); - - /* Zip is in memory....or requires reading from a file? */ - if (pState->pZip->m_pState->m_pMem) - { - /* Copy data to caller's buffer */ - memcpy( pvBuf, pState->pRead_buf, copied_to_caller ); - pState->pRead_buf = ((mz_uint8*)pState->pRead_buf) + copied_to_caller; - } - else - { - /* Read directly into caller's buffer */ - if (pState->pZip->m_pRead(pState->pZip->m_pIO_opaque, pState->cur_file_ofs, pvBuf, copied_to_caller) != copied_to_caller) - { - /* Failed to read all that was asked for, flag failure and alert user */ - mz_zip_set_error(pState->pZip, MZ_ZIP_FILE_READ_FAILED); - pState->status = TINFL_STATUS_FAILED; - copied_to_caller = 0; - } - } - -#ifndef MINIZ_DISABLE_ZIP_READER_CRC32_CHECKS - /* Compute CRC if not returning compressed data only */ - if (!(pState->flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) - pState->file_crc32 = (mz_uint32)mz_crc32(pState->file_crc32, (const mz_uint8 *)pvBuf, copied_to_caller); -#endif - - /* Advance offsets, dec counters */ - pState->cur_file_ofs += copied_to_caller; - pState->out_buf_ofs += copied_to_caller; - pState->comp_remaining -= copied_to_caller; - } - else - { - do - { - /* Calc ptr to write buffer - given current output pos and block size */ - mz_uint8 *pWrite_buf_cur = (mz_uint8 *)pState->pWrite_buf + (pState->out_buf_ofs & (TINFL_LZ_DICT_SIZE - 1)); - - /* Calc max output size - given current output pos and block size */ - size_t in_buf_size, out_buf_size = TINFL_LZ_DICT_SIZE - (pState->out_buf_ofs & (TINFL_LZ_DICT_SIZE - 1)); - - if (!pState->out_blk_remain) - { - /* Read more data from file if none available (and reading from file) */ - if ((!pState->read_buf_avail) && (!pState->pZip->m_pState->m_pMem)) - { - /* Calc read size */ - pState->read_buf_avail = MZ_MIN(pState->read_buf_size, pState->comp_remaining); - if (pState->pZip->m_pRead(pState->pZip->m_pIO_opaque, pState->cur_file_ofs, pState->pRead_buf, (size_t)pState->read_buf_avail) != pState->read_buf_avail) - { - mz_zip_set_error(pState->pZip, MZ_ZIP_FILE_READ_FAILED); - pState->status = TINFL_STATUS_FAILED; - break; - } - - /* Advance offsets, dec counters */ - pState->cur_file_ofs += pState->read_buf_avail; - pState->comp_remaining -= pState->read_buf_avail; - pState->read_buf_ofs = 0; - } - - /* Perform decompression */ - in_buf_size = (size_t)pState->read_buf_avail; - pState->status = tinfl_decompress(&pState->inflator, (const mz_uint8 *)pState->pRead_buf + pState->read_buf_ofs, &in_buf_size, (mz_uint8 *)pState->pWrite_buf, pWrite_buf_cur, &out_buf_size, pState->comp_remaining ? TINFL_FLAG_HAS_MORE_INPUT : 0); - pState->read_buf_avail -= in_buf_size; - pState->read_buf_ofs += in_buf_size; - - /* Update current output block size remaining */ - pState->out_blk_remain = out_buf_size; - } - - if (pState->out_blk_remain) - { - /* Calc amount to return. */ - size_t to_copy = MZ_MIN( (buf_size - copied_to_caller), pState->out_blk_remain ); - - /* Copy data to caller's buffer */ - memcpy( (uint8_t*)pvBuf + copied_to_caller, pWrite_buf_cur, to_copy ); - -#ifndef MINIZ_DISABLE_ZIP_READER_CRC32_CHECKS - /* Perform CRC */ - pState->file_crc32 = (mz_uint32)mz_crc32(pState->file_crc32, pWrite_buf_cur, to_copy); -#endif - - /* Decrement data consumed from block */ - pState->out_blk_remain -= to_copy; - - /* Inc output offset, while performing sanity check */ - if ((pState->out_buf_ofs += to_copy) > pState->file_stat.m_uncomp_size) - { - mz_zip_set_error(pState->pZip, MZ_ZIP_DECOMPRESSION_FAILED); - pState->status = TINFL_STATUS_FAILED; - break; - } - - /* Increment counter of data copied to caller */ - copied_to_caller += to_copy; - } - } while ( (copied_to_caller < buf_size) && ((pState->status == TINFL_STATUS_NEEDS_MORE_INPUT) || (pState->status == TINFL_STATUS_HAS_MORE_OUTPUT)) ); - } - - /* Return how many bytes were copied into user buffer */ - return copied_to_caller; -} - -mz_bool mz_zip_reader_extract_iter_free(mz_zip_reader_extract_iter_state* pState) -{ - int status; - - /* Argument sanity check */ - if ((!pState) || (!pState->pZip) || (!pState->pZip->m_pState)) - return MZ_FALSE; - - /* Was decompression completed and requested? */ - if ((pState->status == TINFL_STATUS_DONE) && (!(pState->flags & MZ_ZIP_FLAG_COMPRESSED_DATA))) - { - /* Make sure the entire file was decompressed, and check its CRC. */ - if (pState->out_buf_ofs != pState->file_stat.m_uncomp_size) - { - mz_zip_set_error(pState->pZip, MZ_ZIP_UNEXPECTED_DECOMPRESSED_SIZE); - pState->status = TINFL_STATUS_FAILED; - } -#ifndef MINIZ_DISABLE_ZIP_READER_CRC32_CHECKS - else if (pState->file_crc32 != pState->file_stat.m_crc32) - { - mz_zip_set_error(pState->pZip, MZ_ZIP_DECOMPRESSION_FAILED); - pState->status = TINFL_STATUS_FAILED; - } -#endif - } - - /* Free buffers */ - if (!pState->pZip->m_pState->m_pMem) - pState->pZip->m_pFree(pState->pZip->m_pAlloc_opaque, pState->pRead_buf); - if (pState->pWrite_buf) - pState->pZip->m_pFree(pState->pZip->m_pAlloc_opaque, pState->pWrite_buf); - - /* Save status */ - status = pState->status; - - /* Free context */ - pState->pZip->m_pFree(pState->pZip->m_pAlloc_opaque, pState); - - return status == TINFL_STATUS_DONE; -} - -#ifndef MINIZ_NO_STDIO -static size_t mz_zip_file_write_callback(void *pOpaque, mz_uint64 ofs, const void *pBuf, size_t n) -{ - (void)ofs; - - return MZ_FWRITE(pBuf, 1, n, (MZ_FILE *)pOpaque); -} - -mz_bool mz_zip_reader_extract_to_file(mz_zip_archive *pZip, mz_uint file_index, const char *pDst_filename, mz_uint flags) -{ - mz_bool status; - mz_zip_archive_file_stat file_stat; - MZ_FILE *pFile; - - if (!mz_zip_reader_file_stat(pZip, file_index, &file_stat)) - return MZ_FALSE; - - if ((file_stat.m_is_directory) || (!file_stat.m_is_supported)) - return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_FEATURE); - - pFile = MZ_FOPEN(pDst_filename, "wb"); - if (!pFile) - return mz_zip_set_error(pZip, MZ_ZIP_FILE_OPEN_FAILED); - - status = mz_zip_reader_extract_to_callback(pZip, file_index, mz_zip_file_write_callback, pFile, flags); - - if (MZ_FCLOSE(pFile) == EOF) - { - if (status) - mz_zip_set_error(pZip, MZ_ZIP_FILE_CLOSE_FAILED); - - status = MZ_FALSE; - } - -#if !defined(MINIZ_NO_TIME) && !defined(MINIZ_NO_STDIO) - if (status) - mz_zip_set_file_times(pDst_filename, file_stat.m_time, file_stat.m_time); -#endif - - return status; -} - -mz_bool mz_zip_reader_extract_file_to_file(mz_zip_archive *pZip, const char *pArchive_filename, const char *pDst_filename, mz_uint flags) -{ - mz_uint32 file_index; - if (!mz_zip_reader_locate_file_v2(pZip, pArchive_filename, NULL, flags, &file_index)) - return MZ_FALSE; - - return mz_zip_reader_extract_to_file(pZip, file_index, pDst_filename, flags); -} - -mz_bool mz_zip_reader_extract_to_cfile(mz_zip_archive *pZip, mz_uint file_index, MZ_FILE *pFile, mz_uint flags) -{ - mz_zip_archive_file_stat file_stat; - - if (!mz_zip_reader_file_stat(pZip, file_index, &file_stat)) - return MZ_FALSE; - - if ((file_stat.m_is_directory) || (!file_stat.m_is_supported)) - return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_FEATURE); - - return mz_zip_reader_extract_to_callback(pZip, file_index, mz_zip_file_write_callback, pFile, flags); -} - -mz_bool mz_zip_reader_extract_file_to_cfile(mz_zip_archive *pZip, const char *pArchive_filename, MZ_FILE *pFile, mz_uint flags) -{ - mz_uint32 file_index; - if (!mz_zip_reader_locate_file_v2(pZip, pArchive_filename, NULL, flags, &file_index)) - return MZ_FALSE; - - return mz_zip_reader_extract_to_cfile(pZip, file_index, pFile, flags); -} -#endif /* #ifndef MINIZ_NO_STDIO */ - -static size_t mz_zip_compute_crc32_callback(void *pOpaque, mz_uint64 file_ofs, const void *pBuf, size_t n) -{ - mz_uint32 *p = (mz_uint32 *)pOpaque; - (void)file_ofs; - *p = (mz_uint32)mz_crc32(*p, (const mz_uint8 *)pBuf, n); - return n; -} - -mz_bool mz_zip_validate_file(mz_zip_archive *pZip, mz_uint file_index, mz_uint flags) -{ - mz_zip_archive_file_stat file_stat; - mz_zip_internal_state *pState; - const mz_uint8 *pCentral_dir_header; - mz_bool found_zip64_ext_data_in_cdir = MZ_FALSE; - mz_bool found_zip64_ext_data_in_ldir = MZ_FALSE; - mz_uint32 local_header_u32[(MZ_ZIP_LOCAL_DIR_HEADER_SIZE + sizeof(mz_uint32) - 1) / sizeof(mz_uint32)]; - mz_uint8 *pLocal_header = (mz_uint8 *)local_header_u32; - mz_uint64 local_header_ofs = 0; - mz_uint32 local_header_filename_len, local_header_extra_len, local_header_crc32; - mz_uint64 local_header_comp_size, local_header_uncomp_size; - mz_uint32 uncomp_crc32 = MZ_CRC32_INIT; - mz_bool has_data_descriptor; - mz_uint32 local_header_bit_flags; - - mz_zip_array file_data_array; - mz_zip_array_init(&file_data_array, 1); - - if ((!pZip) || (!pZip->m_pState) || (!pZip->m_pAlloc) || (!pZip->m_pFree) || (!pZip->m_pRead)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - - if (file_index > pZip->m_total_files) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - - pState = pZip->m_pState; - - pCentral_dir_header = mz_zip_get_cdh(pZip, file_index); - - if (!mz_zip_file_stat_internal(pZip, file_index, pCentral_dir_header, &file_stat, &found_zip64_ext_data_in_cdir)) - return MZ_FALSE; - - /* A directory or zero length file */ - if ((file_stat.m_is_directory) || (!file_stat.m_uncomp_size)) - return MZ_TRUE; - - /* Encryption and patch files are not supported. */ - if (file_stat.m_is_encrypted) - return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_ENCRYPTION); - - /* This function only supports stored and deflate. */ - if ((file_stat.m_method != 0) && (file_stat.m_method != MZ_DEFLATED)) - return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_METHOD); - - if (!file_stat.m_is_supported) - return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_FEATURE); - - /* Read and parse the local directory entry. */ - local_header_ofs = file_stat.m_local_header_ofs; - if (pZip->m_pRead(pZip->m_pIO_opaque, local_header_ofs, pLocal_header, MZ_ZIP_LOCAL_DIR_HEADER_SIZE) != MZ_ZIP_LOCAL_DIR_HEADER_SIZE) - return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); - - if (MZ_READ_LE32(pLocal_header) != MZ_ZIP_LOCAL_DIR_HEADER_SIG) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - - local_header_filename_len = MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_FILENAME_LEN_OFS); - local_header_extra_len = MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_EXTRA_LEN_OFS); - local_header_comp_size = MZ_READ_LE32(pLocal_header + MZ_ZIP_LDH_COMPRESSED_SIZE_OFS); - local_header_uncomp_size = MZ_READ_LE32(pLocal_header + MZ_ZIP_LDH_DECOMPRESSED_SIZE_OFS); - local_header_crc32 = MZ_READ_LE32(pLocal_header + MZ_ZIP_LDH_CRC32_OFS); - local_header_bit_flags = MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_BIT_FLAG_OFS); - has_data_descriptor = (local_header_bit_flags & 8) != 0; - - if (local_header_filename_len != strlen(file_stat.m_filename)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - - if ((local_header_ofs + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + local_header_filename_len + local_header_extra_len + file_stat.m_comp_size) > pZip->m_archive_size) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - - if (!mz_zip_array_resize(pZip, &file_data_array, MZ_MAX(local_header_filename_len, local_header_extra_len), MZ_FALSE)) - return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - - if (local_header_filename_len) - { - if (pZip->m_pRead(pZip->m_pIO_opaque, local_header_ofs + MZ_ZIP_LOCAL_DIR_HEADER_SIZE, file_data_array.m_p, local_header_filename_len) != local_header_filename_len) - { - mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); - goto handle_failure; - } - - /* I've seen 1 archive that had the same pathname, but used backslashes in the local dir and forward slashes in the central dir. Do we care about this? For now, this case will fail validation. */ - if (memcmp(file_stat.m_filename, file_data_array.m_p, local_header_filename_len) != 0) - { - mz_zip_set_error(pZip, MZ_ZIP_VALIDATION_FAILED); - goto handle_failure; - } - } - - if ((local_header_extra_len) && ((local_header_comp_size == MZ_UINT32_MAX) || (local_header_uncomp_size == MZ_UINT32_MAX))) - { - mz_uint32 extra_size_remaining = local_header_extra_len; - const mz_uint8 *pExtra_data = (const mz_uint8 *)file_data_array.m_p; - - if (pZip->m_pRead(pZip->m_pIO_opaque, local_header_ofs + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + local_header_filename_len, file_data_array.m_p, local_header_extra_len) != local_header_extra_len) - { - mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); - goto handle_failure; - } - - do - { - mz_uint32 field_id, field_data_size, field_total_size; - - if (extra_size_remaining < (sizeof(mz_uint16) * 2)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - - field_id = MZ_READ_LE16(pExtra_data); - field_data_size = MZ_READ_LE16(pExtra_data + sizeof(mz_uint16)); - field_total_size = field_data_size + sizeof(mz_uint16) * 2; - - if (field_total_size > extra_size_remaining) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - - if (field_id == MZ_ZIP64_EXTENDED_INFORMATION_FIELD_HEADER_ID) - { - const mz_uint8 *pSrc_field_data = pExtra_data + sizeof(mz_uint32); - - if (field_data_size < sizeof(mz_uint64) * 2) - { - mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - goto handle_failure; - } - - local_header_uncomp_size = MZ_READ_LE64(pSrc_field_data); - local_header_comp_size = MZ_READ_LE64(pSrc_field_data + sizeof(mz_uint64)); - - found_zip64_ext_data_in_ldir = MZ_TRUE; - break; - } - - pExtra_data += field_total_size; - extra_size_remaining -= field_total_size; - } while (extra_size_remaining); - } - - /* TODO: parse local header extra data when local_header_comp_size is 0xFFFFFFFF! (big_descriptor.zip) */ - /* I've seen zips in the wild with the data descriptor bit set, but proper local header values and bogus data descriptors */ - if ((has_data_descriptor) && (!local_header_comp_size) && (!local_header_crc32)) - { - mz_uint8 descriptor_buf[32]; - mz_bool has_id; - const mz_uint8 *pSrc; - mz_uint32 file_crc32; - mz_uint64 comp_size = 0, uncomp_size = 0; - - mz_uint32 num_descriptor_uint32s = ((pState->m_zip64) || (found_zip64_ext_data_in_ldir)) ? 6 : 4; - - if (pZip->m_pRead(pZip->m_pIO_opaque, local_header_ofs + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + local_header_filename_len + local_header_extra_len + file_stat.m_comp_size, descriptor_buf, sizeof(mz_uint32) * num_descriptor_uint32s) != (sizeof(mz_uint32) * num_descriptor_uint32s)) - { - mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); - goto handle_failure; - } - - has_id = (MZ_READ_LE32(descriptor_buf) == MZ_ZIP_DATA_DESCRIPTOR_ID); - pSrc = has_id ? (descriptor_buf + sizeof(mz_uint32)) : descriptor_buf; - - file_crc32 = MZ_READ_LE32(pSrc); - - if ((pState->m_zip64) || (found_zip64_ext_data_in_ldir)) - { - comp_size = MZ_READ_LE64(pSrc + sizeof(mz_uint32)); - uncomp_size = MZ_READ_LE64(pSrc + sizeof(mz_uint32) + sizeof(mz_uint64)); - } - else - { - comp_size = MZ_READ_LE32(pSrc + sizeof(mz_uint32)); - uncomp_size = MZ_READ_LE32(pSrc + sizeof(mz_uint32) + sizeof(mz_uint32)); - } - - if ((file_crc32 != file_stat.m_crc32) || (comp_size != file_stat.m_comp_size) || (uncomp_size != file_stat.m_uncomp_size)) - { - mz_zip_set_error(pZip, MZ_ZIP_VALIDATION_FAILED); - goto handle_failure; - } - } - else - { - if ((local_header_crc32 != file_stat.m_crc32) || (local_header_comp_size != file_stat.m_comp_size) || (local_header_uncomp_size != file_stat.m_uncomp_size)) - { - mz_zip_set_error(pZip, MZ_ZIP_VALIDATION_FAILED); - goto handle_failure; - } - } - - mz_zip_array_clear(pZip, &file_data_array); - - if ((flags & MZ_ZIP_FLAG_VALIDATE_HEADERS_ONLY) == 0) - { - if (!mz_zip_reader_extract_to_callback(pZip, file_index, mz_zip_compute_crc32_callback, &uncomp_crc32, 0)) - return MZ_FALSE; - - /* 1 more check to be sure, although the extract checks too. */ - if (uncomp_crc32 != file_stat.m_crc32) - { - mz_zip_set_error(pZip, MZ_ZIP_VALIDATION_FAILED); - return MZ_FALSE; - } - } - - return MZ_TRUE; - -handle_failure: - mz_zip_array_clear(pZip, &file_data_array); - return MZ_FALSE; -} - -mz_bool mz_zip_validate_archive(mz_zip_archive *pZip, mz_uint flags) -{ - mz_zip_internal_state *pState; - uint32_t i; - - if ((!pZip) || (!pZip->m_pState) || (!pZip->m_pAlloc) || (!pZip->m_pFree) || (!pZip->m_pRead)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - - pState = pZip->m_pState; - - /* Basic sanity checks */ - if (!pState->m_zip64) - { - if (pZip->m_total_files > MZ_UINT16_MAX) - return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); - - if (pZip->m_archive_size > MZ_UINT32_MAX) - return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); - } - else - { - if (pZip->m_total_files >= MZ_UINT32_MAX) - return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); - - if (pState->m_central_dir.m_size >= MZ_UINT32_MAX) - return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); - } - - for (i = 0; i < pZip->m_total_files; i++) - { - if (MZ_ZIP_FLAG_VALIDATE_LOCATE_FILE_FLAG & flags) - { - mz_uint32 found_index; - mz_zip_archive_file_stat stat; - - if (!mz_zip_reader_file_stat(pZip, i, &stat)) - return MZ_FALSE; - - if (!mz_zip_reader_locate_file_v2(pZip, stat.m_filename, NULL, 0, &found_index)) - return MZ_FALSE; - - /* This check can fail if there are duplicate filenames in the archive (which we don't check for when writing - that's up to the user) */ - if (found_index != i) - return mz_zip_set_error(pZip, MZ_ZIP_VALIDATION_FAILED); - } - - if (!mz_zip_validate_file(pZip, i, flags)) - return MZ_FALSE; - } - - return MZ_TRUE; -} - -mz_bool mz_zip_validate_mem_archive(const void *pMem, size_t size, mz_uint flags, mz_zip_error *pErr) -{ - mz_bool success = MZ_TRUE; - mz_zip_archive zip; - mz_zip_error actual_err = MZ_ZIP_NO_ERROR; - - if ((!pMem) || (!size)) - { - if (pErr) - *pErr = MZ_ZIP_INVALID_PARAMETER; - return MZ_FALSE; - } - - mz_zip_zero_struct(&zip); - - if (!mz_zip_reader_init_mem(&zip, pMem, size, flags)) - { - if (pErr) - *pErr = zip.m_last_error; - return MZ_FALSE; - } - - if (!mz_zip_validate_archive(&zip, flags)) - { - actual_err = zip.m_last_error; - success = MZ_FALSE; - } - - if (!mz_zip_reader_end_internal(&zip, success)) - { - if (!actual_err) - actual_err = zip.m_last_error; - success = MZ_FALSE; - } - - if (pErr) - *pErr = actual_err; - - return success; -} - -#ifndef MINIZ_NO_STDIO -mz_bool mz_zip_validate_file_archive(const char *pFilename, mz_uint flags, mz_zip_error *pErr) -{ - mz_bool success = MZ_TRUE; - mz_zip_archive zip; - mz_zip_error actual_err = MZ_ZIP_NO_ERROR; - - if (!pFilename) - { - if (pErr) - *pErr = MZ_ZIP_INVALID_PARAMETER; - return MZ_FALSE; - } - - mz_zip_zero_struct(&zip); - - if (!mz_zip_reader_init_file_v2(&zip, pFilename, flags, 0, 0)) - { - if (pErr) - *pErr = zip.m_last_error; - return MZ_FALSE; - } - - if (!mz_zip_validate_archive(&zip, flags)) - { - actual_err = zip.m_last_error; - success = MZ_FALSE; - } - - if (!mz_zip_reader_end_internal(&zip, success)) - { - if (!actual_err) - actual_err = zip.m_last_error; - success = MZ_FALSE; - } - - if (pErr) - *pErr = actual_err; - - return success; -} -#endif /* #ifndef MINIZ_NO_STDIO */ - -/* ------------------- .ZIP archive writing */ - -#ifndef MINIZ_NO_ARCHIVE_WRITING_APIS - -static MZ_FORCEINLINE void mz_write_le16(mz_uint8 *p, mz_uint16 v) -{ - p[0] = (mz_uint8)v; - p[1] = (mz_uint8)(v >> 8); -} -static MZ_FORCEINLINE void mz_write_le32(mz_uint8 *p, mz_uint32 v) -{ - p[0] = (mz_uint8)v; - p[1] = (mz_uint8)(v >> 8); - p[2] = (mz_uint8)(v >> 16); - p[3] = (mz_uint8)(v >> 24); -} -static MZ_FORCEINLINE void mz_write_le64(mz_uint8 *p, mz_uint64 v) -{ - mz_write_le32(p, (mz_uint32)v); - mz_write_le32(p + sizeof(mz_uint32), (mz_uint32)(v >> 32)); -} - -#define MZ_WRITE_LE16(p, v) mz_write_le16((mz_uint8 *)(p), (mz_uint16)(v)) -#define MZ_WRITE_LE32(p, v) mz_write_le32((mz_uint8 *)(p), (mz_uint32)(v)) -#define MZ_WRITE_LE64(p, v) mz_write_le64((mz_uint8 *)(p), (mz_uint64)(v)) - -static size_t mz_zip_heap_write_func(void *pOpaque, mz_uint64 file_ofs, const void *pBuf, size_t n) -{ - mz_zip_archive *pZip = (mz_zip_archive *)pOpaque; - mz_zip_internal_state *pState = pZip->m_pState; - mz_uint64 new_size = MZ_MAX(file_ofs + n, pState->m_mem_size); - - if (!n) - return 0; - - /* An allocation this big is likely to just fail on 32-bit systems, so don't even go there. */ - if ((sizeof(size_t) == sizeof(mz_uint32)) && (new_size > 0x7FFFFFFF)) - { - mz_zip_set_error(pZip, MZ_ZIP_FILE_TOO_LARGE); - return 0; - } - - if (new_size > pState->m_mem_capacity) - { - void *pNew_block; - size_t new_capacity = MZ_MAX(64, pState->m_mem_capacity); - - while (new_capacity < new_size) - new_capacity *= 2; - - if (NULL == (pNew_block = pZip->m_pRealloc(pZip->m_pAlloc_opaque, pState->m_pMem, 1, new_capacity))) - { - mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - return 0; - } - - pState->m_pMem = pNew_block; - pState->m_mem_capacity = new_capacity; - } - memcpy((mz_uint8 *)pState->m_pMem + file_ofs, pBuf, n); - pState->m_mem_size = (size_t)new_size; - return n; -} - -static mz_bool mz_zip_writer_end_internal(mz_zip_archive *pZip, mz_bool set_last_error) -{ - mz_zip_internal_state *pState; - mz_bool status = MZ_TRUE; - - if ((!pZip) || (!pZip->m_pState) || (!pZip->m_pAlloc) || (!pZip->m_pFree) || ((pZip->m_zip_mode != MZ_ZIP_MODE_WRITING) && (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING_HAS_BEEN_FINALIZED))) - { - if (set_last_error) - mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - return MZ_FALSE; - } - - pState = pZip->m_pState; - pZip->m_pState = NULL; - mz_zip_array_clear(pZip, &pState->m_central_dir); - mz_zip_array_clear(pZip, &pState->m_central_dir_offsets); - mz_zip_array_clear(pZip, &pState->m_sorted_central_dir_offsets); - -#ifndef MINIZ_NO_STDIO - if (pState->m_pFile) - { - if (pZip->m_zip_type == MZ_ZIP_TYPE_FILE) - { - if (MZ_FCLOSE(pState->m_pFile) == EOF) - { - if (set_last_error) - mz_zip_set_error(pZip, MZ_ZIP_FILE_CLOSE_FAILED); - status = MZ_FALSE; - } - } - - pState->m_pFile = NULL; - } -#endif /* #ifndef MINIZ_NO_STDIO */ - - if ((pZip->m_pWrite == mz_zip_heap_write_func) && (pState->m_pMem)) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pState->m_pMem); - pState->m_pMem = NULL; - } - - pZip->m_pFree(pZip->m_pAlloc_opaque, pState); - pZip->m_zip_mode = MZ_ZIP_MODE_INVALID; - return status; -} - -mz_bool mz_zip_writer_init_v2(mz_zip_archive *pZip, mz_uint64 existing_size, mz_uint flags) -{ - mz_bool zip64 = (flags & MZ_ZIP_FLAG_WRITE_ZIP64) != 0; - - if ((!pZip) || (pZip->m_pState) || (!pZip->m_pWrite) || (pZip->m_zip_mode != MZ_ZIP_MODE_INVALID)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - - if (flags & MZ_ZIP_FLAG_WRITE_ALLOW_READING) - { - if (!pZip->m_pRead) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - } - - if (pZip->m_file_offset_alignment) - { - /* Ensure user specified file offset alignment is a power of 2. */ - if (pZip->m_file_offset_alignment & (pZip->m_file_offset_alignment - 1)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - } - - if (!pZip->m_pAlloc) - pZip->m_pAlloc = miniz_def_alloc_func; - if (!pZip->m_pFree) - pZip->m_pFree = miniz_def_free_func; - if (!pZip->m_pRealloc) - pZip->m_pRealloc = miniz_def_realloc_func; - - pZip->m_archive_size = existing_size; - pZip->m_central_directory_file_ofs = 0; - pZip->m_total_files = 0; - - if (NULL == (pZip->m_pState = (mz_zip_internal_state *)pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, sizeof(mz_zip_internal_state)))) - return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - - memset(pZip->m_pState, 0, sizeof(mz_zip_internal_state)); - - MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_central_dir, sizeof(mz_uint8)); - MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_central_dir_offsets, sizeof(mz_uint32)); - MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_sorted_central_dir_offsets, sizeof(mz_uint32)); - - pZip->m_pState->m_zip64 = zip64; - pZip->m_pState->m_zip64_has_extended_info_fields = zip64; - - pZip->m_zip_type = MZ_ZIP_TYPE_USER; - pZip->m_zip_mode = MZ_ZIP_MODE_WRITING; - - return MZ_TRUE; -} - -mz_bool mz_zip_writer_init(mz_zip_archive *pZip, mz_uint64 existing_size) -{ - return mz_zip_writer_init_v2(pZip, existing_size, 0); -} - -mz_bool mz_zip_writer_init_heap_v2(mz_zip_archive *pZip, size_t size_to_reserve_at_beginning, size_t initial_allocation_size, mz_uint flags) -{ - pZip->m_pWrite = mz_zip_heap_write_func; - pZip->m_pNeeds_keepalive = NULL; - - if (flags & MZ_ZIP_FLAG_WRITE_ALLOW_READING) - pZip->m_pRead = mz_zip_mem_read_func; - - pZip->m_pIO_opaque = pZip; - - if (!mz_zip_writer_init_v2(pZip, size_to_reserve_at_beginning, flags)) - return MZ_FALSE; - - pZip->m_zip_type = MZ_ZIP_TYPE_HEAP; - - if (0 != (initial_allocation_size = MZ_MAX(initial_allocation_size, size_to_reserve_at_beginning))) - { - if (NULL == (pZip->m_pState->m_pMem = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, initial_allocation_size))) - { - mz_zip_writer_end_internal(pZip, MZ_FALSE); - return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - } - pZip->m_pState->m_mem_capacity = initial_allocation_size; - } - - return MZ_TRUE; -} - -mz_bool mz_zip_writer_init_heap(mz_zip_archive *pZip, size_t size_to_reserve_at_beginning, size_t initial_allocation_size) -{ - return mz_zip_writer_init_heap_v2(pZip, size_to_reserve_at_beginning, initial_allocation_size, 0); -} - -#ifndef MINIZ_NO_STDIO -static size_t mz_zip_file_write_func(void *pOpaque, mz_uint64 file_ofs, const void *pBuf, size_t n) -{ - mz_zip_archive *pZip = (mz_zip_archive *)pOpaque; - mz_int64 cur_ofs = MZ_FTELL64(pZip->m_pState->m_pFile); - - file_ofs += pZip->m_pState->m_file_archive_start_ofs; - - if (((mz_int64)file_ofs < 0) || (((cur_ofs != (mz_int64)file_ofs)) && (MZ_FSEEK64(pZip->m_pState->m_pFile, (mz_int64)file_ofs, SEEK_SET)))) - { - mz_zip_set_error(pZip, MZ_ZIP_FILE_SEEK_FAILED); - return 0; - } - - return MZ_FWRITE(pBuf, 1, n, pZip->m_pState->m_pFile); -} - -mz_bool mz_zip_writer_init_file(mz_zip_archive *pZip, const char *pFilename, mz_uint64 size_to_reserve_at_beginning) -{ - return mz_zip_writer_init_file_v2(pZip, pFilename, size_to_reserve_at_beginning, 0); -} - -mz_bool mz_zip_writer_init_file_v2(mz_zip_archive *pZip, const char *pFilename, mz_uint64 size_to_reserve_at_beginning, mz_uint flags) -{ - MZ_FILE *pFile; - - pZip->m_pWrite = mz_zip_file_write_func; - pZip->m_pNeeds_keepalive = NULL; - - if (flags & MZ_ZIP_FLAG_WRITE_ALLOW_READING) - pZip->m_pRead = mz_zip_file_read_func; - - pZip->m_pIO_opaque = pZip; - - if (!mz_zip_writer_init_v2(pZip, size_to_reserve_at_beginning, flags)) - return MZ_FALSE; - - if (NULL == (pFile = MZ_FOPEN(pFilename, (flags & MZ_ZIP_FLAG_WRITE_ALLOW_READING) ? "w+b" : "wb"))) - { - mz_zip_writer_end(pZip); - return mz_zip_set_error(pZip, MZ_ZIP_FILE_OPEN_FAILED); - } - - pZip->m_pState->m_pFile = pFile; - pZip->m_zip_type = MZ_ZIP_TYPE_FILE; - - if (size_to_reserve_at_beginning) - { - mz_uint64 cur_ofs = 0; - char buf[4096]; - - MZ_CLEAR_OBJ(buf); - - do - { - size_t n = (size_t)MZ_MIN(sizeof(buf), size_to_reserve_at_beginning); - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_ofs, buf, n) != n) - { - mz_zip_writer_end(pZip); - return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); - } - cur_ofs += n; - size_to_reserve_at_beginning -= n; - } while (size_to_reserve_at_beginning); - } - - return MZ_TRUE; -} - -mz_bool mz_zip_writer_init_cfile(mz_zip_archive *pZip, MZ_FILE *pFile, mz_uint flags) -{ - pZip->m_pWrite = mz_zip_file_write_func; - pZip->m_pNeeds_keepalive = NULL; - - if (flags & MZ_ZIP_FLAG_WRITE_ALLOW_READING) - pZip->m_pRead = mz_zip_file_read_func; - - pZip->m_pIO_opaque = pZip; - - if (!mz_zip_writer_init_v2(pZip, 0, flags)) - return MZ_FALSE; - - pZip->m_pState->m_pFile = pFile; - pZip->m_pState->m_file_archive_start_ofs = MZ_FTELL64(pZip->m_pState->m_pFile); - pZip->m_zip_type = MZ_ZIP_TYPE_CFILE; - - return MZ_TRUE; -} -#endif /* #ifndef MINIZ_NO_STDIO */ - -mz_bool mz_zip_writer_init_from_reader_v2(mz_zip_archive *pZip, const char *pFilename, mz_uint flags) -{ - mz_zip_internal_state *pState; - - if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_READING)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - - if (flags & MZ_ZIP_FLAG_WRITE_ZIP64) - { - /* We don't support converting a non-zip64 file to zip64 - this seems like more trouble than it's worth. (What about the existing 32-bit data descriptors that could follow the compressed data?) */ - if (!pZip->m_pState->m_zip64) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - } - - /* No sense in trying to write to an archive that's already at the support max size */ - if (pZip->m_pState->m_zip64) - { - if (pZip->m_total_files == MZ_UINT32_MAX) - return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); - } - else - { - if (pZip->m_total_files == MZ_UINT16_MAX) - return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); - - if ((pZip->m_archive_size + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + MZ_ZIP_LOCAL_DIR_HEADER_SIZE) > MZ_UINT32_MAX) - return mz_zip_set_error(pZip, MZ_ZIP_FILE_TOO_LARGE); - } - - pState = pZip->m_pState; - - if (pState->m_pFile) - { -#ifdef MINIZ_NO_STDIO - (void)pFilename; - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); -#else - if (pZip->m_pIO_opaque != pZip) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - - if (pZip->m_zip_type == MZ_ZIP_TYPE_FILE) - { - if (!pFilename) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - - /* Archive is being read from stdio and was originally opened only for reading. Try to reopen as writable. */ - if (NULL == (pState->m_pFile = MZ_FREOPEN(pFilename, "r+b", pState->m_pFile))) - { - /* The mz_zip_archive is now in a bogus state because pState->m_pFile is NULL, so just close it. */ - mz_zip_reader_end_internal(pZip, MZ_FALSE); - return mz_zip_set_error(pZip, MZ_ZIP_FILE_OPEN_FAILED); - } - } - - pZip->m_pWrite = mz_zip_file_write_func; - pZip->m_pNeeds_keepalive = NULL; -#endif /* #ifdef MINIZ_NO_STDIO */ - } - else if (pState->m_pMem) - { - /* Archive lives in a memory block. Assume it's from the heap that we can resize using the realloc callback. */ - if (pZip->m_pIO_opaque != pZip) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - - pState->m_mem_capacity = pState->m_mem_size; - pZip->m_pWrite = mz_zip_heap_write_func; - pZip->m_pNeeds_keepalive = NULL; - } - /* Archive is being read via a user provided read function - make sure the user has specified a write function too. */ - else if (!pZip->m_pWrite) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - - /* Start writing new files at the archive's current central directory location. */ - /* TODO: We could add a flag that lets the user start writing immediately AFTER the existing central dir - this would be safer. */ - pZip->m_archive_size = pZip->m_central_directory_file_ofs; - pZip->m_central_directory_file_ofs = 0; - - /* Clear the sorted central dir offsets, they aren't useful or maintained now. */ - /* Even though we're now in write mode, files can still be extracted and verified, but file locates will be slow. */ - /* TODO: We could easily maintain the sorted central directory offsets. */ - mz_zip_array_clear(pZip, &pZip->m_pState->m_sorted_central_dir_offsets); - - pZip->m_zip_mode = MZ_ZIP_MODE_WRITING; - - return MZ_TRUE; -} - -mz_bool mz_zip_writer_init_from_reader(mz_zip_archive *pZip, const char *pFilename) -{ - return mz_zip_writer_init_from_reader_v2(pZip, pFilename, 0); -} - -/* TODO: pArchive_name is a terrible name here! */ -mz_bool mz_zip_writer_add_mem(mz_zip_archive *pZip, const char *pArchive_name, const void *pBuf, size_t buf_size, mz_uint level_and_flags) -{ - return mz_zip_writer_add_mem_ex(pZip, pArchive_name, pBuf, buf_size, NULL, 0, level_and_flags, 0, 0); -} - -typedef struct -{ - mz_zip_archive *m_pZip; - mz_uint64 m_cur_archive_file_ofs; - mz_uint64 m_comp_size; -} mz_zip_writer_add_state; - -static mz_bool mz_zip_writer_add_put_buf_callback(const void *pBuf, int len, void *pUser) -{ - mz_zip_writer_add_state *pState = (mz_zip_writer_add_state *)pUser; - if ((int)pState->m_pZip->m_pWrite(pState->m_pZip->m_pIO_opaque, pState->m_cur_archive_file_ofs, pBuf, len) != len) - return MZ_FALSE; - - pState->m_cur_archive_file_ofs += len; - pState->m_comp_size += len; - return MZ_TRUE; -} - -#define MZ_ZIP64_MAX_LOCAL_EXTRA_FIELD_SIZE (sizeof(mz_uint16) * 2 + sizeof(mz_uint64) * 2) -#define MZ_ZIP64_MAX_CENTRAL_EXTRA_FIELD_SIZE (sizeof(mz_uint16) * 2 + sizeof(mz_uint64) * 3) -static mz_uint32 mz_zip_writer_create_zip64_extra_data(mz_uint8 *pBuf, mz_uint64 *pUncomp_size, mz_uint64 *pComp_size, mz_uint64 *pLocal_header_ofs) -{ - mz_uint8 *pDst = pBuf; - mz_uint32 field_size = 0; - - MZ_WRITE_LE16(pDst + 0, MZ_ZIP64_EXTENDED_INFORMATION_FIELD_HEADER_ID); - MZ_WRITE_LE16(pDst + 2, 0); - pDst += sizeof(mz_uint16) * 2; - - if (pUncomp_size) - { - MZ_WRITE_LE64(pDst, *pUncomp_size); - pDst += sizeof(mz_uint64); - field_size += sizeof(mz_uint64); - } - - if (pComp_size) - { - MZ_WRITE_LE64(pDst, *pComp_size); - pDst += sizeof(mz_uint64); - field_size += sizeof(mz_uint64); - } - - if (pLocal_header_ofs) - { - MZ_WRITE_LE64(pDst, *pLocal_header_ofs); - pDst += sizeof(mz_uint64); - field_size += sizeof(mz_uint64); - } - - MZ_WRITE_LE16(pBuf + 2, field_size); - - return (mz_uint32)(pDst - pBuf); -} - -static mz_bool mz_zip_writer_create_local_dir_header(mz_zip_archive *pZip, mz_uint8 *pDst, mz_uint16 filename_size, mz_uint16 extra_size, mz_uint64 uncomp_size, mz_uint64 comp_size, mz_uint32 uncomp_crc32, mz_uint16 method, mz_uint16 bit_flags, mz_uint16 dos_time, mz_uint16 dos_date) -{ - (void)pZip; - memset(pDst, 0, MZ_ZIP_LOCAL_DIR_HEADER_SIZE); - MZ_WRITE_LE32(pDst + MZ_ZIP_LDH_SIG_OFS, MZ_ZIP_LOCAL_DIR_HEADER_SIG); - MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_VERSION_NEEDED_OFS, method ? 20 : 0); - MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_BIT_FLAG_OFS, bit_flags); - MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_METHOD_OFS, method); - MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_FILE_TIME_OFS, dos_time); - MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_FILE_DATE_OFS, dos_date); - MZ_WRITE_LE32(pDst + MZ_ZIP_LDH_CRC32_OFS, uncomp_crc32); - MZ_WRITE_LE32(pDst + MZ_ZIP_LDH_COMPRESSED_SIZE_OFS, MZ_MIN(comp_size, MZ_UINT32_MAX)); - MZ_WRITE_LE32(pDst + MZ_ZIP_LDH_DECOMPRESSED_SIZE_OFS, MZ_MIN(uncomp_size, MZ_UINT32_MAX)); - MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_FILENAME_LEN_OFS, filename_size); - MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_EXTRA_LEN_OFS, extra_size); - return MZ_TRUE; -} - -static mz_bool mz_zip_writer_create_central_dir_header(mz_zip_archive *pZip, mz_uint8 *pDst, - mz_uint16 filename_size, mz_uint16 extra_size, mz_uint16 comment_size, - mz_uint64 uncomp_size, mz_uint64 comp_size, mz_uint32 uncomp_crc32, - mz_uint16 method, mz_uint16 bit_flags, mz_uint16 dos_time, mz_uint16 dos_date, - mz_uint64 local_header_ofs, mz_uint32 ext_attributes) -{ - (void)pZip; - memset(pDst, 0, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE); - MZ_WRITE_LE32(pDst + MZ_ZIP_CDH_SIG_OFS, MZ_ZIP_CENTRAL_DIR_HEADER_SIG); - MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_VERSION_NEEDED_OFS, method ? 20 : 0); - MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_BIT_FLAG_OFS, bit_flags); - MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_METHOD_OFS, method); - MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_FILE_TIME_OFS, dos_time); - MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_FILE_DATE_OFS, dos_date); - MZ_WRITE_LE32(pDst + MZ_ZIP_CDH_CRC32_OFS, uncomp_crc32); - MZ_WRITE_LE32(pDst + MZ_ZIP_CDH_COMPRESSED_SIZE_OFS, MZ_MIN(comp_size, MZ_UINT32_MAX)); - MZ_WRITE_LE32(pDst + MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS, MZ_MIN(uncomp_size, MZ_UINT32_MAX)); - MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_FILENAME_LEN_OFS, filename_size); - MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_EXTRA_LEN_OFS, extra_size); - MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_COMMENT_LEN_OFS, comment_size); - MZ_WRITE_LE32(pDst + MZ_ZIP_CDH_EXTERNAL_ATTR_OFS, ext_attributes); - MZ_WRITE_LE32(pDst + MZ_ZIP_CDH_LOCAL_HEADER_OFS, MZ_MIN(local_header_ofs, MZ_UINT32_MAX)); - return MZ_TRUE; -} - -static mz_bool mz_zip_writer_add_to_central_dir(mz_zip_archive *pZip, const char *pFilename, mz_uint16 filename_size, - const void *pExtra, mz_uint16 extra_size, const void *pComment, mz_uint16 comment_size, - mz_uint64 uncomp_size, mz_uint64 comp_size, mz_uint32 uncomp_crc32, - mz_uint16 method, mz_uint16 bit_flags, mz_uint16 dos_time, mz_uint16 dos_date, - mz_uint64 local_header_ofs, mz_uint32 ext_attributes, - const char *user_extra_data, mz_uint user_extra_data_len) -{ - mz_zip_internal_state *pState = pZip->m_pState; - mz_uint32 central_dir_ofs = (mz_uint32)pState->m_central_dir.m_size; - size_t orig_central_dir_size = pState->m_central_dir.m_size; - mz_uint8 central_dir_header[MZ_ZIP_CENTRAL_DIR_HEADER_SIZE]; - - if (!pZip->m_pState->m_zip64) - { - if (local_header_ofs > 0xFFFFFFFF) - return mz_zip_set_error(pZip, MZ_ZIP_FILE_TOO_LARGE); - } - - /* miniz doesn't support central dirs >= MZ_UINT32_MAX bytes yet */ - if (((mz_uint64)pState->m_central_dir.m_size + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + filename_size + extra_size + user_extra_data_len + comment_size) >= MZ_UINT32_MAX) - return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_CDIR_SIZE); - - if (!mz_zip_writer_create_central_dir_header(pZip, central_dir_header, filename_size, extra_size + user_extra_data_len, comment_size, uncomp_size, comp_size, uncomp_crc32, method, bit_flags, dos_time, dos_date, local_header_ofs, ext_attributes)) - return mz_zip_set_error(pZip, MZ_ZIP_INTERNAL_ERROR); - - if ((!mz_zip_array_push_back(pZip, &pState->m_central_dir, central_dir_header, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE)) || - (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pFilename, filename_size)) || - (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pExtra, extra_size)) || - (!mz_zip_array_push_back(pZip, &pState->m_central_dir, user_extra_data, user_extra_data_len)) || - (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pComment, comment_size)) || - (!mz_zip_array_push_back(pZip, &pState->m_central_dir_offsets, ¢ral_dir_ofs, 1))) - { - /* Try to resize the central directory array back into its original state. */ - mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, MZ_FALSE); - return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - } - - return MZ_TRUE; -} - -static mz_bool mz_zip_writer_validate_archive_name(const char *pArchive_name) -{ - /* Basic ZIP archive filename validity checks: Valid filenames cannot start with a forward slash, cannot contain a drive letter, and cannot use DOS-style backward slashes. */ - if (*pArchive_name == '/') - return MZ_FALSE; - - while (*pArchive_name) - { - if ((*pArchive_name == '\\') || (*pArchive_name == ':')) - return MZ_FALSE; - - pArchive_name++; - } - - return MZ_TRUE; -} - -static mz_uint mz_zip_writer_compute_padding_needed_for_file_alignment(mz_zip_archive *pZip) -{ - mz_uint32 n; - if (!pZip->m_file_offset_alignment) - return 0; - n = (mz_uint32)(pZip->m_archive_size & (pZip->m_file_offset_alignment - 1)); - return (mz_uint)((pZip->m_file_offset_alignment - n) & (pZip->m_file_offset_alignment - 1)); -} - -static mz_bool mz_zip_writer_write_zeros(mz_zip_archive *pZip, mz_uint64 cur_file_ofs, mz_uint32 n) -{ - char buf[4096]; - memset(buf, 0, MZ_MIN(sizeof(buf), n)); - while (n) - { - mz_uint32 s = MZ_MIN(sizeof(buf), n); - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_file_ofs, buf, s) != s) - return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); - - cur_file_ofs += s; - n -= s; - } - return MZ_TRUE; -} - -mz_bool mz_zip_writer_add_mem_ex(mz_zip_archive *pZip, const char *pArchive_name, const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags, - mz_uint64 uncomp_size, mz_uint32 uncomp_crc32) -{ - return mz_zip_writer_add_mem_ex_v2(pZip, pArchive_name, pBuf, buf_size, pComment, comment_size, level_and_flags, uncomp_size, uncomp_crc32, NULL, NULL, 0, NULL, 0); -} - -mz_bool mz_zip_writer_add_mem_ex_v2(mz_zip_archive *pZip, const char *pArchive_name, const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, - mz_uint level_and_flags, mz_uint64 uncomp_size, mz_uint32 uncomp_crc32, MZ_TIME_T *last_modified, - const char *user_extra_data, mz_uint user_extra_data_len, const char *user_extra_data_central, mz_uint user_extra_data_central_len) -{ - mz_uint16 method = 0, dos_time = 0, dos_date = 0; - mz_uint level, ext_attributes = 0, num_alignment_padding_bytes; - mz_uint64 local_dir_header_ofs = pZip->m_archive_size, cur_archive_file_ofs = pZip->m_archive_size, comp_size = 0; - size_t archive_name_size; - mz_uint8 local_dir_header[MZ_ZIP_LOCAL_DIR_HEADER_SIZE]; - tdefl_compressor *pComp = NULL; - mz_bool store_data_uncompressed; - mz_zip_internal_state *pState; - mz_uint8 *pExtra_data = NULL; - mz_uint32 extra_size = 0; - mz_uint8 extra_data[MZ_ZIP64_MAX_CENTRAL_EXTRA_FIELD_SIZE]; - mz_uint16 bit_flags = 0; - - if ((int)level_and_flags < 0) - level_and_flags = MZ_DEFAULT_LEVEL; - - if (uncomp_size || (buf_size && !(level_and_flags & MZ_ZIP_FLAG_COMPRESSED_DATA))) - bit_flags |= MZ_ZIP_LDH_BIT_FLAG_HAS_LOCATOR; - - if (!(level_and_flags & MZ_ZIP_FLAG_ASCII_FILENAME)) - bit_flags |= MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_UTF8; - - level = level_and_flags & 0xF; - store_data_uncompressed = ((!level) || (level_and_flags & MZ_ZIP_FLAG_COMPRESSED_DATA)); - - if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING) || ((buf_size) && (!pBuf)) || (!pArchive_name) || ((comment_size) && (!pComment)) || (level > MZ_UBER_COMPRESSION)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - - pState = pZip->m_pState; - - if (pState->m_zip64) - { - if (pZip->m_total_files == MZ_UINT32_MAX) - return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); - } - else - { - if (pZip->m_total_files == MZ_UINT16_MAX) - { - pState->m_zip64 = MZ_TRUE; - /*return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); */ - } - if ((buf_size > 0xFFFFFFFF) || (uncomp_size > 0xFFFFFFFF)) - { - pState->m_zip64 = MZ_TRUE; - /*return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); */ - } - } - - if ((!(level_and_flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) && (uncomp_size)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - - if (!mz_zip_writer_validate_archive_name(pArchive_name)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_FILENAME); - -#ifndef MINIZ_NO_TIME - if (last_modified != NULL) - { - mz_zip_time_t_to_dos_time(*last_modified, &dos_time, &dos_date); - } - else - { - MZ_TIME_T cur_time; - time(&cur_time); - mz_zip_time_t_to_dos_time(cur_time, &dos_time, &dos_date); - } -#endif /* #ifndef MINIZ_NO_TIME */ - - if (!(level_and_flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) - { - uncomp_crc32 = (mz_uint32)mz_crc32(MZ_CRC32_INIT, (const mz_uint8 *)pBuf, buf_size); - uncomp_size = buf_size; - if (uncomp_size <= 3) - { - level = 0; - store_data_uncompressed = MZ_TRUE; - } - } - - archive_name_size = strlen(pArchive_name); - if (archive_name_size > MZ_UINT16_MAX) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_FILENAME); - - num_alignment_padding_bytes = mz_zip_writer_compute_padding_needed_for_file_alignment(pZip); - - /* miniz doesn't support central dirs >= MZ_UINT32_MAX bytes yet */ - if (((mz_uint64)pState->m_central_dir.m_size + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + archive_name_size + MZ_ZIP64_MAX_CENTRAL_EXTRA_FIELD_SIZE + comment_size) >= MZ_UINT32_MAX) - return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_CDIR_SIZE); - - if (!pState->m_zip64) - { - /* Bail early if the archive would obviously become too large */ - if ((pZip->m_archive_size + num_alignment_padding_bytes + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + archive_name_size - + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + archive_name_size + comment_size + user_extra_data_len + - pState->m_central_dir.m_size + MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE + user_extra_data_central_len - + MZ_ZIP_DATA_DESCRIPTER_SIZE32) > 0xFFFFFFFF) - { - pState->m_zip64 = MZ_TRUE; - /*return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); */ - } - } - - if ((archive_name_size) && (pArchive_name[archive_name_size - 1] == '/')) - { - /* Set DOS Subdirectory attribute bit. */ - ext_attributes |= MZ_ZIP_DOS_DIR_ATTRIBUTE_BITFLAG; - - /* Subdirectories cannot contain data. */ - if ((buf_size) || (uncomp_size)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - } - - /* Try to do any allocations before writing to the archive, so if an allocation fails the file remains unmodified. (A good idea if we're doing an in-place modification.) */ - if ((!mz_zip_array_ensure_room(pZip, &pState->m_central_dir, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + archive_name_size + comment_size + (pState->m_zip64 ? MZ_ZIP64_MAX_CENTRAL_EXTRA_FIELD_SIZE : 0))) || (!mz_zip_array_ensure_room(pZip, &pState->m_central_dir_offsets, 1))) - return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - - if ((!store_data_uncompressed) && (buf_size)) - { - if (NULL == (pComp = (tdefl_compressor *)pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, sizeof(tdefl_compressor)))) - return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - } - - if (!mz_zip_writer_write_zeros(pZip, cur_archive_file_ofs, num_alignment_padding_bytes)) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); - return MZ_FALSE; - } - - local_dir_header_ofs += num_alignment_padding_bytes; - if (pZip->m_file_offset_alignment) - { - MZ_ASSERT((local_dir_header_ofs & (pZip->m_file_offset_alignment - 1)) == 0); - } - cur_archive_file_ofs += num_alignment_padding_bytes; - - MZ_CLEAR_OBJ(local_dir_header); - - if (!store_data_uncompressed || (level_and_flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) - { - method = MZ_DEFLATED; - } - - if (pState->m_zip64) - { - if (uncomp_size >= MZ_UINT32_MAX || local_dir_header_ofs >= MZ_UINT32_MAX) - { - pExtra_data = extra_data; - extra_size = mz_zip_writer_create_zip64_extra_data(extra_data, (uncomp_size >= MZ_UINT32_MAX) ? &uncomp_size : NULL, - (uncomp_size >= MZ_UINT32_MAX) ? &comp_size : NULL, (local_dir_header_ofs >= MZ_UINT32_MAX) ? &local_dir_header_ofs : NULL); - } - - if (!mz_zip_writer_create_local_dir_header(pZip, local_dir_header, (mz_uint16)archive_name_size, extra_size + user_extra_data_len, 0, 0, 0, method, bit_flags, dos_time, dos_date)) - return mz_zip_set_error(pZip, MZ_ZIP_INTERNAL_ERROR); - - if (pZip->m_pWrite(pZip->m_pIO_opaque, local_dir_header_ofs, local_dir_header, sizeof(local_dir_header)) != sizeof(local_dir_header)) - return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); - - cur_archive_file_ofs += sizeof(local_dir_header); - - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pArchive_name, archive_name_size) != archive_name_size) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); - return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); - } - cur_archive_file_ofs += archive_name_size; - - if (pExtra_data != NULL) - { - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, extra_data, extra_size) != extra_size) - return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); - - cur_archive_file_ofs += extra_size; - } - } - else - { - if ((comp_size > MZ_UINT32_MAX) || (cur_archive_file_ofs > MZ_UINT32_MAX)) - return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); - if (!mz_zip_writer_create_local_dir_header(pZip, local_dir_header, (mz_uint16)archive_name_size, user_extra_data_len, 0, 0, 0, method, bit_flags, dos_time, dos_date)) - return mz_zip_set_error(pZip, MZ_ZIP_INTERNAL_ERROR); - - if (pZip->m_pWrite(pZip->m_pIO_opaque, local_dir_header_ofs, local_dir_header, sizeof(local_dir_header)) != sizeof(local_dir_header)) - return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); - - cur_archive_file_ofs += sizeof(local_dir_header); - - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pArchive_name, archive_name_size) != archive_name_size) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); - return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); - } - cur_archive_file_ofs += archive_name_size; - } - - if (user_extra_data_len > 0) - { - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, user_extra_data, user_extra_data_len) != user_extra_data_len) - return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); - - cur_archive_file_ofs += user_extra_data_len; - } - - if (store_data_uncompressed) - { - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pBuf, buf_size) != buf_size) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); - return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); - } - - cur_archive_file_ofs += buf_size; - comp_size = buf_size; - } - else if (buf_size) - { - mz_zip_writer_add_state state; - - state.m_pZip = pZip; - state.m_cur_archive_file_ofs = cur_archive_file_ofs; - state.m_comp_size = 0; - - if ((tdefl_init(pComp, mz_zip_writer_add_put_buf_callback, &state, tdefl_create_comp_flags_from_zip_params(level, -15, MZ_DEFAULT_STRATEGY)) != TDEFL_STATUS_OKAY) || - (tdefl_compress_buffer(pComp, pBuf, buf_size, TDEFL_FINISH) != TDEFL_STATUS_DONE)) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); - return mz_zip_set_error(pZip, MZ_ZIP_COMPRESSION_FAILED); - } - - comp_size = state.m_comp_size; - cur_archive_file_ofs = state.m_cur_archive_file_ofs; - } - - pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); - pComp = NULL; - - if (uncomp_size) - { - mz_uint8 local_dir_footer[MZ_ZIP_DATA_DESCRIPTER_SIZE64]; - mz_uint32 local_dir_footer_size = MZ_ZIP_DATA_DESCRIPTER_SIZE32; - - MZ_ASSERT(bit_flags & MZ_ZIP_LDH_BIT_FLAG_HAS_LOCATOR); - - MZ_WRITE_LE32(local_dir_footer + 0, MZ_ZIP_DATA_DESCRIPTOR_ID); - MZ_WRITE_LE32(local_dir_footer + 4, uncomp_crc32); - if (pExtra_data == NULL) - { - if (comp_size > MZ_UINT32_MAX) - return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); - - MZ_WRITE_LE32(local_dir_footer + 8, comp_size); - MZ_WRITE_LE32(local_dir_footer + 12, uncomp_size); - } - else - { - MZ_WRITE_LE64(local_dir_footer + 8, comp_size); - MZ_WRITE_LE64(local_dir_footer + 16, uncomp_size); - local_dir_footer_size = MZ_ZIP_DATA_DESCRIPTER_SIZE64; - } - - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, local_dir_footer, local_dir_footer_size) != local_dir_footer_size) - return MZ_FALSE; - - cur_archive_file_ofs += local_dir_footer_size; - } - - if (pExtra_data != NULL) - { - extra_size = mz_zip_writer_create_zip64_extra_data(extra_data, (uncomp_size >= MZ_UINT32_MAX) ? &uncomp_size : NULL, - (uncomp_size >= MZ_UINT32_MAX) ? &comp_size : NULL, (local_dir_header_ofs >= MZ_UINT32_MAX) ? &local_dir_header_ofs : NULL); - } - - if (!mz_zip_writer_add_to_central_dir(pZip, pArchive_name, (mz_uint16)archive_name_size, pExtra_data, extra_size, pComment, - comment_size, uncomp_size, comp_size, uncomp_crc32, method, bit_flags, dos_time, dos_date, local_dir_header_ofs, ext_attributes, - user_extra_data_central, user_extra_data_central_len)) - return MZ_FALSE; - - pZip->m_total_files++; - pZip->m_archive_size = cur_archive_file_ofs; - - return MZ_TRUE; -} - -mz_bool mz_zip_writer_add_read_buf_callback(mz_zip_archive *pZip, const char *pArchive_name, mz_file_read_func read_callback, void* callback_opaque, mz_uint64 size_to_add, const MZ_TIME_T *pFile_time, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags, - const char *user_extra_data, mz_uint user_extra_data_len, const char *user_extra_data_central, mz_uint user_extra_data_central_len) -{ - mz_uint16 gen_flags = MZ_ZIP_LDH_BIT_FLAG_HAS_LOCATOR; - mz_uint uncomp_crc32 = MZ_CRC32_INIT, level, num_alignment_padding_bytes; - mz_uint16 method = 0, dos_time = 0, dos_date = 0, ext_attributes = 0; - mz_uint64 local_dir_header_ofs, cur_archive_file_ofs = pZip->m_archive_size, uncomp_size = size_to_add, comp_size = 0; - size_t archive_name_size; - mz_uint8 local_dir_header[MZ_ZIP_LOCAL_DIR_HEADER_SIZE]; - mz_uint8 *pExtra_data = NULL; - mz_uint32 extra_size = 0; - mz_uint8 extra_data[MZ_ZIP64_MAX_CENTRAL_EXTRA_FIELD_SIZE]; - mz_zip_internal_state *pState; - mz_uint64 file_ofs = 0; - - if (!(level_and_flags & MZ_ZIP_FLAG_ASCII_FILENAME)) - gen_flags |= MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_UTF8; - - if ((int)level_and_flags < 0) - level_and_flags = MZ_DEFAULT_LEVEL; - level = level_and_flags & 0xF; - - /* Sanity checks */ - if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING) || (!pArchive_name) || ((comment_size) && (!pComment)) || (level > MZ_UBER_COMPRESSION)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - - pState = pZip->m_pState; - - if ((!pState->m_zip64) && (uncomp_size > MZ_UINT32_MAX)) - { - /* Source file is too large for non-zip64 */ - /*return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); */ - pState->m_zip64 = MZ_TRUE; - } - - /* We could support this, but why? */ - if (level_and_flags & MZ_ZIP_FLAG_COMPRESSED_DATA) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - - if (!mz_zip_writer_validate_archive_name(pArchive_name)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_FILENAME); - - if (pState->m_zip64) - { - if (pZip->m_total_files == MZ_UINT32_MAX) - return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); - } - else - { - if (pZip->m_total_files == MZ_UINT16_MAX) - { - pState->m_zip64 = MZ_TRUE; - /*return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); */ - } - } - - archive_name_size = strlen(pArchive_name); - if (archive_name_size > MZ_UINT16_MAX) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_FILENAME); - - num_alignment_padding_bytes = mz_zip_writer_compute_padding_needed_for_file_alignment(pZip); - - /* miniz doesn't support central dirs >= MZ_UINT32_MAX bytes yet */ - if (((mz_uint64)pState->m_central_dir.m_size + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + archive_name_size + MZ_ZIP64_MAX_CENTRAL_EXTRA_FIELD_SIZE + comment_size) >= MZ_UINT32_MAX) - return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_CDIR_SIZE); - - if (!pState->m_zip64) - { - /* Bail early if the archive would obviously become too large */ - if ((pZip->m_archive_size + num_alignment_padding_bytes + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + archive_name_size + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE - + archive_name_size + comment_size + user_extra_data_len + pState->m_central_dir.m_size + MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE + 1024 - + MZ_ZIP_DATA_DESCRIPTER_SIZE32 + user_extra_data_central_len) > 0xFFFFFFFF) - { - pState->m_zip64 = MZ_TRUE; - /*return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); */ - } - } - -#ifndef MINIZ_NO_TIME - if (pFile_time) - { - mz_zip_time_t_to_dos_time(*pFile_time, &dos_time, &dos_date); - } -#endif - - if (uncomp_size <= 3) - level = 0; - - if (!mz_zip_writer_write_zeros(pZip, cur_archive_file_ofs, num_alignment_padding_bytes)) - { - return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); - } - - cur_archive_file_ofs += num_alignment_padding_bytes; - local_dir_header_ofs = cur_archive_file_ofs; - - if (pZip->m_file_offset_alignment) - { - MZ_ASSERT((cur_archive_file_ofs & (pZip->m_file_offset_alignment - 1)) == 0); - } - - if (uncomp_size && level) - { - method = MZ_DEFLATED; - } - - MZ_CLEAR_OBJ(local_dir_header); - if (pState->m_zip64) - { - if (uncomp_size >= MZ_UINT32_MAX || local_dir_header_ofs >= MZ_UINT32_MAX) - { - pExtra_data = extra_data; - extra_size = mz_zip_writer_create_zip64_extra_data(extra_data, (uncomp_size >= MZ_UINT32_MAX) ? &uncomp_size : NULL, - (uncomp_size >= MZ_UINT32_MAX) ? &comp_size : NULL, (local_dir_header_ofs >= MZ_UINT32_MAX) ? &local_dir_header_ofs : NULL); - } - - if (!mz_zip_writer_create_local_dir_header(pZip, local_dir_header, (mz_uint16)archive_name_size, extra_size + user_extra_data_len, 0, 0, 0, method, gen_flags, dos_time, dos_date)) - return mz_zip_set_error(pZip, MZ_ZIP_INTERNAL_ERROR); - - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, local_dir_header, sizeof(local_dir_header)) != sizeof(local_dir_header)) - return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); - - cur_archive_file_ofs += sizeof(local_dir_header); - - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pArchive_name, archive_name_size) != archive_name_size) - { - return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); - } - - cur_archive_file_ofs += archive_name_size; - - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, extra_data, extra_size) != extra_size) - return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); - - cur_archive_file_ofs += extra_size; - } - else - { - if ((comp_size > MZ_UINT32_MAX) || (cur_archive_file_ofs > MZ_UINT32_MAX)) - return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); - if (!mz_zip_writer_create_local_dir_header(pZip, local_dir_header, (mz_uint16)archive_name_size, user_extra_data_len, 0, 0, 0, method, gen_flags, dos_time, dos_date)) - return mz_zip_set_error(pZip, MZ_ZIP_INTERNAL_ERROR); - - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, local_dir_header, sizeof(local_dir_header)) != sizeof(local_dir_header)) - return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); - - cur_archive_file_ofs += sizeof(local_dir_header); - - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pArchive_name, archive_name_size) != archive_name_size) - { - return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); - } - - cur_archive_file_ofs += archive_name_size; - } - - if (user_extra_data_len > 0) - { - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, user_extra_data, user_extra_data_len) != user_extra_data_len) - return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); - - cur_archive_file_ofs += user_extra_data_len; - } - - if (uncomp_size) - { - mz_uint64 uncomp_remaining = uncomp_size; - void *pRead_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, MZ_ZIP_MAX_IO_BUF_SIZE); - if (!pRead_buf) - { - return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - } - - if (!level) - { - while (uncomp_remaining) - { - mz_uint n = (mz_uint)MZ_MIN((mz_uint64)MZ_ZIP_MAX_IO_BUF_SIZE, uncomp_remaining); - if ((read_callback(callback_opaque, file_ofs, pRead_buf, n) != n) || (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pRead_buf, n) != n)) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); - return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); - } - file_ofs += n; - uncomp_crc32 = (mz_uint32)mz_crc32(uncomp_crc32, (const mz_uint8 *)pRead_buf, n); - uncomp_remaining -= n; - cur_archive_file_ofs += n; - } - comp_size = uncomp_size; - } - else - { - mz_bool result = MZ_FALSE; - mz_zip_writer_add_state state; - tdefl_compressor *pComp = (tdefl_compressor *)pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, sizeof(tdefl_compressor)); - if (!pComp) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); - return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - } - - state.m_pZip = pZip; - state.m_cur_archive_file_ofs = cur_archive_file_ofs; - state.m_comp_size = 0; - - if (tdefl_init(pComp, mz_zip_writer_add_put_buf_callback, &state, tdefl_create_comp_flags_from_zip_params(level, -15, MZ_DEFAULT_STRATEGY)) != TDEFL_STATUS_OKAY) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); - pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); - return mz_zip_set_error(pZip, MZ_ZIP_INTERNAL_ERROR); - } - - for (;;) - { - size_t in_buf_size = (mz_uint32)MZ_MIN(uncomp_remaining, (mz_uint64)MZ_ZIP_MAX_IO_BUF_SIZE); - tdefl_status status; - tdefl_flush flush = TDEFL_NO_FLUSH; - - if (read_callback(callback_opaque, file_ofs, pRead_buf, in_buf_size)!= in_buf_size) - { - mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); - break; - } - - file_ofs += in_buf_size; - uncomp_crc32 = (mz_uint32)mz_crc32(uncomp_crc32, (const mz_uint8 *)pRead_buf, in_buf_size); - uncomp_remaining -= in_buf_size; - - if (pZip->m_pNeeds_keepalive != NULL && pZip->m_pNeeds_keepalive(pZip->m_pIO_opaque)) - flush = TDEFL_FULL_FLUSH; - - status = tdefl_compress_buffer(pComp, pRead_buf, in_buf_size, uncomp_remaining ? flush : TDEFL_FINISH); - if (status == TDEFL_STATUS_DONE) - { - result = MZ_TRUE; - break; - } - else if (status != TDEFL_STATUS_OKAY) - { - mz_zip_set_error(pZip, MZ_ZIP_COMPRESSION_FAILED); - break; - } - } - - pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); - - if (!result) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); - return MZ_FALSE; - } - - comp_size = state.m_comp_size; - cur_archive_file_ofs = state.m_cur_archive_file_ofs; - } - - pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); - } - - { - mz_uint8 local_dir_footer[MZ_ZIP_DATA_DESCRIPTER_SIZE64]; - mz_uint32 local_dir_footer_size = MZ_ZIP_DATA_DESCRIPTER_SIZE32; - - MZ_WRITE_LE32(local_dir_footer + 0, MZ_ZIP_DATA_DESCRIPTOR_ID); - MZ_WRITE_LE32(local_dir_footer + 4, uncomp_crc32); - if (pExtra_data == NULL) - { - if (comp_size > MZ_UINT32_MAX) - return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); - - MZ_WRITE_LE32(local_dir_footer + 8, comp_size); - MZ_WRITE_LE32(local_dir_footer + 12, uncomp_size); - } - else - { - MZ_WRITE_LE64(local_dir_footer + 8, comp_size); - MZ_WRITE_LE64(local_dir_footer + 16, uncomp_size); - local_dir_footer_size = MZ_ZIP_DATA_DESCRIPTER_SIZE64; - } - - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, local_dir_footer, local_dir_footer_size) != local_dir_footer_size) - return MZ_FALSE; - - cur_archive_file_ofs += local_dir_footer_size; - } - - if (pExtra_data != NULL) - { - extra_size = mz_zip_writer_create_zip64_extra_data(extra_data, (uncomp_size >= MZ_UINT32_MAX) ? &uncomp_size : NULL, - (uncomp_size >= MZ_UINT32_MAX) ? &comp_size : NULL, (local_dir_header_ofs >= MZ_UINT32_MAX) ? &local_dir_header_ofs : NULL); - } - - if (!mz_zip_writer_add_to_central_dir(pZip, pArchive_name, (mz_uint16)archive_name_size, pExtra_data, extra_size, pComment, comment_size, - uncomp_size, comp_size, uncomp_crc32, method, gen_flags, dos_time, dos_date, local_dir_header_ofs, ext_attributes, - user_extra_data_central, user_extra_data_central_len)) - return MZ_FALSE; - - pZip->m_total_files++; - pZip->m_archive_size = cur_archive_file_ofs; - - return MZ_TRUE; -} - -#ifndef MINIZ_NO_STDIO - -static size_t mz_file_read_func_stdio(void *pOpaque, mz_uint64 file_ofs, void *pBuf, size_t n) -{ - MZ_FILE *pSrc_file = (MZ_FILE *)pOpaque; - mz_int64 cur_ofs = MZ_FTELL64(pSrc_file); - - if (((mz_int64)file_ofs < 0) || (((cur_ofs != (mz_int64)file_ofs)) && (MZ_FSEEK64(pSrc_file, (mz_int64)file_ofs, SEEK_SET)))) - return 0; - - return MZ_FREAD(pBuf, 1, n, pSrc_file); -} - -mz_bool mz_zip_writer_add_cfile(mz_zip_archive *pZip, const char *pArchive_name, MZ_FILE *pSrc_file, mz_uint64 size_to_add, const MZ_TIME_T *pFile_time, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags, - const char *user_extra_data, mz_uint user_extra_data_len, const char *user_extra_data_central, mz_uint user_extra_data_central_len) -{ - return mz_zip_writer_add_read_buf_callback(pZip, pArchive_name, mz_file_read_func_stdio, pSrc_file, size_to_add, pFile_time, pComment, comment_size, level_and_flags, - user_extra_data, user_extra_data_len, user_extra_data_central, user_extra_data_central_len); -} - -mz_bool mz_zip_writer_add_file(mz_zip_archive *pZip, const char *pArchive_name, const char *pSrc_filename, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags) -{ - MZ_FILE *pSrc_file = NULL; - mz_uint64 uncomp_size = 0; - MZ_TIME_T file_modified_time; - MZ_TIME_T *pFile_time = NULL; - mz_bool status; - - memset(&file_modified_time, 0, sizeof(file_modified_time)); - -#if !defined(MINIZ_NO_TIME) && !defined(MINIZ_NO_STDIO) - pFile_time = &file_modified_time; - if (!mz_zip_get_file_modified_time(pSrc_filename, &file_modified_time)) - return mz_zip_set_error(pZip, MZ_ZIP_FILE_STAT_FAILED); -#endif - - pSrc_file = MZ_FOPEN(pSrc_filename, "rb"); - if (!pSrc_file) - return mz_zip_set_error(pZip, MZ_ZIP_FILE_OPEN_FAILED); - - MZ_FSEEK64(pSrc_file, 0, SEEK_END); - uncomp_size = MZ_FTELL64(pSrc_file); - MZ_FSEEK64(pSrc_file, 0, SEEK_SET); - - status = mz_zip_writer_add_cfile(pZip, pArchive_name, pSrc_file, uncomp_size, pFile_time, pComment, comment_size, level_and_flags, NULL, 0, NULL, 0); - - MZ_FCLOSE(pSrc_file); - - return status; -} -#endif /* #ifndef MINIZ_NO_STDIO */ - -static mz_bool mz_zip_writer_update_zip64_extension_block(mz_zip_array *pNew_ext, mz_zip_archive *pZip, const mz_uint8 *pExt, uint32_t ext_len, mz_uint64 *pComp_size, mz_uint64 *pUncomp_size, mz_uint64 *pLocal_header_ofs, mz_uint32 *pDisk_start) -{ - /* + 64 should be enough for any new zip64 data */ - if (!mz_zip_array_reserve(pZip, pNew_ext, ext_len + 64, MZ_FALSE)) - return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - - mz_zip_array_resize(pZip, pNew_ext, 0, MZ_FALSE); - - if ((pUncomp_size) || (pComp_size) || (pLocal_header_ofs) || (pDisk_start)) - { - mz_uint8 new_ext_block[64]; - mz_uint8 *pDst = new_ext_block; - mz_write_le16(pDst, MZ_ZIP64_EXTENDED_INFORMATION_FIELD_HEADER_ID); - mz_write_le16(pDst + sizeof(mz_uint16), 0); - pDst += sizeof(mz_uint16) * 2; - - if (pUncomp_size) - { - mz_write_le64(pDst, *pUncomp_size); - pDst += sizeof(mz_uint64); - } - - if (pComp_size) - { - mz_write_le64(pDst, *pComp_size); - pDst += sizeof(mz_uint64); - } - - if (pLocal_header_ofs) - { - mz_write_le64(pDst, *pLocal_header_ofs); - pDst += sizeof(mz_uint64); - } - - if (pDisk_start) - { - mz_write_le32(pDst, *pDisk_start); - pDst += sizeof(mz_uint32); - } - - mz_write_le16(new_ext_block + sizeof(mz_uint16), (mz_uint16)((pDst - new_ext_block) - sizeof(mz_uint16) * 2)); - - if (!mz_zip_array_push_back(pZip, pNew_ext, new_ext_block, pDst - new_ext_block)) - return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - } - - if ((pExt) && (ext_len)) - { - mz_uint32 extra_size_remaining = ext_len; - const mz_uint8 *pExtra_data = pExt; - - do - { - mz_uint32 field_id, field_data_size, field_total_size; - - if (extra_size_remaining < (sizeof(mz_uint16) * 2)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - - field_id = MZ_READ_LE16(pExtra_data); - field_data_size = MZ_READ_LE16(pExtra_data + sizeof(mz_uint16)); - field_total_size = field_data_size + sizeof(mz_uint16) * 2; - - if (field_total_size > extra_size_remaining) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - - if (field_id != MZ_ZIP64_EXTENDED_INFORMATION_FIELD_HEADER_ID) - { - if (!mz_zip_array_push_back(pZip, pNew_ext, pExtra_data, field_total_size)) - return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - } - - pExtra_data += field_total_size; - extra_size_remaining -= field_total_size; - } while (extra_size_remaining); - } - - return MZ_TRUE; -} - -/* TODO: This func is now pretty freakin complex due to zip64, split it up? */ -mz_bool mz_zip_writer_add_from_zip_reader(mz_zip_archive *pZip, mz_zip_archive *pSource_zip, mz_uint src_file_index) -{ - mz_uint n, bit_flags, num_alignment_padding_bytes, src_central_dir_following_data_size; - mz_uint64 src_archive_bytes_remaining, local_dir_header_ofs; - mz_uint64 cur_src_file_ofs, cur_dst_file_ofs; - mz_uint32 local_header_u32[(MZ_ZIP_LOCAL_DIR_HEADER_SIZE + sizeof(mz_uint32) - 1) / sizeof(mz_uint32)]; - mz_uint8 *pLocal_header = (mz_uint8 *)local_header_u32; - mz_uint8 new_central_header[MZ_ZIP_CENTRAL_DIR_HEADER_SIZE]; - size_t orig_central_dir_size; - mz_zip_internal_state *pState; - void *pBuf; - const mz_uint8 *pSrc_central_header; - mz_zip_archive_file_stat src_file_stat; - mz_uint32 src_filename_len, src_comment_len, src_ext_len; - mz_uint32 local_header_filename_size, local_header_extra_len; - mz_uint64 local_header_comp_size, local_header_uncomp_size; - mz_bool found_zip64_ext_data_in_ldir = MZ_FALSE; - - /* Sanity checks */ - if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING) || (!pSource_zip->m_pRead)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - - pState = pZip->m_pState; - - /* Don't support copying files from zip64 archives to non-zip64, even though in some cases this is possible */ - if ((pSource_zip->m_pState->m_zip64) && (!pZip->m_pState->m_zip64)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - - /* Get pointer to the source central dir header and crack it */ - if (NULL == (pSrc_central_header = mz_zip_get_cdh(pSource_zip, src_file_index))) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - - if (MZ_READ_LE32(pSrc_central_header + MZ_ZIP_CDH_SIG_OFS) != MZ_ZIP_CENTRAL_DIR_HEADER_SIG) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - - src_filename_len = MZ_READ_LE16(pSrc_central_header + MZ_ZIP_CDH_FILENAME_LEN_OFS); - src_comment_len = MZ_READ_LE16(pSrc_central_header + MZ_ZIP_CDH_COMMENT_LEN_OFS); - src_ext_len = MZ_READ_LE16(pSrc_central_header + MZ_ZIP_CDH_EXTRA_LEN_OFS); - src_central_dir_following_data_size = src_filename_len + src_ext_len + src_comment_len; - - /* TODO: We don't support central dir's >= MZ_UINT32_MAX bytes right now (+32 fudge factor in case we need to add more extra data) */ - if ((pState->m_central_dir.m_size + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + src_central_dir_following_data_size + 32) >= MZ_UINT32_MAX) - return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_CDIR_SIZE); - - num_alignment_padding_bytes = mz_zip_writer_compute_padding_needed_for_file_alignment(pZip); - - if (!pState->m_zip64) - { - if (pZip->m_total_files == MZ_UINT16_MAX) - return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); - } - else - { - /* TODO: Our zip64 support still has some 32-bit limits that may not be worth fixing. */ - if (pZip->m_total_files == MZ_UINT32_MAX) - return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); - } - - if (!mz_zip_file_stat_internal(pSource_zip, src_file_index, pSrc_central_header, &src_file_stat, NULL)) - return MZ_FALSE; - - cur_src_file_ofs = src_file_stat.m_local_header_ofs; - cur_dst_file_ofs = pZip->m_archive_size; - - /* Read the source archive's local dir header */ - if (pSource_zip->m_pRead(pSource_zip->m_pIO_opaque, cur_src_file_ofs, pLocal_header, MZ_ZIP_LOCAL_DIR_HEADER_SIZE) != MZ_ZIP_LOCAL_DIR_HEADER_SIZE) - return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); - - if (MZ_READ_LE32(pLocal_header) != MZ_ZIP_LOCAL_DIR_HEADER_SIG) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - - cur_src_file_ofs += MZ_ZIP_LOCAL_DIR_HEADER_SIZE; - - /* Compute the total size we need to copy (filename+extra data+compressed data) */ - local_header_filename_size = MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_FILENAME_LEN_OFS); - local_header_extra_len = MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_EXTRA_LEN_OFS); - local_header_comp_size = MZ_READ_LE32(pLocal_header + MZ_ZIP_LDH_COMPRESSED_SIZE_OFS); - local_header_uncomp_size = MZ_READ_LE32(pLocal_header + MZ_ZIP_LDH_DECOMPRESSED_SIZE_OFS); - src_archive_bytes_remaining = local_header_filename_size + local_header_extra_len + src_file_stat.m_comp_size; - - /* Try to find a zip64 extended information field */ - if ((local_header_extra_len) && ((local_header_comp_size == MZ_UINT32_MAX) || (local_header_uncomp_size == MZ_UINT32_MAX))) - { - mz_zip_array file_data_array; - const mz_uint8 *pExtra_data; - mz_uint32 extra_size_remaining = local_header_extra_len; - - mz_zip_array_init(&file_data_array, 1); - if (!mz_zip_array_resize(pZip, &file_data_array, local_header_extra_len, MZ_FALSE)) - { - return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - } - - if (pSource_zip->m_pRead(pSource_zip->m_pIO_opaque, src_file_stat.m_local_header_ofs + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + local_header_filename_size, file_data_array.m_p, local_header_extra_len) != local_header_extra_len) - { - mz_zip_array_clear(pZip, &file_data_array); - return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); - } - - pExtra_data = (const mz_uint8 *)file_data_array.m_p; - - do - { - mz_uint32 field_id, field_data_size, field_total_size; - - if (extra_size_remaining < (sizeof(mz_uint16) * 2)) - { - mz_zip_array_clear(pZip, &file_data_array); - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - } - - field_id = MZ_READ_LE16(pExtra_data); - field_data_size = MZ_READ_LE16(pExtra_data + sizeof(mz_uint16)); - field_total_size = field_data_size + sizeof(mz_uint16) * 2; - - if (field_total_size > extra_size_remaining) - { - mz_zip_array_clear(pZip, &file_data_array); - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - } - - if (field_id == MZ_ZIP64_EXTENDED_INFORMATION_FIELD_HEADER_ID) - { - const mz_uint8 *pSrc_field_data = pExtra_data + sizeof(mz_uint32); - - if (field_data_size < sizeof(mz_uint64) * 2) - { - mz_zip_array_clear(pZip, &file_data_array); - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); - } - - local_header_uncomp_size = MZ_READ_LE64(pSrc_field_data); - local_header_comp_size = MZ_READ_LE64(pSrc_field_data + sizeof(mz_uint64)); /* may be 0 if there's a descriptor */ - - found_zip64_ext_data_in_ldir = MZ_TRUE; - break; - } - - pExtra_data += field_total_size; - extra_size_remaining -= field_total_size; - } while (extra_size_remaining); - - mz_zip_array_clear(pZip, &file_data_array); - } - - if (!pState->m_zip64) - { - /* Try to detect if the new archive will most likely wind up too big and bail early (+(sizeof(mz_uint32) * 4) is for the optional descriptor which could be present, +64 is a fudge factor). */ - /* We also check when the archive is finalized so this doesn't need to be perfect. */ - mz_uint64 approx_new_archive_size = cur_dst_file_ofs + num_alignment_padding_bytes + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + src_archive_bytes_remaining + (sizeof(mz_uint32) * 4) + - pState->m_central_dir.m_size + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + src_central_dir_following_data_size + MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE + 64; - - if (approx_new_archive_size >= MZ_UINT32_MAX) - return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); - } - - /* Write dest archive padding */ - if (!mz_zip_writer_write_zeros(pZip, cur_dst_file_ofs, num_alignment_padding_bytes)) - return MZ_FALSE; - - cur_dst_file_ofs += num_alignment_padding_bytes; - - local_dir_header_ofs = cur_dst_file_ofs; - if (pZip->m_file_offset_alignment) - { - MZ_ASSERT((local_dir_header_ofs & (pZip->m_file_offset_alignment - 1)) == 0); - } - - /* The original zip's local header+ext block doesn't change, even with zip64, so we can just copy it over to the dest zip */ - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_dst_file_ofs, pLocal_header, MZ_ZIP_LOCAL_DIR_HEADER_SIZE) != MZ_ZIP_LOCAL_DIR_HEADER_SIZE) - return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); - - cur_dst_file_ofs += MZ_ZIP_LOCAL_DIR_HEADER_SIZE; - - /* Copy over the source archive bytes to the dest archive, also ensure we have enough buf space to handle optional data descriptor */ - if (NULL == (pBuf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, (size_t)MZ_MAX(32U, MZ_MIN((mz_uint64)MZ_ZIP_MAX_IO_BUF_SIZE, src_archive_bytes_remaining))))) - return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - - while (src_archive_bytes_remaining) - { - n = (mz_uint)MZ_MIN((mz_uint64)MZ_ZIP_MAX_IO_BUF_SIZE, src_archive_bytes_remaining); - if (pSource_zip->m_pRead(pSource_zip->m_pIO_opaque, cur_src_file_ofs, pBuf, n) != n) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); - return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); - } - cur_src_file_ofs += n; - - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_dst_file_ofs, pBuf, n) != n) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); - return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); - } - cur_dst_file_ofs += n; - - src_archive_bytes_remaining -= n; - } - - /* Now deal with the optional data descriptor */ - bit_flags = MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_BIT_FLAG_OFS); - if (bit_flags & 8) - { - /* Copy data descriptor */ - if ((pSource_zip->m_pState->m_zip64) || (found_zip64_ext_data_in_ldir)) - { - /* src is zip64, dest must be zip64 */ - - /* name uint32_t's */ - /* id 1 (optional in zip64?) */ - /* crc 1 */ - /* comp_size 2 */ - /* uncomp_size 2 */ - if (pSource_zip->m_pRead(pSource_zip->m_pIO_opaque, cur_src_file_ofs, pBuf, (sizeof(mz_uint32) * 6)) != (sizeof(mz_uint32) * 6)) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); - return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); - } - - n = sizeof(mz_uint32) * ((MZ_READ_LE32(pBuf) == MZ_ZIP_DATA_DESCRIPTOR_ID) ? 6 : 5); - } - else - { - /* src is NOT zip64 */ - mz_bool has_id; - - if (pSource_zip->m_pRead(pSource_zip->m_pIO_opaque, cur_src_file_ofs, pBuf, sizeof(mz_uint32) * 4) != sizeof(mz_uint32) * 4) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); - return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); - } - - has_id = (MZ_READ_LE32(pBuf) == MZ_ZIP_DATA_DESCRIPTOR_ID); - - if (pZip->m_pState->m_zip64) - { - /* dest is zip64, so upgrade the data descriptor */ - const mz_uint32 *pSrc_descriptor = (const mz_uint32 *)((const mz_uint8 *)pBuf + (has_id ? sizeof(mz_uint32) : 0)); - const mz_uint32 src_crc32 = pSrc_descriptor[0]; - const mz_uint64 src_comp_size = pSrc_descriptor[1]; - const mz_uint64 src_uncomp_size = pSrc_descriptor[2]; - - mz_write_le32((mz_uint8 *)pBuf, MZ_ZIP_DATA_DESCRIPTOR_ID); - mz_write_le32((mz_uint8 *)pBuf + sizeof(mz_uint32) * 1, src_crc32); - mz_write_le64((mz_uint8 *)pBuf + sizeof(mz_uint32) * 2, src_comp_size); - mz_write_le64((mz_uint8 *)pBuf + sizeof(mz_uint32) * 4, src_uncomp_size); - - n = sizeof(mz_uint32) * 6; - } - else - { - /* dest is NOT zip64, just copy it as-is */ - n = sizeof(mz_uint32) * (has_id ? 4 : 3); - } - } - - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_dst_file_ofs, pBuf, n) != n) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); - return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); - } - - cur_src_file_ofs += n; - cur_dst_file_ofs += n; - } - pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); - - /* Finally, add the new central dir header */ - orig_central_dir_size = pState->m_central_dir.m_size; - - memcpy(new_central_header, pSrc_central_header, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE); - - if (pState->m_zip64) - { - /* This is the painful part: We need to write a new central dir header + ext block with updated zip64 fields, and ensure the old fields (if any) are not included. */ - const mz_uint8 *pSrc_ext = pSrc_central_header + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + src_filename_len; - mz_zip_array new_ext_block; - - mz_zip_array_init(&new_ext_block, sizeof(mz_uint8)); - - MZ_WRITE_LE32(new_central_header + MZ_ZIP_CDH_COMPRESSED_SIZE_OFS, MZ_UINT32_MAX); - MZ_WRITE_LE32(new_central_header + MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS, MZ_UINT32_MAX); - MZ_WRITE_LE32(new_central_header + MZ_ZIP_CDH_LOCAL_HEADER_OFS, MZ_UINT32_MAX); - - if (!mz_zip_writer_update_zip64_extension_block(&new_ext_block, pZip, pSrc_ext, src_ext_len, &src_file_stat.m_comp_size, &src_file_stat.m_uncomp_size, &local_dir_header_ofs, NULL)) - { - mz_zip_array_clear(pZip, &new_ext_block); - return MZ_FALSE; - } - - MZ_WRITE_LE16(new_central_header + MZ_ZIP_CDH_EXTRA_LEN_OFS, new_ext_block.m_size); - - if (!mz_zip_array_push_back(pZip, &pState->m_central_dir, new_central_header, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE)) - { - mz_zip_array_clear(pZip, &new_ext_block); - return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - } - - if (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pSrc_central_header + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE, src_filename_len)) - { - mz_zip_array_clear(pZip, &new_ext_block); - mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, MZ_FALSE); - return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - } - - if (!mz_zip_array_push_back(pZip, &pState->m_central_dir, new_ext_block.m_p, new_ext_block.m_size)) - { - mz_zip_array_clear(pZip, &new_ext_block); - mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, MZ_FALSE); - return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - } - - if (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pSrc_central_header + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + src_filename_len + src_ext_len, src_comment_len)) - { - mz_zip_array_clear(pZip, &new_ext_block); - mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, MZ_FALSE); - return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - } - - mz_zip_array_clear(pZip, &new_ext_block); - } - else - { - /* sanity checks */ - if (cur_dst_file_ofs > MZ_UINT32_MAX) - return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); - - if (local_dir_header_ofs >= MZ_UINT32_MAX) - return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); - - MZ_WRITE_LE32(new_central_header + MZ_ZIP_CDH_LOCAL_HEADER_OFS, local_dir_header_ofs); - - if (!mz_zip_array_push_back(pZip, &pState->m_central_dir, new_central_header, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE)) - return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - - if (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pSrc_central_header + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE, src_central_dir_following_data_size)) - { - mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, MZ_FALSE); - return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - } - } - - /* This shouldn't trigger unless we screwed up during the initial sanity checks */ - if (pState->m_central_dir.m_size >= MZ_UINT32_MAX) - { - /* TODO: Support central dirs >= 32-bits in size */ - mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, MZ_FALSE); - return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_CDIR_SIZE); - } - - n = (mz_uint32)orig_central_dir_size; - if (!mz_zip_array_push_back(pZip, &pState->m_central_dir_offsets, &n, 1)) - { - mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, MZ_FALSE); - return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); - } - - pZip->m_total_files++; - pZip->m_archive_size = cur_dst_file_ofs; - - return MZ_TRUE; -} - -mz_bool mz_zip_writer_finalize_archive(mz_zip_archive *pZip) -{ - mz_zip_internal_state *pState; - mz_uint64 central_dir_ofs, central_dir_size; - mz_uint8 hdr[256]; - - if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - - pState = pZip->m_pState; - - if (pState->m_zip64) - { - if ((pZip->m_total_files > MZ_UINT32_MAX) || (pState->m_central_dir.m_size >= MZ_UINT32_MAX)) - return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); - } - else - { - if ((pZip->m_total_files > MZ_UINT16_MAX) || ((pZip->m_archive_size + pState->m_central_dir.m_size + MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) > MZ_UINT32_MAX)) - return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); - } - - central_dir_ofs = 0; - central_dir_size = 0; - if (pZip->m_total_files) - { - /* Write central directory */ - central_dir_ofs = pZip->m_archive_size; - central_dir_size = pState->m_central_dir.m_size; - pZip->m_central_directory_file_ofs = central_dir_ofs; - if (pZip->m_pWrite(pZip->m_pIO_opaque, central_dir_ofs, pState->m_central_dir.m_p, (size_t)central_dir_size) != central_dir_size) - return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); - - pZip->m_archive_size += central_dir_size; - } - - if (pState->m_zip64) - { - /* Write zip64 end of central directory header */ - mz_uint64 rel_ofs_to_zip64_ecdr = pZip->m_archive_size; - - MZ_CLEAR_OBJ(hdr); - MZ_WRITE_LE32(hdr + MZ_ZIP64_ECDH_SIG_OFS, MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIG); - MZ_WRITE_LE64(hdr + MZ_ZIP64_ECDH_SIZE_OF_RECORD_OFS, MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE - sizeof(mz_uint32) - sizeof(mz_uint64)); - MZ_WRITE_LE16(hdr + MZ_ZIP64_ECDH_VERSION_MADE_BY_OFS, 0x031E); /* TODO: always Unix */ - MZ_WRITE_LE16(hdr + MZ_ZIP64_ECDH_VERSION_NEEDED_OFS, 0x002D); - MZ_WRITE_LE64(hdr + MZ_ZIP64_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS, pZip->m_total_files); - MZ_WRITE_LE64(hdr + MZ_ZIP64_ECDH_CDIR_TOTAL_ENTRIES_OFS, pZip->m_total_files); - MZ_WRITE_LE64(hdr + MZ_ZIP64_ECDH_CDIR_SIZE_OFS, central_dir_size); - MZ_WRITE_LE64(hdr + MZ_ZIP64_ECDH_CDIR_OFS_OFS, central_dir_ofs); - if (pZip->m_pWrite(pZip->m_pIO_opaque, pZip->m_archive_size, hdr, MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE) != MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE) - return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); - - pZip->m_archive_size += MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE; - - /* Write zip64 end of central directory locator */ - MZ_CLEAR_OBJ(hdr); - MZ_WRITE_LE32(hdr + MZ_ZIP64_ECDL_SIG_OFS, MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIG); - MZ_WRITE_LE64(hdr + MZ_ZIP64_ECDL_REL_OFS_TO_ZIP64_ECDR_OFS, rel_ofs_to_zip64_ecdr); - MZ_WRITE_LE32(hdr + MZ_ZIP64_ECDL_TOTAL_NUMBER_OF_DISKS_OFS, 1); - if (pZip->m_pWrite(pZip->m_pIO_opaque, pZip->m_archive_size, hdr, MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE) != MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE) - return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); - - pZip->m_archive_size += MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE; - } - - /* Write end of central directory record */ - MZ_CLEAR_OBJ(hdr); - MZ_WRITE_LE32(hdr + MZ_ZIP_ECDH_SIG_OFS, MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG); - MZ_WRITE_LE16(hdr + MZ_ZIP_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS, MZ_MIN(MZ_UINT16_MAX, pZip->m_total_files)); - MZ_WRITE_LE16(hdr + MZ_ZIP_ECDH_CDIR_TOTAL_ENTRIES_OFS, MZ_MIN(MZ_UINT16_MAX, pZip->m_total_files)); - MZ_WRITE_LE32(hdr + MZ_ZIP_ECDH_CDIR_SIZE_OFS, MZ_MIN(MZ_UINT32_MAX, central_dir_size)); - MZ_WRITE_LE32(hdr + MZ_ZIP_ECDH_CDIR_OFS_OFS, MZ_MIN(MZ_UINT32_MAX, central_dir_ofs)); - - if (pZip->m_pWrite(pZip->m_pIO_opaque, pZip->m_archive_size, hdr, MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) != MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) - return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); - -#ifndef MINIZ_NO_STDIO - if ((pState->m_pFile) && (MZ_FFLUSH(pState->m_pFile) == EOF)) - return mz_zip_set_error(pZip, MZ_ZIP_FILE_CLOSE_FAILED); -#endif /* #ifndef MINIZ_NO_STDIO */ - - pZip->m_archive_size += MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE; - - pZip->m_zip_mode = MZ_ZIP_MODE_WRITING_HAS_BEEN_FINALIZED; - return MZ_TRUE; -} - -mz_bool mz_zip_writer_finalize_heap_archive(mz_zip_archive *pZip, void **ppBuf, size_t *pSize) -{ - if ((!ppBuf) || (!pSize)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - - *ppBuf = NULL; - *pSize = 0; - - if ((!pZip) || (!pZip->m_pState)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - - if (pZip->m_pWrite != mz_zip_heap_write_func) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - - if (!mz_zip_writer_finalize_archive(pZip)) - return MZ_FALSE; - - *ppBuf = pZip->m_pState->m_pMem; - *pSize = pZip->m_pState->m_mem_size; - pZip->m_pState->m_pMem = NULL; - pZip->m_pState->m_mem_size = pZip->m_pState->m_mem_capacity = 0; - - return MZ_TRUE; -} - -mz_bool mz_zip_writer_end(mz_zip_archive *pZip) -{ - return mz_zip_writer_end_internal(pZip, MZ_TRUE); -} - -#ifndef MINIZ_NO_STDIO -mz_bool mz_zip_add_mem_to_archive_file_in_place(const char *pZip_filename, const char *pArchive_name, const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags) -{ - return mz_zip_add_mem_to_archive_file_in_place_v2(pZip_filename, pArchive_name, pBuf, buf_size, pComment, comment_size, level_and_flags, NULL); -} - -mz_bool mz_zip_add_mem_to_archive_file_in_place_v2(const char *pZip_filename, const char *pArchive_name, const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags, mz_zip_error *pErr) -{ - mz_bool status, created_new_archive = MZ_FALSE; - mz_zip_archive zip_archive; - struct MZ_FILE_STAT_STRUCT file_stat; - mz_zip_error actual_err = MZ_ZIP_NO_ERROR; - - mz_zip_zero_struct(&zip_archive); - if ((int)level_and_flags < 0) - level_and_flags = MZ_DEFAULT_LEVEL; - - if ((!pZip_filename) || (!pArchive_name) || ((buf_size) && (!pBuf)) || ((comment_size) && (!pComment)) || ((level_and_flags & 0xF) > MZ_UBER_COMPRESSION)) - { - if (pErr) - *pErr = MZ_ZIP_INVALID_PARAMETER; - return MZ_FALSE; - } - - if (!mz_zip_writer_validate_archive_name(pArchive_name)) - { - if (pErr) - *pErr = MZ_ZIP_INVALID_FILENAME; - return MZ_FALSE; - } - - /* Important: The regular non-64 bit version of stat() can fail here if the file is very large, which could cause the archive to be overwritten. */ - /* So be sure to compile with _LARGEFILE64_SOURCE 1 */ - if (MZ_FILE_STAT(pZip_filename, &file_stat) != 0) - { - /* Create a new archive. */ - if (!mz_zip_writer_init_file_v2(&zip_archive, pZip_filename, 0, level_and_flags)) - { - if (pErr) - *pErr = zip_archive.m_last_error; - return MZ_FALSE; - } - - created_new_archive = MZ_TRUE; - } - else - { - /* Append to an existing archive. */ - if (!mz_zip_reader_init_file_v2(&zip_archive, pZip_filename, level_and_flags | MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY, 0, 0)) - { - if (pErr) - *pErr = zip_archive.m_last_error; - return MZ_FALSE; - } - - if (!mz_zip_writer_init_from_reader_v2(&zip_archive, pZip_filename, level_and_flags)) - { - if (pErr) - *pErr = zip_archive.m_last_error; - - mz_zip_reader_end_internal(&zip_archive, MZ_FALSE); - - return MZ_FALSE; - } - } - - status = mz_zip_writer_add_mem_ex(&zip_archive, pArchive_name, pBuf, buf_size, pComment, comment_size, level_and_flags, 0, 0); - actual_err = zip_archive.m_last_error; - - /* Always finalize, even if adding failed for some reason, so we have a valid central directory. (This may not always succeed, but we can try.) */ - if (!mz_zip_writer_finalize_archive(&zip_archive)) - { - if (!actual_err) - actual_err = zip_archive.m_last_error; - - status = MZ_FALSE; - } - - if (!mz_zip_writer_end_internal(&zip_archive, status)) - { - if (!actual_err) - actual_err = zip_archive.m_last_error; - - status = MZ_FALSE; - } - - if ((!status) && (created_new_archive)) - { - /* It's a new archive and something went wrong, so just delete it. */ - int ignoredStatus = MZ_DELETE_FILE(pZip_filename); - (void)ignoredStatus; - } - - if (pErr) - *pErr = actual_err; - - return status; -} - -void *mz_zip_extract_archive_file_to_heap_v2(const char *pZip_filename, const char *pArchive_name, const char *pComment, size_t *pSize, mz_uint flags, mz_zip_error *pErr) -{ - mz_uint32 file_index; - mz_zip_archive zip_archive; - void *p = NULL; - - if (pSize) - *pSize = 0; - - if ((!pZip_filename) || (!pArchive_name)) - { - if (pErr) - *pErr = MZ_ZIP_INVALID_PARAMETER; - - return NULL; - } - - mz_zip_zero_struct(&zip_archive); - if (!mz_zip_reader_init_file_v2(&zip_archive, pZip_filename, flags | MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY, 0, 0)) - { - if (pErr) - *pErr = zip_archive.m_last_error; - - return NULL; - } - - if (mz_zip_reader_locate_file_v2(&zip_archive, pArchive_name, pComment, flags, &file_index)) - { - p = mz_zip_reader_extract_to_heap(&zip_archive, file_index, pSize, flags); - } - - mz_zip_reader_end_internal(&zip_archive, p != NULL); - - if (pErr) - *pErr = zip_archive.m_last_error; - - return p; -} - -void *mz_zip_extract_archive_file_to_heap(const char *pZip_filename, const char *pArchive_name, size_t *pSize, mz_uint flags) -{ - return mz_zip_extract_archive_file_to_heap_v2(pZip_filename, pArchive_name, NULL, pSize, flags, NULL); -} - -#endif /* #ifndef MINIZ_NO_STDIO */ - -#endif /* #ifndef MINIZ_NO_ARCHIVE_WRITING_APIS */ - -/* ------------------- Misc utils */ - -mz_zip_mode mz_zip_get_mode(mz_zip_archive *pZip) -{ - return pZip ? pZip->m_zip_mode : MZ_ZIP_MODE_INVALID; -} - -mz_zip_type mz_zip_get_type(mz_zip_archive *pZip) -{ - return pZip ? pZip->m_zip_type : MZ_ZIP_TYPE_INVALID; -} - -mz_zip_error mz_zip_set_last_error(mz_zip_archive *pZip, mz_zip_error err_num) -{ - mz_zip_error prev_err; - - if (!pZip) - return MZ_ZIP_INVALID_PARAMETER; - - prev_err = pZip->m_last_error; - - pZip->m_last_error = err_num; - return prev_err; -} - -mz_zip_error mz_zip_peek_last_error(mz_zip_archive *pZip) -{ - if (!pZip) - return MZ_ZIP_INVALID_PARAMETER; - - return pZip->m_last_error; -} - -mz_zip_error mz_zip_clear_last_error(mz_zip_archive *pZip) -{ - return mz_zip_set_last_error(pZip, MZ_ZIP_NO_ERROR); -} - -mz_zip_error mz_zip_get_last_error(mz_zip_archive *pZip) -{ - mz_zip_error prev_err; - - if (!pZip) - return MZ_ZIP_INVALID_PARAMETER; - - prev_err = pZip->m_last_error; - - pZip->m_last_error = MZ_ZIP_NO_ERROR; - return prev_err; -} - -const char *mz_zip_get_error_string(mz_zip_error mz_err) -{ - switch (mz_err) - { - case MZ_ZIP_NO_ERROR: - return "no error"; - case MZ_ZIP_UNDEFINED_ERROR: - return "undefined error"; - case MZ_ZIP_TOO_MANY_FILES: - return "too many files"; - case MZ_ZIP_FILE_TOO_LARGE: - return "file too large"; - case MZ_ZIP_UNSUPPORTED_METHOD: - return "unsupported method"; - case MZ_ZIP_UNSUPPORTED_ENCRYPTION: - return "unsupported encryption"; - case MZ_ZIP_UNSUPPORTED_FEATURE: - return "unsupported feature"; - case MZ_ZIP_FAILED_FINDING_CENTRAL_DIR: - return "failed finding central directory"; - case MZ_ZIP_NOT_AN_ARCHIVE: - return "not a ZIP archive"; - case MZ_ZIP_INVALID_HEADER_OR_CORRUPTED: - return "invalid header or archive is corrupted"; - case MZ_ZIP_UNSUPPORTED_MULTIDISK: - return "unsupported multidisk archive"; - case MZ_ZIP_DECOMPRESSION_FAILED: - return "decompression failed or archive is corrupted"; - case MZ_ZIP_COMPRESSION_FAILED: - return "compression failed"; - case MZ_ZIP_UNEXPECTED_DECOMPRESSED_SIZE: - return "unexpected decompressed size"; - case MZ_ZIP_CRC_CHECK_FAILED: - return "CRC-32 check failed"; - case MZ_ZIP_UNSUPPORTED_CDIR_SIZE: - return "unsupported central directory size"; - case MZ_ZIP_ALLOC_FAILED: - return "allocation failed"; - case MZ_ZIP_FILE_OPEN_FAILED: - return "file open failed"; - case MZ_ZIP_FILE_CREATE_FAILED: - return "file create failed"; - case MZ_ZIP_FILE_WRITE_FAILED: - return "file write failed"; - case MZ_ZIP_FILE_READ_FAILED: - return "file read failed"; - case MZ_ZIP_FILE_CLOSE_FAILED: - return "file close failed"; - case MZ_ZIP_FILE_SEEK_FAILED: - return "file seek failed"; - case MZ_ZIP_FILE_STAT_FAILED: - return "file stat failed"; - case MZ_ZIP_INVALID_PARAMETER: - return "invalid parameter"; - case MZ_ZIP_INVALID_FILENAME: - return "invalid filename"; - case MZ_ZIP_BUF_TOO_SMALL: - return "buffer too small"; - case MZ_ZIP_INTERNAL_ERROR: - return "internal error"; - case MZ_ZIP_FILE_NOT_FOUND: - return "file not found"; - case MZ_ZIP_ARCHIVE_TOO_LARGE: - return "archive is too large"; - case MZ_ZIP_VALIDATION_FAILED: - return "validation failed"; - case MZ_ZIP_WRITE_CALLBACK_FAILED: - return "write calledback failed"; - default: - break; - } - - return "unknown error"; -} - -/* Note: Just because the archive is not zip64 doesn't necessarily mean it doesn't have Zip64 extended information extra field, argh. */ -mz_bool mz_zip_is_zip64(mz_zip_archive *pZip) -{ - if ((!pZip) || (!pZip->m_pState)) - return MZ_FALSE; - - return pZip->m_pState->m_zip64; -} - -size_t mz_zip_get_central_dir_size(mz_zip_archive *pZip) -{ - if ((!pZip) || (!pZip->m_pState)) - return 0; - - return pZip->m_pState->m_central_dir.m_size; -} - -mz_uint mz_zip_reader_get_num_files(mz_zip_archive *pZip) -{ - return pZip ? pZip->m_total_files : 0; -} - -mz_uint64 mz_zip_get_archive_size(mz_zip_archive *pZip) -{ - if (!pZip) - return 0; - return pZip->m_archive_size; -} - -mz_uint64 mz_zip_get_archive_file_start_offset(mz_zip_archive *pZip) -{ - if ((!pZip) || (!pZip->m_pState)) - return 0; - return pZip->m_pState->m_file_archive_start_ofs; -} - -MZ_FILE *mz_zip_get_cfile(mz_zip_archive *pZip) -{ - if ((!pZip) || (!pZip->m_pState)) - return 0; - return pZip->m_pState->m_pFile; -} - -size_t mz_zip_read_archive_data(mz_zip_archive *pZip, mz_uint64 file_ofs, void *pBuf, size_t n) -{ - if ((!pZip) || (!pZip->m_pState) || (!pBuf) || (!pZip->m_pRead)) - return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - - return pZip->m_pRead(pZip->m_pIO_opaque, file_ofs, pBuf, n); -} - -mz_uint mz_zip_reader_get_filename(mz_zip_archive *pZip, mz_uint file_index, char *pFilename, mz_uint filename_buf_size) -{ - mz_uint n; - const mz_uint8 *p = mz_zip_get_cdh(pZip, file_index); - if (!p) - { - if (filename_buf_size) - pFilename[0] = '\0'; - mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); - return 0; - } - n = MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS); - if (filename_buf_size) - { - n = MZ_MIN(n, filename_buf_size - 1); - memcpy(pFilename, p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE, n); - pFilename[n] = '\0'; - } - return n + 1; -} - -mz_bool mz_zip_reader_file_stat(mz_zip_archive *pZip, mz_uint file_index, mz_zip_archive_file_stat *pStat) -{ - return mz_zip_file_stat_internal(pZip, file_index, mz_zip_get_cdh(pZip, file_index), pStat, NULL); -} - -mz_bool mz_zip_end(mz_zip_archive *pZip) -{ - if (!pZip) - return MZ_FALSE; - - if (pZip->m_zip_mode == MZ_ZIP_MODE_READING) - return mz_zip_reader_end(pZip); -#ifndef MINIZ_NO_ARCHIVE_WRITING_APIS - else if ((pZip->m_zip_mode == MZ_ZIP_MODE_WRITING) || (pZip->m_zip_mode == MZ_ZIP_MODE_WRITING_HAS_BEEN_FINALIZED)) - return mz_zip_writer_end(pZip); -#endif - - return MZ_FALSE; -} - -#ifdef __cplusplus -} -#endif - -#endif /*#ifndef MINIZ_NO_ARCHIVE_APIS*/ diff --git a/src/crent370/modmap/mmapbase.c b/src/crent370/modmap/mmapbase.c deleted file mode 100644 index c15f73f..0000000 --- a/src/crent370/modmap/mmapbase.c +++ /dev/null @@ -1,102 +0,0 @@ -#include "modmap.h" - -static int modmap_base_lr(MODMAP *mm, MMLR *mmlr, unsigned base); /* Label */ -static int modmap_base_rl(MODMAP *mm, MMRL *mmrl, unsigned base); /* RLD */ -static int modmap_base_sd(MODMAP *mm, MMSD *mmsd, unsigned base); /* Section */ - -__asm__("\n&FUNC SETC 'modmap_base'"); -int -modmap_base(MODMAP *mm, unsigned base) -{ - MMSD *mmsd; - unsigned n; - unsigned count; - - if (!mm) goto quit; - - count = array_count(&mm->mmsd); - - for(n=0; n < count; n++) { - mmsd = mm->mmsd[n]; - if (!mmsd) continue; - if (mmsd->type == ESD_TYPE_WX && mmsd->address == 0) continue; /* unresolved external */ - modmap_base_sd(mm, mmsd, base); - } - -quit: - return 0; -} - -__asm__("\n&FUNC SETC 'modmap_base_sd'"); -static int -modmap_base_sd(MODMAP *mm, MMSD *mmsd, unsigned base) -{ - MMLR *mmlr = NULL; - MMRL *mmrl = NULL; - unsigned n; - unsigned count; - - mmsd->address += base; /* adjust address of this section */ - - count = array_count(&mmsd->mmlr); /* label reference */ - for(n=0; n < count; n++) { - mmlr = mmsd->mmlr[n]; /* label reference */ - if (!mmlr) continue; - - modmap_base_lr(mm, mmlr, base); - } - - count = array_count(&mmsd->mmrl); /* relocation dictionary */ - for(n=0; n < count; n++) { - mmrl = mmsd->mmrl[n]; /* relocation dictionary */ - if (!mmrl) continue; - - modmap_base_rl(mm, mmrl, base); - } - - return 0; -} - -__asm__("\n&FUNC SETC 'modmap_base_lr'"); -static int -modmap_base_lr(MODMAP *mm, MMLR *mmlr, unsigned base) -{ -#if 0 - if (mmlr->address) { - if (mmlr->type != ESD_TYPE_ER && mmlr->type != ESD_TYPE_WX) { - mmlr->address += base; - } - } -#else - if (mmlr->type != ESD_TYPE_ER && mmlr->type != ESD_TYPE_WX) { - mmlr->address += base; - } -#endif - return 0; -} - -__asm__("\n&FUNC SETC 'modmap_base_rl'"); -static int -modmap_base_rl(MODMAP *mm, MMRL *mmrl, unsigned base) -{ - MMLR *mmlr = modmap_find_lr(mm, mmrl->esdid); - - if (mmlr) { - if (mmlr->address == 0) { - /* label address is zero */ - if (mmlr->type == ESD_TYPE_ER) { - /* external reference, don't adjust RLD address */ - return 0; - } else if (mmlr->type == ESD_TYPE_WX) { - /* weak external reference, don't adjust RLD address */ - return 0; - } - } - } - - /* adjust RLD address */ - mmrl->address += base; - mmrl->value += base; - - return 0; -} diff --git a/src/crent370/modmap/mmapdump.c b/src/crent370/modmap/mmapdump.c deleted file mode 100644 index 9dde2c1..0000000 --- a/src/crent370/modmap/mmapdump.c +++ /dev/null @@ -1,144 +0,0 @@ -#include "modmap.h" - -static int dumpmmlr(MODMAP *mm, MMSD *mmsd, MMLR *mmlr); -static int dumpmmsd(MODMAP *mm, MMSD *mmsd); - -__asm__("\n&FUNC SETC 'modmap_dump'"); -int -modmap_dump(MODMAP *mm) -{ - MMSD *mmsd; - unsigned n; - unsigned count; - - if (!mm) goto quit; - - count = array_count(&mm->mmsd); - wtof("Dump of module map for dataset \"%s\"", mm->fn); - - for(n=0; n < count; n++) { - mmsd = mm->mmsd[n]; - if (!mmsd) continue; - if (mmsd->type == ESD_TYPE_WX && mmsd->address == 0) continue; /* unresolved external */ - wtof("Csect Label Address Info ID ..."); - dumpmmsd(mm, mmsd); - } - -quit: - return 0; -} - -__asm__("\n&FUNC SETC 'dumpmmlr'"); -static int -dumpmmlr(MODMAP *mm, MMSD *mmsd, MMLR *mmlr) -{ - if (mmlr->type == ESD_TYPE_ER || mmlr->type == ESD_TYPE_WX) return; - wtof(" %-8.8s %08X %u %02X", mmlr->name, mmlr->address, mmlr->esdid, mmlr->type); - -quit: - return 0; -} - -__asm__("\n&FUNC SETC 'dumpmmrl'"); -static int -dumpmmrl(MODMAP *mm, MMRL *mmrl) -{ - MMSD *mmsd = modmap_find_sd(mm, mmrl->esdid); - MMLR *mmlr = mmsd ? NULL: modmap_find_lr(mm, mmrl->esdid); - const char *fmt = "???"; - char msg[80] = ""; - - /* get the RLD target address size */ - if (mmrl->size == 2) { - fmt = "==> %04X"; - } - else if (mmrl->size == 3) { - fmt = "==> %06X"; - } - else if (mmrl->size == 4) { - fmt = "==> %08X"; - } - - if (mmlr) { - sprintf(msg, fmt, mmlr->address); - if (mmlr->address == 0) { - if (mmlr->type == ESD_TYPE_ER) { - strcat(msg, " $UNRESOLVED"); - } else if (mmlr->type == ESD_TYPE_WX) { - strcat(msg, " $UNRESOLVED(W)"); - } - } - if (mmlr->type == ESD_TYPE_SD) { - fmt = " %08X A(%s) %u %02X %s"; - } - else { - fmt = " %08X V(%s) %u %02X %s"; - } - wtof(fmt, mmrl->address, mmlr->name, mmrl->esdid, mmlr->type, msg); - } - else if (mmsd) { -#if 0 - strcpy(msg, "MMSD"); - wtof(" %08X V(%s) %u %02X %s", - mmrl->address, mmsd->name, mmrl->esdid, mmsd->type, msg); -#else - strcpy(msg, "MMRL"); - wtof(" %08X A(%06X) %u %02X %s", - mmrl->address, mmrl->value, mmrl->esdid, mmrl->type, msg); -#endif - } - else { - strcpy(msg, "MMRL"); - wtof(" %08X %u %s", mmrl->address, mmrl->esdid, msg); - } - - return 0; -} - -__asm__("\n&FUNC SETC 'dumpmmsd'"); -static int -dumpmmsd(MODMAP *mm, MMSD *mmsd) -{ - MMLR *mmlr = NULL; - MMRL *mmrl = NULL; - unsigned address = 0; - unsigned n; - unsigned n2; - unsigned count; - unsigned count2; - - wtof("%-8.8s %08X %06X %u (%u bytes) %02X", - mmsd->name, mmsd->address, mmsd->size, mmsd->esdid, mmsd->size, mmsd->type); - - count = array_count(&mmsd->mmlr); - count2 = array_count(&mmsd->mmrl); - for(n=0; n < count; n++) { - mmlr = mmsd->mmlr[n]; - if (!mmlr) continue; - - /* print relocation info */ - for(n2=0; n2 < count2; n2++) { - mmrl = mmsd->mmrl[n2]; - if (!mmrl) continue; - if (mmrl->address < address) continue; - if (mmrl->address > mmlr->address) break; - dumpmmrl(mm, mmrl); - } - - address = mmlr->address; - dumpmmlr(mm, mmsd, mmlr); - } - - for(n2=0; n2 < count2; n2++) { - mmrl = mmsd->mmrl[n2]; - if (!mmrl) continue; - if (mmrl->address < address) continue; - - address = mmrl->address; - dumpmmrl(mm, mmrl); - } - wtof(" "); - -quit: - return 0; -} diff --git a/src/crent370/modmap/mmapflr.c b/src/crent370/modmap/mmapflr.c deleted file mode 100644 index 1d1bfa0..0000000 --- a/src/crent370/modmap/mmapflr.c +++ /dev/null @@ -1,32 +0,0 @@ -#include "modmap.h" - -__asm__("\n&FUNC SETC 'modmap_find_lr'"); -MMLR * -modmap_find_lr(MODMAP *mm, unsigned esdid) -{ - MMLR *mmlr = NULL; - MMSD *mmsd = NULL; - unsigned n; - unsigned n2; - unsigned count; - unsigned count2; - - if (!mm) goto quit; - - count = array_count(&mm->mmsd); - for(n=0; n < count; n++) { - mmsd = mm->mmsd[n]; - if (!mmsd) continue; - - count2 = array_count(&mmsd->mmlr); - for(n2=0; n2 < count2; n2++) { - if (mmsd->mmlr[n2]->esdid == esdid) { - mmlr = mmsd->mmlr[n2]; - goto quit; - } - } - } - -quit: - return mmlr; -} diff --git a/src/crent370/modmap/mmapfree.c b/src/crent370/modmap/mmapfree.c deleted file mode 100644 index 9929fa2..0000000 --- a/src/crent370/modmap/mmapfree.c +++ /dev/null @@ -1,12 +0,0 @@ -#include "modmap.h" - -__asm__("\n&FUNC SETC 'modmap_free'"); -void -modmap_free(MODMAP **mm) -{ - if (mm && *mm) { - mmaprset(*mm); - free(*mm); - *mm = NULL; - } -} diff --git a/src/crent370/modmap/mmapfrld.c b/src/crent370/modmap/mmapfrld.c deleted file mode 100644 index f0af6b0..0000000 --- a/src/crent370/modmap/mmapfrld.c +++ /dev/null @@ -1,11 +0,0 @@ -#include "modmap.h" - -__asm__("\n&FUNC SETC 'modmap_free_ld'"); -void -modmap_free_ld(MMLD **mmld) -{ - if (mmld && *mmld) { - free(*mmld); - *mmld = NULL; - } -} diff --git a/src/crent370/modmap/mmapfrlr.c b/src/crent370/modmap/mmapfrlr.c deleted file mode 100644 index c6b1215..0000000 --- a/src/crent370/modmap/mmapfrlr.c +++ /dev/null @@ -1,11 +0,0 @@ -#include "modmap.h" - -__asm__("\n&FUNC SETC 'modmap_free_lr'"); -void -modmap_free_lr(MMLR **mmlr) -{ - if (mmlr && *mmlr) { - free(*mmlr); - *mmlr = NULL; - } -} diff --git a/src/crent370/modmap/mmapfrrl.c b/src/crent370/modmap/mmapfrrl.c deleted file mode 100644 index 459b38a..0000000 --- a/src/crent370/modmap/mmapfrrl.c +++ /dev/null @@ -1,11 +0,0 @@ -#include "modmap.h" - -__asm__("\n&FUNC SETC 'modmap_free_rl'"); -void -modmap_free_rl(MMRL **mmrl) -{ - if (mmrl && *mmrl) { - free(*mmrl); - *mmrl = NULL; - } -} diff --git a/src/crent370/modmap/mmapfrsd.c b/src/crent370/modmap/mmapfrsd.c deleted file mode 100644 index 4075657..0000000 --- a/src/crent370/modmap/mmapfrsd.c +++ /dev/null @@ -1,38 +0,0 @@ -#include - -__asm__("\n&FUNC SETC 'modmap_free_sd'"); -void -modmap_free_sd(MMSD **mmsd) -{ - if (mmsd && *mmsd) { - if ((*mmsd)->text) { - free((*mmsd)->text); - (*mmsd)->text = NULL; - } - - if ((*mmsd)->mmlr) { - unsigned n, count = array_count(&(*mmsd)->mmlr); - - for(n=0; n < count; n++) { - if (!(*mmsd)->mmlr[n]) continue; - modmap_free_lr(&(*mmsd)->mmlr[n]); - } - - array_free(&(*mmsd)->mmlr); - } - - if ((*mmsd)->mmrl) { - unsigned n, count = array_count(&(*mmsd)->mmrl); - - for(n=0; n < count; n++) { - if (!(*mmsd)->mmrl[n]) continue; - modmap_free_rl(&(*mmsd)->mmrl[n]); - } - - array_free(&(*mmsd)->mmrl); - } - - free(*mmsd); - *mmsd = NULL; - } -} diff --git a/src/crent370/modmap/mmapfsd.c b/src/crent370/modmap/mmapfsd.c deleted file mode 100644 index 548784f..0000000 --- a/src/crent370/modmap/mmapfsd.c +++ /dev/null @@ -1,24 +0,0 @@ -#include "modmap.h" - -__asm__("\n&FUNC SETC 'modmap_find_sd'"); -MMSD * -modmap_find_sd(MODMAP *mm, unsigned esdid) -{ - MMSD *mmsd = NULL; - unsigned n; - unsigned count; - - if (!mm) goto quit; - - count = array_count(&mm->mmsd); - for(n=0; n < count; n++) { - if (!mm->mmsd[n]) continue; - if (mm->mmsd[n]->esdid == esdid) { - mmsd = mm->mmsd[n]; - goto quit; - } - } - -quit: - return mmsd; -} diff --git a/src/crent370/modmap/mmapnew.c b/src/crent370/modmap/mmapnew.c deleted file mode 100644 index 2114cea..0000000 --- a/src/crent370/modmap/mmapnew.c +++ /dev/null @@ -1,14 +0,0 @@ -#include "modmap.h" - -__asm__("\n&FUNC SETC 'modmap_new'"); -MODMAP * -modmap_new(void) -{ - MODMAP *mm = (MODMAP*) calloc(1, sizeof(MODMAP)); - - if (mm) { - mmaprset(mm); - } - - return mm; -} diff --git a/src/crent370/modmap/mmapopen.c b/src/crent370/modmap/mmapopen.c deleted file mode 100644 index 3caa436..0000000 --- a/src/crent370/modmap/mmapopen.c +++ /dev/null @@ -1,40 +0,0 @@ -#include "modmap.h" - -__asm__("\n&FUNC SETC 'modmap_open'"); -int -modmap_open(MODMAP *mm, const char *fn) -{ - int rc = 0; - int len; - - if (!mm) { - rc = -1; - goto quit; - } - - /* reset module map handle */ - mmaprset(mm); - - len = strlen(fn); - if (len >= sizeof(mm->fn)) len = sizeof(mm->fn)-1; - memcpy(mm->fn, fn, len); - mm->fn[len] = 0; - - /* open file handle */ - mm->fp = fopen(mm->fn, "rb"); - if (!mm->fp) { - rc = -1; - goto quit; - } - - /* update the dataset name from the file handle */ - if (mm->fp->member[0] > ' ') { - snprintf(mm->fn, sizeof(mm->fn), "%s(%s)", mm->fp->dataset, mm->fp->member); - } - else { - snprintf(mm->fn, sizeof(mm->fn), "%s", mm->fp->dataset); - } - -quit: - return rc; -} diff --git a/src/crent370/modmap/mmapproc.c b/src/crent370/modmap/mmapproc.c deleted file mode 100644 index 29ccf12..0000000 --- a/src/crent370/modmap/mmapproc.c +++ /dev/null @@ -1,384 +0,0 @@ -#include "modmap.h" - -static int do_cesdr(MODMAP *mm, unsigned char *buf); -static int do_rldr(MODMAP *mm, unsigned char *buf); -static int do_ctl(MODMAP *mm, unsigned char *buf); -static int do_load(MODMAP *mm, unsigned char *buf); - -__asm__("\n&FUNC SETC 'modmap_process'"); -int -modmap_process(MODMAP *mm) -{ - int rc = 0; - size_t read = 0; - unsigned char *dptr = NULL; - MMOD *mmod = NULL; - int loadtext= 0; - - /* read each record from the load module */ - for(;;) { - /* we use __aread() for record oriented i/o */ - if (__aread(mm->fp->dcb, &dptr, &read) != 0) { - /* end of file */ - mm->fp->flags |= _FILE_FLAG_EOF; - break; - } - - if (loadtext) { - loadtext = 0; - /* record *should* be text that follows a control record */ -#if 0 - wtodumpf(dptr, read, "%s", "LOADTEXT"); -#endif - do_load(mm, dptr); - continue; - } - -#if 0 - wtodumpf(dptr, read, "%s", mm->fn); -#endif - /* process the record we read */ - mmod = (MMOD*)dptr; - switch(mmod->id) { - case MMOD_ID_CTL: - do_ctl(mm, dptr); - loadtext = 1; - break; - case MMOD_ID_RLD: - do_rldr(mm, dptr); - break; - case MMOD_ID_CTLRLD: - do_ctl(mm, dptr); - do_rldr(mm, dptr); - loadtext = 1; - break; - case MMOD_ID_CTLEOS: - do_ctl(mm, dptr); - loadtext = 1; - break; - case MMOD_ID_RLDEOS: - do_rldr(mm, dptr); - break; - case MMOD_ID_CTLRLDEOS: - do_ctl(mm, dptr); - do_rldr(mm, dptr); - loadtext = 1; - break; - case MMOD_ID_CTLEOM: - do_ctl(mm, dptr); - loadtext = 1; - break; - case MMOD_ID_RLDEOM: - do_rldr(mm, dptr); - break; - case MMOD_ID_CTLRLDEOM: - do_ctl(mm, dptr); - do_rldr(mm, dptr); - loadtext = 1; - break; - case MMOD_ID_SCAT: - break; - case MMOD_ID_CESD: - do_cesdr(mm, dptr); - break; - case MMOD_ID_SYM: - break; - case MMOD_ID_IDR: - break; - default: - break; - } - } - - return rc; -} - -__asm__("\n&FUNC SETC 'do_cesdr'"); -static int -do_cesdr(MODMAP *mm, unsigned char *buf) -{ - int rc = 0; - MMCESDR *cesdr = (MMCESDR*)buf; - unsigned count = 0; - unsigned esdid; - int i; - MMESD *esd; - MMSD *mmsd; - MMLR *mmlr; - -#if 0 - wtof("Processing CESD, %u ESD entries\n", cesdr->count / sizeof(MMESD)); -#endif - esdid = (unsigned) cesdr->esdid; - - for(i=0; count < cesdr->count; i++, esdid++, count+=sizeof(MMESD)) { - esd = &cesdr->esd[i]; -#if 0 - wtof("ESDID=%04X, Type=%02X, Address=%06X, Flag=%02X, ID=%06X " - "\"%8.8s\"\n", - esdid, esd->type, GET3(esd->address), esd->flag, GET3(esd->id), - esd->symbol); -#endif - switch(esd->type & 0x7F) { - case ESD_TYPE_SD: /* ... Section Definition */ - case ESD_TYPE_PC: /* ... Private Code */ - case ESD_TYPE_QSD: /* ... Quad Aligned SD */ - case ESD_TYPE_QPC: /* ... Quad Aligned PC */ - mmsd = modmap_find_sd(mm, esdid); - if (!mmsd) { - mmsd = calloc(1, sizeof(MMSD)); - if (!mmsd) { - wtof("Out of memory\n"); - rc = -1; - goto quit; - } - mmsd->esdid = esdid; - mmsd->type = esd->type & 0x7F; - array_add(&mm->mmsd, mmsd); - } - if (mmsd->name[0] <= ' ') { - memcpy(mmsd->name, esd->symbol, sizeof(mmsd->name)); - mmsd->address = GET3(esd->address); - mmsd->size = GET3(esd->id); - } - if (strcmp(mmsd->name, " ")==0) { - memcpy(mmsd->name, "$PRIVATE", sizeof(mmsd->name)); - } - break; - case ESD_TYPE_LR: /* ... Label Reference */ - case ESD_TYPE_PR: /* ... Pseudo Register */ - /* wtodumpf(esd, sizeof(*esd), "%s LR/PR", __func__); */ - mmsd = modmap_find_sd(mm, (GET3(esd->id) & 0xFFFF)); - if (!mmsd) { - mmsd = calloc(1, sizeof(MMSD)); - if (!mmsd) { - wtof("Out of memory\n"); - rc = -1; - goto quit; - } - mmsd->esdid = (GET3(esd->id) & 0xFFFF); - mmsd->type = esd->type & 0x7F; - array_add(&mm->mmsd, mmsd); - } - if ((esd->type & 0x7F) == ESD_TYPE_PR) { - /* pseudo register */ - if (!mmsd->name[0]) { - /* unnamed section, so give it a name */ - strcpy(mmsd->name, "$PSEUDO$"); - } - } - mmlr = calloc(1, sizeof(MMLR)); - if (!mmlr) { - wtof("Out of memory\n"); - rc = -1; - goto quit; - } - memcpy(mmlr->name, esd->symbol, sizeof(mmlr->name)); - mmlr->esdid = esdid; - mmlr->address = GET3(esd->address); - array_add(&mmsd->mmlr, mmlr); - break; - case ESD_TYPE_ER: /* ... External Reference */ - case ESD_TYPE_WX: /* ... Weak External Reference */ - mmlr = calloc(1, sizeof(MMLR)); - if (!mmlr) { - wtof("Out of memory\n"); - rc = -1; - goto quit; - } - memcpy(mmlr->name, esd->symbol, sizeof(mmlr->name)); - mmlr->esdid = esdid; - mmlr->address = GET3(esd->address); - mmlr->type = esd->type & 0x7F; - array_add(&mmsd->mmlr, mmlr); - break; - - case ESD_TYPE_CM: /* ... Common */ - case ESD_TYPE_NULL: /* ... NULL */ - case ESD_TYPE_QCM: /* ... Quad Aligned CM */ - case ESD_TYPE_DPC: /* ... Deleted PC */ -#if 0 - wtof("ESDID=%04X, Type=%02X, Address=%06X, Flag=%02X, ID=%06X " - "\"%8.8s\"\n", - esdid, esd->type, GET3(esd->address), esd->flag, GET3(esd->id), - esd->symbol); -#endif - break; - } - } - -quit: - return rc; -} - -__asm__("\n&FUNC SETC 'do_rldr'"); -static int -do_rldr(MODMAP *mm, unsigned char *buf) -{ - int rc = 0; - unsigned count = 0; - MMRLDR *rldr; - MMRLD *rld; - MMRLDF *rldf; - MMSD *mmsd; - MMLR *mmlr; - MMRL *mmrl; - unsigned size; - unsigned offset; - unsigned char *p; - - /* map the buffer contents */ - rldr = (MMRLDR*)buf; - rld = (MMRLD*)rldr->data; - rldf = rld->mmrldf; - -#if 0 - wtof("Processing RLDR, %u RLD entries, %u bytes\n", - rldr->count, rldr->bytes); -#endif - - while(count < rldr->rldcnt) { -#if 0 - /* we're not interested in RLD's for the same ESD */ - if (rld->posid == rld->relid) goto next; -#endif - /* get the size of the target address */ - size = rldf->flag & RLD_FLAG_LL; - if (size == RLD_FLAG_LL2) { - size = 2; - } - else if (size == RLD_FLAG_LL3) { - size = 3; - } - else if (size == RLD_FLAG_LL4) { - size = 4; - } - else { - size = 0; - } - - /* this RLD will be an external (rld->posid != rld->relid) - ** or an internal reference (rld->posid == rld->relid) - */ - mmsd = modmap_find_sd(mm, rld->posid); - if (mmsd) { - /* add relocation record to this section */ - mmrl = calloc(1, sizeof(MMRL)); - if (mmrl) { - /* relocation ESDID */ - mmrl->esdid = rld->relid; - mmrl->address = GET3(rldf->address); - mmrl->size = size; - mmrl->unres = rldf->flag & RLD_FLAG_UNRES; - mmrl->type = rldf->flag & RLD_FLAG_TYPE; - mmrl->neg = rldf->flag & RLD_FLAG_NEG; - if (mmsd->text /*&& rld->posid == rld->relid*/) { - offset = mmrl->address - mmsd->address; -#if 0 - wtof("%s mmrl->address(%08X), mmsd->address(%08X), offset(%08X)", - __func__, mmrl->address, mmsd->address, offset); -#endif - p = mmsd->text + offset; - switch (size) { - case 2: mmrl->value = *(unsigned short*)p; break; - case 3: mmrl->value = GET3(p); break; - case 4: mmrl->value = *(unsigned *)p; break; - } - } -#if 0 - wtodumpf(mmsd, sizeof(MMSD), "%s MMSD", __func__); - wtodumpf(mmrl, sizeof(MMRL), "%s MMRL", __func__); -#endif - array_add(&mmsd->mmrl, mmrl); - } - } -#if 0 - wtof("address=%06X, type=%02X, relid=%u, posid=%u", - GET3(rldf->address), rldf->flag, rld->relid, rld->posid); -#endif -next: - buf = (unsigned char*)rldf; - if (rldf->flag & RLD_FLAG_SAME) { - count += sizeof(MMRLDF); - rldf = (MMRLDF*)(buf + sizeof(MMRLDF)); - } - else { - count += sizeof(MMRLD); - rld = (MMRLD*)(buf + sizeof(MMRLDF)); - rldf = rld->mmrldf; - } - } - -quit: - return rc; -} - -__asm__("\n&FUNC SETC 'do_ctl'"); -static int -do_ctl(MODMAP *mm, unsigned char *buf) -{ - int rc = 0; - unsigned count = 0; - MMCTL *ctl; - MMCTLD *ctld; - MMSD *mmsd; - MMLD *mmld; - - /* reset the load information */ - modmap_reset_ld(mm); - - /* map the buffer contents */ - ctl = (MMCTL*)buf; - ctld = (MMCTLD*)(ctl->data + ctl->rldcnt); - -#if 0 - wtodumpf(ctld, ctl->ctlcnt, "CTLD"); -#endif - - while(count < ctl->ctlcnt) { - /* wtof("%s ESDID(%u) SIZE(%u)", __func__, ctld->esdid, ctld->count); */ - mmsd = modmap_find_sd(mm, ctld->esdid); - if (mmsd) { - if (mmsd->text) free(mmsd->text); - mmsd->text = calloc(1, ctld->count); - } - /* remember the esdid and size for the do_load() and do_rld() processing */ - mmld = calloc(1, sizeof(MMLD)); - if (mmld) { - array_add(&mm->mmld, mmld); - mmld->esdid = ctld->esdid; - mmld->size = ctld->count; - } - ctld++; - count += sizeof(MMCTLD); - } - - return 0; -} - - -__asm__("\n&FUNC SETC 'do_load'"); -static int -do_load(MODMAP *mm, unsigned char *buf) -{ - int rc = 0; - unsigned count = 0; - MMSD *mmsd; - MMLD *mmld; - unsigned n; - - count = array_count(&mm->mmld); - for(n=0; n < count; n++) { - mmld = mm->mmld[n]; - if (!mmld) continue; - - mmsd = modmap_find_sd(mm, mmld->esdid); - if (mmsd && mmsd->text) { - memcpy(mmsd->text, buf, mmld->size); - /* wtodumpf(mmsd->text, mmld->size, "%s ESDID(%u)", __func__, mmsd->esdid); */ - } - buf += mmld->size; - } - - return 0; -} diff --git a/src/crent370/modmap/mmaprset.c b/src/crent370/modmap/mmaprset.c deleted file mode 100644 index 498ead2..0000000 --- a/src/crent370/modmap/mmaprset.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "modmap.h" - -__asm__("\n&FUNC SETC 'modmap_reset'"); -MODMAP * -modmap_reset(MODMAP *mm) -{ - if (mm) { - if (strcmp(mm->eye,MODMAP_EYE)==0) { - if (mm->fp) { - fclose(mm->fp); - mm->fp = NULL; - } - if (mm->mmsd) { - /* free the section array */ - unsigned n, count=array_count(&mm->mmsd); - - for(n=0; n < count; n++) { - if (!mm->mmsd[n]) continue; - modmap_free_sd(&mm->mmsd[n]); - } - - array_free(&mm->mmsd); - } - modmap_reset_ld(mm); - } - memset(mm, 0, sizeof(MODMAP)); - strcpy(mm->eye, MODMAP_EYE); - } - - return mm; -} diff --git a/src/crent370/modmap/mmaprsld.c b/src/crent370/modmap/mmaprsld.c deleted file mode 100644 index b81655f..0000000 --- a/src/crent370/modmap/mmaprsld.c +++ /dev/null @@ -1,24 +0,0 @@ -#include "modmap.h" - -__asm__("\n&FUNC SETC 'modmap_reset_ld'"); -MODMAP * -modmap_reset_ld(MODMAP *mm) -{ - if (mm) { - if (strcmp(mm->eye,MODMAP_EYE)==0) { - if (mm->mmld) { - /* free the text load array */ - unsigned n, count=array_count(&mm->mmld); - - for(n=0; n < count; n++) { - if (!mm->mmld[n]) continue; - modmap_free_ld(&mm->mmld[n]); - } - - array_free(&mm->mmld); - } - } - } - - return mm; -} diff --git a/src/crent370/modmap/mmapsort.c b/src/crent370/modmap/mmapsort.c deleted file mode 100644 index 8e0b4bd..0000000 --- a/src/crent370/modmap/mmapsort.c +++ /dev/null @@ -1,91 +0,0 @@ -#include "modmap.h" - -static int cmpmmsd(const void *a, const void *b); -static int sortmmsd(MMSD **mmsd, unsigned count); -static int cmpmmlr(const void *a, const void *b); -static int sortmmlr(MMLR **mmlr, unsigned count); -static int cmpmmrl(const void *a, const void *b); -static int sortmmrl(MMRL **mmrl, unsigned count); - -__asm__("\n&FUNC SETC 'modmap_sort'"); -int -modmap_sort(MODMAP *mm) -{ - unsigned n; - unsigned count; - unsigned lr; - unsigned rl; - - if (!mm) goto quit; - - count = array_count(&mm->mmsd); - if (count > 1) { - sortmmsd(mm->mmsd, count); - } - - for(n=0; n < count; n++) { - if (!mm->mmsd[n]) continue; - lr = array_count(&mm->mmsd[n]->mmlr); - if (lr > 1) { - sortmmlr(mm->mmsd[n]->mmlr, lr); - } - rl = array_count(&mm->mmsd[n]->mmrl); - if (rl > 1) { - sortmmrl(mm->mmsd[n]->mmrl, rl); - } - } - -quit: - return 0; -} - -__asm__("\n&FUNC SETC 'cmpmmsd'"); -static int -cmpmmsd(const void *a, const void *b) -{ - MMSD *asd = *(MMSD**)a; - MMSD *bsd = *(MMSD**)b; - - return ((int)asd->address - (int)bsd->address); -} - -__asm__("\n&FUNC SETC 'sortmmsd'"); -static int -sortmmsd(MMSD **mmsd, unsigned count) -{ - qsort(mmsd, count, sizeof(MMSD*), cmpmmsd); -} - -__asm__("\n&FUNC SETC 'cmpmmlr'"); -static int -cmpmmlr(const void *a, const void *b) -{ - MMLR *alr = *(MMLR**)a; - MMLR *blr = *(MMLR**)b; - - return ((int)alr->address - (int)blr->address); -} - -__asm__("\n&FUNC SETC 'sortmmlr'"); -static int -sortmmlr(MMLR **mmlr, unsigned count) -{ - qsort(mmlr, count, sizeof(MMLR*), cmpmmlr); -} - -__asm__("\n&FUNC SETC 'cmpmmrl'"); -static int -cmpmmrl(const void *a, const void *b) -{ - MMRL *arl = *(MMRL**)a; - MMRL *brl = *(MMRL**)b; - - return ((int)arl->address - (int)brl->address); -} - -__asm__("\n&FUNC SETC 'sortmmrl'"); -static int -sortmmrl(MMRL **mmrl, unsigned count) -{ - qsort(mmrl, count, sizeof(MMRL*), cmpmmrl); -} diff --git a/src/crent370/modmap/mmapzap.c b/src/crent370/modmap/mmapzap.c deleted file mode 100644 index 7ca6ffa..0000000 --- a/src/crent370/modmap/mmapzap.c +++ /dev/null @@ -1,137 +0,0 @@ -#include "modmap.h" - -static int modmap_zap_sd(MODMAP *mm, MMSD *mmsd, unsigned base, unsigned size); -static int modmap_zap_rl(MODMAP *mm, MMRL *mmrl, unsigned base, unsigned size); -static int zap(unsigned address, unsigned value, unsigned size); - -__asm__("\n&FUNC SETC 'modmap_zap'"); -int -modmap_zap(MODMAP *mm, unsigned base, unsigned size) -{ - int rc = 0; - MMSD *mmsd; - unsigned n; - unsigned count; - - if (!mm) goto quit; - - count = array_count(&mm->mmsd); - - for(n=0; n < count; n++) { - mmsd = mm->mmsd[n]; - if (!mmsd) continue; - if (mmsd->type == ESD_TYPE_WX && mmsd->address == 0) continue; /* unresolved external */ - rc = modmap_zap_sd(mm, mmsd, base, size); - if (rc) break; - } - -quit: - return rc; -} - -__asm__("\n&FUNC SETC 'modmap_zap_sd'"); -static int -modmap_zap_sd(MODMAP *mm, MMSD *mmsd, unsigned base, unsigned size) -{ - int rc = 0; - MMLR *mmlr = NULL; - MMRL *mmrl = NULL; - unsigned last = base + size - 1; - unsigned address = base; - unsigned n; - unsigned n2; - unsigned count; - unsigned count2; - - if (mmsd->address < base) return 0; - if (mmsd->address > last) return 0; - - count = array_count(&mmsd->mmlr); - count2 = array_count(&mmsd->mmrl); - for(n=0; n < count; n++) { - mmlr = mmsd->mmlr[n]; - if (!mmlr) continue; - - /* print relocation info */ - for(n2=0; n2 < count2; n2++) { - mmrl = mmsd->mmrl[n2]; - if (!mmrl) continue; - /* wtof("%s address %08X", __func__, mmrl->address); */ - if (mmrl->address < address) continue; - if (mmrl->address > mmlr->address) break; - rc = modmap_zap_rl(mm, mmrl, base, size); - if (rc) goto quit; - } - - address = mmlr->address; - } - - for(n2=0; n2 < count2; n2++) { - mmrl = mmsd->mmrl[n2]; - if (!mmrl) continue; - /* wtof("%s address %08X", __func__, mmrl->address); */ - if (mmrl->address < address) continue; - - address = mmrl->address; - rc = modmap_zap_rl(mm, mmrl, base, size); - if (rc) break; - } - -quit: - return rc; -} - -__asm__("\n&FUNC SETC 'modmap_zap_rl'"); -static int -modmap_zap_rl(MODMAP *mm, MMRL *mmrl, unsigned base, unsigned size) -{ - int rc = 0; - MMSD *mmsd = modmap_find_sd(mm, mmrl->esdid); - MMLR *mmlr = mmsd ? NULL: modmap_find_lr(mm, mmrl->esdid); - char *sdname = mmsd ? mmsd->name : "(null)"; - unsigned last = base + size - 1; - unsigned address = base; -#if 0 - wtof("%s mmsd %s", __func__, sdname); - wtof("%s mmlr %s", __func__, mmlr ? mmlr->name : "(null)"); - wtof("%s address %08X, size %u", __func__, mmrl->address, mmrl->size); -#endif - /* RLD address must be within the base and base + size area */ - if (mmrl->address < base) return 0; - if (mmrl->address > last) return 0; - - /* RLD size needs to be between 1 and 4 bytes inclusive */ - if (mmrl->size == 0) return 0; /* invalid size */ - if (mmrl->size > 4) return 0; /* invalid size */ - - if (mmlr) { - /* label reference */ - rc = try(zap, mmrl->address, mmlr->address, mmrl->size); - } - else { - /* relocation */ - rc = try(zap, mmrl->address, mmrl->value, mmrl->size); - } - - if (rc > 0xFFF) { - wtof("ZAP of %08X failed with ABEND(S%03X)", mmrl->address, (unsigned)rc >> 12); - } - else if (rc) { - wtof("ZAP of %08X failed with ABEND(U%04u)", mmrl->address, rc); - } - - return rc; -} - -__asm__("\n&FUNC SETC 'zap'"); -static int zap(unsigned address, unsigned value, unsigned size) -{ -#if 1 - wtof("ZAP(%08X) VALUE(%08X) SIZE(%u)", address, value, size); -#else - char *addr = (char *)address; - char *val = (char *)(((unsigned)&value + sizeof(unsigned)) - size); - memcpy(addr, val, size); -#endif - return 0; -} diff --git a/src/crent370/modmap/modmap.c b/src/crent370/modmap/modmap.c deleted file mode 100644 index 95ede69..0000000 --- a/src/crent370/modmap/modmap.c +++ /dev/null @@ -1,67 +0,0 @@ -#include "modmap.h" - -int -main(int argc, char **argv) -{ - int rc = 0; - MODMAP *mm = NULL; - FILE *fp = NULL; - size_t read = 0; - unsigned char *dptr = NULL; - MMOD *mmod = NULL; - unsigned char fn[88] = ""; - - /* allocate a module map handle */ - mm = modmap_new(); - if (!mm) { - wtof("Unable to allocate module map handle\n"); - rc = 12; - goto quit; - } - - while (gets(fn)) { - strtok(fn,"\n"); - if (strlen(fn) > 72 && isdigit(fn[72])) { - fn[72]=0; - strtok(fn,""); - } - if (fn[0]=='*' || fn[0]=='#') { - /* echo comment lines */ - wtof("%s\n", fn); - continue; - } - if (modmap_open(mm, fn)) { - wtof("Unable to open \"%s\" for input\n", fn); - continue; - } - - wtof("Dataset \"%s\" opened\n", mm->fn); - - if (modmap_process(mm)) { - wtof("Processing error for dataset \"%s\"\n", mm->fn); - continue; - } - - /* sort results by address */ - modmap_sort(mm); - - /* dump results via wtof() */ - modmap_dump(mm); - - /* test with new base address */ - modmap_base(mm, 0x00FF0000); - - /* dump results via wtof() */ - modmap_dump(mm); - - /* test zap of memory using module map */ - rc = modmap_zap(mm, 0x00FF0000, 65536); - - wtof("Dataset \"%s\" closed\n", mm->fn); - modmap_reset(mm); - } - -quit: - modmap_free(&mm); - return rc; -} diff --git a/src/crent370/os/osbclose.c b/src/crent370/os/osbclose.c deleted file mode 100644 index 17d7638..0000000 --- a/src/crent370/os/osbclose.c +++ /dev/null @@ -1,61 +0,0 @@ -/* OSBCLOSE.C - close DCB with options or free of DCB -** options can be NULL, "reread", "leave", "rewind", "free", "disp". -** type_t is for close,type=t and should be 0 for normal close. -*/ -#include -#include -#include "osio.h" - -void -osbclose(DCB *dcb, const char *option, int freedcb, int type_t) -{ - unsigned plist; - - if (!dcb) goto quit; - - plist = 0x80000000 | (unsigned)dcb; /* default opt=disp */ - - if (option) { - /* we don't check for "disp" since that's our default */ - if (strcmp(option, "reread")==0) { - plist |= 0x90000000; - } - else if (strcmp(option, "free")==0) { - plist |= 0xA0000000; - } - else if (strcmp(option, "leave")==0) { - plist |= 0xB0000000; - } - else if (strcmp(option, "rewind")==0) { - plist |= 0xC0000000; - } - } - - if (type_t) { - __asm__("LR 1,%0\n\tSVC 23 TCLOSE" - : : "r"(&plist) : "1", "14", "15"); - /* close,type=t leave the DCB open, so we're done */ - goto quit; - } - - /* normal close */ - __asm__("LR 1,%0\n\tSVC 20 CLOSE" - : : "r"(&plist) : "1", "14", "15"); -#if 0 - /* release buffer pool (if any) */ - __asm__("FREEPOOL ((%0))" : : "r"(dcb) : "1", "14", "15"); -#endif - /* if we have any private DCB storage we need to free it now */ - if (dcb->dcbpriv) { - free(dcb->dcbpriv); - dcb->dcbpriv = (void*)0; - } - - /* if caller is done with DCB area we'll free it now */ - if (freedcb) { - free(dcb); - } - -quit: - return; -} diff --git a/src/crent370/os/osbdcb.c b/src/crent370/os/osbdcb.c deleted file mode 100644 index 0d106af..0000000 --- a/src/crent370/os/osbdcb.c +++ /dev/null @@ -1,62 +0,0 @@ -/* OSBDCB.C - allocate a DCB for BSAM access */ -#include -#include -#include -#include "osio.h" - -DCB * -osbdcb(const char *ddname, EXITLIST *exitlist) -{ - DCB *dcb = calloc(1, sizeof(DCB)); - int i; - - if (!dcb) goto quit; - - __asm__("MVC 0(PROTOLEN,%0),PROTODCB" : : "r"(dcb)); - - if (ddname) { - if (ddname[2]==':') ddname += 3; - for (i=0; i < 8 && ddname[i]; i++) { - dcb->dcbddnam[i] = toupper(ddname[i]); - } - } - - if (exitlist) { - unsigned *list = calloc(1, sizeof(unsigned)*10); /* up to 10 exits */ - - if (!list) goto quit; - - dcb->dcbpriv = (void*)list; /* save address for cleanup */ - dcb->dcbexlst = (void*)list; - for(i=0; i < 10; i++, exitlist++) { - list[i] = exitlist->exit_code << 24 | - ((unsigned)exitlist->exit_addr & 0x00FFFFFF); - if (exitlist->exit_code & 0x80) break; - } - if (i==10) i--; - list[i] |= 0x80000000; /* tag end of exit list */ - } - -quit: - return dcb; -} -__asm__("\n" -"PROTODCB DCB DSORG=PS,MACRF=R\n" -"PROTOLEN EQU *-PROTODCB"); - -#if 0 -#define OFF(a) (unsigned) &(((DCB*)0)->a) - -int -main(int argc, char**argv) -{ - wtof("DCBDDNAM %02X", OFF(dcbddnam)); - wtof("DCBTIOT %02X", OFF(dcbtiot)); - wtof("DCBGERR %02X", OFF(dcbgerr)); - wtof("DCBIOBA %02X", OFF(dcbioba)); - wtof("DCBDIRCT %02X", OFF(dcbdirct)); - wtof("DCBLRECL %02X", OFF(dcblrecl)); - wtof("DCBEOB %02X", OFF(dcbeob)); - wtof("DCB %02X", sizeof(DCB)); -} -#endif diff --git a/src/crent370/os/osbopen.c b/src/crent370/os/osbopen.c deleted file mode 100644 index dfe2897..0000000 --- a/src/crent370/os/osbopen.c +++ /dev/null @@ -1,93 +0,0 @@ -/* OSBOPEN.C - open DCB for "read", "write" or "update" access mode */ -#include "osio.h" -#include "clibstae.h" - -static void opendcb(DCB *dcb, int typej, int *rc); - -int -osbopen(DCB *dcb, int typej, const char *mode) -{ - int rc = -1; - -#if 0 - wtof("osbopen dcb=%08X, typej=%d, mode=%s", - dcb, typej, mode ? mode : "(null)"); -#endif - if (!dcb) goto quit; - - if (mode) { - /* reset DCB MACRF options */ - switch (mode[0]) { - case 'r': /* read access */ - case 'R': - case 'i': /* input access */ - case 'I': - dcb->dcbmacr1 = DCBMRRD; - dcb->dcbmacr2 = 0; - break; - case 'w': /* write access */ - case 'W': - case 'o': /* output access */ - case 'O': - dcb->dcbmacr1 = 0; - dcb->dcbmacr2 = DCBMRWRT; - break; - case 'l': /* load access */ - case 'L': - dcb->dcbmacr1 = 0; - dcb->dcbmacr2 = DCBMRWRT + DCBMRLDM; /* MACRF=(WL) */ - break; - case 'u': /* update access */ - case 'U': - dcb->dcbmacr1 = DCBMRRD; - dcb->dcbmacr2 = DCBMRWRT; - break; - } - } - - /* use try() in case of abend */ - rc = try(opendcb, dcb, typej, &rc); - if (rc) goto quit; - - /* make sure the dataset was opened */ - if (!(dcb->dcboflg & DCBOFOPN)) { - rc = 8; /* dataset not open */ - } - -quit: - return rc; -} - -__asm__("\n&FUNC SETC 'opendcb'"); -static void -opendcb(DCB *dcb, int typej, int *rc) -{ - unsigned plist = 0x80000000 | (unsigned)dcb; - - if (dcb->dcbmacr2 & DCBMRWRT) { - /* write enabled */ - if (dcb->dcbmacr1 & DCBMRRD) { - /* and read enabled */ - plist |= 0x04000000; /* UPDATE access */ - } - else { - /* write only */ - plist |= 0x0F000000; /* OUTPUT access */ - } - } - - if (!typej) { - /* normal OPEN for a single dataset */ - __asm__("LR 1,%1\n\tSVC 19 OPEN\n\tST\t15,0(,%0)" - : : "r"(rc), "r"(&plist) : "1", "14", "15"); - } - else { - /* OPEN type J for a single dataset */ - __asm__("LR 1,%1\n\tSVC 22 OPENJ\n\tST\t15,0(,%0)" - : : "r"(rc), "r"(&plist) : "1", "14", "15"); - } - - return; -} - -__asm("OPEN ((2),OUTPUT)"); diff --git a/src/crent370/os/oscheck.c b/src/crent370/os/oscheck.c deleted file mode 100644 index 931aa65..0000000 --- a/src/crent370/os/oscheck.c +++ /dev/null @@ -1,27 +0,0 @@ -/* OSCHECK.C - wait for io completion */ -#include "osio.h" -#include "clibstae.h" - -static void check(DECB *decb); - -int -oscheck(DECB *decb) -{ - int rc; - - /* we use try() to catch any abends */ - rc = try(check,decb); - - return rc; -} - -static void -check(DECB *decb) -{ - __asm__( - "LR 1,%0\n" -" CHECK (1)" - : : "r"(decb) : "0", "1", "14", "15"); - - return; -} diff --git a/src/crent370/os/osdclose.c b/src/crent370/os/osdclose.c deleted file mode 100644 index 87fa4b7..0000000 --- a/src/crent370/os/osdclose.c +++ /dev/null @@ -1,27 +0,0 @@ -/* OSDCLOSE.C - close DCB with options or free of DCB -*/ -#include -#include -#include "osio.h" - -void -osdclose(DCB *dcb, int freedcb) -{ - unsigned plist; - - if (!dcb) goto quit; - - plist = 0x80000000 | (unsigned)dcb; /* default opt=disp */ - - /* normal close */ - __asm__("LR 1,%0\n\tSVC 20 CLOSE" - : : "r"(&plist) : "1", "14", "15"); - - /* if caller is done with DCB area we'll free it now */ - if (freedcb) { - free(dcb); - } - -quit: - return; -} diff --git a/src/crent370/os/osddcb.c b/src/crent370/os/osddcb.c deleted file mode 100644 index d22e411..0000000 --- a/src/crent370/os/osddcb.c +++ /dev/null @@ -1,34 +0,0 @@ -/* OSDDCB.C - allocate a DCB for BDAM access */ -#include -#include -#include -#include "osio.h" - -DCB * -osddcb(const char *ddname) -{ - DCB *dcb = (DCB*)0; - int i; - - __asm("LA\t0,PROTOLEN\n\t" - "ST\t0,0(,%0)" : : "r"(&i)); - - dcb = calloc(1, i); - if (!dcb) goto quit; - - __asm__("MVC 0(PROTOLEN,%0),PROTODCB" : : "r"(dcb)); - - if (ddname) { - if (ddname[2]==':') ddname += 3; - for (i=0; i < 8 && ddname[i]; i++) { - dcb->dcbddnam[i] = toupper(ddname[i]); - } - } - -quit: - return dcb; -} - __asm__("\n" -"* BDAM DCB Prototype for relative record processing\n" -"PROTODCB DCB DDNAME=A,DSORG=DA,MACRF=(RIC,WIC),OPTCD=R\n" -"PROTOLEN EQU *-PROTODCB"); diff --git a/src/crent370/os/osdopen.c b/src/crent370/os/osdopen.c deleted file mode 100644 index 888bc2b..0000000 --- a/src/crent370/os/osdopen.c +++ /dev/null @@ -1,61 +0,0 @@ -/* OSDOPEN.C - open DD for BDAM access (read+write) */ -#include -#include -#include "osio.h" -#include "clibstae.h" - -static void opendcb(DCB *dcb, int typej, int *rc); - -int -osdopen(DCB *dcb, int typej) -{ - int rc; - JFCB jfcb = {0}; - - /* use try() in case of abend */ - try(opendcb, dcb, typej, &rc); - - /* make sure the dataset was opened */ - if (!(dcb->dcboflg & DCBOFOPN)) { - rc = 8; /* dataset not open */ - } - - if (rc) { - goto quit; - } - - /* DCB's for BDAM access do not fill in the BSAM/QSAM related fields - ** so we'll use RDJFCB to get those field values and populate the - ** remaining DCB fields that we might find useful. - */ - - /* get dataset information */ - rdjfcb(dcb, &jfcb); - - dcb->dcbblksi = jfcb.jfcblksi; - dcb->dcblrecl = jfcb.jfclrecl; - -quit: - return rc; -} - -__asm__("\n&FUNC SETC 'opendcb'"); -static void -opendcb(DCB *dcb, int typej, int *rc) -{ - unsigned plist = 0x84000000 | (unsigned)dcb; /* UPDATE access */ - - if (!typej) { - /* normal OPEN for a single dataset */ - __asm__("LR 1,%1\n\tSVC 19 OPEN\n\tST\t15,0(,%0)" - : : "r"(rc), "r"(&plist) : "1", "14", "15"); - } - else { - /* OPEN type J for a single dataset */ - __asm__("LR 1,%1\n\tSVC 22 OPENJ\n\tST\t15,0(,%0)" - : : "r"(rc), "r"(&plist) : "1", "14", "15"); - } - - return; -} - diff --git a/src/crent370/os/osdread.c b/src/crent370/os/osdread.c deleted file mode 100644 index 44d75c9..0000000 --- a/src/crent370/os/osdread.c +++ /dev/null @@ -1,25 +0,0 @@ -/* OSDREAD.C - read one block from BDAM dataset by relative block number */ -#include "osio.h" - -int -osdread(DECB *decb, DCB *dcb, void *buf, int length, unsigned block) -{ - int rc = 0; - char *rec = (char*)█ - - if (length > 0) { - dcb->dcbblksi = (unsigned short)length; - } - else { - length = (int) dcb->dcbblksi; - } - - __asm__("\n" -" READ (%1),DI,(%2),(%3),(%4),0,(%5),MF=E\n" -" LR %0,15" - : "=r"(rc) : "r"(decb), "r"(dcb), "r"(buf), "r"(length), "r"(rec+1) - : "0", "1", "14", "15"); - -quit: - return rc; -} diff --git a/src/crent370/os/osdwrite.c b/src/crent370/os/osdwrite.c deleted file mode 100644 index cade62b..0000000 --- a/src/crent370/os/osdwrite.c +++ /dev/null @@ -1,25 +0,0 @@ -/* OSWRITE.C - write to dataset */ -#include "osio.h" - -int -osdwrite(DECB *decb, DCB *dcb, void *buf, int length, unsigned block) -{ - int rc = 0; - char *rec = (char*)█ - - if (length > 0) { - dcb->dcbblksi = (unsigned short)length; - } - else { - length = (int) dcb->dcbblksi; - } - - __asm__("\n" -" WRITE (%1),DI,(%2),(%3),(%4),0,(%5),MF=E\n" -" LR %0,15" - : "=r"(rc) : "r"(decb), "r"(dcb), "r"(buf), "r"(length), "r"(rec+1) - : "0", "1", "14", "15"); - -quit: - return rc; -} diff --git a/src/crent370/os/osread.c b/src/crent370/os/osread.c deleted file mode 100644 index 1fac1ab..0000000 --- a/src/crent370/os/osread.c +++ /dev/null @@ -1,14 +0,0 @@ -/* OSREAD.C - read from dataset */ -#include "osio.h" - -void -osread(DECB *decb, DCB *dcb, void *buf, int length) -{ - __asm__("\n" -" READ (%0),SF,(%1),(%2),(%3),MF=E" - : : "r"(decb), "r"(dcb), "r"(buf), "r"(length) - : "0", "1", "14", "15"); - -quit: - return; -} diff --git a/src/crent370/os/oswrite.c b/src/crent370/os/oswrite.c deleted file mode 100644 index 8d12006..0000000 --- a/src/crent370/os/oswrite.c +++ /dev/null @@ -1,28 +0,0 @@ -/* OSWRITE.C - write to dataset */ -#include "osio.h" - -int -oswrite(DECB *decb, DCB *dcb, void *buf, int length) -{ - int rc = 0; -#if 0 - wtof("oswrite decb=%08X, dcb=%08X, buf=%08X, length=%d", - decb, dcb, buf, length); -#endif - - if (length > 0) { - dcb->dcbblksi = (unsigned short)length; - } - else { - length = (int) dcb->dcbblksi; - } - - __asm__("\n" -" WRITE (%1),SF,(%2),(%3),(%4),MF=E\n" -" LR %0,15" - : "=r"(rc) : "r"(decb), "r"(dcb), "r"(buf), "r"(length) - : "0", "1", "14", "15"); - -quit: - return rc; -} diff --git a/src/crent370/os/osxcalc.c b/src/crent370/os/osxcalc.c deleted file mode 100644 index ec0a4f3..0000000 --- a/src/crent370/os/osxcalc.c +++ /dev/null @@ -1,123 +0,0 @@ -/* OSXCALC.C - given a DCB and block number, calculate MBBCCHHR */ -#include "osio.h" - -/* our lookup table for the number of tracks per cylinder on a device */ -static char trkscyl[16]; - -/*! \brief Calculates the device address for a given block. -** -** This function is called to calulate the device track address -** for any given block number that resides within the dataset -** as referenced by the dcb parameter. -** -** The calculated device address is returned in the 8 byte *mbbcchhr* -** parameter. -** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -** m is the 1 byte extent number. -** bb is the 2 byte bin number (always zero on DASD devices). -** cc is the 2 byte cylinder number. -** hh is the 2 byte track number. -** r is the 1 byte record number (block) in this track. -** ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -*/ -int -osxcalc(DCB *dcb, unsigned blkstrk, unsigned block, char *mbbcchhr) -{ - int rc = -1; - /* get DEBBASIC address from DCB and point to first DEBDASD (extent) */ - DEBBASIC *basic = (DEBBASIC*)((unsigned)dcb->dcbdebad & 0x00FFFFFF); - DEBDASD *dasd = (DEBDASD*)((unsigned)basic + sizeof(DEBBASIC)); - - /* number of extents for this dataset */ - int extents = (int) basic->debnmext; - - /* get block size on disk from DCB */ - int blksize = (int) dcb->dcbblksi; - - /* calculate relative track for this block */ - int track = blkstrk ? (block / blkstrk) : 0; - - /* calculate relative record (block) on this relative track */ - int record = blkstrk ? (block % blkstrk) : 0; - - /* use the device type to lookup the tracks per cylinder */ - int devtype = (int) (dcb->dcbdevt & 0x0F); - int trkcyl = (int) trkscyl[devtype]; - - int i; - int bb; - int cc; - int hh; - - if (trkcyl==0) goto quit; /* unsupported device */ - - /* data block record numbers start at 1, so make relative to 1 */ - record++; - -#if 0 - wtof("block %u, track %d, record %d", block, track, record); -#endif - - for(i=0; i < extents; i++, dasd++) { - hh = (int)dasd->debnmtrk; - if (track < (int)dasd->debnmtrk) { - /* bin number */ - bb = (int)(dasd->debbinum); - /* starting cyl */ - cc = (int)(dasd->debstrcc); - /* starting track + relative track */ - hh = (int)(dasd->debstrhh + track); - - /* adjust cylinder and track values */ - cc += (hh / trkcyl); - hh = (hh % trkcyl); - - /* return MBBCCHHR values */ - mbbcchhr[0] = (char)i; - mbbcchhr[1] = (char)(bb >> 8); - mbbcchhr[2] = (char)(bb & 0XFF); - mbbcchhr[3] = (char)(cc >> 8); - mbbcchhr[4] = (char)(cc & 0xFF); - mbbcchhr[5] = (char)(hh >> 8); - mbbcchhr[6] = (char)(hh & 0xFF); - mbbcchhr[7] = (char)record; -#if 0 - wtof("mbbcchhr %02X %02X%02X %02X%02X %02X%02X %02X", - mbbcchhr[0], mbbcchhr[1], mbbcchhr[2], mbbcchhr[3], - mbbcchhr[4], mbbcchhr[5], mbbcchhr[6], mbbcchhr[7]); -#endif - rc = record; - goto quit; - } - /* track was not in this extent, - ** reduce track count by number of tracks in this extent - */ - track -= hh; - } - -quit: - return rc; -} - -/* our lookup table for the number of tracks per cylinder on a device */ -static char trkscyl[16] = { - 0, /* 00 invalid */ - 10, /* 01 2311 DISK STORAGE */ - 0, /* 02 2301 PARALLEL DRUM */ - 0, /* 03 2303 SERIAL DRUM */ - 0, /* 04 2302 DISK STORAGE */ - 0, /* 05 2321 DATA CELL STORAGE */ - 8, /* 06 2305 DRUM MODEL-1 */ - 8, /* 07 2305 DRUM MODEL-2 */ - 20, /* 08 2314/2319 DISK STORAGE FACILITY */ - 19, /* 09 3330 DISK STORAGE FACILITY - 3330 MODEL-1, 3330 MODEL-2, 3333 MODEL-1 */ - 12, /* 0A 3340/3344 DISK STORAGE FACILITY */ - 30, /* 0B 3350 DISK STORAGE FACILITY - MODELS A2, B2, AND C2 */ - 12, /* 0C 3375 DISK STORAGE FACILITY */ - 19, /* 0D 3330 MODEL-11 OR 3333 MODEL-11 - DISK STORAGE FACILITY */ - 15, /* 0E 3380 DISK STORAGE FACILITY */ - 15 /* 0F 3390 DISK STORAGE FACILITY */ -}; diff --git a/src/crent370/os/osxclose.c b/src/crent370/os/osxclose.c deleted file mode 100644 index ee68760..0000000 --- a/src/crent370/os/osxclose.c +++ /dev/null @@ -1,33 +0,0 @@ -/* OSXCLOSE.C - close DCB with options or free of DCB -*/ -#include -#include -#include "osio.h" - -void -osxclose(DCB *dcb, int freedcb) -{ - unsigned plist; - - if (!dcb) goto quit; - - plist = 0x80000000 | (unsigned)dcb; /* default opt=disp */ - - /* normal close */ - __asm__("LR 1,%0\n\tSVC 20 CLOSE" - : : "r"(&plist) : "1", "14", "15"); - - /* if we have any private DCB storage we need to free it now */ - if (dcb->dcbpriv) { - free(dcb->dcbpriv); - dcb->dcbpriv = (void*)0; - } - - /* if caller is done with DCB area we'll free it now */ - if (freedcb) { - free(dcb); - } - -quit: - return; -} diff --git a/src/crent370/os/osxdcb.c b/src/crent370/os/osxdcb.c deleted file mode 100644 index 56a3276..0000000 --- a/src/crent370/os/osxdcb.c +++ /dev/null @@ -1,64 +0,0 @@ -/* OSXDCB.C - allocate a DCB for EXCP access */ -#include -#include -#include -#include "osio.h" - -DCB * -osxdcb(const char *ddname, EXITLIST *exitlist) -{ - DCB *dcb = calloc(1, sizeof(DCB)); - int i; - - if (!dcb) goto quit; - - __asm__("MVC 0(PROTOLEN,%0),PROTODCB" : : "r"(dcb)); - - if (ddname) { - if (ddname[2]==':') ddname += 3; - for (i=0; i < 8 && ddname[i]; i++) { - dcb->dcbddnam[i] = toupper(ddname[i]); - } - } - - if (exitlist) { - unsigned *list = calloc(1, sizeof(unsigned)*10); /* up to 10 exits */ - - if (!list) goto quit; - - dcb->dcbpriv = (void*)list; /* save address for cleanup */ - dcb->dcbexlst = (void*)list; - for(i=0; i < 10; i++, exitlist++) { - list[i] = exitlist->exit_code << 24 | - ((unsigned)exitlist->exit_addr & 0x00FFFFFF); - if (exitlist->exit_code & 0x80) break; - } - if (i==10) i--; - list[i] |= 0x80000000; /* tag end of exit list */ - } - -quit: - return dcb; -} - - __asm__("\n" -"* DCB Prototype\n" -"PROTODCB DCB DSORG=PS,MACRF=E\n" -"PROTOLEN EQU *-PROTODCB"); - -#if 0 -#define OFF(a) (unsigned) &(((DCB*)0)->a) - -int -main(int argc, char**argv) -{ - wtof("DCBDDNAM %02X", OFF(dcbddnam)); - wtof("DCBTIOT %02X", OFF(dcbtiot)); - wtof("DCBGERR %02X", OFF(dcbgerr)); - wtof("DCBIOBA %02X", OFF(dcbioba)); - wtof("DCBDIRCT %02X", OFF(dcbdirct)); - wtof("DCBLRECL %02X", OFF(dcblrecl)); - wtof("DCBEOB %02X", OFF(dcbeob)); - wtof("DCB %02X", sizeof(DCB)); -} -#endif diff --git a/src/crent370/os/osxopen.c b/src/crent370/os/osxopen.c deleted file mode 100644 index 9ac5a59..0000000 --- a/src/crent370/os/osxopen.c +++ /dev/null @@ -1,60 +0,0 @@ -/* OSXOPEN.C - open DD for EXCP access */ -#include -#include -#include "osio.h" -#include "clibstae.h" - -static void opendcb(DCB *dcb, int typej, int *rc); - -int -osxopen(DCB *dcb, int typej) -{ - int rc; - JFCB jfcb = {0}; - - /* use try() in case of abend */ - try(opendcb, dcb, typej, &rc); - - /* make sure the dataset was opened */ - if (!(dcb->dcboflg & DCBOFOPN)) { - rc = 8; /* dataset not open */ - } - - if (rc) { - goto quit; - } - - /* DCB's for EXCP access do not fill in the BSAM/QSAM related fields - ** so we'll use RDJFCB to get those field values and populate the - ** remaining DCB fields that we might find useful. - */ - - /* get dataset information */ - rdjfcb(dcb, &jfcb); - - dcb->dcbblksi = jfcb.jfcblksi; - dcb->dcblrecl = jfcb.jfclrecl; - -quit: - return rc; -} - -__asm__("\n&FUNC SETC 'opendcb'"); -static void -opendcb(DCB *dcb, int typej, int *rc) -{ - unsigned plist = 0x84000000 | (unsigned)dcb; /* UPDATE access */ - - if (!typej) { - /* normal OPEN for a single dataset */ - __asm__("LR 1,%1\n\tSVC 19 OPEN\n\tST\t15,0(,%0)" - : : "r"(rc), "r"(&plist) : "1", "14", "15"); - } - else { - /* OPEN type J for a single dataset */ - __asm__("LR 1,%1\n\tSVC 22 OPENJ\n\tST\t15,0(,%0)" - : : "r"(rc), "r"(&plist) : "1", "14", "15"); - } - - return; -} diff --git a/src/crent370/os/osxread.c b/src/crent370/os/osxread.c deleted file mode 100644 index 21e4546..0000000 --- a/src/crent370/os/osxread.c +++ /dev/null @@ -1,76 +0,0 @@ -/* OSXREAD.C - read one block from dataset by block number */ -#include "osio.h" - -int -osxread(DCB *dcb, unsigned blkstrk, unsigned block, void *buf, char *sense) -{ - unsigned ccws[6] = {0}; /* clear to zeros */ - IOB iob = {0}; /* cleared to zeros */ - unsigned ecb = 0; /* event control block */ - int rc; - - /* build CCW for seek */ - ccws[0] = 0x31000000 | (unsigned)&iob.iobcc; /* => CCHHR */ - ccws[1] = 0x40000005; - - /* build CCW for transfer-in-channel */ - ccws[2] = 0x08000000 | (unsigned)&ccws[0]; - ccws[3] = 0x40000000; - - /* build CCW for read */ - ccws[4] = 0x06000000 | (unsigned)buf; - ccws[5] = (unsigned) dcb->dcbblksi; - - /* create mbbcchhr for this block as our seek address */ - rc = osxcalc(dcb, blkstrk, block, iob.iobseek); - if (rc < 0) { - /* fake up the sense bytes */ - iob.iobsens1 = SENSE1_NOT_FOUND; - goto quit; - } - - /* set IOB flags for this request */ - iob.iobflag1 = IOBCMDCH | /* command chaining in CCW */ - IOBUNREL | /* unrelated i/o, non-sequential */ - IOBRSTRT; /* restart address in iob */ - - /* add ECB address to IOB */ - iob.iobecbpt = &ecb; - - /* add CCW address to IOB */ - iob.iobstart = ccws; - - /* add DCB address to IOB */ - iob.iobdcbpt = dcb; - - /* give IOB to EXCP processor SVC 0 */ - __asm__("EXCP (%0)" : : "r"(&iob.iobflag1) : "1", "14", "15"); - - /* wait for I/O completion */ - __asm__("WAIT 1,ECB=(%0)" : : "r"(&ecb) : "1", "14", "15"); - - /* put completion code in rc */ - rc = (int) (ecb >> 24); - if (rc==0x7F) { - /* normal completion, make rc zero */ - rc = 0; - goto quit; - } - - if (rc==0x41) { - /* an i/o error occured */ - if (iob.iobsens0==0 && iob.iobsens1==0) { - /* no sense information, indicate not found */ - iob.iobsens1 = SENSE1_NOT_FOUND; - } - } - -quit: - /* save sense bytes */ - if (sense) { - sense[0] = iob.iobsens0; - sense[1] = iob.iobsens1; - } - - return rc; -} diff --git a/src/crent370/os/osxwrite.c b/src/crent370/os/osxwrite.c deleted file mode 100644 index 3387f74..0000000 --- a/src/crent370/os/osxwrite.c +++ /dev/null @@ -1,65 +0,0 @@ -/* OSXWRITE.C - write one block to dataset by block number */ -#include "osio.h" - -int -osxwrite(DCB *dcb, unsigned blkstrk, unsigned block, void *buf, char *sense) -{ - unsigned ccws[6] = {0}; /* clear to zeros */ - IOB iob = {0}; /* cleared to zeros */ - unsigned ecb = 0; /* event control block */ - int rc; - - /* build CCW for seek */ - ccws[0] = 0x31000000 | (unsigned)&iob.iobcc; - ccws[1] = 0x40000005; - - /* build CCW for transfer-in-channel */ - ccws[2] = 0x08000000 | (unsigned)&ccws[0]; - ccws[3] = 0x40000000; - - /* build CCW for write */ - ccws[4] = 0x05000000 | (unsigned)buf; - ccws[5] = (unsigned) dcb->dcbblksi; - - /* create mbbcchhr for this block as our seek address */ - rc = osxcalc(dcb, blkstrk, block, iob.iobseek); - if (rc < 0) { - /* that's not good! */ - iob.iobsens1 = SENSE1_NOT_FOUND; /* simulate not found */ - goto quit; - } - - /* set IOB flags for this request */ - iob.iobflag1 = IOBCMDCH | /* command chaining in CCW */ - IOBUNREL | /* unrelated i/o, non-sequential */ - IOBRSTRT; /* restart address in iob */ - - /* add ECB address to IOB */ - iob.iobecbpt = &ecb; - - /* add CCW address to IOB */ - iob.iobstart = &ccws; - - /* add DCB address to IOB */ - iob.iobdcbpt = dcb; - - /* give IOB to EXCP processor SVC 0 */ - __asm__("EXCP (%0)" : : "r"(&iob.iobflag1) : "1", "14", "15"); - - /* wait for I/O completion */ - __asm__("WAIT 1,ECB=(%0)" : : "r"(&ecb) : "1", "14", "15"); - - /* put completion code in rc */ - rc = (int) (ecb >> 24); - if (rc==0x7F) { - /* normal completion, make rc zero */ - rc = 0; - } - -quit: - if (sense) { - sense[0] = iob.iobsens0; - sense[1] = iob.iobsens1; - } - return rc; -} diff --git a/src/crent370/os/rdjfcb.c b/src/crent370/os/rdjfcb.c deleted file mode 100644 index c28ab20..0000000 --- a/src/crent370/os/rdjfcb.c +++ /dev/null @@ -1,32 +0,0 @@ -/* RDJFCB.C - read job file control block for DCB */ -#include "osio.h" - -int -rdjfcb(DCB *dcb, JFCB *jfcb) -{ - int rc = -1; - unsigned newlist = 0x87000000 | ((unsigned)jfcb & 0x00FFFFFF); - unsigned plist = 0x80000000; - unsigned exlst; - - if (!dcb) goto quit; - if (!jfcb) goto quit; - - exlst = (unsigned)dcb->dcbexlst; - dcb->dcbexlst = (void*) ((exlst & 0xFF000000) | (unsigned)&newlist); - - __asm__("RDJFCB ((%1)),MF=(E,(%2))\n" -" ST 15,%0" - : "=m"(rc) - : "r"(dcb), "r"(&plist) - : "1", "14", "15" ); - - dcb->dcbexlst = (void*)exlst; - -quit: - return rc; -} -#if 0 -__asm__("\n" -"EX1 RDJFCB (0),MF=L"); -#endif diff --git a/src/crent370/os/trkcalc.c b/src/crent370/os/trkcalc.c deleted file mode 100644 index ba3dc35..0000000 --- a/src/crent370/os/trkcalc.c +++ /dev/null @@ -1,32 +0,0 @@ -/* TRKCALC.C - calculate number of records that fit on a track -*/ -#include "osio.h" -#include "trkcalc.h" - -int -trkcalc(DEVTYPE devtype, int keylen, int blksize) -{ - int rc = 0; - int count = 0; - unsigned work[3] = {0,0,0}; - - devtype = devtype & 0x0F; - - __asm__("\n" -" TRKCALC FUNCTN=TRKCAP,REGSAVE=YES, X\n" -" TYPE=(%0),R=1,K=(%1),DD=(%2),MF=(E,(%3))\n" -" ST 15,0(%4)\n" -" ST 0,0(%5)" : : "r"(devtype), "r"(keylen), "r"(blksize), - "r"(work), "r"(&rc), "r"(&count) ); - - if (rc) { - count = 0; - } - -quit: - return count; -} -#if 0 -__asm__("TRKCALC MF=D"); -__asm__("CSECT"); -#endif diff --git a/src/crent370/pdf/pdfabarc.c b/src/crent370/pdf/pdfabarc.c deleted file mode 100644 index ac7410d..0000000 --- a/src/crent370/pdf/pdfabarc.c +++ /dev/null @@ -1,233 +0,0 @@ -#define PDF_PRIVATE -#include "clibpdfi.h" - -static int find_128_encoding(char ch); -static int pdf_barcode_128a_ch(PDF *pdf, PDFO *page, - int x, int y, int width, int height, - unsigned colour, int index, int code_len); -static int pdf_add_barcode_128a(PDF *pdf, PDFO *page, - int x, int y, int width, int height, - const char *string, unsigned colour); -static int pdf_barcode_39_ch(PDF *pdf, PDFO *page, - int x, int y, int char_width, int height, - unsigned colour, char ch); -static int pdf_add_barcode_39(PDF *pdf, PDFO *page, - int x, int y, int width, int height, - const char *string, unsigned colour); - -__asm__("\n&FUNC SETC 'pdf_add_barcode'"); -int pdf_add_barcode(PDF *pdf, PDFO *page, int code, int x, int y, - int width, int height, const char *string, unsigned colour) -{ - if (!string || !*string) - return 0; - - switch (code) { - case PDF_BARCODE_128A: - return pdf_add_barcode_128a(pdf, page, x, y, width, height, string, - colour); - case PDF_BARCODE_39: - return pdf_add_barcode_39(pdf, page, x, y, width, height, string, - colour); - default: - return pdf_set_err(pdf, -EINVAL, "Invalid barcode code %d", code); - } -} - -static const struct { - unsigned code; - char ch; -} code_128a_encoding[] = { - {0x212222, ' '}, {0x222122, '!'}, {0x222221, '"'}, {0x121223, '#'}, - {0x121322, '$'}, {0x131222, '%'}, {0x122213, '&'}, {0x122312, '\''}, - {0x132212, '('}, {0x221213, ')'}, {0x221312, '*'}, {0x231212, '+'}, - {0x112232, ','}, {0x122132, '-'}, {0x122231, '.'}, {0x113222, '/'}, - {0x123122, '0'}, {0x123221, '1'}, {0x223211, '2'}, {0x221132, '3'}, - {0x221231, '4'}, {0x213212, '5'}, {0x223112, '6'}, {0x312131, '7'}, - {0x311222, '8'}, {0x321122, '9'}, {0x321221, ':'}, {0x312212, ';'}, - {0x322112, '<'}, {0x322211, '='}, {0x212123, '>'}, {0x212321, '?'}, - {0x232121, '@'}, {0x111323, 'A'}, {0x131123, 'B'}, {0x131321, 'C'}, - {0x112313, 'D'}, {0x132113, 'E'}, {0x132311, 'F'}, {0x211313, 'G'}, - {0x231113, 'H'}, {0x231311, 'I'}, {0x112133, 'J'}, {0x112331, 'K'}, - {0x132131, 'L'}, {0x113123, 'M'}, {0x113321, 'N'}, {0x133121, 'O'}, - {0x313121, 'P'}, {0x211331, 'Q'}, {0x231131, 'R'}, {0x213113, 'S'}, - {0x213311, 'T'}, {0x213131, 'U'}, {0x311123, 'V'}, {0x311321, 'W'}, - {0x331121, 'X'}, {0x312113, 'Y'}, {0x312311, 'Z'}, {0x332111, '['}, - {0x314111, '\\'}, {0x221411, ']'}, {0x431111, '^'}, {0x111224, '_'}, - {0x111422, '`'}, {0x121124, 'a'}, {0x121421, 'b'}, {0x141122, 'c'}, - {0x141221, 'd'}, {0x112214, 'e'}, {0x112412, 'f'}, {0x122114, 'g'}, - {0x122411, 'h'}, {0x142112, 'i'}, {0x142211, 'j'}, {0x241211, 'k'}, - {0x221114, 'l'}, {0x413111, 'm'}, {0x241112, 'n'}, {0x134111, 'o'}, - {0x111242, 'p'}, {0x121142, 'q'}, {0x121241, 'r'}, {0x114212, 's'}, - {0x124112, 't'}, {0x124211, 'u'}, {0x411212, 'v'}, {0x421112, 'w'}, - {0x421211, 'x'}, {0x212141, 'y'}, {0x214121, 'z'}, {0x412121, '{'}, - {0x111143, '|'}, {0x111341, '}'}, {0x131141, '~'}, {0x114113, '\0'}, - {0x114311, '\0'}, {0x411113, '\0'}, {0x411311, '\0'}, {0x113141, '\0'}, - {0x114131, '\0'}, {0x311141, '\0'}, {0x411131, '\0'}, {0x211412, '\0'}, - {0x211214, '\0'}, {0x211232, '\0'}, {0x2331112, '\0'}, -}; - -__asm__("\n&FUNC SETC 'find_128_encoding'"); -static int find_128_encoding(char ch) -{ - int i; - - for (i = 0; i < PDF_ARRAY_SIZE(code_128a_encoding); i++) { - if (code_128a_encoding[i].ch == ch) - return i; - } - return -1; -} - -__asm__("\n&FUNC SETC 'pdf_barcode_128a_ch'"); -static int pdf_barcode_128a_ch(PDF *pdf, PDFO *page, - int x, int y, int width, int height, - unsigned colour, int index, int code_len) -{ - unsigned code = code_128a_encoding[index].code; - int line_width = width / 11; - int i; - - for (i = 0; i < code_len; i++) { - unsigned char shift = (code_len - 1 - i) * 4; - unsigned char mask = (code >> shift) & 0xf; - - if (!(i % 2)) - pdf_add_filled_rectangle(pdf, page, x, y, line_width * mask, - height, 0, colour); - x += line_width * mask; - } - return x; -} - -__asm__("\n&FUNC SETC 'pdf_add_barcode_128a'"); -static int pdf_add_barcode_128a(PDF *pdf, PDFO *page, - int x, int y, int width, int height, - const char *string, unsigned colour) -{ - const char *s; - int len = strlen(string) + 3; - int char_width = width / len; - int checksum, i; - - if (char_width / 11 <= 0) - return pdf_set_err(pdf, -EINVAL, - "Insufficient width to draw barcode"); - - for (s = string; *s; s++) - if (find_128_encoding(*s) < 0) - return pdf_set_err(pdf, -EINVAL, "Invalid barcode character 0x%x", - *s); - - x = pdf_barcode_128a_ch(pdf, page, x, y, char_width, height, colour, 104, - 6); - checksum = 104; - - for (i = 1, s = string; *s; s++, i++) { - int index = find_128_encoding(*s); - x = pdf_barcode_128a_ch(pdf, page, x, y, char_width, height, colour, - index, 6); - checksum += index * i; - } - x = pdf_barcode_128a_ch(pdf, page, x, y, char_width, height, colour, - checksum % 103, 6); - pdf_barcode_128a_ch(pdf, page, x, y, char_width, height, colour, 106, 7); - return 0; -} - -/* Code 39 character encoding. Each 4-bit value indicates: - * 0 => wide bar - * 1 => narrow bar - * 2 => wide space - */ -static const struct { - unsigned code; - char ch; -} code_39_encoding[] = { - {0x012110, '1'}, {0x102110, '2'}, {0x002111, '3'}, - {0x112010, '4'}, {0x012011, '5'}, {0x102011, '6'}, - {0x112100, '7'}, {0x012101, '8'}, {0x102101, '9'}, - {0x112001, '0'}, {0x011210, 'A'}, {0x101210, 'B'}, - {0x001211, 'C'}, {0x110210, 'D'}, {0x010211, 'E'}, - {0x100211, 'F'}, {0x111200, 'G'}, {0x011201, 'H'}, - {0x101201, 'I'}, {0x110201, 'J'}, {0x011120, 'K'}, - {0x101120, 'L'}, {0x001121, 'M'}, {0x110120, 'N'}, - {0x010121, 'O'}, {0x100121, 'P'}, {0x111020, 'Q'}, - {0x011021, 'R'}, {0x101021, 'S'}, {0x110021, 'T'}, - {0x021110, 'U'}, {0x120110, 'V'}, {0x020111, 'W'}, - {0x121010, 'X'}, {0x021011, 'Y'}, {0x120011, 'Z'}, - {0x121100, '-'}, {0x021101, '.'}, {0x120101, ' '}, - {0x121001, '*'}, // 'stop' character -}; - -__asm__("\n&FUNC SETC 'pdf_barcode_39_ch'"); -static int pdf_barcode_39_ch(PDF *pdf, PDFO *page, - int x, int y, int char_width, int height, - unsigned colour, char ch) -{ - int nw = char_width / 12; - int ww = char_width / 4; - int i; - unsigned code; - - if (nw <= 1 || ww <= 1) - return pdf_set_err(pdf, -EINVAL, - "Insufficient width for each character"); - - for (i = 0; i < PDF_ARRAY_SIZE(code_39_encoding); i++) { - if (code_39_encoding[i].ch == ch) { - code = code_39_encoding[i].code; - break; - } - } - if (i == PDF_ARRAY_SIZE(code_39_encoding)) - return pdf_set_err(pdf, -EINVAL, "Invalid Code 39 character %c 0x%x", - ch, ch); - - for (i = 5; i >= 0; i--) { - int pattern = (code >> i * 4) & 0xf; - if (pattern == 0) { // wide - if (pdf_add_filled_rectangle(pdf, page, x, y, ww - 1, height, 0, - colour) < 0) - return pdf->errval; - x += ww; - } - if (pattern == 1) { // narrow - if (pdf_add_filled_rectangle(pdf, page, x, y, nw - 1, height, 0, - colour) < 0) - return pdf->errval; - x += nw; - } - if (pattern == 2) { // space - x += nw; - } - } - return x; -} - -__asm__("\n&FUNC SETC 'pdf_add_barcode_39'"); -static int pdf_add_barcode_39(PDF *pdf, PDFO *page, - int x, int y, int width, int height, - const char *string, unsigned colour) -{ - int len = strlen(string); - int char_width = width / (len + 2); - - x = pdf_barcode_39_ch(pdf, page, x, y, char_width, height, colour, '*'); - if (x < 0) - return x; - - while (string && *string) { - x = pdf_barcode_39_ch(pdf, page, x, y, char_width, height, colour, - *string); - if (x < 0) - return x; - string++; - }; - - x = pdf_barcode_39_ch(pdf, page, x, y, char_width, height, colour, '*'); - if (x < 0) - return x; - - return 0; -} diff --git a/src/crent370/pdf/pdfabkmk.c b/src/crent370/pdf/pdfabkmk.c deleted file mode 100644 index 1708545..0000000 --- a/src/crent370/pdf/pdfabkmk.c +++ /dev/null @@ -1,37 +0,0 @@ -#define PDF_PRIVATE -#include "clibpdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_bookmark'"); -int pdf_add_bookmark(PDF *pdf, PDFO *page, int parent, const char *name) -{ - PDFO *obj; - - if (!page) - page = pdf_find_last_object(pdf, OBJ_page); - - if (!page) - return pdf_set_err(pdf, -EINVAL, - "Unable to add bookmark, no pages available"); - - if (!pdf_find_first_object(pdf, OBJ_outline)) - if (!pdf_add_object(pdf, OBJ_outline)) - return pdf->errval; - - obj = pdf_add_object(pdf, OBJ_bookmark); - if (!obj) - return pdf->errval; - - strncpy(obj->bookmark.name, name, sizeof(obj->bookmark.name)); - obj->bookmark.name[sizeof(obj->bookmark.name) - 1] = '\0'; - obj->bookmark.page = page->index; - if (parent >= 0) { - PDFO *parent_obj = pdf_get_object(pdf, parent); - if (!parent_obj) - return pdf_set_err(pdf, -EINVAL, "Invalid parent ID %d supplied", - parent); - obj->bookmark.parent = parent_obj->index; - arrayadd(&parent_obj->bookmark.children, (void *)obj->index); - } - - return obj->index; -} diff --git a/src/crent370/pdf/pdfacrcl.c b/src/crent370/pdf/pdfacrcl.c deleted file mode 100644 index b9cd626..0000000 --- a/src/crent370/pdf/pdfacrcl.c +++ /dev/null @@ -1,10 +0,0 @@ -#define PDF_PRIVATE -#include "clibpdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_circle'"); -int pdf_add_circle(PDF *pdf, PDFO *page, int xr, int yr, int radius, int width, - unsigned colour, unsigned fill_colour) -{ - return pdf_add_ellipse(pdf, page, xr, yr, radius, radius, width, colour, - fill_colour); -} diff --git a/src/crent370/pdf/pdfaelip.c b/src/crent370/pdf/pdfaelip.c deleted file mode 100644 index e7b2f15..0000000 --- a/src/crent370/pdf/pdfaelip.c +++ /dev/null @@ -1,63 +0,0 @@ -#define PDF_PRIVATE -#include "clibpdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_ellipse'"); -int pdf_add_ellipse(PDF *pdf, PDFO *page, int xr, - int yr, int xradius, int yradius, int width, - unsigned colour, unsigned fill_colour) -{ - int ret; - DSTR str = {0,0,0,{0}}; - - float rx = xradius * 1.0f; - float ry = yradius * 1.0f; - float lx, ly; - float x = xr * 1.0f; - float y = yr * 1.0f; - - lx = (4.0f / 3.0f) * (M_SQRT2 - 1) * rx; - ly = (4.0f / 3.0f) * (M_SQRT2 - 1) * ry; - - if (!PDF_IS_TRANSPARENT(fill_colour)) { - dstr_append(&str, "BT ", 3); - dstr_printf(&str, "/DeviceRGB CS\r\n"); - dstr_printf(&str, "%g %g %g rg\r\n", PDF_RGB_R(fill_colour), - PDF_RGB_G(fill_colour), PDF_RGB_B(fill_colour)); - dstr_append(&str, "ET\r\n", 4); - } - - dstr_append(&str, "BT ", 3); - - /* stroke color */ - dstr_printf(&str, "/DeviceRGB CS\r\n"); - dstr_printf(&str, "%g %g %g RG\r\n", PDF_RGB_R(colour), PDF_RGB_G(colour), - PDF_RGB_B(colour)); - - dstr_printf(&str, "%d w ", width); - - dstr_printf(&str, "%.2f %.2f m ", (x + rx), (y)); - - dstr_printf(&str, "%.2f %.2f %.2f %.2f %.2f %.2f c ", (x + rx), (y - ly), - (x + lx), (y - ry), x, (y - ry)); - - dstr_printf(&str, "%.2f %.2f %.2f %.2f %.2f %.2f c ", (x - lx), (y - ry), - (x - rx), (y - ly), (x - rx), y); - - dstr_printf(&str, "%.2f %.2f %.2f %.2f %.2f %.2f c ", (x - rx), (y + ly), - (x - lx), (y + ry), x, (y + ry)); - - dstr_printf(&str, "%.2f %.2f %.2f %.2f %.2f %.2f c ", (x + lx), (y + ry), - (x + rx), (y + ly), (x + rx), y); - - if (PDF_IS_TRANSPARENT(fill_colour)) - dstr_printf(&str, "%s", "S "); - else - dstr_printf(&str, "%s", "B "); - - dstr_append(&str, "ET", 2); - - ret = pdf_add_stream(pdf, page, dstr_data(&str)); - dstr_free(&str); - - return ret; -} diff --git a/src/crent370/pdf/pdfafply.c b/src/crent370/pdf/pdfafply.c deleted file mode 100644 index 032095b..0000000 --- a/src/crent370/pdf/pdfafply.c +++ /dev/null @@ -1,29 +0,0 @@ -#define PDF_PRIVATE -#include "clibpdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_filled_polygon'"); -int pdf_add_filled_polygon(PDF *pdf, PDFO *page, int x[], int y[], - int count, int border_width, unsigned colour) -{ - int ret; - int i; - DSTR str = INIT_DSTR; - - dstr_append(&str, "BT ", 3); - dstr_printf(&str, "%g %g %g RG ", PDF_RGB_R(colour), PDF_RGB_G(colour), - PDF_RGB_B(colour)); - dstr_printf(&str, "%g %g %g rg ", PDF_RGB_R(colour), PDF_RGB_G(colour), - PDF_RGB_B(colour)); - dstr_printf(&str, "%d w ", border_width); - dstr_printf(&str, "%d %d m ", x[0], y[0]); - for (i = 1; i < count; i++) { - dstr_printf(&str, "%d %d l ", x[i], y[i]); - } - dstr_printf(&str, "h f "); - dstr_append(&str, "ET", 2); - - ret = pdf_add_stream(pdf, page, dstr_data(&str)); - dstr_free(&str); - - return ret; -} diff --git a/src/crent370/pdf/pdfafrec.c b/src/crent370/pdf/pdfafrec.c deleted file mode 100644 index f7331fb..0000000 --- a/src/crent370/pdf/pdfafrec.c +++ /dev/null @@ -1,22 +0,0 @@ -#define PDF_PRIVATE -#include "clibpdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_filled_rectangle'"); -int pdf_add_filled_rectangle(PDF *pdf, PDFO *page, int x, int y, int width, int height, - int border_width, unsigned colour) -{ - int ret; - DSTR str = {0,0,0,{0}}; - - dstr_append(&str, "BT ", 3); - dstr_printf(&str, "%g %g %g rg ", PDF_RGB_R(colour), PDF_RGB_G(colour), - PDF_RGB_B(colour)); - dstr_printf(&str, "%d w ", border_width); - dstr_printf(&str, "%d %d %d %d re f ", x, y, width, height); - dstr_append(&str, "ET", 2); - - ret = pdf_add_stream(pdf, page, dstr_data(&str)); - dstr_free(&str); - - return ret; -} diff --git a/src/crent370/pdf/pdfajpeg.c b/src/crent370/pdf/pdfajpeg.c deleted file mode 100644 index a91acad..0000000 --- a/src/crent370/pdf/pdfajpeg.c +++ /dev/null @@ -1,135 +0,0 @@ -#define PDF_PRIVATE -#include "clibpdfi.h" - -static PDFO *pdf_add_raw_jpeg(PDF *pdf, const char *jpeg_file); - -__asm__("\n&FUNC SETC 'pdf_add_jpeg'"); -int pdf_add_jpeg(PDF *pdf, PDFO *page, int x, int y, - int display_width, int display_height, const char *jpeg_file) -{ - PDFO *obj; - - obj = pdf_add_raw_jpeg(pdf, jpeg_file); - if (!obj) - return pdf->errval; - - return pdf_add_image(pdf, page, obj, x, y, display_width, display_height); -} - -__asm__("\n&FUNC SETC 'jpeg_size'"); -/* See http://www.64lines.com/jpeg-width-height for details */ -static int jpeg_size(unsigned char *data, unsigned int data_size, int *width, - int *height) -{ - int i = 0; - - if (i + 3 < data_size && data[i] == 0xFF && data[i + 1] == 0xD8 && - data[i + 2] == 0xFF && data[i + 3] == 0xE0) { - i += 4; - if (i + 6 < data_size && data[i + 2] == 0x4A /*'J'*/ && data[i + 3] == 0x46 /*'F'*/ && - data[i + 4] == 0x49 /*'I'*/ && data[i + 5] == 0x46 /*'F'*/ && data[i + 6] == 0x00) { - unsigned short block_length = data[i] * 256 + data[i + 1]; - while (i < data_size) { - i += block_length; - if ((i + 8) >= data_size) { - return -1; - } - if (data[i] != 0xFF) { - return -1; - } - if (data[i + 1] == 0xC0) { - *height = data[i + 5] * 256 + data[i + 6]; - *width = data[i + 7] * 256 + data[i + 8]; - return 0; - } - i += 2; - block_length = data[i] * 256 + data[i + 1]; - } - } - } - - return -1; -} - -__asm__("\n&FUNC SETC 'pdf_add_raw_jpeg'"); -static PDFO *pdf_add_raw_jpeg(PDF *pdf, const char *jpeg_file) -{ - PDFO *obj = NULL; - size_t len = 0; - size_t avail = 0; - size_t size = 0; - size_t chunk; - size_t bytes; - unsigned char *jpeg_data = NULL; - FILE *fp; - int width, height; - - /* we don't have unix like file system, so we have to read the jpeg file to determine the size */ - - if ((fp = fopen(jpeg_file, "rb")) == NULL) { - pdf_set_err(pdf, -errno, "Unable to open %s: %s", jpeg_file, - strerror(errno)); - goto quit; - } - - /* set the chunk size for the jpeg_data buffer */ - if ((fp->recfm & _FILE_RECFM_TYPE) == _FILE_RECFM_U) { - chunk = fp->blksize; /* physical block size */ - } - else { - chunk = fp->lrecl; /* logical record length */ - } - if (chunk < 1024) chunk = 1024; /* set 1K minimum for chunk size */ - - while(!feof(fp)) { - if (avail < chunk) { - size_t new_len = size+(chunk*2); - unsigned char * new_buf = realloc(jpeg_data, new_len); - if (!new_buf) { - pdf_set_err(pdf, -ENOMEM, "Unable to allocate: %zd", new_len); - goto quit; - } - jpeg_data = new_buf; /* update jpeg_data buffer */ - size = new_len; /* update jpeg_data buffer size */ - avail = new_len - len; /* recalculate available space in jpeg_data */ - } - - /* read jpeg data from file */ - bytes = fread(&jpeg_data[len], 1, avail, fp); - if (ferror(fp)) { - pdf_set_err(pdf, -errno, "Unable to read full jpeg data"); - goto quit; - } - len += bytes; - avail -= bytes; - if (!bytes) break; /* no more data??? */ - } - fclose(fp); - fp = NULL; - - if (jpeg_size(jpeg_data, len, &width, &height) < 0) { - pdf_set_err(pdf, -EINVAL, - "Unable to determine jpeg width/height from %s", jpeg_file); - goto quit; - } - - obj = pdf_add_object(pdf, OBJ_image); - if (!obj) goto quit; - - dstr_printf(&obj->stream, - "<<\r\n/Type /XObject\r\n/Name /Image%d\r\n" - "/Subtype /Image\r\n/ColorSpace /DeviceRGB\r\n" - "/Width %d\r\n/Height %d\r\n" - "/BitsPerComponent 8\r\n/Filter /DCTDecode\r\n" - "/Length %d\r\n>>stream\r\n", - arraysize(&pdf->objects), width, height, (int)len); - dstr_append_data(&obj->stream, jpeg_data, len); - - dstr_printf(&obj->stream, "\r\nendstream\r\n"); - -quit: - if (jpeg_data) free(jpeg_data); - if (fp) fclose(fp); - - return obj; -} diff --git a/src/crent370/pdf/pdfaline.c b/src/crent370/pdf/pdfaline.c deleted file mode 100644 index c9637c5..0000000 --- a/src/crent370/pdf/pdfaline.c +++ /dev/null @@ -1,24 +0,0 @@ -#define PDF_PRIVATE -#include "clibpdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_line'"); -int pdf_add_line(PDF *pdf, PDFO *page, int x1, int y1, - int x2, int y2, int width, unsigned colour) -{ - int ret; - DSTR str = {0,0,0,{0}}; - - dstr_append(&str, "BT\r\n", 4); - dstr_printf(&str, "%d w\r\n", width); - dstr_printf(&str, "%d %d m\r\n", x1, y1); - dstr_printf(&str, "/DeviceRGB CS\r\n"); - dstr_printf(&str, "%g %g %g RG\r\n", PDF_RGB_R(colour), PDF_RGB_G(colour), - PDF_RGB_B(colour)); - dstr_printf(&str, "%d %d l S\r\n", x2, y2); - dstr_append(&str, "ET", 2); - - ret = pdf_add_stream(pdf, page, dstr_data(&str)); - dstr_free(&str); - - return ret; -} diff --git a/src/crent370/pdf/pdfapage.c b/src/crent370/pdf/pdfapage.c deleted file mode 100644 index ff6209f..0000000 --- a/src/crent370/pdf/pdfapage.c +++ /dev/null @@ -1,18 +0,0 @@ -#define PDF_PRIVATE -#include "clibpdfi.h" - -__asm__("\n&FUNC SETC 'pdf_append_page'"); -PDFO *pdf_append_page(PDF *pdf) -{ - PDFO *page; - - page = pdf_add_object(pdf, OBJ_page); - - if (!page) - return NULL; - - page->page.width = pdf->width; - page->page.height = pdf->height; - - return page; -} diff --git a/src/crent370/pdf/pdfapoly.c b/src/crent370/pdf/pdfapoly.c deleted file mode 100644 index 6b556d2..0000000 --- a/src/crent370/pdf/pdfapoly.c +++ /dev/null @@ -1,27 +0,0 @@ -#define PDF_PRIVATE -#include "clibpdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_polygon'"); -int pdf_add_polygon(PDF *pdf, PDFO *page, int x[], int y[], int count, - int border_width, unsigned colour) -{ - int ret; - int i; - DSTR str = INIT_DSTR; - - dstr_append(&str, "BT ", 3); - dstr_printf(&str, "%g %g %g RG ", PDF_RGB_R(colour), PDF_RGB_G(colour), - PDF_RGB_B(colour)); - dstr_printf(&str, "%d w ", border_width); - dstr_printf(&str, "%d %d m ", x[0], y[0]); - for (i = 1; i < count; i++) { - dstr_printf(&str, "%d %d l ", x[i], y[i]); - } - dstr_printf(&str, "h S "); - dstr_append(&str, "ET", 2); - - ret = pdf_add_stream(pdf, page, dstr_data(&str)); - dstr_free(&str); - - return ret; -} diff --git a/src/crent370/pdf/pdfappm.c b/src/crent370/pdf/pdfappm.c deleted file mode 100644 index 88e5370..0000000 --- a/src/crent370/pdf/pdfappm.c +++ /dev/null @@ -1,85 +0,0 @@ -#define PDF_PRIVATE -#include "clibpdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_ppm'"); -int pdf_add_ppm(PDF *pdf, PDFO *page, int x, int y, - int display_width, int display_height, const char *ppm_file) -{ - FILE *fp = NULL; - PDFO *obj; - unsigned char *data; - int i; - char line[1024]; - unsigned width, height, size; - - /* Load the PPM file */ - fp = fopen(ppm_file, "rb"); - if (!fp) - return pdf_set_err(pdf, -errno, "Unable to open '%s'", ppm_file); - - /* We only support binary ppms */ - if (fgetc(fp) != 0x50 || fgetc(fp) != 0x36 || fgetc(fp) != 0x0A) { /* ASCII "P6" + ASCII newline */ - fclose(fp); - return pdf_set_err(pdf, -EINVAL, "Only binary PPM files supported"); - } - - /* Skip the header comments until we get to the dimensions info */ - do { - for(i=0; i < sizeof(line)-1; i++) { - line[i] = fgetc(fp); - if (line[i]==0x0A) break; - } - line[i] = 0; - if (feof(fp)) { - fclose(fp); - return pdf_set_err(pdf, -EINVAL, "Unable to find PPM size"); - } - if (line[0] != 0x23) /* ASCII '#' */ - break; - } while (1); - - pdfatoe(line, 0); /* convert to EBCDIC */ - if (sscanf(line, "%u %u\n", &width, &height) != 2) { - fclose(fp); - return pdf_set_err(pdf, -EINVAL, "Unable to find PPM size"); - } - - /* Skip over the byte-size line */ - for(i=0; i < sizeof(line)-1; i++) { - line[i] = fgetc(fp); - if (line[i]==0x0A) break; - } - line[i] = 0; - if (feof(fp)) { - fclose(fp); - return pdf_set_err(pdf, -EINVAL, "No byte-size line in PPM file"); - } - - /* Try and limit the memory usage to sane images */ - if (width > 2 << 14 || height > 2 << 14) { - fclose(fp); - return pdf_set_err(pdf, -EINVAL, - "Invalid width/height in PPM file: %ux%u", width, - height); - } - - size = width * height * 3; - data = malloc(size); - if (!data) { - fclose(fp); - return pdf_set_err(pdf, -ENOMEM, - "Unable to allocate memory for RGB data"); - } - if (fread(data, 1, size, fp) != size) { - free(data); - fclose(fp); - return pdf_set_err(pdf, -EINVAL, "Insufficient RGB data available"); - } - fclose(fp); - obj = pdf_add_raw_rgb24(pdf, data, width, height); - free(data); - if (!obj) - return pdf->errval; - - return pdf_add_image(pdf, page, obj, x, y, display_width, display_height); -} diff --git a/src/crent370/pdf/pdfarect.c b/src/crent370/pdf/pdfarect.c deleted file mode 100644 index 4ca5bb8..0000000 --- a/src/crent370/pdf/pdfarect.c +++ /dev/null @@ -1,22 +0,0 @@ -#define PDF_PRIVATE -#include "clibpdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_rectangle'"); -int pdf_add_rectangle(PDF *pdf, PDFO *page, int x, int y, int width, int height, - int border_width, unsigned colour) -{ - int ret; - DSTR str = {0,0,0,{0}}; - - dstr_append(&str, "BT ", 3); - dstr_printf(&str, "%g %g %g RG ", PDF_RGB_R(colour), PDF_RGB_G(colour), - PDF_RGB_B(colour)); - dstr_printf(&str, "%d w ", border_width); - dstr_printf(&str, "%d %d %d %d re S ", x, y, width, height); - dstr_append(&str, "ET", 2); - - ret = pdf_add_stream(pdf, page, dstr_data(&str)); - dstr_free(&str); - - return ret; -} diff --git a/src/crent370/pdf/pdfatext.c b/src/crent370/pdf/pdfatext.c deleted file mode 100644 index d566962..0000000 --- a/src/crent370/pdf/pdfatext.c +++ /dev/null @@ -1,8 +0,0 @@ -#define PDF_PRIVATE -#include "clibpdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_text'"); -int pdf_add_text(PDF *pdf, PDFO *page, const char *text, int size, int xoff, int yoff, unsigned colour) -{ - return pdf_add_text_spacing(pdf, page, text, size, xoff, yoff, colour, 0); -} diff --git a/src/crent370/pdf/pdfatxtw.c b/src/crent370/pdf/pdfatxtw.c deleted file mode 100644 index 28a232a..0000000 --- a/src/crent370/pdf/pdfatxtw.c +++ /dev/null @@ -1,118 +0,0 @@ -#define PDF_PRIVATE -#include "clibpdfi.h" - -static const char *find_word_break(const char *string); - -__asm__("\n&FUNC SETC 'pdf_add_text_wrap'"); -int pdf_add_text_wrap(PDF *pdf, PDFO *page, - const char *text, int size, int xoff, int yoff, - unsigned colour, int wrap_width, int align) -{ - /* Move through the text string, stopping at word boundaries, - * trying to find the longest text string we can fit in the given width - */ - const char *start = text; - const char *last_best = text; - const char *end = text; - char line[512]; - const unsigned short *widths; - int orig_yoff = yoff; - - PDFO *font = pdf_get_object(pdf, pdf->current_font); - - widths = find_font_widths(font->font.name); - if (!widths) - return pdf_set_err(pdf, -EINVAL, - "Unable to determine width for font '%s'", - font->font.name); - - while (start && *start) { - const char *new_end = find_word_break(end + 1); - int line_width; - int output = 0; - int xoff_align = xoff; - - end = new_end; - - line_width = pdf_text_pixel_width(start, end - start, size, widths); - if (line_width < 0) - return pdf_set_err(pdf, line_width, - "Unable to determine text width"); - - if (line_width >= wrap_width) { - if (last_best == start) { - /* There is a single word that is too long for the line */ - int i; - /* Find the best character to chop it at */ - for (i = end - start - 1; i > 0; i--) { - int e = pdf_text_pixel_width(start, i, size, widths); - if (e < 0) - return pdf_set_err(pdf, e, - "Unable to determine text width"); - if (e < wrap_width) - break; - } - - end = start + i; - } else - end = last_best; - output = 1; - } - if (*end == '\0') - output = 1; - - if (*end == '\n' || *end == '\r') - output = 1; - - if (output) { - int len = end - start; - double char_spacing = 0; - if (len >= sizeof(line)) - len = sizeof(line) - 1; - strncpy(line, start, len); - line[len] = '\0'; - - line_width = pdf_text_pixel_width(start, len, size, widths); - if (line_width < 0) - return pdf_set_err(pdf, line_width, - "Unable to determine text width"); - - switch (align) { - case PDF_ALIGN_RIGHT: - xoff_align += wrap_width - line_width; - break; - case PDF_ALIGN_CENTER: - xoff_align += (wrap_width - line_width) / 2; - break; - case PDF_ALIGN_JUSTIFY: - if ((len - 1) > 0 && *end != '\r' && *end != '\n' && - *end != '\0') - char_spacing = - ((double)(wrap_width - line_width)) / (len - 2); - break; - } - - pdf_add_text_spacing(pdf, page, line, size, xoff_align, yoff, - colour, char_spacing); - - if (*end == ' ') - end++; - - start = last_best = end; - yoff -= size; - } else - last_best = end; - } - - return orig_yoff - yoff; -} - -__asm__("\n&FUNC SETC 'find_word_break'"); -static const char *find_word_break(const char *string) -{ - /* Skip over the actual word */ - while (string && *string && !isspace(*string)) - string++; - - return string; -} diff --git a/src/crent370/pdf/pdfcerr.c b/src/crent370/pdf/pdfcerr.c deleted file mode 100644 index 53dcc86..0000000 --- a/src/crent370/pdf/pdfcerr.c +++ /dev/null @@ -1,12 +0,0 @@ -#define PDF_PRIVATE -#include "clibpdfi.h" - -__asm__("\n&FUNC SETC 'pdf_clear_err'"); -void pdf_clear_err(PDF *pdf) -{ - if (!pdf) - return; - - pdf->errstr[0] = '\0'; - pdf->errval = 0; -} diff --git a/src/crent370/pdf/pdfcrte.c b/src/crent370/pdf/pdfcrte.c deleted file mode 100644 index c539467..0000000 --- a/src/crent370/pdf/pdfcrte.c +++ /dev/null @@ -1,68 +0,0 @@ -#define PDF_PRIVATE -#include "clibpdfi.h" - -__asm__("\n&FUNC SETC 'pdf_create'"); -PDF *pdf_create(int width, int height, PDFI *info) -{ - PDF *pdf; - PDFO *obj; - - pdf = calloc(1, sizeof(*pdf)); - pdf->width = width; - pdf->height = height; -#if 0 - /* We don't want to use ID 0 */ - pdf_add_object(pdf, OBJ_none); -#endif - /* Create the 'info' object */ - obj = pdf_add_object(pdf, OBJ_info); - if (!obj) { - pdf_destroy(pdf); - return NULL; - } - - obj->info = calloc(sizeof(*obj->info), 1); - if (!obj->info) { - pdf_destroy(pdf); - return NULL; - } - - if (info) { - *obj->info = *info; - obj->info->creator[sizeof(obj->info->creator) - 1] = '\0'; - obj->info->producer[sizeof(obj->info->producer) - 1] = '\0'; - obj->info->title[sizeof(obj->info->title) - 1] = '\0'; - obj->info->author[sizeof(obj->info->author) - 1] = '\0'; - obj->info->subject[sizeof(obj->info->subject) - 1] = '\0'; - obj->info->date[sizeof(obj->info->date) - 1] = '\0'; - } - - /* FIXME: Should be quoting PDF strings? */ - if (!obj->info->date[0]) { - time_t now = time(NULL); - struct tm tm; - struct tm *tmp; - - tmp = localtime(&now); - tm = *tmp; - - strftime(obj->info->date, sizeof(obj->info->date), "%Y%m%d%H%M%SZ", &tm); - } - if (!obj->info->creator[0]) - snprintf(obj->info->creator, sizeof(obj->info->creator), "clibpdf"); - if (!obj->info->producer[0]) - snprintf(obj->info->producer, sizeof(obj->info->producer), "clibpdf"); - if (!obj->info->title[0]) - snprintf(obj->info->title, sizeof(obj->info->title), "clibpdf"); - if (!obj->info->author[0]) - snprintf(obj->info->author, sizeof(obj->info->author), "clibpdf"); - if (!obj->info->subject[0]) - snprintf(obj->info->subject, sizeof(obj->info->subject), "clibpdf"); - - pdf_add_object(pdf, OBJ_pages); - pdf_add_object(pdf, OBJ_catalog); - - pdf_set_font(pdf, "Times-Roman"); - - return pdf; -} diff --git a/src/crent370/pdf/pdfdstr.c b/src/crent370/pdf/pdfdstr.c deleted file mode 100644 index d99528b..0000000 --- a/src/crent370/pdf/pdfdstr.c +++ /dev/null @@ -1,21 +0,0 @@ -#define PDF_PRIVATE -#include "clibpdfi.h" - -__asm__("\n&FUNC SETC 'pdf_destroy'"); -void pdf_destroy(PDF *pdf) -{ - unsigned i; - unsigned count; - - if (pdf) { - if (pdf->objects) { - count = arraycount(&pdf->objects); - for (i = 0; i < count; i++) { - pdf_object_destroy(pdf->objects[i]); - } - arrayfree(&pdf->objects); - } - free(pdf); - } -} - diff --git a/src/crent370/pdf/pdfgerr.c b/src/crent370/pdf/pdfgerr.c deleted file mode 100644 index 16867ae..0000000 --- a/src/crent370/pdf/pdfgerr.c +++ /dev/null @@ -1,17 +0,0 @@ -#define PDF_PRIVATE -#include "clibpdfi.h" - -__asm__("\n&FUNC SETC 'pdf_get_err'"); -const char *pdf_get_err(PDF *pdf, int *errval) -{ - if (!pdf) - return NULL; - - if (pdf->errstr[0] == '\0') - return NULL; - - if (errval) - *errval = pdf->errval; - - return pdf->errstr; -} diff --git a/src/crent370/pdf/pdfgftw.c b/src/crent370/pdf/pdfgftw.c deleted file mode 100644 index 3137b7b..0000000 --- a/src/crent370/pdf/pdfgftw.c +++ /dev/null @@ -1,20 +0,0 @@ -#define PDF_PRIVATE -#include "clibpdfi.h" - -__asm__("\n&FUNC SETC 'pdf_get_font_text_width'"); -int pdf_get_font_text_width(PDF *pdf, const char *font_name, const char *text, int size) -{ - const unsigned short *widths = find_font_widths(font_name); - int err; - - if (!widths) - return pdf_set_err(pdf, -EINVAL, - "Unable to determine width for font '%s'", - font_name); - - err = pdf_text_pixel_width(text, -1, size, widths); - if (err < 0) - return pdf_set_err(pdf, err, "Unable to determine text width"); - - return err; -} diff --git a/src/crent370/pdf/pdfhght.c b/src/crent370/pdf/pdfhght.c deleted file mode 100644 index 7ab668a..0000000 --- a/src/crent370/pdf/pdfhght.c +++ /dev/null @@ -1,8 +0,0 @@ -#define PDF_PRIVATE -#include "clibpdfi.h" - -__asm__("\n&FUNC SETC 'pdf_height'"); -int pdf_height(PDF *pdf) -{ - return pdf->height; -} diff --git a/src/crent370/pdf/pdfpgss.c b/src/crent370/pdf/pdfpgss.c deleted file mode 100644 index 02f7f53..0000000 --- a/src/crent370/pdf/pdfpgss.c +++ /dev/null @@ -1,16 +0,0 @@ -#define PDF_PRIVATE -#include "clibpdfi.h" - -__asm__("\n&FUNC SETC 'pdf_page_set_size'"); -int pdf_page_set_size(PDF *pdf, PDFO *page, int width, int height) -{ - if (!page) - page = pdf_find_last_object(pdf, OBJ_page); - - if (!page || page->type != OBJ_page) - return pdf_set_err(pdf, -EINVAL, "Invalid PDF page"); - - page->page.width = width; - page->page.height = height; - return 0; -} diff --git a/src/crent370/pdf/pdfptext.c b/src/crent370/pdf/pdfptext.c deleted file mode 100644 index 724fdc0..0000000 --- a/src/crent370/pdf/pdfptext.c +++ /dev/null @@ -1,9 +0,0 @@ -#define PDF_PRIVATE -#include "clibpdfi.h" - -__asm__("\n&FUNC SETC 'pdf_put_text'"); -int pdf_put_text(PDF *pdf, PDFO *page, const char *text, int size, int xoff, int yoff, unsigned colour) -{ - return pdf_put_text_spacing(pdf, page, text, size, xoff, yoff, colour, 0); -} - diff --git a/src/crent370/pdf/pdfsave.c b/src/crent370/pdf/pdfsave.c deleted file mode 100644 index 14d5d31..0000000 --- a/src/crent370/pdf/pdfsave.c +++ /dev/null @@ -1,24 +0,0 @@ -#define PDF_PRIVATE -#include "clibpdfi.h" - -__asm__("\n&FUNC SETC 'pdf_save'"); -int pdf_save(PDF *pdf, const char *filename) -{ - FILE *fp; - int e; - - if (filename == NULL) - fp = stdout; - else if ((fp = fopen(filename, "wb")) == NULL) - return pdf_set_err(pdf, -errno, "Unable to open '%s': %s", filename, - strerror(errno)); - - e = pdf_save_file(pdf, fp); - - if (fp != stdout) - if (fclose(fp) != 0 && e >= 0) - return pdf_set_err(pdf, -errno, "Unable to close '%s': %s", - filename, strerror(errno)); - - return e; -} diff --git a/src/crent370/pdf/pdfscomp.c b/src/crent370/pdf/pdfscomp.c deleted file mode 100644 index d4a76da..0000000 --- a/src/crent370/pdf/pdfscomp.c +++ /dev/null @@ -1,16 +0,0 @@ -#define PDF_PRIVATE -#include "clibpdfi.h" - -__asm__("\n&FUNC SETC 'pdf_set_compression'"); -int pdf_set_compression(PDF *pdf, int on) -{ - if (on) { - pdf->flags |= PDF_COMPRESS; - } - else { - pdf->flags &= ~PDF_COMPRESS; - } - - return 0; -} - diff --git a/src/crent370/pdf/pdfsdbg.c b/src/crent370/pdf/pdfsdbg.c deleted file mode 100644 index 4ff1eaf..0000000 --- a/src/crent370/pdf/pdfsdbg.c +++ /dev/null @@ -1,15 +0,0 @@ -#define PDF_PRIVATE -#include "clibpdfi.h" - -__asm__("\n&FUNC SETC 'pdf_set_debug'"); -int pdf_set_debug(PDF *pdf, int on) -{ - if (on) { - pdf->flags |= PDF_DEBUG; - } - else { - pdf->flags &= ~PDF_DEBUG; - } - - return 0; -} diff --git a/src/crent370/pdf/pdfsfile.c b/src/crent370/pdf/pdfsfile.c deleted file mode 100644 index c9d00a7..0000000 --- a/src/crent370/pdf/pdfsfile.c +++ /dev/null @@ -1,306 +0,0 @@ -#define PDF_PRIVATE -#include "clibpdfi.h" -#include "clibmz.h" - -static int pdf_save_object(PDF *pdf, FILE *fp, int index); - -__asm__("\n&FUNC SETC 'pdf_save_file'"); -int pdf_save_file(PDF *pdf, FILE *fp) -{ - PDFO *obj; - int xref_offset; - int xref_count = 0; - int i; - union { - char stck[8]; - unsigned word[2]; - }u; - - pdf_fprintf(fp, "%%PDF-1.2\r\n%%"); - /* Hibit bytes */ - fprintf(fp, "%c%c%c%c", 0xDE, 0xAD, 0xBE, 0xEF); - pdf_fprintf(fp, "\r\n"); - - /* Dump all the objects & get their file offsets */ - for (i = 1; i <= arraycount(&pdf->objects); i++) - if (pdf_save_object(pdf, fp, i) >= 0) - xref_count++; - - /* xref */ - xref_offset = ftell(fp); - pdf_fprintf(fp, "xref\r\n"); - pdf_fprintf(fp, "0 %d\r\n", xref_count + 1); - pdf_fprintf(fp, "0000000000 65535 f\r\n"); - for (i = 0; i < arraycount(&pdf->objects); i++) { - obj = pdf->objects[i]; - if (obj->type != OBJ_none) { - if (!obj->offset) { - wtodumpf(obj, sizeof(PDFO), "xref object has no offset"); - continue; - } - pdf_fprintf(fp, "%10.10d 00000 n\r\n", obj->offset); - } - } - - pdf_fprintf(fp, - "trailer\r\n" - "<<\r\n" - "/Size %d\r\n", - xref_count + 1); - obj = pdf_find_first_object(pdf, OBJ_catalog); - pdf_fprintf(fp, "/Root %d 0 R\r\n", obj->index); - obj = pdf_find_first_object(pdf, OBJ_info); - pdf_fprintf(fp, "/Info %d 0 R\r\n", obj->index); - - pdf_stck(u.stck); - pdf_fprintf(fp, "/ID [<%08x%08x> <%08x%08x>]\r\n", - u.word[0], u.word[1], u.word[0], u.word[1]); - pdf_fprintf(fp, ">>\r\n" - "startxref\r\n"); - pdf_fprintf(fp, "%d\r\n", xref_offset); - pdf_fprintf(fp, "%%%%EOF\r\n"); - - return 0; -} - -__asm__("\n&FUNC SETC 'pdf_save_object'"); -static int pdf_save_object(PDF *pdf, FILE *fp, int index) -{ - PDFO *object = pdf_get_object(pdf, index); - - if (!object || object->type == OBJ_none) - return -ENOENT; - - object->offset = ftell(fp); - - pdf_fprintf(fp, "%d 0 obj\r\n", index); - - switch (object->type) { - case OBJ_stream: - case OBJ_image: { - fwrite(dstr_data(&object->stream), dstr_len(&object->stream), 1, fp); - break; - } - case OBJ_info: { - PDFI *info = object->info; - - pdf_fprintf(fp, - "<<\r\n" - " /Creator (%s)\r\n" - " /Producer (%s)\r\n" - " /Title (%s)\r\n" - " /Author (%s)\r\n" - " /Subject (%s)\r\n" - " /CreationDate (D:%s)\r\n" - ">>\r\n", - info->creator, info->producer, info->title, info->author, - info->subject, info->date); - break; - } - - case OBJ_page: { - PDFO *pages = pdf_find_first_object(pdf, OBJ_pages); - PDFO *image = pdf_find_first_object(pdf, OBJ_image); - PDFO *font; - int i; - - pdf_fprintf(fp, - "<<\r\n" - "/Type /Page\r\n" - "/Parent %d 0 R\r\n", - pages->index); - pdf_fprintf(fp, "/MediaBox [0 0 %d %d]\r\n", object->page.width, - object->page.height); - pdf_fprintf(fp, "/Resources <<\r\n"); - pdf_fprintf(fp, " /Font <<\r\n"); - for (font = pdf_find_first_object(pdf, OBJ_font); - font; font = pdf_get_object(pdf, font->next)) - pdf_fprintf(fp, " /F%d %d 0 R\r\n", font->font.index, font->index); - pdf_fprintf(fp, " >>\r\n"); - - if (image) { - pdf_fprintf(fp, " /XObject <<"); - for (; image; image = pdf_get_object(pdf, image->next)) - pdf_fprintf(fp, "/Image%d %d 0 R ", image->index, image->index); - pdf_fprintf(fp, ">>\r\n"); - } - - pdf_fprintf(fp, ">>\r\n"); - pdf_fprintf(fp, "/Contents [\r\n"); - for (i = 0; i < arraycount(&object->page.children); i++) { - int child = (int) object->page.children[i]; - pdf_fprintf(fp, "%d 0 R\r\n", child); - } - pdf_fprintf(fp, "]\r\n"); - pdf_fprintf(fp, ">>\r\n"); - break; - } - - case OBJ_bookmark: { - PDFO *parent_obj; - PDFO *other; - int nchildren; - - parent_obj = pdf_get_object(pdf, object->bookmark.parent); - if (!parent_obj) - parent_obj = pdf_find_first_object(pdf, OBJ_outline); - if (!object->bookmark.page) - break; - pdf_fprintf(fp, - "<<\r\n" - "/A << /Type /Action\r\n" - " /S /GoTo\r\n" - " /D [%d 0 R /XYZ 0 %d null]\r\n" - " >>\r\n" - "/Parent %d 0 R\r\n" - "/Title (%s)\r\n", - object->bookmark.page, pdf->height, parent_obj->index, - object->bookmark.name); - nchildren = arraycount(&object->bookmark.children); - if (nchildren > 0) { - int f, l; - f = object->bookmark.children[0]; - l = object->bookmark.children[nchildren - 1]; - pdf_fprintf(fp, "/First %d 0 R\r\n", f); - pdf_fprintf(fp, "/Last %d 0 R\r\n", l); - } - /* Find the previous bookmark with the same parent */ - for (other = pdf_get_object(pdf, object->prev); - other && other->bookmark.parent != object->bookmark.parent; - other = pdf_get_object(pdf, other->prev)) - ; - if (other) - pdf_fprintf(fp, "/Prev %d 0 R\r\n", other->index); - /* Find the next bookmark with the same parent */ - for (other = pdf_get_object(pdf, object->next); - other && other->bookmark.parent != object->bookmark.parent; - other = pdf_get_object(pdf, other->next)) - ; - if (other) - pdf_fprintf(fp, "/Next %d 0 R\r\n", other->index); - pdf_fprintf(fp, ">>\r\n"); - break; - } - - case OBJ_outline: { - PDFO *first, *last, *cur; - first = pdf_find_first_object(pdf, OBJ_bookmark); - last = pdf_find_last_object(pdf, OBJ_bookmark); - - if (first && last) { - int count = 0; - cur = first; - while (cur) { - if (!cur->bookmark.parent) - count++; - cur = pdf_get_object(pdf, cur->next); - } - - /* Bookmark outline */ - pdf_fprintf(fp, - "<<\r\n" - "/Count %d\r\n" - "/Type /Outlines\r\n" - "/First %d 0 R\r\n" - "/Last %d 0 R\r\n" - ">>\r\n", - count, first->index, last->index); - } - break; - } - - case OBJ_font: - pdf_fprintf(fp, - "<<\r\n" - " /Type /Font\r\n" - " /Subtype /Type1\r\n" - " /BaseFont /%s\r\n" - " /Encoding /WinAnsiEncoding\r\n" - ">>\r\n", - object->font.name); - break; - - case OBJ_pages: { - int npages = 0; - PDFO *page; - - pdf_fprintf(fp, "<<\r\n" - "/Type /Pages\r\n" - "/Kids [ "); - for (page = pdf_find_first_object(pdf, OBJ_page); - page; page = pdf_get_object(pdf, page->next)) { - npages++; - pdf_fprintf(fp, "%d 0 R ", page->index); - } - pdf_fprintf(fp, "]\r\n"); - pdf_fprintf(fp, "/Count %d\r\n", npages); - pdf_fprintf(fp, ">>\r\n"); - break; - } - - case OBJ_catalog: { - PDFO *outline = pdf_find_first_object(pdf, OBJ_outline); - PDFO *pages = pdf_find_first_object(pdf, OBJ_pages); - - pdf_fprintf(fp, "<<\r\n" - "/Type /Catalog\r\n"); - if (outline) - pdf_fprintf(fp, - "/Outlines %d 0 R\r\n" - "/PageMode /UseOutlines\r\n", - outline->index); - pdf_fprintf(fp, - "/Pages %d 0 R\r\n" - ">>\r\n", - pages->index); - break; - } - - case OBJ_text: { - /* experimental text stream object */ - int len = dstr_len(&object->text->stream); - unsigned char *data = dstr_data(&object->text->stream); - - if (pdf->flags & PDF_COMPRESS) { - int cmp_status; - mz_ulong cmp_len = compressBound(len); - unsigned char *pCmp; - - pCmp = (unsigned char *)malloc((size_t)cmp_len); - if (pCmp) { - cmp_status = compress(pCmp, &cmp_len, data, len); - if (cmp_status != Z_OK) { - if (pdf->flags & PDF_DEBUG) wtof("compress of text stream failed"); - } - else { - if (pdf->flags & PDF_DEBUG) wtof("text stream compressed from %u to %u bytes", len, cmp_len); - if ((cmp_len + 50) < len) { - pdf_fprintf(fp, "<>stream\r\n", cmp_len); - - fwrite(pCmp, cmp_len, 1, fp); - - pdf_fprintf(fp, "endstream\r\n"); - } - } - free(pCmp); - break; - } - } - - pdf_fprintf(fp, "<< /Length %d >>stream\r\n", len); - - fwrite(data, len, 1, fp); - - pdf_fprintf(fp, "endstream\r\n"); - break; - } - - default: - return pdf_set_err(pdf, -EINVAL, "Invalid PDF object type %d", - object->type); - } - - pdf_fprintf(fp, "endobj\r\n"); - - return 0; -} diff --git a/src/crent370/pdf/pdfsfont.c b/src/crent370/pdf/pdfsfont.c deleted file mode 100644 index e6bef96..0000000 --- a/src/crent370/pdf/pdfsfont.c +++ /dev/null @@ -1,30 +0,0 @@ -#define PDF_PRIVATE -#include "clibpdfi.h" - -__asm__("\n&FUNC SETC 'pdf_set_font'"); -int pdf_set_font(PDF *pdf, const char *font) -{ - PDFO *obj; - int last_index = 0; - - /* See if we've used this font before */ - for (obj = pdf_find_first_object(pdf, OBJ_font); obj; obj = pdf_get_object(pdf, obj->next)) { - if (strcmp(obj->font.name, font) == 0) - break; - last_index = obj->font.index; - } - - /* Create a new font object if we need it */ - if (!obj) { - obj = pdf_add_object(pdf, OBJ_font); - if (!obj) - return pdf->errval; - strncpy(obj->font.name, font, sizeof(obj->font.name)); - obj->font.name[sizeof(obj->font.name) - 1] = '\0'; - obj->font.index = last_index + 1; - } - - pdf->current_font = obj->index; - - return 0; -} diff --git a/src/crent370/pdf/pdftest.c b/src/crent370/pdf/pdftest.c deleted file mode 100644 index 60bd365..0000000 --- a/src/crent370/pdf/pdftest.c +++ /dev/null @@ -1,203 +0,0 @@ -#include -#include - -#include "clibpdf.h" -#include "clibwto.h" - -int main(int argc, char *argv[]) -{ - struct pdf_info info = {.creator = "My software", - .producer = "My software", - .title = "My document", - .author = "My name", - .subject = "My subject"}; - struct pdf_doc *pdf = pdf_create(PDF_A4_WIDTH, PDF_A4_HEIGHT, &info); - int i; - int height; - int bm; - int err; - - /* Unused */ - (void)argc; - (void)argv; - - pdf_set_compression(pdf, 0); /* disable compression of streams */ - pdf_set_debug(pdf,1); /* enable debug output (wto) */ - - if (pdf_width(pdf) != PDF_A4_WIDTH || pdf_height(pdf) != PDF_A4_HEIGHT) { - fprintf(stderr, "PDF Size mismatch: %dx%d\n", pdf_width(pdf), - pdf_height(pdf)); - return -1; - } - - i = pdf_get_font_text_width(pdf, "Times-BoldItalic", "foo", 14); - if (i < 18) { - fprintf(stderr, "Font width invalid: %d\n", i); - return -1; - } - -#if 0 - /* These calls should fail, since we haven't added a page yet */ - if (pdf_add_ppm(pdf, NULL, 10, 10, 20, 30, "data/teapot.ppm") >= 0) - return -1; - - if (pdf_add_jpeg(pdf, NULL, 100, 500, 50, 150, "data/penguin.jpg") >= 0) - return -1; - - if (pdf_add_text(pdf, NULL, "Page One", 10, 20, 30, - PDF_RGB(0xff, 0, 0)) >= 0) - return -1; - - if (pdf_add_bookmark(pdf, NULL, -1, "Another Page") >= 0) - return -1; - - if (!pdf_get_err(pdf, &err)) - return -1; -#endif - - pdf_clear_err(pdf); - /* From now on, we shouldn't see any errors */ - - pdf_set_font(pdf, "Times-BoldItalic"); - pdf_append_page(pdf); - - height = pdf_add_text_wrap( - pdf, NULL, - "This is a great big long string that I hope will wrap properly " - "around several lines.\nThere are some odd length " - "linesthatincludelongwords to check the justification. " - "I've put some embedded line breaks in to " - "see how it copes with them. Hopefully it all works properly.\n\n\n" - "We even include multiple breaks\n" - "thisisanenourmouswordthatwillneverfitandwillhavetobecut", - 16, 60, 800, PDF_RGB(0, 0, 0), 300, PDF_ALIGN_JUSTIFY); - - pdf_add_rectangle(pdf, NULL, 58, 800 + 16, 304, -height, 2, - PDF_RGB(0, 0, 0)); - pdf_add_ppm(pdf, NULL, 10, 10, 200, 200, "mdr.crent370.ppm(teapot)"); - - pdf_add_jpeg(pdf, NULL, 100, 500, 50, 50, "mdr.crent370.jpeg(penguin)"); - - pdf_add_barcode(pdf, NULL, PDF_BARCODE_128A, 50, 300, 200, 50, "Code128", - PDF_RGB(0, 0, 0)); - pdf_add_barcode(pdf, NULL, PDF_BARCODE_39, 50, 400, 400, 50, "CODE39", - PDF_RGB(0, 0, 0)); - - pdf_add_text(pdf, NULL, "Page One", 10, 20, 30, PDF_RGB(0xff, 0, 0)); - pdf_add_text(pdf, NULL, "PjGQji", 18, 20, 130, PDF_RGB(0, 0xff, 0xff)); -#if 0 - pdf_add_line(pdf, NULL, 10, 24, 100, 24, 4, PDF_RGB(0xff, 0, 0)); -#endif - pdf_add_circle(pdf, NULL, 100, 240, 50, 5, PDF_RGB(0xff, 0, 0), - PDF_TRANSPARENT); - pdf_add_ellipse(pdf, NULL, 100, 240, 40, 30, 2, PDF_RGB(0xff, 0xff, 0), - PDF_RGB(0, 0, 0)); - pdf_add_rectangle(pdf, NULL, 150, 150, 100, 100, 4, PDF_RGB(0, 0, 0xff)); - pdf_add_filled_rectangle(pdf, NULL, 150, 450, 100, 100, 4, - PDF_RGB(0, 0xff, 0)); - int p1X[] = {200, 200, 300, 300}; - int p1Y[] = {200, 300, 200, 300}; - pdf_add_polygon(pdf, NULL, p1X, p1Y, 4, 4, PDF_RGB(0xaa, 0xff, 0xee)); - int p2X[] = {400, 400, 500, 500}; - int p2Y[] = {400, 500, 400, 500}; - pdf_add_filled_polygon(pdf, NULL, p2X, p2Y, 4, 4, - PDF_RGB(0xff, 0x77, 0x77)); - pdf_add_text(pdf, NULL, "", 20, 20, 30, PDF_RGB(0, 0, 0)); - pdf_add_text(pdf, NULL, "Date (YYYY-MM-DD):", 20, 220, 30, - PDF_RGB(0, 0, 0)); - - pdf_add_bookmark(pdf, NULL, -1, "First page"); - - /* testing pdf_put_text() */ - pdf_append_page(pdf); - pdf_put_text(pdf, NULL, "Page Two", 10, 20, 30, PDF_RGB(0, 0, 0)); - pdf_put_text(pdf, NULL, "This is some weird text () \\ # : - Wi-Fi", - 10, 20, 720, PDF_RGB(255, 0, 0)); - pdf_put_text(pdf, NULL, "Control characters ( ) < > [ ] { } / % \n \r \t \b \f ending", - 10, 20, 700, PDF_RGB(255, 0, 0)); - pdf_put_text(pdf, NULL, "Special characters: €ÜŽžŠšÁáüöäÄÜÖß", - 10, 20, 680, PDF_RGB(255, 0, 0)); - pdf_put_text(pdf, NULL, "This one has a new line in it\nThere it was", - 10, 20, 660, PDF_RGB(255, 0, 0)); -#if 0 - pdf_add_text(pdf, NULL, "Page Two", 10, 20, 30, PDF_RGB(0, 0, 0)); - pdf_add_text(pdf, NULL, "This is some weird text () \\ # : - Wi-Fi", 10, - 50, 60, PDF_RGB(0, 0, 0)); - pdf_add_text( - pdf, NULL, - "Control characters ( ) < > [ ] { } / % \n \r \t \b \f ending", 10, - 50, 45, PDF_RGB(0, 0, 0)); - pdf_add_text(pdf, NULL, "Special characters: €ÜŽžŠšÁáüöäÄÜÖß", 10, 50, 15, - PDF_RGB(0, 0, 0)); - pdf_add_text(pdf, NULL, "This one has a new line in it\nThere it was", 10, - 50, 80, PDF_RGB(0, 0, 0)); - pdf_add_text( - pdf, NULL, - "This is a really long line that will go off the edge of the screen, " - "because it is so long. I like long text. The quick brown fox jumped " - "over the lazy dog. The quick brown fox jumped over the lazy dog", - 10, 100, 100, PDF_RGB(0, 0, 0)); - pdf_set_font(pdf, "Helvetica-Bold"); - pdf_add_text( - pdf, NULL, - "This is a really long line that will go off the edge of the screen, " - "because it is so long. I like long text. The quick brown fox jumped " - "over the lazy dog. The quick brown fox jumped over the lazy dog", - 10, 100, 130, PDF_RGB(0, 0, 0)); - pdf_set_font(pdf, "ZapfDingbats"); - pdf_add_text( - pdf, NULL, - "This is a really long line that will go off the edge of the screen, " - "because it is so long. I like long text. The quick brown fox jumped " - "over the lazy dog. The quick brown fox jumped over the lazy dog", - 10, 100, 150, PDF_RGB(0, 0, 0)); - - pdf_set_font(pdf, "Courier-Bold"); - pdf_add_text(pdf, NULL, "(5.6.5) RS232 shutdown", 8, 317, 546, - PDF_RGB(0, 0, 0)); - pdf_add_text(pdf, NULL, "", 8, 437, 546, PDF_RGB(0, 0, 0)); - pdf_add_text(pdf, NULL, "Pass", 8, 567, 556, PDF_RGB(0, 0, 0)); - pdf_add_text(pdf, NULL, "(5.6.3) RS485 pins", 8, 317, 556, - PDF_RGB(0, 0, 0)); - - bm = pdf_add_bookmark(pdf, NULL, -1, "Another Page"); - bm = pdf_add_bookmark(pdf, NULL, bm, "Another Page again"); - pdf_add_bookmark(pdf, NULL, bm, "A child page"); - pdf_add_bookmark(pdf, NULL, -1, "Top level again"); -#endif -#if 0 - pdf_append_page(pdf); - - pdf_set_font(pdf, "Times-Roman"); - for (i = 0; i < 3000; i++) { - int xpos = (i / 100) * 40; - int ypos = (i % 100) * 10; - pdf_add_text(pdf, NULL, "Text blob", 8, xpos, ypos, - PDF_RGB(i, (i * 4) & 0xff, (i * 8) & 0xff)); - } - pdf_add_text(pdf, NULL, "", 10, (i / 100) * 100, (i % 100) * 12, - PDF_RGB(0xff, 0, 0)); - - pdf_append_page(pdf); - pdf_page_set_size(pdf, NULL, PDF_A3_HEIGHT, PDF_A3_WIDTH); - pdf_add_text(pdf, NULL, "This is an A3 landscape page", 10, 20, 30, - PDF_RGB(0xff, 0, 0)); -#endif - -#if 1 - pdf_save(pdf, "output.pdf"); -#endif - -#if 0 - const char *err_str = pdf_get_err(pdf, &err); - if (err_str) { - fprintf(stderr, "PDF Error: %d - %s\n", err, err_str); - pdf_destroy(pdf); - return -1; - } -#endif - pdf_destroy(pdf); - - return 0; -} - diff --git a/src/crent370/pdf/pdfwidth.c b/src/crent370/pdf/pdfwidth.c deleted file mode 100644 index 60888be..0000000 --- a/src/crent370/pdf/pdfwidth.c +++ /dev/null @@ -1,8 +0,0 @@ -#define PDF_PRIVATE -#include "clibpdfi.h" - -__asm__("\n&FUNC SETC 'pdf_width'"); -int pdf_width(PDF *pdf) -{ - return pdf->width; -} diff --git a/src/crent370/pdf/pdfx.c b/src/crent370/pdf/pdfx.c deleted file mode 100644 index a8621bd..0000000 --- a/src/crent370/pdf/pdfx.c +++ /dev/null @@ -1,1050 +0,0 @@ -#include "clibpdfi.h" /* PDF Internal (private) prototypes */ -#include "clibmz.h" - -extern unsigned char *ebc2asc; -extern unsigned char *asc2ebc; - -static char *pdfetoa(char *buf, int len); -static char *pdfatoe(char *buf, int len); - -/* trying some new printf code */ -#define vsnprintf vsnprintf_ -#define vsprint vsprintf_ - -__asm__("\n&FUNC SETC 'dstr_data'"); -static char *dstr_data(DSTR *str) -{ - return str->data ? str->data : str->static_data; -} - -__asm__("\n&FUNC SETC 'dstr_len'"); -static int dstr_len(DSTR *str) -{ - return str->used_len; -} - -__asm__("\n&FUNC SETC 'dstr_ensure'"); -static int dstr_ensure(DSTR *str, int len) -{ - if (len <= str->alloc_len) return 0; - - if (!str->data && len <= sizeof(str->static_data)) { - str->alloc_len = len; - } - else if (str->alloc_len < len) { - int new_len = len + 64; /* original bump was 4096 */ - char *new_data = realloc(str->data, new_len); - - if (!new_data) return -ENOMEM; - - /* If we move beyond the on-stack buffer, copy the old data out */ - if (!str->data && str->used_len > 0) - memcpy(new_data, str->static_data, str->used_len + 1); - - str->data = new_data; - str->alloc_len = new_len; - } - return 0; -} - -__asm__("\n&FUNC SETC 'dstr_printf'"); -static int dstr_printf(DSTR *str, const char *fmt, ...) -{ - va_list ap; - int len; - - va_start(ap, fmt); - len = vsnprintf(NULL, 0, fmt, ap); - if (dstr_ensure(str, str->used_len + len + 1) < 0) { - va_end(ap); - return -ENOMEM; - } - va_end(ap); - - va_start(ap, fmt); - vsprintf(dstr_data(str) + str->used_len, fmt, ap); - pdfetoa(dstr_data(str) + str->used_len, len); - str->used_len += len; - va_end(ap); - - return len; -} - -__asm__("\n&FUNC SETC 'dstr_append_data'"); -static int dstr_append_data(DSTR *str, const void *extend, int len) -{ - if (dstr_ensure(str, str->used_len + len) < 0) - return -ENOMEM; - - memcpy(dstr_data(str) + str->used_len, extend, len); - str->used_len += len; - return len; -} - -__asm__("\n&FUNC SETC 'dstr_append'"); -static int dstr_append(DSTR *str, const char *extend, int len) -{ - if (len <= 0) len = strlen(extend); - - if (dstr_ensure(str, str->used_len + len + 1) < 0) - return -ENOMEM; - - memcpy(dstr_data(str) + str->used_len, extend, len + 1); - pdfetoa(dstr_data(str) + str->used_len, len); - str->used_len += len; - return len; -} - -__asm__("\n&FUNC SETC 'dstr_free'"); -static void dstr_free(DSTR *str) -{ - if (str->data) - free(str->data); - - str->alloc_len = 0; - str->used_len = 0; - str->data = 0; - str->static_data[0] = 0; -} - -__asm__("\n&FUNC SETC 'pdf_set_err'"); -static int pdf_set_err(PDF *doc, int errval, const char *fmt, ...) -{ - va_list ap; - int len; - - va_start(ap, fmt); - len = vsnprintf(doc->errstr, sizeof(doc->errstr) - 1, fmt, ap); - va_end(ap); - - /* Make sure we're properly terminated */ - doc->errstr[sizeof(doc->errstr)-1] = '\0'; - doc->errval = errval; - - return errval; -} - -__asm__("\n&FUNC SETC 'pdf_get_object'"); -static PDFO *pdf_get_object(PDF *pdf, int index) -{ - return (PDFO*) arrayget(&pdf->objects, index); -} - -__asm__("\n&FUNC SETC 'pdf_append_object'"); -static int pdf_append_object(PDF *pdf, PDFO *obj) -{ - int index; - - if (arrayadd(&pdf->objects, obj)) - return -ENOMEM; - - index = ++pdf->current_index; /* arraycount(&pdf->objects); */ - obj->index = index; - - if (pdf->last_objects[obj->type]) { - obj->prev = pdf->last_objects[obj->type]->index; - pdf->last_objects[obj->type]->next = obj->index; - } - - pdf->last_objects[obj->type] = obj; - - if (!pdf->first_objects[obj->type]) - pdf->first_objects[obj->type] = obj; - - return 0; -} - -__asm__("\n&FUNC SETC 'pdf_add_object'"); -static PDFO *pdf_add_object(PDF *pdf, int type) -{ - PDFO *obj; - - obj = calloc(1, sizeof(*obj)); - if (!obj) { - pdf_set_err(pdf, -errno, "Unable to allocate object %d: %s", - pdf->current_index+1, strerror(errno)); - return NULL; - } - - strcpy(obj->eye, PDF_OBJECT_EYE); - obj->type = type; - - if (obj->type==OBJ_text) { - obj->text = calloc(1, sizeof(TEXT)); - if (!obj->text) { - pdf_set_err(pdf, -errno, "Unable to allocate object %d: %s", - pdf->current_index+1, strerror(errno)); - free(obj); - return NULL; - } - } - - if (pdf_append_object(pdf, obj) < 0) { - free(obj); - return NULL; - } - - return obj; -} - -__asm__("\n&FUNC SETC 'pdf_object_destroy'"); -static void pdf_object_destroy(PDFO *object) -{ - switch (object->type) { - case OBJ_stream: - case OBJ_image: - dstr_free(&object->stream); - break; - case OBJ_page: - arrayfree(&object->page.children); - break; - case OBJ_info: - free(object->info); - break; - case OBJ_bookmark: - arrayfree(&object->bookmark.children); - break; - case OBJ_text: - dstr_free(&object->text->stream); - free(object->text); - } - free(object); -} - -__asm__("\n&FUNC SETC 'pdf_find_first_object'"); -static PDFO *pdf_find_first_object(PDF *pdf, int type) -{ - return pdf->first_objects[type]; -} - -__asm__("\n&FUNC SETC 'pdf_find_last_object'"); -static PDFO *pdf_find_last_object(PDF *pdf, int type) -{ - return pdf->last_objects[type]; -} - - -__asm__("\n&FUNC SETC 'pdfetoa'"); -static char *pdfetoa(char *buf, int len) -{ - int i; - - if (!len) len = strlen(buf); - if (len<=0) goto quit; - - for(i=0; i < len; i++) { - /* we translate special control characters ourselves */ - switch(buf[i]) { - case '\r': /* EBCDIC CR */ - buf[i]=0x0D; /* ASCII CR */ - break; - case '\n': /* EBCDIC NL */ - buf[i]=0x0A; /* ASCII LF */ - break; - case 0xAD: /* EBCDIC Left Square Bracket */ - buf[i]=0x5B; /* ASCII Left Square Bracket */ - break; - case 0xBD: /* EBCDIC Right Square Bracket */ - buf[i]=0x5D; /* ASCII Right Square Bracket */ - break; - default: - buf[i] = ebc2asc[buf[i]]; - } - } - -quit: - return buf; -} - -__asm__("\n&FUNC SETC 'pdf_fprintf'"); -static int pdf_fprintf(FILE *stream, const char *format, ...) -{ - va_list arg; - int ret; - char buf[4096]; - - va_start(arg, format); - ret = vsprintf(buf, format, arg); - va_end(arg); - - if (ret > 0) { - pdfetoa(buf,ret); - ret = fwrite(buf, 1, ret, stream); - } - -quit: - return (ret); -} - -__asm__("\n&FUNC SETC 'pdf_add_stream'"); -static int pdf_add_stream(PDF *pdf, PDFO *page, const char *buffer) -{ - PDFO *obj; - int len; - - if (!page) - page = pdf_find_last_object(pdf, OBJ_page); - - if (!page) - return pdf_set_err(pdf, -EINVAL, "Invalid pdf page"); - - len = strlen(buffer); - /* We don't want any trailing whitespace in the stream */ - while (len >= 1 && (buffer[len - 1] == '\r' || buffer[len - 1] == '\n')) - len--; - - obj = pdf_add_object(pdf, OBJ_stream); - if (!obj) - return pdf->errval; - - dstr_printf(&obj->stream, "<< /Length %d >>stream\r\n", len); - dstr_append_data(&obj->stream, buffer, len); /* buffer is already ASCII data */ - dstr_append(&obj->stream, "\r\nendstream\r\n", 0); - - len = arrayadd(&page->page.children, (void*)obj->index); - - return len; -} - -#if 0 -__asm__("\n&FUNC SETC 'utf8_to_utf32'"); -static int utf8_to_utf32(const char *utf8, int len, unsigned *utf32) -{ - unsigned ch = *utf8; - uint8_t mask; - - if ((ch & 0x80) == 0) { - len = 1; - mask = 0x7f; - } else if ((ch & 0xe0) == 0xc0 && len >= 2) { - len = 2; - mask = 0x1f; - } else if ((ch & 0xf0) == 0xe0 && len >= 3) { - len = 3; - mask = 0xf; - } else if ((ch & 0xf8) == 0xf0 && len >= 4) { - len = 4; - mask = 0x7; - } else - return -EINVAL; - - ch = 0; - for (int i = 0; i < len; i++) { - int shift = (len - i - 1) * 6; - if (i == 0) - ch |= ((unsigned)(*utf8++) & mask) << shift; - else - ch |= ((unsigned)(*utf8++) & 0x3f) << shift; - } - - *utf32 = ch; - - return len; -} -#endif - -__asm__("\n&FUNC SETC 'pdf_add_text_spacing'"); -static int pdf_add_text_spacing(PDF *pdf, PDFO *page, - const char *text, int size, int xoff, - int yoff, unsigned colour, double spacing) -{ - int ret; - int len = text ? strlen(text) : 0; - DSTR str = INIT_DSTR; - int i; - PDFO *font = pdf_get_object(pdf, pdf->current_font); - - /* Don't bother adding empty/null strings */ - if (!len) - return 0; - - dstr_append(&str, "BT ", 3); - dstr_printf(&str, "%d %d TD ", xoff, yoff); - dstr_printf(&str, "/F%d %d Tf ", font->font.index, size); - dstr_printf(&str, "%g %g %g rg ", PDF_RGB_R(colour), PDF_RGB_G(colour), - PDF_RGB_B(colour)); - dstr_printf(&str, "%g Tc ", spacing); - dstr_append(&str, "(", 1); - - /* Escape magic characters properly */ - for (i = 0; i < len;) { -#if 0 - unsigned code; - int code_len; - code_len = utf8_to_utf32(&text[i], len - i, &code); - if (code_len < 0) { - dstr_free(&str); - return pdf_set_err(pdf, -EINVAL, "Invalid UTF-8 encoding"); - } -#else - /* since we're running in an EBCDIC environment we know our - characters are not UFT8 or any other ASCII subset/superset */ - unsigned code = text[i]; - int code_len = 1; - char buf[5] = {0}; -#endif - if (code > 255) { - /* We support *some* minimal UTF-8 characters */ - switch (code) { - case 0x160: - buf[0] = (char)0x8a; - break; - case 0x161: - buf[0] = (char)0x9a; - break; - case 0x17d: - buf[0] = (char)0x8e; - break; - case 0x17e: - buf[0] = (char)0x9e; - break; - case 0x20ac: - strcpy(buf, "\\200"); - break; - default: - dstr_free(&str); - return pdf_set_err(pdf, -EINVAL, - "Unsupported UTF-8 character: 0x%x 0o%o", - code, code); - } - dstr_append(&str, buf, 0); - } - else if (strchr("()\\", code)) { - /* Escape some characters */ - buf[0] = '\\'; - buf[1] = code; - dstr_append(&str, buf, 2); - } - else if (strrchr("\n\r\t\b\f", code)) { - /* Skip over these characters */ - ; - } -#if 1 - else if (!isprint(code)) { - buf[0] = '.'; - dstr_append(&str, buf, 1); - } -#endif - else { - buf[0] = code; - dstr_append(&str, buf, 1); - } - - i += code_len; - } - dstr_append(&str, ") Tj ", 5); - dstr_append(&str, "ET", 2); - - ret = pdf_add_stream(pdf, page, dstr_data(&str)); - dstr_free(&str); - return ret; -} - -/* How wide is each character, in points, at size 14 */ -static const unsigned short helvetica_widths[256] = { - 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, 357, 560, 560, 896, 672, - 192, 335, 335, 392, 588, 280, 335, 280, 280, 560, 560, 560, 560, - 560, 560, 560, 560, 560, 560, 280, 280, 588, 588, 588, 560, 1023, - 672, 672, 727, 727, 672, 615, 784, 727, 280, 504, 672, 560, 839, - 727, 784, 672, 784, 727, 672, 615, 727, 672, 951, 672, 672, 615, - 280, 280, 280, 472, 560, 335, 560, 560, 504, 560, 560, 280, 560, - 560, 223, 223, 504, 223, 839, 560, 560, 560, 560, 335, 504, 280, - 560, 504, 727, 504, 504, 504, 336, 262, 336, 588, 352, 560, 352, - 223, 560, 335, 1008, 560, 560, 335, 1008, 672, 335, 1008, 352, 615, - 352, 352, 223, 223, 335, 335, 352, 560, 1008, 335, 1008, 504, 335, - 951, 352, 504, 672, 280, 335, 560, 560, 560, 560, 262, 560, 335, - 742, 372, 560, 588, 335, 742, 335, 403, 588, 335, 335, 335, 560, - 541, 280, 335, 335, 367, 560, 840, 840, 840, 615, 672, 672, 672, - 672, 672, 672, 1008, 727, 672, 672, 672, 672, 280, 280, 280, 280, - 727, 727, 784, 784, 784, 784, 784, 588, 784, 727, 727, 727, 727, - 672, 672, 615, 560, 560, 560, 560, 560, 560, 896, 504, 560, 560, - 560, 560, 280, 280, 280, 280, 560, 560, 560, 560, 560, 560, 560, - 588, 615, 560, 560, 560, 560, 504, 560, 504, -}; - -static const unsigned short helvetica_bold_widths[256] = { - 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 335, 477, 560, 560, 896, 727, 239, 335, 335, - 392, 588, 280, 335, 280, 280, 560, 560, 560, 560, 560, 560, 560, 560, - 560, 560, 335, 335, 588, 588, 588, 615, 982, 727, 727, 727, 727, 672, - 615, 784, 727, 280, 560, 727, 615, 839, 727, 784, 672, 784, 727, 672, - 615, 727, 672, 951, 672, 672, 615, 335, 280, 335, 588, 560, 335, 560, - 615, 560, 615, 560, 335, 615, 615, 280, 280, 560, 280, 896, 615, 615, - 615, 615, 392, 560, 335, 615, 560, 784, 560, 560, 504, 392, 282, 392, - 588, 352, 560, 352, 280, 560, 504, 1008, 560, 560, 335, 1008, 672, 335, - 1008, 352, 615, 352, 352, 280, 280, 504, 504, 352, 560, 1008, 335, 1008, - 560, 335, 951, 352, 504, 672, 280, 335, 560, 560, 560, 560, 282, 560, - 335, 742, 372, 560, 588, 335, 742, 335, 403, 588, 335, 335, 335, 615, - 560, 280, 335, 335, 367, 560, 840, 840, 840, 615, 727, 727, 727, 727, - 727, 727, 1008, 727, 672, 672, 672, 672, 280, 280, 280, 280, 727, 727, - 784, 784, 784, 784, 784, 588, 784, 727, 727, 727, 727, 672, 672, 615, - 560, 560, 560, 560, 560, 560, 896, 560, 560, 560, 560, 560, 280, 280, - 280, 280, 615, 615, 615, 615, 615, 615, 615, 588, 615, 615, 615, 615, - 615, 560, 615, 560, -}; - -static const unsigned short helvetica_bold_oblique_widths[256] = { - 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 335, 477, 560, 560, 896, 727, 239, 335, 335, - 392, 588, 280, 335, 280, 280, 560, 560, 560, 560, 560, 560, 560, 560, - 560, 560, 335, 335, 588, 588, 588, 615, 982, 727, 727, 727, 727, 672, - 615, 784, 727, 280, 560, 727, 615, 839, 727, 784, 672, 784, 727, 672, - 615, 727, 672, 951, 672, 672, 615, 335, 280, 335, 588, 560, 335, 560, - 615, 560, 615, 560, 335, 615, 615, 280, 280, 560, 280, 896, 615, 615, - 615, 615, 392, 560, 335, 615, 560, 784, 560, 560, 504, 392, 282, 392, - 588, 352, 560, 352, 280, 560, 504, 1008, 560, 560, 335, 1008, 672, 335, - 1008, 352, 615, 352, 352, 280, 280, 504, 504, 352, 560, 1008, 335, 1008, - 560, 335, 951, 352, 504, 672, 280, 335, 560, 560, 560, 560, 282, 560, - 335, 742, 372, 560, 588, 335, 742, 335, 403, 588, 335, 335, 335, 615, - 560, 280, 335, 335, 367, 560, 840, 840, 840, 615, 727, 727, 727, 727, - 727, 727, 1008, 727, 672, 672, 672, 672, 280, 280, 280, 280, 727, 727, - 784, 784, 784, 784, 784, 588, 784, 727, 727, 727, 727, 672, 672, 615, - 560, 560, 560, 560, 560, 560, 896, 560, 560, 560, 560, 560, 280, 280, - 280, 280, 615, 615, 615, 615, 615, 615, 615, 588, 615, 615, 615, 615, - 615, 560, 615, 560, -}; - -static const unsigned short helvetica_oblique_widths[256] = { - 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, 357, 560, 560, 896, 672, - 192, 335, 335, 392, 588, 280, 335, 280, 280, 560, 560, 560, 560, - 560, 560, 560, 560, 560, 560, 280, 280, 588, 588, 588, 560, 1023, - 672, 672, 727, 727, 672, 615, 784, 727, 280, 504, 672, 560, 839, - 727, 784, 672, 784, 727, 672, 615, 727, 672, 951, 672, 672, 615, - 280, 280, 280, 472, 560, 335, 560, 560, 504, 560, 560, 280, 560, - 560, 223, 223, 504, 223, 839, 560, 560, 560, 560, 335, 504, 280, - 560, 504, 727, 504, 504, 504, 336, 262, 336, 588, 352, 560, 352, - 223, 560, 335, 1008, 560, 560, 335, 1008, 672, 335, 1008, 352, 615, - 352, 352, 223, 223, 335, 335, 352, 560, 1008, 335, 1008, 504, 335, - 951, 352, 504, 672, 280, 335, 560, 560, 560, 560, 262, 560, 335, - 742, 372, 560, 588, 335, 742, 335, 403, 588, 335, 335, 335, 560, - 541, 280, 335, 335, 367, 560, 840, 840, 840, 615, 672, 672, 672, - 672, 672, 672, 1008, 727, 672, 672, 672, 672, 280, 280, 280, 280, - 727, 727, 784, 784, 784, 784, 784, 588, 784, 727, 727, 727, 727, - 672, 672, 615, 560, 560, 560, 560, 560, 560, 896, 504, 560, 560, - 560, 560, 280, 280, 280, 280, 560, 560, 560, 560, 560, 560, 560, - 588, 615, 560, 560, 560, 560, 504, 560, 504, -}; - -static const unsigned short symbol_widths[256] = { - 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 335, 718, 504, 553, 839, 784, 442, 335, 335, - 504, 553, 252, 553, 252, 280, 504, 504, 504, 504, 504, 504, 504, 504, - 504, 504, 280, 280, 553, 553, 553, 447, 553, 727, 672, 727, 616, 615, - 769, 607, 727, 335, 636, 727, 691, 896, 727, 727, 774, 746, 560, 596, - 615, 695, 442, 774, 650, 801, 615, 335, 869, 335, 663, 504, 504, 636, - 553, 553, 497, 442, 525, 414, 607, 331, 607, 553, 553, 580, 525, 553, - 553, 525, 553, 607, 442, 580, 718, 691, 496, 691, 497, 483, 201, 483, - 553, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 756, 624, 248, 553, 168, 718, 504, 759, - 759, 759, 759, 1050, 994, 607, 994, 607, 403, 553, 414, 553, 553, 718, - 497, 463, 553, 553, 553, 553, 1008, 607, 1008, 663, 829, 691, 801, 994, - 774, 774, 829, 774, 774, 718, 718, 718, 718, 718, 718, 718, 774, 718, - 796, 796, 897, 829, 553, 252, 718, 607, 607, 1050, 994, 607, 994, 607, - 497, 331, 796, 796, 792, 718, 387, 387, 387, 387, 387, 387, 497, 497, - 497, 497, 0, 331, 276, 691, 691, 691, 387, 387, 387, 387, 387, 387, - 497, 497, 497, 0, -}; - -static const unsigned short times_widths[256] = { - 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 335, 411, 504, 504, 839, 784, 181, 335, 335, - 504, 568, 252, 335, 252, 280, 504, 504, 504, 504, 504, 504, 504, 504, - 504, 504, 280, 280, 568, 568, 568, 447, 928, 727, 672, 672, 727, 615, - 560, 727, 727, 335, 392, 727, 615, 896, 727, 727, 560, 727, 672, 560, - 615, 727, 727, 951, 727, 727, 615, 335, 280, 335, 472, 504, 335, 447, - 504, 447, 504, 447, 335, 504, 504, 280, 280, 504, 280, 784, 504, 504, - 504, 504, 335, 392, 280, 504, 504, 727, 504, 504, 447, 483, 201, 483, - 545, 352, 504, 352, 335, 504, 447, 1008, 504, 504, 335, 1008, 560, 335, - 896, 352, 615, 352, 352, 335, 335, 447, 447, 352, 504, 1008, 335, 987, - 392, 335, 727, 352, 447, 727, 252, 335, 504, 504, 504, 504, 201, 504, - 335, 766, 278, 504, 568, 335, 766, 335, 403, 568, 302, 302, 335, 504, - 456, 252, 335, 302, 312, 504, 756, 756, 756, 447, 727, 727, 727, 727, - 727, 727, 896, 672, 615, 615, 615, 615, 335, 335, 335, 335, 727, 727, - 727, 727, 727, 727, 727, 568, 727, 727, 727, 727, 727, 727, 560, 504, - 447, 447, 447, 447, 447, 447, 672, 447, 447, 447, 447, 447, 280, 280, - 280, 280, 504, 504, 504, 504, 504, 504, 504, 568, 504, 504, 504, 504, - 504, 504, 504, 504, -}; - -static const unsigned short times_bold_widths[256] = { - 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 335, 559, 504, 504, 1008, 839, - 280, 335, 335, 504, 574, 252, 335, 252, 280, 504, 504, 504, 504, - 504, 504, 504, 504, 504, 504, 335, 335, 574, 574, 574, 504, 937, - 727, 672, 727, 727, 672, 615, 784, 784, 392, 504, 784, 672, 951, - 727, 784, 615, 784, 727, 560, 672, 727, 727, 1008, 727, 727, 672, - 335, 280, 335, 585, 504, 335, 504, 560, 447, 560, 447, 335, 504, - 560, 280, 335, 560, 280, 839, 560, 504, 560, 560, 447, 392, 335, - 560, 504, 727, 504, 504, 447, 397, 221, 397, 524, 352, 504, 352, - 335, 504, 504, 1008, 504, 504, 335, 1008, 560, 335, 1008, 352, 672, - 352, 352, 335, 335, 504, 504, 352, 504, 1008, 335, 1008, 392, 335, - 727, 352, 447, 727, 252, 335, 504, 504, 504, 504, 221, 504, 335, - 752, 302, 504, 574, 335, 752, 335, 403, 574, 302, 302, 335, 560, - 544, 252, 335, 302, 332, 504, 756, 756, 756, 504, 727, 727, 727, - 727, 727, 727, 1008, 727, 672, 672, 672, 672, 392, 392, 392, 392, - 727, 727, 784, 784, 784, 784, 784, 574, 784, 727, 727, 727, 727, - 727, 615, 560, 504, 504, 504, 504, 504, 504, 727, 447, 447, 447, - 447, 447, 280, 280, 280, 280, 504, 560, 504, 504, 504, 504, 504, - 574, 504, 560, 560, 560, 560, 504, 560, 504, -}; - -static const unsigned short times_bold_italic_widths[256] = { - 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 392, 559, 504, 504, 839, 784, 280, 335, 335, - 504, 574, 252, 335, 252, 280, 504, 504, 504, 504, 504, 504, 504, 504, - 504, 504, 335, 335, 574, 574, 574, 504, 838, 672, 672, 672, 727, 672, - 672, 727, 784, 392, 504, 672, 615, 896, 727, 727, 615, 727, 672, 560, - 615, 727, 672, 896, 672, 615, 615, 335, 280, 335, 574, 504, 335, 504, - 504, 447, 504, 447, 335, 504, 560, 280, 280, 504, 280, 784, 560, 504, - 504, 504, 392, 392, 280, 560, 447, 672, 504, 447, 392, 350, 221, 350, - 574, 352, 504, 352, 335, 504, 504, 1008, 504, 504, 335, 1008, 560, 335, - 951, 352, 615, 352, 352, 335, 335, 504, 504, 352, 504, 1008, 335, 1008, - 392, 335, 727, 352, 392, 615, 252, 392, 504, 504, 504, 504, 221, 504, - 335, 752, 268, 504, 610, 335, 752, 335, 403, 574, 302, 302, 335, 580, - 504, 252, 335, 302, 302, 504, 756, 756, 756, 504, 672, 672, 672, 672, - 672, 672, 951, 672, 672, 672, 672, 672, 392, 392, 392, 392, 727, 727, - 727, 727, 727, 727, 727, 574, 727, 727, 727, 727, 727, 615, 615, 504, - 504, 504, 504, 504, 504, 504, 727, 447, 447, 447, 447, 447, 280, 280, - 280, 280, 504, 560, 504, 504, 504, 504, 504, 574, 504, 560, 560, 560, - 560, 447, 504, 447, -}; - -static const unsigned short times_italic_widths[256] = { - 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, - 252, 252, 252, 252, 252, 335, 423, 504, 504, 839, 784, 215, 335, 335, - 504, 680, 252, 335, 252, 280, 504, 504, 504, 504, 504, 504, 504, 504, - 504, 504, 335, 335, 680, 680, 680, 504, 927, 615, 615, 672, 727, 615, - 615, 727, 727, 335, 447, 672, 560, 839, 672, 727, 615, 727, 615, 504, - 560, 727, 615, 839, 615, 560, 560, 392, 280, 392, 425, 504, 335, 504, - 504, 447, 504, 447, 280, 504, 504, 280, 280, 447, 280, 727, 504, 504, - 504, 504, 392, 392, 280, 504, 447, 672, 447, 447, 392, 403, 277, 403, - 545, 352, 504, 352, 335, 504, 560, 896, 504, 504, 335, 1008, 504, 335, - 951, 352, 560, 352, 352, 335, 335, 560, 560, 352, 504, 896, 335, 987, - 392, 335, 672, 352, 392, 560, 252, 392, 504, 504, 504, 504, 277, 504, - 335, 766, 278, 504, 680, 335, 766, 335, 403, 680, 302, 302, 335, 504, - 527, 252, 335, 302, 312, 504, 756, 756, 756, 504, 615, 615, 615, 615, - 615, 615, 896, 672, 615, 615, 615, 615, 335, 335, 335, 335, 727, 672, - 727, 727, 727, 727, 727, 680, 727, 727, 727, 727, 727, 560, 615, 504, - 504, 504, 504, 504, 504, 504, 672, 447, 447, 447, 447, 447, 280, 280, - 280, 280, 504, 504, 504, 504, 504, 504, 504, 680, 504, 504, 504, 504, - 504, 447, 504, 447, -}; - -static const unsigned short zapfdingbats_widths[256] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 280, 981, 968, 981, 987, 724, 795, 796, 797, 695, - 967, 946, 553, 861, 918, 940, 918, 952, 981, 761, 852, 768, 767, 575, - 682, 769, 766, 765, 760, 497, 556, 541, 581, 697, 792, 794, 794, 796, - 799, 800, 822, 829, 795, 847, 829, 839, 822, 837, 930, 749, 728, 754, - 796, 798, 700, 782, 774, 798, 765, 712, 713, 687, 706, 832, 821, 795, - 795, 712, 692, 701, 694, 792, 793, 718, 797, 791, 797, 879, 767, 768, - 768, 765, 765, 899, 899, 794, 790, 441, 139, 279, 418, 395, 395, 673, - 673, 0, 393, 393, 319, 319, 278, 278, 513, 513, 413, 413, 235, 235, - 336, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 737, 548, 548, 917, 672, 766, 766, - 782, 599, 699, 631, 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, - 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, - 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, 794, - 794, 794, 901, 844, 1024, 461, 753, 931, 753, 925, 934, 935, 935, 840, - 879, 834, 931, 931, 924, 937, 938, 466, 890, 842, 842, 873, 873, 701, - 701, 880, 0, 880, 766, 953, 777, 871, 777, 895, 974, 895, 837, 879, - 934, 977, 925, 0, -}; - -static const unsigned short courier_widths[256] = { - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, -}; - -__asm__("\n&FUNC SETC 'pdf_text_pixel_width'"); -static int pdf_text_pixel_width(const char *text, int text_len, int size, - const unsigned short *widths) -{ - int len = 0; - int i; - - if (text_len < 0) - text_len = strlen(text); - - for (i = 0; i < text_len;) { -#if 0 - uint32_t code; - int code_len; - code_len = utf8_to_utf32(&text[i], text_len - i, &code); - if (code_len < 0) - return code_len; - if (code >= 255) - return -EINVAL; -#else - unsigned code = text[i]; - int code_len = 1; -#endif - i += code_len; - - if (code != '\n' && code != '\r') -#if 1 - /* all the widths tables assume the characters are ASCII (or UTF8) - so we need to use the ASCII equivalent for our EBCDIC code */ - code = ebc2asc[(unsigned char)code]; -#endif - len += widths[(unsigned char)code]; - } - - /* Our widths arrays are for 14pt fonts */ - return len * size / (14 * 72); -} - -#ifndef strcasecmp -#define strcasecmp(s1,s2) stricmp((s1),(s2)) -#endif -__asm__("\n&FUNC SETC 'find_font_widths'"); -static const unsigned short *find_font_widths(const char *font_name) -{ - if (strcasecmp(font_name, "Helvetica") == 0) - return helvetica_widths; - if (strcasecmp(font_name, "Helvetica-Bold") == 0) - return helvetica_bold_widths; - if (strcasecmp(font_name, "Helvetica-BoldOblique") == 0) - return helvetica_bold_oblique_widths; - if (strcasecmp(font_name, "Helvetica-Oblique") == 0) - return helvetica_oblique_widths; - if (strcasecmp(font_name, "Courier") == 0 || - strcasecmp(font_name, "Courier-Bold") == 0 || - strcasecmp(font_name, "Courier-BoldOblique") == 0 || - strcasecmp(font_name, "Courier-Oblique") == 0) - return courier_widths; - if (strcasecmp(font_name, "Times-Roman") == 0) - return times_widths; - if (strcasecmp(font_name, "Times-Bold") == 0) - return times_bold_widths; - if (strcasecmp(font_name, "Times-Italic") == 0) - return times_italic_widths; - if (strcasecmp(font_name, "Times-BoldItalic") == 0) - return times_bold_italic_widths; - if (strcasecmp(font_name, "Symbol") == 0) - return symbol_widths; - if (strcasecmp(font_name, "ZapfDingbats") == 0) - return zapfdingbats_widths; - - return NULL; -} - -__asm__("\n&FUNC SETC 'pdf_add_raw_rgb24'"); -static PDFO *pdf_add_raw_rgb24(PDF *pdf, unsigned char *data, int width, int height) -{ - PDFO *obj; - int len; - int i; - const char *endstream = ">\r\nendstream\r\n"; - - obj = pdf_add_object(pdf, OBJ_image); - if (!obj) - return NULL; - - if (pdf->flags & PDF_COMPRESS) { - int data_len = width * height * 3; /* length of data (RGB) */ - int cmp_status; - mz_ulong cmp_len = compressBound(data_len); - unsigned char *pCmp; - - /* try to compress data */ - pCmp = (unsigned char *)malloc((size_t)cmp_len); - if (pCmp) { - cmp_status = compress(pCmp, &cmp_len, data, data_len); - if (cmp_status != Z_OK) { - if (pdf->flags & PDF_DEBUG) wtof("compress of raw rgb24 stream failed"); - free(pCmp); - } - else { - if (pdf->flags & PDF_DEBUG) wtof("raw rbg24 stream compressed from %u to %u bytes", data_len, cmp_len); - dstr_printf(&obj->stream, - "<>stream\r\n", - arraycount(&pdf->objects), height, width, - cmp_len); - - len = dstr_len(&obj->stream) + cmp_len + strlen(endstream) + 1; - if (dstr_ensure(&obj->stream, len) < 0) { - pdf_set_err(pdf, -ENOMEM, "Unable to allocate %d bytes memory for image", len); - return NULL; - } - dstr_append_data(&obj->stream, pCmp, cmp_len); - dstr_append(&obj->stream, endstream, 0); - free(pCmp); - return obj; - } - } - } - - /* encode data as ASCII Hex (Yick!) */ - dstr_printf( - &obj->stream, - "<<\r\n/Type /XObject\r\n/Name /Image%d\r\n/Subtype /Image\r\n" - "/ColorSpace /DeviceRGB\r\n/Height %d\r\n/Width %d\r\n" - "/BitsPerComponent 8\r\n/Filter /ASCIIHexDecode\r\n" - "/Length %d\r\n>>stream\r\n", - arraycount(&pdf->objects), height, width, - width * height * 3 * 2 + 1); - - len = dstr_len(&obj->stream) + width * height * 3 * 2 + - strlen(endstream) + 1; - if (dstr_ensure(&obj->stream, len) < 0) { - pdf_set_err(pdf, -ENOMEM, - "Unable to allocate %d bytes memory for image", len); - return NULL; - } - for (i = 0; i < width * height * 3; i++) { - char buf[2] = {"0123456789ABCDEF"[(data[i] >> 4) & 0xf], - "0123456789ABCDEF"[data[i] & 0xf]}; - dstr_append(&obj->stream, buf, 2); - } - dstr_append(&obj->stream, endstream, 0); - - return obj; -} - -static int pdf_add_image(PDF *pdf, PDFO *page, PDFO *image, - int x, int y, int width, int height) -{ - int ret; - DSTR str = INIT_DSTR; - - dstr_append(&str, "q ", 2); - dstr_printf(&str, "%d 0 0 %d %d %d cm ", width, height, x, y); - dstr_printf(&str, "/Image%d Do ", image->index); - dstr_append(&str, "Q", 1); - - ret = pdf_add_stream(pdf, page, dstr_data(&str)); - dstr_free(&str); - return ret; -} - -static char * pdfatoe(char *buf, int len) -{ - int i; - - if (!len) len = strlen(buf); - if (len<=0) goto quit; - - for(i=0; i < len; i++) { - buf[i] = asc2ebc[buf[i]]; - } - -quit: - return buf; -} - -static char *pdf_stck(char stck[8]) -{ - /* get STCK value */ - __asm__("STCK\t0(%0)" : : "r" (stck)); - - return stck; -} - -static double *pdf_secs(double *secs) -{ - unsigned long long tod; - struct timeval tv; - double tmp; - - if (!secs) secs = &tmp; - - /* get STCK value */ - __asm__("STCK\t0(%0)" : : "r" (&tod)); - - /* make Jan 1 1900 (STCK) relative to Jan 1 1970 (unix epoch) */ - tod -= 0x7D91048BCA000000ULL; /* STCK value for Jan 1 1970 */ - - /* convert to microseconds (bits 0-51==number of microseconds) */ - tod >>= 12; /* convert to microseconds (1 us = .000001 sec) */ - - /* calc seconds and microseconds (divide by 1000000) */ - __asm__( - "LM\t0,1,0(%0) load TOD microseconds\n\t" - "D\t0,=F'1000000' divide by 1000000\n\t" - "ST\t1,0(0,%1) store seconds (quotient)\n\t" - "ST\t0,4(0,%1) store microseconds (remainder)" - : : "r" (&tod), "r" (&tv)); - - /* Scale the microseconds and add to our result (secs.usecs) */ - *secs = ((double)tv.tv_sec + ((double)tv.tv_usec / 1000000.0)); - -quit: - return secs; -} - -/* forward reference */ -static int pdf_put_text_spacing(PDF *pdf, PDFO *page, const char *text, int size, - int xoff, int yoff, unsigned colour, double spacing); -__asm__("\n&FUNC SETC 'pdf_put_text_first'"); -static int pdf_put_text_first(PDF *pdf, PDFO *page, const char *text, int size, - int xoff, int yoff, unsigned colour, double spacing) -{ - int ret; - PDFO *obj; - DSTR *str; - - /* if they didn't provide a page, use the last page created */ - if (!page) page = pdf_find_last_object(pdf, OBJ_page); - - if (!page) return pdf_set_err(pdf, -EINVAL, "Invalid pdf page"); - - /* create a new text object */ - obj = pdf_add_object(pdf, OBJ_text); - if (!obj) return pdf->errval; - - obj->text->colour = 0xFFFFFFFF; /* force colour assignment on first text */ - - /* add the next text object to this page */ - ret = arrayadd(&page->page.children, (void*)obj->index); - if (ret) return pdf_set_err(pdf, -errno, strerror(errno)); - - /* make the text object the current page text object */ - page->page.current_text = obj->index; - - /* continue the actual text processing */ - ret = pdf_put_text_spacing(pdf, page, text, size, xoff, yoff, colour, spacing); - return ret; -} - -__asm__("\n&FUNC SETC 'pdf_put_text_spacing'"); -static int pdf_put_text_spacing(PDF *pdf, PDFO *page, const char *text, int size, - int xoff, int yoff, unsigned colour, double spacing) -{ - int ret = 0; - int len = text ? strlen(text) : 0; - DSTR *str; - PDFO *obj; - PDFO *font = pdf_get_object(pdf, pdf->current_font); - int i; - - /* if they didn't provide a page, use the last page created */ - if (!page) page = pdf_find_last_object(pdf, OBJ_page); - - if (!page) return pdf_set_err(pdf, -EINVAL, "Invalid pdf page"); - - obj = pdf_get_object(pdf, page->page.current_text); - if (!obj || obj->type != OBJ_text) { - return pdf_put_text_first(pdf, page, text, size, xoff, yoff, colour, spacing); - } - - /* Don't bother adding empty/null strings */ - if (!len) - return 0; - - str = &obj->text->stream; - - dstr_append(str, "BT ", 3); - dstr_printf(str, "%d %d TD ", xoff, yoff); - obj->text->xoff = xoff; - obj->text->yoff = yoff; - - if (obj->text->font != font->font.index || - obj->text->fontsize != size) { - dstr_printf(str, "/F%d %d Tf ", font->font.index, size); - obj->text->font = font->font.index; - obj->text->fontsize = size; - } - - if (obj->text->colour != colour) { - dstr_printf(str, "%g %g %g rg ", PDF_RGB_R(colour), PDF_RGB_G(colour), - PDF_RGB_B(colour)); - obj->text->colour = colour; - } - - if (obj->text->spacing != spacing) { - dstr_printf(str, "%g Tc ", spacing); - obj->text->spacing = spacing; - } - - dstr_append(str, "(", 1); - - /* Escape magic characters properly */ - for (i = 0; i < len; i++) { - /* since we're running in an EBCDIC environment we know our - characters are not UFT8 or any other ASCII subset/superset */ - if (strchr("()\\", text[i])) { - /* Escape some characters */ - dstr_append(str, "\\", 1); - dstr_append(str, &text[i], 1); - } - else if (strrchr("\n\r\t\b\f", text[i])) { - /* Skip over these characters */ - ; - } - else if (!isprint(text[i])) { - dstr_append(str, ".", 1); - } - else { - dstr_append(str, &text[i], 1); - } - } - - dstr_append(str, ") Tj ET\r\n", 9); - - return ret; -} - -static struct pdf_private _private = { - dstr_data, /* 00 dstr_data() */ - dstr_len, /* 04 dstr_len() */ - dstr_ensure, /* 08 dstr_ensure() */ - dstr_printf, /* 0C dstr_printf() */ - dstr_append_data, /* 10 dstr_append_data() */ - dstr_append, /* 14 dstr_append() */ - dstr_free, /* 18 dstr_free() */ - pdfetoa, /* 1C pdfetoa() */ - pdf_set_err, /* 20 pdf_set_err() */ - pdf_get_object, /* 24 pdf_get_object() */ - pdf_append_object, /* 28 pdf_append_object() */ - pdf_add_object, /* 2C pdf_add_object() */ - pdf_object_destroy, /* 30 pdf_object_destroy() */ - pdf_find_first_object, /* 34 pdf_find_first_object() */ - pdf_find_last_object, /* 38 pdf_find_last_object() */ - pdf_fprintf, /* 3C pdf_fprintf() */ - pdf_add_stream, /* 40 pdf_add_stream() */ - pdf_add_text_spacing, /* 44 pdf_add_text_spacing() */ - pdf_text_pixel_width, /* 48 pdf_text_pixel_width() */ - find_font_widths, /* 4C find_font_widths() */ - pdf_add_raw_rgb24, /* 50 pdf_add_raw_rgb24() */ - pdf_add_image, /* 54 pdf_add_image() */ - pdfatoe, /* 58 pdfatoe() */ - pdf_stck, /* 5C pdf_stck() */ - pdf_secs, /* 60 pdf_secs() */ - pdf_put_text_first, /* 64 pdf_put_text_first() */ - pdf_put_text_spacing, /* 68 pdf_put_text_spacing() */ -}; - -struct pdf_private *pdfx = &_private; - diff --git a/src/crent370/pdf2/@p2aarra.c b/src/crent370/pdf2/@p2aarra.c deleted file mode 100644 index d3233f5..0000000 --- a/src/crent370/pdf2/@p2aarra.c +++ /dev/null @@ -1,11 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_array'"); -PDFARRAY *pdf_add_array(PDF *pdf, PDFARRAY *pdfarray, void *pdfobj) -{ - if (pdfarray) { - arrayadd(&pdfarray->objects, pdfobj); - } - - return pdfarray; -} diff --git a/src/crent370/pdf2/@p2acpl.c b/src/crent370/pdf2/@p2acpl.c deleted file mode 100644 index 36366d1..0000000 --- a/src/crent370/pdf2/@p2acpl.c +++ /dev/null @@ -1,14 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_cat_page_layout'"); -PDFCAT *pdf_add_cat_page_layout(PDF *pdf, PDFCAT *pdfcat, const char *layout) -{ - if (pdfcat) { - if (layout) { - pdfcat->pagelayout = strdup(layout); - } - } - - return pdfcat; -} diff --git a/src/crent370/pdf2/@p2acpm.c b/src/crent370/pdf2/@p2acpm.c deleted file mode 100644 index 93075ba..0000000 --- a/src/crent370/pdf2/@p2acpm.c +++ /dev/null @@ -1,14 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_cat_page_mode'"); -PDFCAT *pdf_add_cat_page_mode(PDF *pdf, PDFCAT *pdfcat, const char *mode) -{ - if (pdfcat) { - if (mode) { - pdfcat->pagemode = strdup(mode); - } - } - - return pdfcat; -} diff --git a/src/crent370/pdf2/@p2aimg.c b/src/crent370/pdf2/@p2aimg.c deleted file mode 100644 index 2f627d8..0000000 --- a/src/crent370/pdf2/@p2aimg.c +++ /dev/null @@ -1,23 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" -#include - -__asm__("\n&FUNC SETC 'pdf_add_image'"); -PDFIMAGE *pdf_add_image(PDF *pdf, PDFIMAGE *pdfimage, const unsigned char *data, int len) -{ - if (pdfimage && len > 0) { - DSTR *dstr = pdfimage->dstr; - - if (dstr) { - int avail = dstr->size - dstr->len; - if (avail >= 0 && avail < len) { - len = avail; - } - - memcpy(&dstr->stream[dstr->len], data, len); - dstr->len += len; - } - } - - return pdfimage; -} diff --git a/src/crent370/pdf2/@p2antk.c b/src/crent370/pdf2/@p2antk.c deleted file mode 100644 index b766b6b..0000000 --- a/src/crent370/pdf2/@p2antk.c +++ /dev/null @@ -1,11 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_name_tree_kids'"); -PDFNAMETREE *pdf_add_name_tree_kids(PDF *pdf, PDFNAMETREE *pdfnametree, void *obj) -{ - if (pdfnametree) { - if (obj) arrayadd(&pdfnametree->kids, obj); - } - - return pdfnametree; -} diff --git a/src/crent370/pdf2/@p2antl.c b/src/crent370/pdf2/@p2antl.c deleted file mode 100644 index 55aea00..0000000 --- a/src/crent370/pdf2/@p2antl.c +++ /dev/null @@ -1,12 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_name_tree_limits'"); -PDFNAMETREE *pdf_add_name_tree_limits(PDF *pdf, PDFNAMETREE *pdfnametree, const char *namelow, const char *namehigh) -{ - if (pdfnametree) { - if (namelow) pdfnametree->namelow = strdup(namelow); - if (namehigh) pdfnametree->namehigh = strdup(namehigh); - } - - return pdfnametree; -} diff --git a/src/crent370/pdf2/@p2antn.c b/src/crent370/pdf2/@p2antn.c deleted file mode 100644 index b287088..0000000 --- a/src/crent370/pdf2/@p2antn.c +++ /dev/null @@ -1,11 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_name_tree_names'"); -PDFNAMETREE *pdf_add_name_tree_names(PDF *pdf, PDFNAMETREE *pdfnametree, const char *name, void *obj) -{ - if (pdfnametree) { - pdf_add_name_tree_pair(pdf, pdfnametree, pdf_new_str_obj_pair(pdf, name, obj)); - } - - return pdfnametree; -} diff --git a/src/crent370/pdf2/@p2antp.c b/src/crent370/pdf2/@p2antp.c deleted file mode 100644 index dffea72..0000000 --- a/src/crent370/pdf2/@p2antp.c +++ /dev/null @@ -1,11 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_name_tree_pair'"); -PDFNAMETREE *pdf_add_name_tree_pair(PDF *pdf, PDFNAMETREE *pdfnametree, PDFSTROBJPAIR *strobjpair) -{ - if (pdfnametree) { - if (strobjpair) arrayadd(&pdfnametree->strobjpair, strobjpair); - } - - return pdfnametree; -} diff --git a/src/crent370/pdf2/@p2anutk.c b/src/crent370/pdf2/@p2anutk.c deleted file mode 100644 index 9fa9103..0000000 --- a/src/crent370/pdf2/@p2anutk.c +++ /dev/null @@ -1,11 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_num_tree_kids'"); -PDFNUMTREE *pdf_add_num_tree_kids(Pdf *ptPdf, PdfNumTree *ptPdfNumTree, void *ptPdfObj) -{ - if (pdfnumtree) { - if (obj) arrayadd(&pdfnumtree->kids, obj); - } - - return pdfnumtree; -} diff --git a/src/crent370/pdf2/@p2anutl.c b/src/crent370/pdf2/@p2anutl.c deleted file mode 100644 index 02ed941..0000000 --- a/src/crent370/pdf2/@p2anutl.c +++ /dev/null @@ -1,12 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_num_tree_limits'"); -PDFNUMTREE *pdf_add_num_tree_limits(PDF *pdf, PDFNUMTREE *pdfnumtree, int low, int high) -{ - if (pdfnumtree) { - pdfnumtree->intlow = (void *) pdf_new_int(pdf, low); - pdfnumtree->inthigh = (void *) pdf_new_int(pdf, high); - } - - return pdfnumtree; -} diff --git a/src/crent370/pdf2/@p2anutn.c b/src/crent370/pdf2/@p2anutn.c deleted file mode 100644 index 6640a14..0000000 --- a/src/crent370/pdf2/@p2anutn.c +++ /dev/null @@ -1,11 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_num_tree_nums'"); -PDFNUMTREE *pdf_add_num_tree_nums(PDF *pdf, PDFNUMTREE *pdfnumtree, int value, void *obj) -{ - if (pdfnumtree) { - pdf_add_num_tree_pair(pdf, pdfnumtree, pdf_new_num_pair(pdf, value, obj)); - } - - return pdfnumtree; -} diff --git a/src/crent370/pdf2/@p2anutp.c b/src/crent370/pdf2/@p2anutp.c deleted file mode 100644 index 13bfb0d..0000000 --- a/src/crent370/pdf2/@p2anutp.c +++ /dev/null @@ -1,11 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_num_tree_pair'"); -PDFNUMTREE *pdf_add_num_tree_pair(PDF *pdf, PDFNUMTREE *pdfnumtree, PDFNUMPAIR *pdfnumpair) -{ - if (pdfnumtree) { - if (pdfnumpair) arrayadd(&pdfnumtree->pdfnumpair, pdfnumpair); - } - - return pdfnumtree; -} diff --git a/src/crent370/pdf2/@p2apann.c b/src/crent370/pdf2/@p2apann.c deleted file mode 100644 index 69836f4..0000000 --- a/src/crent370/pdf2/@p2apann.c +++ /dev/null @@ -1,14 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_page_annots'"); -PDFPAGE *pdf_add_page_annots(PDF *pdf, PDFPAGE *pdfpage, void *obj) -{ - if (pdfpage) { - if (obj) { - arrayadd(&pdfpage->annots, obj); - } - } - - return pdfpage; -} diff --git a/src/crent370/pdf2/@p2apcnt.c b/src/crent370/pdf2/@p2apcnt.c deleted file mode 100644 index e4f67db..0000000 --- a/src/crent370/pdf2/@p2apcnt.c +++ /dev/null @@ -1,14 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_page_contents'"); -PDFPAGE *pdf_add_page_contents(PDF *pdf, PDFPAGE *pdfpage, void *obj) -{ - if (pdfpage) { - if (obj) { - arrayadd(&pdfpage->contents, obj); - } - } - - return pdfpage; -} diff --git a/src/crent370/pdf2/@p2apgsp.c b/src/crent370/pdf2/@p2apgsp.c deleted file mode 100644 index 9f98326..0000000 --- a/src/crent370/pdf2/@p2apgsp.c +++ /dev/null @@ -1,14 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_pages_page'"); -PDFPAGES *pdf_add_pages_page(PDF *pdf, PDFPAGES *pdfpages, PDFPAGE *pdfpage) -{ - if (pdfpages) { - if (pdfpage) { - arrayadd(&pdfpages->pdfpage, pdfpage); - } - } - - return pdfpages; -} diff --git a/src/crent370/pdf2/@p2arnf.c b/src/crent370/pdf2/@p2arnf.c deleted file mode 100644 index 2a0122f..0000000 --- a/src/crent370/pdf2/@p2arnf.c +++ /dev/null @@ -1,16 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_resource_name_font'"); -PDFRESOURCE *pdf_add_resource_name_font(PDF *pdf, PDFRESOURCE *pdfresource, const char *name, PDFFONT *pdffont) -{ - if (pdfresource) { - PDFNAMEOBJPAIR *pdfnameobjpair = pdf_new_name_obj_pair(pdf, name, pdffont); - - if (pdfnameobjpair) { - arrayadd(&pdfresource->nameobjpairfont, pdfnameobjpair); - } - } - - return pdfresource; -} diff --git a/src/crent370/pdf2/@p2arnx.c b/src/crent370/pdf2/@p2arnx.c deleted file mode 100644 index 6012848..0000000 --- a/src/crent370/pdf2/@p2arnx.c +++ /dev/null @@ -1,16 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_resource_name_xobj'"); -PDFRESOURCE *pdf_add_resource_name_xobj(PDF *pdf, PDFRESOURCE *pdfresource, const char *name, void *xobj) -{ - if (pdfresource) { - PDFNAMEOBJPAIR *pdfnameobjpair = pdf_new_name_obj_pair(pdf, name, xobj); - - if (pdfnameobjpair) { - arrayadd(&pdfresource->nameobjpairxobj, pdfnameobjpair); - } - } - - return pdfresource; -} diff --git a/src/crent370/pdf2/@p2arps.c b/src/crent370/pdf2/@p2arps.c deleted file mode 100644 index d2feba5..0000000 --- a/src/crent370/pdf2/@p2arps.c +++ /dev/null @@ -1,14 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_resource_proc_set'"); -PDFRESOURCE *pdf_add_resource_proc_set(PDF *pdf, PDFRESOURCE *pdfresource, const char *name) -{ - if (pdfresource) { - if (name) { - arrayadd(&pdfresource->procset, strdup(name)); - } - } - - return pdfresource; -} diff --git a/src/crent370/pdf2/@p2as.c b/src/crent370/pdf2/@p2as.c deleted file mode 100644 index e6e558b..0000000 --- a/src/crent370/pdf2/@p2as.c +++ /dev/null @@ -1,12 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_stream'"); -PDFSTREAM *pdf_add_stream(PDF *pdf, PDFSTREAM *pdfstream, int len, const char *stream) -{ - if (pdfstream) { - pdf_add_dstr(pdf, pdfstream, len, stream); - } - - return pdfstream; -} diff --git a/src/crent370/pdf2/@p2asbar.c b/src/crent370/pdf2/@p2asbar.c deleted file mode 100644 index 903f5b9..0000000 --- a/src/crent370/pdf2/@p2asbar.c +++ /dev/null @@ -1,29 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_stream_bar'"); -PDFSTREAM *pdf_add_stream_bar(PDF *pdf, PDFSTREAM *pdfstream, unsigned width, const char *color) -{ - if (pdfstream) { - PDFCOLOR *pdfcolor = pdf_find_color(pdf->colors, color); - - if (pdfcolor) { - unsigned rgb = pdfcolor->rgb; - int inc = (int)(width * 2); - int y = (int)(pdf->textt - inc) - 2; - - if (pdf->options & PDF_OPTION_DEBUG) { - pdf_add_streamf(pdf, pdfstream, "\r\n%% equal spaced \"%s\" horizontal bars, %.2f inch wide\r\n", color, PDF_POINT_TO_INCH(width)); - } - - for(;y >= pdf->textb; y -= inc) { - pdf_add_streamf(pdf, pdfstream, "q %g %g %g rg %g %g %g RG %u %d %u %u re B Q\r\n", - PDF_RGB_R(rgb), PDF_RGB_G(rgb), PDF_RGB_B(rgb), /* stroke color */ - PDF_RGB_R(rgb) - .1, PDF_RGB_G(rgb) - .1, PDF_RGB_B(rgb) - .1, /* fill color (a little lighter) */ - pdf->textl, y, pdf->textw, width); - } - } - } - - return pdfstream; -} diff --git a/src/crent370/pdf2/@p2asbt.c b/src/crent370/pdf2/@p2asbt.c deleted file mode 100644 index d5b9ba4..0000000 --- a/src/crent370/pdf2/@p2asbt.c +++ /dev/null @@ -1,9 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_stream_begin_text'"); -PDFSTREAM *pdf_add_stream_begin_text(PDF *pdf, PDFSTREAM *pdfstream) -{ - /* we have to use pdf_add_streamf() to get automatic EBCDIC to ASCII conversion */ - return pdf_add_streamf(pdf, pdfstream, "BT "); -} diff --git a/src/crent370/pdf2/@p2asclr.c b/src/crent370/pdf2/@p2asclr.c deleted file mode 100644 index 8e9315a..0000000 --- a/src/crent370/pdf2/@p2asclr.c +++ /dev/null @@ -1,22 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_stream_color'"); -PDFSTREAM *pdf_add_stream_color(PDF *pdf, PDFSTREAM *pdfstream, const char *color) -{ - if (pdfstream) { - if (color) { - char temp[40]; - const char *p = pdf_color_spec(pdf->colors, color, temp); - - if (p) color = temp; - - if (pdf->options & PDF_OPTION_DEBUG) pdf_add_streamf(pdf, pdfstream, "\r\n%% crop area color\r\n"); - - pdf_add_streamf(pdf, pdfstream, "q %s rg %u %u %u %u re f Q\r\n", - color, pdf->cropl, pdf->cropb, pdf->cropw, pdf->croph); - } - } - - return pdfstream; -} diff --git a/src/crent370/pdf2/@p2asdec.c b/src/crent370/pdf2/@p2asdec.c deleted file mode 100644 index 22b4eee..0000000 --- a/src/crent370/pdf2/@p2asdec.c +++ /dev/null @@ -1,14 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_stream_decode'"); -PDFSTREAM *pdf_add_stream_decode(PDF *pdf, PDFSTREAM *pdfstream, void *obj) -{ - if (pdfstream) { - if (obj) { - arrayadd(&pdfstream->objfdecodes, obj); - } - } - - return pdfstream; -} diff --git a/src/crent370/pdf2/@p2aset.c b/src/crent370/pdf2/@p2aset.c deleted file mode 100644 index 21c83d2..0000000 --- a/src/crent370/pdf2/@p2aset.c +++ /dev/null @@ -1,10 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_stream_end_text'"); -PDFSTREAM *pdf_add_stream_end_text(PDF *pdf, PDFSTREAM *pdfstream) -{ - /* we have to use pdf_add_streamf() to get automatic EBCDIC to ASCII conversion */ - return pdf_add_streamf(pdf, pdfstream, "ET\r\n"); -} - diff --git a/src/crent370/pdf2/@p2asf.c b/src/crent370/pdf2/@p2asf.c deleted file mode 100644 index a4f39c8..0000000 --- a/src/crent370/pdf2/@p2asf.c +++ /dev/null @@ -1,21 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_streamf'"); -PDFSTREAM *pdf_add_streamf(PDF *pdf, PDFSTREAM *pdfstream, const char *fmt, ...) -{ - char buf[1024]; - va_list list; - int len; - - va_start(list, fmt); - len = vsnprintf(buf, sizeof(buf)-1, fmt, list); - va_end(list); - - if (len > sizeof(buf)-1) len = sizeof(buf)-1; - buf[len] = 0; - - pdf_translate(buf, pdf->ebc2asc); /* translate to ASCII */ - - return pdf_add_stream(pdf, pdfstream, len, buf); -} diff --git a/src/crent370/pdf2/@p2asfde.c b/src/crent370/pdf2/@p2asfde.c deleted file mode 100644 index 11cc468..0000000 --- a/src/crent370/pdf2/@p2asfde.c +++ /dev/null @@ -1,14 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_stream_fdecode'"); -PDFSTREAM *pdf_add_stream_fdecode(PDF *pdf, PDFSTREAM *pdfstream, void *obj) -{ - if (pdfstream) { - if (obj) { - arrayadd(&pdfstream->objfdecodes, obj); - } - } - - return pdfstream; -} diff --git a/src/crent370/pdf2/@p2asffi.c b/src/crent370/pdf2/@p2asffi.c deleted file mode 100644 index 87c1b68..0000000 --- a/src/crent370/pdf2/@p2asffi.c +++ /dev/null @@ -1,14 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_stream_ffilter'"); -PDFSTREAM *pdf_add_stream_ffilter(PDF *pdf, PDFSTREAM *pdfstream, void *obj) -{ - if (pdfstream) { - if (obj) { - arrayadd(&pdfstream->objffilters, obj); - } - } - - return pdfstream; -} diff --git a/src/crent370/pdf2/@p2asfi.c b/src/crent370/pdf2/@p2asfi.c deleted file mode 100644 index daed9c7..0000000 --- a/src/crent370/pdf2/@p2asfi.c +++ /dev/null @@ -1,35 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_stream_file_include'"); -PDFSTREAM *pdf_add_stream_file_include(PDF *pdf, PDFSTREAM *pdfstream, const char *file) -{ - if (pdfstream) { - if (file) { - FILE *fp = fopen(file, "r"); - - if (!fp) { - wtof("Unable to open file \"%s\" in pdf_add_stream_file_include() function\n", file); - goto quit; - } - - pdf_add_streamf(pdf, pdfstream, "q\r\n"); /* save graphic state */ - - while(!feof(fp)) { - char buf[1024]; - char *p = fgets(buf, sizeof(buf)-1, fp); - - if (p) { - strtok(buf, "\r\n"); /* strip out any line terminators */ - pdf_add_streamf(pdf, pdfstream, "%s\r\n", buf); - } - } - - pdf_add_streamf(pdf, pdfstream, "Q\r\n"); /* restore graphic state */ - fclose(fp); - } - } - -quit: - return pdfstream; -} diff --git a/src/crent370/pdf2/@p2asfil.c b/src/crent370/pdf2/@p2asfil.c deleted file mode 100644 index f17935d..0000000 --- a/src/crent370/pdf2/@p2asfil.c +++ /dev/null @@ -1,14 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_stream_file'"); -PDFSTREAM *pdf_add_stream_file(PDF *pdf, PDFSTREAM *pdfstream, void *obj) -{ - if (pdfstream) { - if (obj) { - pdfstream->objfile = obj; - } - } - - return pdfstream; -} diff --git a/src/crent370/pdf2/@p2asflt.c b/src/crent370/pdf2/@p2asflt.c deleted file mode 100644 index d49e549..0000000 --- a/src/crent370/pdf2/@p2asflt.c +++ /dev/null @@ -1,14 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_stream_filter'"); -PDFSTREAM *pdf_add_stream_filter(PDF *pdf, PDFSTREAM *pdfstream, void *obj) -{ - if (pdfstream) { - if (obj) { - arrayadd(&pdfstream->objfilters, obj); - } - } - - return pdfstream; -} diff --git a/src/crent370/pdf2/@p2askv.c b/src/crent370/pdf2/@p2askv.c deleted file mode 100644 index 28e3442..0000000 --- a/src/crent370/pdf2/@p2askv.c +++ /dev/null @@ -1,19 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_stream_key_val'"); -PDFSTREAM *pdf_add_stream_key_val(PDF *pdf, PDFSTREAM *pdfstream, const char *key_val) -{ - if (pdfstream) { - if (key_val) { - char *str = strdup(key_val); - - if (str) { - pdf_translate(str, pdf->ebc2asc); - arrayadd(&pdfstream->keyvals, str); - } - } - } - - return pdfstream; -} diff --git a/src/crent370/pdf2/@p2askvf.c b/src/crent370/pdf2/@p2askvf.c deleted file mode 100644 index fd61d8f..0000000 --- a/src/crent370/pdf2/@p2askvf.c +++ /dev/null @@ -1,17 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_stream_key_valf'"); -PDFSTREAM *pdf_add_stream_key_valf(PDF *pdf, PDFSTREAM *pdfstream, const char *fmt, ...) -{ - char buf[1024]; - va_list list; - - va_start(list, fmt); - vsnprintf(buf, sizeof(buf)-1, fmt, list); - va_end(list); - - buf[sizeof(buf)-1] = 0; - - return pdf_add_stream_key_val(pdf, pdfstream, buf); -} diff --git a/src/crent370/pdf2/@p2aslt.c b/src/crent370/pdf2/@p2aslt.c deleted file mode 100644 index ba29ac9..0000000 --- a/src/crent370/pdf2/@p2aslt.c +++ /dev/null @@ -1,8 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_stream_line_to'"); -PDFSTREAM *pdf_add_stream_line_to(PDF *pdf, PDFSTREAM *pdfstream, unsigned x, unsigned y) -{ - return pdf_add_streamf(pdf, pdfstream, "%u %u l ", x, y); -} diff --git a/src/crent370/pdf2/@p2asmt.c b/src/crent370/pdf2/@p2asmt.c deleted file mode 100644 index 20a4edb..0000000 --- a/src/crent370/pdf2/@p2asmt.c +++ /dev/null @@ -1,8 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_stream_move_to'"); -PDFSTREAM *pdf_add_stream_move_to(PDF *pdf, PDFSTREAM *pdfstream, unsigned x, unsigned y) -{ - return pdf_add_streamf(pdf, pdfstream, "%u %u m ", x, y); -} diff --git a/src/crent370/pdf2/@p2asnsc.c b/src/crent370/pdf2/@p2asnsc.c deleted file mode 100644 index 4dc4f1c..0000000 --- a/src/crent370/pdf2/@p2asnsc.c +++ /dev/null @@ -1,15 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_stream_non_stroking_color'"); -PDFSTREAM *pdf_add_stream_non_stroking_color(PDF *pdf, PDFSTREAM *pdfstream, const char *color) -{ - char color_buf[256]; - const char *color_spec = pdf_color_spec(pdf->colors, color, color_buf); - - if (color_spec) { - return pdf_add_streamf(pdf, pdfstream, "%s rg ", color_spec); - } - - return NULL; -} diff --git a/src/crent370/pdf2/@p2asrm.c b/src/crent370/pdf2/@p2asrm.c deleted file mode 100644 index 0e39913..0000000 --- a/src/crent370/pdf2/@p2asrm.c +++ /dev/null @@ -1,8 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_stream_render_mode'"); -PDFSTREAM *pdf_add_stream_render_mode(PDF *pdf, PDFSTREAM *pdfstream, unsigned mode) -{ - return pdf_add_streamf(pdf, pdfstream, "%u Tr ", mode); -} diff --git a/src/crent370/pdf2/@p2assc.c b/src/crent370/pdf2/@p2assc.c deleted file mode 100644 index 3834228..0000000 --- a/src/crent370/pdf2/@p2assc.c +++ /dev/null @@ -1,15 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_stream_stroking_color'"); -PDFSTREAM *pdf_add_stream_stroking_color(PDF *pdf, PDFSTREAM *pdfstream, const char *color) -{ - char color_buf[256]; - const char *color_spec = pdf_color_spec(pdf->colors, color, color_buf); - - if (color_spec) { - return pdf_add_streamf(pdf, pdfstream, "%s RG ", color_spec); - } - - return NULL; -} diff --git a/src/crent370/pdf2/@p2assfo.c b/src/crent370/pdf2/@p2assfo.c deleted file mode 100644 index f0092ed..0000000 --- a/src/crent370/pdf2/@p2assfo.c +++ /dev/null @@ -1,8 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_stream_select_font'"); -PDFSTREAM *pdf_add_stream_select_font(PDF *pdf, PDFSTREAM *pdfstream, const char *name, unsigned points) -{ - return pdf_add_streamf(pdf, pdfstream, "%s %u Tf ", name, points); -} diff --git a/src/crent370/pdf2/@p2asstf.c b/src/crent370/pdf2/@p2asstf.c deleted file mode 100644 index b6f0a75..0000000 --- a/src/crent370/pdf2/@p2asstf.c +++ /dev/null @@ -1,17 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_stream_stroke_textf'"); -PDFSTREAM *pdf_add_stream_stroke_textf(PDF *pdf, PDFSTREAM *pdfstream, const char *stroke, const char *fmt, ... ) -{ - char buf[1024]; - va_list list; - - va_start(list, fmt); - vsnprintf(buf, sizeof(buf)-1, fmt, list); - va_end(list); - - buf[sizeof(buf)-1] = 0; - - return pdf_add_stream_text_stroke(pdf, pdfstream, buf, stroke); -} diff --git a/src/crent370/pdf2/@p2ast.c b/src/crent370/pdf2/@p2ast.c deleted file mode 100644 index 3549655..0000000 --- a/src/crent370/pdf2/@p2ast.c +++ /dev/null @@ -1,8 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_stream_text'"); -PDFSTREAM *pdf_add_stream_text(PDF *pdf, PDFSTREAM *pdfstream, const char *text) -{ - return pdf_add_stream_text_stroke(pdf, pdfstream, text, "'"); -} diff --git a/src/crent370/pdf2/@p2astf.c b/src/crent370/pdf2/@p2astf.c deleted file mode 100644 index f330081..0000000 --- a/src/crent370/pdf2/@p2astf.c +++ /dev/null @@ -1,16 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_stream_textf'"); -PDFSTREAM *pdf_add_stream_textf(PDF *pdf, PDFSTREAM *pdfstream, const char *fmt, ... ) -{ - char buf[1024]; - va_list list; - - va_start(list, fmt); - vnsprintf(buf, sizeof(buf)-1, fmt, list); - va_end(list); - - buf[sizeof(buf)-1] = 0; - return pdf_add_stream_text(pdf, pdfstream, buf); -} diff --git a/src/crent370/pdf2/@p2astle.c b/src/crent370/pdf2/@p2astle.c deleted file mode 100644 index b0d4df0..0000000 --- a/src/crent370/pdf2/@p2astle.c +++ /dev/null @@ -1,8 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_stream_text_leading'"); -PDFSTREAM *pdf_add_stream_text_leading(PDF *pdf, PDFSTREAM *pdfstream, unsigned leading) -{ - return pdf_add_streamf(pdf, pdfstream, "%u TL ", leading); -} diff --git a/src/crent370/pdf2/@p2astm.c b/src/crent370/pdf2/@p2astm.c deleted file mode 100644 index dc4f741..0000000 --- a/src/crent370/pdf2/@p2astm.c +++ /dev/null @@ -1,153 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_stream_text_mark'"); -PDFSTREAM *pdf_add_stream_text_mark(PDF *pdf, PDFSTREAM *pdfstream, PDF_WATERMARK_STYLE style, const char *strokecolor, const char *fillcolor, unsigned fontsize, const char *font, const char *text) -{ - char buf[1024]; - - if (!font) font = "/F0"; - if (!text) text = ""; - - if (pdfstream) { - /* character metrics */ - double char_width = (double)0.6; - /* box dimensions */ - double crop_width = (double)pdf->cropw; /* crop width */ - double crop_height = (double)pdf->croph; /* crop height */ - /* distance between LL and UR corners */ - double distance_between = (double) sqrt( (double)(( pow(crop_width,2.0) ) + ( pow(crop_height,2.0) )) ); - /* ratios */ - double ratio_width = distance_between / crop_width; - double ratio_height = distance_between / crop_height; - /* slope */ - double slope = (double) atan( (double)(crop_height / crop_width) ); - /* sine and cosine */ - double slope_sine = (double) sin ( (double)slope ); - double slope_cosine = (double) cos ( (double)slope ); - /* height of text rect */ - double text_x = (double)(fontsize * -slope_sine); - double text_y = (double)(fontsize * slope_cosine); - /* lower right X,Y of text rect */ - double lower_left_x, lower_left_y; - /* upper left X,Y of text rect */ - double upper_left_x, upper_left_y; - /* upper right X,Y of text rect */ - double upper_right_x, upper_right_y; - /* lower right X,Y of text rect */ - double lower_right_x, lower_right_y; - /* width of text rect */ - double box_width; - /* scaling factor */ - double scaling_width, scaling_zoom; - /* render mode */ - unsigned render_mode; - - - /* lower right X,Y of text rect */ - if (crop_width < crop_height) { - lower_left_x = (double)fabs( text_x ); - lower_left_y = ( fontsize / 2 ) * ratio_width - text_y; - } - else if ( crop_width > crop_height ) { - lower_left_x = ( fontsize / 2 ) * ratio_height; - lower_left_y = 0; - } - else { - lower_left_x = (double)fabs( text_x ); - lower_left_y = 0; - } - - /* upper left X,Y of text rect */ - upper_left_x = text_x + lower_left_x; - upper_left_y = text_y + lower_left_y; - - /* upper right X,Y of text rect */ - upper_right_x = crop_width - lower_left_x; - upper_right_y = crop_height - lower_left_y; - - /* lower right X,Y of text rect */ - lower_right_x = upper_right_x - text_x; - lower_right_y = upper_right_y - text_y; - - /* width of text rect */ - box_width = (double)sqrt( ( pow((lower_right_x - lower_left_x),2.0) ) + ( pow((lower_right_y - lower_left_y),2.0) ) ); - - /* scaling factor */ - scaling_width = (double)(strlen(text) * char_width); - scaling_zoom = (double)((box_width / ( scaling_width * fontsize ) ) * 100); - - /* text X offset */ - text_x = lower_left_x + ( ( upper_left_x - lower_left_x ) / 2.0f ); - text_y = lower_left_y + ( ( upper_left_y - lower_left_y ) / 2.0f ); - distance_between = (double)sqrt( ( pow(text_x,2.0f) ) + ( pow(text_y,2.0f) ) ); - - if (pdf->options & PDF_OPTION_DEBUG) pdf_add_streamf(pdf, pdfstream, "\r\n%% watermark\r\n"); - - /* draw bounding box */ - if (style == PDF_WATERMARK_TDBOXED) { - pdf_add_streamf(pdf, pdfstream, - "q 0 1 1 RG 0 %g m %g 0 l %g %g m %g %g l %g %g l %g %g l %g %g l s Q\r\n", - crop_height, crop_width, lower_left_x, (double)( crop_height - lower_left_y ), - upper_left_x, (double)( crop_height - upper_left_y ), upper_right_x, - (double)( crop_height - upper_right_y ), lower_right_x, (double)( crop_height - lower_right_y ), - lower_left_x, (double)( crop_height - lower_left_y )); - } - else if (style == PDF_WATERMARK_BUBOXED) { - pdf_add_streamf(pdf, pdfstream, - "q 0 1 1 RG 0 0 m %g %g l %g %g m %g %g l %g %g l %g %g l %g %g l s Q\r\n", - crop_width, crop_height, lower_left_x, lower_left_y, upper_left_x, upper_left_y, - upper_right_x, upper_right_y, lower_right_x, lower_right_y, lower_left_x, lower_left_y); - } - - /* save graphic state */ - pdf_add_streamf(pdf, pdfstream, "q\r\n"); - - /* start text object and set font, color, mode */ - pdf_add_streamf(pdf, pdfstream, "BT\r\n"); - - /* text matrix */ - if (style == PDF_WATERMARK_TOPDOWN || style == PDF_WATERMARK_TDBOXED) { - pdf_add_streamf(pdf, pdfstream, "%g %g %g %g 0 %g Tm\r\n", - slope_cosine, -slope_sine, slope_sine, slope_cosine, crop_height); - } - else { - pdf_add_streamf(pdf, pdfstream, "%g %g %g %g 0 0 Tm\r\n", - slope_cosine, slope_sine, -slope_sine, slope_cosine); - } - - /* font, displacement and zoom */ - pdf_add_streamf(pdf, pdfstream, "%s %u Tf\r\n", font, fontsize ); - pdf_add_streamf(pdf, pdfstream, "%g %g Td\r\n", distance_between, (double)(-.250 * fontsize)); - pdf_add_streamf(pdf, pdfstream, "%g Tz\r\n", scaling_zoom); - - /* color and mode */ - render_mode = 2; - if (strokecolor) { - const char *p = pdf_color_spec(pdf->colors, strokecolor, buf); - - if (p) strokecolor = p; - - pdf_add_streamf(pdf, pdfstream, "%s RG\r\n", strokecolor); - if (!fillcolor) render_mode = 1; - } - - if (fillcolor) { - const char *p = pdf_color_spec(pdf->colors, fillcolor, buf); - if (p) fillcolor = p; - - pdf_add_streamf(pdf, pdfstream, "%s rg\r\n", fillcolor); - if (!strokecolor) render_mode = 0; - } - - pdf_add_streamf(pdf, pdfstream, "%u Tr\r\n", render_mode); - - /* add the watermark text */ - pdf_add_streamf(pdf, pdfstream, "(%s)'\r\n", pdf_escape(text, buf)); - - /* end text and restore graphics state */ - pdf_add_streamf(pdf, pdfstream, "ET\r\nQ\r\n"); - } - - return pdfstream; -} diff --git a/src/crent370/pdf2/@p2astmx.c b/src/crent370/pdf2/@p2astmx.c deleted file mode 100644 index 3ed5c8b..0000000 --- a/src/crent370/pdf2/@p2astmx.c +++ /dev/null @@ -1,8 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_stream_text_matrix'"); -PDFSTREAM *pdf_add_stream_text_matrix(PDF *pdf, PDFSTREAM *pdfstream, unsigned leftmargin, unsigned topmargin) -{ - return pdf_add_streamf(pdf, pdfstream, "1 0 0 1 %u %u Tm ", leftmargin, topmargin); -} diff --git a/src/crent370/pdf2/@p2asts.c b/src/crent370/pdf2/@p2asts.c deleted file mode 100644 index 30f6726..0000000 --- a/src/crent370/pdf2/@p2asts.c +++ /dev/null @@ -1,43 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_stream_text_stroke'"); -PDFSTREAM *pdf_stream_add_text_stroke(PDF *pdf, PDFSTREAM *pdfstream, const char *text, const char *stroke) -{ - int len = 0; - int avail; - char buf[2048]; - - if (pdfstream) { - if (text) { - buf[len++] = '('; - pdf_escape(text, &buf[len]); /* copy text to buf, escaped characters as needed */ - len += strlen(&buf[len]); - - avail = sizeof(buf) - len - 3; - if (avail > 2) { - buf[len++] = ')'; - buf[len] = 0; - avail = sizeof(buf) - len - 3; - } - - if (stroke && avail > strlen(stroke)) { - /* append the stroke to our escaped string */ - len += snprintf(&buf[len], avail, "%s", stroke); - avail = sizeof(buf) - len - 3; - } - - if (avail > 3) { - strcat(&buf[len], "\r\n"); - } - else { - buf[len] = 0; - } - - pdf_translate(buf, pdf->ebc2asc); /* translate to ASCII */ - pdf_add_dstr(pdf, pdfstream, strlen(buf), buf); - } - } - - return pdfstream; -} diff --git a/src/crent370/pdf2/@p2avnfs.c b/src/crent370/pdf2/@p2avnfs.c deleted file mode 100644 index 9d8ed80..0000000 --- a/src/crent370/pdf2/@p2avnfs.c +++ /dev/null @@ -1,14 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_viewpref_non_full_screen_page_mode'"); -PDFVIEWPREF *pdf_add_viewpref_non_full_screen_page_mode(PDF *pdf, PDFVIEWPREF *pdfviewpref, const char *mode) -{ - if (pdfviewpref) { - if (mode) { - pdfviewpref->nonfullscreenpagemode = strdup(mode); - } - } - - return pdfviewpref; -} diff --git a/src/crent370/pdf2/@p2avprd.c b/src/crent370/pdf2/@p2avprd.c deleted file mode 100644 index 57cc8b4..0000000 --- a/src/crent370/pdf2/@p2avprd.c +++ /dev/null @@ -1,14 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_add_viewpref_direction'"); -PDFVIEWPREF *pdf_add_viewpref_direction(PDF *pdf, PDFVIEWPREF *pdfviewpref, const char *mode) -{ - if (pdfviewpref) { - if (mode) { - pdfviewpref->direction = strdup(mode); - } - } - - return pdfviewpref; -} diff --git a/src/crent370/pdf2/@p2bndc.c b/src/crent370/pdf2/@p2bndc.c deleted file mode 100644 index 8ecc282..0000000 --- a/src/crent370/pdf2/@p2bndc.c +++ /dev/null @@ -1,21 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_boundaries_crop'"); -void pdf_boundaries_crop(PDF *pdf) -{ - pdf->cropl = pdf->pagel; - pdf->cropr = pdf->pager; - - if (pdf->flags & PDF_OPTION_HAS_HOLES) { - pdf->cropl += pdf->holesize * 2; - pdf->cropr += pdf->holesize * 2; - } - - pdf->cropt = pdf->paget; - pdf->cropb = pdf->pageb; - pdf->cropw = pdf->cropr - pdf->cropl; - pdf->croph = pdf->cropt - pdf->cropb; - - pdf_boundaries_text(pdf); -} diff --git a/src/crent370/pdf2/@p2bndl.c b/src/crent370/pdf2/@p2bndl.c deleted file mode 100644 index 8973b69..0000000 --- a/src/crent370/pdf2/@p2bndl.c +++ /dev/null @@ -1,10 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_boundaries_leading'"); -void pdf_boundaries_leading(PDF *pdf) -{ - pdf->leading = 72 / pdf->lpi; - - pdf_boundaries_lpp(pdf); -} diff --git a/src/crent370/pdf2/@p2bndlp.c b/src/crent370/pdf2/@p2bndlp.c deleted file mode 100644 index 77b9c53..0000000 --- a/src/crent370/pdf2/@p2bndlp.c +++ /dev/null @@ -1,8 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_boundaries_lpp'"); -void pdf_boundaries_lpp(PDF *pdf) -{ - pdf->lpp = pdf->texth / pdf->leading; -} diff --git a/src/crent370/pdf2/@p2bndp.c b/src/crent370/pdf2/@p2bndp.c deleted file mode 100644 index cf4e5c2..0000000 --- a/src/crent370/pdf2/@p2bndp.c +++ /dev/null @@ -1,16 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_boundaries_page'"); -void pdf_boundaries_page(PDF *pdf) -{ - pdf->pagel = 0; - pdf->pager = pdf->paperw; - pdf->paget = pdf->paperh; - - pdf->pageb = 0; - pdf->pagew = pdf->pager - pdf->pagel; - pdf->pageh = pdf->paget - pdf->pageb; - - pdf_boundaries_crop(pdf); -} diff --git a/src/crent370/pdf2/@p2bnds.c b/src/crent370/pdf2/@p2bnds.c deleted file mode 100644 index dd4bcb1..0000000 --- a/src/crent370/pdf2/@p2bnds.c +++ /dev/null @@ -1,8 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_boundaries'"); -void pdf_boundaries(PDF *pdf) -{ - pdf_boundaries_page(pdf); -} diff --git a/src/crent370/pdf2/@p2bndt.c b/src/crent370/pdf2/@p2bndt.c deleted file mode 100644 index e1f9d11..0000000 --- a/src/crent370/pdf2/@p2bndt.c +++ /dev/null @@ -1,15 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_boundaries_text'"); -void pdf_boundaries_text(PDF *pdf) -{ - pdf->textl = pdf->cropl + pdf->lmargin; - pdf->textr = pdf->cropr - pdf->rmargin; - pdf->textt = pdf->cropt - pdf->tmargin; - pdf->textb = pdf->cropb + pdf->bmargin; - pdf->textw = pdf->textr - pdf->textl; - pdf->texth = pdf->textt - pdf->textb; - - pdf_boundaries_leading(pdf); -} diff --git a/src/crent370/pdf2/@p2core.c b/src/crent370/pdf2/@p2core.c deleted file mode 100644 index 54bec7c..0000000 --- a/src/crent370/pdf2/@p2core.c +++ /dev/null @@ -1,88 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_get_dstr'"); -static DSTR *pdf_get_dstr(PDF *pdf, PDFSTREAM *pdfstream) -{ - unsigned count = arraycount(&pdfstream->dstrs); - DSTR *dstr = arrayget(&pdfstream->dstrs, count); -#define DSTR_CHUNK 256 - - if (!dstr || dstr->len == dstr->size) { - /* Allocate new DSTR structure */ - dstr = calloc(1, sizeof(DSTR) + DSTR_CHUNK); - if (dstr) { - dstr->stream = ((char *)dstr) + sizeof(DSTR); - dstr->size = DSTR_CHUNK; - arrayadd(&pdfstream->dstrs, dstr); - } - } - else if (dstr->len > dstr->size || dstr->len < 0) { - wtof("_p2core->pdf_get_dstr() error, dstr->len > dstr->size or dstr->len < 0"); - wtof("_p2core->pdf_get_dstr() error, %d > %d or %d < 0", dstr->len, dstr->size, dstr->len); - asm("DC\tH'0' DIE DIE DIE"); - } - - return dstr; -} - -__asm__("\n&FUNC SETC 'pdf_add_dstr'"); -static void pdf_add_dstr(PDF *pdf, PDFSTREAM *pdfstream, int len, const char *stream) -{ - if (len > 0) { - pdfstream->len += len; - while(len > 0) { - DSTR *dstr = pdf_get_dstr(pdf, pdfstream); - int move = len; - int avail = dstr->size - dstr->len; - - if (move > avail) { - move = avail; - } - - memcpy(&dstr->stream[dstr->len], stream, move); - stream += move; - dstr->len += move; - len -= move; - } - } -} - -#if 1 -__asm__("\n&FUNC SETC 'chop'"); -static double chop(double t) -{ - return (double)(((int) (t * 1000)) / 1000.0); -} -#else -#define chop(t) ((double)(((int) (t * 1000)) / 1000.0)) -#endif -__asm__("\n&FUNC SETC 'pdf_calc_arc'"); -static double *pdf_calc_arc(double r, double a, double f[8]) -{ - double t; - - a = (double)((3.141593 / 180.0) * a); - - t = (double)((r * (4.0/3.0) * (1 - cos(a)) ) / sin(a)); - - f[6] = (double)(r * cos( 2 * a )); - f[7] = (double)(r * sin( 2 * a )); - f[4] = chop( (double)(f[6] + t * sin( 2 * a )) ); - f[5] = chop( (double)(f[7] - t * cos( 2 * a )) ); - f[6] = chop( f[6] ); - f[7] = chop( f[7] ); - f[2] = chop( r ); - f[3] = chop( t ); - f[0] = r; - f[1] = 0; - - return &f[0]; -} - -static struct pdf_private pdfprivate = { - pdf_get_dstr, - pdf_add_dstr, - pdf_calc_arc, -}; - -struct pdf_private *_p2core = &pdfprivate; diff --git a/src/crent370/pdf2/@p2cspca.c b/src/crent370/pdf2/@p2cspca.c deleted file mode 100644 index cc77dc7..0000000 --- a/src/crent370/pdf2/@p2cspca.c +++ /dev/null @@ -1,10 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_color_spec_array'"); -const char *pdf_color_spec_array(PDFCOLOR **pdfcolors, const char *name, char *buf) -{ - sprintf(buf, "[%s]", PdfColorSpec(pdfcolors, name)); - - return buf; -} diff --git a/src/crent370/pdf2/@p2cspec.c b/src/crent370/pdf2/@p2cspec.c deleted file mode 100644 index 1dc8319..0000000 --- a/src/crent370/pdf2/@p2cspec.c +++ /dev/null @@ -1,17 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_color_spec'"); -const char *pdf_color_spec(PDFCOLOR **pdfcolors, const char *name, char *color) -{ - unsigned rgb = PDF_RGB(0xff, 0xff, 0xff); /* white */ - PDFCOLOR *pdfcolor = pdf_find_color(pdfcolors, name); - - if (pdfcolor) { - rgb = pdfcolor->rgb; - } - - sprintf(color, "%g %g %g", PDF_RGB_R(rgb), PDF_RGB_G(rgb), PDF_RGB_B(rgb)); - - return (const char*)color; -} diff --git a/src/crent370/pdf2/@p2dstr.c b/src/crent370/pdf2/@p2dstr.c deleted file mode 100644 index ff6da30..0000000 --- a/src/crent370/pdf2/@p2dstr.c +++ /dev/null @@ -1,19 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_date_string'"); -char *pdf_date_string(PDF *pdf, const time_t *time) -{ - char buf[40]; - int len; - - len = strftime(buf, sizeof(buf), "%Y%m%d%H%M%S", localtime(time)); - if (pdf->gmthours > 0) { - sprintf(&buf[len], "+%02d'%02d'", pdf->gmthours, pdf->gmtmins); - } - else { - sprintf(&buf[len], "-%02d'%02d'", pdf->gmthours * -1, pdf->gmtmins); - } - - return pdf_stringf(pdf, "D:%s", buf); -} diff --git a/src/crent370/pdf2/@p2escap.c b/src/crent370/pdf2/@p2escap.c deleted file mode 100644 index 609dccb..0000000 --- a/src/crent370/pdf2/@p2escap.c +++ /dev/null @@ -1,18 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_escape'"); -char *pdf_escape(const char *in, char *out) -{ - char *p = out; - - while(*in) { - if (*in=='(' || *in==')' || *in=='\\') { - *p++ = '\\'; - } - *p++ = *in++; - } - *p = 0; - - return out; -} diff --git a/src/crent370/pdf2/@p2ffont.c b/src/crent370/pdf2/@p2ffont.c deleted file mode 100644 index c006f83..0000000 --- a/src/crent370/pdf2/@p2ffont.c +++ /dev/null @@ -1,20 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_find_font'"); -PDFFONT *pdf_find_font(PDF *pdf, const char *name) -{ - unsigned n, count = arraycount(&pdf->pdffonts); - - for(n=0; n < count; n++) { - PDFFONT *pdffont = pdf->pdffonts[n]; - - if (!pdffont) continue; - - if (pdffont->basefont && pdf_case_cmp(name, pdffont->basefont)==0) return pdffont; - if (pdffont->alias && pdf_case_cmp(name, pdffont->alias )==0) return pdffont; - if (pdffont->abbrev && pdf_case_cmp(name, pdffont->abbrev )==0) return pdffont; - } - - return NULL; -} diff --git a/src/crent370/pdf2/@p2fpdf.c b/src/crent370/pdf2/@p2fpdf.c deleted file mode 100644 index e4aa1ae..0000000 --- a/src/crent370/pdf2/@p2fpdf.c +++ /dev/null @@ -1,12 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_free'"); -void pdf_free(PDF **pp) -{ - PDF *pdf = pp ? *pp : (PDF*)0; - - if (pdf) { - free(pdf); - *pp = (PDF*)0; - } -} diff --git a/src/crent370/pdf2/@p2gcirc.c b/src/crent370/pdf2/@p2gcirc.c deleted file mode 100644 index 3c63e91..0000000 --- a/src/crent370/pdf2/@p2gcirc.c +++ /dev/null @@ -1,27 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -/* example pdf_graphic_circle(pdf, pdfstream, 100, 100, 20, "B") at 100,100 draw a 20 point radius circle, fill and stroke */ -/* example pdf_graphic_circle(pdf, pdfstream, 100, 100, 20, "S") at 100,100 draw a 20 point radius circle, stroke only */ - -__asm__("\n&FUNC SETC 'pdf_graphic_circle'"); -PDFSTREAM *pdf_graphic_circle(PDF *pdf, PDFSTREAM *pdfstream, unsigned x, unsigned y, unsigned r, const char *stroke) -{ - if (pdfstream) { - double c[8]; - double *ci = pdf_calc_arc(r, 90.0, c); - - /* Top half of circle */ - pdf_add_streamf(pdf, pdfstream, "%g %g m %g %g %g %g %g %g c %s ", - x+ci[0], y+ci[1], x+ci[2], y+ci[3], x+ci[4], y+ci[5], x+ci[6], y+ci[7], stroke); - - /* Bottom half of circle */ - pdf_add_streamf(pdf, pdfstream, "%g %g m %g %g %g %g %g %g c %s", - x-ci[0], y-ci[1], x-ci[2], y-ci[3], x-ci[4], y-ci[5], x-ci[6], y-ci[7], stroke); - - if (pdf->options & PDF_OPTION_DEBUG) pdf_add_streamf(pdf, pdfstream, " %% circle"); - pdf_add_streamf(pdf, pdfstream, "\r\n"); - } - - return pdfstream; -} diff --git a/src/crent370/pdf2/@p2gcpth.c b/src/crent370/pdf2/@p2gcpth.c deleted file mode 100644 index 9ab8d27..0000000 --- a/src/crent370/pdf2/@p2gcpth.c +++ /dev/null @@ -1,14 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_graphic_close_path'"); -PDFSTREAM *pdf_graphic_close_path(PDF *pdf, PDFSTREAM *pdfstream) -{ - if (pdfstream) { - pdf_add_streamf(pdf, pdfstream, "h"); - if (pdf->options & PDF_OPTION_DEBUG) pdf_add_streamf(pdf, pdfstream, " %% close path"); - pdf_add_streamf(pdf, pdfstream, "\r\n"); - } - - return pdfstream; -} diff --git a/src/crent370/pdf2/@p2gdl.c b/src/crent370/pdf2/@p2gdl.c deleted file mode 100644 index 90f27e9..0000000 --- a/src/crent370/pdf2/@p2gdl.c +++ /dev/null @@ -1,14 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_graphic_dash_line'"); -PDFSTREAM *pdf_graphic_dash_line(PDF *pdf, PDFSTREAM *pdfstream, unsigned on, unsigned off, unsigned phase) -{ - if (pdfstream) { - pdf_add_streamf(pdf, pdfstream, "[%u %u] %u d", on, off, phase); - if (pdf->options & PDF_OPTION_DEBUG) pdf_add_streamf(pdf, pdfstream, " %% dash line"); - pdf_add_streamf(pdf, pdfstream, "\r\n"); - } - - return pdfstream; -} diff --git a/src/crent370/pdf2/@p2gfcol.c b/src/crent370/pdf2/@p2gfcol.c deleted file mode 100644 index d954d0b..0000000 --- a/src/crent370/pdf2/@p2gfcol.c +++ /dev/null @@ -1,21 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_graphic_fill_color'"); -PDFSTREAM *pdf_graphic_fill_color(PDF *pdf, PDFSTREAM *pdfstream, const char *color) -{ - if (pdfstream) { - if (color) { - char buf[40]; - const char *p = pdf_color_spec(pdf->colors, color, buf); - if (p) color = buf; - - pdf_add_streamf(pdf, pdfstream, "%s rg", color); - if (pdf->options & PDF_OPTION_DEBUG) pdf_add_streamf(pdf, pdfstream, " %% fill color"); - pdf_add_streamf(pdf, pdfstream, "\r\n"); - } - } - - return pdfstream; -} - diff --git a/src/crent370/pdf2/@p2glinw.c b/src/crent370/pdf2/@p2glinw.c deleted file mode 100644 index fdea693..0000000 --- a/src/crent370/pdf2/@p2glinw.c +++ /dev/null @@ -1,14 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_graphic_line_width'"); -PDFSTREAM *pdf_graphic_line_width(PDF *pdf, PDFSTREAM *pdfstream, unsigned width) -{ - if (pdfstream) { - pdf_add_streamf(pdf, pdfstream, "%u w", width); - if (pdf->options & PDF_OPTION_DEBUG) pdf_add_streamf(pdf, pdfstream, " %% line width"); - pdf_add_streamf(pdf, pdfstream, "\r\n"); - } - - return pdfstream; -} diff --git a/src/crent370/pdf2/@p2glnto.c b/src/crent370/pdf2/@p2glnto.c deleted file mode 100644 index 74f6ec2..0000000 --- a/src/crent370/pdf2/@p2glnto.c +++ /dev/null @@ -1,14 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_graphic_line_to'"); -PDFSTREAM *pdf_graphic_line_to(PDF *pdf, PDFSTREAM *pdfstream, unsigned x, unsigned y) -{ - if (pdfstream) { - pdf_add_streamf(pdf, pdfstream, "%u %u l", x, y); - if (pdf->options & PDF_OPTION_DEBUG) pdf_add_streamf(pdf, pdfstream, " %% line to"); - pdf_add_streamf(pdf, pdfstream, "\r\n"); - } - - return pdfstream; -} diff --git a/src/crent370/pdf2/@p2gmvto.c b/src/crent370/pdf2/@p2gmvto.c deleted file mode 100644 index 7c528cc..0000000 --- a/src/crent370/pdf2/@p2gmvto.c +++ /dev/null @@ -1,14 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_graphic_move_to'"); -PDFSTREAM *pdf_graphic_move_to(PDF *pdf, PDFSTREAM *pdfstream, unsigned x, unsigned y) -{ - if (pdfstream) { - pdf_add_streamf(pdf, pdfstream, "%u %u m", x, y); - if (pdf->options & PDF_OPTION_DEBUG) pdf_add_streamf(pdf, pdfstream, " %% move to"); - pdf_add_streamf(pdf, pdfstream, "\r\n"); - } - - return pdfstream; -} diff --git a/src/crent370/pdf2/@p2grest.c b/src/crent370/pdf2/@p2grest.c deleted file mode 100644 index a45db5e..0000000 --- a/src/crent370/pdf2/@p2grest.c +++ /dev/null @@ -1,14 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_graphic_restore'"); -PDFSTREAM *pdf_graphic_restore(PDF *pdf, PDFSTREAM *pdfstream) -{ - if (pdfstream) { - pdf_add_streamf(pdf, pdfstream, "Q"); - if (pdf->options & PDF_OPTION_DEBUG) pdf_add_streamf(pdf, pdfstream, " %% restore graphic state"); - pdf_add_streamf(pdf, pdfstream, "\r\n"); - } - - return pdfstream; -} diff --git a/src/crent370/pdf2/@p2gsave.c b/src/crent370/pdf2/@p2gsave.c deleted file mode 100644 index 4779c07..0000000 --- a/src/crent370/pdf2/@p2gsave.c +++ /dev/null @@ -1,14 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_graphic_save'"); -PDFSTREAM *pdf_graphic_save(PDF *pdf, PDFSTREAM *pdfstream) -{ - if (pdfstream) { - pdf_add_streamf(pdf, pdfstream, "q"); - if (pdf->options & PDF_OPTION_DEBUG) pdf_add_streamf(pdf, pdfstream, " %% save graphic state"); - pdf_add_streamf(pdf, pdfstream, "\r\n"); - } - - return pdfstream; -} diff --git a/src/crent370/pdf2/@p2gscol.c b/src/crent370/pdf2/@p2gscol.c deleted file mode 100644 index ec0f642..0000000 --- a/src/crent370/pdf2/@p2gscol.c +++ /dev/null @@ -1,20 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_graphic_stroke_color'"); -PDFSTREAM *pdf_graphic_stroke_color(PDF *pdf, PDFSTREAM *pdfstream, const char *color) -{ - if (pdfstream) { - if (color) { - char buf[40]; - const char *p = pdf_color_spec(pdf->colors, color, buf); - if (p) color = buf; - - pdf_add_streamf(pdf, pdfstream, "%s RG", color); - if (pdf->options & PDF_OPTION_DEBUG) pdf_add_streamf(pdf, pdfstream, " %% stroke color"); - pdf_add_streamf(pdf, pdfstream, "\r\n"); - } - } - - return pdfstream; -} diff --git a/src/crent370/pdf2/@p2gsl.c b/src/crent370/pdf2/@p2gsl.c deleted file mode 100644 index 6fae7f9..0000000 --- a/src/crent370/pdf2/@p2gsl.c +++ /dev/null @@ -1,14 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_graphic_solid_line'"); -PDFSTREAM *pdf_graphic_solid_line(PDF *pdf, PDFSTREAM *pdfstream) -{ - if (pdfstream) { - pdf_add_streamf(pdf, pdfstream, "[] 0 d"); - if (pdf->options & PDF_OPTION_DEBUG) pdf_add_streamf(pdf, pdfstream, " %% solid line"); - pdf_add_streamf(pdf, pdfstream, "\r\n"); - } - - return pdfstream; -} diff --git a/src/crent370/pdf2/@p2gstro.c b/src/crent370/pdf2/@p2gstro.c deleted file mode 100644 index 0b4935a..0000000 --- a/src/crent370/pdf2/@p2gstro.c +++ /dev/null @@ -1,14 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_graphic_stroke'"); -PDFSTREAM *pdf_graphic_stroke(PDF *pdf, PDFSTREAM *pdfstream) -{ - if (pdfstream) { - pdf_add_streamf(pdf, pdfstream, "S"); - if (pdf->options & PDF_OPTION_DEBUG) pdf_add_streamf(pdf, pdfstream, " %% stroke"); - pdf_add_streamf(pdf, pdfstream, "\r\n"); - } - - return pdfstream; -} diff --git a/src/crent370/pdf2/@p2narra.c b/src/crent370/pdf2/@p2narra.c deleted file mode 100644 index 2b48917..0000000 --- a/src/crent370/pdf2/@p2narra.c +++ /dev/null @@ -1,17 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_new_array'"); -PDFARRAY *pdf_new_array(PDF *pdf) -{ - PDFARRAY *pdfarray = calloc(1, sizeof(PDFARRAY)); - - if (pdfarray) { - PDFOBJ *pdfobj = (PDFOBJ *)pdfarray; - - pdfobj->type = OBJARRAY; - - arrayadd(&pdf->objects, pdfarray); - } - - return pdfarray; -} diff --git a/src/crent370/pdf2/@p2nback.c b/src/crent370/pdf2/@p2nback.c deleted file mode 100644 index a181bb3..0000000 --- a/src/crent370/pdf2/@p2nback.c +++ /dev/null @@ -1,14 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_new_background'"); -PDFSTREAM *pdf_new_background(PDF *pdf) -{ - PDFSTREAM *pdfstream = pdf_new_stream(pdf); - - if (pdfstream) { - if (pdf->options & PDF_OPTION_DEBUG) pdf_add_streamf(pdf, pdfstream, "\r\n%% Background stream\r\n"); - } - - return pdfstream; -} diff --git a/src/crent370/pdf2/@p2nbkmd.c b/src/crent370/pdf2/@p2nbkmd.c deleted file mode 100644 index b3132e3..0000000 --- a/src/crent370/pdf2/@p2nbkmd.c +++ /dev/null @@ -1,63 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_new_bookmark_dest'"); -PDFOUTLINE *pdf_new_bookmark_dest(PDF *pdf, PDFOUTLINE *parent, const char *title, const char *color, PDFDEST *pdfdest) -{ - PDFOUTLINE *pdfoutline; - char buf[256]; - - if (!pdf) return NULL; - - if (!parent) { - /* Make parent the root object */ - if (!pdf->outlines) pdf_new_outlines(pdf); - parent = (PDFOUTLINE *)pdf->outlines; - } - - pdfoutline = pdf_new_outline(pdf); - - if (pdfoutline) { - PDFOUTLINE *sibling = (PDFOUTLINE *)parent->last; - - /* Chain siblings together */ - if (sibling) { - sibling->next = (PDFOBJ *)pdfoutline; - pdfoutline->prev = (PDFOBJ *)sibling; - } - - /* Chain the parent "bookmark" to this "bookmark" */ - if (!parent->first) { - parent->first = (PDFOBJ *)pdfoutline; - } - parent->last = (PDFOBJ *)pdfoutline; - parent->count++; - - /* Chain this "bookmark" to it's parent */ - pdfoutline->parent = (PDFOBJ *)parent; - - /* Set title for bookmark */ - if (title) { - if (*title=='(') { - pdfoutline->title = strdup(title); - } - else { - pdf_escape(title, buf); - pdfoutline->title = calloc(1,strlen(buf)+3); - sprintf(pdfoutline->title, "(%s)", buf); - } - } - - /* Set color for bookmark */ - if (color) { - pdf_color_spec_array(pdf->colors, color, buf); - color = buf; - } - pdfoutline->color = strdup(color); - - /* Add our destination */ - pdfoutline->dest = (PDFOBJ *)pdfdest; - } - - return pdfoutline; -} diff --git a/src/crent370/pdf2/@p2nbkmk.c b/src/crent370/pdf2/@p2nbkmk.c deleted file mode 100644 index 4cbc697..0000000 --- a/src/crent370/pdf2/@p2nbkmk.c +++ /dev/null @@ -1,10 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_new_bookmark'"); -PDFOUTLINE *pdf_new_bookmark(PDF *pdf, PDFOUTLINE *parent, const char *title, const char *color, PDFPAGE *pdfpage, unsigned x, unsigned y) -{ - PDFDEST *pdfdest = pdf_new_dest(pdf, pdfpage, x, y); - - return pdf_new_bookmark_dest(pdf, parent, title, color, pdfdest); -} diff --git a/src/crent370/pdf2/@p2nbkmp.c b/src/crent370/pdf2/@p2nbkmp.c deleted file mode 100644 index ba96148..0000000 --- a/src/crent370/pdf2/@p2nbkmp.c +++ /dev/null @@ -1,10 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_new_bookmark_page'"); -PDFOUTLINE *pdf_new_bookmark_page(PDF *pdf, PDFOUTLINE *parent, const char *title, const char *color, PDFPAGE *pdfpage) -{ - PDFDEST *pdfdest = pdf_new_dest(pdf, pdfpage, pdf->pagel, pdf->paget); - - return pdf_new_bookmark_dest(pdf, parent, title, color, pdfdest); -} diff --git a/src/crent370/pdf2/@p2nbool.c b/src/crent370/pdf2/@p2nbool.c deleted file mode 100644 index 7a72f37..0000000 --- a/src/crent370/pdf2/@p2nbool.c +++ /dev/null @@ -1,19 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_new_bool'"); -PDFBOOL *pdf_new_bool(PDF *pdf, int value) -{ - PDFBOOL *pdfbool = calloc(1, sizeof(PDFBOOL)); - - if (pdfbool) { - PDFOBJ *pdfobj = (PDFOBJ *)pdfbool; - - pdfobj->type = OBJBOOL; - - pdfbool->value = value; - - arrayadd(&pdf->objects, pdfbool); - } - - return pdfbool; -} diff --git a/src/crent370/pdf2/@p2ncat.c b/src/crent370/pdf2/@p2ncat.c deleted file mode 100644 index f40e13c..0000000 --- a/src/crent370/pdf2/@p2ncat.c +++ /dev/null @@ -1,22 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_new_cat'"); -PDFCAT *pdf_new_cat(PDF *pdf) -{ - PDFCAT *pdfcat = calloc(1, sizeof(PDFCAT)); - - if (pdfcat) { - PDFOBJ *pdfobj = (PDFOBJ *)pdfcat; - - pdfobj->type = OBJCATALOG; - pdfobj->index = ++pdf->current_index; - - pdf->catalog = pdfcat; - - arrayadd(&pdf->objects, pdfcat); - arrayadd(&pdf->offsets, (void*)0); - } - - return pdfcat; -} diff --git a/src/crent370/pdf2/@p2ncol.c b/src/crent370/pdf2/@p2ncol.c deleted file mode 100644 index 7b32590..0000000 --- a/src/crent370/pdf2/@p2ncol.c +++ /dev/null @@ -1,24 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_new_color'"); -PDFCOLOR *pdf_new_color(PDF *pdf, const char *name, const char *abbrev, unsigned rgb) -{ - PDFCOLOR *pdfcolor = calloc(1, sizeof(PDFCOLOR)); - - if (pdfcolor) { - PDFOBJ *pdfobj = (PDFOBJ *)pdfcolor; - - pdfobj->type = OBJCOLOR; - - if (name) pdfcolor->name = strdup(name); - if (abbrev) pdfcolor->abbrev = strdup(abbrev); - - pdfcolor->rgb = rgb; - - arrayadd(&pdf->objects, pdfcolor); - arrayadd(&pdf->colors, pdfcolor); - } - - return pdfcolor; -} diff --git a/src/crent370/pdf2/@p2ndate.c b/src/crent370/pdf2/@p2ndate.c deleted file mode 100644 index fc39fa8..0000000 --- a/src/crent370/pdf2/@p2ndate.c +++ /dev/null @@ -1,19 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_new_date'"); -PDFDATE *pdf_new_date(PDF *pdf, const struct tm *time) -{ - PDFDATE *pdfdate = calloc(1, sizeof(PDFDATE)); - - if (pdfdate) { - PDFOBJ *pdfobj = (PDFOBJ *)pdfdate; - - pdfobj->type = OBJDATE; - - if (time) pdfdate->time = *time; - - arrayadd(&pdf->objects, pdfdate); - } - - return pdfdate; -} diff --git a/src/crent370/pdf2/@p2ndest.c b/src/crent370/pdf2/@p2ndest.c deleted file mode 100644 index 5747edc..0000000 --- a/src/crent370/pdf2/@p2ndest.c +++ /dev/null @@ -1,22 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_new_dest'"); -PDFDEST *pdf_new_dest(PDF *pdf, PDFPAGE *pdfpage, int left, int top) -{ - PDFDEST *pdfdest = calloc(1, sizeof(PDFDEST)); - - if (pdfdest) { - PDFOBJ *pdfobj = (PDFOBJ *)pdfdest; - - pdfobj->type = OBJDEST; - - pdfdest->page = pdfpage; - pdfdest->left = left; - pdfdest->top = top; - - arrayadd(&pdf->objects, pdfdest); - } - - return pdfdest; -} diff --git a/src/crent370/pdf2/@p2nfile.c b/src/crent370/pdf2/@p2nfile.c deleted file mode 100644 index c1c2fd4..0000000 --- a/src/crent370/pdf2/@p2nfile.c +++ /dev/null @@ -1,19 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_new_file'"); -PDFFILE *pdf_new_file(PDF *pdf, const char *file) -{ - PDFFILE *pdffile = calloc(1, sizeof(PDFFILE)); - - if (pdffile) { - PDFOBJ *pdfobj = (PDFOBJ *)pdffile; - - pdfobj->type = OBJFILE; - - if (file) pdffile->file = strdup(file); - - arrayadd(&pdf->objects, pdffile); - } - - return pdffile; -} diff --git a/src/crent370/pdf2/@p2nfont.c b/src/crent370/pdf2/@p2nfont.c deleted file mode 100644 index d55d613..0000000 --- a/src/crent370/pdf2/@p2nfont.c +++ /dev/null @@ -1,37 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_new_font'"); -PDFFONT *pdf_new_font(PDF *pdf, const char *subtype, const char *basefont, const char *encoding, const char *alias, const char *abbrev) -{ - PDFFONT *pdffont = calloc(1, sizeof(PDFFONT)); - - if (pdffont) { - PDFOBJ *pdfobj = (PDFOBJ *)pdffont; - - pdffont->type = OBJFONT; - pdfobj->index = ++pdf->current_index; - - if (subtype) { - pdffont->subtype = strdup(subtype); - } - if (basefont) { - pdffont->basefont = strdup(basefont); - } - if (encoding) { - pdffont->encoding = strdup(encoding); - } - if (alias) { - pdffont->alias = strdup(alias); - } - if (abbrev) { - pdffont->abbrev = strdup(abbrev); - } - - arrayadd(&pdf->objects, pdffont); - arrayadd(&pdf->offsets, (void*)0); - arrayadd(&pdf->pdffonts, pdffont); - } - - return pdffont; -} diff --git a/src/crent370/pdf2/@p2nimg.c b/src/crent370/pdf2/@p2nimg.c deleted file mode 100644 index c16b989..0000000 --- a/src/crent370/pdf2/@p2nimg.c +++ /dev/null @@ -1,61 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" -#include - -__asm__("\n&FUNC SETC 'pdf_new_image'"); -PDFIMAGE *pdf_new_image(PDF *pdf, unsigned width, unsigned height, const char *colorspace, unsigned bitspercomponent) -{ - int len = (((width * bitspercomponent) + 7) / 8) * height; - PDFIMAGE *pdfimage = calloc(1, sizeof(PDFIMAGE)); - DSTR *dstr; - - /* colorspace: DeviceGray, DeviceRGB, DeviceCMYK, CalGray, CalRGB, Lab, ICCBased, Indexed, Pattern, Seperation, DeviceN */ - if (*colorspace == '/') colorspace++; - - /* Adjust iLen to number of bytes for image data */ - if (pdf_case_cmp(colorspace, "DeviceGray")==0) { - /* nothing to do */ - } - else if (pdf_case_cmp(colorspace, "DeviceRGB")==0) { - len *= 3; - } - else if (pdf_case_cmp(colorspace, "DeviceCMYK")==0) { - len *= 4; - } - else if (pdf_case_cmp(colorspace, "CalGray")==0) { - /* nothing to do */ - } - else if (pdf_case_cmp(colorspace, "CalRGB")==0) { - len *= 3; - } - else if (pdf_case_cmp(colorspace, "Lab")==0) { - len *= 3; - } - - if (pdfimage) { - PDFOBJ *pdfobj = (PDFOBJ *)pdfimage; - - pdfobj->type = OBJIMAGE; - pdfobj->index = ++pdf->current_index; - - pdfimage->width = width; - pdfimage->height = height; - pdfimage->bitspercomponent = bitspercomponent; - - pdfimage->colorspace = calloc(1, strlen(colorspace) + 2); - sprintf(pdfimage->colorspace, "/%s", colorspace); - - arrayadd(pdf->objects, pdfimage); - arrayadd(pdf->offsets, (void*)0); - - dstr = calloc(1, sizeof(DSTR) + len + 1); - if (dstr) { - dstr->size = len; - dstr->stream = ((char *)dstr + sizeof(DSTR)); - - pdfimage->dstr = dstr; - } - } - - return pdfimage; -} diff --git a/src/crent370/pdf2/@p2ninfo.c b/src/crent370/pdf2/@p2ninfo.c deleted file mode 100644 index a2e1f93..0000000 --- a/src/crent370/pdf2/@p2ninfo.c +++ /dev/null @@ -1,47 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" -#include - -__asm__("\n&FUNC SETC 'pdf_new_info'"); -PDFINFO *pdf_new_info(PDF *pdf, const char *title, const char *subject, const char *author, const char *keywords, - const char *creator, const char *producer, const time_t *created) -{ - time_t now; - CLIBGRT *grt = __grtget(); - const char **argv = (const char **)grt->grtptrs; - PDFINFO *pdfinfo = calloc(1, sizeof(PDFINFO)); - - if (pdfinfo) { - PDFOBJ *pdfobj = (PDFOBJ *)pdfinfo; - - pdfobj->type = OBJINFO; - pdfobj->index = ++pdf->current_index; - - if (title) pdfinfo->title = pdf_string(pdf, title); - if (subject) pdfinfo->subject = pdf_string(pdf, subject); - if (author) pdfinfo->author = pdf_string(pdf, author); - if (keywords) pdfinfo->keywords = pdf_string(pdf, keywords); - if (creator) pdfinfo->creator = pdf_string(pdf, creator); - if (producer) { - pdfinfo->producer = pdf_string(pdf, producer); - } - else { - producer = argv[0]; /* use program name */ - if (!producer) producer = "PDFINFO"; /* just in case */ - pdfinfo->producer = pdf_string(pdf, producer); - } - - if (!created) { - now = time(NULL); - created = &now; - } - pdfinfo->created = pdf_date_string(pdf, created); - - pdf->pdfinfo = pdfinfo; - - arrayadd(&pdf->objects, pdfinfo); - arrayadd(&pdf->offsets, (void*)0); - } - - return pdfinfo; -} diff --git a/src/crent370/pdf2/@p2nint.c b/src/crent370/pdf2/@p2nint.c deleted file mode 100644 index c55d179..0000000 --- a/src/crent370/pdf2/@p2nint.c +++ /dev/null @@ -1,19 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_new_int'"); -PDFINT *pdf_new_int(PDF *pdf, int value) -{ - PDFINT *pdfint = calloc(1, sizeof(PDFINT)); - - if (pdfint) { - PDFOBJ *pdfobj = (PDFOBJ *)pdfint; - - pdfobj->type = OBJINT; - - pdfint->value = value; - - arrayadd(&pdf->objects, pdfint); - } - - return pdfint; -} diff --git a/src/crent370/pdf2/@p2nname.c b/src/crent370/pdf2/@p2nname.c deleted file mode 100644 index 29416dd..0000000 --- a/src/crent370/pdf2/@p2nname.c +++ /dev/null @@ -1,19 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_new_name'"); -PDFNAME *pdf_new_name(PDF *pdf, const char *name) -{ - PDFNAME *pdfname = calloc(1, sizeof(PDFNAME)); - - if (pdfname) { - PDFOBJ *pdfobj = (PDFOBJ *)pdfname; - - pdfobj->type = OBJNAME; - - if (name) pdfname->name = strdup(name); - - arrayadd(&pdf->objects, pdfname); - } - - return pdfname; -} diff --git a/src/crent370/pdf2/@p2nnat.c b/src/crent370/pdf2/@p2nnat.c deleted file mode 100644 index 6ebf395..0000000 --- a/src/crent370/pdf2/@p2nnat.c +++ /dev/null @@ -1,19 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_new_name_tree'"); -PDFNAMETREE *pdf_new_name_tree(PDF *pdf) -{ - PDFNAMETREE *pdfnametree = calloc(1, sizeof(PDFNAMETREE)); - - if (pdfnametree) { - PDFOBJ *pdfobj = (PDFOBJ *)pdfnametree; - - pdfobj->type = OBJNAMETREE; - pdfobj->index = ++pdf->current_index; - - arrayadd(&pdf->objects, pdfnametree); - arrayadd(&pdf->offsets, (void*)0); - } - - return pdfnametree; -} diff --git a/src/crent370/pdf2/@p2nnop.c b/src/crent370/pdf2/@p2nnop.c deleted file mode 100644 index 4684498..0000000 --- a/src/crent370/pdf2/@p2nnop.c +++ /dev/null @@ -1,21 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_new_name_obj_pair'"); -PDFNAMEOBJPAIR *pdf_new_name_obj_pair(PDF *pdf, const char *name, void *obj) -{ - PDFNAMEOBJPAIR *pdfnameobjpair = calloc(1, sizeof(PDFNAMEOBJPAIR)); - - if (pdfnameobjpair) { - PDFOBJ *pdfobj = (PDFOBJ *)pdfnameobjpair; - - pdfobj->type = OBJNAMEOBJPAIR; - - if (name) pdfnameobjpair->name = strdup(name); - - if (obj) pdfnameobjpair->pdfobj = obj; - - arrayadd(&pdf->objects, pdfnameobjpair); - } - - return pdfnameobjpair; -} diff --git a/src/crent370/pdf2/@p2nnull.c b/src/crent370/pdf2/@p2nnull.c deleted file mode 100644 index cc6ee4c..0000000 --- a/src/crent370/pdf2/@p2nnull.c +++ /dev/null @@ -1,17 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_new_null'"); -PDFNULL *pdf_new_null(PDF *pdf) -{ - PDFNULL *pdfnull = calloc(1, sizeof(PDFNULL)); - - if (pdfnull) { - PDFOBJ *pdfobj = (PDFOBJ *)pdfnull; - - pdfobj->type = OBJNULL; - - arrayadd(&pdf->objects, pdfnull); - } - - return pdfnull; -} diff --git a/src/crent370/pdf2/@p2nnum.c b/src/crent370/pdf2/@p2nnum.c deleted file mode 100644 index d504386..0000000 --- a/src/crent370/pdf2/@p2nnum.c +++ /dev/null @@ -1,19 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_new_num'"); -PDFNUM *pdf_new_num(PDF *pdf, double value) -{ - PDFNUM *pdfnum = calloc(1, sizeof(PDFNUM)); - - if (pdfnum) { - PDFOBJ *pdfobj = (PDFOBJ *)pdfnum; - - pdfobj->type = OBJNUM; - - pdfnum->value = value; - - arrayadd(&pdf->objects, pdfnum); - } - - return pdfnum; -} diff --git a/src/crent370/pdf2/@p2nnump.c b/src/crent370/pdf2/@p2nnump.c deleted file mode 100644 index a0ed51d..0000000 --- a/src/crent370/pdf2/@p2nnump.c +++ /dev/null @@ -1,20 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_new_num_pair'"); -PDFNUMPAIR *pdf_new_num_pair(PDF *pdf, int value, void *obj) -{ - PDFNUMPAIR *pdfnumpair = calloc(1, sizeof(PDFNUMPAIR)); - - if (pdfnumpair) { - PDFOBJ *pdfobj = (PDFOBJ *)pdfnumpair; - - pdfobj->type = OBJNUMPAIR; - - pdfnumpair->value = value; - pdfnumpair->pdfobj = obj; - - arrayadd(&pdf->objects, pdfnumpair); - } - - return pdfnumpair; -} diff --git a/src/crent370/pdf2/@p2nnumt.c b/src/crent370/pdf2/@p2nnumt.c deleted file mode 100644 index f3e5ec1..0000000 --- a/src/crent370/pdf2/@p2nnumt.c +++ /dev/null @@ -1,19 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_new_num_tree'"); -PDFNUMTREE *pdf_new_num_tree(PDF *pdf) -{ - PDFNUMTREE *pdfnumtree = calloc(1, sizeof(PDFNUMTREE)); - - if (pdfnumtree) { - PDFOBJ *pdfobj = (PDFOBJ *)pdfnumtree; - - pdfobj->type = OBJNUMTREE; - pdfobj->index = ++pdf->current_index; - - arrayadd(&pdf->objects, pdfnumtree); - arrayadd(&pdf->offsets, (void*)0); - } - - return pdfnumtree; -} diff --git a/src/crent370/pdf2/@p2nout.c b/src/crent370/pdf2/@p2nout.c deleted file mode 100644 index f0e09de..0000000 --- a/src/crent370/pdf2/@p2nout.c +++ /dev/null @@ -1,20 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_new_outline'"); -PDFOUTLINE *pdf_new_outline(PDF *pdf) -{ - PDFOUTLINE *pdfoutline = calloc(1, sizeof(PDFOUTLINE)); - - if (pdfoutline) { - PDFOBJ *pdfobj = (PDFOBJ *)pdfoutline; - - pdfobj->type = OBJOUTLINE; - pdfobj->index = ++pdf->current_index; - - arrayadd(&pdf->objects, pdfoutline); - arrayadd(&pdf->offsets, (void*)0); - } - - return pdfoutline; -} diff --git a/src/crent370/pdf2/@p2nouts.c b/src/crent370/pdf2/@p2nouts.c deleted file mode 100644 index 9b0afd1..0000000 --- a/src/crent370/pdf2/@p2nouts.c +++ /dev/null @@ -1,26 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_new_outlines'"); -PDFOUTLINES *pdf_new_outlines(PDF *pdf) -{ - PDFOUTLINES *pdfoutlines = calloc(1, sizeof(PDFOUTLINES)); - - if (pdfoutlines) { - PDFOBJ *pdfobj = (PDFOBJ *)pdfoutlines; - - pdfobj->type = OBJOUTLINES; - pdfobj->index = ++pdf->current_index; - - pdf->outlines = pdfoutlines; - - arrayadd(&pdf->objects, pdfoutlines); - arrayadd(&pdf->offsets, (void*)0); - - if (pdf->catalog) { - pdf->catalog->outlines = pdfoutlines; - } - } - - return pdfoutlines; -} diff --git a/src/crent370/pdf2/@p2npag.c b/src/crent370/pdf2/@p2npag.c deleted file mode 100644 index 4f8ee12..0000000 --- a/src/crent370/pdf2/@p2npag.c +++ /dev/null @@ -1,40 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_new_page'"); -PDFPAGE *pdf_new_page(PDF *pdf, int width, int height) -{ - PDFPAGE *pdfpage = calloc(1, sizeof(PDFPAGE)); - PDFRECT *pdfrect = pdf_new_rect(pdf, 0, 0, width, height); - - if (pdfpage) { - PDFOBJ *pdfobj = (PDFOBJ *)pdfpage; - - pdfobj->type = OBJPAGE; - pdfobj->index = ++pdf->current_index; - arrayadd(&pdf->objects, pdfpage); - arrayadd(&pdf->offsets, (void*)0); - - pdfpage->medixbox = pdfrect; - - pdf->current_page = pdfpage; - pdf->paperw = width; /* points */ - pdf->paperh = height; /* points */ - if (width == 612 /* 8.5 in */ && height == 720 /* 11.0 in */) { - pdf->lpi = 6; - } - else { - pdf->lpi = 8; - } - pdf_boundaries(pdf); - - if (pdf->pages) { - PDFPAGES *pdfpages = (PDFPAGES*)pdf->pages; - - pdfpage->pages = pdfpages; /* this is the parent for this page */ - arrayadd(&pdfpages->pdfpage, pdfpage); /* we are one of our parents kids */ - } - } - - return pdfpage; -} diff --git a/src/crent370/pdf2/@p2npags.c b/src/crent370/pdf2/@p2npags.c deleted file mode 100644 index 0c2cdc2..0000000 --- a/src/crent370/pdf2/@p2npags.c +++ /dev/null @@ -1,22 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_new_pages'"); -PDFPAGES *pdf_new_pages(PDF *pdf) -{ - PDFPAGES *pdfpages = calloc(1, sizeof(PDFPAGES)); - - if (pdfpages) { - PDFOBJ *pdfobj = (PDFOBJ *)pdfpages; - - pdfobj->type = OBJPAGES; - pdfobj->index = ++pdf->current_index; - - pdf->pages = pdfpages; - - arrayadd(&pdf->objects, pdfpages); - arrayadd(&pdf->offsets, (void*)0); - } - - return pdfpages; -} diff --git a/src/crent370/pdf2/@p2npdf.c b/src/crent370/pdf2/@p2npdf.c deleted file mode 100644 index 52f38af..0000000 --- a/src/crent370/pdf2/@p2npdf.c +++ /dev/null @@ -1,25 +0,0 @@ -#include "../pdf2/pdfi.h" -extern unsigned char *ebc2asc; - -__asm__("\n&FUNC SETC 'pdf_new'"); -PDF *pdf_new(int (*out)(void *udata, int len, const char *data), int (*tell)(void *udata), void *udata) -{ - PDF *pdf = calloc(1, sizeof(PDF)); - - if (!pdf) goto quit; - - if (!out) { - out = pdf_out_default; - if (!udata) udata = stdout; - if (!tell) tell = (void*)ftell; - } - - strcpy(pdf->eye, PDF_EYE); - pdf->out = out; - pdf->udata = udata; - pdf->tell = tell; - pdf->ebc2asc = ebc2asc; - -quit: - return pdf; -} diff --git a/src/crent370/pdf2/@p2nrect.c b/src/crent370/pdf2/@p2nrect.c deleted file mode 100644 index 5de587d..0000000 --- a/src/crent370/pdf2/@p2nrect.c +++ /dev/null @@ -1,22 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_new_rect'"); -PDFRECT *pdf_new_rect(PDF *pdf, int bx, int by, int tx, int ty) -{ - PDFRECT *pdfrect = calloc(1, sizeof(PDFRECT)); - - if (pdfrect) { - PDFOBJ *pdfobj = (PDFOBJ *)pdfrect; - - pdfobj->type = OBJRECT; - - pdfrect->bx = bx; - pdfrect->by = by; - pdfrect->tx = tx; - pdfrect->ty = ty; - - arrayadd(&pdf->objects, pdfrect); - } - - return pdfrect; -} diff --git a/src/crent370/pdf2/@p2nres.c b/src/crent370/pdf2/@p2nres.c deleted file mode 100644 index 0d2465a..0000000 --- a/src/crent370/pdf2/@p2nres.c +++ /dev/null @@ -1,18 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_new_resource'"); -PDFRESOURCE *pdf_new_resource(PDF *pdf) -{ - PDFRESOURCE *pdfresource = calloc(1, sizeof(PDFRESOURCE)); - - if (pdfresource) { - PDFOBJ *pdfobj = (PDFOBJ *)pdfresource; - - pdfobj->type = OBJRESOURCE; - - arrayadd(&pdf->objects, pdfresource); - } - - return pdfresource; -} diff --git a/src/crent370/pdf2/@p2nsop.c b/src/crent370/pdf2/@p2nsop.c deleted file mode 100644 index 125e30d..0000000 --- a/src/crent370/pdf2/@p2nsop.c +++ /dev/null @@ -1,21 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_new_str_obj_pair'"); -PDFSTROBJPAIR *pdf_new_str_obj_pair(PDF *pdf, const char *str, void *obj) -{ - PDFSTROBJPAIR *pdfstrobjpair = calloc(1, sizeof(PDFSTROBJPAIR)); - - if (pdfstrobjpair) { - PDFOBJ *pdfobj = (PDFOBJ *)pdfstrobjpair; - - pdfobj->type = OBJSTROBJPAIR; - - if (str) pdfstrobjpair->str = strdup(str); - - if (obj) pdfstrobjpair->pdfobj = obj; - - arrayadd(&pdf->objects, pdfstrobjpair); - } - - return pdfstrobjpair; -} diff --git a/src/crent370/pdf2/@p2nstr.c b/src/crent370/pdf2/@p2nstr.c deleted file mode 100644 index d79091a..0000000 --- a/src/crent370/pdf2/@p2nstr.c +++ /dev/null @@ -1,20 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_new_str'"); -PDFSTR *pdf_new_str(PDF *pdf, const char *str) -{ - PDFSTR *pdfstr = calloc(1, sizeof(PDFSTR)); - - if (pdfstr) { - PDFOBJ *pdfobj = (PDFOBJ *)pdfstr; - - pdfobj->type = OBJSTR; - - if (str) pdfstr->str = strdup(str); - - arrayadd(&pdf->objects, pdfstr); - } - - return pdfstr; -} diff --git a/src/crent370/pdf2/@p2nstrf.c b/src/crent370/pdf2/@p2nstrf.c deleted file mode 100644 index 6a92966..0000000 --- a/src/crent370/pdf2/@p2nstrf.c +++ /dev/null @@ -1,16 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_new_strf'"); -PDFSTR *pdf_new_strf(PDF *pdf, const char *fmt, ...) -{ - char buf[1024]; - va_list list; - - va_start(list, fmt); - vsnprintf(buf, sizeof(buf)-1, fmt, list); - va_end(list); - - buf[sizeof(buf)-1] = 0; - return pdf_new_str(pdf, buf); -} diff --git a/src/crent370/pdf2/@p2nstrm.c b/src/crent370/pdf2/@p2nstrm.c deleted file mode 100644 index 10612f6..0000000 --- a/src/crent370/pdf2/@p2nstrm.c +++ /dev/null @@ -1,18 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_new_stream'"); -PDFSTREAM *pdf_new_stream(PDF *pdf) -{ - PDFSTREAM *pdfstream = calloc(1, sizeof(PDFSTREAM)); - - if (pdfstream) { - PDFOBJ *pdfobj = (PDFOBJ *)pdfstream; - - pdfobj->type = OBJSTREAM; - pdfobj->index = ++pdf->current_index; - - arrayadd(&pdf->objects, pdfstream); - } - - return pdfstream; -} diff --git a/src/crent370/pdf2/@p2nvprf.c b/src/crent370/pdf2/@p2nvprf.c deleted file mode 100644 index bb4ae3b..0000000 --- a/src/crent370/pdf2/@p2nvprf.c +++ /dev/null @@ -1,24 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_new_viewpref'"); -PDFVIEWPREF *pdf_new_viewpref(PDF *pdf) -{ - PDFVIEWPREF *pdfviewpref = calloc(1, sizeof(PDFVIEWPREF)); - - if (pdfviewpref) { - PDFOBJ *pdfobj = (PDFOBJ *)pdfviewpref; - - pdfobj->type = OBJVIEWPREF; - pdfobj->index = ++pdf->current_index; - - arrayadd(&pdf->objects, pdfviewpref); - arrayadd(&pdf->offsets, (void*)0); - - if (pdf->catalog) { - pdf->catalog->viewpref = pdfviewpref; - } - } - - return pdfviewpref; -} diff --git a/src/crent370/pdf2/@p2odef.c b/src/crent370/pdf2/@p2odef.c deleted file mode 100644 index 3444323..0000000 --- a/src/crent370/pdf2/@p2odef.c +++ /dev/null @@ -1,24 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_out_default'"); -int pdf_out_default(void *udata, int len, const char *data) -{ - FILE *fp = (FILE*)udata; - int rc; - - if (!len) return 0; /* nothing to output, always success */ - - if (!(fp->flags & _FILE_FLAG_WRITE)) { - wtof("pdf_out_default() file not opened for output"); - return -1; - } - - if (!(fp->flags & _FILE_FLAG_BINARY)) { - wtof("pdf_out_default() file not opened in binary mode"); - return -1; - } - - rc = fwrite(data, 1, len, fp); - - return (len - rc); /* should be zero for success */ -} diff --git a/src/crent370/pdf2/@p2onul.c b/src/crent370/pdf2/@p2onul.c deleted file mode 100644 index 131e073..0000000 --- a/src/crent370/pdf2/@p2onul.c +++ /dev/null @@ -1,7 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_out_null'"); -int pdf_out_null(void *udata, int len, const char *data) -{ - return 0; -} diff --git a/src/crent370/pdf2/@p2out.c b/src/crent370/pdf2/@p2out.c deleted file mode 100644 index c8010c4..0000000 --- a/src/crent370/pdf2/@p2out.c +++ /dev/null @@ -1,21 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_out'"); -int pdf_out(PDF *pdf, int len, const char *data) -{ - int rc; - - if (pdf->flags & PDF_FLAG_NO_OUTPUT) { - return 0; - } - - if (pdf->out) { - rc = pdf->out(pdf->udata, len, data); - if (rc) { - wtof("pdf_out() rc=%d, output disabled"); - pdf->flags |= PDF_FLAG_NO_OUTPUT; - } - } - - return -1; -} diff --git a/src/crent370/pdf2/@p2pccmp.c b/src/crent370/pdf2/@p2pccmp.c deleted file mode 100644 index 068ba97..0000000 --- a/src/crent370/pdf2/@p2pccmp.c +++ /dev/null @@ -1,15 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_case_cmp'"); -int pdf_case_cmp(const char *p1, const char *p2) -{ - int rc; - - for(rc=0; rc == 0; p1++, p2++) { - rc = tolower(*p1) - tolower(*p2); - if (*p1==0) break; - } - - return rc; -} diff --git a/src/crent370/pdf2/@p2pfcol.c b/src/crent370/pdf2/@p2pfcol.c deleted file mode 100644 index affaa1a..0000000 --- a/src/crent370/pdf2/@p2pfcol.c +++ /dev/null @@ -1,22 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_find_color'"); -PDFCOLOR *pdf_find_color(PDFCOLOR **pdfcolors, const char *name) -{ - unsigned n, count = arraycount(&pdfcolors); - - for(n=0; n < count; n++) { - PDFCOLOR *pdfcolor = pdfcolors[n]; - - if (!pdfcolor) continue; - if (pdfcolor->name) { - if (pdf_case_cmp(name, pdfcolor->name)==0) return pdfcolor; - } - if (pdfcolor->abbrev) { - if (pdf_case_cmp(name, pdfcolor->abbrev)==0) return pdfcolor; - } - } - - return NULL; -} diff --git a/src/crent370/pdf2/@p2sdpag.c b/src/crent370/pdf2/@p2sdpag.c deleted file mode 100644 index 048e623..0000000 --- a/src/crent370/pdf2/@p2sdpag.c +++ /dev/null @@ -1,14 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_set_default_page'"); -int pdf_set_default_page(PDF *pdf, int width, int height) -{ - int rc; - - pdf->width = width; - pdf->height = height; - - return 0; -} - - diff --git a/src/crent370/pdf2/@p2sout.c b/src/crent370/pdf2/@p2sout.c deleted file mode 100644 index b7f0624..0000000 --- a/src/crent370/pdf2/@p2sout.c +++ /dev/null @@ -1,20 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_set_out'"); -int pdf_set_out(PDF *pdf, int (*out)(void *udata, int len, const char *data)) -{ - int rc; - - pdf->out = out; - - if (pdf->out) { - /* remove PDF_FLAG_NO_OUTPUT (enable output again) */ - pdf->flags &= ~PDF_FLAG_NO_OUTPUT; - } - else { - /* disable output */ - pdf->flags != PDF_FLAG_NO_OUTPUT; - } - - return 0; -} diff --git a/src/crent370/pdf2/@p2stell.c b/src/crent370/pdf2/@p2stell.c deleted file mode 100644 index 8a6ed87..0000000 --- a/src/crent370/pdf2/@p2stell.c +++ /dev/null @@ -1,12 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_set_tell'"); -int pdf_set_tell(PDF *pdf, int (*tell)(void *udata)) -{ - int rc; - - pdf->tell = tell; - - return 0; -} - diff --git a/src/crent370/pdf2/@p2str.c b/src/crent370/pdf2/@p2str.c deleted file mode 100644 index aef7601..0000000 --- a/src/crent370/pdf2/@p2str.c +++ /dev/null @@ -1,22 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_string'"); -char *pdf_string(PDF *pdf, const char *str) -{ - char *p = NULL; - char buf[2048]; - - if (str) { - int len = strlen(pdf_escape(str, buf)); - p = calloc(1, len + 3); - if (p) { - p[0] = '('; - memcpy(&p[1],buf,len); - p[len+1] = ')'; - p[len+2] = 0; - } - } - - return p; -} diff --git a/src/crent370/pdf2/@p2strf.c b/src/crent370/pdf2/@p2strf.c deleted file mode 100644 index 3237a57..0000000 --- a/src/crent370/pdf2/@p2strf.c +++ /dev/null @@ -1,16 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_stringf'"); -char *pdf_stringf(PDF *pdf, const char *fmt, ...) -{ - char buf[1024]; - va_list list; - - va_start(list, fmt); - vsnprintf(buf, sizeof(buf)-1, fmt, list); - va_end(list); - - buf[sizeof(buf)-1] = 0; - return pdf_string(pdf, buf); -} diff --git a/src/crent370/pdf2/@p2sudat.c b/src/crent370/pdf2/@p2sudat.c deleted file mode 100644 index d649ae2..0000000 --- a/src/crent370/pdf2/@p2sudat.c +++ /dev/null @@ -1,12 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_set_user_data'"); -int pdf_set_user_data(PDF *pdf, void *udata) -{ - int rc; - - pdf->udata = udata; - - return 0; -} - diff --git a/src/crent370/pdf2/@p2tdef.c b/src/crent370/pdf2/@p2tdef.c deleted file mode 100644 index 0517639..0000000 --- a/src/crent370/pdf2/@p2tdef.c +++ /dev/null @@ -1,12 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_tell_default'"); -int pdf_tell_default(void *udata) -{ - FILE *fp = (FILE*)udata; - int rc; - - rc = ftell(fp); - - return rc; -} diff --git a/src/crent370/pdf2/@p2tell.c b/src/crent370/pdf2/@p2tell.c deleted file mode 100644 index 3ecac9d..0000000 --- a/src/crent370/pdf2/@p2tell.c +++ /dev/null @@ -1,17 +0,0 @@ -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_tell'"); -int pdf_tell(PDF *pdf) -{ - int rc = 0; - - if (pdf->flags & PDF_FLAG_NO_OUTPUT) { - return 0; - } - - if (pdf->tell) { - rc = pdf->tell(pdf->udata); - } - - return rc; -} diff --git a/src/crent370/pdf2/@p2trans.c b/src/crent370/pdf2/@p2trans.c deleted file mode 100644 index 44bdaa2..0000000 --- a/src/crent370/pdf2/@p2trans.c +++ /dev/null @@ -1,23 +0,0 @@ -#define PDF_PRIVATE -#include "../pdf2/pdfi.h" - -__asm__("\n&FUNC SETC 'pdf_translate'"); -unsigned char *pdf_translate(unsigned char *str, const unsigned char *tab) -{ - unsigned char *p = str; - - if (tab) { - while(*p) { - *p = tab[*p]; - p++; - } - } - else { - while(*p) { - *p = toupper(*p); - p++; - } - } - - return str; -} diff --git a/src/crent370/pdf2/pdf.h b/src/crent370/pdf2/pdf.h deleted file mode 100644 index 77fb8b4..0000000 --- a/src/crent370/pdf2/pdf.h +++ /dev/null @@ -1,302 +0,0 @@ -#ifndef PDF_H -#define PDF_H - -/* typedefs for our PDF routines */ -typedef struct pdf PDF; -typedef struct pdfobj PDFOBJ; -typedef struct pdfcat PDFCAT; -typedef struct pdfpage PDFPAGE; -typedef struct pdfpages PDFPAGES; -typedef struct pdfnull PDFNULL; -typedef struct pdfarray PDFARRAY; -typedef struct pdfbool PDFBOOL; -typedef struct pdfdate PDFDATE; -typedef struct pdffile PDFFILE; -typedef struct pdfint PDFINT; -typedef struct pdfname PDFNAME; -typedef struct pdfstrobjpair PDFSTROBJPAIR; -typedef struct pdfnameobjpair PDFNAMEOBJPAIR; -typedef struct pdfnametree PDFNAMETREE; -typedef struct pdfnum PDFNUM; -typedef struct pdfnumpair PDFNUMPAIR; -typedef struct pdfnumtree PDFNUMTREE; -typedef struct pdfrect PDFRECT; -typedef struct pdfstream PDFSTREAM; -typedef struct pdfstream PDFXOBJ; -typedef struct pdfstr PDFSTR; -typedef struct pdfviewpref PDFVIEWPREF; -typedef struct pdfoutlines PDFOUTLINES; -typedef struct pdfoutline PDFOUTLINE; -typedef struct pdfdest PDFDEST; -typedef struct pdffont PDFFONT; -typedef struct pdfresource PDFRESOURCE; -typedef struct pdfcolor PDFCOLOR; -typedef struct pdfinfo PDFINFO; -typedef struct pdfimage PDFIMAGE; - -/** - * Convert a value in inches into a number of points. - * Always returns an integer value - */ -#define PDF_INCH_TO_POINT(inch) ((int)((inch)*72 + 0.5)) - -#define PDF_POINT_TO_INCH(point) ((double)((point)/72.0)) - -/** - * Convert a value in milli-meters into a number of points. - * Always returns an integer value - */ -#define PDF_MM_TO_POINT(mm) ((int)((mm)*72 / 25.4 + 0.5)) - -/** - * Point width of a standard US-Letter page - */ -#define PDF_LETTER_WIDTH PDF_INCH_TO_POINT(8.5) - -/** - * Point height of a standard US-Letter page - */ -#define PDF_LETTER_HEIGHT PDF_INCH_TO_POINT(11) - -/** - * Point width of a standard A4 page - */ -#define PDF_A4_WIDTH PDF_MM_TO_POINT(210) - -/** - * Point height of a standard A4 page - */ -#define PDF_A4_HEIGHT PDF_MM_TO_POINT(297) - -/** - * Point width of a standard A3 page - */ -#define PDF_A3_WIDTH PDF_MM_TO_POINT(297) - -/** - * Point height of a standard A3 page - */ -#define PDF_A3_HEIGHT PDF_MM_TO_POINT(420) - -/** - * Convert three 8-bit RGB values into a single packed 32-bit - * colour. These 32-bit colours are used by various functions - * in PDFGen - */ -#define PDF_RGB(r, g, b) \ - ((((r)&0xff) << 16) | (((g)&0xff) << 8) | (((b)&0xff))) - -/** - * Utility macro to provide bright red - */ -#define PDF_RED PDF_RGB(0xff, 0, 0) - -/** - * Utility macro to provide bright green - */ -#define PDF_GREEN PDF_RGB(0, 0xff, 0) - -/** - * Utility macro to provide bright blue - */ -#define PDF_BLUE PDF_RGB(0, 0, 0xff) - -/** - * Utility macro to provide black - */ -#define PDF_BLACK PDF_RGB(0, 0, 0) - -/** - * Utility macro to provide white - */ -#define PDF_WHITE PDF_RGB(0xff, 0xff, 0xff) - -/** - * Utility macro to provide a transparent colour - * This is used in some places for 'fill' colours, where no fill is required - */ -#define PDF_TRANSPARENT (0xff << 24) - - -#ifndef __MVS__ -#define __MVS__ -#endif - -#ifdef __MVS__ -#define SECT(name) asm(name) -#else -#define SECT(name) -#endif - -PDF *pdf_new(int(*out)(void *udata, int len, const char *data), int (*tell)(void *udata), void *udata) SECT("@P2NPDF"); -void pdf_free(PDF **pp) SECT("@P2FPDF"); - -/* output functions */ -int pdf_out_default(void *udata, int len, const char *data) SECT("@P2ODEF"); -int pdf_out_null(void *udata, int len, const char *data) SECT("@P2ONUL"); -int pdf_tell_default(void *udata) SECT("@P2TDEF"); - -/* set functions */ -int pdf_set_out(PDF *pdf, int (*out)(void *udata, int len, const char *data)) SECT("@P2SOUT"); -int pdf_set_user_data(PDF *pdf, void *udata) SECT("@P2SUDAT"); -int pdf_set_tell(PDF *pdf, int (*tell)(void *udata)) SECT("@P2STELL"); -int pdf_set_default_page(PDF *pdf, int width, int height) SECT("@P2SDPAG"); - -/* object creation */ -PDFNULL *pdf_new_null(PDF *pdf) SECT("@P2NNULL"); -PDFARRAY *pdf_new_array(PDF *pdf) SECT("@P2NARRA"); -PDFARRAY *pdf_add_array(PDF *pdf, PDFARRAY *pdfarray, void *pdfobj) SECT("@P2AARRA"); -PDFBOOL *pdf_new_bool(PDF *pdf, int value) SECT("@P2NBOOL"); -PDFDATE *pdf_new_date(PDF *pdf, const struct tm *time) SECT("@P2NDATE"); -PDFFILE *pdf_new_file(PDF *pdf, const char *file) SECT("@P2NFILE"); -PDFINT *pdf_new_int(PDF *pdf, int value) SECT("@P2NINT"); -PDFNAME *pdf_new_name(PDF *pdf, const char *name) SECT("@P2NNAME"); -PDFSTROBJPAIR *pdf_new_str_obj_pair(PDF *pdf, const char *str, void *obj) SECT("@P2NSOP"); -PDFNAMEOBJPAIR *pdf_new_name_obj_pair(PDF *pdf, const char *name, void *obj) SECT("@P2NNOP"); -PDFNAMETREE *pdf_new_name_tree(PDF *pdf) SECT("@P2NNAT"); -PDFNAMETREE *pdf_add_name_tree_limits(PDF *pdf, PDFNAMETREE *pdfnametree, const char *namelow, const char *namehigh) SECT("@P2ANTL"); -PDFNAMETREE *pdf_add_name_tree_kids(PDF *pdf, PDFNAMETREE *pdfnametree, void *obj) SECT("@P2ANTK"); -PDFNAMETREE *pdf_add_name_tree_pair(PDF *pdf, PDFNAMETREE *pdfnametree, PDFSTROBJPAIR *strobjpair) SECT("@P2ANTP"); -PDFNAMETREE *pdf_add_name_tree_names(PDF *pdf, PDFNAMETREE *pdfnametree, const char *name, void *obj) SECT("@P2ANTN"); -PDFNUM *pdf_new_num(PDF *pdf, double value) SECT("@P2NNUM"); -PDFNUMPAIR *pdf_new_num_pair(PDF *pdf, int value, void *pdfobj) SECT("@P2NNUMP"); -PDFNUMTREE *pdf_new_num_tree(PDF *pdf) SECT("@P2NNUMT"); -PDFNUMTREE *pdf_add_num_tree_limits(PDF *pdf, PDFNUMTREE *pdfnumtree, int low, int high) SECT("@P2ANUTL"); -PDFNUMTREE *pdf_add_num_tree_kids(PDF *pdf, PDFNUMTREE *pdfnumtree, void *obj) SECT("@P2ANUTK"); -PDFNUMTREE *pdf_add_num_tree_pair(PDF *pdf, PDFNUMTREE *pdfnumtree, PDFNUMPAIR *pdfnumpair) SECT("@P2ANUTP"); -PDFNUMTREE *pdf_add_num_tree_nums(PDF *pdf, PDFNUMTREE *pdfnumtree, int value, void *obj) SECT("@P2ANUTN"); -PDFRECT *pdf_new_rect(PDF *pdf, int bx, int by, int tx, int ty) SECT("@P2NRECT"); - -/* stream */ -PDFSTREAM *pdf_new_stream(PDF *pdf) SECT("@P2NSTRM"); -PDFSTREAM *pdf_add_stream(PDF *pdf, PDFSTREAM *pdfstream, int len, const char *stream) SECT("@P2AS"); -PDFSTREAM *pdf_add_streamf(PDF *pdf, PDFSTREAM *pdfstream, const char *fmt, ...) SECT("@P2ASF"); -PDFSTREAM *pdf_add_stream_text_stroke(PDF *pdf, PDFSTREAM *pdfstream, const char *text, const char *stroke) SECT("@P2ASTS"); -PDFSTREAM *pdf_add_stream_stroke_textf(PDF *pdf, PDFSTREAM *pdfstream, const char *stroke, const char *fmt, ... ) SECT("@P2ASSTF"); -PDFSTREAM *pdf_add_stream_text(PDF *pdf, PDFSTREAM *pdfstream, const char *text) SECT("@P2AST"); -PDFSTREAM *pdf_add_stream_textf(PDF *pdf, PDFSTREAM *pdfstream, const char *fmt, ... ) SECT("@P2ASTF"); -PDFSTREAM *pdf_add_stream_key_val(PDF *pdf, PDFSTREAM *pdfstream, const char *key_val) SECT("@P2ASKV"); -PDFSTREAM *pdf_add_stream_key_valf(PDF *pdf, PDFSTREAM *pdfstream, const char *fmt, ...) SECT("@P2ASKVF"); -PDFSTREAM *pdf_add_stream_filter(PDF *pdf, PDFSTREAM *pdfstream, void *obj) SECT("@P2ASFLT"); -PDFSTREAM *pdf_add_stream_decode(PDF *pdf, PDFSTREAM *pdfstream, void *obj) SECT("@P2ASDEC"); -PDFSTREAM *pdf_add_stream_file(PDF *pdf, PDFSTREAM *pdfstream, void *obj) SECT("@P2ASFIL"); -PDFSTREAM *pdf_add_stream_ffilter(PDF *pdf, PDFSTREAM *pdfstream, void *obj) SECT("@P2ASFFI"); -PDFSTREAM *pdf_add_stream_fdecode(PDF *pdf, PDFSTREAM *pdfstream, void *obj) SECT("@P2ASFDE"); -PDFSTREAM *pdf_add_stream_begin_text(PDF *pdf, PDFSTREAM *pdfstream) SECT("@P2ASBT"); -PDFSTREAM *pdf_add_stream_end_text(PDF *pdf, PDFSTREAM *pdfstream) SECT("@P2ASET"); -PDFSTREAM *pdf_add_stream_stroking_color(PDF *pdf, PDFSTREAM *pdfstream, const char *color) SECT("@P2ASSC"); -PDFSTREAM *pdf_add_stream_non_stroking_color(PDF *pdf, PDFSTREAM *pdfstream, const char *color) SECT("@P2ASNSC"); -PDFSTREAM *pdf_add_stream_text_matrix(PDF *pdf, PDFSTREAM *pdfstream, unsigned leftmargin, unsigned topmargin) SECT("@P2ASTMX"); -PDFSTREAM *pdf_add_stream_text_leading(PDF *pdf, PDFSTREAM *pdfstream, unsigned leading) SECT("@P2ASTLE"); -PDFSTREAM *pdf_add_stream_select_font(PDF *pdf, PDFSTREAM *pdfstream, const char *name, unsigned points) SECT("@P2ASSFO"); -PDFSTREAM *pdf_add_stream_render_mode(PDF *pdf, PDFSTREAM *pdfstream, unsigned mode) SECT("@P2ASRM"); -PDFSTREAM *pdf_add_stream_move_to(PDF *pdf, PDFSTREAM *pdfstream, unsigned x, unsigned y) SECT("@P2ASMT"); -PDFSTREAM *pdf_add_stream_line_to(PDF *pdf, PDFSTREAM *pdfstream, unsigned x, unsigned y) SECT("@P2ASLT"); - -/* string */ -PDFSTR *pdf_new_str(PDF *pdf, const char *str) SECT("@P2NSTR"); -PDFSTR *pdf_new_strf(PDF *pdf, const char *fmt, ...) SECT("@P2NSTRF"); -char *pdf_string(PDF *pdf, const char *str) SECT("@P2STR"); -char *pdf_stringf(PDF *pdf, const char *fmt, ...) SECT("@P2STRF"); -char *pdf_date_string(PDF *pdf, const time_t *time) SECT("@P2DSTR"); - -/* page */ -PDFPAGE *pdf_new_page(PDF *pdf, int width, int height) SECT("@P2NPAG"); -void pdf_boundaries(PDF *pdf) SECT("@P2BNDS"); -void pdf_boundaries_page(PDF *pdf) SECT("@P2BNDP"); -void pdf_boundaries_crop(PDF *pdf) SECT("@P2BNDC"); -void pdf_boundaries_text(PDF *pdf) SECT("@P2BNDT"); -void pdf_boundaries_leading(PDF *pdf) SECT("@P2BNDL"); -void pdf_boundaries_lpp(PDF *pdf) SECT("@P2BNDLP"); -PDFPAGE *pdf_add_page_contents(PDF *pdf, PDFPAGE *pdfpage, void *obj) SECT("@P2APCNT"); -PDFPAGE *pdf_add_page_annots(PDF *pdf, PDFPAGE *pdfpage, void *obj) SECT("@P2APANN"); - -/* pages */ -PDFPAGES *pdf_new_pages(PDF *pdf) SECT("@P2NPAGS"); -PDFPAGES *pdf_add_pages_page(PDF *pdf, PDFPAGES *pdfpages, PDFPAGE *pdfpage) SECT("@P2APGSP"); - -/* view preferences */ -PDFVIEWPREF *pdf_new_viewpref(PDF *pdf) SECT("@P2NVPRF"); -PDFVIEWPREF *pdf_add_viewpref_non_full_screen_page_mode(PDF *pdf, PDFVIEWPREF *pdfviewpref, const char *mode) SECT("@P2AVNFS"); -PDFVIEWPREF *pdf_add_viewpref_direction(PDF *pdf, PDFVIEWPREF *pdfviewpref, const char *mode) SECT("@P2AVPRD"); - -/* outlines */ -PDFOUTLINES *pdf_new_outlines(PDF *pdf) SECT("@P2NOUTS"); - -/* outline */ -PDFOUTLINE *pdf_new_outline(PDF *pdf) SECT("@P2NOUT"); - -/* dest */ -PDFDEST *pdf_new_dest(PDF *pdf, PDFPAGE *pdfpage, int left, int top) SECT("@P2NDEST"); - -/* catalog */ -PDFCAT *pdf_new_cat(PDF *pdf) SECT("@P2NCAT"); -PDFCAT *pdf_add_cat_page_layout(PDF *pdf, PDFCAT *pdfcat, const char *layout) SECT("@P2ACPL"); -PDFCAT *pdf_add_cat_page_mode(PDF *pdf, PDFCAT *pdfcat, const char *mode) SECT("@P2ACPM"); - -/* font */ -PDFFONT *pdf_new_font(PDF *pdf, const char *subtype, const char *basefont, const char *encoding, const char *alias, const char *abbrev) SECT("@P2NFONT"); -PDFFONT *pdf_find_font(PDF *pdf, const char *name) SECT("@P2FFONT"); - -/* resource */ -PDFRESOURCE *pdf_new_resource(PDF *pdf) SECT("@P2NRES"); -PDFRESOURCE *pdf_add_resource_proc_set(PDF *pdf, PDFRESOURCE *pdfresource, const char *name) SECT("@P2ARPS"); -PDFRESOURCE *pdf_add_resource_name_font(PDF *pdf, PDFRESOURCE *pdfresource, const char *name, PDFFONT *pdffont) SECT("@P2ARNF"); -PDFRESOURCE *pdf_add_resource_name_xobj(PDF *pdf, PDFRESOURCE *pdfresource, const char *name, void *xobj) SECT("@P2ARNX"); - - -/* colors */ -PDFCOLOR *pdf_new_color(PDF *pdf, const char *name, const char *abbrev, unsigned rgb) SECT("@P2NCOL"); -const char *pdf_color_spec(PDFCOLOR **pdfcolors, const char *name, char *buf) SECT("@P2CSPEC"); -const char *pdf_color_spec_array(PDFCOLOR **pdfcolors, const char *name, char *buf) SECT("@P2CSPCA"); -PDFCOLOR *pdf_find_color(PDFCOLOR **pdfcolors, const char *name) SECT("@P2PFCOL"); - -/* utility functions */ -unsigned char *pdf_translate(unsigned char *str, const unsigned char *tab) SECT("@P2TRANS"); -char *pdf_escape(const char *in, char *out) SECT("@P2ESCAP"); -int pdf_case_cmp(const char *p1, const char *p2) SECT("@P2PCCMP"); - -/* background */ -PDFSTREAM *pdf_new_background(PDF *pdf) SECT("@P2NBACK"); -PDFSTREAM *pdf_add_stream_color(PDF *pdf, PDFSTREAM *pdfstream, const char *color) SECT("@P2ASCLR"); -PDFSTREAM *pdf_add_stream_bar(PDF *pdf, PDFSTREAM *pdfstream, unsigned width, const char *color) SECT("@P2ASBAR"); -PDFSTREAM *pdf_add_stream_file_include(PDF *pdf, PDFSTREAM *pdfstream, const char *file) SECT("@P2ASFI"); - -typedef enum pdf_watermark_style PDF_WATERMARK_STYLE; -enum pdf_watermark_style { - PDF_WATERMARK_BOTTOMUP = 0, - PDF_WATERMARK_TOPDOWN, - PDF_WATERMARK_TDBOXED, - PDF_WATERMARK_BUBOXED -}; -PDFSTREAM *pdf_add_stream_text_mark(PDF *pdf, PDFSTREAM *pdfstream, PDF_WATERMARK_STYLE style, const char *strokecolor, - const char *fillcolor, unsigned fontsize, const char *font, const char *text) SECT("@P2ASTM"); - -/* graphics */ -PDFSTREAM *pdf_graphic_save(PDF *pdf, PDFSTREAM *pdfstream) SECT("@P2GSAVE"); -PDFSTREAM *pdf_graphic_restore(PDF *pdf, PDFSTREAM *pdfstream) SECT("@P2GREST"); -PDFSTREAM *pdf_graphic_stroke_color(PDF *pdf, PDFSTREAM *pdfstream, const char *color) SECT("@P2GSCOL"); -PDFSTREAM *pdf_graphic_fill_color(PDF *pdf, PDFSTREAM *pdfstream, const char *color) SECT("@P2GFCOL"); -PDFSTREAM *pdf_graphic_move_to(PDF *pdf, PDFSTREAM *pdfstream, unsigned x, unsigned y) SECT("@P2GMVTO"); -PDFSTREAM *pdf_graphic_line_to(PDF *pdf, PDFSTREAM *pdfstream, unsigned x, unsigned y) SECT("@P2GLNTO"); -PDFSTREAM *pdf_graphic_dash_line(PDF *pdf, PDFSTREAM *pdfstream, unsigned on, unsigned off, unsigned phase) SECT("@P2GDL"); -PDFSTREAM *pdf_graphic_solid_line(PDF *pdf, PDFSTREAM *pdfstream) SECT("@P2GSL"); -PDFSTREAM *pdf_graphic_stroke(PDF *pdf, PDFSTREAM *pdfstream) SECT("@P2GSTRO"); -PDFSTREAM *pdf_graphic_close_path(PDF *pdf, PDFSTREAM *pdfstream) SECT("@P2GCPTH"); -PDFSTREAM *pdf_graphic_line_width(PDF *pdf, PDFSTREAM *pdfstream, unsigned width) SECT("@P2GLINW"); -PDFSTREAM *pdf_graphic_circle(PDF *pdf, PDFSTREAM *pdfstream, unsigned x, unsigned y, unsigned r, const char *stroke) SECT("@P2GCIRC"); - -/* bookmarks */ -PDFOUTLINE *pdf_new_bookmark(PDF *pdf, PDFOUTLINE *parent, const char *title, const char *color, PDFPAGE *pdfpage, unsigned x, unsigned y) SECT("@P2NBKMK"); -PDFOUTLINE *pdf_new_bookmark_page(PDF *pdf, PDFOUTLINE *parent, const char *title, const char *color, PDFPAGE *pdfpage) SECT("@P2NBKMP"); -PDFOUTLINE *pdf_new_bookmark_dest(PDF *pdf, PDFOUTLINE *parent, const char *title, const char *color, PDFDEST *pdfdest) SECT("@P2NBKMD"); - -/* document info */ -PDFINFO *pdf_new_info(PDF *pdf, const char *title, const char *subject, const char *author, const char *keywords, - const char *creator, const char *producer, const time_t *created) SECT("@P2NINFO"); - -/* image */ -PDFIMAGE *pdf_new_image(PDF *pdf, unsigned width, unsigned height, const char *colorspace, unsigned bitspercomponent) SECT("@P2NIMG"); -PDFIMAGE *pdf_add_image(PDF *pdf, PDFIMAGE *pdfimage, const unsigned char *data, int len) SECT("@P2AIMG"); - -#endif /* PDF_H */ diff --git a/src/crent370/pdf2/pdfi.h b/src/crent370/pdf2/pdfi.h deleted file mode 100644 index 0a864f2..0000000 --- a/src/crent370/pdf2/pdfi.h +++ /dev/null @@ -1,415 +0,0 @@ -#ifndef PDFI_H -#define PDFI_H - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include /* dynamic array */ -#include /* has struct timeval, go figure! */ -#include /* new printf function (end with _ character) like printf_() */ -#include "../pdf2/pdf.h" - -/* we're testing new printf functions */ -#define printf printf_ -#define sprintf sprintf_ -#define snprintf snprintf_ -#define vsprintf vsprintf_ -#define vsnprintf vsnprintf_ - -#define PDF_ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0])) - -#define PDF_RGB_R(c) ((((c) >> 16) & 0xff) / 255.0) -#define PDF_RGB_G(c) ((((c) >> 8) & 0xff) / 255.0) -#define PDF_RGB_B(c) ((((c) >> 0) & 0xff) / 255.0) -#define PDF_IS_TRANSPARENT(c) (((c) >> 24) == 0xff) - -#ifndef M_SQRT2 -#define M_SQRT2 1.41421356237309504880f -#endif - -typedef enum objtype OBJTYPE; /* identifies object type */ - -/* internal functions */ -int pdf_out(PDF *pdf, int len, const char *data) SECT("@P2OUT"); -int pdf_tell(PDF *pdf) SECT("@P2TELL"); - -struct pdf { - /* */ - char eye[4]; /* 00 eye catcher for dumps */ -#define PDF_EYE "PDF*" /* ... */ - const char *ebc2asc; /* 04 EBCDIC to ASCII translation table */ - int holesize; /* 08 size of holes in paper */ - int lpi; /* 0C lines per inch */ - - int (*out)(void *udata, int len, const char *data); - /* 10 PDF written via the out function pointer */ - void *udata; /* 14 user data for the out and tell functions */ - int (*tell)(void *udata); - /* 18 return output position (like ftell()) */ - unsigned unused2; /* 1C unused */ - - unsigned char flags; /* 20 processing flags */ -#define PDF_FLAG_NO_OUTPUT 0x80 /* ... disable all further output */ - - unsigned char options; /* 21 processing options */ -#define PDF_OPTION_COMPRESS 0x80 /* ... compression requested */ -#define PDF_OPTION_DEBUG 0x40 /* ... debug output enabled */ -#define PDF_OPTION_HAS_HOLES 0x20 /* ... page has holes */ - - signed char gmthours; /* 22 local offset from GMT hours (-23 to +23) */ - unsigned char gmtmins; /* 23 local offset from GMT minutes (0 to 59) */ - - PDFOBJ **objects; /* 24 array of objects */ - int *offsets; /* 28 array of object offsets in PDF file */ - PDFCOLOR **colors; /* 2C array of color objects */ - - PDFCAT *catalog; /* 30 catalog object */ - PDFPAGES *pages; /* 34 pages object */ - PDFOUTLINES *outlines; /* 38 outlines (bookmark) object */ - unsigned unused5; /* 3C unused */ - - PDFPAGE *current_page; /* 40 current page object */ - int lpp; /* 44 lines per page */ - int leading; /* 48 sets line spacing on page */ - unsigned unused6; /* 4C unused */ - - int width; /* 50 this is the default page width in points */ - int height; /* 54 this is the default page height in points */ - int current_font; /* 58 current font object number */ - int current_index; /* 5C next object index */ - - PDFFONT **pdffonts; /* 60 array of defined fonts */ - PDFINFO *pdfinfo; /* 64 information object */ - unsigned unused7[2]; /* 68 unused */ - - /* The following are used to set the boundaries of a page */ - int lmargin; /* 70 left margin in points */ - int rmargin; /* 74 right margin in points */ - int tmargin; /* 78 top margin in points */ - int bmargin; /* 7C bottom margin in points */ - - /* The following are set for each new page */ - int paperw; /* 80 paper width in points */ - int paperh; /* 84 paper height in points */ - int pagel; /* 88 page left margin */ - int pager; /* 8C page right margin */ - int paget; /* 90 page top margin */ - int pageb; /* 94 page bottom margin */ - int pagew; /* 98 page width */ - int pageh; /* 9C page height */ - - int cropl; /* A0 crop left margin */ - int cropr; /* A4 crop right margin */ - int cropt; /* A8 crop top margin */ - int cropb; /* AC crop bottom margin */ - int cropw; /* B0 crop width */ - int croph; /* B4 crop Height */ - - int textl; /* B8 text left margin */ - int textr; /* BC text right margin */ - int textt; /* C0 text top margin */ - int textb; /* C4 text bottom margin */ - int textw; /* C8 text width */ - int texth; /* CC text height */ -}; - -/* every PDF object has a type code value */ -enum pdftype { - OBJNULL = 0, /* Object is a null object */ - OBJARRAY, /* Object is a [array] */ - OBJBOOL, /* Object is a boolean value */ - OBJDATE, /* Object is a date (string) */ - OBJDEST, /* Object is a dest [page /XYZ left top null] */ - OBJFILE, /* Object is a file specification (string or dictionary)*/ - OBJIMAGE, /* Object is an Image (XObject stream) */ - OBJINFO, /* Object is a information dictionary */ - OBJINT, /* Object is an integer */ - OBJNAME, /* Object is a /name */ - OBJNAMETREE, /* Object is a name tree (dictionary) */ - OBJNUM, /* Object is a number (real or integer) */ - OBJNUMTREE, /* Object is a number tree (dictionary) */ - OBJNUMPAIR, /* Object is a number pair (part of number tree) */ - OBJRECT, /* Object is a rectangle (array) */ - OBJSTREAM, /* Object is a stream ... endstream */ - OBJSTR, /* Object is a (string) */ - OBJVIEWPREF, /* Object is a view preference (dictionary) */ - OBJOUTLINES, /* Object is a outlines (dictionary) */ - OBJOUTLINE, /* Object is a outline (dictionary) aka Bookmark */ - OBJPAGE, /* Object is a page (dictionary) */ - OBJPAGES, /* Object is a pages (dictionary) */ - OBJRESOURCE, /* Object is a resource (dictionary) */ - OBJFONT, /* Object is a font (dictionary) */ - OBJSTROBJPAIR, /* Object is a string object pair "(string) nn 0 R" */ - OBJNAMEOBJPAIR, /* Object is a name object pair "/name nn 0 R" */ - OBJCOLOR, /* Object is a color object RGB values "n.nn n.nn n.nn" */ - OBJCATALOG /* Object is a catalog (dictionary) */ -}; - -/* all PDF objects has a common header */ -struct pdfobj { - int type; /* 00 object type code */ - int index; /* 04 object number */ - int offset; /* 08 offset of object in PDF file */ - unsigned unused; /* 0C unused, align to double word */ -}; - -struct pdfnull { - PDFOBJ obj; /* 00 object header */ -}; /* 10 (16 bytes) */ - -struct pdfarray { - PDFOBJ obj; /* 00 object header */ - PDFOBJ **objects; /* 10 array of objects */ -}; /* 14 (20 bytes) */ - -struct pdfbool { - PDFOBJ obj; /* 00 object header */ - int value; /* 10 value (boolean) */ -}; /* 14 (20 bytes) */ - -struct pdfdate { - PDFOBJ obj; /* 00 object header */ - struct tm time; /* 10 time as struct tm */ -}; /* 34 (52 bytes) */ - -struct pdffile { - PDFOBJ obj; /* 00 object header */ - char *file; /* 10 file name */ -}; /* 14 (20 bytes) */ - -struct pdfint { - PDFOBJ obj; /* 00 object header */ - int value; /* 10 integer value */ -}; /* 14 (20 bytes) */ - -struct pdfname { - PDFOBJ obj; /* 00 object header */ - char *name; /* 10 name */ -}; /* 14 (20 bytes) */ - -struct pdfstrobjpair { - PDFOBJ obj; /* 00 object header */ - char *str; /* 10 "(string) ..." */ - PDFOBJ *pdfobj; /* 14 " ... nn 0 R" */ -}; /* 18 (24 bytes) */ - -struct pdfnameobjpair { - PDFOBJ obj; /* 00 object header */ - char *name; /* 10 "/name ..." */ - PDFOBJ *pdfobj; /* 14 " ... nn 0 R" */ -}; /* 18 (24 bytes) */ - -struct pdfnametree { - PDFOBJ obj; /* 00 object header */ - char *namelow; /* 10 "/Limits [(low) ...]" */ - char *namehigh; /* 14 "/Limits [...(high)]" */ - PDFOBJ **kids; /* 18 "/Kids [nn 0 R ... nn 0 R]" */ - PDFSTROBJPAIR **strobjpair; /* 1C "/Names [(name) nn 0 R ... (name) nn 0 R]" */ -}; /* 20 (32 bytes) */ - -struct pdfnum { - PDFOBJ obj; /* 00 object header */ - double value; /* 10 value */ -}; /* 18 (24 bytes) */ - -struct pdfnumpair { - PDFOBJ obj; /* 00 object header */ - int value; /* 10 nnn ... */ - PDFOBJ *pdfobj; /* 14 ... nn 0 R */ -}; /* 18 (24 bytes) */ - -struct pdfnumtree { - PDFOBJ obj; /* 00 object header */ - PDFOBJ *intlow; /* 10 "/Limits [ low ...]" */ - PDFOBJ *inthigh; /* 14 "/Limits [... high]" */ - PDFOBJ **kids; /* 18 "/Kids [nn 0 R ... nn 0 R]" */ - PDFNUMPAIR **pdfnumpair; /* 1C "/Nums [ int nn 0 R ... int nn 0 R]" */ -}; - -struct pdfrect { - PDFOBJ obj; /* 00 object header */ - int bx; /* 10 bottom x */ - int by; /* 14 bottom y */ - int tx; /* 18 top x */ - int ty; /* 1C top y */ -}; - -typedef struct dstr { - int size; /* 00 size of stream */ - int len; /* 04 length of data in stream */ - char *stream; /* 08 stream Data */ -} DSTR; - -struct pdfstream { - PDFOBJ obj; /* 00 object header */ - char **keyvals; /* 10 "other key value pairs" */ - int len; /* 14 "/Length nnn" Length of stream */ - PDFOBJ **objfilters; /* 18 "/Filter [...]" */ - PDFOBJ **objdecodes; /* 1C "/DecodeParms [...]" */ - PDFOBJ *objfile; /* 20 "/F ..." file specification */ - PDFOBJ **objffilters; /* 24 "/FFilter [...]" */ - PDFOBJ **objfdecodes; /* 28 "/FDecodeParms [...]" */ - DSTR **dstrs; /* 2C "stream\r\n...\r\nendstream\r\n" */ -}; - -struct pdfcolor { - PDFOBJ obj; /* 00 object header */ - char *name; /* 10 color common name */ - char *abbrev; /* 14 color abbreviation */ - unsigned rgb; /* 18 color red,green,blue value */ -}; /* 1C (28 bytes) */ - -struct pdfstr { - PDFOBJ obj; /* 00 object header */ - char *str; /* 10 string */ -}; /* 14 (20 bytes) */ - -struct pdfpage { - PDFOBJ obj; /* 00 object header ... "/Type /Page" */ - PDFPAGES *pages; /* 10 "/Parent nn 0 R" */ - PDFRESOURCE *resource; /* 14 "/Resources nn 0 R" */ - PDFRECT *medixbox; /* 18 "/MediaBox [bx by tx ty]" */ - PDFRECT *cropbox; /* 1C "/CropBox [bx by tx ty]" */ - PDFOBJ *boxcolorinfo; /* 20 "/BoxColorInfo nn 0 R" */ - PDFOBJ **contents; /* 24 "/Contents nn 0 R | [nn 0 R ... nn 0 R]" */ - PDFOBJ *group; /* 28 "/Group nn 0 R" */ - PDFOBJ **annots; /* 2C "/Annots [nn 0 R .. nn 0 R]" */ - int rotate; /* 30 "/Rotate nn" */ -}; /* 34 (52 bytes) */ - -struct pdfpages { - PDFOBJ obj; /* 00 object header ... "/Type /Pages" */ - PDFCAT *pdfcat; /* 10 "/Parent nn 0 R" */ - PDFPAGE **pdfpage; /* 14 "/Kids [nn 0 R ... nn 0 R]" */ -}; - -struct pdfviewpref { - PDFOBJ obj; /* 00 object header ... "/Type /Pages" */ - int hidetoolbar; /* 10 "/HideToolbar true | false" */ - int hidemenubar; /* 14 "/HideMenubar true | false" */ - int hidewindowui; /* 18 "/HideWindowUI true | false" */ - int fitwindow; /* 1C "/FitWindow true | false" */ - int centerwindow; /* 20 "/CenterWindow true | false" */ - char *nonfullscreenpagemode; /* 24 "/NonFullScreenPageMode UseNone | UseOutlines | UseThumbs" */ - char *direction; /* 28 "/Direction L2R | R2L" */ -}; /* 2C (44 bytes) */ - -struct pdfoutlines { - PDFOBJ obj; /* 00 object header */ - PDFOBJ *first; /* 10 "/First nn 0 R" */ - PDFOBJ *last; /* 14 "/Last nn 0 R" */ - int count; /* 18 "/Count nnn" */ -}; - -struct pdfoutline { - PDFOBJ obj; /* 00 object header */ - PDFOBJ *first; /* 10 "/First nn 0 R" */ - PDFOBJ *last; /* 14 "/Last nn 0 R" */ - int count; /* 18 "/Count nnn" */ - char *title; /* 1C "/Title required string" */ - PDFOBJ *parent; /* 20 "/Parent nn 0 R" */ - PDFOBJ *prev; /* 24 "/Prev nn 0 R" */ - PDFOBJ *next; /* 28 "/Next nn 0 R" */ - PDFOBJ *dest; /* 2C "/Dest name | string | [array]" */ - PDFOBJ *a; /* 30 "/A nn 0 R" */ - PDFOBJ *se; /* 34 "/SE nn 0 R" */ - char *color; /* 38 "/C [0.0 0.0 0.0]" RGB color array */ - int flag; /* 3C "/F n" 1=Italic, 2=Bold, 3=Italic+Bold */ -}; /* 40 (64 bytes) */ - -struct pdfcat { - PDFOBJ obj; /* 00 object header "/Type /Catalog" */ - PDFPAGES *pages; /* 10 "/Pages nn 0 R" Dictionary */ - PDFVIEWPREF *viewpref; /* 14 "/ViewerPreferences nn 0 R" Dictionary */ - char *pagelayout; /* 18 "/PageLayout SinglePage|OneColumn|TwoColumnLeft|TwoColumnRight" Name */ - char *pagemode; /* 1C "/PageMode UseNone|UseOutlines|UseThumbs|FullScreen" Name */ - PDFOUTLINES *outlines; /* 20 "/Outlines nn 0 R" Dictionary */ - PDFDEST *dest; /* 24 "/OpenAction destination */ -}; /* 28 (40 bytes) */ - -struct pdfdest { - PDFOBJ obj; /* 00 object header */ - PDFPAGE *page; /* 10 Page */ - int left; /* 14 Left */ - int top; /* 18 Top */ -}; /* 1C (28 bytes) */ - -struct pdffont { - PDFOBJ obj; /* 00 object header "/Type Font" */ - char *subtype; /* 10 "/Subtype /name" */ - char *basefont; /* 14 "/BaseFont /name" */ - char *alias; /* 18 not printed (lookup only) */ - char *abbrev; /* 1C not printed (lookup only) */ - int firstchar; /* 20 "/FirstChar n" */ - int lastchar; /* 24 "/LastChar n" */ - PDFOBJ *widths; /* 28 "/Widths nn 0 R" (array of int) */ - PDFOBJ *fontdescriptor; /* 2C "/FontDescriptor nn 0 R" (dictionary) */ - char *encoding; /* 30 "/Encoding /name" */ -}; /* 34 (52 bytes) */ - -struct pdfresource { - PDFOBJ obj; /* 00 object header "/Type Font" */ - char **procset; /* 10 "/ProcSet [/name1 ... /nameN]" */ - PDFNAMEOBJPAIR **nameobjpairfont; /* 14 "/Font << ... >>" */ - PDFNAMEOBJPAIR **nameobjpairxobj; /* 18 "/XObject << ... >>" */ -}; /* 1C (28 bytes) */ - -struct pdfinfo { - PDFOBJ obj; /* 00 object header "/Type Font" */ - char *title; /* 10 Document Title */ - char *subject; /* 14 Subject string */ - char *author; /* 18 Author */ - char *keywords; /* 1C Keywords */ - char *creator; /* 20 Creator of original document */ - char *producer; /* 24 Creator of output document */ - char *created; /* 28 Created date (D:YYYYMMDDHHMMSS-HH'MM')*/ -}; /* 2C (44 bytes) */ - -struct pdfimage { - PDFOBJ obj; /* 00 object header "/Type /XObject" */ - unsigned width; /* 10 Width of image (required) */ - unsigned height; /* 14 Height of image (required) */ - char *colorspace; /* 18 Colorspace (required except for imagemask) - ... DeviceGray, DeviceRGB, DeviceCMYK, - ... CalGray, CalRGB, Lab, ICCBased, - ... Indexed, Pattern, Seperation, DeviceN*/ - unsigned bitspercomponent; /* 1C Bit per component (required) */ - char *intent; /* 20 Color rendering intent (optional) */ - int imagemask; /* 24 boolean (optional) - ... if true nBitsPerComponent must be 1 - ... and Mask and Colorspace should not - ... be specified */ - char *mask; /* 28 an image mask XObject to apply to - ... this image (optional) */ - char *smask; /* 2C an image soft mask XObject to apply - ... to this image (optional) */ - char *decode; /* 30 Decode Array [n n ...] (optional) */ - int interpolate; /* 34 boolean (optional) */ - DSTR *dstr; /* 38 stream ... endstream (optional) */ - char *encoding; /* 3C encoding of stream (optional) */ -}; /* 40 (64 bytes) */ - -struct pdf_private { - DSTR * (*pdf_get_dstr)(PDF *pdf, PDFSTREAM *pdfstream); - void (*pdf_add_dstr)(PDF *pdf, PDFSTREAM *pdfstream, int len, const char *stream); - double * (*pdf_calc_arc)(double r, double a, double f[8]); -}; - -#ifdef PDF_PRIVATE -extern struct pdf_private *_p2core; -#define pdf_get_dstr(pdf,pdfstream) \ - ((_p2core->pdf_get_dstr)((pdf),(pdfstream))) -#define pdf_add_dstr(pdf,pdfstream,len,stream) \ - ((_p2core->pdf_add_dstr)((pdf),(pdfstream),(len),(stream))) -#define pdf_calc_arc(radius,angle,result) \ - ((_p2core->pdf_calc_arc)((radius),(angle),(result))) -#endif - -#endif /* PDFI_H */ diff --git a/src/crent370/pdfprt/@p3nprt.c b/src/crent370/pdfprt/@p3nprt.c deleted file mode 100644 index 698d039..0000000 --- a/src/crent370/pdfprt/@p3nprt.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "../pdfprt/pdfprt.h" - -__asm__("\n&FUNC SETC 'pdfprt_new'"); -PDFPRT *pdfprt_new(int (*out)(void *udata, int len, const char *data), int (*tell)(void *udata), void *udata) -{ - PDFPRT *pdfprt = calloc(1, sizeof(PDFPRT)); - - if (!pdfprt) goto quit; - - if (!out) { - out = pdf_out_default; - if (!udata) udata = stdout; - if (!tell) tell = (void*)ftell; - } - - strcpy(pdfprt->eye, PDFPRT_EYE); - pdfprt->out = out; - pdfprt->udata = udata; - pdfprt->tell = tell; - - /* create an instance of PDF handle */ - pdfprt->pdf = pdf_new(pdfprt_out, pdfprt_tell, pdfprt); - if (!pdfprt->pdf) { - free(pdfprt); - pdfprt = NULL; - goto quit; - } - -quit: - return pdfprt; -} diff --git a/src/crent370/pdfprt/@p3prout.c b/src/crent370/pdfprt/@p3prout.c deleted file mode 100644 index 67a0bdd..0000000 --- a/src/crent370/pdfprt/@p3prout.c +++ /dev/null @@ -1,21 +0,0 @@ -#include "../pdfprt/pdfprt.h" - -__asm__("\n&FUNC SETC 'pdfprt_out'"); -int pdfprt_out(void *udata, int len, const char *data) -{ - PDFPRT *pdfprt = udata; /* our handle */ - int rc; - - pdfprt->outcount += len; /* remember number of bytes written */ - - if (pdfprt->out) { - /* call user provided output routine */ - rc = pdfprt->out(pdfprt->udata, len, data); - } - else { - /* use the default pdf writer routine */ - rc = pdf_out_default(NULL, len, data); - } - - return rc; -} diff --git a/src/crent370/pdfprt/@p3prtel.c b/src/crent370/pdfprt/@p3prtel.c deleted file mode 100644 index c283fde..0000000 --- a/src/crent370/pdfprt/@p3prtel.c +++ /dev/null @@ -1,15 +0,0 @@ -#include "../pdfprt/pdfprt.h" - -__asm__("\n&FUNC SETC 'pdfprt_tell'"); -int pdfprt_tell(void *udata) -{ - PDFPRT *pdfprt = udata; - - if (pdfprt->tell) { - /* use the callers provided tell() function */ - return pdfprt->tell(pdfprt->udata); - } - - /* otherwise we return the bytes we've sent out via pdfprt_out() */ - return pdfprt->outcount; -} diff --git a/src/crent370/pdfprt/pdfprt.h b/src/crent370/pdfprt/pdfprt.h deleted file mode 100644 index 25b2204..0000000 --- a/src/crent370/pdfprt/pdfprt.h +++ /dev/null @@ -1,89 +0,0 @@ -#ifndef PDFPRT_H -#define PDFPRT_H - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include /* dynamic array */ -#include /* has struct timeval, go figure! */ -#include /* new printf function (end with _ character) like printf_() */ -#include "../pdf2/pdf.h" /* pdf prototypes */ - -/* we're testing new printf functions */ -#define printf printf_ -#define sprintf sprintf_ -#define snprintf snprintf_ -#define vsprintf vsprintf_ -#define vsnprintf vsnprintf_ - -#ifndef __MVS__ -#define __MVS__ -#endif - -#ifdef __MVS__ -#define SECT(name) asm(name) -#else -#define SECT(name) -#endif - -typedef struct pdfprt PDFPRT; - -struct pdfprt { - char eye[8]; /* 00 eye catcher for dumps */ -#define PDFPRT_EYE "*PDFPRT*" /* ... eye catcher for dumps */ - unsigned incount; /* 08 input record count */ - unsigned outcount; /* 0C output record count */ - - unsigned pagelines; /* 10 number of lines written to page */ - unsigned sumlines; /* 14 number of line written to summary page*/ - unsigned pagecount; /* 18 number of pages created */ - unsigned sumcount; /* 1C number of summary pages */ - int (*out)(void *udata, int len, const char *data); - /* 20 write output via the out function pointer */ - void *udata; /* 24 user data for the out and tell functions */ - int (*tell)(void *udata); /* 28 returns offset in current output */ - unsigned unused1; /* 2C unused */ - - PDF *pdf; /* 30 output PDF handle */ - PDFPAGE *page; /* 34 page object */ - PDFPAGE *sumpage; /* 38 summary page */ - unsigned unused2; /* 3C unused */ - - PDFOUTLINES *outlines; /* 40 outlines dictionary */ - PDFOUTLINE *outlinepages; /* 44 outline (bookmark) for pages */ - PDFOUTLINE *outline; /* 48 outline (bookmark) object */ - PDFOUTLINE *outlinesum; /* 4C summary outline (bookmark) object */ - - PDFSTREAM *background; /* 50 stream for background goodies */ - PDFSTREAM *pagestream; /* 54 stream for page contents */ - PDFSTREAM *sumstream; /* 58 stream for summary page contents */ - unsigned fontsize; /* 5C font size in points */ - - PDFRESOURCE *resource; /* 60 resource dictionary for fonts */ - char *greenbarcolor; /* 64 greenbar color name */ - char *watermarktext; /* 68 watermark text */ - unsigned char flags; /* 6C processing flags */ - unsigned char options; /* 6D processing options */ -#define PDFPRT_OPTION_THREERING 0x80 /* ... add holes for binder */ -#define PDFPRT_OPTION_LANDSCAPE 0x40 /* ... landscape pages */ -#define PDFPRT_OPTION_BOOKMARK 0x20 /* ... create bookmarks */ -#define PDFPRT_OPTION_SUMMARY 0x10 /* ... create summary page */ -#define PDFPRT_OPTION_GREENBAR 0x08 /* ... create greenbar on each page */ -#define PDFPRT_OPTION_WATERMARK 0x04 /* ... create watermark on each page */ -#define PDFPRT_OPTION_BOLD 0x02 /* ... use BOLD font */ - unsigned char unused4; /* 6E unused */ - unsigned char unused5; /* 6F unused */ -}; /* 70 (112 bytes) */ - -PDFPRT *pdfprt_new(int(*out)(void *udata, int len, const char *data), int (*tell)(void *udata), void *udata) SECT("@P3NPRT"); -int pdfprt_out(void *udata, int len, const char *data) SECT("@P3PROUT"); -int pdfprt_tell(void *udata) SECT("@P3PRTEL"); - -#endif /* PDFPRT_H */ diff --git a/src/crent370/racf/makefile b/src/crent370/racf/makefile deleted file mode 100644 index 367217d..0000000 --- a/src/crent370/racf/makefile +++ /dev/null @@ -1,60 +0,0 @@ -# -# makefile for crent370/racf c files -# -# gccmvs compiler flags -INC1 := -I. -INC2 := -I/home/projects/crent370/racf -INC3 := -I/home/projects/crent370/include -CFLAGS := -S -O1 $(INC1) $(INC2) $(INC3) -# -# c source code files -C_FILES := racauth.c \ - racgacee.c \ - raclgout.c \ - raclogin.c \ - racsacee.c - -# non-generated .asm assembler source files -A_FILES := - -# generated .s assembler source files (one for each source file) -S_FILES := $(foreach filename,$(C_FILES),$(filename:.c=.s)) - -# object files (one for each .c and .asm source file) -O_FILES := $(foreach filename,$(C_FILES),$(filename:.c=.o)) \ - $(foreach filename,$(A_FILES),$(filename:.asm=.o)) - -# export MACn variables for mvsasm->jobasm script -export MAC1=MDR.CRENT370.MACLIB - -# export dataset names used by mvsasm script -export MVSASM_PUNCH=MDR.CRENT370.OBJECT -export MVSASM_SYSLMOD=MDR.CRENT370.NCALIB - -all: $(S_FILES) $(O_FILES) - @echo "Done" -# Note: PHONY is important here. Without it, implicit rules will try -# to build the executable "all", since the prereqs are ".o" files. -.PHONY: all - -# build object files from the generated assembler files (.s) -%.o: %.s - @echo "mvsasm $(notdir $<)" - @mvsasm "$<" - @touch "$@" - -# build object files from assembler files (.asm) -%.o: %.asm - @echo "mvsasm $(notdir $<)" - @mvsasm "$<" - @touch "$@" - -# compile C source files (.c) into assembler files (.s) -%.s: %.c - @echo "Compile $(notdir $<)" - c2asm370 $(CFLAGS) -c $< -o $@ - -# remove generated files -clean: - @rm -f $(S_FILES) $(O_FILES) - diff --git a/src/crent370/racf/racauth.c b/src/crent370/racf/racauth.c deleted file mode 100644 index 4877587..0000000 --- a/src/crent370/racf/racauth.c +++ /dev/null @@ -1,151 +0,0 @@ -/* RACAUTH.C - racf_auth() -** check authorization to resource -** Hex Code Meaning -** 00 The user is authorized by RACF to obtain use of a RACF-protected -** resource. Register 0 contains one of the following reason codes: -** Reason Meaning -** 00 Indicates a normal completion. -** 04 Indicates STATUS=ERASE was specified and the data set is to -** be erased when scratched. -** Otherwise, indicates that the warning status of the resource -** was requested by the RACHECK issuer setting bit X'10' at -** offset 12 decimal in the RACHECK parameter list and the -** resource is in warning mode. -** 10 When CLASS=TAPEVOL, indicates the TAPEVOL profile contains -** a TVTOC. -** 20 When CLASS=TAPEVOL, indicates that the TAPEVOL profile can -** contain a TVTOC, but currently does not (for a scratch pool -** volume). -** 24 When CLASS=TAPEVOL, indicates that the TAPEVOL profile does -** not contain a TVTOC. -** 04 The specified resource is not protected by RACF. Register 0 -** contains the following reason code: -** Reason Meaning -** 00 Indicates a normal completion. -** 08 The user is not authorized by RACF to obtain use of the specified -** RACF-protected resource. Register 0 contains the following -** reason code: -** 00 Indicates a normal completion. A possible cause would be -** PROTECTALL is active, no profile is found, and the user ID -** whose authority was checked does not have the SPECIAL attribute. -** 04 Indicates STATUS=ERASE was specified and the data set is to -** be erased when scratched. -** 08 Indicates DSTYPE=T or CLASS=‘TAPEVOL’ was specified and the -** user is not authorized to use the specified volume. -** 0C Indicates the user is not authorized to use the data set. -** 10 Indicates DSTYPE=T or CLASS=‘TAPEVOL’ was specified and the -** user is not authorized to specify LABEL=(,BLP). -** 1C User with EXECUTE authority to the data set profile specified -** ATTR=READ, and RACF failed the access attempt. -** 0C The OLDVOL specified was not part of the multivolume data set -** defined by VOLSER, or it was not part of the same tape volume -** defined by ENTITY. -** 10 RACINIT issued by third-party RACHECK failed. Register 0 contains -** the RACINIT return code. -** 64 Indicates that the CHECK subparameter of the RELEASE keyword was -** specified on the execute form of the RACHECK macro; however, the -** list form of the macro does not have the proper RELEASE parameter. -** Macro processing terminates. -*/ -#include "racf.h" -#include "cliblock.h" - -__asm__("\n&FUNC SETC 'racf_auth'"); -int -racf_auth(ACEE *acee, const char *classname, const char *resource, int attr) -{ - int rc = 0; - unsigned *psa = (unsigned *)0; - unsigned *ascb = (unsigned *)psa[0x224/4]; /* A(ASCB) */ - unsigned *asxb = (unsigned *)ascb[0x6C/4]; /* A(ASXB) */ - ACEE **asxbsenv = (ACEE **) &asxb[0xC8/4]; /* A(ASXBSENV) */ - ACEE *oldacee = *asxbsenv; /* prev ACEE */ - int len; - RACLASS cclass; - char resname[80]; - RACHECK plist; - - /* lock the ASXB (ENQ) address */ - lock(asxb,0); - - memset(cclass.name, ' ', sizeof(cclass.name)); - memset(resname, ' ', sizeof(resname)); - memset(&plist, 0, sizeof(plist)); - - if (classname) { - len = strlen(classname); - if (len > sizeof(cclass.name)) len = sizeof(cclass.name); - memcpy(cclass.name, classname, len); - } - - if (resource) { - len = strlen(resource); - if (len > sizeof(resname)) len = sizeof(resname); - memcpy(resname, resource, len); - } - - switch (attr) { - case 0: - /* not specified, default to READ access */ - attr = RACHECK_ATTR_READ; - break; - case RACHECK_ATTR_READ: - case RACHECK_ATTR_UPDATE: - case RACHECK_ATTR_CONTROL: - case RACHECK_ATTR_ALTER: - /* seems okay */ - break; - default: - /* invalid, set to highest access allowed */ - attr = RACHECK_ATTR_ALTER; - } -#if 1 - plist.flag1 |= RACHECK_FLAG1_LOG_NONE; -#endif - plist.len = sizeof(plist); - - __asm__("\n" -"*\n" -"* enter supervisor state\n" -"*\n" -" MODESET KEY=ZERO,MODE=SUP\n" - : : : "1", "14", "15"); - - if (acee) { - /* set ASXBSENV with the ACEE pointer */ - *asxbsenv = acee; - } - - __asm__("\n" -"*\n" -"* check access to resource\n" -"*\n" -" RACHECK ENTITY=((%1)),CLASS=(%2),ATTR=(%3),MF=(E,%4)\n" -" ST 15,%0" - : "=m"(rc) : "r"(resname), "r"(&cclass), "r"(attr), "m"(plist) - : "1", "14", "15" ); - - if (acee) { - /* set ASXBSENV with the prev ACEE pointer */ - *asxbsenv = oldacee; - } - - __asm__("\n" -"*\n" -"* return to problem state\n" -"*\n" -" MODESET KEY=NZERO,MODE=PROB\n" - : : : "1", "14", "15"); - - /* unlock the ASXB (ENQ) address */ - unlock(asxb,0); - - return rc; -} -#if 1 - __asm__("\n" -"LISTLOG RACHECK ENTITY=ENTITY,CLASS='FACILITY',ATTR=READ,LOG=NONE, X\n\t\tMF=L\n" -"LISTNOG RACHECK ENTITY=ENTITY,CLASS='FACILITY',ATTR=READ, X\n\t\tMF=L\n" -"ENTITY DC CL40'THIS'\n" - ); -#endif diff --git a/src/crent370/racf/racauth.o b/src/crent370/racf/racauth.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/racf/racauth.s b/src/crent370/racf/racauth.s deleted file mode 100644 index 86d308f..0000000 --- a/src/crent370/racf/racauth.s +++ /dev/null @@ -1,172 +0,0 @@ - TITLE '/home/projects/crent370/racf/racauth.c' - COPY PDPTOP - CSECT - -&FUNC SETC 'racf_auth' -* Program text area - DS 0F - EJECT -* external function 'racf_auth' prologue -* frame base=88, local stack=160, call args=16 -&FUNC SETC 'racf_auth' -RACAUTH PDPPRLG CINDEX=0,FRAME=264,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'racf_auth' code - L 9,0(11) - L 7,4(11) - L 8,8(11) - L 4,12(11) - SLR 3,3 - ST 3,256(13) - L 2,548(3) - L 5,108(2) - LR 6,5 - A 6,=F'200' - MVC 260(4,13),0(6) - ST 5,88(13) - ST 3,92(13) - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LA 2,105(,13) - ST 2,88(13) - MVC 92(4,13),=F'64' - MVC 96(4,13),=F'8' - LA 1,88(,13) - L 15,=V(MEMSET) - BALR 14,15 - LA 2,120(,13) - ST 2,88(13) - MVC 92(4,13),=F'64' - MVC 96(4,13),=F'80' - LA 1,88(,13) - L 15,=V(MEMSET) - BALR 14,15 - LA 2,200(,13) - ST 2,88(13) - ST 3,92(13) - MVC 96(4,13),=F'56' - LA 1,88(,13) - L 15,=V(MEMSET) - BALR 14,15 - LTR 7,7 - BE @@L2 - ST 7,88(13) - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LA 2,8(0,0) - CLR 15,2 - BNH @@L3 - LR 15,2 -@@L3 EQU * - LA 2,105(,13) - ST 2,88(13) - ST 7,92(13) - ST 15,96(13) - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 -@@L2 EQU * - LTR 8,8 - BE @@L4 - ST 8,88(13) - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LA 2,80(0,0) - CLR 15,2 - BNH @@L5 - LR 15,2 -@@L5 EQU * - LA 2,120(,13) - ST 2,88(13) - ST 8,92(13) - ST 15,96(13) - LA 1,88(,13) - L 15,=V(MEMCPY) - BALR 14,15 -@@L4 EQU * - LA 2,4(0,0) - CR 4,2 - BE @@L6 - BH @@L14 - LA 2,2(0,0) - LTR 4,4 - BNE @@L17 - B @@L7 -@@L14 EQU * - LA 2,8(0,0) - CLR 4,2 - BE @@L6 - LA 2,128(0,0) -@@L17 EQU * - CLR 4,2 - BE @@L6 - B @@L12 -@@L7 EQU * - LA 4,2(0,0) - B @@L6 -@@L12 EQU * - LA 4,128(0,0) -@@L6 EQU * - OI 204(13),16 - MVI 200(13),56 - -* -* enter supervisor state -* - MODESET KEY=ZERO,MODE=SUP - - LTR 9,9 - BE @@L15 - ST 9,0(6) -@@L15 EQU * - LA 3,120(,13) - LA 2,104(,13) - -* -* check access to resource -* - RACHECK ENTITY=((3)),CLASS=(2),ATTR=(4),MF=(E,200(13)) - ST 15,256(13) - LTR 9,9 - BE @@L16 - MVC 0(4,6),260(13) -@@L16 EQU * - -* -* return to problem state -* - MODESET KEY=NZERO,MODE=PROB - - ST 5,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - L 15,256(13) -* Function 'racf_auth' epilogue - PDPEPIL -* Function 'racf_auth' literal pool - DS 0D - LTORG -* Function 'racf_auth' page table -@@PGT0 DS 0F - DC A(@@PG0) - -LISTLOG RACHECK ENTITY=ENTITY,CLASS='FACILITY',ATTR=READ,LOG=NONE, X - MF=L -LISTNOG RACHECK ENTITY=ENTITY,CLASS='FACILITY',ATTR=READ, X - MF=L -ENTITY DC CL40'THIS' - - END diff --git a/src/crent370/racf/racgacee.c b/src/crent370/racf/racgacee.c deleted file mode 100644 index c3f544b..0000000 --- a/src/crent370/racf/racgacee.c +++ /dev/null @@ -1,17 +0,0 @@ -/* RACGACEE.C - racf_get_acee() -** get ACEE from ASXBSENV -*/ -#include "racf.h" - -__asm__("\n&FUNC SETC 'racf_get_acee'"); -ACEE * -racf_get_acee(void) -{ - unsigned *psa = (unsigned *)0; - unsigned *ascb = (unsigned *)psa[0x224/4]; /* A(ASCB) */ - unsigned *asxb = (unsigned *)ascb[0x6C/4]; /* A(ASXB) */ - ACEE **asxbsenv = (ACEE **) &asxb[0xC8/4]; /* A(ASXBSENV) */ - ACEE *acee = *asxbsenv; - - return acee; -} diff --git a/src/crent370/racf/racgacee.o b/src/crent370/racf/racgacee.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/racf/racgacee.s b/src/crent370/racf/racgacee.s deleted file mode 100644 index 302b40a..0000000 --- a/src/crent370/racf/racgacee.s +++ /dev/null @@ -1,36 +0,0 @@ - TITLE '/home/projects/crent370/racf/racgacee.c' - COPY PDPTOP - CSECT - -&FUNC SETC 'racf_get_acee' -* Program text area - DS 0F - EJECT -* external function 'racf_get_acee' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'racf_get_acee' -RACGACEE PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'racf_get_acee' code - SLR 2,2 - L 2,548(2) - L 2,108(2) - A 2,=F'200' - L 15,0(2) -* Function 'racf_get_acee' epilogue - PDPEPIL -* Function 'racf_get_acee' literal pool - DS 0D - LTORG -* Function 'racf_get_acee' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/racf/raclgout.c b/src/crent370/racf/raclgout.c deleted file mode 100644 index 2152cc3..0000000 --- a/src/crent370/racf/raclgout.c +++ /dev/null @@ -1,93 +0,0 @@ -/* RACLGOUT.C - racf_logout() -** releases ACEE. -*/ -#include "racf.h" -#include "cliblock.h" - -__asm__("\n&FUNC SETC 'racf_logout'"); -int -racf_logout(ACEE **acee) -{ - volatile int rc = 0; - int sup = 0; - int key = 0; - unsigned *psa = (unsigned *)0; - unsigned *ascb = (unsigned *)psa[0x224/4]; /* A(ASCB) */ - unsigned *asxb = (unsigned *)ascb[0x6C/4]; /* A(ASXB) */ - ACEE **asxbsenv = (ACEE **) &asxb[0xC8/4]; /* A(ASXBSENV) */ - ACEE *oldacee = *asxbsenv; /* prev ACEE */ - RACINIT plist; - - /* lock the ASXB (ENQ) address */ - lock(asxb,0); - - __asm__("XC\t0(0,%0),0(%0) clear plist *** executed ***\n\t" - "EX\t%1,*-6" : : "r"(&plist), "r"(sizeof(plist)-1)); - plist.len = sizeof(plist); - - __asm__("\n" -"*\n" -"* See if we're in supervisor state\n" -"*\n" -" TESTAUTH FCTN=0,STATE=YES,KEY=NO,RBLEVEL=1\n\tST\t15,%0" : "=m"(rc) - : : "1", "14", "15"); - if (rc==0) { - /* we're in supervisor state */ - sup = 1; - } - - if (sup) { - /* we're in supervisor state, switch to key 0 */ - __asm__("\n" -"*\n" -"* we're in supervisor state, switch to key 0\n" -"*\n" -" IPK\t,\n\tST\t2,%0\n\tSPKA\t0(0)" : "=m"(key) : : "2"); - } - else { - __asm__("\n" -"*\n" -"* enter supervisor state\n" -"*\n" -" MODESET KEY=ZERO,MODE=SUP\n" : : : "1", "14", "15"); - } - - /* put this ACEE in ASXBSENV */ - *asxbsenv = *acee; - - __asm__("\n" -"*\n" -"* delete ACEE\n" -"*\n" -" RACINIT ENVIR=DELETE,ACEE=(%1),MF=(E,%2)\n" -" ST\t15,%0" : "=m"(rc) : "r"(acee), "m"(plist) : "1", "14", "15"); - - if (oldacee != *acee) { - /* restore previous ACEE in ASXBSENV */ - *asxbsenv = oldacee; - } - else { - *asxbsenv = (ACEE*)0; - } - - if (sup) { - __asm__("\n" -"*\n" -"* we're in supervisor state, switch back to callers key\n" -"*\n" -" SPKA\t0(%0)" : : "r"(key)); - } - else { - __asm__("\n" -"*\n" -"* return to problem state\n" -"*\n" -" MODESET KEY=NZERO,MODE=PROB\n" : : : "1", "14", "15"); - } - -quit: - /* unlock the ASXB (ENQ) address */ - unlock(asxb,0); - *acee = (ACEE*)0; - return rc; -} diff --git a/src/crent370/racf/raclgout.o b/src/crent370/racf/raclgout.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/racf/raclgout.s b/src/crent370/racf/raclgout.s deleted file mode 100644 index 9e0654d..0000000 --- a/src/crent370/racf/raclgout.s +++ /dev/null @@ -1,117 +0,0 @@ - TITLE '/home/projects/crent370/racf/raclgout.c' - COPY PDPTOP - CSECT - -&FUNC SETC 'racf_logout' -* Program text area - DS 0F - EJECT -* external function 'racf_logout' prologue -* frame base=88, local stack=72, call args=8 -&FUNC SETC 'racf_logout' -RACLGOUT PDPPRLG CINDEX=0,FRAME=168,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'racf_logout' code - L 7,0(11) - MVC 96(4,13),=F'0' - SLR 6,6 - ST 6,160(13) - L 2,548(6) - L 5,108(2) - LR 4,5 - A 4,=F'200' - L 8,0(4) - ST 5,88(13) - ST 6,92(13) - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LA 3,104(,13) - LA 2,55(0,0) - XC 0(0,3),0(3) clear plist *** executed *** - EX 2,*-6 - MVI 104(13),56 - -* -* See if we're in supervisor state -* - TESTAUTH FCTN=0,STATE=YES,KEY=NO,RBLEVEL=1 - ST 15,96(13) - L 2,96(13) - LTR 2,2 - BNE @@L2 - LA 6,1(0,0) -@@L2 EQU * - LTR 6,6 - BE @@L3 - -* -* we're in supervisor state, switch to key 0 -* - IPK , - ST 2,160(13) - SPKA 0(0) - B @@L4 -@@L3 EQU * - -* -* enter supervisor state -* - MODESET KEY=ZERO,MODE=SUP - -@@L4 EQU * - MVC 0(4,4),0(7) - -* -* delete ACEE -* - RACINIT ENVIR=DELETE,ACEE=(7),MF=(E,104(13)) - ST 15,96(13) - CL 8,0(7) - BE @@L5 - ST 8,0(4) - B @@L6 -@@L5 EQU * - MVC 0(4,4),=F'0' -@@L6 EQU * - LTR 6,6 - BE @@L7 - L 2,160(13) - -* -* we're in supervisor state, switch back to callers key -* - SPKA 0(2) - B @@L9 -@@L7 EQU * - -* -* return to problem state -* - MODESET KEY=NZERO,MODE=PROB - -@@L9 EQU * - ST 5,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - MVC 0(4,7),=F'0' - L 15,96(13) -* Function 'racf_logout' epilogue - PDPEPIL -* Function 'racf_logout' literal pool - DS 0D - LTORG -* Function 'racf_logout' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/racf/raclogin.c b/src/crent370/racf/raclogin.c deleted file mode 100644 index 8811cfc..0000000 --- a/src/crent370/racf/raclogin.c +++ /dev/null @@ -1,167 +0,0 @@ -/* RACLOGIN.C - racf_login() -** returns ACEE if successful. -** -** If racf_rc points to an int it receives the RACF return code: -** Hex Dec Meaning -** 00 0 RACINIT has completed successfully. -** 04 4 The user profile is not defined to RACF. -** 08 8 The password is not authorized. -** 0C 12 The password has expired. -** 10 16 The new password is not valid. -** 14 20 The user is not defined to the group. -** 18 24 RACINIT was failed by the installation exit routine. -** 1C 28 The user's access has been revoked. -** 20 32 RACF is not active. -** 24 36 The user's access to the specified group has been revoked. -** 28 40 OIDCARD parameter is required but not supplied. -** 2C 44 OIDCARD parameter is not valid for specified user. -** 30 38 The user is not authorized to use the terminal. -** Register 0 contains one of the following reason codes: -** Reason Meaning -** 00 Indicates a normal completion. -** 04 Indicates the user is not authorized to access the system -** on this day, or at this time of day. -** 08 Indicates the terminal cannot be used on this day, or at -** this time of day. -** 34 The user is not authorized to use the application. -** 64 Indicates that the CHECK subparameter of the RELEASE -** keyword was specified on the execute form of the RACINIT -** macro; however, the list form of the macro does not have -** the proper RELEASE parameter. Macro processing terminates. -*/ -#include "racf.h" -#include "cliblock.h" - -__asm__("\n&FUNC SETC 'racf_login'"); -ACEE * -racf_login(const char *user, const char *pass, const char *group, int *racf_rc) -{ - volatile int rc = 0; - volatile ACEE *acee = 0; - int sup = 0; - unsigned *psa = (unsigned *)0; - unsigned *ascb = (unsigned *)psa[0x224/4]; /* A(ASCB) */ - unsigned *asxb = (unsigned *)ascb[0x6C/4]; /* A(ASXB) */ - int len; - char userid[9]; - char password[9]; - char groupid[9]; - RACINIT plist; - - /* lock the ASXB (ENQ) address */ - lock(asxb,0); - - __asm__("XC\t0(0,%0),0(%0) clear plist *** executed ***\n\t" - "EX\t%1,*-6" : : "r"(&plist), "r"(sizeof(plist)-1)); - plist.len = sizeof(plist); - - /* provide default for user */ - if (!user) user = "*"; - - len = strlen(user); - if (len > 8) len = 8; - userid[0] = (char)len; - if (len > 0) { - __asm__("MVC\t0(8,%0),=CL8' ' clear userid to spaces" - : : "r"(&userid[1])); - __asm__("MVC\t0(0,%0),0(%1) copy userid *** executed ***\n\t" - "EX\t%2,*-6" : : "r"(&userid[1]), "r"(user), "r"(len-1)); - __asm__("OC\t0(8,%0),=CL8' ' fold to upper case" - : : "r"(&userid[1])); - } - - if (pass) { - len = strlen(pass); - if (len > 8) len = 8; - password[0] = (char)len; - if (len > 0) { - __asm__("MVC\t0(8,%0),=CL8' ' clear password to spaces" - : : "r"(&password[1])); - __asm__("MVC\t0(0,%0),0(%1) copy password *** executed ***\n\t" - "EX\t%2,*-6" : : "r"(&password[1]), "r"(pass), "r"(len-1)); - __asm__("OC\t0(8,%0),=CL8' ' fold to upper case" - : : "r"(&password[1])); - } - } - - len = group ? strlen(group) : 0; - if (len > 8) len = 8; - groupid[0] = (char)len; - if (len > 0) { - __asm__("MVC\t0(8,%0),=CL8' ' clear group to spaces" - : : "r"(&groupid[1])); - __asm__("MVC\t0(0,%0),0(%1) copy group *** executed ***\n\t" - "EX\t%2,*-6" : : "r"(&groupid[1]), "r"(group), "r"(len-1)); - __asm__("OC\t0(8,%0),=CL8' ' fold to upper case" - : : "r"(&groupid[1])); - group = groupid; - } - - __asm__("\n" -"*\n" -"* See if we're in supervisor state\n" -"*\n" -" TESTAUTH FCTN=0,STATE=YES,KEY=NO,RBLEVEL=1\n\tST\t15,%0" : "=m"(rc) - : : "1", "14", "15"); - if (rc==0) { - /* we're in supervisor state */ - sup = 1; - } - - if (!sup) { - /* switch to supervisor state */ - __asm__("\n" -"*\n" -"* enter supervisor state\n" -"*\n" -" MODESET KEY=ZERO,MODE=SUP\n" - : : : "1", "14", "15"); - } - - if (pass) { - __asm__("\n" -"*\n" -"* create ACEE for this user and password\n" -"*\n" -" RACINIT ENVIR=CREATE, X\n" -" ACEE=(%1),USERID=(%2),PASSWRD=(%3),GROUP=(%4),MF=(E,%5)\n" -" ST\t15,%0" : "=m"(rc) - : "r"(&acee), "r"(userid), "r"(password), "r"(group), "m"(plist) - : "1", "14", "15"); - } - else { - __asm__("\n" -"*\n" -"* create ACEE for this user (no password)\n" -"*\n" -" RACINIT ENVIR=CREATE,PASSCHK=NO, X\n" -" ACEE=(%1),USERID=(%2),GROUP=(%3),MF=(E,%4)\n" -" ST\t15,%0" : "=m"(rc) - : "r"(&acee), "r"(userid), "r"(group), "m"(plist) - : "1", "14", "15"); - } - - if (!sup) { - /* switch back to problem state */ - __asm__("\n" -"*\n" -"* return to problem state\n" -"*\n" -" MODESET KEY=NZERO,MODE=PROB\n" - : : : "1", "14", "15"); - } - -quit: - /* unlock the ASXB (ENQ) address */ - unlock(asxb,0); - if (racf_rc) *racf_rc = rc; - return (ACEE*)acee; -} -#if 0 - __asm__("\n" -"LIST RACINIT ENVIR=CREATE,ACEE=ACEE, X\n" -" USERID=USER,PASSWRD=PASS,MF=L\n" -"ACEE DS F\n" -"USER DS CL9\n" -"PASS DS CL9\n"); -#endif diff --git a/src/crent370/racf/raclogin.o b/src/crent370/racf/raclogin.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/racf/raclogin.s b/src/crent370/racf/raclogin.s deleted file mode 100644 index b6f8bb9..0000000 --- a/src/crent370/racf/raclogin.s +++ /dev/null @@ -1,195 +0,0 @@ - TITLE '/home/projects/crent370/racf/raclogin.c' - COPY PDPTOP - CSECT - -&FUNC SETC 'racf_login' -* Program text area - DS 0F - EJECT -* external function 'racf_login' prologue -* frame base=88, local stack=120, call args=8 -&FUNC SETC 'racf_login' -RACLOGIN PDPPRLG CINDEX=0,FRAME=216,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'racf_login' code - L 4,0(11) - L 7,4(11) - L 5,8(11) - L 9,12(11) - MVC 96(4,13),=F'0' - MVC 208(4,13),=F'0' - SLR 6,6 - L 2,548(6) - L 8,108(2) - ST 8,88(13) - ST 6,92(13) - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LA 3,152(,13) - LA 2,55(0,0) - XC 0(0,3),0(3) clear plist *** executed *** - EX 2,*-6 - MVI 152(13),56 - LTR 4,4 - BNE @@L2 - L 4,=A(@@LC0) -@@L2 EQU * - ST 4,88(13) - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LA 2,8(0,0) - CR 15,2 - BNH @@L3 - LR 15,2 -@@L3 EQU * - STC 15,104(13) - LTR 15,15 - BNH @@L4 - LA 2,105(,13) - MVC 0(8,2),=CL8' ' clear userid to spaces - LA 3,105(,13) - LR 2,15 - BCTR 2,0 - MVC 0(0,3),0(4) copy userid *** executed *** - EX 2,*-6 - LA 2,105(,13) - OC 0(8,2),=CL8' ' fold to upper case -@@L4 EQU * - LTR 7,7 - BE @@L5 - ST 7,88(13) - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - LA 2,8(0,0) - CR 15,2 - BNH @@L6 - LR 15,2 -@@L6 EQU * - STC 15,120(13) - LTR 15,15 - BNH @@L5 - LA 2,121(,13) - MVC 0(8,2),=CL8' ' clear password to spaces - LA 3,121(,13) - LR 2,15 - BCTR 2,0 - MVC 0(0,3),0(7) copy password *** executed *** - EX 2,*-6 - LA 2,121(,13) - OC 0(8,2),=CL8' ' fold to upper case -@@L5 EQU * - LTR 5,5 - BE @@L8 - ST 5,88(13) - LA 1,88(,13) - L 15,=V(STRLEN) - BALR 14,15 - B @@L9 -@@L8 EQU * - SLR 15,15 -@@L9 EQU * - LA 2,8(0,0) - CR 15,2 - BNH @@L10 - LR 15,2 -@@L10 EQU * - STC 15,136(13) - LTR 15,15 - BNH @@L11 - LA 2,137(,13) - MVC 0(8,2),=CL8' ' clear group to spaces - LA 3,137(,13) - LR 2,15 - BCTR 2,0 - MVC 0(0,3),0(5) copy group *** executed *** - EX 2,*-6 - LA 2,137(,13) - OC 0(8,2),=CL8' ' fold to upper case - LA 5,136(,13) -@@L11 EQU * - -* -* See if we're in supervisor state -* - TESTAUTH FCTN=0,STATE=YES,KEY=NO,RBLEVEL=1 - ST 15,96(13) - L 2,96(13) - LTR 2,2 - BNE @@L12 - LA 6,1(0,0) -@@L12 EQU * - LTR 6,6 - BNE @@L13 - -* -* enter supervisor state -* - MODESET KEY=ZERO,MODE=SUP - -@@L13 EQU * - LTR 7,7 - BE @@L14 - LA 4,104(,13) - LA 3,120(,13) - LA 2,208(,13) - -* -* create ACEE for this user and password -* - RACINIT ENVIR=CREATE, X - ACEE=(2),USERID=(4),PASSWRD=(3),GROUP=(5),MF=(E,152(13)) - ST 15,96(13) - B @@L15 -@@L14 EQU * - LA 3,104(,13) - LA 2,208(,13) - -* -* create ACEE for this user (no password) -* - RACINIT ENVIR=CREATE,PASSCHK=NO, X - ACEE=(2),USERID=(3),GROUP=(5),MF=(E,152(13)) - ST 15,96(13) -@@L15 EQU * - LTR 6,6 - BNE @@L17 - -* -* return to problem state -* - MODESET KEY=NZERO,MODE=PROB - -@@L17 EQU * - ST 8,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LTR 9,9 - BE @@L18 - MVC 0(4,9),96(13) -@@L18 EQU * - L 15,208(13) -* Function 'racf_login' epilogue - PDPEPIL -* Function 'racf_login' literal pool - DS 0D - LTORG -* Function 'racf_login' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'*' - DC X'0' - END diff --git a/src/crent370/racf/racsacee.c b/src/crent370/racf/racsacee.c deleted file mode 100644 index 7ff8452..0000000 --- a/src/crent370/racf/racsacee.c +++ /dev/null @@ -1,64 +0,0 @@ -/* RACSACEE.C - racf_set_acee() -** set ASXBSENV with new ACEE value, returns previous ACEE value. -*/ -#include "racf.h" - -__asm__("\n&FUNC SETC 'racf_set_acee'"); -ACEE * -racf_set_acee(ACEE *newacee) -{ - int rc = 0; - int key = 0; - unsigned *psa = (unsigned *)0; - unsigned *ascb = (unsigned *)psa[0x224/4]; /* A(ASCB) */ - unsigned *asxb = (unsigned *)ascb[0x6C/4]; /* A(ASXB) */ - ACEE **asxbsenv = (ACEE **) &asxb[0xC8/4]; /* A(ASXBSENV) */ - ACEE *oldacee = *asxbsenv; /* prev ACEE */ - -#if 1 - __asm__("\n" -"*\n" -"* See if we're in supervisor state\n" -"*\n" -" TESTAUTH FCTN=0,STATE=YES,KEY=NO,RBLEVEL=1\n\tST\t15,%0" : "=m"(rc) - : : "1", "14", "15"); - if (rc==0) { - /* we're in supervisor state, switch to key 0 */ - __asm__("\n" -"*\n" -"* we're in supervisor state, switch to key 0\n" -"*\n" -" IPK\t,\n\tST\t2,%0\n\tSPKA\t0(0)" : "=m"(key) : : "2"); - - /* set ASXBSENV with the new ACEE pointer */ - *asxbsenv = newacee; - - __asm__("\n" -"*\n" -"* we're in supervisor state, switch back to callers key\n" -"*\n" -" SPKA\t0(%0)" : : "r"(key)); - goto quit; - } -#endif - - __asm__("\n" -"*\n" -"* enter supervisor state\n" -"*\n" -" MODESET KEY=ZERO,MODE=SUP\n" - : : : "1", "14", "15"); - - /* set ASXBSENV with the new ACEE pointer */ - *asxbsenv = newacee; - - __asm__("\n" -"*\n" -"* return to problem state\n" -"*\n" -" MODESET KEY=NZERO,MODE=PROB\n" - : : : "1", "14", "15"); - -quit: - return oldacee; -} diff --git a/src/crent370/racf/racsacee.o b/src/crent370/racf/racsacee.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/racf/racsacee.s b/src/crent370/racf/racsacee.s deleted file mode 100644 index 4b3a512..0000000 --- a/src/crent370/racf/racsacee.s +++ /dev/null @@ -1,79 +0,0 @@ - TITLE '/home/projects/crent370/racf/racsacee.c' - COPY PDPTOP - CSECT - -&FUNC SETC 'racf_set_acee' -* Program text area - DS 0F - EJECT -* external function 'racf_set_acee' prologue -* frame base=88, local stack=8, call args=0 -&FUNC SETC 'racf_set_acee' -RACSACEE PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'racf_set_acee' code - L 5,0(11) - SLR 2,2 - ST 2,88(13) - ST 2,92(13) - L 2,548(2) - L 3,108(2) - A 3,=F'200' - L 4,0(3) - -* -* See if we're in supervisor state -* - TESTAUTH FCTN=0,STATE=YES,KEY=NO,RBLEVEL=1 - ST 15,88(13) - L 2,88(13) - LTR 2,2 - BNE @@L2 - -* -* we're in supervisor state, switch to key 0 -* - IPK , - ST 2,92(13) - SPKA 0(0) - ST 5,0(3) - L 2,92(13) - -* -* we're in supervisor state, switch back to callers key -* - SPKA 0(2) - B @@L3 -@@L2 EQU * - -* -* enter supervisor state -* - MODESET KEY=ZERO,MODE=SUP - - ST 5,0(3) - -* -* return to problem state -* - MODESET KEY=NZERO,MODE=PROB - -@@L3 EQU * - LR 15,4 -* Function 'racf_set_acee' epilogue - PDPEPIL -* Function 'racf_set_acee' literal pool - DS 0D - LTORG -* Function 'racf_set_acee' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/resident/resdisp.c b/src/crent370/resident/resdisp.c deleted file mode 100644 index 1697cbc..0000000 --- a/src/crent370/resident/resdisp.c +++ /dev/null @@ -1,158 +0,0 @@ -#include -#include - -int resdisp(unsigned fn, ...) -{ - void *plist = (void*)(&fn); - void *stack = (void*)0; - RESDISP rd = {RESDISP_EYE}; - RESDISP rdx; - int rc; - unsigned ix; - unsigned size; - - /* on entry, R0 *should* have the RES address */ - __asm__ __volatile__("LR\t%0,0 save resident address" : "=r"(rd.res) : : "0"); - - /* do we have a RES address? */ - if (!rd.res) return -1; - - /* validate eye catcher */ - __asm__ __volatile__("\n*** VALIDATE EYE CATCHER ***"); - __asm__ __volatile__( - "L\tR15,=F'-2' assume invalid\n\t" - "CLC\t=C'" RES_EYE "',16(%0) compare eye catcher\n\t" - "BNE\t@@L1 invalid eye catcher" - : : "r"(rd.res) : "15"); - - ix = fn; - if (ix < 0x100) { - /* is the function number in range? */ - if (ix >= rd.res->funcs) return -3; - - /* get the RESFUNC address */ - rd.resfunc = &rd.res->func[ix]; - } - else { - ix -= 0x100; - - /* is the function number in range? */ - if (ix >= rd.res->afuncs) return -3; - - /* get the RESFUNC address */ - rd.resfunc = &rd.res->afunc[ix]; - } - - /* do we have a RESFUNC address? */ - if (!rd.resfunc) return -4; - - /* do we have a function to call? */ - if (!rd.resfunc->func) return -5; - - /* do we need a new stack frame? */ - if (rd.resfunc->flags & RESSTACK) { - /* allocate a new stack */ - size = 1024 * rd.resfunc->stack_size_k; /* 0 to 256K, 0 defaults to 8K */ - stack = res_request_getstack(rd.res, size); - if (stack) { - __asm__ __volatile__("ST\t%0,76(,R13) stack nab = new stack" : : "r"(stack)); - } - else { - return -6; /* out of memory */ - } - } - - /* is caller in supervisor state */ - rd.caller_sup = res_request_issup(); - rd.disp_sup = rd.caller_sup; - - /* get callers PSW key */ - if (rd.caller_sup) { -do_spka: - __asm__ __volatile__("\n*** GET PSW KEY for SUPERVISOR STATE CALLER ***"); - __asm__ __volatile__( - "XR\tR2,R2 clear for IPK\n\t" - "IPK\t, get PSW key\n\t" - "STC\tR2,%0 save PSW key" - : "=m"(rd.caller_key) : : "2"); - rd.disp_key = rd.caller_key; - - /* switch PSW key if needed */ - if ((rd.resfunc->flags & RESKEY0) && (rd.caller_key != PSWKEY0)) { - __asm__ __volatile__( - "SPKA\t0 PSW key 0\n\t"); - rd.disp_key = PSWKEY0; - } - else if ((rd.resfunc->flags & RESKEYU) && (rd.caller_key != PSWKEY8)) { - __asm__ __volatile__( - "LA\tR2,X'80' PSW key 8\n\t" - "SPKA\t0(R2) PSW key 8\n\t" : : : "2"); - rd.disp_key = PSWKEY8; - } - - if (rd.resfunc->flags & RESPROB) { - res_request_prob(rd.res); - rd.disp_sup = 0; - } - } - else { - /* problem mode/state caller */ - /* switch execution state if needed */ - if (rd.resfunc->flags & RESSUP) { - res_request_sup(rd.res); - rd.disp_sup = 1; - goto do_spka; - } - - /* problem mode/state caller *and* execute mode/state, get psw key */ - rd.caller_key = res_request_key(rd.res, PSWKEYNONE); - rd.disp_key = rd.caller_key; - - /* switch PSW key if needed */ - if ((rd.resfunc->flags & RESKEY0) && (rd.caller_key != PSWKEY0)) { - res_request_key(rd.res, PSWKEY0); - rd.disp_key = PSWKEY0; - } - else if ((rd.resfunc->flags & RESKEYU) && (rd.caller_key != PSWKEY8)) { - res_request_key(rd.res, PSWKEY8); - rd.disp_key = PSWKEY8; - } - - } - - - /* call requested function */ - rdx = rd; /* make copy of RESDISP struct */ - fn = (unsigned)&rdx; /* make first parm address of RESDISP structure copy */ - __asm__ __volatile__("\n*** CALL RESIDENT FUNCTION ***"); - __asm__ __volatile__( - "L\t15,%1 => function to call \n\t" - "LR\t1,11 => parameter list\n\t" - "BALR\t14,15 call function\n\t" - "LR\t%0,15 save return code" - : "=r" (rc) - : "m" (rd.resfunc->func), "m"(plist) - : "0", "1", "14", "15"); - - /* switch execution state if needed */ - if (rd.disp_sup != rd.caller_sup) { - /* we switched states for the resident function */ - if (rd.caller_sup==0) { - /* caller was in problem state */ - res_request_prob(rd.res); - } - else { - /* caller was in supervisor state */ - res_request_sup(rd.res); - } - } - - /* switch PSW key if needed */ - if (rd.caller_key != rd.disp_key) { - res_request_key(rd.res, rd.caller_key); - } - - if (stack) res_request_freestack(rd.res, stack); - - return rc; -} diff --git a/src/crent370/resident/resident.c b/src/crent370/resident/resident.c deleted file mode 100644 index 46aa8c3..0000000 --- a/src/crent370/resident/resident.c +++ /dev/null @@ -1,470 +0,0 @@ -#include -#include -#include - -#if 0 -/* This is a map of the prefix area for the storage we obtain and free. - We don't actually use this PREFIX as the GCCMVS compiler generates - correct but inefficient code sequences, so we do our own shifts and - OR sequences instead to get slightly better code generation. */ -typedef struct prefix PREFIX; -struct prefix { - unsigned sp : 8; /* 1 bytes subpool */ - unsigned len : 24; /* 3 bytes GETMAIN'd length */ - unsigned key : 8; /* 1 byte PSW key for storage */ - unsigned size : 24; /* 3 byte caller requested size */ -} __attribute__((packed)); /* 8 byte prefix area */ -#endif - -__asm__("\n&FUNC SETC 'res_getmain'"); -static int res_getmain(RESDISP *rd, unsigned size, unsigned sp, void **stg) -{ - int rc = 0; - void *r1 = (void*)0; - unsigned lv; - unsigned char pswkey; - - if (!size) return -1; /* no size, fail */ - if (size > 0x00FFFFFF) return -1; /* too large, fail */ - - /* get the current PSW key */ - pswkey = res_request_key(rd->res, PSWKEYNONE); - - sp &= 0x000000FF; /* SP range 0-255 */ - - /* calc length value including prefix area, rounded to 64 byte boundary */ - lv = (size + 8 + (64-1)) & 0x00FFFFC0; - - /* request storage allocation for the requested subpool */ - __asm__ __volatile__ ("\n*** GETMAIN ***\n\t" - "GETMAIN RC,LV=(%2),SP=(%3)\n\t" - "LR\t%0,15 save the return code\n\t" - "LR\t%1,1 save the returned address" - : "=r"(rc), "=r"(r1) - : "r"(lv), "r"(sp) - : "0", "1", "14", "15"); - - if (rc==0) { - /* clear allocated storage, initialize storage prefix */ - __asm__ __volatile__ ("\n*** Clear Storage ***\n" -" LR 14,%0 => target (s)\n" -" LR 15,%1 => length (n)\n" -" SLR 0,0 => source (NULL)\n" -" SLR 1,1 => fill 0\n" -" MVCL 14,0 Set target to fill character" - : : "r"(r1), "r"(lv) : "0", "1", "14", "15"); - - *(unsigned*)(r1+0) = sp << 24 | lv; /* requested subpool and getmained size */ - *(unsigned*)(r1+4) = pswkey << 24 | size; /* psw key and caller requested size */ - r1 += 8; /* address returned to caller */ - if (stg) *stg = (void*)r1; - } - -quit: - return rc; -} - -__asm__("\n&FUNC SETC 'res_freemain'"); -static int res_freemain(RESDISP *rd, void *addr) -{ - int rc = 0; - unsigned size; - unsigned lv; - unsigned sp; - unsigned char pswkey; - unsigned char key; - - if (!addr) goto quit; - - addr = addr - 8; - sp = *(unsigned char *)(addr+0); - lv = *(unsigned *)(addr+0) & 0x00FFFFFF; - size = *(unsigned *)(addr+4) & 0x00FFFFFF; - key = *(unsigned *)(addr+4) >> 24; - - /* sanity checks */ - if (!lv || !size) { - /* possible duplicate freemain */ - /* wtodumpf(addr, 64, "%s duplicate freemain", __func__); */ - return -1; - } - if (lv - (size+8) > 64) { - /* this shouldn't happen since we allocate rounded to 64 bytes */ - /* wtodumpf(addr, 64, "%s check storage prefix", __func__); */ - return -1; - } - - /* set the PSW key to match the storage key */ - pswkey = res_request_key(rd->res, key); - - /* clear storage we're about to release */ - __asm__ __volatile__("\n*** Clear Storage ***\n" -" LR 14,%0 => target (s)\n" -" LR 15,%1 => length (n)\n" -" SLR 0,0 => source (NULL)\n" -" SLR 1,1 => fill 0\n" -" MVCL 14,0 Set target to fill character" - : : "r"(addr), "r"(lv) : "0", "1", "14", "15"); - - /* release allocated storage */ - __asm__ __volatile__("\n*** FREEMAIN ***\n\t" - "FREEMAIN RC,A=(%1),LV=(%2),SP=(%3)\n\t" - "LR\t%0,15" - : "=r"(rc) - : "r"(addr), "r"(lv), "r"(sp) - : "0", "1", "14", "15"); - - /* reset the PSW key */ - res_request_key(rd->res, pswkey); - -quit: - return rc; -} - -__asm__("\n&FUNC SETC 'res_vsnprintf'"); -static int -res_vsnprintf(RESDISP *rd, char *s, int n, const char *format, va_list arg) -{ - return vsnprintf(s, n, format, arg); -} - -__asm__("\n&FUNC SETC 'res_snprintf'"); -static int -res_snprintf(RESDISP *rd, char *s, int n, const char *format, ...) -{ - va_list arg; - int ret; - - va_start(arg, format); - ret = vsnprintf(s, n, format, arg); - va_end(arg); - return (ret); -} - -__asm__("\n&FUNC SETC 'res_sprintf'"); -static int -res_sprintf(char *s, const char *format, ...) -{ - va_list arg; - int ret; - - va_start(arg, format); - ret = vsnprintf(s, 1024, format, arg); - va_end(arg); - return (ret); -} - -typedef struct wtomsg { - short len; - short mcsflags; - char buf[128]; -} WTOMSG; - -static void __inline -wtoline(const WTOMSG *msg) -{ - __asm__ __volatile__("\n*** WTO ***\n\t" - "LA\t1,0(,%0)\n\t" - "SVC\t35 WTO" - : /* no output */ - : "r" (msg)); -} - -__asm__("\n&FUNC SETC 'res_wto'"); -static void -res_wto(RESDISP *rd, char *buf) -{ - int len = strlen(buf); - WTOMSG msg; - - do { - if (len <= 124) { - msg.len = len + 4; - msg.mcsflags = 0; - if (len > 0) memcpy(msg.buf, buf, len); - len = 0; - } - else { - char *p = &buf[124]; - - while(*p != ' ' && p > buf) p--; - - if (p==buf) { - p = &buf[124]; /* no spaces, use 124 characters */ - } - else if (*p==' ') { - p++; /* include last space */ - } - - msg.len = (int)(p-buf); /* length of message segment */ - msg.mcsflags = 0; - memcpy(msg.buf, buf, msg.len); - msg.buf[msg.len] = 0; - - /* shift the buffer left and adjust length */ - len -= msg.len; - if (len > 0) memcpy(buf, p, len); - buf[len] = 0; - msg.len += 4; - } - wtoline(&msg); - } while(len > 0); -} - -__asm__("\n&FUNC SETC 'res_vwtof'"); -static void -res_vwtof(RESDISP *rd, const char *text, va_list tList) -{ - int len; - char *p; - char buf[512]; - - len = vsnprintf(buf, sizeof(buf), text, tList); - if (len >= sizeof(buf)) len = sizeof(buf) - 1; - buf[len] = 0; - - /* if the buffer is formatted with newlines */ - p = strchr(buf, '\n'); - if (p) { - while(p) { - /* truncate at the newline */ - *p++ = 0; - /* write out the buffer */ - res_wto(rd, buf); - /* shift everything left */ - strcpy(buf, p); - /* look for next newline */ - p = strchr(buf, '\n'); - } - /* done */ - len = strlen(buf); - if (len==0) return; - } - - /* no newlines, do normal wto processing */ - buf[len] = 0; - res_wto(rd, buf); -} - -__asm__("\n&FUNC SETC 'res_wtof'"); -static void -res_wtof(RESDISP *rd, const char *text, ...) -{ - va_list tList; - - va_start(tList, text); - res_vwtof(rd ,text, tList); - va_end(tList); -} - -__asm__("\n&FUNC SETC 'res_wtodump'"); -static void -res_wtodump(RESDISP *rd, const char *title, void *varea, int size, int chunk) -{ - int indent = 0; - int i, j; - int iHex = 0; - int ie = 0; - int x = (chunk * 2) + ((chunk / 4) - 1); - unsigned char *area = (unsigned char*)varea; - unsigned char e; - char sHex[80]; - char eChar[80]; - - res_wtof(rd, "%*.*sDump of %08X \"%s\" (%d bytes)\n", - indent, indent, "", - area, title, size); - - for (i=0, j=0; size > 0;i++ ) { - if ( i==chunk ) { - res_wtof(rd, "%*.*s+%05X %-*.*s :%-*.*s:\n", - indent, indent, "", j, x, x, sHex, chunk, chunk, eChar); - j += i; - ie = iHex = i = 0; - } - iHex += res_sprintf(&sHex[iHex], "%02X", *area); - if ((i & 3) == 3) iHex += res_sprintf(&sHex[iHex], " "); - - e = *area; - - ie += res_sprintf(&eChar[ie], "%c", isgraph(e)?e:e==' '?e:'.'); - area++; - size--; - } - - if ( iHex ) { - res_wtof(rd, "%*.*s+%05X %-*.*s :%-*.*s:\n", - indent, indent, "", j, x, x, sHex, chunk, chunk, eChar); - } - -quit: - return; -} - -__asm__("\n&FUNC SETC 'res_wtodumpf'"); -static void -res_wtodumpf(RESDISP *rd, void *buf, int len, const char *fmt, ...) -{ - int rc = 0; - va_list list; - char title[80]; - - va_start(list, fmt); - vsnprintf(title, sizeof(title), fmt, list); - va_end(list); - - title[sizeof(title)-1] = 0; - - res_wtodump(rd, title, buf, len, 16); - - return; -} - -__asm__("\n&FUNC SETC 'res_getstack'"); -static int res_getstack(RESDISP *rd, unsigned size, void **stg) -{ - if (!size) size = 8192; - return res_getmain(rd, size, 3, stg); -} - -__asm__("\n&FUNC SETC 'res_freestack'"); -static int res_freestack(RESDISP *rd, void *addr) -{ - return res_freemain(rd, addr); -} - -/* note: res_enqdeq() is a helper function for various res_lock... functions */ -__asm__("\n&FUNC SETC 'res_enqdeq'"); -static int res_enqdeq(const char *qn, const char *rn, unsigned options, int deq) -{ - ENQPL pl = {0}; - int err = 1; - int len; - char qname[8]; - - if (!qn || !rn) goto quit; - - len = strlen(rn); - if (!len) goto quit; - - pl.end = ENQ_END_LAST | ENQ_END_OLD; - pl.len = (unsigned char)len; - - for(len=0; len<8 && qn[len]; len++) { - qname[len] = qn[len]; - } - while(len < 8) qname[len++] = ' '; - pl.qname = qname; - - pl.rname = (char*)rn; - - switch(options & ENQ_SCOPE) { - case ENQ_SYSTEMS: pl.opt |= ENQ_OPT_SYSTEMS; break; - case ENQ_SYSTEM: pl.opt |= ENQ_OPT_SYSTEM; break; - default: break; /* default is STEP */ - } - - if (deq) { - pl.opt = ENQ_OPT_HAVE; - __asm__ __volatile__( - "DS\t0H Request DEQ\n\t" - "LA\t1,%0\n\t" - "SVC\t48 DEQ" : : "m"(pl) : "0", "1", "15"); - } - else { - if (options & ENQ_SHR) pl.opt |= ENQ_OPT_SHARED; - switch(options & ENQ_RET) { - case ENQ_TEST: pl.opt |= ENQ_OPT_TEST; break; - case ENQ_USE: pl.opt |= ENQ_OPT_USE; break; - case ENQ_CHNG: pl.opt |= ENQ_OPT_CHNG; break; - default: pl.opt |= ENQ_OPT_HAVE; break; - } - __asm__ __volatile__( - "DS\t0H Request ENQ\n\t" - "LA\t1,%0\n\t" - "SVC\t56 ENQ" : : "m"(pl) : "0", "1", "15"); - } - - err = pl.rc; - -quit: - return err; -} - -__asm__("\n&FUNC SETC 'res_step_lock'"); -static int res_step_lock(RESDISP *rd, void *thing, int read) -{ - unsigned opts = ENQ_HAVE; - char rname[LOCKRNAMESZ]; - - if (read) opts |= ENQ_SHR; - - res_snprintf(rd, rname, sizeof(rname), LOCKRNAME, thing); - - return res_enqdeq(LOCKQNAME, rname, opts, 0); -} - -__asm__("\n&FUNC SETC 'res_step_unlock'"); -static int res_step_unlock(RESDISP *rd, void *thing, int read) -{ - unsigned opts = ENQ_HAVE; - char rname[LOCKRNAMESZ]; - - res_snprintf(rd, rname, sizeof(rname), LOCKRNAME, thing); - - return res_enqdeq(LOCKQNAME, rname, opts, 1); -} - -__asm__("\n&FUNC SETC 'res_system_lock'"); -static int res_system_lock(RESDISP *rd, void *thing, int read) -{ - unsigned opts = ENQ_SYSTEM | ENQ_HAVE; - char rname[SYSLOCKRNAMESZ]; - - if (read) opts |= ENQ_SHR; - - res_snprintf(rd, rname, sizeof(rname), SYSLOCKRNAME, thing); - - return res_enqdeq(SYSLOCKQNAME, rname, opts, 0); -} - -__asm__("\n&FUNC SETC 'res_system_unlock'"); -static int res_system_unlock(RESDISP *rd, void *thing, int read) -{ - unsigned opts = ENQ_SYSTEM | ENQ_HAVE; - char rname[SYSLOCKRNAMESZ]; - - res_snprintf(rd, rname, sizeof(rname), SYSLOCKRNAME, thing); - - return res_enqdeq(SYSLOCKQNAME, rname, opts, 1); -} - -/* static resident function table */ -static RESFUNC resfunc[] = { - RESFUNC_GETMAIN, /* 0x00 */ - RESFUNC_FREEMAIN, /* 0x01 */ - RESFUNC_WTO, /* 0x02 */ - RESFUNC_WTOF, /* 0x03 */ - RESFUNC_VWTOF, /* 0x04 */ - RESFUNC_VSNPRINTF, /* 0x05 */ - RESFUNC_SNPRINTF, /* 0x06 */ - RESFUNC_WTODUMP, /* 0x07 */ - RESFUNC_GETSTACK, /* 0x08 */ - RESFUNC_FREESTACK, /* 0x09 */ - RESFUNC_STEP_LOCK, /* 0x0A */ - RESFUNC_STEP_UNLOCK, /* 0x0B */ - RESFUNC_SYSTEM_LOCK, /* 0x0C */ - RESFUNC_SYSTEM_UNLOCK, /* 0x0D */ -}; - -/* returns resident function table address and number of functions in table */ -__asm__("\n&FUNC SETC 'resident'"); -unsigned resident(RESFUNC **func, unsigned *funcs) -{ - unsigned size = sizeof(resfunc) / sizeof(resfunc[0]); - - if (func) *func = &resfunc[0]; - if (funcs) *funcs = size; - - return size; -} diff --git a/src/crent370/resident/resinit.c b/src/crent370/resident/resinit.c deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/resident/resprlg.c b/src/crent370/resident/resprlg.c deleted file mode 100644 index 7b93787..0000000 --- a/src/crent370/resident/resprlg.c +++ /dev/null @@ -1,9 +0,0 @@ -#include - -/* This code gets copied into the RES structure as the prolog value */ -__asm__ __volatile__("CSECT ,\n" -" ENTRY\tRESPRLG\n" -"RESPRLG DS\t0H\n" -" LR\t0,15 save resident address\n" -" L\t15,8(,15) load dispatcher address (RES->disp)\n" -" BR\t15 branch to dispatcher"); diff --git a/src/crent370/resident/resprtf.c b/src/crent370/resident/resprtf.c deleted file mode 100644 index fd37f8b..0000000 --- a/src/crent370/resident/resprtf.c +++ /dev/null @@ -1,443 +0,0 @@ -/* RESPRNTF.C */ -#define STDIO_C -#include "stdio.h" -#include "string.h" -#include "stdlib.h" -#include "stdarg.h" -#include "ctype.h" -#include "errno.h" -#include "float.h" -#include "limits.h" -#include "stddef.h" - -#define outch(ch) *s++ = (char)ch - -static int -examine(char *s, int n, const char **formt, va_list *arg); - -#if 0 /* we've removed the double/floating point conversions */ -extern void -__dblcvt(double num, char cnvtype, size_t nwidth, int nprecision, char *result); -#endif -int -vsnprintf(char *s, int n, const char *format, va_list arg) -{ - char *sin = s; - int fin = 0; - int chcount = 0; - int vint; - double vdbl; - unsigned int uvint; - const char *vcptr; - int len; - int i; - char numbuf[50]; - char *nptr; - int *viptr; - - while (!fin) { - if (*format == '\0') { - /* end of format string */ - fin = 1; - goto next; - } - - if (*format == '%') { - /* format sequence */ - format++; - if (*format == 'd') { - /* format signed int */ - vint = va_arg(arg, int); - if (vint < 0) { - uvint = -vint; - } - else { - uvint = vint; - } - - nptr = numbuf; - do { - *nptr++ = (char)('0' + uvint % 10); - uvint /= 10; - } while (uvint > 0); - - if (vint < 0) { - *nptr++ = '-'; - } - - do { - nptr--; - if (chcount < n) outch(*nptr); - chcount++; - } while (nptr != numbuf); - } -#if 0 - else if (strchr("eEgGfF", *format) != NULL && *format != 0) { - /* format floating point */ - vdbl = va_arg(arg, double); - __dblcvt(vdbl, *format, 0, 6, numbuf); /* 'e','f' etc. */ - len = strlen(numbuf); - - for(i=0; i < len; i++) { - if (chcount < n) outch(numbuf[i]); - chcount++; - } - } -#endif - else if (*format == 's') { - /* format string */ - vcptr = va_arg(arg, const char *); - - if (vcptr == NULL) { - vcptr = "(null)"; - } - - len = strlen(vcptr); - for(i=0; i < len; i++) { - if (chcount < n) outch(vcptr[i]); - chcount++; - } - } - else if (*format == 'c') { - /* format character */ - vint = va_arg(arg, int); - if (chcount < n) outch(vint); - chcount++; - } - else if (*format == 'n') { - /* format number of character output so far */ - viptr = va_arg(arg, int *); - *viptr = chcount; - } - else if (*format == '%') { - /* format escape character % */ - if (chcount < n) outch('%'); - chcount++; - } - else { - /* any other format sequence */ - int extraCh; - - extraCh = n-chcount; - if (extraCh < 0) extraCh = 0; - extraCh = examine(s, extraCh, &format, &arg); - if (s!=NULL) { - for(i=0; i < extraCh; i++) { - if (chcount < n) s++; - chcount++; - } - } - else { - chcount += extraCh; - } - } - goto next; - } - - /* default, output next character */ - if (chcount < n) outch(*format); - chcount++; - -next: - format++; - } - - if (chcount < n) outch(0); - - return (chcount); -} - -static int -examine(char *s, int n, const char **formt, va_list *arg) -{ - int extraCh = 0; - int flagMinus = 0; - int flagPlus = 0; - int flagSpace = 0; - int flagHash = 0; - int flagZero = 0; - int width = 0; - int precision = -1; - int half = 0; - int lng = 0; - int specifier = 0; - int fin; - long lvalue; - short int hvalue; - int ivalue; - unsigned long ulvalue; - double vdbl; - char *svalue; - char work[50]; - int x; - int y; - int i; - int rem; - const char *format; - int base; - int fillCh; - int neg; - int length; - size_t slen; - - format = *formt; - - /* processing flags */ - fin = 0; - while (!fin) { - switch (*format) { - case '-': flagMinus = 1; - break; - case '+': flagPlus = 1; - break; - case ' ': flagSpace = 1; - break; - case '#': flagHash = 1; - break; - case '0': flagZero = 1; - break; - case '*': width = va_arg(*arg, int); - if (width < 0) - { - flagMinus = 1; - width = -width; - } - break; - default: fin = 1; - break; - } - - if (!fin) { - format++; - } - else { - if (flagSpace && flagPlus) { - flagSpace = 0; - } - if (flagMinus) { - flagZero = 0; - } - } - } - - /* processing width */ - if (isdigit((unsigned char)*format)) { - while (isdigit((unsigned char)*format)) { - width = width * 10 + (*format - '0'); - format++; - } - } - - /* processing precision */ - if (*format == '.') { - format++; - if (*format == '*') { - precision = va_arg(*arg, int); - format++; - } - else { - precision = 0; - while (isdigit((unsigned char)*format)) { - precision = precision * 10 + (*format - '0'); - format++; - } - } - } - - /* processing h/l/L */ - if (*format == 'h') { - /* all environments should promote shorts to ints, - so we should be able to ignore the 'h' specifier. - It will create problems otherwise. */ - /* half = 1; */ - } - else if (*format == 'l') { - lng = 1; - } - else if (*format == 'L') { - lng = 1; - } - else { - format--; - } - format++; - - /* processing specifier */ - specifier = *format; - - if (strchr("dxXuiop", specifier) != NULL && specifier != 0) { - if (precision < 0) { - precision = 1; - } - - if (lng) { - lvalue = va_arg(*arg, long); - } - else if (half) { - /* short is promoted to int, so use int */ - hvalue = va_arg(*arg, int); - if (specifier == 'u') lvalue = (unsigned short)hvalue; - else lvalue = hvalue; - } - else { - ivalue = va_arg(*arg, int); - if (specifier == 'u') lvalue = (unsigned int)ivalue; - else lvalue = ivalue; - } - - ulvalue = (unsigned long)lvalue; - if ((lvalue < 0) && ((specifier == 'd') || (specifier == 'i'))) { - neg = 1; - ulvalue = -lvalue; - } - else { - neg = 0; - } - - if ((specifier == 'X') || (specifier == 'x') || (specifier == 'p')) { - base = 16; - } - else if (specifier == 'o') { - base = 8; - } - else { - base = 10; - } - - if (specifier == 'p') { - precision = 8; - } - - x = 0; - while (ulvalue > 0) { - rem = (int)(ulvalue % base); - if (rem < 10) { - work[x] = (char)('0' + rem); - } - else { - if ((specifier == 'X') || (specifier == 'p')) { - work[x] = (char)('A' + (rem - 10)); - } - else { - work[x] = (char)('a' + (rem - 10)); - } - } - x++; - ulvalue = ulvalue / base; - } - - while (x < precision) { - work[x] = '0'; - x++; - } - - if (neg) { - work[x++] = '-'; - } - else if (flagPlus) { - work[x++] = '+'; - } - - if (flagZero) { - fillCh = '0'; - } - else { - fillCh = ' '; - } - - y = x; - if (!flagMinus) { - while (y < width) { - if (extraCh < n) outch(fillCh); - extraCh++; - y++; - } - } - - if (flagHash && ((unsigned char)specifier == 'X' || - (unsigned char)specifier == 'x')) { - if (extraCh < n) outch('0'); - extraCh++; - if (extraCh < n) outch('x'); - extraCh++; - } - - x--; - while (x >= 0) { - if (extraCh < n) outch(work[x]); - extraCh++; - x--; - } - - if (flagMinus) { - while (y < width) { - if (extraCh < n) outch(fillCh); - extraCh++; - y++; - } - } - } -#if 0 - else if (strchr("eEgGfF", specifier) != NULL && specifier != 0) { - if (precision < 0) { - precision = 6; - } - - vdbl = va_arg(*arg, double); - __dblcvt(vdbl, specifier, width, precision, work); /* 'e','f' etc. */ - slen = strlen(work); - - for(i=0; i < slen; i++) { - if (extraCh < n) outch(work[i]); - extraCh++; - } - } -#endif - else if (specifier == 's') { - svalue = va_arg(*arg, char *); - fillCh = ' '; - if (precision > 0) { - char *p; - - p = memchr(svalue, '\0', precision); - if (p != NULL) { - length = (int)(p - svalue); - } - else { - length = precision; - } - } - else if (precision < 0) { - length = strlen(svalue); - } - else { - length = 0; - } - - if (!flagMinus) { - if (length < width) { - extraCh += (width - length); - for (x = 0; x < (width - length); x++) { - if (extraCh < n) outch(fillCh); - } - } - } - - for (x = 0; x < length; x++) { - if (extraCh < n) outch(svalue[x]); - } - - extraCh += length; - if (flagMinus) { - if (length < width) { - for (x = 0; x < (width - length); x++) { - if (extraCh < n) outch(fillCh); - extraCh++; - } - } - } - } - - *formt = format; - return (extraCh); -} diff --git a/src/crent370/srb/srbfmain.c b/src/crent370/srb/srbfmain.c deleted file mode 100644 index 1c1017d..0000000 --- a/src/crent370/srb/srbfmain.c +++ /dev/null @@ -1,16 +0,0 @@ -#include - -__asm__("\n&FUNC SETC 'srb_freemain'"); -void srb_freemain(void *storage, unsigned size, int subpool) -{ -#if 1 - if (size < SRBSIZE) size = SRBSIZE; - - __asm("MODESET MODE=SUP,KEY=ZERO" : : : "0", "1", "14", "15"); - __asm("FREEMAIN R,A=(%0),LV=(%1),SP=(%2)\n\t" : : - "r"(storage), "r"(size), "r" (subpool) : "0", "1", "14", "15"); - __asm("MODESET MODE=PROB,KEY=NZERO" : : : "0", "1", "14", "15"); -#else - inline_srb_freemain(storage,size,subpool); -#endif -} diff --git a/src/crent370/srb/srbgmain.c b/src/crent370/srb/srbgmain.c deleted file mode 100644 index 45b3626..0000000 --- a/src/crent370/srb/srbgmain.c +++ /dev/null @@ -1,23 +0,0 @@ -#include - -__asm__("\n&FUNC SETC 'srb_getmain'"); -void *srb_getmain(unsigned size, int subpool) -{ -#if 1 - void *storage; - - if (size < SRBSIZE) size = SRBSIZE; - if (!subpool) subpool = SRB_SUBPOOL; - - __asm("MODESET MODE=SUP,KEY=ZERO" : : : "0", "1", "14", "15"); - __asm("GETMAIN R,LV=(%0),SP=(%1)\n\t" - "ST\t1,0(,%2)" : : - "r"(size), "r"(subpool), "r"(&storage) : "0", "1", "14", "15"); - memset(storage, 0, size); - __asm("MODESET MODE=PROB,KEY=NZERO" : : : "0", "1", "14", "15"); - - return storage; -#else - return inline_srb_getmain(size,subpool); -#endif -} diff --git a/src/crent370/svc/@@svc.c b/src/crent370/svc/@@svc.c deleted file mode 100644 index 5102b09..0000000 --- a/src/crent370/svc/@@svc.c +++ /dev/null @@ -1,26 +0,0 @@ -#include -#include -#include - -void __svc(SVCREGS *svcregs) -{ - int rc; - unsigned r15 = 0; - unsigned r0 = 0; - unsigned r1 = 0; - -#if 0 /* note: using wtodumpf() adds abot 16K of code */ - wtodumpf(svcregs, sizeof(SVCREGS), "%s SVCREGS", __func__); -#endif - - /* give control to svcmain() to perform the request */ - rc = svcmain(svcregs, &r15, &r0, &r1); - - /* return values back to caller */ - svcregs->r15 = r15; - svcregs->r0 = r0; - svcregs->r1 = r1; -} -#if 0 -__asm__("CVT LIST=YES,DSECT=YES"); -#endif diff --git a/src/crent370/test/date.conversion.untested.c b/src/crent370/test/date.conversion.untested.c deleted file mode 100644 index 9d8ffc9..0000000 --- a/src/crent370/test/date.conversion.untested.c +++ /dev/null @@ -1,668 +0,0 @@ -/* copied from https://www.metalc.guru/example3.html */ - -#ifdef __MVS__ -#pragma pack(reset) -#endif -#include -#include -#include -#include -#include "cvt.h" -#include "psa.h" -#include "metal.h" - -#ifndef __MVS_ -#include -#endif - -#define timerUnit 1.048576 - -const char weekdays[7][11] = { - "Sunday", - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday" -}; - -const char weekdaysShort[7][4] = { - "Sun", - "Mon", - "Tue", - "Wed", - "Thu", - "Fri", - "Sat" -}; - -const char months[12][10] = { - "January", - "February", - "March", - "April", - "May", - "June", - "July", - "August", - "September", - "October", - "November", - "December" -}; - -const char monthsShort[12][4] = { - "Jan", - "Feb", - "Mar", - "Apr", - "May", - "Jun", - "Jul", - "Aug", - "Sep", - "Oct", - "Nov", - "Dec" -}; - -/* -Julian dates (abbreviated JD) are a continuous count of days and fractions -since noon Universal Time on January 1, 4713 BCE (on the Julian calendar). -The time scale that is the basis for Julian dates is Universal Time, -and that 0h UT corresponds to a Julian date fraction of 0.5. - -Astronomical calculations include a year 0, so these dates are accordingly, -i.e. the year 4713 BC becomes astronomical year number -4712, etc. -In this system the year 0 is equivalent to 1 BC. - -The Julian Day Number (JDN) is the integer assigned to a whole solar day in -the Julian day count starting from noon Greenwich Mean Time, with Julian day -number 0 assigned to the day starting at noon on January 1, 4713 BC, -For example, the Julian day number for January 1, 2000, was 2,451,545. - -The Julian Date (JD) of any instant is the Julian day number for the preceding -noon in Greenwich Mean Time plus the fraction of the day since that instant. -Julian Dates are expressed as a Julian day number with a decimal fraction added. -For example, the Julian Date for 00:30:00.0 UT January 1,2013, is 2,456,293.520833. - -The routines used here return integer results, so the JDN is starts at 00:00:00 on -January 1, -4712, which is day 0. Day one is January 2, -4712, January 1, 2013 -is 2,456,293, etc. - -The changeover from the Julian calendar to the Gregorian calendar occurred in -October of 1582. Specifically, for dates on or before 4 October 1582, -the Julian calendar is used; for dates on or after 15 October 1582, -the Gregorian calendar is used. There is a ten-day gap in calendar dates, -but no discontinuity in Julian dates or days of the week: 4 October 1582 (Julian) -is a Thursday, which begins at JD 2299159.5; and 15 October 1582 (Gregorian) is a -Friday, which begins at JD 2299160.5. - - Jean Meeus, Astronomical Algorithms (Richmod, Virginia: Willmann-Bell, 1991) - - */ - -extern int isYearLeapYear(int year) -{ - return ((year % 4) == 0) && - (!(((year % 100) == 0) && ((year % 400) != 0))); -} - -extern int dayOfTheYEAR(int year, int month, int day) -{ - int doy; - int K; - int k; - - k = isYearLeapYear(year); - - if (k == 1) - { - K = 1; - } - else - { - K = 2; - } - - doy = (int) ((275 * month) / 9) - K * (int) ((month + 9) / 12) + day - 30; - - return doy; -} - -/* - From yyyy.ddd to yyyy.mm.dd - */ -extern void dayOfYearToCalendar(int year, int *month, int *day) -{ - int K; - int k; - double M; - double N; - int D; - - M = 0; - D = 0; - N = *day; - - k = isYearLeapYear(year); - - if (k == 1) - { - K = 1; - } - else - { - K = 2; - } - - if (N < 32) - { - M = 1; - } - else - { - M = (int) (((9 * (K + N)) / 275) + 0.98); - } - - D = N - (int) (275 * M / 9) + K * (int) ((M + 9) / 12) + 30; - - *month = M; - *day = D; - -} - -/* - GREGORIAN_TO_JD Determine Julian day number from Gregorian calendar date - - Name Epoch -Julian Date 12h Jan 1, 4713 BC - */ -extern int GregorianToJDN(int year, int month, int day) -{ - double JD; - double A; - double B; - int y; - int m; - - y = year; - m = month; - - A = 0; - B = 0; - - if (month == 1 || month == 2) - { - year -= 1; - month += 12; - } - - A = (int) (year / 100); - - if ((y <= 1582) && (m < 10) && (day < 5)) - { - B = 0; - } - else - { - B = 2 - A + (int) (A / 4); - } - - JD = (int) ((365.25 * (year + 4716))) + (int) ((30.6001 * - (month + 1))) + day + B - 1524.5; - - return (int) (JD + 0.5); -} - -extern int dayOfTheWeek(int JD) -{ - int dow; - dow = (JD + 1) % 7; - return dow; -} - -extern int ISODayOfTheWeek(int JD) -{ - int dow; - dow = JD % 7; - return dow; -} - -/* -ISO Ordinal date -YYYY-DDD -This system is sometimes incorrectly referred to as "Julian Date". -The astronomical Julian Date is a sequential count of the number -of days since day 0 beginning 1 January 4713 BC Greenwich noon, -Julian proleptic calendar. - */ - -extern int ISODayToJulianDN(int year, int day) -{ - return (day - 1) + GregorianToJDN(year, 1, 1); -} - -/* -Unix Time -Epoch Calculation -0h Jan 1, 1970 (JD - 2440587.5) × 86400 -The number of seconds elapsed since 00:00 Universal time on January 1, -1970 in the Gregorian calendar (Julian day 2440587.5). - */ -extern int UnixTime(int JD) -{ - int ut; - - ut = (JD - 2440587) * 86400; - - return ut; -} - -/* -ANSI Date Jan 1, 1601 (1) floor (JD - 2305812.5) -The ANSI Date defines January 1, 1601, as day 1, and is used as the origin -of COBOL integer dates. -This epoch is the beginning of the previous 400-year cycle of leap years -in the Gregorian calendar, which ended with the year 2000. - */ -extern int ANSIDate(int JD) -{ - int ad; - - ad = JD - 2299159; - - return ad; - -} - -/* - Lilian date - Epoch Calculation -Oct 15, 1582 floor (JD - 2299159.5) - -Used by IBM Language Environment (LE) software. - */ - -extern int LilianDate(int JD) -{ - int ld; - - ld = JD - 2299159 + 1; - - return ld; -} - -/* - IBM TOD Clock to JDN - Epoch - January 1, 1900 = JDN 2415021 - -z/Architecture Principles of Operation - -Time-of-Day Clock -The time-of-day (TOD) clock provides a high-resolution -measure of real time suitable for the indication of -date and time of day. The cycle of the clock is -approximately 143 years. A single TOD clock is -shared by all CPUs in the configuration. - -Format -The TOD clock is a 104-bit register. It is a binary -counter with the format shown in the following illustration. - -The TOD clock nominally is incremented by adding a -one in bit position 51 every microsecond. In models -having a higher or lower resolution, a different bit -position is incremented at such a frequency that the -rate of advancing the clock is the same as if a one -were added in bit position 51 every microsecond. -The resolution of the TOD clock is such that the -incrementing rate is comparable to the instruction -execution rate of the model. - -Communication between systems is facilitated by -establishing a standard time origin that is the calendar -date and time to which a clock value of -zero corresponds. January 1, 1900, 0 a.m. Coordinated -Universal Time (UTC) is recommended -as this origin, and it is said to begin the standard -epoch for the clock. - */ - -extern int TODToJDN(unsigned long long int TOD) -{ - long long int seconds; - long long int days; - long long int tod; - - tod = TOD / 4096; // 52 bit accuracy - seconds = tod / 1000000; // microseconds - days = seconds / 86400; // seconds in a day - days += 2415021; - - return (int) days; - -} - -extern void JulianDNToGregorian(int JD, int *year, int *month, int *day) -{ - double Z; - double F; - double B; - double C; - double D; - double E; - double A; - double alpha; - - Z = (int) (JD + .5); - F = (int) Z - Z; - - if (Z < 2299161) - { - A = Z; - } - else - { - alpha = (int) ((Z - 1867216.25) / 36524.25); - A = Z + 1 + alpha - (int) (alpha / 4); - } - B = A + 1524; - C = (int) ( (B - 122.1) / 365.25); - D = (int) ( 365.25 * C ); - E = (int) ( (B - D) / 30.6001 ); - - *day = B - D - (int) (30.6001 * E) + F; - - if (E < 14) - { - *month = E - 1; - } - else - { - *month = E - 13; - } - if (*month > 2) - { - *year = C - 4716; - } - else - { - *year = C - 4715; - } - -} - -#ifndef __MVS__ -#define __CSE_CURRENT_VERSION __CSE_VERSION_1 -#define __CSE_VERSION_1 1 -int __stckf(unsigned long long *); -__csysenv_t __cinit(struct __csysenv_s *); -#endif - -struct dateTime -{ - int jdn; // Julian Day Number - int Lilian; // Lilian Date used by LE - char yyyymmdd[9]; // e.g. 20141104 - char yyyymmdd2[11]; // e.g. 2014/11/04 - char yyyymmdd3[11]; // e.g. 2014-11-04 - int dayOfWeek; // 0 - 6 - char weekdayLong[9]; // Full text, e.g. "Monday" - char weekdayShort[4]; // Abbrev. Text, e.g. "Mon" - char time24[9]; // 24 hour hh:mm:ss - char time12[9]; // 12 hour hh:mm:ss - char ampm[3]; // AM or PM - char tz[7]; // timezone from UTC: +/-hh:mm - char monthLong[10]; // Full Text e.g. "January" - char monthShort[4]; // Abbrev. Month e.g. "Jan" - char yyyyddd[9]; // yyyy.ddd - char longDate[40]; // Tuesday, November 04, 2014 10:54:38AM - char longDate2[21]; // YYYY-MM-DDTHH:MM:SSZ - char longDate3[26]; // 2014-11-13T01:14:13+00:00 - - struct - { - // Binary Representation of Fields - short int tz; // From (CVTTZ * 1.048576) / 3600 - short int dayOfYear; // 1 - 366 - short int year; - short int month; - short int day; - short int hour12; - short int hour24; - short int minute; - short int second; - } bin; -} ; - -/* -Get Current Date Time Value Using Store Clock Fast - -The TOD clock is a 104-bit register. -The TOD clock nominally is incremented by adding a -one in bit position 51 every microsecond. - -STORE CLOCK FAST -STCKF Op1D(Op1B) -The current value of bits 0-63 of the TOD clock is -stored in the eight-byte field designated by the second- -operand address, provided the clock is in the -set, stopped, or not-set state. - -For STORE CLOCK FAST, when the value of a running clock is stored, -bits to the right of the rightmost bit that is incremented are -stored as zeros. - - Offsets -Dec Hex Type/Value Len Name (Dim) Description -304 (130) SIGNED 4 CVTTZ - Difference between local time and UTC (Coordinated Universal - Time) in binary units of 1.048576 seconds. -328 (148) ADDRESS 4 CVTEXT2 (0) - ADDRESS OF OS/VS1 - OS/VS2 COMMON EXTENSION -56 (38) DBL WORD 8 CVTLDTO (0) LOCAL TIME/DATE OFFSET -80 (50) DBL WORD 8 CVTLSO (0) LEAP SECOND OFFSET IN TOD FORMAT - -UtcTime = StckTimeStamp - CVTLSO -LocalTime = StckTimeStamp + CVTLDTO - CVTLSO - */ - -int getDate(struct dateTime *_dateTime) -{ - int rc; - unsigned long long int TOD; - int days; - int year; - int month; - int day; - int remainder; - int hour12; - int hour24; - int minute; - int second; - - double tod; - double diffSeconds; - double diffLeapSeconds; - long long int seconds; - - int ttz; - - // FFFFCA5B17000000 - - tod = 0; - diffSeconds = 0; - diffLeapSeconds = 0; - seconds = 0; - rc = 0; - - memset(_dateTime,0,sizeof(struct dateTime)); - -#ifndef __MVS__ - // (CE0E7F886BFCA21E)16 = (14847945245391102494)10 - // date time ˜ Friday, 2014/11/14 20:44:15 - TOD = 14847945245391102494ull; - ttz = 0xFFFFCA5B; - diffSeconds = ttz * 1.048576; -#endif - -#ifdef __MVS__ - struct psa *_psa; - struct cvt *_cvt; - struct cvtxtnt2 *_cvtxtnt2; - struct __csysenv_s _sysenv; - __csysenv_t _envtkn; - - /* The __cinit() function establishes a Metal C - environment based on the characteristics in the input - csysenv structure.*/ - - // Initialize the csysenv structure. - memset(&_sysenv, 0x0, sizeof(_sysenv)); - _sysenv.__cseversion = __CSE_VERSION_1; - - // Set heap initial and increment sizes. - _sysenv.__cseheap31initsize = 65536; - _sysenv.__cseheap31incrsize = 8192; - _sysenv.__cseheap64initsize = 20; - _sysenv.__cseheap64incrsize = 1; - - // Create a Metal C environment. */ - _envtkn = __cinit(&_sysenv); - - // Locate CVT. PSA->CVT - _psa = (void *) (intptr_t) 0; // PSA is at address 0 - _cvt = _psa->_flccvt; // CVT pointer is at offset 16 of PSA - _cvtxtnt2 = _cvt->cvtext2; // CVT 2nd extension has TZ offset - - // Calculate Time/Date Offset - Add - diffSeconds = _cvtxtnt2->cvtldto._cvtldtol; // LOCAL TIME/DATE OFFSET - diffSeconds *= timerUnit; // Multiply by clock timer units - - // Calculate Leap Seconds - Subtract - diffLeapSeconds = _cvtxtnt2->cvtlso; // Leap Seconds Difference in TOD - diffLeapSeconds *= timerUnit; // Multiply by clock timer units - - rc = __stckf(&TOD); // Use store clock fast to get TOD -#endif - - tod = TOD / 4096; // 51 bit accuracy = microseconds - seconds = tod / 1000000; // microseconds to seconds - - seconds += diffSeconds; // Add in time zone difference - seconds -= diffLeapSeconds; // Subtract Leap Seconds - days = seconds / 86400; // seconds in a day - days += 2415021; // Add in JDN Offset for 1900/01/01 - - _dateTime->jdn = days; - remainder = seconds % 86400; - - hour24 = remainder / 3600; - minute = (remainder % 3600) / 60; - second = remainder % 60; - - strcpy(_dateTime->ampm, "AM"); - - if (hour24 > 12) - { - hour12 = hour24 % 12; - strcpy(_dateTime->ampm, "PM"); - } - - _dateTime->bin.hour24 = hour24; - _dateTime->bin.hour12 = hour12; - _dateTime->bin.minute = minute; - _dateTime->bin.second = second; - _dateTime->bin.tz = diffSeconds / (double) 3600; - - JulianDNToGregorian(days, &year, &month, &day); - _dateTime->Lilian = LilianDate(_dateTime->jdn); - - _dateTime->bin.year = year; - _dateTime->bin.month = month; - _dateTime->bin.day = day; - - strcpy(_dateTime->monthLong, months[month - 1]); - strcpy(_dateTime->monthShort, monthsShort[month - 1]); - - sprintf(_dateTime->yyyymmdd, "%4.4i%2.2i%2.2i", year, month, day); - sprintf(_dateTime->yyyymmdd2, "%4.4i/%2.2i/%2.2i", year, month, day); - sprintf(_dateTime->yyyymmdd3, "%4.4i-%2.2i-%2.2i", year, month, day); - - sprintf(_dateTime->time24, "%2.2i:%2.2i:%2.2i", hour24, - minute,second); - - sprintf(_dateTime->tz, "%+2.2i:00", _dateTime->bin.tz); - - sprintf(_dateTime->time12, "%2.2i:%2.2i:%2.2i", hour12, minute,second); - - _dateTime->dayOfWeek = dayOfTheWeek(days); - strcpy(_dateTime->weekdayLong, weekdays[_dateTime->dayOfWeek]); - strcpy(_dateTime->weekdayShort, weekdaysShort[_dateTime->dayOfWeek]); - - _dateTime->bin.dayOfYear = dayOfTheYEAR(year, month, day); - sprintf(_dateTime->yyyyddd, "%4.4i.%3.3i", year, _dateTime->bin.dayOfYear); - - sprintf(_dateTime->longDate, "%s, %s %2.2i, %4.4i %s%s", _dateTime->weekdayLong, - _dateTime->monthLong, _dateTime->bin.day, year, - _dateTime->time12, _dateTime->ampm); - - // longDate2 YYYY-MM-DDTHH:MM:SSZ - sprintf(_dateTime->longDate2, "%4.4i-%2.2i-%2.2iT%2.2i:%2.2i:%2.2i", - year, month, day, hour24, minute,second); - - // longDate3 2014-11-13T01:14:13+00:00 - sprintf(_dateTime->longDate3, "%4.4i-%2.2i-%2.2iT%2.2i:%2.2i:%2.2i%6.6s", - year, month, day, hour24, minute, - second, _dateTime->tz); - -#ifdef __MVS__ - __cterm((__csysenv_t) _envtkn); -#endif - - return rc; - -} -#ifndef __MVS_ -int main() -{ - struct dateTime _dateTime; - // Test Date: Friday 11/14/2014 - getDate(&_dateTime); - - printf("long date: %s\n",_dateTime.longDate); - printf("long date2: %s\n",_dateTime.longDate2); - printf("long date3: %s\n",_dateTime.longDate3); - - printf("jdn: %i\n",_dateTime. jdn); // Julian Day Number - printf("Lilian: %i\n",_dateTime.Lilian); // Lilian Date used by LE - printf("yyyymmdd: %s\n", _dateTime.yyyymmdd); // e.g. 20141104 - printf("yyyymmdd2: %s\n",_dateTime.yyyymmdd2); // e.g. 2014/11/04 - printf("yyyymmdd3: %s\n", _dateTime.yyyymmdd3); // e.g. 2014-11-04 - printf("dayOfWeek: %i\n" , _dateTime.dayOfWeek); // 0 - 6 - printf("weekdayLong: %s\n", _dateTime.weekdayLong); // Full text, e.g. "Monday" - printf("weekdayShort: %s\n", _dateTime.weekdayShort); // Abbrev. Text, e.g. "Mon" - printf("time24: %s\n", _dateTime.time24); // 24 hour hh:mm:ss - printf("time12: %s\n",_dateTime.time12); // 12 hour hh:mm:ss - printf("ampm: %s\n", _dateTime.ampm); // AM or PM - printf("tz: %s\n", _dateTime.tz); // timezone from UTC: +/-hh:mm - printf("monthLong: %s\n",_dateTime.monthLong); // Full Text e.g. "January" - printf("monthShort: %s\n",_dateTime.monthShort); // Abbrev. Month e.g. "Jan" - printf("yyyyddd: %s\n",_dateTime.yyyyddd); // yyyy.ddd - - printf("tz: %i \n",_dateTime.bin.tz); - printf("day:%i \n",_dateTime.bin.dayOfYear); - printf("yr: %i \n",_dateTime.bin.year); - printf("month: %i \n",_dateTime.bin.month); - printf("day: %i \n",_dateTime.bin.day); - printf("hour12: %i \n",_dateTime.bin.hour12); - printf("hour24: %i \n",_dateTime.bin.hour24); - printf("min: %i \n",_dateTime.bin.minute); - printf("sec: %i \n",_dateTime.bin.second); - - return 0; - } - -#endif - diff --git a/src/crent370/test/makefile b/src/crent370/test/makefile deleted file mode 100644 index 16a734d..0000000 --- a/src/crent370/test/makefile +++ /dev/null @@ -1,56 +0,0 @@ -# -# makefile for crent370/thdmgr c files -# -# gccmvs compiler flags -INC1 := -I. -INC2 := -I/home/projects/crent370/include -CFLAGS := -S -O1 $(INC1) $(INC2) -# -# c source code files -C_FILES := testtime.c - -#deprecated: - -# non-generated .asm assembler source files -A_FILES := - -# generated .s assembler source files (one for each source file) -S_FILES := $(foreach filename,$(C_FILES),$(filename:.c=.s)) - -# object files (one for each .c and .asm source file) -O_FILES := $(foreach filename,$(C_FILES),$(filename:.c=.o)) \ - $(foreach filename,$(A_FILES),$(filename:.asm=.o)) - -# export MACn variables for mvsasm->jobasm script -export MAC1=MDR.CRENT370.MACLIB - -# export dataset names used by mvsasm script -export MVSASM_PUNCH=MDR.CRENT370.OBJECT -export MVSASM_SYSLMOD=MDR.CRENT370.NCALIB - -all: $(S_FILES) $(O_FILES) - @echo "Done" -# Note: PHONY is important here. Without it, implicit rules will try -# to build the executable "all", since the prereqs are ".o" files. -.PHONY: all - -# build object files from the generated assembler files (.s) -%.o: %.s - @echo "mvsasm $(notdir $<)" - @mvsasm "$<" - @touch "$@" - -# build object files from assembler files (.asm) -%.o: %.asm - @echo "mvsasm $(notdir $<)" - @mvsasm "$<" - @touch "$@" - -# compile C source files (.c) into assembler files (.s) -%.s: %.c - @echo "Compile $(notdir $<)" - gccmvs $(CFLAGS) -c $< -o $@ - -# remove generated files -clean: - @rm -f $(S_FILES) $(O_FILES) diff --git a/src/crent370/test/testcvt.c b/src/crent370/test/testcvt.c deleted file mode 100644 index 6a90a92..0000000 --- a/src/crent370/test/testcvt.c +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include -#include - -int main(int argc, char **argv) -{ - CVT *cvt = CVTPTR; - SCVT *scvt = cvt->cvtabend; - SVCTABLE *svctable = scvt->scvtsvct; - SVCENTRY *svcentry = svctable->svcentry; - - wtodumpf(cvt, sizeof(CVT), "CVT"); - wtodumpf(scvt, sizeof(SCVT), "SCVT"); - wtodumpf(svctable, sizeof(SVCTABLE), "SVCTABLE"); - - return 0; -} - -__asm__("IKJRB DSECT=YES"); diff --git a/src/crent370/test/testfile.c b/src/crent370/test/testfile.c deleted file mode 100644 index ee28faf..0000000 --- a/src/crent370/test/testfile.c +++ /dev/null @@ -1,179 +0,0 @@ -/* TESTFILE.C - test bed for stdio rewrite */ -#include -#include -#include -#include -#include -#include -#include "osdcb.h" -#include "osjfcb.h" -#include "svc99.h" -#include "clibary.h" -#include "clibdscb.h" -#include "cliblist.h" -#include "clibcrt.h" - -static int -myprt(void *udata, const char *fmt, ...) -{ - va_list arg; - char *buf = udata; - char *p; - - va_start(arg, fmt); - vsprintf(buf, fmt, arg); - va_end(arg); - - printf("Start:"); - for(p = strtok(buf, " -\n"); p; p = strtok(NULL, " -\n")) { - printf("\"%s\",", p); - } - printf("\n"); - - return 0; -} - -__asm__("\n&FUNC SETC 'myexit'"); -static void -myexit(int status, void *arg) -{ - char *wsa = __wsaget((void*)0x1234, 1234); - char buf[256]; - - wtof("In myexit() status=%d, arg=%08X, wsa=%08X", status, arg, wsa); - if (wsa) wtodumpf(wsa-16,1234+16,"WSA"); - wtof("Caller \"%s\"", __caller(buf)); -} - -int -main(int argc, char **argv) -{ - int rc = 0; - FILE *fp = 0; - DSLIST **dslist= 0; - DSLIST *d; - PDSLIST **pdslist = 0; - PDSLIST *m; - unsigned count; - unsigned n; - char *p; - DSCB1 *dscb1; - int c; - int i; - char buf[256]; - DSCB dscb; - ISPFSTAT ispfstat; - LOADSTAT loadstat; - -#if 0 - rc = __listc("MDR", "NONVSAM VOLUME", myprt, buf); - - rc = __dscbdv("MDR.ARRAY.CNTL", "MDR000", &dscb); - wtof("__dscbdv() rc=%d", rc); - if (!rc) { - dscb1 = &dscb.dscb1; - wtof("MDR.ARRAY.CNTL"); - wtof("credt %02u.%03u", - dscb1->credt[0], *(unsigned short*)&dscb1->credt[1]); - wtof("refd %02u.%03u", - dscb1->refd[0], *(unsigned short*)&dscb1->refd[1]); - wtof("blksz %u", dscb1->blksz); - wtof("lrecl %u", dscb1->lrecl); - } -#endif - -#if 1 - dslist = __listds("HERC01", "NONVSAM VOLUME", NULL /*"*.CNTL"*/); - wtof("__listds() returned %08X", dslist); - count = arraycount(&dslist); - wtof("count %u", count); - for(n=0; n < count; n++) { - d = dslist[n]; - wtof("%03u DSN(%s) VOL(%s) LRECL(%u) BLKSIZE(%u) DSORG(%s)", - n, d->dsn, d->volser, d->lrecl, d->blksize, d->dsorg); - wtof(" created %u/%02u/%02u (%u) last ref %u/%02u/%02u (%u)", - d->cryear, d->crmon, d->crday, d->crjday, - d->rfyear, d->rfmon, d->rfday, d->rfjday); - } - - __freeds(&dslist); -#endif - -#if 0 - fp = fopen("MDR.ARRAY.NCALIB", "r,record"); - wtof("fopen of MDR.ARRAY.NCALIB %08X", fp); - if (fp) { - wtof("lrecl %u", fp->lrecl); - wtof("blksize %u", fp->blksize); - wtof("recfm %02X", fp->recfm); - c = fread(buf, 1, sizeof(buf), fp); - if (c > 0) { - wtodump("DIR record", buf, c, 16); - } - } - if (fp) fclose(fp); -#endif - -#if 0 - pdslist = __listpd("MDR.CLIB.CNTL", NULL); - wtof("pdslist %08X", pdslist); - count = arraycount(&pdslist); - for(n=0; n < count; n++) { - m = pdslist[n]; - if (!m) continue; - - c = 12 + ((m->idc & PDSLIST_IDC_UDATA) * 2); - /* recfm=F or V */ - __fmtisp(m, &ispfstat); -#if 0 - wtodumpf(&ispfstat, sizeof(ispfstat), "ISPFSTAT"); - wtof(" "); -#endif - wtof("%-8.8s %s %s %s %s %s %s %s %s", - ispfstat.name, ispfstat.ttr, ispfstat.ver, - ispfstat.created, ispfstat.changed, ispfstat.init, - ispfstat.size, ispfstat.mod, ispfstat.userid); - } -#endif - -#if 0 - pdslist = __listpd("SYS1.LINKLIB", "IED*"); - wtof("pdslist %08X", pdslist); - count = arraycount(&pdslist); - for(n=0; n < count; n++) { - m = pdslist[n]; - if (!m) continue; - - c = 12 + ((m->idc & PDSLIST_IDC_UDATA) * 2); - - /* recfm=U */ - __fmtloa(m, &loadstat); -#if 0 - wtodumpf(&loadstat, sizeof(loadstat), "LOADSTAT"); - wtof(" "); -#endif - wtof("%-8.8s %s %s %-8.8s %s %s %s %s", - loadstat.name, loadstat.ttr, loadstat.size, loadstat.aliasof, - loadstat.ac, loadstat.ep, loadstat.attr, loadstat.ssi); - } -#endif - -#if 0 - fp = fopen("'MDR.CLIB.CNTL(TEST)'", "w"); - if (fp) { - DCB *dcb = fp->dcb; - wtof("%s(%s) ttr %06X", fp->dataset, fp->member, dcb->dcbrelad>>8); - wtof("dsorg %04X", dcb->dcbdsorg); - fclose(fp); - } -#endif - -#if 0 - wtof("main() was called by %s", __caller(0)); - on_exit(myexit, (void*)1); - on_exit(myexit, (void*)2); - on_exit(myexit, (void*)3); -#endif -quit: - return rc; -} diff --git a/src/crent370/test/testlink.c b/src/crent370/test/testlink.c deleted file mode 100644 index 520e78a..0000000 --- a/src/crent370/test/testlink.c +++ /dev/null @@ -1,54 +0,0 @@ -/* TESTLINK.C test __link() and __linkt() functions */ -#include "clibwto.h" -#include "cliblink.h" -#include "clibgrt.h" -#include "clibary.h" - -int main(int argc, char **argv) -{ - CLIBGRT *grt = __grtget(); - int rc = 0; - int prc = 0; - - wtof("in TESTLINK, argc=%d, argv=%08X", argc, argv); - - wtof("__link() to IEFBR14"); - rc = __link("IEFBR14", 0, 0, &prc); - wtof("rc=%d, prc=%d", rc, prc); - - prc = rc = 0; - wtof("__link() to BADPROG"); - rc = __link("BADPROG", 0, 0, &prc); - wtof("rc=%d, prc=%d", rc, prc); - - prc = rc = 0; - wtof("__linkds() to TESTSTAE"); - rc = __linkds("TESTSTAE", 0, 0, &prc); - wtof("rc=%d, prc=%d", rc, prc); - - prc = rc = 0; - wtof("__linkt() to IEFBR14"); - rc = __linkt("IEFBR14", 0, 0, &prc); - wtof("rc=%d, prc=%d", rc, prc); - - prc = rc = 0; - wtof("__linkds() to BADPROG"); - rc = __linkds("BADPROG", 0, 0, &prc); - wtof("rc=%d, prc=%d", rc, prc); - - prc = rc = 0; - wtof("__linkt() to TESTSTAE"); - rc = __linkt("TESTSTAE", 0, 0, &prc); - wtof("rc=%d, prc=%d", rc, prc); - - if (grt) { - unsigned n, count = arraycount(&grt->grtptrs); - wtof("grtptrs=%08X, count=%u", grt->grtptrs, count); - for(n=0; n < count; n++) { - wtof("grtptrs#%u = %08X", n, grt->grtptrs[n]); - wtodumpf(grt->grtptrs[n], 16, "grtptrs#%u", n); - } - } - - return rc; -} diff --git a/src/crent370/test/testload.c b/src/crent370/test/testload.c deleted file mode 100644 index 9303cf8..0000000 --- a/src/crent370/test/testload.c +++ /dev/null @@ -1,36 +0,0 @@ -#include - -int main(int argc, char **argv) -{ - const char *name = "TESTPRTF"; - void *epa; - void *lpa = 0; - unsigned size = 0; - char reply[16] = {0}; - - clib_apf_setup(argv[0]); - - super_key_do(PSWKEY8, __loadhi, name, &lpa, &epa, &size); - - wtof("%s %s LPA(%08X), EPA(%08X) SIZE(%u)", __func__, name, lpa, epa, size); -#if 0 - if (lpa) { - wtodumpf(lpa, size, "%s LPA", __func__); - } -#endif - if (epa) { - wtof("%s calling %s", __func__, name); - __asm__ __volatile__ ("\n*** CALL MODULE ***\n\t" - "LR\tR15,%0\n\t" - "BALR\tR14,R15" - : : "r"(epa) : "14", "15"); - } - - wtorf(reply, sizeof(reply)-1, "%s continue?", __func__); - wtof("%s reply was \"%s\"", __func__, reply); - - /* since we're only testing, we need to free the CSA storage */ - if (lpa) super_key_do(PSWKEY8, freemain, lpa); - - return 0; -} diff --git a/src/crent370/test/testmutx.c b/src/crent370/test/testmutx.c deleted file mode 100644 index 96044bb..0000000 --- a/src/crent370/test/testmutx.c +++ /dev/null @@ -1,51 +0,0 @@ -#include -#include -#include -#include -#include "clibwto.h" -#include "clibmutx.h" - -int -main(int argc, char**argv) -{ - int rc = 0; - CLIBMUTX *mutex = mtxnew(); - - wtof("mutex %08X", mutex); - if (!mutex) return 8; - - mtxlock(mutex); - wtof("mtxlock()"); - - rc = mtxheld(mutex); - wtof("mtxheld(), rc=%d", rc); - - rc = mtxnheld(mutex); - wtof("mtxnheld(), rc=%d", rc); - - rc = mtxavail(mutex); - wtof("mtxavail(), rc=%d", rc); - - wtof("sleeping 60 seconds"); - sleep(60); - - wtof("awake"); - - mtxunlk(mutex); - wtof("mtxunlk()"); - - rc = mtxheld(mutex); - wtof("mtxheld(), rc=%d", rc); - - rc = mtxnheld(mutex); - wtof("mtxnheld(), rc=%d", rc); - - rc = mtxavail(mutex); - wtof("mtxavail(), rc=%d", rc); - - wtof("freeing mutex %08X", mutex); - - mtxfree(mutex); - - return 0; -} diff --git a/src/crent370/test/testprtf.c b/src/crent370/test/testprtf.c deleted file mode 100644 index dcfa5b8..0000000 --- a/src/crent370/test/testprtf.c +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include -#include - -int main(int argc, char **argv) -{ - double val = 0.0; - int i; - - printf_("%%f | %%20f | %%20.10f | %%13.10f | %%g | %%13.3g\n"); - for(i=0; i < 25; i++) { - printf_("%f | %20f | %20.10f | %13.10f | %g | %13.3g\n", val, val, val, val, val, val); - - val += 1.1001; - } - - return 0; -} diff --git a/src/crent370/test/teststae.c b/src/crent370/test/teststae.c deleted file mode 100644 index 31847e8..0000000 --- a/src/crent370/test/teststae.c +++ /dev/null @@ -1,40 +0,0 @@ -#include "stdio.h" -#include "stdlib.h" -#include "ctype.h" -#include "clibstae.h" - -__asm__("\n&FUNC SETC 'die'"); -static int -die(void) -{ - int rc = 0; - - return (rc = 1 / rc); -} - -__asm__("\n&FUNC SETC 'main'"); -int -main(int argc, char**argv) -{ - int rc; - - printf("In main()\n"); -#if 0 - printf("Calling abendrpt(%d)\n", ESTAE_CREATE); - rc = abendrpt(ESTAE_CREATE, DUMP_SUPPRESS); - printf("After abendrpt(), rc=%d\n", rc); -#endif - -#if 1 - printf("Calling die()\n"); - rc = die(); - printf("After die(), rc=%d\n", rc); -#endif - -#if 0 - printf("Calling abendrpt(%d)\n", ESTAE_DELETE); - rc = abendrpt(ESTAE_DELETE, DUMP_DEFAULT); - printf("After abendrpt(), rc=%d\n", rc); -#endif // 0 - return rc; -} diff --git a/src/crent370/test/testsvc.c b/src/crent370/test/testsvc.c deleted file mode 100644 index 0825c2e..0000000 --- a/src/crent370/test/testsvc.c +++ /dev/null @@ -1,115 +0,0 @@ -/* standard library headers */ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* custom C library headers / MVS operating system specific */ -#include "clib.h" /* C library internals */ -#include "clibos.h" /* OS specific routines */ -#include "clibwsa.h" /* writable static area */ -#include "clibgrt.h" /* global runtime */ -#include "clibcrt.h" /* C runtime area for each task */ -#include "clibppa.h" /* C runtime program properties */ -#include "clibenv.h" /* C runtime environment vars */ -#include "clibstae.h" /* C runtime recovery routines */ -#include "clibwto.h" /* write to operator */ -#include "clibcib.h" /* console information block */ -#include "clibthrd.h" /* basic threads */ -#include "clibthdi.h" /* thread management */ -#include "cliblink.h" /* link to external program */ -#include "clibary.h" /* dynamic arrays */ -#include "svc99.h" /* dynamic allocation */ -#include "osiob.h" /* input/output block */ -#include "clibccw.h" /* CCW struct */ -#include "clibecb.h" /* ECB prototypes */ -#include "clibtmr.h" /* timer */ -#include "cvt.h" /* MVS CVT */ -#include "ikjtcb.h" /* MVS TCB */ - -int main(int argc, char **argv) -{ - int rc = 0; - CVT *cvt = CVTPTR; - unsigned *oldnew = cvt->cvttcbp; - TCB *tcb = (TCB*)oldnew[1]; - char *screen = NULL; - unsigned *svcaddr; - char *svclist; - unsigned char savekey = 0; - void *svcint = NULL; - - wtof("CVT is %08X", cvt); - wtof("oldnew is %08X", oldnew); - wtof("TCB is %08X", tcb); - - __asm__("L\tR1,=A(SVCINT)\n\t" - "ST\tR1,%0" : "=m"(svcint) : : "1"); - wtof("SVCINT is %08X", svcint); - - /* make this program APF authorized */ - rc = clib_apf_setup(argv[0]); - wtof("clib_apf_setup() rc=%d", rc); - - /* get PSW key=0 */ - rc = __super(PSWKEY0, &savekey); - wtof("__super(PSWKEY0,&savekey) rc=%d, savekey=%02X", rc, savekey); - - /* get storage for SVC screening table */ - screen = getmain(264, 253); /* LSQA, fixed, key=0 */ - wtof("getmain(264,253) screen=%08X", screen); - svcaddr = (unsigned *)&screen[0]; - svclist = &screen[8]; - - /* put address of SVC routine in first word */ - svcaddr[0] = (unsigned)svcint; - svcaddr[1] = 0xC0000000; /* indicate type 3/4 SVC */ - - /* prep screening table */ - memset(svclist, 0x80, 256); - svclist[255] = 0x00; /* set screen for SVC 255 */ - - /* put SVC screening table in TCB */ - tcb->tcbsvca2 = screen; /* install SVC screening table */ - tcb->tcbflgs7 |= TCBSVCS; /* enable SVC screening */ - - wtodumpf(screen, 264, "SCREEN"); - - /* invoke screened SVC */ - wtof("before SVC 255"); - __asm__("SVC\t255"); - wtof("after SVC 255"); - - /* remove SVC screening table */ - tcb->tcbflgs7 &= ~TCBSVCS; /* disbale SVC screening */ - tcb->tcbsvca2 = (void*)0; /* remove SVC screening table */ - - /* release screening table */ - wtof("before freemain"); - freemain(screen); - wtof("after freemain"); - - __prob(savekey, &savekey); - wtof("after __prob(savekey,savekey)"); - - return 0; -} - -__asm__("\n" -"SVCINT DS 0H\n" -" USING SVCINT,R6 SET BASE REGISTER\n" -"*\n" -" LR R11,R14 SAVE RETURN ADDRESS\n" -"*\n" -" WTO 'HELLO FROM SVC SCREEN ROUTINE',ROUTCDE=(1,11)\n" -"*\n" -" LR R14,R11 RESTORE RETURN ADDRESS\n" -" BR R14 EXIT SVC ROUTINE\n" -); - -__asm__("IKJTCB DSECT=YES,LIST=YES"); diff --git a/src/crent370/test/testtime.c b/src/crent370/test/testtime.c deleted file mode 100644 index 462740e..0000000 --- a/src/crent370/test/testtime.c +++ /dev/null @@ -1,67 +0,0 @@ -#include "time.h" -#include "stdarg.h" -#include "stdio.h" -#include "stddef.h" -#include "mvssupa.h" - - -extern int __isleap(unsigned yr); -extern unsigned __mtd(unsigned month); -extern long __ytd(unsigned yr); -extern long __ymdts(unsigned yr, unsigned mo, unsigned day); -extern void __stymd(long scalar, - unsigned *pyr, unsigned *pmo, unsigned *pday); - -#define isleap(y) __isleap(y) -#define months_to_days(m) __mtd(m) -#define years_to_days(y) __ytd(y) -#define ymd_to_scalar(y,m,d) __ymdts((y),(m),(d)) -#define scalar_to_ymd(s,y,m,d) __stymd((s),(y),(m),(d)) - -#define EPOCH 719163 /* Unix EPOCH 1970-01-01 */ - -__PDPCLIB_API__ time_t mktime(struct tm *timeptr) -{ - time_t tt; - - /* 70 = year 1970 || 205 = year 2105 */ - if ((timeptr->tm_year < 70) || (timeptr->tm_year > 205)) - { - tt = (time_t)-1; - } - else - { - tt = ymd_to_scalar(timeptr->tm_year + 1900, - timeptr->tm_mon + 1, - timeptr->tm_mday) - - EPOCH; - tt = tt * 24 + timeptr->tm_hour; - tt = tt * 60 + timeptr->tm_min; - tt = tt * 60 + timeptr->tm_sec; - } - *timeptr = *gmtime(&tt); - return (tt); -} - -int main(int argc, char **argv) -{ - int i; - time_t t = (time_t)0; - struct tm tm = {0}; - long epoch = ymd_to_scalar(1970, 1, 1); - - printf("Unix epoch 1970-01-01 value is %ld\n", epoch); - - tm.tm_year = 206; /* 206 = 2106 */ - tm.tm_mon = 0; - tm.tm_mday = 1; - tm.tm_hour = 1; - tm.tm_min = 23; - tm.tm_sec = 45; - for(i=0; (i < 12) && (t != (time_t)-1); tm.tm_mon++, i++) { - t = mktime(&tm); - printf("%s", asctime(&tm)); - } - - return 0; -} diff --git a/src/crent370/test/testtime.o b/src/crent370/test/testtime.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/test/testtime.s b/src/crent370/test/testtime.s deleted file mode 100644 index 24c0831..0000000 --- a/src/crent370/test/testtime.s +++ /dev/null @@ -1,153 +0,0 @@ - COPY PDPTOP - CSECT -* Program text area - DS 0F -* X-func mktime prologue -MKTIME PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function mktime code - L 3,0(11) - L 2,20(3) - A 2,=F'-70' - LA 4,135(0,0) - CLR 2,4 - BNH @@L2 - MVC 104(4,13),=F'-1' - B @@L3 -@@L2 EQU * - L 2,20(3) - A 2,=F'1900' - ST 2,88(13) - L 2,16(3) - A 2,=F'1' - ST 2,92(13) - MVC 96(4,13),12(3) - LA 1,88(,13) - L 15,=V(@@YMDTS) - BALR 14,15 - A 15,=F'-719163' - ST 15,104(13) - LR 2,15 - SLL 2,1 - AR 2,15 - SLL 2,3 - A 2,8(3) - ST 2,104(13) - SLL 2,4 - S 2,104(13) - SLL 2,2 - A 2,4(3) - ST 2,104(13) - SLL 2,4 - S 2,104(13) - SLL 2,2 - A 2,0(3) - ST 2,104(13) -@@L3 EQU * - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(GMTIME) - BALR 14,15 - MVC 0(36,3),0(15) - L 15,104(13) -* Function mktime epilogue - PDPEPIL -* Function mktime literal pool - DS 0F - LTORG -* Function mktime page table - DS 0F -@@PGT0 EQU * - DC A(@@PG0) -@@LC0 EQU * - DC C'Unix epoch 1970-01-01 value is %ld' - DC X'15' - DC X'0' -@@LC1 EQU * - DC C'%s' - DC X'0' - DS 0F - COPY PDPMAIN -* X-func main prologue -MAIN PDPPRLG CINDEX=1,FRAME=144,BASER=12,ENTRY=YES - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function main code - SLR 6,6 - LA 4,104(,13) - LA 5,36(0,0) - LR 2,6 - LR 3,6 - MVCL 4,2 - MVC 88(4,13),=F'1970' - MVC 92(4,13),=F'1' - MVC 96(4,13),=F'1' - LA 1,88(,13) - L 15,=V(@@YMDTS) - BALR 14,15 - MVC 88(4,13),=A(@@LC0) - ST 15,92(13) - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - MVC 124(4,13),=F'206' - ST 6,120(13) - MVC 116(4,13),=F'1' - MVC 112(4,13),=F'1' - MVC 108(4,13),=F'23' - MVC 104(4,13),=F'45' - LR 3,6 - LA 4,104(,13) -@@L10 EQU * - ST 4,88(13) - LA 1,88(,13) - L 15,=A(MKTIME) - BALR 14,15 - LR 6,15 - ST 4,88(13) - LA 1,88(,13) - L 15,=V(ASCTIME) - BALR 14,15 - MVC 88(4,13),=A(@@LC1) - ST 15,92(13) - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - L 2,120(13) - A 2,=F'1' - ST 2,120(13) - A 3,=F'1' - LA 2,11(0,0) - CR 3,2 - BH @@L6 - L 2,=F'-1' - CLR 6,2 - BNE @@L10 -@@L6 EQU * - SLR 15,15 -* Function main epilogue - PDPEPIL -* Function main literal pool - DS 0F - LTORG -* Function main page table - DS 0F -@@PGT1 EQU * - DC A(@@PG1) - END @@MAIN diff --git a/src/crent370/test/testtmr.c b/src/crent370/test/testtmr.c deleted file mode 100644 index 637c161..0000000 --- a/src/crent370/test/testtmr.c +++ /dev/null @@ -1,41 +0,0 @@ -#include - -int main(int argc, char **argv) -{ - TMR *tmr; - TQEID id; - TQEID every; - int i; - ECB ecb; - - wtof("%s %s Timer Test", __func__, argv[0]); - - tmr = tmr_get(); - wtof("%s TMR=%08X", __func__, tmr); - - /* timer with timer purged after timeout test */ - for(i=50; i < 60; i++) { - ecb = 0; - id = tmr_ecb(&ecb, i); - wtof("%s TQEID(%08X) BINTVL(%u)", __func__, id, i); - ecb_wait(&ecb); - wtof("%s TQEID(%08X) ECB(%08X)", __func__, id, ecb); - } - - /* recurring timer for every interval test */ - ecb = 0; - every = tmr_ecb_every(&ecb, 5); /* 5 = .05 seconds */ - wtof("%s tmr_ecb_every(%08X, 5) ID(%u)", __func__, &ecb, every); - - for(i=0; i < 100; i++) { - ecb = 0; - ecb_wait(&ecb); - wtof("%s POSTED ECB(%08X)", __func__, ecb); - } - - /* remove the TQE for the "every" TQE */ - i = tqe_purge(every); - wtof("%s tqe_purge(%08X) RC(%d)", __func__, every, i); - - return 0; -} diff --git a/src/crent370/test/testvsam.c b/src/crent370/test/testvsam.c deleted file mode 100644 index df4ce76..0000000 --- a/src/crent370/test/testvsam.c +++ /dev/null @@ -1,76 +0,0 @@ -#include -#include -#include -#include -#include -#include "clibvsam.h" -#include "clibwto.h" - -int -main(int argc, char **argv) -{ - int rc = 0; - VSFILE *vs = 0; - unsigned lrecl = 0; - unsigned cinv = 0; - unsigned n = 0; - char *buf = 0; - -#if 0 - rc = vsopen("VSAMESDS", VSTYPE_ESDS, VSACCESS_SEQ, VSMODE_OUT, &vs); -#else - rc = vsopen("VSAMESDS", VSTYPE_ESDS, VSACCESS_ADR, VSMODE_UPD, &vs); -#endif - wtof("vsopen() rc=%d", rc); - wtof("vsopen() handle=%08X", vs); - if (!vs) goto quit; - - wtodumpf(vs, sizeof(VSFILE), "VSFILE"); - - lrecl = vslrecl(vs); - cinv = vscinv(vs); - - wtof("LRECL %u", lrecl); - wtof("CINV %u", cinv); - -#if 1 - buf = calloc(1,lrecl); - if (!buf) goto quit; - - n = 3*lrecl; -#if 0 - vssteq(vs, buf, lrecl, &n, 4); - wtof("vssteq() rc=%d", rc); -#else - rc = vsread(vs, buf, lrecl, &n, 4); - wtof("vsread() rc=%d", rc); -#endif - memset(buf, '*', lrecl); - rc = vsupdate(vs, buf, lrecl); - wtof("vsupdate() rc=%d", rc); - vsclear(vs); - - for(n=0;n -#include -#include -#include -#include "clibstae.h" /* C runtime recovery routines */ -#include /* Process sysout control block */ - -static void authorize(void); -static int makeauth(const char *id); - -int main(int argc, char **argv) -{ - int rc; - SSSO ssso = {0}; - - rc = makeauth(argv[0]); - if (rc) goto quit; - - rc = jesxwrtr(&ssso, "G", NULL, NULL); - switch (rc) { - case SSSORTOK: /* 0 dataset selected */ - /* allocate selected SYSOUT dataset and process it */ - break; - case SSSOEODS: /* 4 no more datasets */ - /* sleep a bit then try again */ - break; -#if 0 - case SSSONJOB: /* 8 JOB NOT FOUND */ - case SSSOINVA: /* 12 INVALID SEARCH ARGUMENTS */ - case SSSOUNAV: /* 16 UNABLE TO PROCESS NOW */ - case SSSODUPJ: /* 20 DUPLICATE JOBNAMES */ - case SSSOINVJ: /* 24 INVALID JOBNAME/JOBID COMBO */ - case SSSOIDST: /* 28 INVALID DESTINATION SPECIFIED */ - case -1: /* -1 bad/missing required parms */ -#endif - default: - wtof("%s unexpected return code from jesxwrtr rc=%d", rc); - goto quit; - } - -quit: - jesxdone(&ssso); - return rc; -} - -__asm__("\n&FUNC SETC 'makeauth'"); -static int -makeauth(const char *id) -{ - int rc = 0; - int steplib = 0; - - if (!id) id = "TESTWRTR"; - - /* check for APF authorization */ - __asm__("TESTAUTH\tFCTN=1\n\tST\t15,0(,%0)" : : "r"(&rc)); - if (rc==0) { - wtof("XWRTR010I %s is APF authorized", id); - } - else { - /* get APF authorization */ - try(authorize,0); - __asm__("TESTAUTH\tFCTN=1\n\tST\t15,0(,%0)" : : "r"(&rc)); - if (rc==0) { - wtof("XWRTR011I %s was APF authorized via SVC 244", id); - } - else { - wtof("XWRTR012E %s unable to dynamically obtain APF authorization, rc=%d", - id, rc); - rc = -1; - goto quit; - } - } - - __asm__("\n" -" MODESET KEY=ZERO,MODE=SUP\n" -" ICM 1,15,PSATOLD-PSA(0) Get our TCB address\n" -" ICM 1,15,TCBJLB-TCB(1) Get STEPLIB DCB\n" -" BZ APFQUIT No STEPLIB\n" -" USING IHADCB,1 DECLARE IT\n" -" L 1,DCBDEBAD LOAD DEB FOR STEPLIB\n" -" N 1,=X'00FFFFFF' FIX HIGH BYTE\n" -" USING DEBBASIC,1\n" -" OI DEBFLGS1,DEBAPFIN TURN ON APF LIBRARY BIT\n" -" DROP 1\n" -"APFQUIT DS 0H\n" -" ST 1,0(,%0)\n" -" MODESET KEY=NZERO,MODE=PROB" : : "r"(&steplib)); - - if (steplib) { - wtof("XWRTR013I STEPLIB is now APF authorized"); - } - -quit: - return rc; -} - -__asm__("\n&FUNC SETC 'authorize'"); -static void authorize(void) -{ - __asm__( - "SR\t0,0\n\t" - "LA\t1,1\n\t" - "SVC\t244" - ); -} - -__asm__("PRINT NOGEN"); -__asm__("IHAPSA , MAP LOW STORAGE"); -__asm__("CVT DSECT=YES"); -__asm__("IKJTCB DSECT=YES"); -__asm__("DCBD DSORG=PO,DEVD=DA"); -__asm__("IEZDEB"); -__asm__("PRINT GEN"); -__asm__("CSECT"); - diff --git a/src/crent370/thdmgr/@@cminit.c b/src/crent370/thdmgr/@@cminit.c deleted file mode 100644 index d5b03b6..0000000 --- a/src/crent370/thdmgr/@@cminit.c +++ /dev/null @@ -1,474 +0,0 @@ -/* @@CMINIT.C - cthread_init() -*/ -#include "clibthdi.h" - -#if 0 -#define WTODEBUG /* define for wtof() debug messages */ -#endif - -static int dispatch_thread(CTHDMGR *mgr); -static int dispatch_thread_init(CTHDMGR *mgr); -static int dispatch_thread_check(CTHDMGR *mgr); -static int dispatch_thread_quiesce(CTHDMGR *mgr); -static int dispatch_thread_work(CTHDMGR *mgr, int timer); -static int dispatch_thread_create(CTHDMGR *mgr); -static int dispatch_thread_term(CTHDMGR *mgr); -static int dispatch_thread_timed_wait(CTHDMGR *mgr, int quiesce, int pending, int timer); -static void dispatch_work(CTHDMGR *mgr, CTHDWORK *work); - -__asm__("\n&FUNC SETC 'cthread_manager_init'"); -CTHDMGR * -cthread_manager_init(unsigned count, void *func, void *udata, unsigned stacksize) -{ - CTHDMGR *mgr = calloc(1, sizeof(CTHDMGR)); - unsigned *psa = (unsigned *)0; - unsigned *ascb = (unsigned *)psa[0x224/4]; - unsigned asid = ((ascb[0x24/4]) >> 16); - unsigned n; - - if (!mgr) goto quit; - - strcpy(mgr->eye, CTHDMGR_EYE); - mgr->func = func; - mgr->udata = udata; - mgr->state = CTHDMGR_STATE_INIT; - mgr->stacksize = stacksize; - mgr->mintask = count > 5 ? 3 : count > 3 ? 1 : 0; - mgr->maxtask = count; - sprintf(mgr->rname, "CTHDMGR.%04X.%08X", asid, mgr); - - /* create thread manager dispatch thread */ - mgr->task = cthread_create_ex(dispatch_thread, mgr, 0, 32*1024); - if (!mgr->task) { - cthread_manager_term(&mgr); - goto quit; - } - -quit: - return mgr; -} - -__asm__("\n&FUNC SETC 'dispatch_thread'"); -static int -dispatch_thread(CTHDMGR *mgr) -{ - int rc = 0; - int running = 1; - int pending = 0; - int timer = 1; /* assume we need timer */ - int quiesce = 0; - unsigned count = 0; - unsigned n; - CTHDWORK *work; - CTHDTASK *task; - - /* initialize worker threads for dispatcher */ - dispatch_thread_init(mgr); - - /* do {} while(running) */ - do { - /* wait for something to do or timeout */ - rc = dispatch_thread_timed_wait(mgr, quiesce, pending, timer); - - /* check post code value */ - if (rc == CTHDMGR_POST_SHUTDOWN) { - /* server is shutting down NOW */ - running = 0; - break; - } - else if (rc == CTHDMGR_POST_QUIESCE) { - /* server is shutting down, start termination of threads */ - quiesce = 1; - } - - /* check for worker thread termination or workers that need timer post */ - timer = dispatch_thread_check(mgr); - - if (quiesce) { - /* quiesced, we need to shutdown any waiting workers */ - running = dispatch_thread_quiesce(mgr); - if (!running) break; - } - else { - pending = dispatch_thread_work(mgr, timer); - } - -#if 0 - if (pending) { - /* We have queued work we could't dispatch. */ - /* Create a worker thread if we're less than the max */ - dispatch_thread_create(mgr); - - /* Wait .1 seconds so any new worker threads can initialize. */ - lock(mgr,0); - mgr->state = CTHDMGR_STATE_WAITING; - unlock(mgr,0); - __asm__("STIMER WAIT,BINTVL==F'10' 0.10 seconds"); - - /* Post our thread manager (mgr->wait) ECB. */ - cthread_post(&mgr->wait, CTHDMGR_POST_DATA); - } -#endif - - } while(running); - - /* if we have any workers still running we have to kill them */ - dispatch_thread_term(mgr); - -quit: - return 0; -} - -__asm__("\n&FUNC SETC 'dispatch_thread_init'"); -static int -dispatch_thread_init(CTHDMGR *mgr) -{ - int rc = 0; - volatile unsigned count = 0; - unsigned n; - - lock(mgr,0); - - mgr->state = CTHDMGR_STATE_RUNNING; - - /* do we need to start some workers? */ - count = arraycount(&mgr->worker); - for(n=count; n < mgr->mintask; n++) { - /* start another worker thread */ - cthread_worker_add(mgr); - } - - unlock(mgr,0); - - return rc; -} - -__asm__("\n&FUNC SETC 'dispatch_thread_timed_wait'"); -static int -dispatch_thread_timed_wait(CTHDMGR *mgr, int quiesce, int pending, int timer) -{ - int rc = 0; - unsigned timeout; /* 100 = 1 second */ - - if (quiesce) { - /* server is shutting down */ - timeout = 10; /* 0.10 seconds */ - goto wait; - } - - if (pending) { - /* We have queued work and not enough worker threads. */ - pending = 0; /* reset the pending flag */ - timeout = 10; /* 0.10 seconds */ - - /* Create a worker thread if we're less than the max */ - dispatch_thread_create(mgr); - goto wait; - } - - if (timer) { - /* We have least 1 worker that wants timer post - * OR we had a worker thread terminate. - */ - timeout = 100; /* 1 second */ - goto wait; - } - - /* We don't have any workers that need a timer pop */ - timeout = 1000; /* 10 seconds */ - -wait: - /* prepare to wait for timer or work */ - lock(mgr,0); - mgr->state = CTHDMGR_STATE_WAITING; - unlock(mgr,0); - - /* wait for work *or* timeout, rc==CTHDMGR_POST_TIMER */ - rc = cthread_timed_wait(&mgr->wait, timeout, CTHDMGR_POST_TIMER); - - lock(mgr,0); - mgr->state = CTHDMGR_STATE_RUNNING; - unlock(mgr,0); - - return rc; -} - -__asm__("\n&FUNC SETC 'dispatch_thread_check'"); -static int -dispatch_thread_check(CTHDMGR *mgr) -{ - int rc = 0; - unsigned count = 0; - unsigned deleted = 0; - unsigned n; - CTHDWORK *work; - CTHDTASK *task; - - lock(mgr,0); - - /* do we need to do some cleanup for our workers threads? */ - count = arraycount(&mgr->worker); - for(n=0; n < count; n++) { - work = mgr->worker[n]; - if (!work) continue; - - task = work->task; - if (!task) continue; - - if (work->opt & CTHDWORK_OPT_TIMER) { - rc = 1; /* indicate timer interval needed */ - } - - /* has this worker subtask ended? */ - if (task->termecb & 0x40000000) { - /* this worker thread has terminated */ - unsigned sys = (task->termecb >> 12) & 0XFFF; - - if (sys) { - wtof("worker %08X, task %08X ended ABEND S%03X", - work, task, sys); - } - - work->state = CTHDWORK_STATE_STOPPED; - cthread_delete(&task); - work->task = 0; - cthread_worker_del(&work); - rc = 1; /* indicate timer interval needed or deleted worker */ - /* we can only process one termination at a time */ - break; /* so we leave the loop now */ - } - } - - unlock(mgr,0); - - return rc; -} - -__asm__("\n&FUNC SETC 'dispatch_thread_quiesce'"); -static int -dispatch_thread_quiesce(CTHDMGR *mgr) -{ - int running = 1; - unsigned count = 0; - unsigned n; - CTHDWORK *work; - CTHDTASK *task; - - lock(mgr,0); - - /* we shut down workers in reverse order we created them */ - count = arraycount(&mgr->worker); - for(n=count; n > 0; n--) { - work = arrayget(&mgr->worker, n); - if (!work) continue; - - task = work->task; - if (!task) continue; - - if (task->termecb & 0x40000000) continue; - if (work->state != CTHDWORK_STATE_WAITING) continue; - - cthread_worker_shutdown(work); - } - - unlock(mgr,0); - - if (!count) running = 0; /* no worker threads */ - - return running; -} - -__asm__("\n&FUNC SETC 'dispatch_work'"); -static void -dispatch_work(CTHDMGR *mgr, CTHDWORK *work) -{ - time64_t now; - unsigned count; - CTHDTASK *task; - int post_request; - int post_timer; - time64_t tmp; - - /* Note: caller holds lock on mgr */ - - if (!work) goto quit; /* no worker thread */ - - task = work->task; - if (!task) goto quit; /* no worker task */ - - if (task->termecb & 0x40000000) goto quit; /* terminated */ - if (work->state != CTHDWORK_STATE_WAITING) goto quit; /* busy */ - - /* get number of waiting queued request */ - post_request = count = arraycount(&mgr->queue); - - /* check worker processing options */ - if (work->opt & CTHDWORK_OPT_NOWORK) { - /* Worker doesn't want any pending work */ - post_request = 0; /* force no work available */ - if (!(work->opt & CTHDWORK_OPT_TIMER)) { - /* Worker does not want timer */ - goto quit; /* no post for this worker */ - } - } - else { - /* Worker wants to get pending work */ - if (!post_request) { - /* But we don't have any work, so timer only */ - if (!(work->opt & CTHDWORK_OPT_TIMER)) { - /* Worker does not want timer post */ - goto quit; /* no post for this worker */ - } - } - } - - /* get the current time and calculate if we need to post timer */ - now = time64(NULL); /* get the current time_t value */ -#if 0 - post_timer = ((now - work->wait_time) > 1); -#else - __64_sub(&now, &work->wait_time, &tmp); - post_timer = __64_to_i32(&tmp); -#endif - - if (post_request || post_timer) { - /* common code for both request and timer processing */ - __64_add_u32(&mgr->dispatched, 1, &mgr->dispatched); - __64_add_u32(&work->dispatched, 1, &work->dispatched); - work->disp_time = now; - work->state = CTHDWORK_STATE_DISPATCH; - } - - if (post_request) { - /* dispatch this worker with queued work request */ - work->queue = arraydel(&mgr->queue, 1); - cthread_post(&work->wait, CTHDWORK_POST_REQUEST); - } - else if (post_timer) { - /* dispatch this worker with timer post */ - work->queue = NULL; - cthread_post(&work->wait, CTHDWORK_POST_TIMER); - } - -quit: - return; -} - -__asm__("\n&FUNC SETC 'dispatch_thread_work'"); -static int -dispatch_thread_work(CTHDMGR *mgr, int timer) -{ - int rc = 0; - unsigned pending = 0; - unsigned count = 0; - unsigned n; - - lock(mgr,0); - - /* do we need to start some workers? */ - count = arraycount(&mgr->worker); - if (count < mgr->mintask) { - /* add a worker task to this thread manager */ - cthread_worker_add(mgr); - count = arraycount(&mgr->worker); - } - - if (count > mgr->maxtask) { - /* deleted the last worker task from this thread manager */ - for(n=count; n > 0; n--) { - CTHDWORK *work = arrayget(&mgr->worker, n); - if (!work) continue; - if (work->state == CTHDWORK_STATE_WAITING) { - /* worker is waiting so it's safe to delete */ - cthread_worker_shutdown(work); - cthread_worker_del(&work); - count--; - if (count > mgr->maxtask) continue; - break; - } - } - } - - if (!timer) { - /* no timer post needed, do we have any queued work? */ - if (!arraycount(&mgr->queue)) { - /* no queued work available, do nothing */ - goto quit; - } - } - - /* do we have any worker subtask? */ - count = arraycount(&mgr->worker); - if (count) { - /* give queued request to waiting workers */ - /* all other workers will receive a timer post */ - mgr->start++; - if (mgr->start >= count) mgr->start = 0; - - /* give queued work or timer post to worker threads */ - for(n=mgr->start; n < count; n++) { - dispatch_work(mgr, mgr->worker[n]); - } - - /* now do the worker threads we skipped before */ - for(n=0; n < mgr->start; n++) { - dispatch_work(mgr, mgr->worker[n]); - } - - /* see if we have anything pending in the queue */ - if (arraycount(&mgr->queue)) rc = 1; - } - -quit: - unlock(mgr,0); - - return rc; -} - -__asm__("\n&FUNC SETC 'dispatch_thread_create'"); -static int -dispatch_thread_create(CTHDMGR *mgr) -{ - int rc = 0; - unsigned count = 0; - - lock(mgr,0); - - /* do we need to start additional workers? */ - count = arraycount(&mgr->worker); - if (count < mgr->maxtask) { - /* add a worker task to this thread manager */ - cthread_worker_add(mgr); - } - - unlock(mgr,0); - return rc; -} - -__asm__("\n&FUNC SETC 'dispatch_thread_term'"); -static int -dispatch_thread_term(CTHDMGR *mgr) -{ - int rc = 0; - unsigned count = 0; - unsigned n; - CTHDWORK *work; - - /* terminate worker threads (reverse walk) */ - lock(mgr,0); - mgr->state = CTHDMGR_STATE_QUIESCE; - - /* if we have any workers still running we have to kill them */ - count = arraycount(&mgr->worker); - for(n=count; n > 0; n--) { - work = arrayget(&mgr->worker, n); - if (!work) continue; - cthread_worker_shutdown(work); - cthread_worker_del(&work); - } - - mgr->state = CTHDMGR_STATE_STOPPED; - unlock(mgr,0); - - return rc; -} diff --git a/src/crent370/thdmgr/@@cminit.o b/src/crent370/thdmgr/@@cminit.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/thdmgr/@@cminit.s b/src/crent370/thdmgr/@@cminit.s deleted file mode 100644 index d275714..0000000 --- a/src/crent370/thdmgr/@@cminit.s +++ /dev/null @@ -1,957 +0,0 @@ - TITLE '/home/projects/crent370/thdmgr/@@cminit.c' - COPY PDPTOP - CSECT - -&FUNC SETC 'cthread_manager_init' -* Program text area -@@LC0 EQU * - DC C'CTHDMGR' - DC X'0' -@@LC1 EQU * - DC C'CTHDMGR.%04X.%08X' - DC X'0' - DS 0F - EJECT -* external function 'cthread_manager_init' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'cthread_manager_init' -@@CMINIT PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'cthread_manager_init' code - L 4,0(11) - MVC 88(4,13),=F'1' - MVC 92(4,13),=F'88' - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - ST 15,104(13) - SLR 3,3 - L 2,548(3) - L 5,36(2) - SRL 5,16 - LTR 15,15 - BE @@L3 - ST 15,88(13) - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - L 2,104(13) - MVC 16(4,2),4(11) - L 2,104(13) - MVC 20(4,2),8(11) - L 2,104(13) - ST 3,36(2) - L 2,104(13) - MVC 24(4,2),12(11) - L 15,104(13) - LA 2,5(0,0) - CLR 4,2 - BH @@L4 - LR 2,3 - LA 3,3(0,0) - CLR 4,3 - BNH @@L5 - LA 2,1(0,0) - B @@L5 -@@L4 EQU * - LA 2,3(0,0) -@@L5 EQU * - ST 2,40(15) - L 2,104(13) - ST 4,44(2) - L 2,104(13) - A 2,=F'60' - ST 2,88(13) - MVC 92(4,13),=A(@@LC1) - ST 5,96(13) - MVC 100(4,13),104(13) - LA 1,88(,13) - L 15,=V(SPRINTF) - BALR 14,15 - L 2,104(13) - MVC 88(4,13),=A(@@2) - ST 2,92(13) - MVC 96(4,13),=F'0' - MVC 100(4,13),=F'32768' - LA 1,88(,13) - L 15,=V(@@CTCRTX) - BALR 14,15 - ST 15,8(2) - L 2,104(13) - L 2,8(2) - LTR 2,2 - BNE @@L3 - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@CMTERM) - BALR 14,15 -@@L3 EQU * - L 15,104(13) -* Function 'cthread_manager_init' epilogue - PDPEPIL -* Function 'cthread_manager_init' literal pool - DS 0D - LTORG -* Function 'cthread_manager_init' page table -@@PGT0 DS 0F - DC A(@@PG0) - -&FUNC SETC 'dispatch_thread' - DS 0F - EJECT -* static function 'dispatch_thread' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'dispatch_thread' -@@2 PDPPRLG CINDEX=1,FRAME=104,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'dispatch_thread' code - L 3,0(11) - LA 5,1(0,0) - SLR 6,6 - LR 2,5 - LR 4,6 - ST 3,88(13) - LA 1,88(,13) - L 15,=A(@@3) - BALR 14,15 -@@L9 EQU * - ST 3,88(13) - ST 4,92(13) - ST 6,96(13) - ST 2,100(13) - LA 1,88(,13) - L 15,=A(@@4) - BALR 14,15 - LA 2,3(0,0) - CLR 15,2 - BE @@L10 - LA 2,2(0,0) - CLR 15,2 - BNE @@L13 - LA 4,1(0,0) -@@L13 EQU * - ST 3,88(13) - LA 1,88(,13) - L 15,=A(@@5) - BALR 14,15 - LR 2,15 - LTR 4,4 - BE @@L15 - ST 3,88(13) - LA 1,88(,13) - L 15,=A(@@6) - BALR 14,15 - LR 5,15 - LTR 15,15 - BE @@L10 - B @@L11 -@@L15 EQU * - ST 3,88(13) - ST 15,92(13) - LA 1,88(,13) - L 15,=A(@@7) - BALR 14,15 - LR 6,15 -@@L11 EQU * - LTR 5,5 - BNE @@L9 -@@L10 EQU * - ST 3,88(13) - LA 1,88(,13) - L 15,=A(@@8) - BALR 14,15 -@@L19 EQU * - SLR 15,15 -* Function 'dispatch_thread' epilogue - PDPEPIL -* Function 'dispatch_thread' literal pool - DS 0D - LTORG -* Function 'dispatch_thread' page table -@@PGT1 DS 0F - DC A(@@PG1) - -&FUNC SETC 'dispatch_thread_init' - DS 0F - EJECT -* static function 'dispatch_thread_init' prologue -* frame base=88, local stack=8, call args=8 -&FUNC SETC 'dispatch_thread_init' -@@3 PDPPRLG CINDEX=2,FRAME=104,BASER=12,ENTRY=NO - B @@FEN2 - LTORG -@@FEN2 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG2 EQU * - LR 11,1 - L 10,=A(@@PGT2) -* Function 'dispatch_thread_init' code - L 3,0(11) - SLR 4,4 - ST 4,96(13) - ST 3,88(13) - ST 4,92(13) - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - MVC 36(4,3),=F'1' - LR 2,3 - A 2,=F'28' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - ST 15,96(13) - L 2,96(13) - CL 2,40(3) - BNL @@L27 -@@L25 EQU * - ST 3,88(13) - LA 1,88(,13) - L 15,=V(@@CMWADD) - BALR 14,15 - A 2,=F'1' - CL 2,40(3) - BL @@L25 -@@L27 EQU * - ST 3,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,4 -* Function 'dispatch_thread_init' epilogue - PDPEPIL -* Function 'dispatch_thread_init' literal pool - DS 0D - LTORG -* Function 'dispatch_thread_init' page table -@@PGT2 DS 0F - DC A(@@PG2) - -&FUNC SETC 'dispatch_thread_timed_wait' - DS 0F - EJECT -* static function 'dispatch_thread_timed_wait' prologue -* frame base=88, local stack=0, call args=16 -&FUNC SETC 'dispatch_thread_timed_wait' -@@4 PDPPRLG CINDEX=3,FRAME=104,BASER=12,ENTRY=NO - B @@FEN3 - LTORG -@@FEN3 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG3 EQU * - LR 11,1 - L 10,=A(@@PGT3) -* Function 'dispatch_thread_timed_wait' code - L 3,0(11) - LA 4,10(0,0) - L 2,4(11) - LTR 2,2 - BNE @@L30 - L 2,8(11) - LTR 2,2 - BE @@L31 - LA 4,10(0,0) - ST 3,88(13) - LA 1,88(,13) - L 15,=A(@@9) - BALR 14,15 - B @@L30 -@@L31 EQU * - LA 4,100(0,0) - L 2,12(11) - LTR 2,2 - BNE @@L30 - LA 4,1000(0,0) -@@L30 EQU * - ST 3,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - MVC 36(4,3),=F'4' - ST 3,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 2,3 - A 2,=F'12' - ST 2,88(13) - ST 4,92(13) - MVC 96(4,13),=F'4' - LA 1,88(,13) - L 15,=V(@@CTTWAT) - BALR 14,15 - LR 2,15 - ST 3,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - MVC 36(4,3),=F'1' - ST 3,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,2 -* Function 'dispatch_thread_timed_wait' epilogue - PDPEPIL -* Function 'dispatch_thread_timed_wait' literal pool - DS 0D - LTORG -* Function 'dispatch_thread_timed_wait' page table -@@PGT3 DS 0F - DC A(@@PG3) - -&FUNC SETC 'dispatch_thread_check' -@@LC2 EQU * - DC C'worker %08X, task %08X ended ABEND S%03X' - DC X'0' - DS 0F - EJECT -* static function 'dispatch_thread_check' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'dispatch_thread_check' -@@5 PDPPRLG CINDEX=4,FRAME=112,BASER=12,ENTRY=NO - B @@FEN4 - LTORG -@@FEN4 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG4 EQU * - LR 11,1 - L 10,=A(@@PGT4) -* Function 'dispatch_thread_check' code - L 5,0(11) - SLR 6,6 - ST 5,88(13) - ST 6,92(13) - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 2,5 - A 2,=F'28' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 4,6 - CLR 6,15 - BNL @@L35 -@@L43 EQU * - L 3,28(5) - LR 2,4 - MH 2,=H'4' - L 2,0(2,3) - ST 2,108(13) - LR 3,2 - LTR 2,2 - BE @@L36 - MVC 104(4,13),16(2) - L 2,104(13) - LTR 2,2 - BE @@L36 - L 2,28(3) - N 2,=F'1' - LTR 2,2 - BE @@L40 - LA 6,1(0,0) -@@L40 EQU * - L 3,104(13) - L 2,16(3) - N 2,=F'1073741824' - LTR 2,2 - BE @@L36 - L 2,16(3) - SRL 2,12 - N 2,=F'4095' - LTR 2,2 - BE @@L42 - MVC 88(4,13),=A(@@LC2) - MVC 92(4,13),108(13) - ST 3,96(13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L42 EQU * - L 2,108(13) - MVC 24(4,2),=F'5' - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@CTDEL) - BALR 14,15 - L 2,108(13) - MVC 16(4,2),=F'0' - LA 2,108(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@CMWDEL) - BALR 14,15 - LA 6,1(0,0) - B @@L35 -@@L36 EQU * - A 4,=F'1' - CLR 4,15 - BL @@L43 -@@L35 EQU * - ST 5,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,6 -* Function 'dispatch_thread_check' epilogue - PDPEPIL -* Function 'dispatch_thread_check' literal pool - DS 0D - LTORG -* Function 'dispatch_thread_check' page table -@@PGT4 DS 0F - DC A(@@PG4) - -&FUNC SETC 'dispatch_thread_quiesce' - DS 0F - EJECT -* static function 'dispatch_thread_quiesce' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'dispatch_thread_quiesce' -@@6 PDPPRLG CINDEX=5,FRAME=96,BASER=12,ENTRY=NO - B @@FEN5 - LTORG -@@FEN5 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG5 EQU * - LR 11,1 - L 10,=A(@@PGT5) -* Function 'dispatch_thread_quiesce' code - L 5,0(11) - LA 6,1(0,0) - ST 5,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 2,5 - A 2,=F'28' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 4,15 - LR 3,15 - LTR 15,15 - BE @@L57 -@@L54 EQU * - LR 2,5 - A 2,=F'28' - ST 2,88(13) - ST 3,92(13) - LA 1,88(,13) - L 15,=V(@@ARGET) - BALR 14,15 - LTR 15,15 - BE @@L48 - L 2,16(15) - LTR 2,2 - BE @@L48 - L 2,16(2) - N 2,=F'1073741824' - LTR 2,2 - BNE @@L48 - L 2,24(15) - LA 7,2(0,0) - CLR 2,7 - BNE @@L48 - ST 15,88(13) - LA 1,88(,13) - L 15,=V(@@CMWSHU) - BALR 14,15 -@@L48 EQU * - BCTR 3,0 - LTR 3,3 - BNE @@L54 -@@L57 EQU * - ST 5,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LTR 4,4 - BNE @@L55 - LR 6,4 -@@L55 EQU * - LR 15,6 -* Function 'dispatch_thread_quiesce' epilogue - PDPEPIL -* Function 'dispatch_thread_quiesce' literal pool - DS 0D - LTORG -* Function 'dispatch_thread_quiesce' page table -@@PGT5 DS 0F - DC A(@@PG5) - -&FUNC SETC 'dispatch_work' - DS 0F - EJECT -* static function 'dispatch_work' prologue -* frame base=88, local stack=24, call args=16 -&FUNC SETC 'dispatch_work' -@@10 PDPPRLG CINDEX=6,FRAME=128,BASER=12,ENTRY=NO - B @@FEN6 - LTORG -@@FEN6 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG6 EQU * - LR 11,1 - L 10,=A(@@PGT6) -* Function 'dispatch_work' code - L 5,0(11) - L 4,4(11) - LTR 4,4 - BE @@L58 - L 2,16(4) - LTR 2,2 - BE @@L58 - L 3,16(2) - N 3,=F'1073741824' - LTR 3,3 - BNE @@L58 - L 2,24(4) - LA 6,2(0,0) - CLR 2,6 - BNE @@L58 - LR 2,5 - A 2,=F'32' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 6,15 - L 2,28(4) - N 2,=F'2' - LTR 2,2 - BE @@L64 - LR 6,3 - L 2,28(4) - N 2,=F'1' - LTR 2,2 - BE @@L58 - B @@L66 -@@L64 EQU * - LTR 15,15 - BNE @@L66 - L 2,28(4) - N 2,=F'1' - LTR 2,2 - BE @@L58 -@@L66 EQU * - MVC 88(4,13),=F'0' - LA 0,104(,13) - LA 1,88(,13) - L 15,=V(TM64TIME) - BALR 14,15 - MVC 112(8,13),104(13) - LA 2,112(,13) - ST 2,88(13) - LR 2,4 - A 2,=F'40' - ST 2,92(13) - LA 2,120(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64SUB) - BALR 14,15 - LA 2,120(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64TI32) - BALR 14,15 - LR 3,15 - LTR 6,6 - BNE @@L70 - LTR 15,15 - BE @@L69 -@@L70 EQU * - LR 2,5 - A 2,=F'48' - ST 2,88(13) - MVC 92(4,13),=F'1' - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64AU32) - BALR 14,15 - LR 2,4 - A 2,=F'56' - ST 2,88(13) - MVC 92(4,13),=F'1' - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64AU32) - BALR 14,15 - MVC 48(8,4),112(13) - MVC 24(4,4),=F'3' -@@L69 EQU * - LTR 6,6 - BE @@L71 - LR 2,5 - A 2,=F'32' - ST 2,88(13) - MVC 92(4,13),=F'1' - LA 1,88(,13) - L 15,=V(@@ARDEL) - BALR 14,15 - ST 15,20(4) - LR 2,4 - A 2,=F'8' - ST 2,88(13) - MVC 92(4,13),=F'0' - B @@L74 -@@L71 EQU * - LTR 3,3 - BE @@L58 - MVC 20(4,4),=F'0' - LR 2,4 - A 2,=F'8' - ST 2,88(13) - MVC 92(4,13),=F'1' -@@L74 EQU * - LA 1,88(,13) - L 15,=V(@@CTPOST) - BALR 14,15 -@@L60 EQU * -@@L58 EQU * -* Function 'dispatch_work' epilogue - PDPEPIL -* Function 'dispatch_work' literal pool - DS 0D - LTORG -* Function 'dispatch_work' page table -@@PGT6 DS 0F - DC A(@@PG6) - -&FUNC SETC 'dispatch_thread_work' - DS 0F - EJECT -* static function 'dispatch_thread_work' prologue -* frame base=88, local stack=8, call args=8 -&FUNC SETC 'dispatch_thread_work' -@@7 PDPPRLG CINDEX=7,FRAME=104,BASER=12,ENTRY=NO - B @@FEN7 - LTORG -@@FEN7 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG7 EQU * - LR 11,1 - L 10,=A(@@PGT7) -* Function 'dispatch_thread_work' code - L 6,0(11) - SLR 7,7 - ST 6,88(13) - ST 7,92(13) - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 2,6 - A 2,=F'28' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 5,15 - CL 15,40(6) - BNL @@L76 - ST 6,88(13) - LA 1,88(,13) - L 15,=V(@@CMWADD) - BALR 14,15 - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 5,15 -@@L76 EQU * - CL 5,44(6) - BNH @@L77 - LR 4,5 - LTR 5,5 - BE @@L77 -@@L85 EQU * - LR 2,6 - A 2,=F'28' - ST 2,88(13) - ST 4,92(13) - LA 1,88(,13) - L 15,=V(@@ARGET) - BALR 14,15 - ST 15,96(13) - LTR 15,15 - BE @@L80 - L 2,24(15) - LA 8,2(0,0) - CLR 2,8 - BNE @@L80 - ST 15,88(13) - LA 1,88(,13) - L 15,=V(@@CMWSHU) - BALR 14,15 - LA 2,96(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@CMWDEL) - BALR 14,15 - BCTR 5,0 - CL 5,44(6) - BNH @@L77 -@@L80 EQU * - BCTR 4,0 - LTR 4,4 - BNE @@L85 -@@L77 EQU * - L 2,4(11) - LTR 2,2 - BNE @@L86 - LR 2,6 - A 2,=F'32' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LTR 15,15 - BE @@L88 -@@L86 EQU * - LR 2,6 - A 2,=F'28' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 5,15 - LTR 15,15 - BE @@L88 - L 2,56(6) - A 2,=F'1' - ST 2,56(6) - CLR 2,15 - BL @@L90 - MVC 56(4,6),=F'0' -@@L90 EQU * - L 4,56(6) - CLR 4,5 - BNL @@L104 -@@L95 EQU * - ST 6,88(13) - L 3,28(6) - LR 2,4 - MH 2,=H'4' - L 3,0(2,3) - ST 3,92(13) - LA 1,88(,13) - L 15,=A(@@10) - BALR 14,15 - A 4,=F'1' - CLR 4,5 - BL @@L95 -@@L104 EQU * - SLR 4,4 - CL 4,56(6) - BNL @@L106 -@@L100 EQU * - ST 6,88(13) - L 3,28(6) - LR 2,4 - MH 2,=H'4' - L 3,0(2,3) - ST 3,92(13) - LA 1,88(,13) - L 15,=A(@@10) - BALR 14,15 - A 4,=F'1' - CL 4,56(6) - BL @@L100 -@@L106 EQU * - LR 2,6 - A 2,=F'32' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LTR 15,15 - BE @@L88 - LA 7,1(0,0) -@@L88 EQU * - ST 6,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,7 -* Function 'dispatch_thread_work' epilogue - PDPEPIL -* Function 'dispatch_thread_work' literal pool - DS 0D - LTORG -* Function 'dispatch_thread_work' page table -@@PGT7 DS 0F - DC A(@@PG7) - -&FUNC SETC 'dispatch_thread_create' - DS 0F - EJECT -* static function 'dispatch_thread_create' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'dispatch_thread_create' -@@9 PDPPRLG CINDEX=8,FRAME=96,BASER=12,ENTRY=NO - B @@FEN8 - LTORG -@@FEN8 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG8 EQU * - LR 11,1 - L 10,=A(@@PGT8) -* Function 'dispatch_thread_create' code - L 3,0(11) - SLR 4,4 - ST 3,88(13) - ST 4,92(13) - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 2,3 - A 2,=F'28' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - CL 15,44(3) - BNL @@L108 - ST 3,88(13) - LA 1,88(,13) - L 15,=V(@@CMWADD) - BALR 14,15 -@@L108 EQU * - ST 3,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,4 -* Function 'dispatch_thread_create' epilogue - PDPEPIL -* Function 'dispatch_thread_create' literal pool - DS 0D - LTORG -* Function 'dispatch_thread_create' page table -@@PGT8 DS 0F - DC A(@@PG8) - -&FUNC SETC 'dispatch_thread_term' - DS 0F - EJECT -* static function 'dispatch_thread_term' prologue -* frame base=88, local stack=8, call args=8 -&FUNC SETC 'dispatch_thread_term' -@@8 PDPPRLG CINDEX=9,FRAME=104,BASER=12,ENTRY=NO - B @@FEN9 - LTORG -@@FEN9 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG9 EQU * - LR 11,1 - L 10,=A(@@PGT9) -* Function 'dispatch_thread_term' code - L 4,0(11) - SLR 5,5 - ST 4,88(13) - ST 5,92(13) - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - MVC 36(4,4),=F'2' - LR 2,4 - A 2,=F'28' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 3,15 - LTR 15,15 - BE @@L117 -@@L115 EQU * - LR 2,4 - A 2,=F'28' - ST 2,88(13) - ST 3,92(13) - LA 1,88(,13) - L 15,=V(@@ARGET) - BALR 14,15 - ST 15,96(13) - LTR 15,15 - BE @@L112 - ST 15,88(13) - LA 1,88(,13) - L 15,=V(@@CMWSHU) - BALR 14,15 - LA 2,96(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@CMWDEL) - BALR 14,15 -@@L112 EQU * - BCTR 3,0 - LTR 3,3 - BNE @@L115 -@@L117 EQU * - MVC 36(4,4),=F'3' - ST 4,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 - LR 15,5 -* Function 'dispatch_thread_term' epilogue - PDPEPIL -* Function 'dispatch_thread_term' literal pool - DS 0D - LTORG -* Function 'dispatch_thread_term' page table -@@PGT9 DS 0F - DC A(@@PG9) - END diff --git a/src/crent370/thdmgr/@@cmqadd.c b/src/crent370/thdmgr/@@cmqadd.c deleted file mode 100644 index 6e1f3e0..0000000 --- a/src/crent370/thdmgr/@@cmqadd.c +++ /dev/null @@ -1,44 +0,0 @@ -/* @@CMQADD.C - cthread_queue_add() -*/ -#include "clibthdi.h" - -__asm__("\n&FUNC SETC 'cthread_queue_add'"); -int -cthread_queue_add(CTHDMGR *mgr, void *data) -{ - int rc = 0; - int locked; - CTHDQUE *queue; - - if (!mgr) goto quit; - - locked = lock(mgr,0); - - if (mgr->state == CTHDMGR_STATE_QUIESCE) goto unlock; - if (mgr->state == CTHDMGR_STATE_STOPPED) goto unlock; - - queue = calloc(1, sizeof(CTHDQUE)); - if (!queue) { - rc = -1; - goto unlock; - } - - /* initialize queue record */ - strcpy(queue->eye, CTHDQUE_EYE); - queue->mgr = mgr; - queue->data = data; - - /* add queue item to manager queue */ - arrayadd(&mgr->queue, queue); - - /* wake up the thread manager thread */ - rc = cthread_post(&mgr->wait, CTHDMGR_POST_DATA); - -unlock: - if (locked == 0) { - unlock(mgr,0); - } - -quit: - return rc; -} diff --git a/src/crent370/thdmgr/@@cmqadd.o b/src/crent370/thdmgr/@@cmqadd.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/thdmgr/@@cmqadd.s b/src/crent370/thdmgr/@@cmqadd.s deleted file mode 100644 index bbe9fbf..0000000 --- a/src/crent370/thdmgr/@@cmqadd.s +++ /dev/null @@ -1,92 +0,0 @@ - TITLE '/home/projects/crent370/thdmgr/@@cmqadd.c' - COPY PDPTOP - CSECT - -&FUNC SETC 'cthread_queue_add' -* Program text area -@@LC0 EQU * - DC C'CTHDQUE' - DC X'0' - DS 0F - EJECT -* external function 'cthread_queue_add' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'cthread_queue_add' -@@CMQADD PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'cthread_queue_add' code - L 4,0(11) - SLR 5,5 - LTR 4,4 - BE @@L3 - ST 4,88(13) - ST 5,92(13) - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 6,15 - L 2,36(4) - LA 3,2(0,0) - CLR 2,3 - BE @@L5 - L 2,36(4) - LA 3,3(0,0) - CLR 2,3 - BE @@L5 - MVC 88(4,13),=F'1' - MVC 92(4,13),=F'16' - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - LR 3,15 - L 5,=F'-1' - LTR 15,15 - BE @@L5 - ST 15,88(13) - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - ST 4,8(3) - MVC 12(4,3),4(11) - LR 2,4 - A 2,=F'32' - ST 2,88(13) - ST 3,92(13) - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - A 2,=F'-20' - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@CTPOST) - BALR 14,15 - LR 5,15 -@@L5 EQU * - LTR 6,6 - BNE @@L3 - ST 4,88(13) - ST 6,92(13) - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L3 EQU * - LR 15,5 -* Function 'cthread_queue_add' epilogue - PDPEPIL -* Function 'cthread_queue_add' literal pool - DS 0D - LTORG -* Function 'cthread_queue_add' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/thdmgr/@@cmqdel.c b/src/crent370/thdmgr/@@cmqdel.c deleted file mode 100644 index b4ed7ad..0000000 --- a/src/crent370/thdmgr/@@cmqdel.c +++ /dev/null @@ -1,41 +0,0 @@ -/* @@CMQDEL.C - cthread_queue_del() -*/ -#include "clibthdi.h" - -__asm__("\n&FUNC SETC 'cthread_queue_del'"); -int -cthread_queue_del(CTHDQUE **queue) -{ - int rc = 0; - int locked; - CTHDMGR *mgr; - unsigned count; - unsigned n; - - if (!queue) goto quit; - if (!*queue) goto quit; - - mgr = (*queue)->mgr; - if (mgr) { - locked = lock(mgr,0); - count = arraycount(&mgr->queue); - - for(n=0; n < count; n++) { - if (!mgr->queue[n]) continue; - - if (mgr->queue[n] == *queue) { - arraydel(&mgr->queue, n+1); - break; - } - } - if (locked == 0) { - unlock(mgr,0); - } - } - - free(*queue); - *queue = 0; - -quit: - return rc; -} diff --git a/src/crent370/thdmgr/@@cmqdel.o b/src/crent370/thdmgr/@@cmqdel.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/thdmgr/@@cmqdel.s b/src/crent370/thdmgr/@@cmqdel.s deleted file mode 100644 index 746cf1d..0000000 --- a/src/crent370/thdmgr/@@cmqdel.s +++ /dev/null @@ -1,95 +0,0 @@ - TITLE '/home/projects/crent370/thdmgr/@@cmqdel.c' - COPY PDPTOP - CSECT - -&FUNC SETC 'cthread_queue_del' -* Program text area - DS 0F - EJECT -* external function 'cthread_queue_del' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'cthread_queue_del' -@@CMQDEL PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'cthread_queue_del' code - L 6,0(11) - SLR 7,7 - LTR 6,6 - BE @@L3 - L 2,0(6) - LTR 2,2 - BE @@L3 - L 5,8(2) - LTR 5,5 - BE @@L5 - ST 5,88(13) - ST 7,92(13) - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 8,15 - LR 2,5 - A 2,=F'32' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 4,7 - CLR 7,15 - BNL @@L7 -@@L12 EQU * - L 3,32(5) - LR 2,4 - MH 2,=H'4' - L 2,0(2,3) - LTR 2,2 - BE @@L8 - CL 2,0(6) - BNE @@L8 - LR 2,5 - A 2,=F'32' - ST 2,88(13) - LR 2,4 - A 2,=F'1' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@ARDEL) - BALR 14,15 - B @@L7 -@@L8 EQU * - A 4,=F'1' - CLR 4,15 - BL @@L12 -@@L7 EQU * - LTR 8,8 - BNE @@L5 - ST 5,88(13) - ST 8,92(13) - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L5 EQU * - MVC 88(4,13),0(6) - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - MVC 0(4,6),=F'0' -@@L3 EQU * - LR 15,7 -* Function 'cthread_queue_del' epilogue - PDPEPIL -* Function 'cthread_queue_del' literal pool - DS 0D - LTORG -* Function 'cthread_queue_del' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/thdmgr/@@cmterm.c b/src/crent370/thdmgr/@@cmterm.c deleted file mode 100644 index 571f5e8..0000000 --- a/src/crent370/thdmgr/@@cmterm.c +++ /dev/null @@ -1,135 +0,0 @@ -/* @@CMTERM.C - cthread_manager_term() -*/ -#include "clibthdi.h" - -#if 0 -#define WTODEBUG /* define for wtof() debug messages */ -#endif - -__asm__("\n&FUNC SETC 'cthread_manager_term'"); -int -cthread_manager_term(CTHDMGR **cthdmgr) -{ - int rc = 0; - int locked; - CTHDMGR *mgr; - CTHDTASK *task; - unsigned count; - unsigned n; - - if (!cthdmgr) goto quit; - mgr = *cthdmgr; -#ifdef WTODEBUG - wtof("cthmterm(%08X) enter", mgr); -#endif - if (!mgr) goto quit; - -#ifdef WTODEBUG - wtof("cthmterm(%08X) requesting lock", mgr); -#endif - locked = lock(mgr,0); -#ifdef WTODEBUG - wtof("cthmterm(%08X) have lock, state=%u", mgr, mgr->state); -#endif - - if (mgr->state == CTHDMGR_STATE_RUNNING) { - /* prevent any new work */ - mgr->state = CTHDMGR_STATE_QUIESCE; - } - -#ifdef WTODEBUG - wtof("cthmterm(%08X) POST(CTHDMGR_POST_QUIESCE)", mgr); -#endif - /* wake up the thread manager thread */ - cthread_post(&mgr->wait, CTHDMGR_POST_QUIESCE); - if (locked==0) { - unlock(mgr,0); - } - - __asm__("STIMER WAIT,BINTVL==F'25' 0.25 seconds"); - locked = lock(mgr,0); - if (mgr->queue) { - count = arraycount(&mgr->queue); -#ifdef WTODEBUG - wtof("cthmterm(%08X) queue cleanup, %u items", mgr, count); -#endif - for(n=count; n > 0; n--) { - CTHDQUE *queue = arrayget(&mgr->queue, n); - - if (!queue) continue; - cthread_queue_del(&queue); - } - - arrayfree(&mgr->queue); - } - - /* now we stop the manager dispatcher thread */ - task = mgr->task; -#ifdef WTODEBUG - wtof("cthmterm(%08X) stop thread manager, task(%08X)", mgr, task); -#endif - if (task) { - /* we have a subtask */ - if (mgr->state < CTHDMGR_STATE_QUIESCE) { - mgr->state = CTHDMGR_STATE_QUIESCE; - } -#ifdef WTODEBUG - wtof("cthmterm(%08X) POST(CTHDMGR_POST_QUIESCE)", mgr); -#endif - cthread_post(&mgr->wait, CTHDMGR_POST_QUIESCE); - if (locked==0) { - unlock(mgr,0); - } - - for(n=0; n < 10; n++) { - if (task->termecb & 0x40000000) { - /* subtask has terminated */ - break; - } - __asm__("STIMER WAIT,BINTVL==F'25' 0.25 seconds"); - if (mgr->state < CTHDMGR_STATE_QUIESCE) { - mgr->state = CTHDMGR_STATE_QUIESCE; - } -#ifdef WTODEBUG - wtof("cthmterm(%08X) POST(CTHDMGR_POST_QUIESCE)", mgr); -#endif - cthread_post(&mgr->wait, CTHDMGR_POST_QUIESCE); - } - - __asm__("STIMER WAIT,BINTVL==F'25' 0.25 seconds"); - locked = lock(mgr,0); - -#ifdef WTODEBUG - wtof("cthmterm(%08X) POST(CTHDMGR_POST_SHUTDOWN)", mgr); -#endif - cthread_post(&mgr->wait, CTHDMGR_POST_SHUTDOWN); - if (locked==0) { - unlock(mgr,0); - } - - __asm__("STIMER WAIT,BINTVL==F'25' 0.25 seconds"); - locked = lock(mgr,0); - -#ifdef WTODEBUG - wtof("cthmterm(%08X) delete task(%08X)", mgr, task); -#endif - cthread_delete(&task); - mgr->task = 0; - } - - if (locked==0) { - unlock(mgr,0); - } - -#ifdef WTODEBUG - wtof("cthmterm(%08X) free", mgr); -#endif - free(mgr); - *cthdmgr = 0; - -quit: -#ifdef WTODEBUG - wtof("cthmterm exit, rc=%d", rc); -#endif - return rc; -} diff --git a/src/crent370/thdmgr/@@cmterm.o b/src/crent370/thdmgr/@@cmterm.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/thdmgr/@@cmterm.s b/src/crent370/thdmgr/@@cmterm.s deleted file mode 100644 index 0d43713..0000000 --- a/src/crent370/thdmgr/@@cmterm.s +++ /dev/null @@ -1,214 +0,0 @@ - TITLE '/home/projects/crent370/thdmgr/@@cmterm.c' - COPY PDPTOP - CSECT - -&FUNC SETC 'cthread_manager_term' -* Program text area - DS 0F - EJECT -* external function 'cthread_manager_term' prologue -* frame base=88, local stack=8, call args=8 -&FUNC SETC 'cthread_manager_term' -@@CMTERM PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'cthread_manager_term' code - L 6,0(11) - SLR 7,7 - LTR 6,6 - BE @@L3 - L 4,0(6) - LTR 4,4 - BE @@L3 - ST 4,88(13) - ST 7,92(13) - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 5,15 - L 2,36(4) - LA 3,1(0,0) - CLR 2,3 - BNE @@L5 - MVC 36(4,4),=F'2' -@@L5 EQU * - LR 2,4 - A 2,=F'12' - ST 2,88(13) - MVC 92(4,13),=F'2' - LA 1,88(,13) - L 15,=V(@@CTPOST) - BALR 14,15 - LTR 5,5 - BNE @@L6 - ST 4,88(13) - ST 5,92(13) - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L6 EQU * - STIMER WAIT,BINTVL==F'25' 0.25 seconds - ST 4,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 5,15 - L 2,32(4) - LTR 2,2 - BE @@L7 - LR 2,4 - A 2,=F'32' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 3,15 - LTR 15,15 - BE @@L27 -@@L13 EQU * - LR 2,4 - A 2,=F'32' - ST 2,88(13) - ST 3,92(13) - LA 1,88(,13) - L 15,=V(@@ARGET) - BALR 14,15 - ST 15,96(13) - LTR 15,15 - BE @@L10 - LA 2,96(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@CMQDEL) - BALR 14,15 -@@L10 EQU * - BCTR 3,0 - LTR 3,3 - BNE @@L13 -@@L27 EQU * - LR 2,4 - A 2,=F'32' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARFRE) - BALR 14,15 -@@L7 EQU * - MVC 100(4,13),8(4) - L 2,100(13) - LTR 2,2 - BE @@L14 - L 2,36(4) - LA 3,1(0,0) - CR 2,3 - BH @@L15 - MVC 36(4,4),=F'2' -@@L15 EQU * - LR 2,4 - A 2,=F'12' - ST 2,88(13) - MVC 92(4,13),=F'2' - LA 1,88(,13) - L 15,=V(@@CTPOST) - BALR 14,15 - LTR 5,5 - BNE @@L16 - ST 4,88(13) - ST 5,92(13) - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L16 EQU * - SLR 3,3 -@@L23 EQU * - L 2,100(13) - L 2,16(2) - N 2,=F'1073741824' - LTR 2,2 - BNE @@L18 - STIMER WAIT,BINTVL==F'25' 0.25 seconds - L 2,36(4) - LA 5,1(0,0) - CR 2,5 - BH @@L22 - MVC 36(4,4),=F'2' -@@L22 EQU * - LR 2,4 - A 2,=F'12' - ST 2,88(13) - MVC 92(4,13),=F'2' - LA 1,88(,13) - L 15,=V(@@CTPOST) - BALR 14,15 - A 3,=F'1' - LA 2,9(0,0) - CLR 3,2 - BNH @@L23 -@@L18 EQU * - STIMER WAIT,BINTVL==F'25' 0.25 seconds - ST 4,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 5,15 - LR 2,4 - A 2,=F'12' - ST 2,88(13) - MVC 92(4,13),=F'3' - LA 1,88(,13) - L 15,=V(@@CTPOST) - BALR 14,15 - LTR 5,5 - BNE @@L24 - ST 4,88(13) - ST 5,92(13) - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L24 EQU * - STIMER WAIT,BINTVL==F'25' 0.25 seconds - ST 4,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 5,15 - LA 2,100(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@CTDEL) - BALR 14,15 - MVC 8(4,4),=F'0' -@@L14 EQU * - LTR 5,5 - BNE @@L25 - ST 4,88(13) - ST 5,92(13) - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L25 EQU * - ST 4,88(13) - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - MVC 0(4,6),=F'0' -@@L3 EQU * - LR 15,7 -* Function 'cthread_manager_term' epilogue - PDPEPIL -* Function 'cthread_manager_term' literal pool - DS 0D - LTORG -* Function 'cthread_manager_term' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/thdmgr/@@cmwadd.c b/src/crent370/thdmgr/@@cmwadd.c deleted file mode 100644 index 40f9276..0000000 --- a/src/crent370/thdmgr/@@cmwadd.c +++ /dev/null @@ -1,48 +0,0 @@ -/* @@CMWADD.C - cthread_worker_add() -*/ -#include "clibthdi.h" - -__asm__("\n&FUNC SETC 'cthread_worker_add'"); -int -cthread_worker_add(CTHDMGR *mgr) -{ - int rc = -1; - int locked; - CTHDWORK *work; - - if (!mgr) goto quit; - - locked = lock(mgr,0); - - if (mgr->state == CTHDMGR_STATE_QUIESCE) goto unlock; - if (mgr->state == CTHDMGR_STATE_STOPPED) goto unlock; - - work = calloc(1, sizeof(CTHDWORK)); - if (!work) { - rc = -1; - goto unlock; - } - - strcpy(work->eye, CTHDWORK_EYE); - work->mgr = mgr; - work->state = CTHDWORK_STATE_INIT; - work->start_time = time64(NULL); - - arrayadd(&mgr->worker, work); - - work->task = cthread_create_ex(mgr->func, mgr->udata, work, mgr->stacksize); - if (!work->task) { - cthread_worker_del(&work); - goto quit; - } - - rc = 0; - -unlock: - if (locked==0) { - unlock(mgr,0); - } - -quit: - return rc; -} diff --git a/src/crent370/thdmgr/@@cmwadd.o b/src/crent370/thdmgr/@@cmwadd.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/thdmgr/@@cmwadd.s b/src/crent370/thdmgr/@@cmwadd.s deleted file mode 100644 index 250d249..0000000 --- a/src/crent370/thdmgr/@@cmwadd.s +++ /dev/null @@ -1,114 +0,0 @@ - TITLE '/home/projects/crent370/thdmgr/@@cmwadd.c' - COPY PDPTOP - CSECT - -&FUNC SETC 'cthread_worker_add' -* Program text area -@@LC0 EQU * - DC C'CTHDWORK' - DC X'0' - DS 0F - EJECT -* external function 'cthread_worker_add' prologue -* frame base=88, local stack=16, call args=16 -&FUNC SETC 'cthread_worker_add' -@@CMWADD PDPPRLG CINDEX=0,FRAME=120,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'cthread_worker_add' code - L 3,0(11) - L 5,=F'-1' - LTR 3,3 - BE @@L3 - ST 3,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 4,15 - L 2,36(3) - LA 6,2(0,0) - CLR 2,6 - BE @@L5 - L 2,36(3) - LA 6,3(0,0) - CLR 2,6 - BE @@L5 - MVC 88(4,13),=F'1' - MVC 92(4,13),=F'64' - LA 1,88(,13) - L 15,=V(CALLOC) - BALR 14,15 - ST 15,112(13) - LTR 15,15 - BE @@L5 - ST 15,88(13) - MVC 92(4,13),=A(@@LC0) - LA 1,88(,13) - L 15,=V(STRCPY) - BALR 14,15 - L 2,112(13) - ST 3,12(2) - L 2,112(13) - MVC 24(4,2),=F'0' - L 2,112(13) - MVC 88(4,13),=F'0' - LA 0,104(,13) - LA 1,88(,13) - L 15,=V(TM64TIME) - BALR 14,15 - MVC 32(8,2),104(13) - LR 2,3 - A 2,=F'28' - ST 2,88(13) - MVC 92(4,13),112(13) - LA 1,88(,13) - L 15,=V(@@ARADD) - BALR 14,15 - L 2,112(13) - MVC 88(4,13),16(3) - MVC 92(4,13),20(3) - ST 2,96(13) - MVC 100(4,13),24(3) - LA 1,88(,13) - L 15,=V(@@CTCRTX) - BALR 14,15 - ST 15,16(2) - L 2,112(13) - L 2,16(2) - LTR 2,2 - BNE @@L8 - LA 2,112(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@CMWDEL) - BALR 14,15 - B @@L3 -@@L8 EQU * - SLR 5,5 -@@L5 EQU * - LTR 4,4 - BNE @@L3 - ST 3,88(13) - ST 4,92(13) - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L3 EQU * - LR 15,5 -* Function 'cthread_worker_add' epilogue - PDPEPIL -* Function 'cthread_worker_add' literal pool - DS 0D - LTORG -* Function 'cthread_worker_add' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/thdmgr/@@cmwdel.c b/src/crent370/thdmgr/@@cmwdel.c deleted file mode 100644 index 4e2ef87..0000000 --- a/src/crent370/thdmgr/@@cmwdel.c +++ /dev/null @@ -1,85 +0,0 @@ -/* @@CMWDEL.C - cthread_worker_del() -*/ -#include "clibthdi.h" - -#if 0 -static void -dumpwork(CTHDMGR *mgr) -{ - unsigned count = arraycount(&mgr->worker); - unsigned n; - - for(n=0; n < count; n++) { - wtof("worker#%u = %08X", n+1, mgr->worker[n]); - } -} -#endif - -__asm__("\n&FUNC SETC 'cthread_worker_del'"); -int -cthread_worker_del(CTHDWORK **work) -{ - int rc = 0; - int locked; - CTHDMGR *mgr; - CTHDTASK *task; - CTHDQUE *queue; - unsigned ecb; - unsigned count; - unsigned n; - - if (!work) goto quit; - if (!*work) goto quit; - - mgr = (*work)->mgr; - if (mgr) { - locked = lock(mgr,0); - count = arraycount(&mgr->worker); - - for(n=0; n < count; n++) { - if (!mgr->worker[n]) continue; - - if (mgr->worker[n] == *work) { -#if 0 - wtof("worker count %u, about to delete worker %u", - count, n+1); - dumpwork(mgr); -#endif - arraydel(&mgr->worker, n+1); -#if 0 - count = arraycount(&mgr->worker); - wtof("worker count now %u", count); - dumpwork(mgr); -#endif - break; - } - } - if (locked==0) { - unlock(mgr,0); - } - } - - ecb = (*work)->wait; - if (ecb & 0x80000000) { - cthread_worker_shutdown(*work); - } - - task = (*work)->task; - if (task) { - cthread_delete(&task); - (*work)->task = 0; - } - - queue = (*work)->queue; - if (queue) { - /* delete the orphaned queue item */ - cthread_queue_del(&queue); - (*work)->queue = 0; - } - - free(*work); - *work = 0; - -quit: - return rc; -} diff --git a/src/crent370/thdmgr/@@cmwdel.o b/src/crent370/thdmgr/@@cmwdel.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/thdmgr/@@cmwdel.s b/src/crent370/thdmgr/@@cmwdel.s deleted file mode 100644 index 85f7539..0000000 --- a/src/crent370/thdmgr/@@cmwdel.s +++ /dev/null @@ -1,131 +0,0 @@ - TITLE '/home/projects/crent370/thdmgr/@@cmwdel.c' - COPY PDPTOP - CSECT - -&FUNC SETC 'cthread_worker_del' -* Program text area - DS 0F - EJECT -* external function 'cthread_worker_del' prologue -* frame base=88, local stack=8, call args=8 -&FUNC SETC 'cthread_worker_del' -@@CMWDEL PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'cthread_worker_del' code - L 6,0(11) - SLR 7,7 - LTR 6,6 - BE @@L3 - L 2,0(6) - LTR 2,2 - BE @@L3 - L 5,12(2) - LTR 5,5 - BE @@L5 - ST 5,88(13) - ST 7,92(13) - LA 1,88(,13) - L 15,=V(@@LK) - BALR 14,15 - LR 8,15 - LR 2,5 - A 2,=F'28' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@ARCOU) - BALR 14,15 - LR 4,7 - CLR 7,15 - BNL @@L7 -@@L12 EQU * - L 3,28(5) - LR 2,4 - MH 2,=H'4' - L 2,0(2,3) - LTR 2,2 - BE @@L8 - CL 2,0(6) - BNE @@L8 - LR 2,5 - A 2,=F'28' - ST 2,88(13) - LR 2,4 - A 2,=F'1' - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@ARDEL) - BALR 14,15 - B @@L7 -@@L8 EQU * - A 4,=F'1' - CLR 4,15 - BL @@L12 -@@L7 EQU * - LTR 8,8 - BNE @@L5 - ST 5,88(13) - ST 8,92(13) - LA 1,88(,13) - L 15,=V(@@LKUNLK) - BALR 14,15 -@@L5 EQU * - L 3,0(6) - L 2,8(3) - N 2,=F'-2147483648' - LTR 2,2 - BE @@L14 - ST 3,88(13) - LA 1,88(,13) - L 15,=V(@@CMWSHU) - BALR 14,15 -@@L14 EQU * - L 2,0(6) - MVC 96(4,13),16(2) - L 2,96(13) - LTR 2,2 - BE @@L15 - LA 2,96(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@CTDEL) - BALR 14,15 - L 2,0(6) - MVC 16(4,2),=F'0' -@@L15 EQU * - L 2,0(6) - MVC 100(4,13),20(2) - L 2,100(13) - LTR 2,2 - BE @@L16 - LA 2,100(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@CMQDEL) - BALR 14,15 - L 2,0(6) - MVC 20(4,2),=F'0' -@@L16 EQU * - MVC 88(4,13),0(6) - LA 1,88(,13) - L 15,=V(FREE) - BALR 14,15 - MVC 0(4,6),=F'0' -@@L3 EQU * - LR 15,7 -* Function 'cthread_worker_del' epilogue - PDPEPIL -* Function 'cthread_worker_del' literal pool - DS 0D - LTORG -* Function 'cthread_worker_del' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/thdmgr/@@cmwshu.c b/src/crent370/thdmgr/@@cmwshu.c deleted file mode 100644 index 29aa791..0000000 --- a/src/crent370/thdmgr/@@cmwshu.c +++ /dev/null @@ -1,69 +0,0 @@ -/* @@CMWSHU.C - cthread_worker_shutdown() -*/ -#include "clibthdi.h" - -__asm__("\n&FUNC SETC 'cthread_worker_shutdown'"); -int -cthread_worker_shutdown(CTHDWORK *work) -{ - int rc = 0; - int i; - CTHDTASK *task; - - if (!work) goto quit; -#if 0 - wtof("__cmwshu() shutdown of worker thread %08X, task %08X starting", work, work->task); -#endif - - /* if the worker has already stopped then we're done */ - task = work->task; - if (task) { - if (task->termecb & 0x40000000) { - /* subtask has terminated */ - if (task->tcb) cthread_detach(task); - goto quit; - } - } - -#if 0 - wtof("__cmwshu() posting work wait ecb %08X", work->wait); -#endif - /* post the worker thread for shutdown */ - cthread_post(&work->wait, CTHDWORK_POST_SHUTDOWN); -#if 0 - wtof("__cmwshu() posted work wait ecb %08X", work->wait); -#endif - - if (task && task->tcb) { - /* we have a subtask */ -#if 0 - wtof("__cmwshu() shutdown of task %08X starting", task); -#endif - for(i=0; i < 50; i++) { - if (task->termecb & 0x40000000) { - /* subtask has terminated */ - if (task->tcb) cthread_detach(task); - goto quit; - } -#if 0 - wtof("__cmwshu() shutdown waiting for task %08X termination", task); -#endif -#if 0 - wtof("__cmwshu() posting work wait ecb %08X", work->wait); -#endif - cthread_post(&work->wait, CTHDWORK_POST_SHUTDOWN); -#if 0 - wtof("__cmwshu() posted work wait ecb %08X", work->wait); -#endif - __asm__("STIMER WAIT,BINTVL==F'10' 0.10 seconds"); - } - /* unable to shutdown subtask, abend the subtask */ -#if 0 - wtof("__cmwshu() detaching task %08X to force termination", task); -#endif - if (task->tcb) cthread_detach(task); - } - -quit: - return rc; -} diff --git a/src/crent370/thdmgr/@@cmwshu.o b/src/crent370/thdmgr/@@cmwshu.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/thdmgr/@@cmwshu.s b/src/crent370/thdmgr/@@cmwshu.s deleted file mode 100644 index 0197b7f..0000000 --- a/src/crent370/thdmgr/@@cmwshu.s +++ /dev/null @@ -1,82 +0,0 @@ - TITLE '/home/projects/crent370/thdmgr/@@cmwshu.c' - COPY PDPTOP - CSECT - -&FUNC SETC 'cthread_worker_shutdown' -* Program text area - DS 0F - EJECT -* external function 'cthread_worker_shutdown' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'cthread_worker_shutdown' -@@CMWSHU PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'cthread_worker_shutdown' code - L 5,0(11) - LTR 5,5 - BE @@L3 - L 3,16(5) - LTR 3,3 - BE @@L4 - L 2,16(3) - N 2,=F'1073741824' - LTR 2,2 - BNE @@L19 -@@L4 EQU * - LR 2,5 - A 2,=F'8' - ST 2,88(13) - MVC 92(4,13),=F'2' - LA 1,88(,13) - L 15,=V(@@CTPOST) - BALR 14,15 - LTR 3,3 - BE @@L3 - L 2,8(3) - LTR 2,2 - BE @@L3 - SLR 4,4 -@@L14 EQU * - L 2,16(3) - N 2,=F'1073741824' - LTR 2,2 - BNE @@L19 - LR 2,5 - A 2,=F'8' - ST 2,88(13) - MVC 92(4,13),=F'2' - LA 1,88(,13) - L 15,=V(@@CTPOST) - BALR 14,15 - STIMER WAIT,BINTVL==F'10' 0.10 seconds - A 4,=F'1' - LA 2,49(0,0) - CR 4,2 - BNH @@L14 -@@L19 EQU * - L 2,8(3) - LTR 2,2 - BE @@L3 - ST 3,88(13) - LA 1,88(,13) - L 15,=V(@@CTDET) - BALR 14,15 -@@L3 EQU * - SLR 15,15 -* Function 'cthread_worker_shutdown' epilogue - PDPEPIL -* Function 'cthread_worker_shutdown' literal pool - DS 0D - LTORG -* Function 'cthread_worker_shutdown' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/thdmgr/@@cmwwat.c b/src/crent370/thdmgr/@@cmwwat.c deleted file mode 100644 index f8dafba..0000000 --- a/src/crent370/thdmgr/@@cmwwat.c +++ /dev/null @@ -1,56 +0,0 @@ -/* @@CMWWAT.C - cthread_worker_wait() -*/ -#include "clibthdi.h" - -__asm__("\n&FUNC SETC 'cthread_worker_wait'"); -int -cthread_worker_wait(CTHDWORK *work, char **data) -{ - int rc = -1; - CTHDMGR *mgr; -#if 0 - wtof("cthmwwat enter"); -#endif - if (!work) goto quit; - - if (data) *data = 0; - - /* release any previous work queue item */ - cthread_queue_del(&work->queue); - - /* set worker state to waiting for work */ - work->state = CTHDWORK_STATE_WAITING; - work->wait_time = time64(NULL); - - /* tell the manager we're waiting for work */ - mgr = work->mgr; - rc = cthread_post(&mgr->wait, CTHDMGR_POST_WAIT); - - /* wait for manager to give us some work */ -#if 0 - wtof("cthmwwat waiting, TASK=%08X, TCB=%08X, ECB=%08X", work->task, work->task->tcb, work->wait); -#endif - rc = cthread_wait(&work->wait); -#if 0 - wtof("cthmwwat running, TASK=%08X, TCB=%08X, ECB=%08X, RC=%d", work->task, work->task->tcb, work->wait, rc); -#endif - - /* set worker state */ - if (rc == CTHDWORK_POST_SHUTDOWN) { - work->state = CTHDWORK_STATE_SHUTDOWN; - } - else { - work->state = CTHDWORK_STATE_RUNNING; - } - - if (data && work->queue) { - /* give data to caller */ - *data = work->queue->data; - } - -quit: -#if 0 - wtof("cthmwwat exit, rc=%d", rc); -#endif - return rc; -} diff --git a/src/crent370/thdmgr/@@cmwwat.o b/src/crent370/thdmgr/@@cmwwat.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/thdmgr/@@cmwwat.s b/src/crent370/thdmgr/@@cmwwat.s deleted file mode 100644 index 7563f53..0000000 --- a/src/crent370/thdmgr/@@cmwwat.s +++ /dev/null @@ -1,81 +0,0 @@ - TITLE '/home/projects/crent370/thdmgr/@@cmwwat.c' - COPY PDPTOP - CSECT - -&FUNC SETC 'cthread_worker_wait' -* Program text area - DS 0F - EJECT -* external function 'cthread_worker_wait' prologue -* frame base=88, local stack=8, call args=8 -&FUNC SETC 'cthread_worker_wait' -@@CMWWAT PDPPRLG CINDEX=0,FRAME=104,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'cthread_worker_wait' code - L 3,0(11) - L 4,4(11) - L 15,=F'-1' - LTR 3,3 - BE @@L3 - LTR 4,4 - BE @@L4 - MVC 0(4,4),=F'0' -@@L4 EQU * - LR 2,3 - A 2,=F'20' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@CMQDEL) - BALR 14,15 - MVC 24(4,3),=F'2' - MVC 88(4,13),=F'0' - LA 0,96(,13) - LA 1,88(,13) - L 15,=V(TM64TIME) - BALR 14,15 - MVC 40(8,3),96(13) - L 2,12(3) - A 2,=F'12' - ST 2,88(13) - MVC 92(4,13),=F'1' - LA 1,88(,13) - L 15,=V(@@CTPOST) - BALR 14,15 - LR 2,3 - A 2,=F'8' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@CTWAIT) - BALR 14,15 - LA 2,2(0,0) - CLR 15,2 - BNE @@L5 - MVC 24(4,3),=F'4' - B @@L6 -@@L5 EQU * - MVC 24(4,3),=F'1' -@@L6 EQU * - LTR 4,4 - BE @@L3 - L 2,20(3) - LTR 2,2 - BE @@L3 - MVC 0(4,4),12(2) -@@L3 EQU * -* Function 'cthread_worker_wait' epilogue - PDPEPIL -* Function 'cthread_worker_wait' literal pool - DS 0D - LTORG -* Function 'cthread_worker_wait' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/thdmgr/@@cti.c b/src/crent370/thdmgr/@@cti.c deleted file mode 100644 index da3fe77..0000000 --- a/src/crent370/thdmgr/@@cti.c +++ /dev/null @@ -1,28 +0,0 @@ -/* @@CTI.C - thread manager anchor -*/ -#include "clibthdi.h" - -extern CTHDMGR *__cminit(unsigned, void *, void *, unsigned); -extern int __cmterm(CTHDMGR **cthdmgr); -extern int __cmwadd(CTHDMGR *cthdmgr); -extern int __cmwdel(CTHDWORK **cthdwork); -extern int __cmqdel(CTHDQUE **cthdque); -extern int __cmwshu(CTHDWORK *work); -extern int __cmqadd(CTHDMGR *mgr, void *data); -extern int __cmwwat(CTHDWORK *work, char **data); - -static CTHDI anchor = { - CTHDI_EYE, /* 00 eye catcher */ - 0, /* 08 unused */ - 0, /* 0C unused */ - __cminit, /* 10 cthread_manager_init() */ - __cmterm, /* 14 cthread_manager_term() */ - __cmwadd, /* 18 cthread_worker_add() */ - __cmwdel, /* 1C cthread_worker_del() */ - __cmqdel, /* 20 cthread_queue_del() */ - __cmwshu, /* 24 cthread_worker_shutdown() */ - __cmqadd, /* 28 cthread_queue_add() */ - __cmwwat, /* 2C cthread_worker_wait() */ -}; - -CTHDI *__cti = &anchor; diff --git a/src/crent370/thdmgr/clibthdi.h b/src/crent370/thdmgr/clibthdi.h deleted file mode 100644 index 6d61a92..0000000 --- a/src/crent370/thdmgr/clibthdi.h +++ /dev/null @@ -1,87 +0,0 @@ -#ifndef CLIBTHDI_H -#define CLIBTHDI_H -#include -#include -#include "clibthrd.h" - -typedef struct cthdmgr CTHDMGR; /* thread manager instance */ -typedef struct cthdque CTHDQUE; /* thread manager queue */ -typedef struct cthdwork CTHDWORK; /* worker thread instance */ - -struct cthdmgr { - char eye[8]; /* 00 eye catcher for dumps */ -#define CTHDMGR_EYE "CTHDMGR" /* ... */ - CTHDTASK *task; /* 08 thread manager task */ - unsigned wait; /* 0C wait for work (ECB) */ -#define CTHDMGR_POST_DATA 0 /* ... data was queued */ -#define CTHDMGR_POST_WAIT 1 /* ... worker waiting for data */ -#define CTHDMGR_POST_QUIESCE 2 /* ... quiesce thread manager */ -#define CTHDMGR_POST_SHUTDOWN 3 /* ... terminate thread manager */ -#define CTHDMGR_POST_TIMER 4 /* ... timer */ - - void *func; /* 10 thread function */ - void *udata; /* 14 user data for threads */ - unsigned stacksize; /* 18 thread stack size */ - CTHDWORK **worker; /* 1C work threads */ - - CTHDQUE **queue; /* 20 work queue */ - volatile int state; /* 24 thread manager state */ -#define CTHDMGR_STATE_INIT 0 /* ... initialized */ -#define CTHDMGR_STATE_RUNNING 1 /* ... thread manager is active */ -#define CTHDMGR_STATE_QUIESCE 2 /* ... thread manager is quiesced */ -#define CTHDMGR_STATE_STOPPED 3 /* ... thread manager is stopped */ -#define CTHDMGR_STATE_WAITING 4 /* ... thread manager is waiting */ - unsigned mintask; /* 28 min task */ - unsigned maxtask; /* 2C max task */ - - __64 dispatched; /* 30 dispatched counter */ - unsigned start; /* 38 round robbin start index */ - char rname[24]; /* 3C resource name */ -}; /* 54 (84 bytes) */ - -struct cthdwork { - char eye[8]; /* 00 eye catcher for dumps */ -#define CTHDWORK_EYE "CTHDWORK" /* ... */ - unsigned wait; /* 08 thread wait ecb */ -#define CTHDWORK_POST_REQUEST 0 /* ... process request */ -#define CTHDWORK_POST_TIMER 1 /* ... timer pop */ -#define CTHDWORK_POST_SHUTDOWN 2 /* ... shutdown thread */ - CTHDMGR *mgr; /* 0C thread manager instance */ - - CTHDTASK *task; /* 10 thread instance */ - CTHDQUE *queue; /* 14 queued work */ - volatile int state; /* 18 thread worker state */ -#define CTHDWORK_STATE_INIT 0 /* ... initialized */ -#define CTHDWORK_STATE_RUNNING 1 /* ... worker thread is active */ -#define CTHDWORK_STATE_WAITING 2 /* ... worker thread is waiting */ -#define CTHDWORK_STATE_DISPATCH 3 /* ... worker thread is dispatched */ -#define CTHDWORK_STATE_SHUTDOWN 4 /* ... worker thread is stopping */ -#define CTHDWORK_STATE_STOPPED 5 /* ... worker thread is stopped */ - unsigned opt; /* 1C worker optionsnt */ -#define CTHDWORK_OPT_TIMER 0x00000001 /* on=post timer desired (1 sec) */ -#define CTHDWORK_OPT_NOWORK 0x00000002 /* on=don't give queued work */ - - time64_t start_time; /* 20 time worker created */ - time64_t wait_time; /* 28 time worker waited for work */ - time64_t disp_time; /* 30 time worker was dispatched */ - __64 dispatched; /* 38 dispatched count */ -}; /* 40 (64 bytes) */ - -struct cthdque { - char eye[8]; /* 00 eye catcher for dumps */ -#define CTHDQUE_EYE "CTHDQUE" /* ... */ - CTHDMGR *mgr; /* 0C thread manager instance */ - void *data; /* 10 queue data item */ -}; /* 14 (20 bytes) */ - - -CTHDMGR *cthread_manager_init(unsigned count, void *func, void *udata, unsigned stacksize) asm("@@CMINIT"); -int cthread_manager_term(CTHDMGR **cthdmgr) asm("@@CMTERM"); -int cthread_worker_add(CTHDMGR *mgr) asm("@@CMWADD"); -int cthread_worker_del(CTHDWORK **work) asm("@@CMWDEL"); -int cthread_queue_del(CTHDQUE **queue) asm("@@CMQDEL"); -int cthread_worker_shutdown(CTHDWORK *work) asm("@@CMWSHU"); -int cthread_queue_add(CTHDMGR *mgr, void *data) asm("@@CMQADD"); -int cthread_worker_wait(CTHDWORK *work, char **data) asm("@@CMWWAT"); - -#endif diff --git a/src/crent370/thdmgr/files.txt b/src/crent370/thdmgr/files.txt deleted file mode 100644 index 7a3b42a..0000000 --- a/src/crent370/thdmgr/files.txt +++ /dev/null @@ -1,9 +0,0 @@ -@@cminit.c -@@cmqadd.c -@@cmqdel.c -@@cmterm.c -@@cmwadd.c -@@cmwdel.c -@@cmwshu.c -@@cmwwat.c -@@cti.c diff --git a/src/crent370/thdmgr/makefile b/src/crent370/thdmgr/makefile deleted file mode 100644 index 01105c4..0000000 --- a/src/crent370/thdmgr/makefile +++ /dev/null @@ -1,66 +0,0 @@ -# -# makefile for crent370/thdmgr c files -# -# gccmvs compiler flags -INC1 := -I. -INC2 := -I/home/projects/crent370/thdmgr -INC3 := -I/home/projects/crent370/include -CFLAGS := -S -O1 $(INC1) $(INC2) $(INC3) -# -# c source code files -C_FILES := @@cminit.c \ - @@cmqadd.c \ - @@cmqdel.c \ - @@cmterm.c \ - @@cmwadd.c \ - @@cmwdel.c \ - @@cmwshu.c \ - @@cmwwat.c - -#deprecated: -# @@cti.c - -# non-generated .asm assembler source files -A_FILES := - -# generated .s assembler source files (one for each source file) -S_FILES := $(foreach filename,$(C_FILES),$(filename:.c=.s)) - -# object files (one for each .c and .asm source file) -O_FILES := $(foreach filename,$(C_FILES),$(filename:.c=.o)) \ - $(foreach filename,$(A_FILES),$(filename:.asm=.o)) - -# export MACn variables for mvsasm->jobasm script -export MAC1=MDR.CRENT370.MACLIB - -# export dataset names used by mvsasm script -export MVSASM_PUNCH=MDR.CRENT370.OBJECT -export MVSASM_SYSLMOD=MDR.CRENT370.NCALIB - -all: $(S_FILES) $(O_FILES) - @echo "Done" -# Note: PHONY is important here. Without it, implicit rules will try -# to build the executable "all", since the prereqs are ".o" files. -.PHONY: all - -# build object files from the generated assembler files (.s) -%.o: %.s - @echo "mvsasm $(notdir $<)" - @mvsasm "$<" - @touch "$@" - -# build object files from assembler files (.asm) -%.o: %.asm - @echo "mvsasm $(notdir $<)" - @mvsasm "$<" - @touch "$@" - -# compile C source files (.c) into assembler files (.s) -%.s: %.c - @echo "Compile $(notdir $<)" - gccmvs $(CFLAGS) -c $< -o $@ - -# remove generated files -clean: - @rm -f $(S_FILES) $(O_FILES) - diff --git a/src/crent370/time64/@@gclk64.c b/src/crent370/time64/@@gclk64.c deleted file mode 100644 index 9d40ef9..0000000 --- a/src/crent370/time64/@@gclk64.c +++ /dev/null @@ -1,36 +0,0 @@ -#include -#include -#include -#include - -__asm__("\n&FUNC SETC '__getclk64'"); -uint64_t __getclk64(void) -{ - time64_t clock; - -__asm__("LA\t2,%0\tget address of 8 byte work area\n\t" - "STCK\t0(2)\tstore clock into work area\n\t" - : "=m" (clock.u64) : : "2"); - - clock.u64 >>=12; - __64_sub_ull(&clock, 0x0007D91000000000ULL, &clock); - __64_div_int(&clock, 1000000, &clock); - __64_sub_int(&clock, 1220, &clock); - - return clock.u64; -} - -#if 0 -int main(int argc, char **argv) -{ - unsigned work[2] = {0,0}; - time_t t = __getclk(work); - time64_t t64 = __getclk64(); - - printf("%s: t=0x00000000%08X (%d)\n", __func__, t, t); - printf("%s: t64=0x%016llX (%lld)\n", __func__, t64, t64); - - return 0; -} -#endif - diff --git a/src/crent370/time64/@@gclk64.o b/src/crent370/time64/@@gclk64.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/time64/__time64.h b/src/crent370/time64/__time64.h deleted file mode 100644 index 6e53e96..0000000 --- a/src/crent370/time64/__time64.h +++ /dev/null @@ -1,36 +0,0 @@ -#ifndef __TIME64_H -#define __TIME64_H - -#define years_in_gregorian_cycle 400 -#define days_in_gregorian_cycle ((365 * 400) + 100 - 4 + 1) -#define seconds_in_gregorian_cycle 12622780800ULL /* 0x00000002F0605980ULL */ - -/* Some numbers relating to the gregorian cycle */ -/* static const time64_t seconds_in_gregorian_cycle = days_in_gregorian_cycle * 60LL * 60LL * 24LL; */ - -/* Year range we can trust the time funcitons with */ -#define MAX_SAFE_YEAR 2037 -#define MIN_SAFE_YEAR 1970 - -/* 28 year Julian calendar cycle */ -#define SOLAR_CYCLE_LENGTH 28 - -/* Let's assume people are going to be looking for dates in the future. - Let's provide some cheats so you can skip ahead. - This has a 4x speed boost when near 2008. -*/ - -/* Number of days since epoch on Jan 1st, 2008 GMT */ -#define CHEAT_DAYS (1199145600 / 24 / 60 / 60) -#define CHEAT_YEARS 108 -#define IS_LEAP(n) ((!(((n) + 1900) % 400) || (!(((n) + 1900) % 4) && (((n) + 1900) % 100))) != 0) -#define WRAP(a,b,m) ((a) = ((a) < 0 ) ? ((b)--, (a) + (m)) : (a)) -#define is_exception_century(year) (((year) % 100 == 0) && !((year) % 400 == 0)) - -int days_in_month(int isleap, int month) asm("TM64DIM"); -int julian_days_by_month(int isleap, int month) asm("TM64JDBM"); -int safe_year(const int year) asm("TM64SYR"); -uint64_t seconds_between_years(int left_year, int right_year) asm("TM64SBY"); - -#endif - diff --git a/src/crent370/time64/makefile b/src/crent370/time64/makefile deleted file mode 100644 index 6c4b3b0..0000000 --- a/src/crent370/time64/makefile +++ /dev/null @@ -1,87 +0,0 @@ -# -# makefile for crent370/time64 c files -# -# gccmvs compiler flags -INC1 := -I. -INC2 := -I/home/projects/crent370/time64 -INC3 := -I/home/projects/crent370/include -DEPS := /home/projects/crent370/include/clib64.h -CFLAGS := -fverbose-asm -S -O1 $(INC1) $(INC2) $(INC3) -#CFLAGS := -S $(INC1) $(INC2) $(INC3) -# -# c source code files -C_FILES := tm64asc.c \ - tm64ascr.c \ - tm64clck.c \ - tm64cti.c \ - tm64ctir.c \ - tm64dtim.c \ - tm64time.c \ - tm64tgm.c \ - tm64dim.c \ - tm64jdbm.c \ - tm64ltm.c \ - tm64ltmr.c \ - tm64mclk.c \ - tm64mcti.c \ - tm64mgmt.c \ - tm64mkt.c \ - tm64mltm.c \ - tm64mtim.c \ - tm64gmt.c \ - tm64gmtr.c \ - tm64syr.c \ - tm64sby.c \ - tm64test.c \ - tm64uclk.c \ - tm64utim.c \ - tm64ucti.c \ - tm64ultm.c \ - tm64ugmt.c - -#deprecated: - -# non-generated .asm assembler source files -A_FILES := - -# generated .s assembler source files (one for each source file) -S_FILES := $(foreach filename,$(C_FILES),$(filename:.c=.s)) - -# object files (one for each .c and .asm source file) -O_FILES := $(foreach filename,$(C_FILES),$(filename:.c=.o)) \ - $(foreach filename,$(A_FILES),$(filename:.asm=.o)) - -# export MACn variables for mvsasm->jobasm script -export MAC1=MDR.CRENT370.MACLIB - -# export dataset names used by mvsasm script -export MVSASM_PUNCH=MDR.CRENT370.OBJECT -export MVSASM_SYSLMOD=MDR.CRENT370.NCALIB - -all: $(S_FILES) $(O_FILES) - @echo "Done" -# Note: PHONY is important here. Without it, implicit rules will try -# to build the executable "all", since the prereqs are ".o" files. -.PHONY: all - -# build object files from the generated assembler files (.s) -%.o: %.s - @echo "mvsasm $(notdir $<)" - @mvsasm "$<" - @touch "$@" - -# build object files from assembler files (.asm) -%.o: %.asm - @echo "mvsasm $(notdir $<)" - @mvsasm "$<" - @touch "$@" - -# compile C source files (.c) into assembler files (.s) -%.s: %.c $(DEPS) - @echo "Compile $(notdir $<)" - c2asm370 $(CFLAGS) -c $< -o $@ - -# remove generated files -clean: - @rm -f $(S_FILES) $(O_FILES) - diff --git a/src/crent370/time64/mktime64.c b/src/crent370/time64/mktime64.c deleted file mode 100644 index ed2a259..0000000 --- a/src/crent370/time64/mktime64.c +++ /dev/null @@ -1,543 +0,0 @@ -/* -Copyright (c) 2007-2008 Michael G Schwern -This software originally derived from Paul Sheer's pivotal_gmtime_r.c. -The MIT License: -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -/* See http://code.google.com/p/y2038 for this code's origin */ -#if defined(__LP64__) -#error This cruft should be LP32 only! -#endif - -/* -Programmers who have available to them 64-bit time values as a 'long -long' type can use localtime64_r() and gmtime64_r() which correctly -converts the time even on 32-bit systems. Whether you have 64-bit time -values will depend on the operating system. -localtime64_r() is a 64-bit equivalent of localtime_r(). -gmtime64_r() is a 64-bit equivalent of gmtime_r(). -*/ -#include -#include -#include -#include -#include -#include -#include -#include "__time64.h" - -static char const wday_name[7][3] = { - "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" -}; - -static char const mon_name[12][3] = { - "Jan", "Feb", "Mar", "Apr", "May", "Jun", - "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" -}; - -static const int length_of_year[2] = { 365, 366 }; - -/* Year cycle from MAX_SAFE_YEAR down. */ -static const int safe_years_high[SOLAR_CYCLE_LENGTH] = { - 2016, 2017, 2018, 2019, - 2020, 2021, 2022, 2023, - 2024, 2025, 2026, 2027, - 2028, 2029, 2030, 2031, - 2032, 2033, 2034, 2035, - 2036, 2037, 2010, 2011, - 2012, 2013, 2014, 2015 -}; - -/* Year cycle from MIN_SAFE_YEAR up */ -static const int safe_years_low[SOLAR_CYCLE_LENGTH] = { - 1996, 1997, 1998, 1971, - 1972, 1973, 1974, 1975, - 1976, 1977, 1978, 1979, - 1980, 1981, 1982, 1983, - 1984, 1985, 1986, 1987, - 1988, 1989, 1990, 1991, - 1992, 1993, 1994, 1995, -}; - -/* Let's assume people are going to be looking for dates in the future. - Let's provide some cheats so you can skip ahead. - This has a 4x speed boost when near 2008. -*/ - - -static int check_tm(struct tm *tm) -{ - /* Don't forget leap seconds */ - assert(tm->tm_sec >= 0); - assert(tm->tm_sec <= 61); - assert(tm->tm_min >= 0); - assert(tm->tm_min <= 59); - assert(tm->tm_hour >= 0); - assert(tm->tm_hour <= 23); - assert(tm->tm_mday >= 1); - assert(tm->tm_mday <= days_in_month[IS_LEAP(tm->tm_year), tm->tm_mon]); - assert(tm->tm_mon >= 0); - assert(tm->tm_mon <= 11); - assert(tm->tm_wday >= 0); - assert(tm->tm_wday <= 6); - assert(tm->tm_yday >= 0); - assert(tm->tm_yday <= length_of_year[IS_LEAP(tm->tm_year)]); - - return 1; -} - -/* The exceptional centuries without leap years cause the cycle to - shift by 16 -*/ -static int cycle_offset(int year) -{ - const int start_year = 2000; - int year_diff = year - start_year; - int exceptions; - - if( year > start_year ) year_diff--; - - exceptions = year_diff / 100; - exceptions -= year_diff / 400; - - return exceptions * 16; -} - -/* For a given year after 2038, pick the latest possible matching - year in the 28 year calendar cycle. - A matching year... - 1) Starts on the same day of the week. - 2) Has the same leap year status. - This is so the calendars match up. - Also the previous year must match. When doing Jan 1st you might - wind up on Dec 31st the previous year when doing a -UTC time zone. - Finally, the next year must have the same start day of week. This - is for Dec 31st with a +UTC time zone. - It doesn't need the same leap year status since we only care about - January 1st. -*/ -static int safe_year(const int year) -{ - int safe_year = 0; - int year_cycle; - - if( year >= MIN_SAFE_YEAR && year <= MAX_SAFE_YEAR ) { - return (int)year; - } - - year_cycle = year + cycle_offset(year); - - /* safe_years_low is off from safe_years_high by 8 years */ - if( year < MIN_SAFE_YEAR ) year_cycle -= 8; - - /* Change non-leap xx00 years to an equivalent */ - if( is_exception_century(year) ) year_cycle += 11; - - /* Also xx01 years, since the previous year will be wrong */ - if( is_exception_century(year - 1) ) year_cycle += 17; - - year_cycle %= SOLAR_CYCLE_LENGTH; - if( year_cycle < 0 ) year_cycle = SOLAR_CYCLE_LENGTH + year_cycle; - - assert( year_cycle >= 0 ); - assert( year_cycle < SOLAR_CYCLE_LENGTH ); - - if( year < MIN_SAFE_YEAR ) safe_year = safe_years_low[year_cycle]; - else if( year > MAX_SAFE_YEAR ) safe_year = safe_years_high[year_cycle]; - else assert(0); - - assert(safe_year <= MAX_SAFE_YEAR && safe_year >= MIN_SAFE_YEAR); - - return safe_year; -} - -static void copy_tm_to_tm(const struct tm *src, struct tm *dest) { - if( src == NULL ) { - memset(dest, 0, sizeof(*dest)); - } - else { - memcpy(dest, src, sizeof(*dest)); - } -} - -#if 0 -/* Simulate localtime_r() to the best of our ability */ -struct tm * fake_localtime_r(const time_t *clock, struct tm *result) { - const struct tm *static_result = localtime(clock); - - if( static_result == NULL ) { - memset(result, 0, sizeof(*result)); - return NULL; - } - else { - memcpy(result, static_result, sizeof(*result)); - return result; - } -} - -/* Simulate gmtime_r() to the best of our ability */ -struct tm * fake_gmtime_r(const time_t *clock, struct tm *result) { - const struct tm *static_result = gmtime(clock); - - if( static_result == NULL ) { - memset(result, 0, sizeof(*result)); - return NULL; - } - else { - memcpy(result, static_result, sizeof(*result)); - return result; - } -} -#endif - -static time64_t seconds_between_years(int left_year, int right_year) -{ - int increment = (left_year > right_year) ? 1 : -1; - time64_t seconds; - int cycles; - - __64_init(&seconds); - - if( left_year > 2400 ) { - cycles = (left_year - 2400) / 400; - left_year -= cycles * 400; - - /* seconds += cycles * seconds_in_gregorian_cycle; */ - __64_from_ull(&seconds, seconds_in_gregorian_cycle); - __64_mul_int(&seconds, cycles, &seconds); - } - else if( left_year < 1600 ) { - cycles = (left_year - 1600) / 400; - left_year += cycles * 400; - - /* seconds += cycles * seconds_in_gregorian_cycle; */ - __64_from_ull(&seconds, seconds_in_gregorian_cycle); - __64_mul_int(&seconds, cycles, &seconds); - } - while( left_year != right_year ) { - /* seconds += length_of_year[IS_LEAP(right_year - 1900)] * 60 * 60 * 24; */ - __64_add_int(&seconds, length_of_year[IS_LEAP(right_year - 1900)] * 60 * 60 * 24, &seconds); - - right_year += increment; - } - - /* return seconds * increment; */ - return seconds; -} - -/* This implementation violates mktime specification, according to which - tm_yday, tm_wday, and tm_isdst fields should be updated. This function - leaves input_date unmodified. Given that there were no bug reports, fixing - it might cause more troubles than just leaving it as it is. - */ -time64_t mktime64(const struct tm *input_date) -{ - struct tm safe_date; - struct tm date; - time64_t time; - int year = input_date->tm_year + 1900; - - if( MIN_SAFE_YEAR <= year && year <= MAX_SAFE_YEAR ) { - copy_tm_to_tm(input_date, &safe_date); - __64_from_int(&time, (uint32_t) mktime(&safe_date)); - return time; - } - - /* Have to make the year safe in date else it won't fit in safe_date */ - date = *input_date; - date.tm_year = safe_year(year) - 1900; - copy_tm_to_tm(&date, &safe_date); - - __64_from_int(&time, (uint32_t) mktime(&safe_date)); - __64_add(&time, seconds_between_years(year, (int)(safe_date.tm_year + 1900), &time); - - return time; -} - -#if 0 -/* Because I think mktime() is a crappy name */ -Time64_T timelocal64(const struct TM *date) { - return mktime64(date); -} -#endif - -struct tm *gmtime64_r (const time64_t *in_time, struct tm *p) -{ - int v_tm_sec, v_tm_min, v_tm_hour, v_tm_mon, v_tm_wday; - time64_t v_tm_tday; - int leap; - time64_t m; - time64_t time = *in_time; - int year = 70; - int cycles = 0; - time64_t mod; - time64_t tmp; - int i; - - /* v_tm_sec = (int)(time % 60); time /= 60; */ - __64_divmod_int(&time, 60, &time, &mod); - v_tm_sec = (int) __64_to_int(&mod); - - /* v_tm_min = (int)(time % 60); time /= 60; */ - __64_divmod_int(&time, 60, &time, &mod); - v_tm_min = (int) __64_to_int(&mod); - - /* v_tm_hour = (int)(time % 24); time /= 24; */ - __64_divmod_int(&time, 24, &time, &mod); - v_tm_hour = (int) __64_to_int(&mod); - - v_tm_tday = time; - -#if 0 - /* #define WRAP(a,b,m) ((a) = ((a) < 0 ) ? ((b)--, (a) + (m)) : (a)) */ - WRAP (v_tm_sec, v_tm_min, 60); - WRAP (v_tm_min, v_tm_hour, 60); - WRAP (v_tm_hour, v_tm_tday, 24); -#endif - - /* v_tm_wday = (int)((v_tm_tday + 4) % 7); */ - tmp = v_tm_tday; - __64_add_int(&tmp, 4, &tmp); - __64_mod_int(&tmp, 7, &tmp); - v_tm_wday = (int) __64_to_int(&tmp); - - if (v_tm_wday < 0) v_tm_wday += 7; - - m = v_tm_tday; - /* if (m >= CHEAT_DAYS) { */ - if (__64_cmp_int(&m, CHEAT_DAYS) != __64_SMALLER) { - year = CHEAT_YEARS; - /* m -= CHEAT_DAYS; */ - __64_sub_int(&m, CHEAT_DAYS, &m); - } - - /* if (m >= 0) { */ - if (__64_cmp_int(&m, 0) != __64_SMALLER) { - /* Gregorian cycles, this is huge optimization for distant times */ - /* cycles = (int)(m / (Time64_T) days_in_gregorian_cycle); */ - __64_div_int(&m, days_in_gregorian_cycle, &tmp); - cycles = (int) __64_to_int(&tmp); - - if( cycles ) { - /* m -= (cycles * (Time64_T) days_in_gregorian_cycle); */ - __64_from_int(&tmp, days_in_gregorian_cycle); - __64_mul_int(&tmp, cycles, &tmp); - __64_sub(&m, &tmp, &m); - - /* year += (cycles * years_in_gregorian_cycle); */ - __64_from_int(&tmp, years_in_gregorian_cycle); - __64_mul_int(&tmp, cycles, &tmp); - year += (int) __64_to_int(&tmp); - } - - /* Years */ - leap = IS_LEAP (year); - /* while (m >= (Time64_T) length_of_year[leap]) { */ - while(__64_cmp_int(&m, length_of_year[leap]) != __64_SMALLER) { - /* m -= (Time64_T) length_of_year[leap]; */ - __64_sub_int(&m, length_of_year[leap], &m); - - year++; - leap = IS_LEAP (year); - } - - /* Months */ - v_tm_mon = 0; - /* while (m >= (Time64_T) days_in_month(leap, v_tm_mon)) { */ - while(__64_cmp_int(&m, days_in_month(leap, v_tm_mon)) != __64_SMALLER) { - /* m -= (Time64_T) days_in_month(leap, v_tm_mon); */ - __64_sub_int(&m, days_in_month(leap, v_tm_mon), &m); - - v_tm_mon++; - } - } -#if 0 - else { - year--; - /* Gregorian cycles */ - cycles = (int)((m / (Time64_T) days_in_gregorian_cycle) + 1); - if( cycles ) { - m -= (cycles * (Time64_T) days_in_gregorian_cycle); - year += (cycles * years_in_gregorian_cycle); - } - /* Years */ - leap = IS_LEAP (year); - while (m < (Time64_T) -length_of_year[leap]) { - m += (Time64_T) length_of_year[leap]; - year--; - leap = IS_LEAP (year); - } - /* Months */ - v_tm_mon = 11; - while (m < (Time64_T) -days_in_month[leap][v_tm_mon]) { - m += (Time64_T) days_in_month[leap][v_tm_mon]; - v_tm_mon--; - } - m += (Time64_T) days_in_month[leap][v_tm_mon]; - } -#endif - p->tm_year = year; - - if( p->tm_year != year ) { -#ifdef EOVERFLOW - errno = EOVERFLOW; -#endif - return NULL; - } - - /* At this point m is less than a year so casting to an int is safe */ - /* p->tm_mday = (int) m + 1; */ - i = (int) __64_to_int(&m) - p->tm_mday = (int) i + 1; - /* p->tm_yday = julian_days_by_month[leap][v_tm_mon] + (int)m; */ - p->tm_yday = julian_days_by_month(leap, v_tm_mon) + (int)i; - p->tm_sec = v_tm_sec; - p->tm_min = v_tm_min; - p->tm_hour = v_tm_hour; - p->tm_mon = v_tm_mon; - p->tm_wday = v_tm_wday; - assert(check_tm(p)); - - return p; -} - -struct TM *localtime64_r (const Time64_T *time, struct TM *local_tm) -{ - time_t safe_time; - struct tm safe_date; - struct TM gm_tm; - Year orig_year; - int month_diff; - assert(local_tm != NULL); - /* Use the system localtime() if time_t is small enough */ - if( SHOULD_USE_SYSTEM_LOCALTIME(*time) ) { - safe_time = *time; - TRACE1("Using system localtime for %lld\n", *time); - LOCALTIME_R(&safe_time, &safe_date); - copy_tm_to_TM(&safe_date, local_tm); - assert(check_tm(local_tm)); - return local_tm; - } - if( gmtime64_r(time, &gm_tm) == NULL ) { - TRACE1("gmtime64_r returned null for %lld\n", *time); - return NULL; - } - orig_year = gm_tm.tm_year; - if (gm_tm.tm_year > (2037 - 1900) || - gm_tm.tm_year < (1970 - 1900) - ) - { - TRACE1("Mapping tm_year %lld to safe_year\n", (Year)gm_tm.tm_year); - gm_tm.tm_year = safe_year((Year)(gm_tm.tm_year + 1900)) - 1900; - } - safe_time = timegm64(&gm_tm); - if( LOCALTIME_R(&safe_time, &safe_date) == NULL ) { - TRACE1("localtime_r(%d) returned NULL\n", (int)safe_time); - return NULL; - } - copy_tm_to_TM(&safe_date, local_tm); - local_tm->tm_year = orig_year; - if( local_tm->tm_year != orig_year ) { - TRACE2("tm_year overflow: tm_year %lld, orig_year %lld\n", - (Year)local_tm->tm_year, (Year)orig_year); -#ifdef EOVERFLOW - errno = EOVERFLOW; -#endif - return NULL; - } - month_diff = local_tm->tm_mon - gm_tm.tm_mon; - /* When localtime is Dec 31st previous year and - gmtime is Jan 1st next year. - */ - if( month_diff == 11 ) { - local_tm->tm_year--; - } - /* When localtime is Jan 1st, next year and - gmtime is Dec 31st, previous year. - */ - if( month_diff == -11 ) { - local_tm->tm_year++; - } - /* GMT is Jan 1st, xx01 year, but localtime is still Dec 31st - in a non-leap xx00. There is one point in the cycle - we can't account for which the safe xx00 year is a leap - year. So we need to correct for Dec 31st comming out as - the 366th day of the year. - */ - if( !IS_LEAP(local_tm->tm_year) && local_tm->tm_yday == 365 ) - local_tm->tm_yday--; - assert(check_tm(local_tm)); - return local_tm; -} -static int valid_tm_wday( const struct TM* date ) { - if( 0 <= date->tm_wday && date->tm_wday <= 6 ) - return 1; - else - return 0; -} -static int valid_tm_mon( const struct TM* date ) { - if( 0 <= date->tm_mon && date->tm_mon <= 11 ) - return 1; - else - return 0; -} -char *asctime64_r( const struct TM* date, char *result ) { - /* I figure everything else can be displayed, even hour 25, but if - these are out of range we walk off the name arrays */ - if (!valid_tm_wday(date) || !valid_tm_mon(date)) { - return NULL; - } - /* Docs state this function does not support years beyond 9999. */ - if (1900 + date->tm_year > 9999) { - return NULL; - } - /* - * The IBM docs for this function state that the result buffer can be - * assumed to be at least 26 bytes wide. The docs also state that this is - * only valid for years <= 9999, so we know this format string will not - * print more than that many characters. - * - * http://www-01.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.bpxbd00/asctimer.htm - */ - snprintf(result, 26, "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n", - wday_name[date->tm_wday], - mon_name[date->tm_mon], - date->tm_mday, date->tm_hour, - date->tm_min, date->tm_sec, - 1900 + date->tm_year); - return result; -} -char *ctime64_r( const Time64_T* time, char* result ) { - struct TM date; - localtime64_r( time, &date ); - return asctime64_r( &date, result ); -} -/* Non-thread safe versions of the above */ -struct TM *localtime64(const Time64_T *time) { - return localtime64_r(time, &Static_Return_Date); -} -struct TM *gmtime64(const Time64_T *time) { - return gmtime64_r(time, &Static_Return_Date); -} -char *asctime64( const struct TM* date ) { - return asctime64_r( date, Static_Return_String ); -} -char *ctime64( const Time64_T* time ) { - return asctime64(localtime64(time)); -} - diff --git a/src/crent370/time64/time64.txt b/src/crent370/time64/time64.txt deleted file mode 100644 index 0447f07..0000000 --- a/src/crent370/time64/time64.txt +++ /dev/null @@ -1,638 +0,0 @@ -/* -Copyright (c) 2007-2008 Michael G Schwern -This software originally derived from Paul Sheer's pivotal_gmtime_r.c. -The MIT License: -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ -/* See http://code.google.com/p/y2038 for this code's origin */ -#if defined(__LP64__) -#error This cruft should be LP32 only! -#endif -/* -Programmers who have available to them 64-bit time values as a 'long -long' type can use localtime64_r() and gmtime64_r() which correctly -converts the time even on 32-bit systems. Whether you have 64-bit time -values will depend on the operating system. -localtime64_r() is a 64-bit equivalent of localtime_r(). -gmtime64_r() is a 64-bit equivalent of gmtime_r(). -*/ -#include -#include -#include -#include -#include -#include -#include "time64.h" -/* BIONIC_BEGIN */ -/* the following are here to avoid exposing time64_config.h and - * other types in our public time64.h header - */ -#include "time64_config.h" -/* Not everyone has gm/localtime_r(), provide a replacement */ -#ifdef HAS_LOCALTIME_R -# define LOCALTIME_R(clock, result) localtime_r(clock, result) -#else -# define LOCALTIME_R(clock, result) fake_localtime_r(clock, result) -#endif -#ifdef HAS_GMTIME_R -# define GMTIME_R(clock, result) gmtime_r(clock, result) -#else -# define GMTIME_R(clock, result) fake_gmtime_r(clock, result) -#endif -typedef int64_t Int64; -typedef time64_t Time64_T; -typedef int64_t Year; -#define TM tm -/* BIONIC_END */ -/* Spec says except for stftime() and the _r() functions, these - all return static memory. Stabbings! */ -static struct TM Static_Return_Date; -static char Static_Return_String[35]; -static const int days_in_month[2][12] = { - {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, - {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, -}; -static const int julian_days_by_month[2][12] = { - {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334}, - {0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335}, -}; -static char const wday_name[7][3] = { - "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" -}; -static char const mon_name[12][3] = { - "Jan", "Feb", "Mar", "Apr", "May", "Jun", - "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" -}; -static const int length_of_year[2] = { 365, 366 }; -/* Some numbers relating to the gregorian cycle */ -static const Year years_in_gregorian_cycle = 400; -#define days_in_gregorian_cycle ((365 * 400) + 100 - 4 + 1) -static const Time64_T seconds_in_gregorian_cycle = days_in_gregorian_cycle * 60LL * 60LL * 24LL; -/* Year range we can trust the time funcitons with */ -#define MAX_SAFE_YEAR 2037 -#define MIN_SAFE_YEAR 1971 -/* 28 year Julian calendar cycle */ -#define SOLAR_CYCLE_LENGTH 28 -/* Year cycle from MAX_SAFE_YEAR down. */ -static const int safe_years_high[SOLAR_CYCLE_LENGTH] = { - 2016, 2017, 2018, 2019, - 2020, 2021, 2022, 2023, - 2024, 2025, 2026, 2027, - 2028, 2029, 2030, 2031, - 2032, 2033, 2034, 2035, - 2036, 2037, 2010, 2011, - 2012, 2013, 2014, 2015 -}; -/* Year cycle from MIN_SAFE_YEAR up */ -static const int safe_years_low[SOLAR_CYCLE_LENGTH] = { - 1996, 1997, 1998, 1971, - 1972, 1973, 1974, 1975, - 1976, 1977, 1978, 1979, - 1980, 1981, 1982, 1983, - 1984, 1985, 1986, 1987, - 1988, 1989, 1990, 1991, - 1992, 1993, 1994, 1995, -}; -/* Let's assume people are going to be looking for dates in the future. - Let's provide some cheats so you can skip ahead. - This has a 4x speed boost when near 2008. -*/ -/* Number of days since epoch on Jan 1st, 2008 GMT */ -#define CHEAT_DAYS (1199145600 / 24 / 60 / 60) -#define CHEAT_YEARS 108 -#define IS_LEAP(n) ((!(((n) + 1900) % 400) || (!(((n) + 1900) % 4) && (((n) + 1900) % 100))) != 0) -#define WRAP(a,b,m) ((a) = ((a) < 0 ) ? ((b)--, (a) + (m)) : (a)) -#ifdef USE_SYSTEM_LOCALTIME -# define SHOULD_USE_SYSTEM_LOCALTIME(a) ( \ - (a) <= SYSTEM_LOCALTIME_MAX && \ - (a) >= SYSTEM_LOCALTIME_MIN \ -) -#else -# define SHOULD_USE_SYSTEM_LOCALTIME(a) (0) -#endif -#ifdef USE_SYSTEM_GMTIME -# define SHOULD_USE_SYSTEM_GMTIME(a) ( \ - (a) <= SYSTEM_GMTIME_MAX && \ - (a) >= SYSTEM_GMTIME_MIN \ -) -#else -# define SHOULD_USE_SYSTEM_GMTIME(a) (0) -#endif -/* Multi varadic macros are a C99 thing, alas */ -#ifdef TIME_64_DEBUG -# define TRACE(format) (fprintf(stderr, format)) -# define TRACE1(format, var1) (fprintf(stderr, format, var1)) -# define TRACE2(format, var1, var2) (fprintf(stderr, format, var1, var2)) -# define TRACE3(format, var1, var2, var3) (fprintf(stderr, format, var1, var2, var3)) -#else -# define TRACE(format) ((void)0) -# define TRACE1(format, var1) ((void)0) -# define TRACE2(format, var1, var2) ((void)0) -# define TRACE3(format, var1, var2, var3) ((void)0) -#endif -static int is_exception_century(Year year) -{ - int is_exception = ((year % 100 == 0) && !(year % 400 == 0)); - TRACE1("# is_exception_century: %s\n", is_exception ? "yes" : "no"); - return(is_exception); -} -/* timegm() is not in the C or POSIX spec, but it is such a useful - extension I would be remiss in leaving it out. Also I need it - for localtime64() -*/ -Time64_T timegm64(const struct TM *date) { - Time64_T days = 0; - Time64_T seconds = 0; - Year year; - Year orig_year = (Year)date->tm_year; - int cycles = 0; - if( orig_year > 100 ) { - cycles = (orig_year - 100) / 400; - orig_year -= cycles * 400; - days += (Time64_T)cycles * days_in_gregorian_cycle; - } - else if( orig_year < -300 ) { - cycles = (orig_year - 100) / 400; - orig_year -= cycles * 400; - days += (Time64_T)cycles * days_in_gregorian_cycle; - } - TRACE3("# timegm/ cycles: %d, days: %lld, orig_year: %lld\n", cycles, days, orig_year); - if( orig_year > 70 ) { - year = 70; - while( year < orig_year ) { - days += length_of_year[IS_LEAP(year)]; - year++; - } - } - else if ( orig_year < 70 ) { - year = 69; - do { - days -= length_of_year[IS_LEAP(year)]; - year--; - } while( year >= orig_year ); - } - days += julian_days_by_month[IS_LEAP(orig_year)][date->tm_mon]; - days += date->tm_mday - 1; - seconds = days * 60 * 60 * 24; - seconds += date->tm_hour * 60 * 60; - seconds += date->tm_min * 60; - seconds += date->tm_sec; - return(seconds); -} -#if !defined(NDEBUG) -static int check_tm(struct TM *tm) -{ - /* Don't forget leap seconds */ - assert(tm->tm_sec >= 0); - assert(tm->tm_sec <= 61); - assert(tm->tm_min >= 0); - assert(tm->tm_min <= 59); - assert(tm->tm_hour >= 0); - assert(tm->tm_hour <= 23); - assert(tm->tm_mday >= 1); - assert(tm->tm_mday <= days_in_month[IS_LEAP(tm->tm_year)][tm->tm_mon]); - assert(tm->tm_mon >= 0); - assert(tm->tm_mon <= 11); - assert(tm->tm_wday >= 0); - assert(tm->tm_wday <= 6); - assert(tm->tm_yday >= 0); - assert(tm->tm_yday <= length_of_year[IS_LEAP(tm->tm_year)]); -#ifdef HAS_TM_TM_GMTOFF - assert(tm->tm_gmtoff >= -24 * 60 * 60); - assert(tm->tm_gmtoff <= 24 * 60 * 60); -#endif - return 1; -} -#endif -/* The exceptional centuries without leap years cause the cycle to - shift by 16 -*/ -static Year cycle_offset(Year year) -{ - const Year start_year = 2000; - Year year_diff = year - start_year; - Year exceptions; - if( year > start_year ) - year_diff--; - exceptions = year_diff / 100; - exceptions -= year_diff / 400; - TRACE3("# year: %lld, exceptions: %lld, year_diff: %lld\n", - year, exceptions, year_diff); - return exceptions * 16; -} -/* For a given year after 2038, pick the latest possible matching - year in the 28 year calendar cycle. - A matching year... - 1) Starts on the same day of the week. - 2) Has the same leap year status. - This is so the calendars match up. - Also the previous year must match. When doing Jan 1st you might - wind up on Dec 31st the previous year when doing a -UTC time zone. - Finally, the next year must have the same start day of week. This - is for Dec 31st with a +UTC time zone. - It doesn't need the same leap year status since we only care about - January 1st. -*/ -static int safe_year(const Year year) -{ - int safe_year = 0; - Year year_cycle; - if( year >= MIN_SAFE_YEAR && year <= MAX_SAFE_YEAR ) { - return (int)year; - } - year_cycle = year + cycle_offset(year); - /* safe_years_low is off from safe_years_high by 8 years */ - if( year < MIN_SAFE_YEAR ) - year_cycle -= 8; - /* Change non-leap xx00 years to an equivalent */ - if( is_exception_century(year) ) - year_cycle += 11; - /* Also xx01 years, since the previous year will be wrong */ - if( is_exception_century(year - 1) ) - year_cycle += 17; - year_cycle %= SOLAR_CYCLE_LENGTH; - if( year_cycle < 0 ) - year_cycle = SOLAR_CYCLE_LENGTH + year_cycle; - assert( year_cycle >= 0 ); - assert( year_cycle < SOLAR_CYCLE_LENGTH ); - if( year < MIN_SAFE_YEAR ) - safe_year = safe_years_low[year_cycle]; - else if( year > MAX_SAFE_YEAR ) - safe_year = safe_years_high[year_cycle]; - else - assert(0); - TRACE3("# year: %lld, year_cycle: %lld, safe_year: %d\n", - year, year_cycle, safe_year); - assert(safe_year <= MAX_SAFE_YEAR && safe_year >= MIN_SAFE_YEAR); - return safe_year; -} -static void copy_tm_to_TM(const struct tm *src, struct TM *dest) { - if( src == NULL ) { - memset(dest, 0, sizeof(*dest)); - } - else { -# ifdef USE_TM64 - dest->tm_sec = src->tm_sec; - dest->tm_min = src->tm_min; - dest->tm_hour = src->tm_hour; - dest->tm_mday = src->tm_mday; - dest->tm_mon = src->tm_mon; - dest->tm_year = (Year)src->tm_year; - dest->tm_wday = src->tm_wday; - dest->tm_yday = src->tm_yday; - dest->tm_isdst = src->tm_isdst; -# ifdef HAS_TM_TM_GMTOFF - dest->tm_gmtoff = src->tm_gmtoff; -# endif -# ifdef HAS_TM_TM_ZONE - dest->tm_zone = src->tm_zone; -# endif -# else - /* They're the same type */ - memcpy(dest, src, sizeof(*dest)); -# endif - } -} -static void copy_TM_to_tm(const struct TM *src, struct tm *dest) { - if( src == NULL ) { - memset(dest, 0, sizeof(*dest)); - } - else { -# ifdef USE_TM64 - dest->tm_sec = src->tm_sec; - dest->tm_min = src->tm_min; - dest->tm_hour = src->tm_hour; - dest->tm_mday = src->tm_mday; - dest->tm_mon = src->tm_mon; - dest->tm_year = (int)src->tm_year; - dest->tm_wday = src->tm_wday; - dest->tm_yday = src->tm_yday; - dest->tm_isdst = src->tm_isdst; -# ifdef HAS_TM_TM_GMTOFF - dest->tm_gmtoff = src->tm_gmtoff; -# endif -# ifdef HAS_TM_TM_ZONE - dest->tm_zone = src->tm_zone; -# endif -# else - /* They're the same type */ - memcpy(dest, src, sizeof(*dest)); -# endif - } -} -/* Simulate localtime_r() to the best of our ability */ -struct tm * fake_localtime_r(const time_t *clock, struct tm *result) { - const struct tm *static_result = localtime(clock); - assert(result != NULL); - if( static_result == NULL ) { - memset(result, 0, sizeof(*result)); - return NULL; - } - else { - memcpy(result, static_result, sizeof(*result)); - return result; - } -} -/* Simulate gmtime_r() to the best of our ability */ -struct tm * fake_gmtime_r(const time_t *clock, struct tm *result) { - const struct tm *static_result = gmtime(clock); - assert(result != NULL); - if( static_result == NULL ) { - memset(result, 0, sizeof(*result)); - return NULL; - } - else { - memcpy(result, static_result, sizeof(*result)); - return result; - } -} -static Time64_T seconds_between_years(Year left_year, Year right_year) { - int increment = (left_year > right_year) ? 1 : -1; - Time64_T seconds = 0; - int cycles; - if( left_year > 2400 ) { - cycles = (left_year - 2400) / 400; - left_year -= cycles * 400; - seconds += cycles * seconds_in_gregorian_cycle; - } - else if( left_year < 1600 ) { - cycles = (left_year - 1600) / 400; - left_year += cycles * 400; - seconds += cycles * seconds_in_gregorian_cycle; - } - while( left_year != right_year ) { - seconds += length_of_year[IS_LEAP(right_year - 1900)] * 60 * 60 * 24; - right_year += increment; - } - return seconds * increment; -} -/* This implementation violates mktime specification, according to which - tm_yday, tm_wday, and tm_isdst fields should be updated. This function - leaves input_date unmodified. Given that there were no bug reports, fixing - it might cause more troubles than just leaving it as it is. - */ -Time64_T mktime64(const struct TM *input_date) { - struct tm safe_date; - struct TM date; - Time64_T time; - Year year = input_date->tm_year + 1900; - if( MIN_SAFE_YEAR <= year && year <= MAX_SAFE_YEAR ) { - copy_TM_to_tm(input_date, &safe_date); - return (Time64_T)mktime(&safe_date); - } - /* Have to make the year safe in date else it won't fit in safe_date */ - date = *input_date; - date.tm_year = safe_year(year) - 1900; - copy_TM_to_tm(&date, &safe_date); - time = (Time64_T)mktime(&safe_date); - time += seconds_between_years(year, (Year)(safe_date.tm_year + 1900)); - return time; -} -/* Because I think mktime() is a crappy name */ -Time64_T timelocal64(const struct TM *date) { - return mktime64(date); -} -struct TM *gmtime64_r (const Time64_T *in_time, struct TM *p) -{ - int v_tm_sec, v_tm_min, v_tm_hour, v_tm_mon, v_tm_wday; - Time64_T v_tm_tday; - int leap; - Time64_T m; - Time64_T time = *in_time; - Year year = 70; - int cycles = 0; - assert(p != NULL); - /* Use the system gmtime() if time_t is small enough */ - if( SHOULD_USE_SYSTEM_GMTIME(*in_time) ) { - time_t safe_time = *in_time; - struct tm safe_date; - GMTIME_R(&safe_time, &safe_date); - copy_tm_to_TM(&safe_date, p); - assert(check_tm(p)); - return p; - } -#ifdef HAS_TM_TM_GMTOFF - p->tm_gmtoff = 0; -#endif - p->tm_isdst = 0; -#ifdef HAS_TM_TM_ZONE - p->tm_zone = "UTC"; -#endif - v_tm_sec = (int)(time % 60); - time /= 60; - v_tm_min = (int)(time % 60); - time /= 60; - v_tm_hour = (int)(time % 24); - time /= 24; - v_tm_tday = time; - WRAP (v_tm_sec, v_tm_min, 60); - WRAP (v_tm_min, v_tm_hour, 60); - WRAP (v_tm_hour, v_tm_tday, 24); - v_tm_wday = (int)((v_tm_tday + 4) % 7); - if (v_tm_wday < 0) - v_tm_wday += 7; - m = v_tm_tday; - if (m >= CHEAT_DAYS) { - year = CHEAT_YEARS; - m -= CHEAT_DAYS; - } - if (m >= 0) { - /* Gregorian cycles, this is huge optimization for distant times */ - cycles = (int)(m / (Time64_T) days_in_gregorian_cycle); - if( cycles ) { - m -= (cycles * (Time64_T) days_in_gregorian_cycle); - year += (cycles * years_in_gregorian_cycle); - } - /* Years */ - leap = IS_LEAP (year); - while (m >= (Time64_T) length_of_year[leap]) { - m -= (Time64_T) length_of_year[leap]; - year++; - leap = IS_LEAP (year); - } - /* Months */ - v_tm_mon = 0; - while (m >= (Time64_T) days_in_month[leap][v_tm_mon]) { - m -= (Time64_T) days_in_month[leap][v_tm_mon]; - v_tm_mon++; - } - } else { - year--; - /* Gregorian cycles */ - cycles = (int)((m / (Time64_T) days_in_gregorian_cycle) + 1); - if( cycles ) { - m -= (cycles * (Time64_T) days_in_gregorian_cycle); - year += (cycles * years_in_gregorian_cycle); - } - /* Years */ - leap = IS_LEAP (year); - while (m < (Time64_T) -length_of_year[leap]) { - m += (Time64_T) length_of_year[leap]; - year--; - leap = IS_LEAP (year); - } - /* Months */ - v_tm_mon = 11; - while (m < (Time64_T) -days_in_month[leap][v_tm_mon]) { - m += (Time64_T) days_in_month[leap][v_tm_mon]; - v_tm_mon--; - } - m += (Time64_T) days_in_month[leap][v_tm_mon]; - } - p->tm_year = year; - if( p->tm_year != year ) { -#ifdef EOVERFLOW - errno = EOVERFLOW; -#endif - return NULL; - } - /* At this point m is less than a year so casting to an int is safe */ - p->tm_mday = (int) m + 1; - p->tm_yday = julian_days_by_month[leap][v_tm_mon] + (int)m; - p->tm_sec = v_tm_sec; - p->tm_min = v_tm_min; - p->tm_hour = v_tm_hour; - p->tm_mon = v_tm_mon; - p->tm_wday = v_tm_wday; - assert(check_tm(p)); - return p; -} -struct TM *localtime64_r (const Time64_T *time, struct TM *local_tm) -{ - time_t safe_time; - struct tm safe_date; - struct TM gm_tm; - Year orig_year; - int month_diff; - assert(local_tm != NULL); - /* Use the system localtime() if time_t is small enough */ - if( SHOULD_USE_SYSTEM_LOCALTIME(*time) ) { - safe_time = *time; - TRACE1("Using system localtime for %lld\n", *time); - LOCALTIME_R(&safe_time, &safe_date); - copy_tm_to_TM(&safe_date, local_tm); - assert(check_tm(local_tm)); - return local_tm; - } - if( gmtime64_r(time, &gm_tm) == NULL ) { - TRACE1("gmtime64_r returned null for %lld\n", *time); - return NULL; - } - orig_year = gm_tm.tm_year; - if (gm_tm.tm_year > (2037 - 1900) || - gm_tm.tm_year < (1970 - 1900) - ) - { - TRACE1("Mapping tm_year %lld to safe_year\n", (Year)gm_tm.tm_year); - gm_tm.tm_year = safe_year((Year)(gm_tm.tm_year + 1900)) - 1900; - } - safe_time = timegm64(&gm_tm); - if( LOCALTIME_R(&safe_time, &safe_date) == NULL ) { - TRACE1("localtime_r(%d) returned NULL\n", (int)safe_time); - return NULL; - } - copy_tm_to_TM(&safe_date, local_tm); - local_tm->tm_year = orig_year; - if( local_tm->tm_year != orig_year ) { - TRACE2("tm_year overflow: tm_year %lld, orig_year %lld\n", - (Year)local_tm->tm_year, (Year)orig_year); -#ifdef EOVERFLOW - errno = EOVERFLOW; -#endif - return NULL; - } - month_diff = local_tm->tm_mon - gm_tm.tm_mon; - /* When localtime is Dec 31st previous year and - gmtime is Jan 1st next year. - */ - if( month_diff == 11 ) { - local_tm->tm_year--; - } - /* When localtime is Jan 1st, next year and - gmtime is Dec 31st, previous year. - */ - if( month_diff == -11 ) { - local_tm->tm_year++; - } - /* GMT is Jan 1st, xx01 year, but localtime is still Dec 31st - in a non-leap xx00. There is one point in the cycle - we can't account for which the safe xx00 year is a leap - year. So we need to correct for Dec 31st comming out as - the 366th day of the year. - */ - if( !IS_LEAP(local_tm->tm_year) && local_tm->tm_yday == 365 ) - local_tm->tm_yday--; - assert(check_tm(local_tm)); - return local_tm; -} -static int valid_tm_wday( const struct TM* date ) { - if( 0 <= date->tm_wday && date->tm_wday <= 6 ) - return 1; - else - return 0; -} -static int valid_tm_mon( const struct TM* date ) { - if( 0 <= date->tm_mon && date->tm_mon <= 11 ) - return 1; - else - return 0; -} -char *asctime64_r( const struct TM* date, char *result ) { - /* I figure everything else can be displayed, even hour 25, but if - these are out of range we walk off the name arrays */ - if (!valid_tm_wday(date) || !valid_tm_mon(date)) { - return NULL; - } - /* Docs state this function does not support years beyond 9999. */ - if (1900 + date->tm_year > 9999) { - return NULL; - } - /* - * The IBM docs for this function state that the result buffer can be - * assumed to be at least 26 bytes wide. The docs also state that this is - * only valid for years <= 9999, so we know this format string will not - * print more than that many characters. - * - * http://www-01.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.bpxbd00/asctimer.htm - */ - snprintf(result, 26, "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n", - wday_name[date->tm_wday], - mon_name[date->tm_mon], - date->tm_mday, date->tm_hour, - date->tm_min, date->tm_sec, - 1900 + date->tm_year); - return result; -} -char *ctime64_r( const Time64_T* time, char* result ) { - struct TM date; - localtime64_r( time, &date ); - return asctime64_r( &date, result ); -} -/* Non-thread safe versions of the above */ -struct TM *localtime64(const Time64_T *time) { - return localtime64_r(time, &Static_Return_Date); -} -struct TM *gmtime64(const Time64_T *time) { - return gmtime64_r(time, &Static_Return_Date); -} -char *asctime64( const struct TM* date ) { - return asctime64_r( date, Static_Return_String ); -} -char *ctime64( const Time64_T* time ) { - return asctime64(localtime64(time)); -} - diff --git a/src/crent370/time64/tm64asc.c b/src/crent370/time64/tm64asc.c deleted file mode 100644 index ec9ab62..0000000 --- a/src/crent370/time64/tm64asc.c +++ /dev/null @@ -1,22 +0,0 @@ -#include -#include -#include -#include -#include -#include "__time64.h" -#include "mvssupa.h" -#include "clibcrt.h" - -__asm__("\n&FUNC SETC 'asctime64'"); -char *asctime64(const struct tm *timeptr) -{ - CLIBCRT *crt = __crtget(); - char *buf = crt ? crt->crtctime : NULL; - - if (buf) { - buf = asctime64_r(timeptr, buf); - } - - return buf; -} - diff --git a/src/crent370/time64/tm64asc.o b/src/crent370/time64/tm64asc.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/time64/tm64asc.s b/src/crent370/time64/tm64asc.s deleted file mode 100644 index 8b376f5..0000000 --- a/src/crent370/time64/tm64asc.s +++ /dev/null @@ -1,68 +0,0 @@ - TITLE '/home/projects/crent370/time64/tm64asc.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/time64 -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'asctime64' -* Program text area - DS 0F - EJECT -* external function 'asctime64' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'asctime64' -TM64ASC PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'asctime64' code - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - LR 2,15 ==> buf,crt - A 2,=F'24' ==> buf - LTR 15,15 ==> crt - BNE @@L3 - SLR 2,2 ==> buf -@@L3 EQU * - LTR 2,2 ==> buf - BE @@L4 - MVC 88(4,13),0(11) ==> timeptr - ST 2,92(13) ==> buf - LA 1,88(,13) - L 15,=V(TM64ASCR) - BALR 14,15 - LR 2,15 ==> buf -@@L4 EQU * - LR 15,2 ==> buf -* Function 'asctime64' epilogue - PDPEPIL -* Function 'asctime64' literal pool - DS 0D - LTORG -* Function 'asctime64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/time64/tm64ascr.c b/src/crent370/time64/tm64ascr.c deleted file mode 100644 index 9bfdffc..0000000 --- a/src/crent370/time64/tm64ascr.c +++ /dev/null @@ -1,68 +0,0 @@ -#include -#include -#include -#include -#include -#include "__time64.h" - -static char const wday_name[7][3] = { - "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" -}; - -static char const mon_name[12][3] = { - "Jan", "Feb", "Mar", "Apr", "May", "Jun", - "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" -}; - -__asm__("\n&FUNC SETC 'valid_tm_wday'"); -static int valid_tm_wday( const struct tm* date ) -{ - if( 0 <= date->tm_wday && date->tm_wday <= 6 ) - return 1; - else - return 0; -} - -__asm__("\n&FUNC SETC 'valid_tm_mon'"); -static int valid_tm_mon( const struct tm* date ) -{ - if( 0 <= date->tm_mon && date->tm_mon <= 11 ) - return 1; - else - return 0; -} - -__asm__("\n&FUNC SETC 'asctime64_r'"); -char *asctime64_r( const struct tm* date, char *result ) -{ - /* I figure everything else can be displayed, even hour 25, but if - these are out of range we walk off the name arrays */ - if (!valid_tm_wday(date) || !valid_tm_mon(date)) { - return NULL; - } - - /* Docs state this function does not support years beyond 9999. */ - if (1900 + date->tm_year > 9999) { - return NULL; - } - - /* - * The IBM docs for this function state that the result buffer can be - * assumed to be at least 26 bytes wide. The docs also state that this is - * only valid for years <= 9999, so we know this format string will not - * print more than that many characters. - * - * http://www-01.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.bpxbd00/asctimer.htm - */ - if (result) { - snprintf(result, 26, "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n", - wday_name[date->tm_wday], - mon_name[date->tm_mon], - date->tm_mday, date->tm_hour, - date->tm_min, date->tm_sec, - 1900 + date->tm_year); - } - - return result; -} - diff --git a/src/crent370/time64/tm64ascr.o b/src/crent370/time64/tm64ascr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/time64/tm64ascr.s b/src/crent370/time64/tm64ascr.s deleted file mode 100644 index 94534ef..0000000 --- a/src/crent370/time64/tm64ascr.s +++ /dev/null @@ -1,194 +0,0 @@ - TITLE '/home/projects/crent370/time64/tm64ascr.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/time64 -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@2 EQU * - DC C'Sun' - DC C'Mon' - DC C'Tue' - DC C'Wed' - DC C'Thu' - DC C'Fri' - DC C'Sat' -@@3 EQU * - DC C'Jan' - DC C'Feb' - DC C'Mar' - DC C'Apr' - DC C'May' - DC C'Jun' - DC C'Jul' - DC C'Aug' - DC C'Sep' - DC C'Oct' - DC C'Nov' - DC C'Dec' - -&FUNC SETC 'valid_tm_wday' - DS 0F - EJECT -* static function 'valid_tm_wday' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'valid_tm_wday' -@@4 PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=NO - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'valid_tm_wday' code - L 2,0(11) ==> date - L 2,24(2) ==> .tm_wday - LA 15,1(0,0) - LA 3,6(0,0) - CLR 2,3 - BNH @@L1 - SLR 15,15 -@@L1 EQU * -* Function 'valid_tm_wday' epilogue - PDPEPIL -* Function 'valid_tm_wday' literal pool - DS 0D - LTORG -* Function 'valid_tm_wday' page table -@@PGT0 DS 0F - DC A(@@PG0) - -&FUNC SETC 'valid_tm_mon' - DS 0F - EJECT -* static function 'valid_tm_mon' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'valid_tm_mon' -@@5 PDPPRLG CINDEX=1,FRAME=88,BASER=12,ENTRY=NO - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'valid_tm_mon' code - L 2,0(11) ==> date - L 2,16(2) ==> .tm_mon - LA 15,1(0,0) - LA 3,11(0,0) - CLR 2,3 - BNH @@L4 - SLR 15,15 -@@L4 EQU * -* Function 'valid_tm_mon' epilogue - PDPEPIL -* Function 'valid_tm_mon' literal pool - DS 0D - LTORG -* Function 'valid_tm_mon' page table -@@PGT1 DS 0F - DC A(@@PG1) - -&FUNC SETC 'asctime64_r' - DS 0F - EJECT -* external function 'asctime64_r' prologue -* frame base=88, local stack=0, call args=40 -&FUNC SETC 'asctime64_r' -TM64ASCR PDPPRLG CINDEX=2,FRAME=128,BASER=12,ENTRY=YES - B @@FEN2 - LTORG -@@FEN2 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG2 EQU * - LR 11,1 - L 10,=A(@@PGT2) -* Function 'asctime64_r' code - L 3,0(11) ==> date - L 4,4(11) ==> result - ST 3,88(13) ==> date - LA 1,88(,13) - L 15,=A(@@4) - BALR 14,15 - LTR 15,15 ==> result - BE @@L9 - ST 3,88(13) ==> date - LA 1,88(,13) - L 15,=A(@@5) - BALR 14,15 - LTR 15,15 ==> result - BNE @@L8 -@@L9 EQU * - SLR 15,15 ==> result - B @@L7 -@@L8 EQU * - L 2,20(3) ==> .tm_year - A 2,=F'1900' - SLR 15,15 ==> result - L 5,=F'9999' - CR 2,5 - BH @@L7 - LTR 4,4 ==> result - BE @@L11 - ST 4,88(13) ==> result - MVC 92(4,13),=F'26' - MVC 96(4,13),=A(@@LC0) - L 2,24(3) ==> .tm_wday - SLL 2,1 - A 2,24(3) ==> .tm_wday - A 2,=A(@@2) - ST 2,100(13) - L 2,16(3) ==> .tm_mon - SLL 2,1 - A 2,16(3) ==> .tm_mon - A 2,=A(@@3) - ST 2,104(13) - MVC 108(4,13),12(3) ==> .tm_mday - MVC 112(4,13),8(3) ==> .tm_hour - MVC 116(4,13),4(3) ==> .tm_min - MVC 120(4,13),0(3) ==> .tm_sec - L 2,20(3) ==> .tm_year - A 2,=F'1900' - ST 2,124(13) - LA 1,88(,13) - L 15,=V(SNPRINTF) - BALR 14,15 -@@L11 EQU * - LR 15,4 ==> result -@@L7 EQU * -* Function 'asctime64_r' epilogue - PDPEPIL -* Function 'asctime64_r' literal pool - DS 0D - LTORG -* Function 'asctime64_r' page table -@@PGT2 DS 0F - DC A(@@PG2) -@@LC0 EQU * - DC C'%.3s %.3s%3d %.2d:%.2d:%.2d %d' - DC X'15' - DC X'0' - END diff --git a/src/crent370/time64/tm64clck.c b/src/crent370/time64/tm64clck.c deleted file mode 100644 index 3ba5d17..0000000 --- a/src/crent370/time64/tm64clck.c +++ /dev/null @@ -1,58 +0,0 @@ -#include -#include -#include -#include - -__asm__("\n&FUNC SETC 'clock64'"); -clock64_t clock64(void) -{ - time64_t clock; - -__asm__("LA\t2,%0\tget address of 8 byte work area\n\t" - "STCK\t0(2)\tstore clock into work area\n\t" - : "=m" (clock.u64) : : "2"); - -#if 0 /* accurate but slightly slower */ - - clock.u64 >>=12; - __64_sub_u64(&clock, 0x0007D91000000000ULL, &clock); - __64_div_i32(&clock, 1000000, &clock); - __64_sub_i32(&clock, 1220, &clock); - -#else /* accurate and a little faster */ - - /* make Jan 1 1900 (STCK) relative to Jan 1 1970 (unix epoch) */ - clock.u64 -= 0x7D91048BCA000000ULL; /* STCK value for Jan 1 1970 */ - - /* convert to microseconds (bits 0-51==number of microseconds) */ - clock.u64 >>= 12; /* convert to microseconds (1 us = .000001 sec) */ - -#if 0 - /* calc seconds by discarding the microseconds (divide by 1000000) */ - __64_div_u32(&clock, 1000000, &clock); -#else - /* convert microseconds to miliseconds (divide by 1000) - * Note: 1000000 microseconds == 1 second. - * 1000 miliseconds == 1 second - */ - __64_div_u32(&clock, 1000, &clock); /* CLOCKS_PER_SECOND is 1000 */ -#endif - -#endif - return (clock64_t) clock.u64; -} - -#if 0 -int main(int argc, char **argv) -{ - unsigned work[2] = {0,0}; - time_t t = __getclk(work); - clock64_t t64 = clock64(); - - printf("%s: t=0x00000000%08X (%d)\n", __func__, t, t); - printf("%s: t64=0x%016llX (%lld)\n", __func__, t64, t64); - - return 0; -} -#endif - diff --git a/src/crent370/time64/tm64clck.o b/src/crent370/time64/tm64clck.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/time64/tm64clck.s b/src/crent370/time64/tm64clck.s deleted file mode 100644 index 110632c..0000000 --- a/src/crent370/time64/tm64clck.s +++ /dev/null @@ -1,79 +0,0 @@ - TITLE '/home/projects/crent370/time64/tm64clck.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/time64 -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'clock64' -* Program text area - DS 0F - EJECT -* external function 'clock64' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'clock64' -TM64CLCK PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'clock64' code - LR 6,0 - LA 2,104(13) get address of 8 byte work area - STCK 0(2) store clock into work area - - L 4,104(13) - L 5,4+104(13) - LR 3,5 - A 3,=F'905969664' - LA 15,1(0,0) - CLR 3,5 - BH @@L2 - SLR 15,15 -@@L2 EQU * - LR 2,4 - A 2,=F'-2106655883' - SR 2,15 - ST 2,104(13) - ST 3,4+104(13) - SRDL 2,12 - ST 2,104(13) - ST 3,4+104(13) - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=F'1000' - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64DU32) - BALR 14,15 - MVC 0(8,6),104(13) ==> - LR 15,6 -* Function 'clock64' epilogue - PDPEPIL -* Function 'clock64' literal pool - DS 0D - LTORG -* Function 'clock64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/time64/tm64cti.c b/src/crent370/time64/tm64cti.c deleted file mode 100644 index a7dcbeb..0000000 --- a/src/crent370/time64/tm64cti.c +++ /dev/null @@ -1,12 +0,0 @@ -#include -#include -#include -#include -#include -#include "__time64.h" - -__asm__("\n&FUNC SETC 'ctime64'"); -char *ctime64( const time64_t* time ) { - return asctime64(localtime64(time)); -} - diff --git a/src/crent370/time64/tm64cti.o b/src/crent370/time64/tm64cti.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/time64/tm64cti.s b/src/crent370/time64/tm64cti.s deleted file mode 100644 index 3731397..0000000 --- a/src/crent370/time64/tm64cti.s +++ /dev/null @@ -1,57 +0,0 @@ - TITLE '/home/projects/crent370/time64/tm64cti.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/time64 -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'ctime64' -* Program text area - DS 0F - EJECT -* external function 'ctime64' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'ctime64' -TM64CTI PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ctime64' code - MVC 88(4,13),0(11) ==> time - LA 1,88(,13) - L 15,=V(TM64LTM) - BALR 14,15 - ST 15,88(13) - LA 1,88(,13) - L 15,=V(TM64ASC) - BALR 14,15 -* Function 'ctime64' epilogue - PDPEPIL -* Function 'ctime64' literal pool - DS 0D - LTORG -* Function 'ctime64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/time64/tm64ctir.c b/src/crent370/time64/tm64ctir.c deleted file mode 100644 index 46bdcc9..0000000 --- a/src/crent370/time64/tm64ctir.c +++ /dev/null @@ -1,21 +0,0 @@ -#include -#include -#include -#include -#include -#include "__time64.h" - -__asm__("\n&FUNC SETC 'ctime64_r'"); -char *ctime64_r( const time64_t* time, char* result ) -{ - struct tm date; - - if (result) { - localtime64_r( time, &date ); - - result = asctime64_r( &date, result ); - } - - return result; -} - diff --git a/src/crent370/time64/tm64ctir.o b/src/crent370/time64/tm64ctir.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/time64/tm64ctir.s b/src/crent370/time64/tm64ctir.s deleted file mode 100644 index 843ff12..0000000 --- a/src/crent370/time64/tm64ctir.s +++ /dev/null @@ -1,66 +0,0 @@ - TITLE '/home/projects/crent370/time64/tm64ctir.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/time64 -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'ctime64_r' -* Program text area - DS 0F - EJECT -* external function 'ctime64_r' prologue -* frame base=88, local stack=40, call args=8 -&FUNC SETC 'ctime64_r' -TM64CTIR PDPPRLG CINDEX=0,FRAME=136,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ctime64_r' code - L 3,4(11) ==> result - LTR 3,3 ==> result - BE @@L2 - MVC 88(4,13),0(11) ==> time - LA 2,96(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(TM64LTMR) - BALR 14,15 - ST 2,88(13) - ST 3,92(13) ==> result - LA 1,88(,13) - L 15,=V(TM64ASCR) - BALR 14,15 - LR 3,15 ==> result -@@L2 EQU * - LR 15,3 ==> result -* Function 'ctime64_r' epilogue - PDPEPIL -* Function 'ctime64_r' literal pool - DS 0D - LTORG -* Function 'ctime64_r' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/time64/tm64dim.c b/src/crent370/time64/tm64dim.c deleted file mode 100644 index 7dae408..0000000 --- a/src/crent370/time64/tm64dim.c +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include <__time64.h> - -/* days in month */ -static const int dim[2][12] = { - {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, - {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, -}; - -__asm__("\n&FUNC SETC 'days_in_month'"); -int days_in_month(int isleap, int month) -{ - return dim[isleap][month]; -} - diff --git a/src/crent370/time64/tm64dim.o b/src/crent370/time64/tm64dim.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/time64/tm64dim.s b/src/crent370/time64/tm64dim.s deleted file mode 100644 index 19f020a..0000000 --- a/src/crent370/time64/tm64dim.s +++ /dev/null @@ -1,83 +0,0 @@ - TITLE '/home/projects/crent370/time64/tm64dim.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/time64 -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F -@@0 EQU * - DC F'31' - DC F'28' - DC F'31' - DC F'30' - DC F'31' - DC F'30' - DC F'31' - DC F'31' - DC F'30' - DC F'31' - DC F'30' - DC F'31' - DC F'31' - DC F'29' - DC F'31' - DC F'30' - DC F'31' - DC F'30' - DC F'31' - DC F'31' - DC F'30' - DC F'31' - DC F'30' - DC F'31' - -&FUNC SETC 'days_in_month' - DS 0F - EJECT -* external function 'days_in_month' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'days_in_month' -TM64DIM PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'days_in_month' code - L 2,0(11) ==> isleap - SLL 2,1 - A 2,0(11) ==> isleap - SLL 2,2 - A 2,4(11) ==> month - MH 2,=H'4' - L 3,=A(@@0) - L 15,0(2,3) ==> dim -* Function 'days_in_month' epilogue - PDPEPIL -* Function 'days_in_month' literal pool - DS 0D - LTORG -* Function 'days_in_month' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/time64/tm64dtim.c b/src/crent370/time64/tm64dtim.c deleted file mode 100644 index 6d0b2f9..0000000 --- a/src/crent370/time64/tm64dtim.c +++ /dev/null @@ -1,35 +0,0 @@ -/* DIFFTIME64.C */ -#include -#include - -double difftime64(time64_t time1, time64_t time0) -{ - time64_t *t1 = &time1; - time64_t *t0 = &time0; - time64_t tmp; - double result; - int neg; - - if (__64_cmp(t1, t0) == __64_SMALLER) { - /* time1 < time0 */ - neg = 1; - /* swap pointers to time values */ - t1 = &time0; - t0 = &time1; - } - else { - neg = 0; - } - - /* subtract time values to obtain difference, result in tmp */ - __64_sub(t1, t0, &tmp); - result = ((double)(tmp.u32[1])); - - if (neg) { - /* make result negative value */ - result = ((double)0.0) - result; - } - - return result; -} - diff --git a/src/crent370/time64/tm64dtim.o b/src/crent370/time64/tm64dtim.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/time64/tm64dtim.s b/src/crent370/time64/tm64dtim.s deleted file mode 100644 index 7dfcf87..0000000 --- a/src/crent370/time64/tm64dtim.s +++ /dev/null @@ -1,88 +0,0 @@ - TITLE '/home/projects/crent370/time64/tm64dtim.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/time64 -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'difftime64' prologue -* frame base=88, local stack=24, call args=16 -&FUNC SETC 'difftime64' -TM64DTIM PDPPRLG CINDEX=0,FRAME=128,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'difftime64' code - MVC 104(8,13),0(11) ==> time1 - MVC 112(8,13),8(11) ==> time0 - LA 3,104(,13) ==> t1 - LA 2,112(,13) ==> t0 - ST 3,88(13) ==> t1 - ST 2,92(13) ==> t0 - LA 1,88(,13) - L 15,=V(@@64CMP) - BALR 14,15 - L 4,=F'-1' - CLR 15,4 - BNE @@L2 - LA 4,1(0,0) ==> neg - LR 3,2 ==> t1,t0 - LA 2,104(,13) ==> t0 - B @@L3 -@@L2 EQU * - SLR 4,4 ==> neg -@@L3 EQU * - ST 3,88(13) ==> t1 - ST 2,92(13) ==> t0 - LA 2,120(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64SUB) - BALR 14,15 - LA 2,124(,13) - L 3,0(2) ==> .u32 - MVC 80(4,13),=XL8'4E00000080000000' - ST 3,84(,13) - XI 84(13),128 - LD 0,80(,13) ==> result - SD 0,=XL8'4E00000080000000' ==> result - LTR 3,3 - BNL @@L4 - AD 0,=D'4.294967296E9' ==> result -@@L4 EQU * - LTR 4,4 ==> neg - BE @@L5 - LCDR 0,0 ==> result -@@L5 EQU * -* Function 'difftime64' epilogue - PDPEPIL -* Function 'difftime64' literal pool - DS 0D - LTORG -* Function 'difftime64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/time64/tm64gmt.c b/src/crent370/time64/tm64gmt.c deleted file mode 100644 index 072c236..0000000 --- a/src/crent370/time64/tm64gmt.c +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include -#include -#include -#include -#include "__time64.h" -#include "mvssupa.h" -#include "clibcrt.h" - -__asm__("\n&FUNC SETC 'gmtime64'"); -struct tm *gmtime64(const time64_t *timer) -{ - CLIBCRT *crt = __crtget(); - struct tm *tms = (struct tm*)crt->crttms; - - return gmtime64_r(timer, tms); -} - diff --git a/src/crent370/time64/tm64gmt.o b/src/crent370/time64/tm64gmt.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/time64/tm64gmt.s b/src/crent370/time64/tm64gmt.s deleted file mode 100644 index ddf52d2..0000000 --- a/src/crent370/time64/tm64gmt.s +++ /dev/null @@ -1,58 +0,0 @@ - TITLE '/home/projects/crent370/time64/tm64gmt.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/time64 -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'gmtime64' -* Program text area - DS 0F - EJECT -* external function 'gmtime64' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'gmtime64' -TM64GMT PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'gmtime64' code - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - A 15,=F'296' ==> tms - MVC 88(4,13),0(11) ==> timer - ST 15,92(13) ==> tms - LA 1,88(,13) - L 15,=V(TM64GMTR) - BALR 14,15 -* Function 'gmtime64' epilogue - PDPEPIL -* Function 'gmtime64' literal pool - DS 0D - LTORG -* Function 'gmtime64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/time64/tm64gmtr.c b/src/crent370/time64/tm64gmtr.c deleted file mode 100644 index 1161a2e..0000000 --- a/src/crent370/time64/tm64gmtr.c +++ /dev/null @@ -1,220 +0,0 @@ -/* -Copyright (c) 2007-2008 Michael G Schwern -This software originally derived from Paul Sheer's pivotal_gmtime_r.c. -The MIT License: -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -/* See http://code.google.com/p/y2038 for this code's origin */ -#if defined(__LP64__) -#error This cruft should be LP32 only! -#endif - -/* -Programmers who have available to them 64-bit time values as a 'long -long' type can use localtime64_r() and gmtime64_r() which correctly -converts the time even on 32-bit systems. Whether you have 64-bit time -values will depend on the operating system. -localtime64_r() is a 64-bit equivalent of localtime_r(). -gmtime64_r() is a 64-bit equivalent of gmtime_r(). -*/ -#include -#include -#include -#include -#include -#include -#include -#include "__time64.h" -#include "mvssupa.h" -#include "clibcrt.h" - -static const int length_of_year[2] = { 365, 366 }; - -/* Let's assume people are going to be looking for dates in the future. - Let's provide some cheats so you can skip ahead. - This has a 4x speed boost when near 2008. -*/ - -#if 0 -__asm__("\n&FUNC SETC 'check_tm'"); -static int check_tm(struct tm *tm) -{ - /* Don't forget leap seconds */ - assert(tm->tm_sec >= 0); - assert(tm->tm_sec <= 61); - assert(tm->tm_min >= 0); - assert(tm->tm_min <= 59); - assert(tm->tm_hour >= 0); - assert(tm->tm_hour <= 23); - assert(tm->tm_mday >= 1); - assert(tm->tm_mday <= days_in_month(IS_LEAP(tm->tm_year), tm->tm_mon)); - assert(tm->tm_mon >= 0); - assert(tm->tm_mon <= 11); - assert(tm->tm_wday >= 0); - assert(tm->tm_wday <= 6); - assert(tm->tm_yday >= 0); - assert(tm->tm_yday <= length_of_year[IS_LEAP(tm->tm_year)]); - - return 1; -} -#endif - -__asm__("\n&FUNC SETC 'gmtime64_r'"); -struct tm *gmtime64_r (const time64_t *in_time, struct tm *p) -{ - int v_tm_sec, v_tm_min, v_tm_hour, v_tm_mon, v_tm_wday; - time64_t v_tm_tday; - int leap; - time64_t m; - time64_t time = *in_time; - int year = 70; - int cycles = 0; - time64_t mod; - time64_t tmp; - int i; - - /* v_tm_sec = (int)(time % 60); time /= 60; */ - __64_divmod_u32(&time, 60, &time, &mod); - v_tm_sec = (int) __64_to_i32(&mod); - - /* v_tm_min = (int)(time % 60); time /= 60; */ - __64_divmod_u32(&time, 60, &time, &mod); - v_tm_min = (int) __64_to_i32(&mod); - - /* v_tm_hour = (int)(time % 24); time /= 24; */ - __64_divmod_u32(&time, 24, &time, &mod); - v_tm_hour = (int) __64_to_i32(&mod); - - v_tm_tday = time; - -#if 0 - /* #define WRAP(a,b,m) ((a) = ((a) < 0 ) ? ((b)--, (a) + (m)) : (a)) */ - WRAP (v_tm_sec, v_tm_min, 60); - WRAP (v_tm_min, v_tm_hour, 60); - WRAP (v_tm_hour, v_tm_tday, 24); -#endif - - /* v_tm_wday = (int)((v_tm_tday + 4) % 7); */ - tmp = v_tm_tday; - __64_add_u32(&tmp, 4, &tmp); - __64_mod_u32(&tmp, 7, &tmp); - v_tm_wday = (int) __64_to_i32(&tmp); - - if (v_tm_wday < 0) v_tm_wday += 7; - - m = v_tm_tday; - /* if (m >= CHEAT_DAYS) { */ - if (__64_cmp_u32(&m, CHEAT_DAYS) != __64_SMALLER) { - year = CHEAT_YEARS; - /* m -= CHEAT_DAYS; */ - __64_sub_u32(&m, CHEAT_DAYS, &m); - } - - /* if (m >= 0) { */ - if (__64_cmp_u32(&m, 0) != __64_SMALLER) { - /* Gregorian cycles, this is huge optimization for distant times */ - /* cycles = (int)(m / (Time64_T) days_in_gregorian_cycle); */ - __64_div_u32(&m, days_in_gregorian_cycle, &tmp); - cycles = (int) __64_to_i32(&tmp); - - if( cycles ) { - /* m -= (cycles * (Time64_T) days_in_gregorian_cycle); */ - __64_from_u32(&tmp, days_in_gregorian_cycle); - __64_mul_u32(&tmp, cycles, &tmp); - __64_sub(&m, &tmp, &m); - - /* year += (cycles * years_in_gregorian_cycle); */ - __64_from_u32(&tmp, years_in_gregorian_cycle); - __64_mul_u32(&tmp, cycles, &tmp); - year += (int) __64_to_i32(&tmp); - } - - /* Years */ - leap = IS_LEAP (year); - /* while (m >= (Time64_T) length_of_year[leap]) { */ - while(__64_cmp_i32(&m, length_of_year[leap]) != __64_SMALLER) { - /* m -= (Time64_T) length_of_year[leap]; */ - __64_sub_i32(&m, length_of_year[leap], &m); - - year++; - leap = IS_LEAP (year); - } - - /* Months */ - v_tm_mon = 0; - /* while (m >= (Time64_T) days_in_month(leap, v_tm_mon)) { */ - while(__64_cmp_i32(&m, days_in_month(leap, v_tm_mon)) != __64_SMALLER) { - /* m -= (Time64_T) days_in_month(leap, v_tm_mon); */ - __64_sub_i32(&m, days_in_month(leap, v_tm_mon), &m); - - v_tm_mon++; - } - } -#if 0 - else { - year--; - /* Gregorian cycles */ - cycles = (int)((m / (Time64_T) days_in_gregorian_cycle) + 1); - if( cycles ) { - m -= (cycles * (Time64_T) days_in_gregorian_cycle); - year += (cycles * years_in_gregorian_cycle); - } - /* Years */ - leap = IS_LEAP (year); - while (m < (Time64_T) -length_of_year[leap]) { - m += (Time64_T) length_of_year[leap]; - year--; - leap = IS_LEAP (year); - } - /* Months */ - v_tm_mon = 11; - while (m < (Time64_T) -days_in_month[leap][v_tm_mon]) { - m += (Time64_T) days_in_month[leap][v_tm_mon]; - v_tm_mon--; - } - m += (Time64_T) days_in_month[leap][v_tm_mon]; - } -#endif - p->tm_year = year; - - if( p->tm_year != year ) { -#ifdef EOVERFLOW - errno = EOVERFLOW; -#endif - return NULL; - } - - /* At this point m is less than a year so casting to an int is safe */ - /* p->tm_mday = (int) m + 1; */ - i = (int) __64_to_i32(&m); - p->tm_mday = (int) i + 1; - - /* p->tm_yday = julian_days_by_month[leap][v_tm_mon] + (int)m; */ - p->tm_yday = julian_days_by_month(leap, v_tm_mon) + (int)i; - p->tm_sec = v_tm_sec; - p->tm_min = v_tm_min; - p->tm_hour = v_tm_hour; - p->tm_mon = v_tm_mon; - p->tm_wday = v_tm_wday; -#if 0 - assert(check_tm(p)); -#endif - - return p; -} - diff --git a/src/crent370/time64/tm64gmtr.o b/src/crent370/time64/tm64gmtr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/time64/tm64gmtr.s b/src/crent370/time64/tm64gmtr.s deleted file mode 100644 index ea292ca..0000000 --- a/src/crent370/time64/tm64gmtr.s +++ /dev/null @@ -1,375 +0,0 @@ - TITLE '/home/projects/crent370/time64/tm64gmtr.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/time64 -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F -@@2 EQU * - DC F'365' - DC F'366' - -&FUNC SETC 'gmtime64_r' - DS 0F - EJECT -* external function 'gmtime64_r' prologue -* frame base=88, local stack=88, call args=16 -&FUNC SETC 'gmtime64_r' -TM64GMTR PDPPRLG CINDEX=0,FRAME=192,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'gmtime64_r' code - SLR 2,2 - SLR 3,3 - ST 2,168(13) - ST 3,4+168(13) - ST 2,176(13) - ST 3,4+176(13) - LR 4,2 - LR 5,3 - LR 8,2 - LR 9,3 - L 2,0(11) ==> in_time - MVC 104(8,13),0(2) ==> in_time - LA 7,70(0,0) ==> year - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=F'60' - ST 2,96(13) - LA 2,112(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@64VU32) - BALR 14,15 - LA 2,112(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64TI32) - BALR 14,15 - ST 15,136(13) ==> v_tm_sec - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=F'60' - ST 2,96(13) - LA 2,112(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@64VU32) - BALR 14,15 - LA 2,112(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64TI32) - BALR 14,15 - ST 15,140(13) ==> v_tm_min - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=F'24' - ST 2,96(13) - LA 2,112(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@64VU32) - BALR 14,15 - LA 2,112(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64TI32) - BALR 14,15 - ST 15,144(13) ==> v_tm_hour - L 2,104(13) - L 3,4+104(13) - ST 2,160(13) ==> v_tm_tday - ST 3,4+160(13) ==> v_tm_tday - ST 2,120(13) - ST 3,4+120(13) - LA 2,120(,13) - ST 2,88(13) - MVC 92(4,13),=F'4' - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64AU32) - BALR 14,15 - LA 2,120(,13) - ST 2,88(13) - MVC 92(4,13),=F'7' - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64QU32) - BALR 14,15 - LA 2,120(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64TI32) - BALR 14,15 - ST 15,152(13) ==> v_tm_wday - LTR 15,15 - BNL @@L2 - LR 3,15 - A 3,=F'7' - ST 3,152(13) ==> v_tm_wday -@@L2 EQU * - L 2,160(13) ==> v_tm_tday - L 3,4+160(13) ==> v_tm_tday - ST 2,128(13) - ST 3,4+128(13) - LA 2,128(,13) - ST 2,88(13) - MVC 92(4,13),=F'13879' - LA 1,88(,13) - L 15,=V(@@64CU32) - BALR 14,15 - L 3,=F'-1' - CLR 15,3 ==> v_tm_sec - BE @@L3 - LA 7,108(0,0) ==> year - LA 2,128(,13) - ST 2,88(13) - MVC 92(4,13),=F'13879' - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64SU32) - BALR 14,15 -@@L3 EQU * - LA 2,128(,13) - ST 2,88(13) - MVC 92(4,13),=F'0' - LA 1,88(,13) - L 15,=V(@@64CU32) - BALR 14,15 - L 2,=F'-1' - CLR 15,2 ==> v_tm_sec - BE @@L4 - LA 2,128(,13) - ST 2,88(13) - MVC 92(4,13),=F'146097' - LA 2,120(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64DU32) - BALR 14,15 - LA 2,120(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64TI32) - BALR 14,15 - LR 3,15 ==> cycles - LTR 15,15 ==> cycles - BE @@L5 - LA 2,120(,13) - ST 2,88(13) - MVC 92(4,13),=F'146097' - LA 1,88(,13) - L 15,=V(@@64FU32) - BALR 14,15 - LA 2,120(,13) - ST 2,88(13) - ST 3,92(13) ==> cycles - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64MU32) - BALR 14,15 - LA 2,128(,13) - ST 2,88(13) - LA 2,120(,13) - ST 2,92(13) - LA 2,128(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64SUB) - BALR 14,15 - LA 2,120(,13) - ST 2,88(13) - MVC 92(4,13),=F'400' - LA 1,88(,13) - L 15,=V(@@64FU32) - BALR 14,15 - LA 2,120(,13) - ST 2,88(13) - ST 3,92(13) ==> cycles - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64MU32) - BALR 14,15 - LA 2,120(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64TI32) - BALR 14,15 - AR 7,15 ==> year,v_tm_sec -@@L5 EQU * - SLR 6,6 ==> leap - LR 3,7 ==> year - A 3,=F'1900' - ST 3,184(13) - ST 3,168(13) - L 2,168(13) - L 3,4+168(13) - SRDA 2,32 - LA 15,400(0,0) - DR 2,15 - LTR 2,2 - BE @@L7 - L 2,184(13) - N 2,=F'3' - LTR 2,2 - BNE @@L6 - MVC 176(4,13),184(13) - L 2,176(13) - L 3,4+176(13) - SRDA 2,32 - LA 15,100(0,0) - DR 2,15 - LTR 2,2 - BE @@L6 -@@L7 EQU * - LA 6,1(0,0) ==> leap -@@L6 EQU * - LTR 6,6 ==> leap - BE @@L9 - B @@L21 -@@L15 EQU * - LA 2,128(,13) - ST 2,88(13) - LR 3,6 ==> leap - MH 3,=H'4' - L 2,=A(@@2) - L 2,0(3,2) ==> length_of_year - ST 2,92(13) - LA 2,128(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64SI32) - BALR 14,15 - A 7,=F'1' ==> year - SLR 6,6 ==> leap - LR 3,7 ==> year - A 3,=F'1900' - LR 4,3 - SRDA 4,32 - LA 2,400(0,0) - DR 4,2 - LTR 4,4 - BE @@L13 - LR 2,3 - N 2,=F'3' - LTR 2,2 - BNE @@L12 - LR 8,3 - SRDA 8,32 - LA 3,100(0,0) - DR 8,3 - LTR 8,8 - BE @@L12 -@@L13 EQU * - LA 6,1(0,0) ==> leap -@@L12 EQU * - LTR 6,6 ==> leap - BE @@L9 -@@L21 EQU * - LA 6,1(0,0) ==> leap -@@L9 EQU * - LA 2,128(,13) - ST 2,88(13) - LR 3,6 ==> leap - MH 3,=H'4' - L 2,=A(@@2) - L 2,0(3,2) ==> length_of_year - ST 2,92(13) - LA 1,88(,13) - L 15,=V(@@64CI32) - BALR 14,15 - MVC 148(4,13),=F'0' ==> v_tm_mon - L 2,=F'-1' - CLR 15,2 ==> v_tm_sec - BE @@L16 - B @@L15 -@@L19 EQU * - ST 6,88(13) ==> leap - MVC 92(4,13),148(13) ==> v_tm_mon - LA 1,88(,13) - L 15,=V(TM64DIM) - BALR 14,15 - LA 2,128(,13) - ST 2,88(13) - ST 15,92(13) ==> v_tm_sec - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64SI32) - BALR 14,15 - L 3,148(13) ==> v_tm_mon - A 3,=F'1' - ST 3,148(13) ==> v_tm_mon -@@L16 EQU * - ST 6,88(13) ==> leap - MVC 92(4,13),148(13) ==> v_tm_mon - LA 1,88(,13) - L 15,=V(TM64DIM) - BALR 14,15 - LA 2,128(,13) - ST 2,88(13) - ST 15,92(13) ==> v_tm_sec - LA 1,88(,13) - L 15,=V(@@64CI32) - BALR 14,15 - L 4,=F'-1' - CLR 15,4 ==> v_tm_sec - BNE @@L19 -@@L4 EQU * - L 15,4(11) ==> p - ST 7,20(15) ==> year,tm_year - LA 2,128(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64TI32) - BALR 14,15 - LR 3,15 ==> i - LR 2,15 ==> i - A 2,=F'1' - L 4,4(11) ==> p - ST 2,12(4) ==> .tm_mday - ST 6,88(13) ==> leap - MVC 92(4,13),148(13) ==> v_tm_mon - LA 1,88(,13) - L 15,=V(TM64JDBM) - BALR 14,15 - AR 15,3 ==> i - ST 15,28(4) ==> .tm_yday - MVC 0(4,4),136(13) ==> .tm_sec,v_tm_sec - MVC 4(4,4),140(13) ==> .tm_min,v_tm_min - MVC 8(4,4),144(13) ==> .tm_hour,v_tm_hour - MVC 16(4,4),148(13) ==> .tm_mon,v_tm_mon - MVC 24(4,4),152(13) ==> .tm_wday,v_tm_wday - LR 15,4 ==> p -* Function 'gmtime64_r' epilogue - PDPEPIL -* Function 'gmtime64_r' literal pool - DS 0D - LTORG -* Function 'gmtime64_r' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/time64/tm64jdbm.c b/src/crent370/time64/tm64jdbm.c deleted file mode 100644 index 91512fd..0000000 --- a/src/crent370/time64/tm64jdbm.c +++ /dev/null @@ -1,14 +0,0 @@ -#include -#include <__time64.h> - -static const int jdbm[2][12] = { - {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334}, - {0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335}, -}; - -__asm__("\n&FUNC SETC 'julian_days_by_month'"); -int julian_days_by_month(int isleap, int month) -{ - return jdbm[isleap][month]; -} - diff --git a/src/crent370/time64/tm64jdbm.o b/src/crent370/time64/tm64jdbm.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/time64/tm64jdbm.s b/src/crent370/time64/tm64jdbm.s deleted file mode 100644 index d4b972d..0000000 --- a/src/crent370/time64/tm64jdbm.s +++ /dev/null @@ -1,83 +0,0 @@ - TITLE '/home/projects/crent370/time64/tm64jdbm.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/time64 -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F -@@0 EQU * - DC F'0' - DC F'31' - DC F'59' - DC F'90' - DC F'120' - DC F'151' - DC F'181' - DC F'212' - DC F'243' - DC F'273' - DC F'304' - DC F'334' - DC F'0' - DC F'31' - DC F'60' - DC F'91' - DC F'121' - DC F'152' - DC F'182' - DC F'213' - DC F'244' - DC F'274' - DC F'305' - DC F'335' - -&FUNC SETC 'julian_days_by_month' - DS 0F - EJECT -* external function 'julian_days_by_month' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'julian_days_by_month' -TM64JDBM PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'julian_days_by_month' code - L 2,0(11) ==> isleap - SLL 2,1 - A 2,0(11) ==> isleap - SLL 2,2 - A 2,4(11) ==> month - MH 2,=H'4' - L 3,=A(@@0) - L 15,0(2,3) ==> jdbm -* Function 'julian_days_by_month' epilogue - PDPEPIL -* Function 'julian_days_by_month' literal pool - DS 0D - LTORG -* Function 'julian_days_by_month' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/time64/tm64ltm.c b/src/crent370/time64/tm64ltm.c deleted file mode 100644 index 3d3ba13..0000000 --- a/src/crent370/time64/tm64ltm.c +++ /dev/null @@ -1,18 +0,0 @@ -#include -#include -#include -#include -#include -#include "__time64.h" -#include "mvssupa.h" -#include "clibcrt.h" - -__asm__("\n&FUNC SETC 'gmtime64'"); -struct tm *localtime64(const time64_t *timer) -{ - CLIBCRT *crt = __crtget(); - struct tm *tms = (struct tm*)crt->crttms; - - return localtime64_r(timer, tms); -} - diff --git a/src/crent370/time64/tm64ltm.o b/src/crent370/time64/tm64ltm.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/time64/tm64ltm.s b/src/crent370/time64/tm64ltm.s deleted file mode 100644 index 5102dfa..0000000 --- a/src/crent370/time64/tm64ltm.s +++ /dev/null @@ -1,58 +0,0 @@ - TITLE '/home/projects/crent370/time64/tm64ltm.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/time64 -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'gmtime64' -* Program text area - DS 0F - EJECT -* external function 'localtime64' prologue -* frame base=88, local stack=0, call args=8 -&FUNC SETC 'localtime64' -TM64LTM PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'localtime64' code - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - A 15,=F'296' ==> tms - MVC 88(4,13),0(11) ==> timer - ST 15,92(13) ==> tms - LA 1,88(,13) - L 15,=V(TM64LTMR) - BALR 14,15 -* Function 'localtime64' epilogue - PDPEPIL -* Function 'localtime64' literal pool - DS 0D - LTORG -* Function 'localtime64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/time64/tm64ltmr.c b/src/crent370/time64/tm64ltmr.c deleted file mode 100644 index f03b79f..0000000 --- a/src/crent370/time64/tm64ltmr.c +++ /dev/null @@ -1,121 +0,0 @@ -/* -Copyright (c) 2007-2008 Michael G Schwern -This software originally derived from Paul Sheer's pivotal_gmtime_r.c. -The MIT License: -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -/* See http://code.google.com/p/y2038 for this code's origin */ -#if defined(__LP64__) -#error This cruft should be LP32 only! -#endif - -/* -Programmers who have available to them 64-bit time values as a 'long -long' type can use localtime64_r() and gmtime64_r() which correctly -converts the time even on 32-bit systems. Whether you have 64-bit time -values will depend on the operating system. -localtime64_r() is a 64-bit equivalent of localtime_r(). -gmtime64_r() is a 64-bit equivalent of gmtime_r(). -*/ -#include -#include -#include -#include -#include -#include -#include -#include "__time64.h" - -struct tm *localtime64_r (const time64_t *time, struct tm *local_tm) -{ - time_t safe_time; - struct tm safe_date; - struct tm gm_tm; - int orig_year; - int month_diff; - time64_t tmp; - - if (!time) { - wtof("%s: NULL time pointer parameter 1", __func__); - return NULL; - } - - if (!local_tm) { - wtof("%s: NULL local_tm pointer parameter 2", __func__); - return NULL; - } - - /* logic: create a safe date so that we can use the logacy localtime_r() - ** to obtain a local date (adjusted for time zone offset). - */ - { - /* create gm_tm from time value */ - if( gmtime64_r(time, &gm_tm) == NULL ) { - wtof("%s: gmtime64_r failure for time value 0x%016LLX (%llu)", __func__, *time, *time); - return NULL; - } - - /* save the original year and map gm_tm.tm_year to a safe year */ - orig_year = gm_tm.tm_year; - if (gm_tm.tm_year > (2037 - 1900) || gm_tm.tm_year < (1970 - 1900)){ - gm_tm.tm_year = safe_year((int)(gm_tm.tm_year + 1900)) - 1900; - } - - /* safe_time = timegm64(&gm_tm); */ - tmp = timegm64(&gm_tm); - safe_time = (time_t) __64_to_u32(&tmp); - - /* create a safe_date using the safe_time value with adjustment for time zone */ - if( localtime_r(&safe_time, &safe_date) == NULL ) { - wtof("%s: localtime_r failure for time value 0x%08X (%u)", __func__, safe_time, safe_time); - return NULL; - } - - /* copy the safe_date to our local_tm and replace the year with the original year */ - *local_tm = safe_date; - local_tm->tm_year = orig_year; - } - - /* logic: make adjustments to local_tm for any rollover that happened when the - ** local time zone offset was applied by localtime_r(). - */ - { - /* When localtime is Dec 31st previous year and gmtime is Jan 1st next year. */ - month_diff = local_tm->tm_mon - gm_tm.tm_mon; - if( month_diff == 11 ) { - local_tm->tm_year--; - } - - /* When localtime is Jan 1st, next year and gmtime is Dec 31st, previous year. */ - if( month_diff == -11 ) { - local_tm->tm_year++; - } - - /* GMT is Jan 1st, xx01 year, but localtime is still Dec 31st - ** in a non-leap xx00. There is one point in the cycle - ** we can't account for which the safe xx00 year is a leap - ** year. So we need to correct for Dec 31st comming out as - ** the 366th day of the year. - */ - if( !IS_LEAP(local_tm->tm_year) && local_tm->tm_yday == 365 ) - local_tm->tm_yday--; - } - - return local_tm; -} - diff --git a/src/crent370/time64/tm64ltmr.o b/src/crent370/time64/tm64ltmr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/time64/tm64ltmr.s b/src/crent370/time64/tm64ltmr.s deleted file mode 100644 index 20fb72d..0000000 --- a/src/crent370/time64/tm64ltmr.s +++ /dev/null @@ -1,200 +0,0 @@ - TITLE '/home/projects/crent370/time64/tm64ltmr.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/time64 -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area -@@2 EQU * - DC C'localtime64_r' - DC X'0' - DS 0F - EJECT -* external function 'localtime64_r' prologue -* frame base=88, local stack=104, call args=24 -&FUNC SETC 'localtime64_r' -TM64LTMR PDPPRLG CINDEX=0,FRAME=216,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'localtime64_r' code - SLR 4,4 - SLR 5,5 - LR 8,4 - LR 9,5 - L 3,0(11) ==> time - L 6,4(11) ==> local_tm - LTR 3,3 ==> time - BNE @@L2 - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@2) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - LR 15,3 ==> local_tm,time - B @@L1 -@@L2 EQU * - LTR 6,6 ==> local_tm - BNE @@L3 - MVC 88(4,13),=A(@@LC1) - MVC 92(4,13),=A(@@2) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - B @@L9 -@@L3 EQU * - ST 3,88(13) ==> time - LA 2,152(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(TM64GMTR) - BALR 14,15 - LR 2,15 ==> local_tm - LTR 15,15 ==> local_tm - BNE @@L4 - MVC 88(4,13),=A(@@LC2) - MVC 92(4,13),=A(@@2) - MVC 96(8,13),0(3) ==> time - MVC 104(8,13),0(3) ==> time - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 - B @@L11 -@@L4 EQU * - L 3,172(13) ==> orig_year,tm_year - LR 2,3 ==> orig_year - A 2,=F'-70' - LA 7,67(0,0) - CLR 2,7 - BNH @@L5 - A 2,=F'1970' - ST 2,88(13) - LA 1,88(,13) - L 15,=V(TM64SYR) - BALR 14,15 - A 15,=F'-1900' - ST 15,172(13) ==> .tm_year -@@L5 EQU * - LA 2,152(,13) - ST 2,88(13) - LA 0,192(,13) - LA 1,88(,13) - L 15,=V(TM64TGM) - BALR 14,15 - MVC 200(8,13),192(13) - LA 2,200(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64TU32) - BALR 14,15 - ST 15,208(13) ==> local_tm - LA 2,208(,13) - ST 2,88(13) - LA 2,112(,13) - ST 2,92(13) - LA 1,88(,13) - L 15,=V(LOCALTMR) - BALR 14,15 - LR 2,15 ==> local_tm - LTR 15,15 ==> local_tm - BNE @@L6 - MVC 88(4,13),=A(@@LC3) - MVC 92(4,13),=A(@@2) - MVC 96(4,13),208(13) - MVC 100(4,13),208(13) - LA 1,88(,13) - L 15,=V(WTOF) - BALR 14,15 -@@L11 EQU * - LR 15,2 ==> local_tm - B @@L1 -@@L6 EQU * - MVC 0(36,6),112(13) ==> local_tm,safe_date - ST 3,20(6) ==> orig_year,tm_year - L 15,16(6) ==> month_diff,tm_mon - S 15,168(13) ==> month_diff,tm_mon - LA 2,11(0,0) - CLR 15,2 ==> month_diff - BNE @@L7 - LR 2,3 ==> orig_year - BCTR 2,0 - ST 2,20(6) ==> .tm_year -@@L7 EQU * - L 3,=F'-11' - CLR 15,3 ==> month_diff - BNE @@L8 - L 2,20(6) ==> .tm_year - A 2,=F'1' - ST 2,20(6) ==> .tm_year -@@L8 EQU * - L 15,20(6) ==> .tm_year - A 15,=F'1900' - LR 4,15 - SRDA 4,32 - LA 7,400(0,0) - DR 4,7 - LTR 4,4 - BE @@L9 - LR 2,15 - N 2,=F'3' - LTR 2,2 - BNE @@L10 - LR 8,15 - SRDA 8,32 - LA 2,100(0,0) - DR 8,2 - LTR 8,8 - BNE @@L9 -@@L10 EQU * - L 2,28(6) ==> .tm_yday - LA 3,365(0,0) - CLR 2,3 - BNE @@L9 - MVC 28(4,6),=F'364' ==> .tm_yday -@@L9 EQU * - LR 15,6 ==> local_tm -@@L1 EQU * -* Function 'localtime64_r' epilogue - PDPEPIL -* Function 'localtime64_r' literal pool - DS 0D - LTORG -* Function 'localtime64_r' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'%s: NULL time pointer parameter 1' - DC X'0' -@@LC1 EQU * - DC C'%s: NULL local_tm pointer parameter 2' - DC X'0' -@@LC2 EQU * - DC C'%s: gmtime64_r failure for time value 0x%016LLX ' - DC C'(%llu)' - DC X'0' -@@LC3 EQU * - DC C'%s: localtime_r failure for time value 0x%08X (%' - DC C'u)' - DC X'0' - END diff --git a/src/crent370/time64/tm64mclk.c b/src/crent370/time64/tm64mclk.c deleted file mode 100644 index b0809b4..0000000 --- a/src/crent370/time64/tm64mclk.c +++ /dev/null @@ -1,26 +0,0 @@ -#include -#include -#include -#include - -__asm__("\n&FUNC SETC 'mclock64'"); -mclock64_t mclock64(void) -{ - __64 clock; - -__asm__("LA\t2,%0\tget address of 8 byte work area\n\t" - "STCK\t0(2)\tstore clock into work area\n\t" - : "=m" (clock.u64) : : "2"); - - /* make Jan 1 1900 (STCK) relative to Jan 1 1970 (unix epoch) */ - clock.u64 -= 0x7D91048BCA000000ULL; /* STCK value for Jan 1 1970 */ - - /* convert to microseconds (bits 0-51==number of microseconds) */ - clock.u64 >>= 12; /* convert to microseconds (1 us = .000001 sec) */ - - /* convert the microseconds value (.000001 seconds) - * to miliseconds (.001 seconds), divide by 1000 */ - __64_div_u32(&clock, 1000, &clock); - - return (mclock64_t) clock.u64; -} diff --git a/src/crent370/time64/tm64mclk.o b/src/crent370/time64/tm64mclk.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/time64/tm64mclk.s b/src/crent370/time64/tm64mclk.s deleted file mode 100644 index d47687d..0000000 --- a/src/crent370/time64/tm64mclk.s +++ /dev/null @@ -1,79 +0,0 @@ - TITLE '/home/projects/crent370/time64/tm64mclk.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/time64 -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'mclock64' -* Program text area - DS 0F - EJECT -* external function 'mclock64' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'mclock64' -TM64MCLK PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'mclock64' code - LR 6,0 - LA 2,104(13) get address of 8 byte work area - STCK 0(2) store clock into work area - - L 4,104(13) - L 5,4+104(13) - LR 3,5 - A 3,=F'905969664' - LA 15,1(0,0) - CLR 3,5 - BH @@L2 - SLR 15,15 -@@L2 EQU * - LR 2,4 - A 2,=F'-2106655883' - SR 2,15 - ST 2,104(13) - ST 3,4+104(13) - SRDL 2,12 - ST 2,104(13) - ST 3,4+104(13) - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=F'1000' - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64DU32) - BALR 14,15 - MVC 0(8,6),104(13) ==> - LR 15,6 -* Function 'mclock64' epilogue - PDPEPIL -* Function 'mclock64' literal pool - DS 0D - LTORG -* Function 'mclock64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/time64/tm64mcti.c b/src/crent370/time64/tm64mcti.c deleted file mode 100644 index dbf9423..0000000 --- a/src/crent370/time64/tm64mcti.c +++ /dev/null @@ -1,15 +0,0 @@ -#include -#include -#include -#include -#include -#include "__time64.h" - -char *mctime64( const mtime64_t* mtime ) { - time64_t time; - - /* convert 64 bit mseconds (mtime) to 64 bit seconds (time) value */ - __64_div_u32((mtime64_t *)mtime, 1000, &time); - - return asctime64(localtime64(&time)); -} diff --git a/src/crent370/time64/tm64mcti.o b/src/crent370/time64/tm64mcti.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/time64/tm64mcti.s b/src/crent370/time64/tm64mcti.s deleted file mode 100644 index 135e602..0000000 --- a/src/crent370/time64/tm64mcti.s +++ /dev/null @@ -1,63 +0,0 @@ - TITLE '/home/projects/crent370/time64/tm64mcti.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/time64 -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'mctime64' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'mctime64' -TM64MCTI PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'mctime64' code - MVC 88(4,13),0(11) ==> mtime - MVC 92(4,13),=F'1000' - LA 2,104(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64DU32) - BALR 14,15 - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(TM64LTM) - BALR 14,15 - ST 15,88(13) - LA 1,88(,13) - L 15,=V(TM64ASC) - BALR 14,15 -* Function 'mctime64' epilogue - PDPEPIL -* Function 'mctime64' literal pool - DS 0D - LTORG -* Function 'mctime64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/time64/tm64mgmt.c b/src/crent370/time64/tm64mgmt.c deleted file mode 100644 index 26c4151..0000000 --- a/src/crent370/time64/tm64mgmt.c +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include -#include -#include -#include -#include "__time64.h" -#include "mvssupa.h" -#include "clibcrt.h" - -struct tm *mgmtime64(const mtime64_t *mtimer) -{ - CLIBCRT *crt = __crtget(); - struct tm *tms = (struct tm*)crt->crttms; - time64_t timer; - - __64_div_u32((mtime64_t *)mtimer, 1000, &timer); - - return gmtime64_r(&timer, tms); -} diff --git a/src/crent370/time64/tm64mgmt.o b/src/crent370/time64/tm64mgmt.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/time64/tm64mgmt.s b/src/crent370/time64/tm64mgmt.s deleted file mode 100644 index 5559c1a..0000000 --- a/src/crent370/time64/tm64mgmt.s +++ /dev/null @@ -1,65 +0,0 @@ - TITLE '/home/projects/crent370/time64/tm64mgmt.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/time64 -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'mgmtime64' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'mgmtime64' -TM64MGMT PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'mgmtime64' code - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - LR 2,15 ==> crt - A 2,=F'296' ==> tms - MVC 88(4,13),0(11) ==> mtimer - MVC 92(4,13),=F'1000' - LA 3,104(,13) - ST 3,96(13) - LA 1,88(,13) - L 15,=V(@@64DU32) - BALR 14,15 - LA 3,104(,13) - ST 3,88(13) - ST 2,92(13) ==> tms - LA 1,88(,13) - L 15,=V(TM64GMTR) - BALR 14,15 -* Function 'mgmtime64' epilogue - PDPEPIL -* Function 'mgmtime64' literal pool - DS 0D - LTORG -* Function 'mgmtime64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/time64/tm64mkt.c b/src/crent370/time64/tm64mkt.c deleted file mode 100644 index 5a50139..0000000 --- a/src/crent370/time64/tm64mkt.c +++ /dev/null @@ -1,79 +0,0 @@ -/* -Copyright (c) 2007-2008 Michael G Schwern -This software originally derived from Paul Sheer's pivotal_gmtime_r.c. -The MIT License: -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -/* See http://code.google.com/p/y2038 for this code's origin */ -#if defined(__LP64__) -#error This cruft should be LP32 only! -#endif - -#include -#include -#include -#include -#include -#include -#include -#include "__time64.h" - -__asm__("\n&FUNC SETC 'mktime64'"); -time64_t mktime64(struct tm *input_date) -{ - struct tm safe_date; - struct tm date; - time64_t time; - int year = input_date->tm_year + 1900; - uint64_t seconds; - - __64_init(&time); - - if ((year < 1970) || (year > 9999)) { - /* in keeping with our 32 bit mktime() function: - disallow anything before 1970 - disallow anything after 9999 - */ - __64_sub_i32(&time, 1, &time); /* make time -1 */ - goto quit; - } - - /* safe "years" can use the 32 bit mktime() function */ - if( MIN_SAFE_YEAR <= year && year <= MAX_SAFE_YEAR ) { - __64_from_u32(&time, mktime(input_date)); - goto quit; - } - - /* Have to make the year safe in date else it won't fit in safe_date */ - date = *input_date; - date.tm_year = safe_year(year) - 1900; - safe_date = date; - - /* initialize time using safe date */ - __64_from_u32(&time, (uint32_t) mktime(&safe_date)); - /* add the seconds between the input_date year and safe_date year */ - seconds = seconds_between_years(year, (int)(safe_date.tm_year + 1900)); - __64_add_u64(&time, seconds, &time); - - /* update the struct tm input_date */ - *input_date = *gmtime64(&time); - -quit: - return time; -} - diff --git a/src/crent370/time64/tm64mkt.o b/src/crent370/time64/tm64mkt.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/time64/tm64mkt.s b/src/crent370/time64/tm64mkt.s deleted file mode 100644 index 3162bc9..0000000 --- a/src/crent370/time64/tm64mkt.s +++ /dev/null @@ -1,132 +0,0 @@ - TITLE '/home/projects/crent370/time64/tm64mkt.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/time64 -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'mktime64' -* Program text area - DS 0F - EJECT -* external function 'mktime64' prologue -* frame base=88, local stack=96, call args=16 -&FUNC SETC 'mktime64' -TM64MKT PDPPRLG CINDEX=0,FRAME=200,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'mktime64' code - LR 5,0 - L 4,0(11) ==> input_date - L 3,20(4) ==> year,tm_year - A 3,=F'1900' ==> year - LA 2,192(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64INIT) - BALR 14,15 - LR 2,3 ==> year - A 2,=F'-1970' - L 6,=F'8029' - CLR 2,6 - BNH @@L2 - LA 2,192(,13) - ST 2,88(13) - MVC 92(4,13),=F'1' - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64SI32) - BALR 14,15 - B @@L3 -@@L2 EQU * - LR 2,3 ==> year - A 2,=F'-1970' - LA 6,67(0,0) - CLR 2,6 - BH @@L4 - ST 4,88(13) ==> input_date - LA 1,88(,13) - L 15,=V(MKTIME) - BALR 14,15 - LA 2,192(,13) - ST 2,88(13) - ST 15,92(13) - LA 1,88(,13) - L 15,=V(@@64FU32) - BALR 14,15 - B @@L3 -@@L4 EQU * - MVC 144(36,13),0(4) ==> date,input_date - ST 3,88(13) ==> year - LA 1,88(,13) - L 15,=V(TM64SYR) - BALR 14,15 - A 15,=F'-1900' - ST 15,164(13) ==> .tm_year - MVC 104(36,13),144(13) ==> safe_date,date - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(MKTIME) - BALR 14,15 - LA 2,192(,13) - ST 2,88(13) - ST 15,92(13) - LA 1,88(,13) - L 15,=V(@@64FU32) - BALR 14,15 - ST 3,88(13) ==> year - L 2,124(13) ==> .tm_year - A 2,=F'1900' - ST 2,92(13) - LA 0,184(,13) - LA 1,88(,13) - L 15,=V(TM64SBY) - BALR 14,15 - LA 2,192(,13) - ST 2,88(13) - MVC 92(8,13),184(13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@64AU64) - BALR 14,15 - LA 2,192(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(TM64GMT) - BALR 14,15 - MVC 0(36,4),0(15) ==> input_date -@@L3 EQU * - MVC 0(8,5),192(13) ==> - LR 15,5 -* Function 'mktime64' epilogue - PDPEPIL -* Function 'mktime64' literal pool - DS 0D - LTORG -* Function 'mktime64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/time64/tm64mltm.c b/src/crent370/time64/tm64mltm.c deleted file mode 100644 index 1258af2..0000000 --- a/src/crent370/time64/tm64mltm.c +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include -#include -#include -#include -#include "__time64.h" -#include "mvssupa.h" -#include "clibcrt.h" - -struct tm *mlocaltime64(const mtime64_t *mtimer) -{ - CLIBCRT *crt = __crtget(); - struct tm *tms = (struct tm*)crt->crttms; - time64_t timer; - - __64_div_u32((mtime64_t *)mtimer, 1000, &timer); - - return localtime64_r(&timer, tms); -} diff --git a/src/crent370/time64/tm64mltm.o b/src/crent370/time64/tm64mltm.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/time64/tm64mltm.s b/src/crent370/time64/tm64mltm.s deleted file mode 100644 index c34054d..0000000 --- a/src/crent370/time64/tm64mltm.s +++ /dev/null @@ -1,65 +0,0 @@ - TITLE '/home/projects/crent370/time64/tm64mltm.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/time64 -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'mlocaltime64' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'mlocaltime64' -TM64MLTM PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'mlocaltime64' code - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - LR 2,15 ==> crt - A 2,=F'296' ==> tms - MVC 88(4,13),0(11) ==> mtimer - MVC 92(4,13),=F'1000' - LA 3,104(,13) - ST 3,96(13) - LA 1,88(,13) - L 15,=V(@@64DU32) - BALR 14,15 - LA 3,104(,13) - ST 3,88(13) - ST 2,92(13) ==> tms - LA 1,88(,13) - L 15,=V(TM64LTMR) - BALR 14,15 -* Function 'mlocaltime64' epilogue - PDPEPIL -* Function 'mlocaltime64' literal pool - DS 0D - LTORG -* Function 'mlocaltime64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/time64/tm64mtim.c b/src/crent370/time64/tm64mtim.c deleted file mode 100644 index 9d66897..0000000 --- a/src/crent370/time64/tm64mtim.c +++ /dev/null @@ -1,16 +0,0 @@ -#include -#include -#include -#include - -mtime64_t mtime64(mtime64_t *mtimer) -{ - mtime64_t tt; - - tt.u64 = mclock64(); - - if (mtimer) *mtimer = tt; - - return tt; -} - diff --git a/src/crent370/time64/tm64mtim.o b/src/crent370/time64/tm64mtim.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/time64/tm64mtim.s b/src/crent370/time64/tm64mtim.s deleted file mode 100644 index fbbc22e..0000000 --- a/src/crent370/time64/tm64mtim.s +++ /dev/null @@ -1,63 +0,0 @@ - TITLE '/home/projects/crent370/time64/tm64mtim.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/time64 -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'mtime64' prologue -* frame base=88, local stack=8, call args=0 -&FUNC SETC 'mtime64' -TM64MTIM PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'mtime64' code - LR 4,0 - L 5,0(11) ==> mtimer - LA 0,88(,13) - LA 1,88(,13) - L 15,=V(TM64MCLK) - BALR 14,15 - L 2,88(13) ==> tt - L 3,4+88(13) ==> tt - LTR 5,5 ==> mtimer - BE @@L2 - ST 2,0(5) ==> tt,mtimer - ST 3,4+0(5) ==> tt,mtimer -@@L2 EQU * - ST 2,0(4) ==> tt, - ST 3,4+0(4) ==> tt, - LR 15,4 -* Function 'mtime64' epilogue - PDPEPIL -* Function 'mtime64' literal pool - DS 0D - LTORG -* Function 'mtime64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/time64/tm64sby.c b/src/crent370/time64/tm64sby.c deleted file mode 100644 index b5edda6..0000000 --- a/src/crent370/time64/tm64sby.c +++ /dev/null @@ -1,91 +0,0 @@ -/* -Copyright (c) 2007-2008 Michael G Schwern -This software originally derived from Paul Sheer's pivotal_gmtime_r.c. -The MIT License: -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -/* See http://code.google.com/p/y2038 for this code's origin */ -#if defined(__LP64__) -#error This cruft should be LP32 only! -#endif - -/* -Programmers who have available to them 64-bit time values as a 'long -long' type can use localtime64_r() and gmtime64_r() which correctly -converts the time even on 32-bit systems. Whether you have 64-bit time -values will depend on the operating system. -localtime64_r() is a 64-bit equivalent of localtime_r(). -gmtime64_r() is a 64-bit equivalent of gmtime_r(). -*/ -#include -#include -#include -#include -#include -#include -#include -#include "__time64.h" - -static const int length_of_year[2] = { 365, 366 }; - -__asm__("\n&FUNC SETC 'seconds_between_years'"); -uint64_t seconds_between_years(int left_year, int right_year) -{ - int increment = (left_year > right_year) ? 1 : -1; - time64_t seconds; - int cycles; - - __64_init(&seconds); - /* wtof("%s: left_year=%d, right_year=%d, seconds=%lld", __func__, left_year, right_year, seconds); */ - - if( left_year > 2400 ) { - cycles = (left_year - 2400) / 400; - left_year -= cycles * 400; - - /* seconds += cycles * seconds_in_gregorian_cycle; */ - __64_from_u64(&seconds, seconds_in_gregorian_cycle); - /* wtof("%s: left_year > 2400, cycles=%d, left_year=%d, seconds=%lld", __func__, cycles, left_year, seconds); */ - __64_mul_i32(&seconds, cycles, &seconds); - /* wtof("%s: seconds multiply by cycles =%lld", __func__, seconds); */ - } - else if( left_year < 1600 ) { - cycles = (left_year - 1600) / 400; - left_year += cycles * 400; - - /* seconds += cycles * seconds_in_gregorian_cycle; */ - __64_from_u64(&seconds, seconds_in_gregorian_cycle); - /* wtof("%s: left_year < 1600, cycles=%d, left_year=%d, seconds=%lld", __func__, cycles, left_year, seconds); */ - __64_mul_i32(&seconds, cycles, &seconds); - /* wtof("%s: seconds multiply by cycles =%lld", __func__, seconds); */ - } - - /* wtof("%s: while(left_year != right_year) { # left_year=%d, right_year=%d", __func__, left_year, right_year); */ - while( left_year != right_year ) { - /* seconds += length_of_year[IS_LEAP(right_year - 1900)] * 60 * 60 * 24; */ - __64_add_i32(&seconds, length_of_year[IS_LEAP(right_year - 1900)] * 60 * 60 * 24, &seconds); - - right_year += increment; - } - /* wtof("%s: }", __func__); */ - - /* return seconds * increment; */ - /* wtof("%s: return %llu", __func__, seconds.u64); */ - - return seconds.u64; -} - diff --git a/src/crent370/time64/tm64sby.o b/src/crent370/time64/tm64sby.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/time64/tm64sby.s b/src/crent370/time64/tm64sby.s deleted file mode 100644 index 1592cfc..0000000 --- a/src/crent370/time64/tm64sby.s +++ /dev/null @@ -1,188 +0,0 @@ - TITLE '/home/projects/crent370/time64/tm64sby.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/time64 -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F -@@2 EQU * - DC F'365' - DC F'366' - -&FUNC SETC 'seconds_between_years' - DS 0F - EJECT -* external function 'seconds_between_years' prologue -* frame base=88, local stack=40, call args=16 -&FUNC SETC 'seconds_between_years' -TM64SBY PDPPRLG CINDEX=0,FRAME=144,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'seconds_between_years' code - SLR 2,2 - SLR 3,3 - ST 2,120(13) - ST 3,4+120(13) - ST 2,128(13) - ST 3,4+128(13) - LR 4,2 ==> right_year - LR 5,3 ==> right_year - ST 2,136(13) ==> right_year - ST 3,4+136(13) ==> right_year - LR 6,2 - LR 7,3 - ST 0,112(13) - L 3,4(11) ==> right_year - MVC 116(4,13),=F'1' ==> increment - L 8,0(11) ==> left_year - CR 8,3 ==> right_year - BH @@L3 - MVC 116(4,13),=F'-1' ==> increment -@@L3 EQU * - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64INIT) - BALR 14,15 - L 2,0(11) ==> left_year - LA 9,2400(0,0) - CR 2,9 - BNH @@L4 - A 2,=F'-2400' - ST 2,120(13) - L 8,120(13) - L 9,4+120(13) - SRDA 8,32 - LA 2,400(0,0) - DR 8,2 - ST 8,120(13) - ST 9,4+120(13) - L 2,124(13) - MH 2,=H'400' - L 8,0(11) ==> left_year - SR 8,2 - ST 8,0(11) ==> left_year - LA 2,104(,13) - ST 2,88(13) - MVC 92(8,13),=XL8'00000002F0605980' - LA 1,88(,13) - L 15,=V(@@64FU64) - BALR 14,15 - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),124(13) - B @@L16 -@@L4 EQU * - L 2,0(11) ==> left_year - LA 9,1599(0,0) - CR 2,9 - BH @@L5 - A 2,=F'-1600' - ST 2,128(13) - L 8,128(13) - L 9,4+128(13) - SRDA 8,32 - LA 2,400(0,0) - DR 8,2 - ST 8,128(13) - ST 9,4+128(13) - L 2,132(13) - MH 2,=H'400' - A 2,0(11) ==> left_year - ST 2,0(11) ==> left_year - LA 2,104(,13) - ST 2,88(13) - MVC 92(8,13),=XL8'00000002F0605980' - LA 1,88(,13) - L 15,=V(@@64FU64) - BALR 14,15 - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),132(13) -@@L16 EQU * - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64MI32) - BALR 14,15 -@@L5 EQU * - L 8,0(11) ==> left_year - CLR 8,3 ==> right_year - BE @@L15 -@@L13 EQU * - LA 2,104(,13) - ST 2,88(13) - LR 4,3 ==> right_year - SRDA 4,32 ==> right_year - LA 9,400(0,0) - DR 4,9 ==> right_year - LTR 4,4 - BE @@L12 - LR 2,3 ==> right_year - N 2,=F'3' - LTR 2,2 - BNE @@L10 - ST 3,136(13) ==> right_year - L 8,136(13) - L 9,4+136(13) - SRDA 8,32 - LA 2,100(0,0) - DR 8,2 - ST 8,136(13) - ST 9,4+136(13) - LTR 8,8 - BE @@L10 -@@L12 EQU * - LA 2,4(0,0) - B @@L11 -@@L10 EQU * - SLR 2,2 -@@L11 EQU * - L 7,=F'86400' - L 8,=A(@@2) - M 6,0(2,8) ==> length_of_year - ST 7,92(13) - LA 2,104(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64AI32) - BALR 14,15 - A 3,116(13) ==> right_year,increment - L 9,0(11) ==> left_year - CLR 9,3 ==> right_year - BNE @@L13 -@@L15 EQU * - L 2,112(13) - MVC 0(8,2),104(13) ==> - LR 15,2 -* Function 'seconds_between_years' epilogue - PDPEPIL -* Function 'seconds_between_years' literal pool - DS 0D - LTORG -* Function 'seconds_between_years' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/time64/tm64syr.c b/src/crent370/time64/tm64syr.c deleted file mode 100644 index 3a06f79..0000000 --- a/src/crent370/time64/tm64syr.c +++ /dev/null @@ -1,139 +0,0 @@ -/* -Copyright (c) 2007-2008 Michael G Schwern -This software originally derived from Paul Sheer's pivotal_gmtime_r.c. -The MIT License: -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -/* See http://code.google.com/p/y2038 for this code's origin */ -#if defined(__LP64__) -#error This cruft should be LP32 only! -#endif - -/* -Programmers who have available to them 64-bit time values as a 'long -long' type can use localtime64_r() and gmtime64_r() which correctly -converts the time even on 32-bit systems. Whether you have 64-bit time -values will depend on the operating system. -localtime64_r() is a 64-bit equivalent of localtime_r(). -gmtime64_r() is a 64-bit equivalent of gmtime_r(). -*/ -#include -#include -#include -#include -#include -#include -#include -#include "__time64.h" - -/* Year cycle from MAX_SAFE_YEAR down. */ -__asm__("\n* safe_years_high"); -static const int safe_years_high[SOLAR_CYCLE_LENGTH] = { - 2016, 2017, 2018, 2019, - 2020, 2021, 2022, 2023, - 2024, 2025, 2026, 2027, - 2028, 2029, 2030, 2031, - 2032, 2033, 2034, 2035, - 2036, 2037, 2010, 2011, - 2012, 2013, 2014, 2015 -}; - -/* Year cycle from MIN_SAFE_YEAR up */ -__asm__("\n* safe_years_low"); -static const int safe_years_low[SOLAR_CYCLE_LENGTH] = { - 1996, 1997, 1998, 1971, - 1972, 1973, 1974, 1975, - 1976, 1977, 1978, 1979, - 1980, 1981, 1982, 1983, - 1984, 1985, 1986, 1987, - 1988, 1989, 1990, 1991, - 1992, 1993, 1994, 1995, -}; - -/* Let's assume people are going to be looking for dates in the future. - Let's provide some cheats so you can skip ahead. - This has a 4x speed boost when near 2008. -*/ - -/* The exceptional centuries without leap years cause the cycle to - shift by 16 -*/ -__asm__("\n&FUNC SETC 'cycle_offset'"); -static int cycle_offset(int year) -{ - const int start_year = 2000; - int year_diff = year - start_year; - int exceptions; - - if( year > start_year ) year_diff--; - - exceptions = year_diff / 100; - exceptions -= year_diff / 400; - - return exceptions * 16; -} - -/* For a given year after 2038, pick the latest possible matching - year in the 28 year calendar cycle. - A matching year... - 1) Starts on the same day of the week. - 2) Has the same leap year status. - This is so the calendars match up. - Also the previous year must match. When doing Jan 1st you might - wind up on Dec 31st the previous year when doing a -UTC time zone. - Finally, the next year must have the same start day of week. This - is for Dec 31st with a +UTC time zone. - It doesn't need the same leap year status since we only care about - January 1st. -*/ -__asm__("\n&FUNC SETC 'safe_year'"); -int safe_year(const int year) -{ - int safe_year = 0; - int year_cycle; - - if( year >= MIN_SAFE_YEAR && year <= MAX_SAFE_YEAR ) { - return (int)year; - } - - year_cycle = year + cycle_offset(year); - - /* safe_years_low is off from safe_years_high by 8 years */ - if( year < MIN_SAFE_YEAR ) year_cycle -= 8; - - /* Change non-leap xx00 years to an equivalent */ - if( is_exception_century(year) ) year_cycle += 11; - - /* Also xx01 years, since the previous year will be wrong */ - if( is_exception_century(year - 1) ) year_cycle += 17; - - year_cycle %= SOLAR_CYCLE_LENGTH; - if( year_cycle < 0 ) year_cycle = SOLAR_CYCLE_LENGTH + year_cycle; - - assert( year_cycle >= 0 ); - assert( year_cycle < SOLAR_CYCLE_LENGTH ); - - if( year < MIN_SAFE_YEAR ) safe_year = safe_years_low[year_cycle]; - else if( year > MAX_SAFE_YEAR ) safe_year = safe_years_high[year_cycle]; - else assert(0); - - assert(safe_year <= MAX_SAFE_YEAR && safe_year >= MIN_SAFE_YEAR); - - return safe_year; -} - diff --git a/src/crent370/time64/tm64syr.o b/src/crent370/time64/tm64syr.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/time64/tm64syr.s b/src/crent370/time64/tm64syr.s deleted file mode 100644 index ba53014..0000000 --- a/src/crent370/time64/tm64syr.s +++ /dev/null @@ -1,311 +0,0 @@ - TITLE '/home/projects/crent370/time64/tm64syr.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/time64 -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -* safe_years_high -* Program text area - DS 0F -@@2 EQU * - DC F'2016' - DC F'2017' - DC F'2018' - DC F'2019' - DC F'2020' - DC F'2021' - DC F'2022' - DC F'2023' - DC F'2024' - DC F'2025' - DC F'2026' - DC F'2027' - DC F'2028' - DC F'2029' - DC F'2030' - DC F'2031' - DC F'2032' - DC F'2033' - DC F'2034' - DC F'2035' - DC F'2036' - DC F'2037' - DC F'2010' - DC F'2011' - DC F'2012' - DC F'2013' - DC F'2014' - DC F'2015' - -* safe_years_low - DS 0F -@@3 EQU * - DC F'1996' - DC F'1997' - DC F'1998' - DC F'1971' - DC F'1972' - DC F'1973' - DC F'1974' - DC F'1975' - DC F'1976' - DC F'1977' - DC F'1978' - DC F'1979' - DC F'1980' - DC F'1981' - DC F'1982' - DC F'1983' - DC F'1984' - DC F'1985' - DC F'1986' - DC F'1987' - DC F'1988' - DC F'1989' - DC F'1990' - DC F'1991' - DC F'1992' - DC F'1993' - DC F'1994' - DC F'1995' - -&FUNC SETC 'cycle_offset' - DS 0F - EJECT -* static function 'cycle_offset' prologue -* frame base=88, local stack=0, call args=0 -&FUNC SETC 'cycle_offset' -@@4 PDPPRLG CINDEX=0,FRAME=88,BASER=12,ENTRY=NO - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'cycle_offset' code - SLR 4,4 ==> year_diff - SLR 5,5 ==> year_diff - LR 2,4 ==> year_diff - LR 3,5 ==> year_diff - L 6,0(11) ==> year - LR 15,6 ==> year_diff,year - A 15,=F'-2000' ==> year_diff - LA 7,2000(0,0) - CR 6,7 ==> year - BNH @@L2 - BCTR 15,0 ==> year_diff -@@L2 EQU * - LR 4,15 ==> year_diff - SRDA 4,32 ==> year_diff - LA 6,100(0,0) - DR 4,6 ==> year_diff - LR 2,15 ==> year_diff - SRDA 2,32 ==> year_diff - LA 7,400(0,0) - DR 2,7 ==> year_diff - LR 15,5 ==> exceptions - SR 15,3 ==> exceptions,year_diff - MH 15,=H'16' -* Function 'cycle_offset' epilogue - PDPEPIL -* Function 'cycle_offset' literal pool - DS 0D - LTORG -* Function 'cycle_offset' page table -@@PGT0 DS 0F - DC A(@@PG0) - -&FUNC SETC 'safe_year' - DS 0F - EJECT -* external function 'safe_year' prologue -* frame base=88, local stack=24, call args=16 -&FUNC SETC 'safe_year' -TM64SYR PDPPRLG CINDEX=1,FRAME=128,BASER=12,ENTRY=YES - B @@FEN1 - LTORG -@@FEN1 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG1 EQU * - LR 11,1 - L 10,=A(@@PGT1) -* Function 'safe_year' code - SLR 4,4 ==> year - SLR 5,5 ==> year - ST 4,112(13) ==> year - ST 5,4+112(13) ==> year - LR 6,4 - LR 7,5 - ST 4,120(13) - ST 5,4+120(13) - LR 8,4 ==> year_cycle - LR 9,5 ==> year_cycle - MVC 104(4,13),=F'0' ==> safe_year - L 2,0(11) ==> year - A 2,=F'-1970' - L 15,0(11) ==> year - LA 3,67(0,0) - CLR 2,3 - BNH @@L3 - MVC 88(4,13),0(11) ==> year - LA 1,88(,13) - L 15,=A(@@4) - BALR 14,15 - L 3,0(11) ==> year_cycle,year - AR 3,15 ==> year_cycle,year - L 2,0(11) ==> year - LA 15,1969(0,0) - CR 2,15 - BH @@L5 - A 3,=F'-8' ==> year_cycle -@@L5 EQU * - L 4,0(11) ==> year - SRDA 4,32 ==> year - LA 15,100(0,0) - DR 4,15 ==> year - LTR 4,4 - BNE @@L6 - MVC 112(4,13),0(11) ==> year - L 4,112(13) - L 5,4+112(13) - SRDA 4,32 - LA 15,400(0,0) - DR 4,15 - LTR 4,4 - BE @@L6 - A 3,=F'11' ==> year_cycle -@@L6 EQU * - L 2,0(11) ==> year - BCTR 2,0 - LR 6,2 - SRDA 6,32 - LA 4,100(0,0) - DR 6,4 - LTR 6,6 - BNE @@L7 - ST 2,120(13) - L 4,120(13) - L 5,4+120(13) - SRDA 4,32 - LA 15,400(0,0) - DR 4,15 - LTR 4,4 - BE @@L7 - A 3,=F'17' ==> year_cycle -@@L7 EQU * - LR 8,3 ==> year_cycle - SRDA 8,32 ==> year_cycle - LA 2,28(0,0) - DR 8,2 ==> year_cycle - LR 3,8 ==> year_cycle - LTR 8,8 ==> year_cycle - BNL @@L8 - AR 3,2 ==> year_cycle -@@L8 EQU * - LTR 3,3 ==> year_cycle - BNL @@L10 - MVC 88(4,13),=A(@@LC0) - MVC 92(4,13),=A(@@LC1) - MVC 96(4,13),=F'128' - LA 1,88(,13) - L 15,=V(@@ASSERT) - BALR 14,15 -@@L10 EQU * - LA 4,27(0,0) - CR 3,4 ==> year_cycle - BNH @@L12 - MVC 88(4,13),=A(@@LC2) - MVC 92(4,13),=A(@@LC1) - MVC 96(4,13),=F'129' - LA 1,88(,13) - L 15,=V(@@ASSERT) - BALR 14,15 -@@L12 EQU * - L 15,0(11) ==> year - LA 5,1969(0,0) - CR 15,5 - BH @@L13 - MH 3,=H'4' - L 2,=A(@@3) - B @@L19 -@@L13 EQU * - L 4,0(11) ==> year - LA 2,2037(0,0) - CR 4,2 - BNH @@L15 - MH 3,=H'4' - L 2,=A(@@2) -@@L19 EQU * - L 2,0(3,2) ==> safe_years_high - ST 2,104(13) ==> safe_year - B @@L14 -@@L15 EQU * - MVC 88(4,13),=A(@@LC3) - MVC 92(4,13),=A(@@LC1) - MVC 96(4,13),=F'133' - LA 1,88(,13) - L 15,=V(@@ASSERT) - BALR 14,15 -@@L14 EQU * - L 2,104(13) ==> safe_year - A 2,=F'-1970' - LA 5,67(0,0) - CLR 2,5 - BNH @@L18 - MVC 88(4,13),=A(@@LC4) - MVC 92(4,13),=A(@@LC1) - MVC 96(4,13),=F'135' - LA 1,88(,13) - L 15,=V(@@ASSERT) - BALR 14,15 -@@L18 EQU * - L 15,104(13) ==> year,safe_year -@@L3 EQU * -* Function 'safe_year' epilogue - PDPEPIL -* Function 'safe_year' literal pool - DS 0D - LTORG -* Function 'safe_year' page table -@@PGT1 DS 0F - DC A(@@PG1) -@@LC0 EQU * - DC C'year_cycle >= 0' - DC X'0' -@@LC1 EQU * - DC C'' - DC X'0' -@@LC2 EQU * - DC C'year_cycle < SOLAR_CYCLE_LENGTH' - DC X'0' -@@LC3 EQU * - DC C'0' - DC X'0' -@@LC4 EQU * - DC C'safe_year <= MAX_SAFE_YEAR ' - DC X'50' - DC X'50' - DC C' safe_year >= MIN_SAFE_YEAR' - DC X'0' - END diff --git a/src/crent370/time64/tm64test.c b/src/crent370/time64/tm64test.c deleted file mode 100644 index a8059fa..0000000 --- a/src/crent370/time64/tm64test.c +++ /dev/null @@ -1,220 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include "time64.h" -#include "__time64.h" - -extern long __ymdts(unsigned yr, unsigned mo, unsigned day); -#define ymd_to_scalar(y,m,d) __ymdts((y),(m),(d)) - -__asm__("\n&FUNC SETC 'main'"); -int main(int argc, char **argv) -{ - struct tm date = {0}; - time64_t result; - time_t t; - struct tm tmp_date; - struct tm *tmp; - int i; - char *p; - utime64_t uresult; - double d; - -#if 0 - /* set time zone offset from TZ environment variable or CVTTZ if TZ does not exist */ - tzset(); - printf("time zone offset from __tzget() returned %d seconds\n", __tzget()); -#endif - -#if 0 - printf("ymd_to_scalar(1970,1,1)=%d\n", ymd_to_scalar(1970,1,1)); -#endif - -#if 0 - { - __64 seconds; - __64 days; - - /* static const time64_t seconds_in_gregorian_cycle = days_in_gregorian_cycle * 60LL * 60LL * 24LL; */ - __64_from_int(&days, days_in_gregorian_cycle); - __64_mul_int(&days, 60 * 60 * 24, &seconds); - printf("seconds_in_gregorian_cycle=%llu or 0x%016llX\n \n", seconds, seconds); - } -#endif - - for(i=0; i < 10; i++) { - uresult = utime64(NULL); - printf("utime64(NULL) = 0x%016llX (%llu)\n", uresult, uresult); - __64_divmod_u32(&uresult, 1000000, &uresult, &result); - printf(" div 1000000 = 0x%016llX (%llu) remainder = %016llX (%llu)\n", - uresult, uresult, result, result); - } - printf("---------------------------------------------------\n"); - - result = utime64(NULL); - uresult = utime64(NULL); - d = difftime64(uresult, result); - printf("difftime64(uresult,result)==%f\n", d); - printf("---------------------------------------------------\n"); - - for(i=0; i < 10; i++) { - result = utime64(NULL); - uresult = utime64(NULL); - __64_sub(&uresult, &result, &result); - printf("utime64() - utime64() = 0x%016llX (%llu)\n", result, result); - } - printf("---------------------------------------------------\n"); - - result = time64(NULL); - printf("time64(NULL) = 0x%016llX (%llu)\n", result, result); - if (result.u32[0]==0xFFFFFFFF) { - p = "*** time64 failure ***\n"; - } - else { - tmp = gmtime64(&result); - if (!tmp) { - p = "*** gmtime64 failure ***\n"; - } - else { - p = asctime64(tmp); - if (!p) p = "*** asctime64 failure ***\n"; - } - printf(" GMT: %s", p); - tmp = localtime64(&result); - if (!tmp) { - p = "*** gmtime64 failure ***\n"; - } - else { - p = asctime64(tmp); - if (!p) p = "*** asctime64 failure ***\n"; - } - printf(" local: %s", p); - } - printf("---------------------------------------------------\n"); - -#if 1 - memset(&date, 0, sizeof(date)); - - date.tm_mon = 11; - date.tm_mday = 1; - date.tm_hour = 12; - date.tm_min = 34; - date.tm_sec = 45; - - printf("---------------------------------------------------\n"); - printf("Validate values at: https://www.epochconverter.com/\n"); - printf("Note: all values are for Jan 1 of each year.\n"); - printf("---------------------------------------------------\n"); - for(i=69; i < 1000; i++) { - date.tm_year = i; -#if 0 - result = timegm64(&date); - if (result.u32[0]==0xFFFFFFFF) { - p = "*** timegm64 failure ***\n"; - } - else { - tmp = gmtime64(&result); - if (!tmp) { - p = "*** gmtime64 failure ***\n"; - } - else { - p = asctime64(tmp); - if (!p) p = "*** asctime64 failure ***\n"; - } - } - printf("timegm64: Year:%d 0x%016llX %s", 1900+i, result, p); -#else - result = mktime64(&date); - if (result.u32[0]==0xFFFFFFFF) { - p = "*** mktime64 failure ***\n"; - } - else { - tmp = gmtime64(&result); - if (!tmp) { - p = "*** gmtime64 failure ***\n"; - } - else { - p = asctime64(tmp); - if (!p) p = "*** asctime64 failure ***\n"; - } - } - printf("mktime64: Year:%d 0x%016llX %s", 1900+i, result, p); -#endif - - tmp_date = date; - t = mktime(&tmp_date); - if (t==(time_t)-1) { - p = "*** mktime failure ***\n"; - } - else { - tmp = gmtime(&t); - if (!tmp) { - p = "*** gmtime failure ***\n"; - } - else { - p = asctime(tmp); - if (!p) p = "*** asctime failure ***\n"; - } - } - - printf(" mktime: Year:%d 0x%08X %s", 1900+i, t, p); - printf("---------------------------------------------------\n"); - } - - { - result = time64(NULL); - if (result.u32[0]==0xFFFFFFFF) { - p = "*** timegm64 failure ***\n"; - } - else { - tmp = gmtime64(&result); - if (!tmp) { - p = "*** gmtime64 failure ***\n"; - } - else { - p = asctime64(tmp); - if (!p) p = "*** asctime64 failure ***\n"; - } - } - printf("timegm64: Time NOW 0x%016llX GMT %s", result, p); - - tmp_date = date; - t = time(NULL); - if (t==(time_t)-1) { - p = "*** mktime failure ***\n"; - } - else { - tmp = gmtime(&t); - if (!tmp) { - p = "*** gmtime failure ***\n"; - } - else { - p = asctime(tmp); - if (!p) p = "*** asctime failure ***\n"; - } - } - - printf(" mktime: Time NOW 0x%08X GMT %s", t, p); - printf("---------------------------------------------------\n"); - } - - /* */ - result.u32[0] = 0x7FFFFFFF; - result.u32[1] = 0xFFFFFFFF; - printf("1/2 Max value test 0x%08X%08X\n", result.u32[0], result.u32[1]); - - /* 18446744073709551615 */ - result.u32[0] = 0xFFFFFFFF; - result.u32[1] = 0xFFFFFFFF; - printf("Max value test 0x%08X%08X\n", result.u32[0], result.u32[1]); - - __64_init(&result); - __64_sub_i32(&result, 1, &result); - printf("result = 0 then result - 1 0x%08X%08X\n", result.u32[0], result.u32[1]); -#endif - return 0; -} - diff --git a/src/crent370/time64/tm64test.o b/src/crent370/time64/tm64test.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/time64/tm64test.s b/src/crent370/time64/tm64test.s deleted file mode 100644 index a925f9a..0000000 --- a/src/crent370/time64/tm64test.s +++ /dev/null @@ -1,539 +0,0 @@ - TITLE '/home/projects/crent370/time64/tm64test.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/time64 -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'main' -* Program text area - DS 0F - COPY PDPMAIN - EJECT -* external function 'main' prologue -* frame base=88, local stack=168, call args=40 -&FUNC SETC 'main' -MAIN PDPPRLG CINDEX=0,FRAME=296,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'main' code - LA 4,128(,13) - LA 5,36(0,0) - SLR 2,2 - LR 3,2 - MVCL 4,2 - SLR 4,4 ==> i -@@L6 EQU * - MVC 88(4,13),=F'0' - LA 0,208(,13) - LA 1,88(,13) - L 15,=V(TM64UTIM) - BALR 14,15 - MVC 272(8,13),208(13) - MVC 88(4,13),=A(@@LC0) - MVC 92(8,13),272(13) - MVC 100(8,13),272(13) - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - LA 2,272(,13) - ST 2,88(13) - MVC 92(4,13),=F'1000000' - ST 2,96(13) - LA 2,280(,13) - ST 2,100(13) - LA 1,88(,13) - L 15,=V(@@64VU32) - BALR 14,15 - MVC 88(4,13),=A(@@LC1) - MVC 92(8,13),272(13) - MVC 100(8,13),272(13) - MVC 108(8,13),280(13) - MVC 116(8,13),280(13) - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - A 4,=F'1' ==> i - LA 2,9(0,0) - CR 4,2 ==> i - BNH @@L6 - MVC 88(4,13),=A(@@LC2) - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - MVC 88(4,13),=F'0' - LA 0,216(,13) - LA 1,88(,13) - L 15,=V(TM64UTIM) - BALR 14,15 - MVC 280(8,13),216(13) - MVC 88(4,13),=F'0' - LA 0,224(,13) - LA 1,88(,13) - L 15,=V(TM64UTIM) - BALR 14,15 - MVC 272(8,13),224(13) - MVC 88(8,13),272(13) - MVC 96(8,13),280(13) - LA 1,88(,13) - L 15,=V(TM64DTIM) - BALR 14,15 - MVC 88(4,13),=A(@@LC3) - STD 0,92(13) ==> d - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - MVC 88(4,13),=A(@@LC2) - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - SLR 4,4 ==> i -@@L11 EQU * - MVC 88(4,13),=F'0' - LA 0,232(,13) - LA 1,88(,13) - L 15,=V(TM64UTIM) - BALR 14,15 - MVC 280(8,13),232(13) - MVC 88(4,13),=F'0' - LA 0,240(,13) - LA 1,88(,13) - L 15,=V(TM64UTIM) - BALR 14,15 - MVC 272(8,13),240(13) - LA 2,272(,13) - ST 2,88(13) - LA 2,280(,13) - ST 2,92(13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64SUB) - BALR 14,15 - MVC 88(4,13),=A(@@LC4) - MVC 92(8,13),280(13) - MVC 100(8,13),280(13) - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - A 4,=F'1' ==> i - LA 3,9(0,0) - CR 4,3 ==> i - BNH @@L11 - MVC 88(4,13),=A(@@LC2) - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - MVC 88(4,13),=F'0' - LA 0,248(,13) - LA 1,88(,13) - L 15,=V(TM64TIME) - BALR 14,15 - MVC 280(8,13),248(13) - MVC 88(4,13),=A(@@LC5) - MVC 92(8,13),280(13) - MVC 100(8,13),280(13) - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - L 2,280(13) - L 4,=F'-1' - CLR 2,4 - BE @@L13 - LA 2,280(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(TM64GMT) - BALR 14,15 - L 3,=A(@@LC7) ==> p - LTR 15,15 ==> tmp - BE @@L15 - ST 15,88(13) ==> tmp - LA 1,88(,13) - L 15,=V(TM64ASC) - BALR 14,15 - LR 3,15 ==> p - LTR 15,15 ==> p - BNE @@L15 - L 3,=A(@@LC8) ==> p -@@L15 EQU * - MVC 88(4,13),=A(@@LC9) - ST 3,92(13) ==> p - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - LA 2,280(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(TM64LTM) - BALR 14,15 - L 3,=A(@@LC7) ==> p - LTR 15,15 ==> tmp - BE @@L18 - ST 15,88(13) ==> tmp - LA 1,88(,13) - L 15,=V(TM64ASC) - BALR 14,15 - LR 3,15 ==> p - LTR 15,15 ==> p - BNE @@L18 - L 3,=A(@@LC8) ==> p -@@L18 EQU * - MVC 88(4,13),=A(@@LC10) - ST 3,92(13) ==> p - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 -@@L13 EQU * - MVC 88(4,13),=A(@@LC2) - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - LA 4,128(,13) ==> s - SLR 3,3 ==> c - LA 2,36(0,0) ==> n - -*** MEMSET *** - LR 14,4 => target (s) ==> s - LR 15,2 => length (n) ==> n - SLR 0,0 => source (NULL) - LR 1,3 fill character ==> c - SLL 1,24 move fill to high byte - MVCL 14,0 Set target to fill character - MVC 144(4,13),=F'11' ==> .tm_mon - MVC 140(4,13),=F'1' ==> .tm_mday - MVC 136(4,13),=F'12' ==> .tm_hour - MVC 132(4,13),=F'34' ==> .tm_min - MVC 128(4,13),=F'45' ==> .tm_sec - MVC 88(4,13),=A(@@LC2) - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - MVC 88(4,13),=A(@@LC11) - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - MVC 88(4,13),=A(@@LC12) - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - MVC 88(4,13),=A(@@LC2) - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - LA 4,69(0,0) ==> i -@@L35 EQU * - ST 4,148(13) ==> i,tm_year - LA 2,128(,13) - ST 2,88(13) - LA 0,256(,13) - LA 1,88(,13) - L 15,=V(TM64MKT) - BALR 14,15 - MVC 280(8,13),256(13) - L 3,=A(@@LC13) ==> p - L 2,280(13) - L 5,=F'-1' - CLR 2,5 - BE @@L26 - LA 2,280(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(TM64GMT) - BALR 14,15 - L 3,=A(@@LC7) ==> p - LTR 15,15 ==> tmp - BE @@L26 - ST 15,88(13) ==> tmp - LA 1,88(,13) - L 15,=V(TM64ASC) - BALR 14,15 - LR 3,15 ==> p - LTR 15,15 ==> p - BNE @@L26 - L 3,=A(@@LC8) ==> p -@@L26 EQU * - MVC 88(4,13),=A(@@LC14) - LR 2,4 ==> i - A 2,=F'1900' - ST 2,92(13) - MVC 96(8,13),280(13) - ST 3,104(13) ==> p - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - MVC 168(36,13),128(13) ==> tmp_date,date - LA 2,168(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(MKTIME) - BALR 14,15 - ST 15,288(13) ==> tmp - L 3,=A(@@LC15) ==> p - L 5,=F'-1' - CLR 15,5 - BE @@L31 - LA 2,288(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(GMTIME) - BALR 14,15 - L 3,=A(@@LC16) ==> p - LTR 15,15 ==> tmp - BE @@L31 - ST 15,88(13) ==> tmp - LA 1,88(,13) - L 15,=V(ASCTIME) - BALR 14,15 - LR 3,15 ==> p - LTR 15,15 ==> p - BNE @@L31 - L 3,=A(@@LC17) ==> p -@@L31 EQU * - MVC 88(4,13),=A(@@LC18) - LR 2,4 ==> i - A 2,=F'1900' - ST 2,92(13) - MVC 96(4,13),288(13) - ST 3,100(13) ==> p - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - MVC 88(4,13),=A(@@LC2) - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - A 4,=F'1' ==> i - LA 2,999(0,0) - CR 4,2 ==> i - BNH @@L35 - MVC 88(4,13),=F'0' - LA 0,264(,13) - LA 1,88(,13) - L 15,=V(TM64TIME) - BALR 14,15 - MVC 280(8,13),264(13) - L 3,=A(@@LC19) ==> p - L 2,280(13) - L 4,=F'-1' - CLR 2,4 - BE @@L37 - LA 2,280(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(TM64GMT) - BALR 14,15 - L 3,=A(@@LC7) ==> p - LTR 15,15 ==> tmp - BE @@L37 - ST 15,88(13) ==> tmp - LA 1,88(,13) - L 15,=V(TM64ASC) - BALR 14,15 - LR 3,15 ==> p - LTR 15,15 ==> p - BNE @@L37 - L 3,=A(@@LC8) ==> p -@@L37 EQU * - MVC 88(4,13),=A(@@LC20) - MVC 92(8,13),280(13) - ST 3,100(13) ==> p - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - MVC 168(36,13),128(13) ==> tmp_date,date - MVC 88(4,13),=F'0' - LA 1,88(,13) - L 15,=V(TIME) - BALR 14,15 - ST 15,288(13) ==> tmp - L 3,=A(@@LC15) ==> p - L 5,=F'-1' - CLR 15,5 - BE @@L42 - LA 2,288(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(GMTIME) - BALR 14,15 - L 3,=A(@@LC16) ==> p - LTR 15,15 ==> tmp - BE @@L42 - ST 15,88(13) ==> tmp - LA 1,88(,13) - L 15,=V(ASCTIME) - BALR 14,15 - LR 3,15 ==> p - LTR 15,15 ==> p - BNE @@L42 - L 3,=A(@@LC17) ==> p -@@L42 EQU * - MVC 88(4,13),=A(@@LC21) - MVC 92(4,13),288(13) - ST 3,96(13) ==> p - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - MVC 88(4,13),=A(@@LC2) - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - MVC 280(4,13),=F'2147483647' - LA 3,284(,13) - MVC 0(4,3),=F'-1' ==> .u32 - MVC 88(4,13),=A(@@LC22) - MVC 92(4,13),280(13) - MVC 96(4,13),0(3) ==> .u32 - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - MVC 280(4,13),=F'-1' - MVC 0(4,3),=F'-1' ==> .u32 - MVC 88(4,13),=A(@@LC23) - MVC 92(4,13),280(13) - MVC 96(4,13),0(3) ==> .u32 - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - LA 2,280(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64INIT) - BALR 14,15 - LA 2,280(,13) - ST 2,88(13) - MVC 92(4,13),=F'1' - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64SI32) - BALR 14,15 - MVC 88(4,13),=A(@@LC24) - MVC 92(4,13),280(13) - MVC 96(4,13),0(3) ==> .u32 - LA 1,88(,13) - L 15,=V(PRINTF) - BALR 14,15 - SLR 15,15 -* Function 'main' epilogue - PDPEPIL -* Function 'main' literal pool - DS 0D - LTORG -* Function 'main' page table -@@PGT0 DS 0F - DC A(@@PG0) -@@LC0 EQU * - DC C'utime64(NULL) = 0x%016llX (%llu)' - DC X'15' - DC X'0' -@@LC1 EQU * - DC C' div 1000000 = 0x%016llX (%llu) remainder = %01' - DC C'6llX (%llu)' - DC X'15' - DC X'0' -@@LC2 EQU * - DC C'------------------------------------------------' - DC C'---' - DC X'15' - DC X'0' -@@LC3 EQU * - DC C'difftime64(uresult,result)==%f' - DC X'15' - DC X'0' -@@LC4 EQU * - DC C'utime64() - utime64() = 0x%016llX (%llu)' - DC X'15' - DC X'0' -@@LC5 EQU * - DC C'time64(NULL) = 0x%016llX (%llu)' - DC X'15' - DC X'0' -@@LC7 EQU * - DC C'*** gmtime64 failure ***' - DC X'15' - DC X'0' -@@LC8 EQU * - DC C'*** asctime64 failure ***' - DC X'15' - DC X'0' -@@LC9 EQU * - DC C' GMT: %s' - DC X'0' -@@LC10 EQU * - DC C' local: %s' - DC X'0' -@@LC11 EQU * - DC C'Validate values at: https://www.epochconverter.c' - DC C'om/' - DC X'15' - DC X'0' -@@LC12 EQU * - DC C'Note: all values are for Jan 1 of each year.' - DC X'15' - DC X'0' -@@LC13 EQU * - DC C'*** mktime64 failure ***' - DC X'15' - DC X'0' -@@LC14 EQU * - DC C'mktime64: Year:%d 0x%016llX %s' - DC X'0' -@@LC15 EQU * - DC C'*** mktime failure ***' - DC X'15' - DC X'0' -@@LC16 EQU * - DC C'*** gmtime failure ***' - DC X'15' - DC X'0' -@@LC17 EQU * - DC C'*** asctime failure ***' - DC X'15' - DC X'0' -@@LC18 EQU * - DC C' mktime: Year:%d 0x%08X %s' - DC X'0' -@@LC19 EQU * - DC C'*** timegm64 failure ***' - DC X'15' - DC X'0' -@@LC20 EQU * - DC C'timegm64: Time NOW 0x%016llX GMT %s' - DC X'0' -@@LC21 EQU * - DC C' mktime: Time NOW 0x%08X GMT %s' - DC X'0' -@@LC22 EQU * - DC C'1/2 Max value test 0x%08X%08X' - DC X'15' - DC X'0' -@@LC23 EQU * - DC C'Max value test 0x%08X%08X' - DC X'15' - DC X'0' -@@LC24 EQU * - DC C'result = 0 then result - 1 0x%08X%08X' - DC X'15' - DC X'0' - END @@MAIN diff --git a/src/crent370/time64/tm64tgm.c b/src/crent370/time64/tm64tgm.c deleted file mode 100644 index b47c2fc..0000000 --- a/src/crent370/time64/tm64tgm.c +++ /dev/null @@ -1,168 +0,0 @@ -/* -Copyright (c) 2007-2008 Michael G Schwern -This software originally derived from Paul Sheer's pivotal_gmtime_r.c. -The MIT License: -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -/* See http://code.google.com/p/y2038 for this code's origin */ -#if defined(__LP64__) -#error This cruft should be LP32 only! -#endif - -#include -#include -#include -#include -#include -#include -#include "time64.h" -#include "__time64.h" - -static const int length_of_year[2] = { 365, 366 }; - -__asm__("\n&FUNC SETC 'timegm64'"); -time64_t timegm64(const struct tm *date) -{ - time64_t days; - time64_t seconds; - int year; - int orig_year = (int)date->tm_year; - int cycles = 0; - time64_t tmp; - __64_DTYPE_TMP u; - - __64_init(&days); - __64_init(&seconds); - - /* wtof("%s: orig_year=%d", __func__, orig_year); */ -#if 1 - /* a small optimization for years > 2370 (470) (400 day gregorian cycle + unix epoch date 70)*/ - while (orig_year > years_in_gregorian_cycle + 70) { - /* wtof("%s: while (orig_year + 100 > years_in_gregorian_cycle) {", __func__); */ - /* wtof("%s: orig_year=%d, days_in_gregorian_cycle=%d", __func__, orig_year, years_in_gregorian_cycle); */ - __64_add_u32(&days, days_in_gregorian_cycle, &days); - /* wtof("%s: add %d to days = %lld", __func__, days_in_gregorian_cycle, days); */ - orig_year -= years_in_gregorian_cycle; - /* wtof("%s: }", __func__); */ - } -#endif - -#if 0 - if( orig_year > 100) { - cycles = (orig_year - 100) / 400; - orig_year -= cycles * 400; -#if 0 - days += (time64_t)cycles * days_in_gregorian_cycle; -#else - __64_from_u32(&tmp, days_in_gregorian_cycle); - wtof("%s: if (orig_year > 100), orig_year=%d, days_in_gregorian_cycle=%lld", __func__, orig_year, tmp); - __64_mul_i32(&tmp, cycles, &tmp); - wtof("%s: times %d = %lld", __func__, cycles, tmp); - __64_add(&days, &tmp, &days); - wtof("%s: add %lld to days = %lld", __func__, tmp, days); -#endif - } -#endif - -#if 0 /* we're not going to support negative years */ - else if( orig_year < -300 ) { - cycles = (orig_year - 100) / 400; - orig_year -= cycles * 400; -#if 0 - days += (time64_t)cycles * days_in_gregorian_cycle; -#else - __64_add_int(&days, cycles * days_in_gregorian_cycle, &days); -#endif - } -#endif /* we're not going to support negative years */ - - if( orig_year > 70 ) { - year = 70; - while( year < orig_year ) { -#if 0 - days += length_of_year[IS_LEAP(year)]; -#else - __64_add_i32(&days, length_of_year[IS_LEAP(year)], &days); -#endif - year++; - } - } - else { - if ( orig_year < 70 ) { -#if 0 /* we're not going to support years less than 1970 (70) */ - year = 69; - do { -#if 0 - days -= length_of_year[IS_LEAP(year)]; -#else - __64_sub_int(&days, length_of_year[IS_LEAP(year)], &days); -#endif - year--; - } while( year >= orig_year ); -#else /* we're not going to support years less than 1970 (70) */ - __asm__("DS\t0H\t year < 70 - indicate failure"); - __64_sub_i32(&seconds, 1, &seconds); /* 0 - 1 == -1 */ - return seconds; -#endif /* we're not going to support years less than 1970 (70) */ - } - } - -#if 0 - days += julian_days_by_month[IS_LEAP(orig_year)][date->tm_mon]; - days += date->tm_mday - 1; -#else - __64_add_i32(&days, julian_days_by_month(IS_LEAP(orig_year), date->tm_mon), &days); - __64_add_i32(&days, date->tm_mday - 1, &days); -#endif - -#if 0 - seconds = days * 60 * 60 * 24; -#else - __64_mul_i32(&days, 60 * 60 * 24, &seconds); -#endif - -#if 0 - seconds += date->tm_hour * 60 * 60; -#else - __64_add_i32(&seconds, date->tm_hour * 60 * 60, &seconds); -#endif - -#if 0 - seconds += date->tm_min * 60; -#else - __64_add_i32(&seconds, date->tm_min * 60, &seconds); -#endif - -#if 0 - seconds += date->tm_sec; -#else - __64_add_i32(&seconds, date->tm_sec, &seconds); -#endif - -quit: -#if 0 - { - struct tm tm = *date; - time_t t = mktime(&tm); - printf("%s: t=%u, seconds=%llu\n", __func__, t, seconds); - } -#endif - /* wtof("%s: return %lld seconds", __func__, seconds); */ - return seconds; -} - diff --git a/src/crent370/time64/tm64tgm.o b/src/crent370/time64/tm64tgm.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/time64/tm64tgm.s b/src/crent370/time64/tm64tgm.s deleted file mode 100644 index 9c0f4aa..0000000 --- a/src/crent370/time64/tm64tgm.s +++ /dev/null @@ -1,241 +0,0 @@ - TITLE '/home/projects/crent370/time64/tm64tgm.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/time64 -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F -@@2 EQU * - DC F'365' - DC F'366' - -&FUNC SETC 'timegm64' - DS 0F - EJECT -* external function 'timegm64' prologue -* frame base=88, local stack=40, call args=16 -&FUNC SETC 'timegm64' -TM64TGM PDPPRLG CINDEX=0,FRAME=144,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'timegm64' code - SLR 4,4 - SLR 5,5 - LR 8,4 - LR 9,5 - ST 4,128(13) - ST 5,4+128(13) - ST 4,136(13) - ST 5,4+136(13) - ST 0,120(13) - L 7,0(11) ==> date - L 3,20(7) ==> orig_year,tm_year - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64INIT) - BALR 14,15 - LA 2,112(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(@@64INIT) - BALR 14,15 - LA 2,470(0,0) - CR 3,2 ==> orig_year - BNH @@L20 - LA 6,104(,13) - LR 2,6 -@@L5 EQU * - ST 6,88(13) - MVC 92(4,13),=F'146097' - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64AU32) - BALR 14,15 - A 3,=F'-400' ==> orig_year - LA 15,470(0,0) - CR 3,15 ==> orig_year - BH @@L5 -@@L20 EQU * - LA 2,70(0,0) - CR 3,2 ==> orig_year - BNH @@L6 - LR 6,2 ==> year - CR 2,3 ==> year,orig_year - BNL @@L14 -@@L13 EQU * - LA 2,104(,13) - ST 2,88(13) - LR 15,6 ==> year - A 15,=F'1900' - LR 4,15 - SRDA 4,32 - LA 2,400(0,0) - DR 4,2 - LTR 4,4 - BE @@L12 - LR 2,15 - N 2,=F'3' - LTR 2,2 - BNE @@L10 - LR 8,15 - SRDA 8,32 - LA 15,100(0,0) - DR 8,15 - LTR 8,8 - BE @@L10 -@@L12 EQU * - LA 2,4(0,0) - B @@L11 -@@L10 EQU * - SLR 2,2 -@@L11 EQU * - L 15,=A(@@2) - L 2,0(2,15) ==> length_of_year - ST 2,92(13) - LA 2,104(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64AI32) - BALR 14,15 - A 6,=F'1' ==> year - CR 6,3 ==> year,orig_year - BNL @@L14 - B @@L13 -@@L6 EQU * - LA 2,69(0,0) - CR 3,2 ==> orig_year - BH @@L14 - DS 0H year < 70 - indicate failure - LA 2,112(,13) - ST 2,88(13) - MVC 92(4,13),=F'1' - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64SI32) - BALR 14,15 - L 3,120(13) - MVC 0(8,3),112(13) ==> - B @@L1 -@@L14 EQU * - SLR 4,4 - A 3,=F'1900' - ST 3,128(13) - L 8,128(13) - L 9,4+128(13) - SRDA 8,32 - LA 15,400(0,0) - DR 8,15 - LTR 8,8 - BE @@L17 - LR 2,3 - N 2,=F'3' - LTR 2,2 - BNE @@L16 - ST 3,136(13) - L 2,136(13) - L 3,4+136(13) - SRDA 2,32 - LA 5,100(0,0) - DR 2,5 - LTR 2,2 - BE @@L16 -@@L17 EQU * - LA 4,1(0,0) -@@L16 EQU * - ST 4,88(13) - MVC 92(4,13),16(7) ==> .tm_mon - LA 1,88(,13) - L 15,=V(TM64JDBM) - BALR 14,15 - LA 2,104(,13) - ST 2,88(13) - ST 15,92(13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64AI32) - BALR 14,15 - LA 2,104(,13) - ST 2,88(13) - L 2,12(7) ==> .tm_mday - BCTR 2,0 - ST 2,92(13) - LA 2,104(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64AI32) - BALR 14,15 - LA 2,104(,13) - ST 2,88(13) - MVC 92(4,13),=F'86400' - LA 2,112(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64MI32) - BALR 14,15 - LA 2,112(,13) - ST 2,88(13) - L 2,8(7) ==> .tm_hour - MH 2,=H'3600' - ST 2,92(13) - LA 2,112(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64AI32) - BALR 14,15 - LA 2,112(,13) - ST 2,88(13) - L 2,4(7) ==> .tm_min - SLL 2,4 - S 2,4(7) ==> .tm_min - SLL 2,2 - ST 2,92(13) - LA 2,112(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64AI32) - BALR 14,15 - LA 2,112(,13) - ST 2,88(13) - MVC 92(4,13),0(7) ==> .tm_sec - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64AI32) - BALR 14,15 -@@L18 EQU * - L 8,120(13) - MVC 0(8,8),112(13) ==> -@@L1 EQU * - L 15,120(13) -* Function 'timegm64' epilogue - PDPEPIL -* Function 'timegm64' literal pool - DS 0D - LTORG -* Function 'timegm64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/time64/tm64time.c b/src/crent370/time64/tm64time.c deleted file mode 100644 index c898e3e..0000000 --- a/src/crent370/time64/tm64time.c +++ /dev/null @@ -1,19 +0,0 @@ -#include -#include -#include -#include - -__asm__("\n&FUNC SETC 'time64'"); -time64_t time64(time64_t *timer) -{ - time64_t tt; - - tt.u64 = clock64(); - - __64_div_u32(&tt, CLOCKS_PER_SEC, &tt); /* scale to seconds */ - - if (timer) *timer = tt; - - return tt; -} - diff --git a/src/crent370/time64/tm64time.o b/src/crent370/time64/tm64time.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/time64/tm64time.s b/src/crent370/time64/tm64time.s deleted file mode 100644 index 80c9cce..0000000 --- a/src/crent370/time64/tm64time.s +++ /dev/null @@ -1,69 +0,0 @@ - TITLE '/home/projects/crent370/time64/tm64time.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/time64 -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'time64' -* Program text area - DS 0F - EJECT -* external function 'time64' prologue -* frame base=88, local stack=16, call args=16 -&FUNC SETC 'time64' -TM64TIME PDPPRLG CINDEX=0,FRAME=120,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'time64' code - LR 3,0 - L 4,0(11) ==> timer - LA 0,104(,13) - LA 1,88(,13) - L 15,=V(TM64CLCK) - BALR 14,15 - MVC 112(8,13),104(13) - LA 2,112(,13) - ST 2,88(13) - MVC 92(4,13),=F'1000' - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64DU32) - BALR 14,15 - LTR 4,4 ==> timer - BE @@L2 - MVC 0(8,4),112(13) ==> timer -@@L2 EQU * - MVC 0(8,3),112(13) ==> - LR 15,3 -* Function 'time64' epilogue - PDPEPIL -* Function 'time64' literal pool - DS 0D - LTORG -* Function 'time64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/time64/tm64uclk.c b/src/crent370/time64/tm64uclk.c deleted file mode 100644 index 9963601..0000000 --- a/src/crent370/time64/tm64uclk.c +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include -#include -#include - -__asm__("\n&FUNC SETC 'uclock64'"); -uclock64_t uclock64(void) -{ - uclock64_t clock; - -__asm__("LA\t2,%0\tget address of 8 byte work area\n\t" - "STCK\t0(2)\tstore clock into work area\n\t" - : "=m" (clock) : : "2"); - - /* make Jan 1 1900 (STCK) relative to Jan 1 1970 (unix epoch) */ - clock -= 0x7D91048BCA000000ULL; /* STCK value for Jan 1 1970 */ - - /* convert to microseconds (bits 0-51==number of microseconds) */ - clock >>= 12; /* convert to microseconds (1 us = .000001 sec) */ - - return clock; -} - diff --git a/src/crent370/time64/tm64uclk.o b/src/crent370/time64/tm64uclk.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/time64/tm64uclk.s b/src/crent370/time64/tm64uclk.s deleted file mode 100644 index 0a953b3..0000000 --- a/src/crent370/time64/tm64uclk.s +++ /dev/null @@ -1,68 +0,0 @@ - TITLE '/home/projects/crent370/time64/tm64uclk.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/time64 -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'uclock64' -* Program text area - DS 0F - EJECT -* external function 'uclock64' prologue -* frame base=88, local stack=8, call args=0 -&FUNC SETC 'uclock64' -TM64UCLK PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'uclock64' code - LR 15,0 - LA 2,88(13) get address of 8 byte work area - STCK 0(2) store clock into work area - - L 4,88(13) - L 5,4+88(13) - LR 3,5 - A 3,=F'905969664' - LA 6,1(0,0) - CLR 3,5 - BH @@L2 - SLR 6,6 -@@L2 EQU * - LR 2,4 - A 2,=F'-2106655883' - SR 2,6 - SRDL 2,12 - ST 2,0(15) ==> - ST 3,4+0(15) ==> -* Function 'uclock64' epilogue - PDPEPIL -* Function 'uclock64' literal pool - DS 0D - LTORG -* Function 'uclock64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/time64/tm64ucti.c b/src/crent370/time64/tm64ucti.c deleted file mode 100644 index 41accdc..0000000 --- a/src/crent370/time64/tm64ucti.c +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include -#include -#include -#include -#include "__time64.h" - -__asm__("\n&FUNC SETC 'uctime64'"); -char *uctime64( const utime64_t* utime ) { - time64_t time; - - /* convert 64 bit useconds (utime) to 64 bit seconds (time) value */ - __64_div_u32((utime64_t *)utime, 1000000, &time); - - return asctime64(localtime64(&time)); -} - diff --git a/src/crent370/time64/tm64ucti.o b/src/crent370/time64/tm64ucti.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/time64/tm64ucti.s b/src/crent370/time64/tm64ucti.s deleted file mode 100644 index a5e5c69..0000000 --- a/src/crent370/time64/tm64ucti.s +++ /dev/null @@ -1,65 +0,0 @@ - TITLE '/home/projects/crent370/time64/tm64ucti.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/time64 -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'uctime64' -* Program text area - DS 0F - EJECT -* external function 'uctime64' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'uctime64' -TM64UCTI PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'uctime64' code - MVC 88(4,13),0(11) ==> utime - MVC 92(4,13),=F'1000000' - LA 2,104(,13) - ST 2,96(13) - LA 1,88(,13) - L 15,=V(@@64DU32) - BALR 14,15 - LA 2,104(,13) - ST 2,88(13) - LA 1,88(,13) - L 15,=V(TM64LTM) - BALR 14,15 - ST 15,88(13) - LA 1,88(,13) - L 15,=V(TM64ASC) - BALR 14,15 -* Function 'uctime64' epilogue - PDPEPIL -* Function 'uctime64' literal pool - DS 0D - LTORG -* Function 'uctime64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/time64/tm64ugmt.c b/src/crent370/time64/tm64ugmt.c deleted file mode 100644 index 6382b10..0000000 --- a/src/crent370/time64/tm64ugmt.c +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include -#include -#include -#include "__time64.h" -#include "mvssupa.h" -#include "clibcrt.h" - -struct tm *ugmtime64(const utime64_t *utimer) -{ - CLIBCRT *crt = __crtget(); - struct tm *tms = (struct tm*)crt->crttms; - time64_t timer; - - __64_div_u32((utime64_t *)utimer, 1000000, &timer); - - return gmtime64_r(&timer, tms); -} - diff --git a/src/crent370/time64/tm64ugmt.o b/src/crent370/time64/tm64ugmt.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/time64/tm64ugmt.s b/src/crent370/time64/tm64ugmt.s deleted file mode 100644 index 2d7c020..0000000 --- a/src/crent370/time64/tm64ugmt.s +++ /dev/null @@ -1,65 +0,0 @@ - TITLE '/home/projects/crent370/time64/tm64ugmt.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/time64 -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'ugmtime64' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'ugmtime64' -TM64UGMT PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ugmtime64' code - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - LR 2,15 ==> crt - A 2,=F'296' ==> tms - MVC 88(4,13),0(11) ==> utimer - MVC 92(4,13),=F'1000000' - LA 3,104(,13) - ST 3,96(13) - LA 1,88(,13) - L 15,=V(@@64DU32) - BALR 14,15 - LA 3,104(,13) - ST 3,88(13) - ST 2,92(13) ==> tms - LA 1,88(,13) - L 15,=V(TM64GMTR) - BALR 14,15 -* Function 'ugmtime64' epilogue - PDPEPIL -* Function 'ugmtime64' literal pool - DS 0D - LTORG -* Function 'ugmtime64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/time64/tm64ultm.c b/src/crent370/time64/tm64ultm.c deleted file mode 100644 index 4dc1c2d..0000000 --- a/src/crent370/time64/tm64ultm.c +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include -#include -#include -#include "__time64.h" -#include "mvssupa.h" -#include "clibcrt.h" - -struct tm *ulocaltime64(const utime64_t *utimer) -{ - CLIBCRT *crt = __crtget(); - struct tm *tms = (struct tm*)crt->crttms; - time64_t timer; - - __64_div_u32((utime64_t *)utimer, 1000000, &timer); - - return localtime64_r(&timer, tms); -} - diff --git a/src/crent370/time64/tm64ultm.o b/src/crent370/time64/tm64ultm.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/time64/tm64ultm.s b/src/crent370/time64/tm64ultm.s deleted file mode 100644 index 0965f1a..0000000 --- a/src/crent370/time64/tm64ultm.s +++ /dev/null @@ -1,65 +0,0 @@ - TITLE '/home/projects/crent370/time64/tm64ultm.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/time64 -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* -* Program text area - DS 0F - EJECT -* external function 'ulocaltime64' prologue -* frame base=88, local stack=8, call args=16 -&FUNC SETC 'ulocaltime64' -TM64ULTM PDPPRLG CINDEX=0,FRAME=112,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'ulocaltime64' code - LA 1,88(,13) - L 15,=V(@@CRTGET) - BALR 14,15 - LR 2,15 ==> crt - A 2,=F'296' ==> tms - MVC 88(4,13),0(11) ==> utimer - MVC 92(4,13),=F'1000000' - LA 3,104(,13) - ST 3,96(13) - LA 1,88(,13) - L 15,=V(@@64DU32) - BALR 14,15 - LA 3,104(,13) - ST 3,88(13) - ST 2,92(13) ==> tms - LA 1,88(,13) - L 15,=V(TM64LTMR) - BALR 14,15 -* Function 'ulocaltime64' epilogue - PDPEPIL -* Function 'ulocaltime64' literal pool - DS 0D - LTORG -* Function 'ulocaltime64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END diff --git a/src/crent370/time64/tm64utim.c b/src/crent370/time64/tm64utim.c deleted file mode 100644 index c0be51b..0000000 --- a/src/crent370/time64/tm64utim.c +++ /dev/null @@ -1,17 +0,0 @@ -#include -#include -#include -#include - -__asm__("\n&FUNC SETC 'utime64'"); -utime64_t utime64(utime64_t *utimer) -{ - utime64_t tt; - - tt.u64 = uclock64(); - - if (utimer) *utimer = tt; - - return tt; -} - diff --git a/src/crent370/time64/tm64utim.o b/src/crent370/time64/tm64utim.o deleted file mode 100644 index e69de29..0000000 diff --git a/src/crent370/time64/tm64utim.s b/src/crent370/time64/tm64utim.s deleted file mode 100644 index 7664f06..0000000 --- a/src/crent370/time64/tm64utim.s +++ /dev/null @@ -1,65 +0,0 @@ - TITLE '/home/projects/crent370/time64/tm64utim.c' - COPY PDPTOP - CSECT -* GNU C version 3.2.3 - c2asm370 version 1.0 (mvs) -* compiled by GNU C version 11.4.0. -* -* options passed: -lang-c -I. -I/home/projects/crent370/time64 -* -I/home/projects/crent370/include -iprefix -D__GNUC__=3 -* -D__GNUC_MINOR__=2 -D__GNUC_PATCHLEVEL__=3 -D__GXX_ABI_VERSION=102 -* -D__GCC__ -D__MVS__ -D__GCC__ -D__MVS__ -Asystem=mvs -Acpu=i370 -* -Amachine=i370 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -trigraphs -O1 -* -fverbose-asm -* -* options enabled: -fdefer-pop -fthread-jumps -fpeephole -* -ffunction-cse -fkeep-static-consts -fpcc-struct-return -fgcse-lm -* -fgcse-sm -fsched-interblock -fsched-spec -fbranch-count-reg -* -fcprop-registers -fcommon -fverbose-asm -fgnu-linker -* -fargument-alias -fmerge-constants -fident -* -fguess-branch-probability -fmath-errno -ftrapping-math -* -mchar-instructions -mno-pickax -mno-constants-first -* - -&FUNC SETC 'utime64' -* Program text area - DS 0F - EJECT -* external function 'utime64' prologue -* frame base=88, local stack=8, call args=0 -&FUNC SETC 'utime64' -TM64UTIM PDPPRLG CINDEX=0,FRAME=96,BASER=12,ENTRY=YES - B @@FEN0 - LTORG -@@FEN0 EQU * - DROP 12 - BALR 12,0 - USING *,12 -@@PG0 EQU * - LR 11,1 - L 10,=A(@@PGT0) -* Function 'utime64' code - LR 4,0 - L 5,0(11) ==> utimer - LA 0,88(,13) - LA 1,88(,13) - L 15,=V(TM64UCLK) - BALR 14,15 - L 2,88(13) ==> tt - L 3,4+88(13) ==> tt - LTR 5,5 ==> utimer - BE @@L2 - ST 2,0(5) ==> tt,utimer - ST 3,4+0(5) ==> tt,utimer -@@L2 EQU * - ST 2,0(4) ==> tt, - ST 3,4+0(4) ==> tt, - LR 15,4 -* Function 'utime64' epilogue - PDPEPIL -* Function 'utime64' literal pool - DS 0D - LTORG -* Function 'utime64' page table -@@PGT0 DS 0F - DC A(@@PG0) - END