laag-nasm 2.13.03.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +57 -0
- data/LICENSE.txt +29 -0
- data/README.org +34 -0
- data/ext/laag/nasm/extconf.rb +16 -0
- data/laag-nasm.gemspec +20 -0
- data/lib/laag/nasm.rb +29 -0
- data/patches/Makefile.in.patch +13 -0
- data/vendor/repo.or.cz/nasm/.gitignore +102 -0
- data/vendor/repo.or.cz/nasm/AUTHORS +137 -0
- data/vendor/repo.or.cz/nasm/CHANGES +2 -0
- data/vendor/repo.or.cz/nasm/ChangeLog +2905 -0
- data/vendor/repo.or.cz/nasm/INSTALL +102 -0
- data/vendor/repo.or.cz/nasm/LICENSE +29 -0
- data/vendor/repo.or.cz/nasm/Makefile.in +855 -0
- data/vendor/repo.or.cz/nasm/Mkfiles/README +46 -0
- data/vendor/repo.or.cz/nasm/Mkfiles/msvc.mak +732 -0
- data/vendor/repo.or.cz/nasm/Mkfiles/openwcom.mak +706 -0
- data/vendor/repo.or.cz/nasm/README +23 -0
- data/vendor/repo.or.cz/nasm/SubmittingPatches +116 -0
- data/vendor/repo.or.cz/nasm/TODO +376 -0
- data/vendor/repo.or.cz/nasm/aclocal.m4 +139 -0
- data/vendor/repo.or.cz/nasm/asm/assemble.c +2957 -0
- data/vendor/repo.or.cz/nasm/asm/assemble.h +54 -0
- data/vendor/repo.or.cz/nasm/asm/directiv.c +566 -0
- data/vendor/repo.or.cz/nasm/asm/directiv.dat +92 -0
- data/vendor/repo.or.cz/nasm/asm/error.c +202 -0
- data/vendor/repo.or.cz/nasm/asm/eval.c +1014 -0
- data/vendor/repo.or.cz/nasm/asm/eval.h +49 -0
- data/vendor/repo.or.cz/nasm/asm/exprdump.c +79 -0
- data/vendor/repo.or.cz/nasm/asm/exprlib.c +200 -0
- data/vendor/repo.or.cz/nasm/asm/float.c +952 -0
- data/vendor/repo.or.cz/nasm/asm/float.h +54 -0
- data/vendor/repo.or.cz/nasm/asm/labels.c +540 -0
- data/vendor/repo.or.cz/nasm/asm/listing.c +346 -0
- data/vendor/repo.or.cz/nasm/asm/listing.h +113 -0
- data/vendor/repo.or.cz/nasm/asm/nasm.c +1855 -0
- data/vendor/repo.or.cz/nasm/asm/parser.c +1167 -0
- data/vendor/repo.or.cz/nasm/asm/parser.h +45 -0
- data/vendor/repo.or.cz/nasm/asm/phash.pl +109 -0
- data/vendor/repo.or.cz/nasm/asm/pptok.dat +96 -0
- data/vendor/repo.or.cz/nasm/asm/pptok.pl +271 -0
- data/vendor/repo.or.cz/nasm/asm/pragma.c +218 -0
- data/vendor/repo.or.cz/nasm/asm/preproc-nop.c +188 -0
- data/vendor/repo.or.cz/nasm/asm/preproc.c +5459 -0
- data/vendor/repo.or.cz/nasm/asm/preproc.h +55 -0
- data/vendor/repo.or.cz/nasm/asm/quote.c +479 -0
- data/vendor/repo.or.cz/nasm/asm/quote.h +44 -0
- data/vendor/repo.or.cz/nasm/asm/rdstrnum.c +68 -0
- data/vendor/repo.or.cz/nasm/asm/segalloc.c +51 -0
- data/vendor/repo.or.cz/nasm/asm/stdscan.c +345 -0
- data/vendor/repo.or.cz/nasm/asm/stdscan.h +49 -0
- data/vendor/repo.or.cz/nasm/asm/strfunc.c +359 -0
- data/vendor/repo.or.cz/nasm/asm/tokens.dat +135 -0
- data/vendor/repo.or.cz/nasm/asm/tokhash.pl +284 -0
- data/vendor/repo.or.cz/nasm/autogen.sh +9 -0
- data/vendor/repo.or.cz/nasm/common/common.c +122 -0
- data/vendor/repo.or.cz/nasm/config/msvc.h +192 -0
- data/vendor/repo.or.cz/nasm/config/unknown.h +51 -0
- data/vendor/repo.or.cz/nasm/config/watcom.h +74 -0
- data/vendor/repo.or.cz/nasm/configure.ac +253 -0
- data/vendor/repo.or.cz/nasm/contrib/MSVC6.txt +25 -0
- data/vendor/repo.or.cz/nasm/contrib/VSrules/nasm.README +16 -0
- data/vendor/repo.or.cz/nasm/contrib/VSrules/nasm.rules +79 -0
- data/vendor/repo.or.cz/nasm/disasm/disasm.c +1735 -0
- data/vendor/repo.or.cz/nasm/disasm/disasm.h +49 -0
- data/vendor/repo.or.cz/nasm/disasm/ndisasm.c +397 -0
- data/vendor/repo.or.cz/nasm/disasm/sync.c +132 -0
- data/vendor/repo.or.cz/nasm/disasm/sync.h +45 -0
- data/vendor/repo.or.cz/nasm/doc/Makefile.in +86 -0
- data/vendor/repo.or.cz/nasm/doc/README +20 -0
- data/vendor/repo.or.cz/nasm/doc/afmmetrics.ph +102 -0
- data/vendor/repo.or.cz/nasm/doc/changes.src +2588 -0
- data/vendor/repo.or.cz/nasm/doc/findfont.ph +180 -0
- data/vendor/repo.or.cz/nasm/doc/genps.pl +1294 -0
- data/vendor/repo.or.cz/nasm/doc/inslist.pl +108 -0
- data/vendor/repo.or.cz/nasm/doc/internal.doc +290 -0
- data/vendor/repo.or.cz/nasm/doc/local.css +1 -0
- data/vendor/repo.or.cz/nasm/doc/nasmdoc.css +150 -0
- data/vendor/repo.or.cz/nasm/doc/nasmdoc.src +8309 -0
- data/vendor/repo.or.cz/nasm/doc/nasmlogo.eps +212 -0
- data/vendor/repo.or.cz/nasm/doc/nasmlogw.png +0 -0
- data/vendor/repo.or.cz/nasm/doc/psfonts.ph +53 -0
- data/vendor/repo.or.cz/nasm/doc/pspdf.pl +98 -0
- data/vendor/repo.or.cz/nasm/doc/pswidth.ph +25 -0
- data/vendor/repo.or.cz/nasm/doc/rdsrc.pl +1111 -0
- data/vendor/repo.or.cz/nasm/doc/ttfmetrics.ph +63 -0
- data/vendor/repo.or.cz/nasm/headers/c +33 -0
- data/vendor/repo.or.cz/nasm/headers/doc +33 -0
- data/vendor/repo.or.cz/nasm/headers/mac +33 -0
- data/vendor/repo.or.cz/nasm/headers/perl +33 -0
- data/vendor/repo.or.cz/nasm/include/compiler.h +277 -0
- data/vendor/repo.or.cz/nasm/include/disp8.h +45 -0
- data/vendor/repo.or.cz/nasm/include/error.h +135 -0
- data/vendor/repo.or.cz/nasm/include/hashtbl.h +85 -0
- data/vendor/repo.or.cz/nasm/include/iflag.h +173 -0
- data/vendor/repo.or.cz/nasm/include/insns.h +76 -0
- data/vendor/repo.or.cz/nasm/include/labels.h +60 -0
- data/vendor/repo.or.cz/nasm/include/md5.h +21 -0
- data/vendor/repo.or.cz/nasm/include/nasm.h +1246 -0
- data/vendor/repo.or.cz/nasm/include/nasmint.h +219 -0
- data/vendor/repo.or.cz/nasm/include/nasmlib.h +524 -0
- data/vendor/repo.or.cz/nasm/include/opflags.h +271 -0
- data/vendor/repo.or.cz/nasm/include/perfhash.h +52 -0
- data/vendor/repo.or.cz/nasm/include/raa.h +46 -0
- data/vendor/repo.or.cz/nasm/include/rbtree.h +51 -0
- data/vendor/repo.or.cz/nasm/include/rdoff.h +169 -0
- data/vendor/repo.or.cz/nasm/include/saa.h +94 -0
- data/vendor/repo.or.cz/nasm/include/strlist.h +55 -0
- data/vendor/repo.or.cz/nasm/include/tables.h +70 -0
- data/vendor/repo.or.cz/nasm/include/ver.h +47 -0
- data/vendor/repo.or.cz/nasm/install-sh +250 -0
- data/vendor/repo.or.cz/nasm/macros/altreg.mac +107 -0
- data/vendor/repo.or.cz/nasm/macros/fp.mac +54 -0
- data/vendor/repo.or.cz/nasm/macros/ifunc.mac +48 -0
- data/vendor/repo.or.cz/nasm/macros/macros.pl +294 -0
- data/vendor/repo.or.cz/nasm/macros/smartalign.mac +189 -0
- data/vendor/repo.or.cz/nasm/macros/standard.mac +226 -0
- data/vendor/repo.or.cz/nasm/misc/Doxyfile +752 -0
- data/vendor/repo.or.cz/nasm/misc/Nindent +18 -0
- data/vendor/repo.or.cz/nasm/misc/README +2 -0
- data/vendor/repo.or.cz/nasm/misc/c16.mac +82 -0
- data/vendor/repo.or.cz/nasm/misc/c32.mac +52 -0
- data/vendor/repo.or.cz/nasm/misc/crcgen.c +44 -0
- data/vendor/repo.or.cz/nasm/misc/exebin.mac +57 -0
- data/vendor/repo.or.cz/nasm/misc/exebin2.mac +114 -0
- data/vendor/repo.or.cz/nasm/misc/fmtinsns.pl +40 -0
- data/vendor/repo.or.cz/nasm/misc/genfma.pl +63 -0
- data/vendor/repo.or.cz/nasm/misc/hints.txt +26 -0
- data/vendor/repo.or.cz/nasm/misc/magic +6 -0
- data/vendor/repo.or.cz/nasm/misc/myC32.mac +121 -0
- data/vendor/repo.or.cz/nasm/misc/nasm.sl +320 -0
- data/vendor/repo.or.cz/nasm/misc/nasmstab +296 -0
- data/vendor/repo.or.cz/nasm/misc/omfdump.c +517 -0
- data/vendor/repo.or.cz/nasm/misc/pmw.bat +9 -0
- data/vendor/repo.or.cz/nasm/misc/proc32.ash +441 -0
- data/vendor/repo.or.cz/nasm/misc/scitech.mac +1223 -0
- data/vendor/repo.or.cz/nasm/misc/xcrcgen.c +80 -0
- data/vendor/repo.or.cz/nasm/nasm.spec.in +83 -0
- data/vendor/repo.or.cz/nasm/nasm.spec.sed +3 -0
- data/vendor/repo.or.cz/nasm/nasm.txt +306 -0
- data/vendor/repo.or.cz/nasm/nasmlib/badenum.c +43 -0
- data/vendor/repo.or.cz/nasm/nasmlib/bsi.c +77 -0
- data/vendor/repo.or.cz/nasm/nasmlib/crc64.c +189 -0
- data/vendor/repo.or.cz/nasm/nasmlib/file.c +259 -0
- data/vendor/repo.or.cz/nasm/nasmlib/file.h +128 -0
- data/vendor/repo.or.cz/nasm/nasmlib/filename.c +69 -0
- data/vendor/repo.or.cz/nasm/nasmlib/hashtbl.c +232 -0
- data/vendor/repo.or.cz/nasm/nasmlib/ilog2.c +168 -0
- data/vendor/repo.or.cz/nasm/nasmlib/malloc.c +108 -0
- data/vendor/repo.or.cz/nasm/nasmlib/md5c.c +247 -0
- data/vendor/repo.or.cz/nasm/nasmlib/mmap.c +139 -0
- data/vendor/repo.or.cz/nasm/nasmlib/path.c +186 -0
- data/vendor/repo.or.cz/nasm/nasmlib/perfhash.c +55 -0
- data/vendor/repo.or.cz/nasm/nasmlib/perfhash.pl +362 -0
- data/vendor/repo.or.cz/nasm/nasmlib/raa.c +173 -0
- data/vendor/repo.or.cz/nasm/nasmlib/rbtree.c +119 -0
- data/vendor/repo.or.cz/nasm/nasmlib/readnum.c +172 -0
- data/vendor/repo.or.cz/nasm/nasmlib/realpath.c +135 -0
- data/vendor/repo.or.cz/nasm/nasmlib/saa.c +431 -0
- data/vendor/repo.or.cz/nasm/nasmlib/srcfile.c +128 -0
- data/vendor/repo.or.cz/nasm/nasmlib/string.c +242 -0
- data/vendor/repo.or.cz/nasm/nasmlib/strlist.c +100 -0
- data/vendor/repo.or.cz/nasm/nasmlib/ver.c +51 -0
- data/vendor/repo.or.cz/nasm/nasmlib/zerobuf.c +42 -0
- data/vendor/repo.or.cz/nasm/ndisasm.txt +94 -0
- data/vendor/repo.or.cz/nasm/nsis/NASMMultiUser.nsh +478 -0
- data/vendor/repo.or.cz/nasm/nsis/getpearch.pl +76 -0
- data/vendor/repo.or.cz/nasm/nsis/nasm-un.ico +0 -0
- data/vendor/repo.or.cz/nasm/nsis/nasm.ico +0 -0
- data/vendor/repo.or.cz/nasm/nsis/nasm.nsi +241 -0
- data/vendor/repo.or.cz/nasm/output/codeview.c +814 -0
- data/vendor/repo.or.cz/nasm/output/dwarf.h +566 -0
- data/vendor/repo.or.cz/nasm/output/elf.h +537 -0
- data/vendor/repo.or.cz/nasm/output/legacy.c +112 -0
- data/vendor/repo.or.cz/nasm/output/nulldbg.c +93 -0
- data/vendor/repo.or.cz/nasm/output/nullout.c +51 -0
- data/vendor/repo.or.cz/nasm/output/outaout.c +954 -0
- data/vendor/repo.or.cz/nasm/output/outaout.mac +37 -0
- data/vendor/repo.or.cz/nasm/output/outas86.c +650 -0
- data/vendor/repo.or.cz/nasm/output/outas86.mac +37 -0
- data/vendor/repo.or.cz/nasm/output/outbin.c +1713 -0
- data/vendor/repo.or.cz/nasm/output/outbin.mac +40 -0
- data/vendor/repo.or.cz/nasm/output/outcoff.c +1242 -0
- data/vendor/repo.or.cz/nasm/output/outcoff.mac +43 -0
- data/vendor/repo.or.cz/nasm/output/outdbg.c +425 -0
- data/vendor/repo.or.cz/nasm/output/outelf.c +3370 -0
- data/vendor/repo.or.cz/nasm/output/outelf.h +156 -0
- data/vendor/repo.or.cz/nasm/output/outelf.mac +41 -0
- data/vendor/repo.or.cz/nasm/output/outform.c +120 -0
- data/vendor/repo.or.cz/nasm/output/outform.h +379 -0
- data/vendor/repo.or.cz/nasm/output/outieee.c +1528 -0
- data/vendor/repo.or.cz/nasm/output/outlib.c +58 -0
- data/vendor/repo.or.cz/nasm/output/outlib.h +63 -0
- data/vendor/repo.or.cz/nasm/output/outmacho.c +2387 -0
- data/vendor/repo.or.cz/nasm/output/outmacho.mac +49 -0
- data/vendor/repo.or.cz/nasm/output/outobj.c +2725 -0
- data/vendor/repo.or.cz/nasm/output/outobj.mac +49 -0
- data/vendor/repo.or.cz/nasm/output/outrdf.mac +40 -0
- data/vendor/repo.or.cz/nasm/output/outrdf2.c +791 -0
- data/vendor/repo.or.cz/nasm/output/outrdf2.mac +43 -0
- data/vendor/repo.or.cz/nasm/output/pecoff.h +532 -0
- data/vendor/repo.or.cz/nasm/output/stabs.h +144 -0
- data/vendor/repo.or.cz/nasm/perllib/crc64.ph +158 -0
- data/vendor/repo.or.cz/nasm/perllib/gensv.pl +34 -0
- data/vendor/repo.or.cz/nasm/perllib/phash.ph +200 -0
- data/vendor/repo.or.cz/nasm/perllib/random_sv_vectors.ph +67 -0
- data/vendor/repo.or.cz/nasm/rdoff/README +185 -0
- data/vendor/repo.or.cz/nasm/rdoff/collectn.c +44 -0
- data/vendor/repo.or.cz/nasm/rdoff/collectn.h +22 -0
- data/vendor/repo.or.cz/nasm/rdoff/doc/Makefile +37 -0
- data/vendor/repo.or.cz/nasm/rdoff/doc/rdoff.texi +137 -0
- data/vendor/repo.or.cz/nasm/rdoff/doc/v1-v2.txt +62 -0
- data/vendor/repo.or.cz/nasm/rdoff/hash.c +122 -0
- data/vendor/repo.or.cz/nasm/rdoff/hash.h +17 -0
- data/vendor/repo.or.cz/nasm/rdoff/ldrdf.1 +41 -0
- data/vendor/repo.or.cz/nasm/rdoff/ldrdf.c +1395 -0
- data/vendor/repo.or.cz/nasm/rdoff/ldsegs.h +59 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdf2bin.1 +65 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdf2bin.c +431 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdf2com.1 +1 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdf2ihx.1 +1 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdf2ith.1 +1 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdf2srec.1 +1 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdfdump.1 +24 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdfdump.c +347 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdflib.1 +39 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdflib.c +434 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdfload.c +213 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdfload.h +29 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdfutils.h +165 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdlar.c +492 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdlar.h +34 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdlib.c +290 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdlib.h +62 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdoff.c +621 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdx.1 +21 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdx.c +90 -0
- data/vendor/repo.or.cz/nasm/rdoff/segtab.c +172 -0
- data/vendor/repo.or.cz/nasm/rdoff/segtab.h +45 -0
- data/vendor/repo.or.cz/nasm/rdoff/symtab.c +159 -0
- data/vendor/repo.or.cz/nasm/rdoff/symtab.h +55 -0
- data/vendor/repo.or.cz/nasm/rdoff/test/Makefile +10 -0
- data/vendor/repo.or.cz/nasm/rdoff/test/makelib.sh +14 -0
- data/vendor/repo.or.cz/nasm/rdoff/test/rdfseg.asm +20 -0
- data/vendor/repo.or.cz/nasm/rdoff/test/rdfseg2.asm +12 -0
- data/vendor/repo.or.cz/nasm/rdoff/test/rdftest1.asm +54 -0
- data/vendor/repo.or.cz/nasm/rdoff/test/rdftest2.asm +33 -0
- data/vendor/repo.or.cz/nasm/rdoff/test/rdtlib.asm +48 -0
- data/vendor/repo.or.cz/nasm/rdoff/test/rdtmain.asm +47 -0
- data/vendor/repo.or.cz/nasm/rdoff/test/testlib.asm +18 -0
- data/vendor/repo.or.cz/nasm/stdlib/snprintf.c +29 -0
- data/vendor/repo.or.cz/nasm/stdlib/strlcpy.c +51 -0
- data/vendor/repo.or.cz/nasm/stdlib/strnlen.c +46 -0
- data/vendor/repo.or.cz/nasm/stdlib/vsnprintf.c +51 -0
- data/vendor/repo.or.cz/nasm/test/Makefile +106 -0
- data/vendor/repo.or.cz/nasm/test/_file_.asm +5 -0
- data/vendor/repo.or.cz/nasm/test/_version.asm +2 -0
- data/vendor/repo.or.cz/nasm/test/a32offs.asm +9 -0
- data/vendor/repo.or.cz/nasm/test/absolute.asm +40 -0
- data/vendor/repo.or.cz/nasm/test/addr64x.asm +18 -0
- data/vendor/repo.or.cz/nasm/test/align13.asm +19 -0
- data/vendor/repo.or.cz/nasm/test/align13s.asm +20 -0
- data/vendor/repo.or.cz/nasm/test/alonesym-obj.asm +166 -0
- data/vendor/repo.or.cz/nasm/test/andbyte.asm +15 -0
- data/vendor/repo.or.cz/nasm/test/aoutso.asm +99 -0
- data/vendor/repo.or.cz/nasm/test/aouttest.asm +86 -0
- data/vendor/repo.or.cz/nasm/test/aouttest.c +36 -0
- data/vendor/repo.or.cz/nasm/test/avx.asm +46 -0
- data/vendor/repo.or.cz/nasm/test/avx005.asm +529 -0
- data/vendor/repo.or.cz/nasm/test/avx2.asm +1608 -0
- data/vendor/repo.or.cz/nasm/test/avx512cd.asm +106 -0
- data/vendor/repo.or.cz/nasm/test/avx512er.asm +144 -0
- data/vendor/repo.or.cz/nasm/test/avx512f.asm +7000 -0
- data/vendor/repo.or.cz/nasm/test/avx512pf.asm +88 -0
- data/vendor/repo.or.cz/nasm/test/bcd.asm +23 -0
- data/vendor/repo.or.cz/nasm/test/binexe.asm +35 -0
- data/vendor/repo.or.cz/nasm/test/bintest.asm +59 -0
- data/vendor/repo.or.cz/nasm/test/bisect.sh +22 -0
- data/vendor/repo.or.cz/nasm/test/br1879590.asm +25 -0
- data/vendor/repo.or.cz/nasm/test/br2003451.asm +17 -0
- data/vendor/repo.or.cz/nasm/test/br2030823.asm +7 -0
- data/vendor/repo.or.cz/nasm/test/br2148476.asm +221 -0
- data/vendor/repo.or.cz/nasm/test/br2222615.asm +19 -0
- data/vendor/repo.or.cz/nasm/test/br2496848.asm +42 -0
- data/vendor/repo.or.cz/nasm/test/br3005117.asm +26 -0
- data/vendor/repo.or.cz/nasm/test/br3026808.asm +20 -0
- data/vendor/repo.or.cz/nasm/test/br3028880.asm +8 -0
- data/vendor/repo.or.cz/nasm/test/br3041451.asm +59 -0
- data/vendor/repo.or.cz/nasm/test/br3058845.asm +14 -0
- data/vendor/repo.or.cz/nasm/test/br3066383.asm +70 -0
- data/vendor/repo.or.cz/nasm/test/br3074517.asm +12 -0
- data/vendor/repo.or.cz/nasm/test/br3092924.asm +25 -0
- data/vendor/repo.or.cz/nasm/test/br3104312.asm +11 -0
- data/vendor/repo.or.cz/nasm/test/br3109604.asm +9 -0
- data/vendor/repo.or.cz/nasm/test/br3174983.asm +9 -0
- data/vendor/repo.or.cz/nasm/test/br3187743.asm +7 -0
- data/vendor/repo.or.cz/nasm/test/br3189064.asm +7 -0
- data/vendor/repo.or.cz/nasm/test/br3200749.asm +9 -0
- data/vendor/repo.or.cz/nasm/test/br3385573.asm +11 -0
- data/vendor/repo.or.cz/nasm/test/br3392252.asm +43 -0
- data/vendor/repo.or.cz/nasm/test/br3392259.asm +8 -0
- data/vendor/repo.or.cz/nasm/test/br3392363.asm +4 -0
- data/vendor/repo.or.cz/nasm/test/br3392392.asm +16 -0
- data/vendor/repo.or.cz/nasm/test/br3392396.asm +5 -0
- data/vendor/repo.or.cz/nasm/test/br3392411.asm +22 -0
- data/vendor/repo.or.cz/nasm/test/br3392418.asm +3 -0
- data/vendor/repo.or.cz/nasm/test/br3392439.asm +25 -0
- data/vendor/repo.or.cz/nasm/test/br3392442.asm +6 -0
- data/vendor/repo.or.cz/nasm/test/br560575.asm +17 -0
- data/vendor/repo.or.cz/nasm/test/br560873.asm +27 -0
- data/vendor/repo.or.cz/nasm/test/br890790.asm +7 -0
- data/vendor/repo.or.cz/nasm/test/br890790_i.asm +1 -0
- data/vendor/repo.or.cz/nasm/test/br978756.asm +7 -0
- data/vendor/repo.or.cz/nasm/test/changed.asm +383 -0
- data/vendor/repo.or.cz/nasm/test/cofftest.asm +85 -0
- data/vendor/repo.or.cz/nasm/test/cofftest.c +35 -0
- data/vendor/repo.or.cz/nasm/test/crc32.asm +37 -0
- data/vendor/repo.or.cz/nasm/test/cv8struc.asm +14 -0
- data/vendor/repo.or.cz/nasm/test/dtbcd.asm +72 -0
- data/vendor/repo.or.cz/nasm/test/elf64so.asm +118 -0
- data/vendor/repo.or.cz/nasm/test/elfso.asm +100 -0
- data/vendor/repo.or.cz/nasm/test/elftest.asm +87 -0
- data/vendor/repo.or.cz/nasm/test/elftest.c +38 -0
- data/vendor/repo.or.cz/nasm/test/elftest64.c +43 -0
- data/vendor/repo.or.cz/nasm/test/elif.asm +39 -0
- data/vendor/repo.or.cz/nasm/test/expimp.asm +90 -0
- data/vendor/repo.or.cz/nasm/test/far64.asm +10 -0
- data/vendor/repo.or.cz/nasm/test/float.asm +186 -0
- data/vendor/repo.or.cz/nasm/test/float8.asm +135 -0
- data/vendor/repo.or.cz/nasm/test/floatb.asm +35 -0
- data/vendor/repo.or.cz/nasm/test/floatexp.asm +382 -0
- data/vendor/repo.or.cz/nasm/test/floatize.asm +19 -0
- data/vendor/repo.or.cz/nasm/test/floattest.asm +28 -0
- data/vendor/repo.or.cz/nasm/test/floatx.asm +525 -0
- data/vendor/repo.or.cz/nasm/test/fpu.asm +127 -0
- data/vendor/repo.or.cz/nasm/test/fwdopt.asm +133 -0
- data/vendor/repo.or.cz/nasm/test/fwdoptpp.asm +150 -0
- data/vendor/repo.or.cz/nasm/test/gas2nasm.py +104 -0
- data/vendor/repo.or.cz/nasm/test/gather.asm +11 -0
- data/vendor/repo.or.cz/nasm/test/gotoff64.asm +25 -0
- data/vendor/repo.or.cz/nasm/test/hexfp.asm +25 -0
- data/vendor/repo.or.cz/nasm/test/hle.asm +19 -0
- data/vendor/repo.or.cz/nasm/test/ifelse.asm +46 -0
- data/vendor/repo.or.cz/nasm/test/ifenv.asm +31 -0
- data/vendor/repo.or.cz/nasm/test/ifmacro.asm +413 -0
- data/vendor/repo.or.cz/nasm/test/iftoken.asm +317 -0
- data/vendor/repo.or.cz/nasm/test/iftoken.pl +32 -0
- data/vendor/repo.or.cz/nasm/test/ilog2.asm +271 -0
- data/vendor/repo.or.cz/nasm/test/imacro.asm +8 -0
- data/vendor/repo.or.cz/nasm/test/imm.asm +23 -0
- data/vendor/repo.or.cz/nasm/test/imm64.asm +61 -0
- data/vendor/repo.or.cz/nasm/test/immwarn.asm +91 -0
- data/vendor/repo.or.cz/nasm/test/imul.asm +117 -0
- data/vendor/repo.or.cz/nasm/test/inc1.asm +6 -0
- data/vendor/repo.or.cz/nasm/test/inc2.asm +8 -0
- data/vendor/repo.or.cz/nasm/test/incbin.asm +7 -0
- data/vendor/repo.or.cz/nasm/test/incbin.data +2 -0
- data/vendor/repo.or.cz/nasm/test/inctest.asm +15 -0
- data/vendor/repo.or.cz/nasm/test/insnlbl.asm +12 -0
- data/vendor/repo.or.cz/nasm/test/invlpga.asm +11 -0
- data/vendor/repo.or.cz/nasm/test/jmp64.asm +19 -0
- data/vendor/repo.or.cz/nasm/test/lar_lsl.asm +124 -0
- data/vendor/repo.or.cz/nasm/test/larlsl.asm +23 -0
- data/vendor/repo.or.cz/nasm/test/lnxhello.asm +54 -0
- data/vendor/repo.or.cz/nasm/test/local.asm +19 -0
- data/vendor/repo.or.cz/nasm/test/loopoffs.asm +12 -0
- data/vendor/repo.or.cz/nasm/test/lwp.asm +213 -0
- data/vendor/repo.or.cz/nasm/test/macro-defaults.asm +64 -0
- data/vendor/repo.or.cz/nasm/test/macroerr.asm +12 -0
- data/vendor/repo.or.cz/nasm/test/macroerr.inc +3 -0
- data/vendor/repo.or.cz/nasm/test/mmxsize.asm +38 -0
- data/vendor/repo.or.cz/nasm/test/movd.asm +12 -0
- data/vendor/repo.or.cz/nasm/test/movd64.asm +15 -0
- data/vendor/repo.or.cz/nasm/test/movimm.asm +28 -0
- data/vendor/repo.or.cz/nasm/test/movnti.asm +10 -0
- data/vendor/repo.or.cz/nasm/test/mpx-64.asm +120 -0
- data/vendor/repo.or.cz/nasm/test/mpx.asm +89 -0
- data/vendor/repo.or.cz/nasm/test/multisection.asm +96 -0
- data/vendor/repo.or.cz/nasm/test/nasmformat.asm +17 -0
- data/vendor/repo.or.cz/nasm/test/new +9 -0
- data/vendor/repo.or.cz/nasm/test/newrdwr.asm +24 -0
- data/vendor/repo.or.cz/nasm/test/nop.asm +17 -0
- data/vendor/repo.or.cz/nasm/test/nullfile.asm +4 -0
- data/vendor/repo.or.cz/nasm/test/objexe.asm +30 -0
- data/vendor/repo.or.cz/nasm/test/objlink.c +33 -0
- data/vendor/repo.or.cz/nasm/test/objtest.asm +85 -0
- data/vendor/repo.or.cz/nasm/test/optimization.asm +104 -0
- data/vendor/repo.or.cz/nasm/test/org.asm +18 -0
- data/vendor/repo.or.cz/nasm/test/paste.asm +12 -0
- data/vendor/repo.or.cz/nasm/test/pcrel.asm +52 -0
- data/vendor/repo.or.cz/nasm/test/perf/label.pl +18 -0
- data/vendor/repo.or.cz/nasm/test/perf/macro.pl +18 -0
- data/vendor/repo.or.cz/nasm/test/perf/token.pl +23 -0
- data/vendor/repo.or.cz/nasm/test/performtest.pl +192 -0
- data/vendor/repo.or.cz/nasm/test/pextrw.asm +3 -0
- data/vendor/repo.or.cz/nasm/test/pinsr16.asm +53 -0
- data/vendor/repo.or.cz/nasm/test/pinsr32.asm +53 -0
- data/vendor/repo.or.cz/nasm/test/pinsr64.asm +68 -0
- data/vendor/repo.or.cz/nasm/test/popcnt.asm +32 -0
- data/vendor/repo.or.cz/nasm/test/ppindirect.asm +42 -0
- data/vendor/repo.or.cz/nasm/test/pragma.asm +12 -0
- data/vendor/repo.or.cz/nasm/test/prefix66.asm +28 -0
- data/vendor/repo.or.cz/nasm/test/ptr.asm +4 -0
- data/vendor/repo.or.cz/nasm/test/pushseg.asm +17 -0
- data/vendor/repo.or.cz/nasm/test/r13.asm +15 -0
- data/vendor/repo.or.cz/nasm/test/radix.asm +54 -0
- data/vendor/repo.or.cz/nasm/test/rdpid.asm +21 -0
- data/vendor/repo.or.cz/nasm/test/reldef.asm +57 -0
- data/vendor/repo.or.cz/nasm/test/relocs.asm +20 -0
- data/vendor/repo.or.cz/nasm/test/riprel.asm +5357 -0
- data/vendor/repo.or.cz/nasm/test/riprel.pl +29 -0
- data/vendor/repo.or.cz/nasm/test/riprel2.asm +11 -0
- data/vendor/repo.or.cz/nasm/test/sha-64.asm +30 -0
- data/vendor/repo.or.cz/nasm/test/sha.asm +31 -0
- data/vendor/repo.or.cz/nasm/test/smartalign16.asm +36 -0
- data/vendor/repo.or.cz/nasm/test/smartalign32.asm +36 -0
- data/vendor/repo.or.cz/nasm/test/smartalign64.asm +36 -0
- data/vendor/repo.or.cz/nasm/test/splitea.asm +11 -0
- data/vendor/repo.or.cz/nasm/test/sreg.asm +65 -0
- data/vendor/repo.or.cz/nasm/test/strlen.asm +5 -0
- data/vendor/repo.or.cz/nasm/test/struc.asm +33 -0
- data/vendor/repo.or.cz/nasm/test/test67.asm +38 -0
- data/vendor/repo.or.cz/nasm/test/testdos.asm +13 -0
- data/vendor/repo.or.cz/nasm/test/testnos3.asm +973 -0
- data/vendor/repo.or.cz/nasm/test/time.asm +11 -0
- data/vendor/repo.or.cz/nasm/test/times.asm +21 -0
- data/vendor/repo.or.cz/nasm/test/timesneg.asm +3 -0
- data/vendor/repo.or.cz/nasm/test/tmap.nas +1447 -0
- data/vendor/repo.or.cz/nasm/test/uscore.asm +15 -0
- data/vendor/repo.or.cz/nasm/test/utf.asm +82 -0
- data/vendor/repo.or.cz/nasm/test/vaesenc.asm +22 -0
- data/vendor/repo.or.cz/nasm/test/vex.asm +9 -0
- data/vendor/repo.or.cz/nasm/test/vgather.asm +76 -0
- data/vendor/repo.or.cz/nasm/test/vmread.asm +26 -0
- data/vendor/repo.or.cz/nasm/test/weirdpaste.asm +29 -0
- data/vendor/repo.or.cz/nasm/test/xchg.asm +96 -0
- data/vendor/repo.or.cz/nasm/test/xcrypt.asm +24 -0
- data/vendor/repo.or.cz/nasm/test/xmm0.asm +12 -0
- data/vendor/repo.or.cz/nasm/test/zerobyte.asm +22 -0
- data/vendor/repo.or.cz/nasm/tools/cleanfile +176 -0
- data/vendor/repo.or.cz/nasm/tools/cleanpatch +258 -0
- data/vendor/repo.or.cz/nasm/tools/mkdep.pl +261 -0
- data/vendor/repo.or.cz/nasm/tools/release +105 -0
- data/vendor/repo.or.cz/nasm/tools/syncfiles.pl +137 -0
- data/vendor/repo.or.cz/nasm/tools/tag-release +58 -0
- data/vendor/repo.or.cz/nasm/version +1 -0
- data/vendor/repo.or.cz/nasm/version.pl +189 -0
- data/vendor/repo.or.cz/nasm/x86/disp8.c +131 -0
- data/vendor/repo.or.cz/nasm/x86/insns-iflags.ph +280 -0
- data/vendor/repo.or.cz/nasm/x86/insns.dat +5371 -0
- data/vendor/repo.or.cz/nasm/x86/insns.pl +1043 -0
- data/vendor/repo.or.cz/nasm/x86/regs.dat +138 -0
- data/vendor/repo.or.cz/nasm/x86/regs.pl +204 -0
- metadata +520 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.so man1/rdf2bin.1
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.so man1/rdf2bin.1
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.so man1/rdf2bin.1
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.so man1/rdf2bin.1
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
.TH RDFDUMP 1 "September 6, 1999" "Debian Project" "Debian Manual"
|
|
2
|
+
.SH NAME
|
|
3
|
+
rdfdump \- dumps an RDOFF object in human-readable form
|
|
4
|
+
.SH SYNOPSIS
|
|
5
|
+
.B rdfdump
|
|
6
|
+
[-v]
|
|
7
|
+
.RI < filename >
|
|
8
|
+
.SH DESCRIPTION
|
|
9
|
+
.B rdfdump
|
|
10
|
+
prints a list of the header records in an RDOFF object in human-readable
|
|
11
|
+
form, and optionally prints a hex dump of the contents of the segments.
|
|
12
|
+
.PP
|
|
13
|
+
.B rdfdump
|
|
14
|
+
supports both version 1 and 2 of RDOFF. It will give warnings if the RDOFF2
|
|
15
|
+
format is violated (it looks for incorrect lengths for header records, and
|
|
16
|
+
checks the overall length count at the start of the file).
|
|
17
|
+
.SH OPTIONS
|
|
18
|
+
.TP
|
|
19
|
+
-v
|
|
20
|
+
Print a hex dump of the contents of the segments.
|
|
21
|
+
.SH AUTHORS
|
|
22
|
+
Julian Hall <jules@earthcorp.com>.
|
|
23
|
+
.PP
|
|
24
|
+
This manual page was written by Matej Vela <vela@debian.org>.
|
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
/* ----------------------------------------------------------------------- *
|
|
2
|
+
*
|
|
3
|
+
* Copyright 1996-2014 The NASM Authors - All Rights Reserved
|
|
4
|
+
* See the file AUTHORS included with the NASM distribution for
|
|
5
|
+
* the specific copyright holders.
|
|
6
|
+
*
|
|
7
|
+
* Redistribution and use in source and binary forms, with or without
|
|
8
|
+
* modification, are permitted provided that the following
|
|
9
|
+
* conditions are met:
|
|
10
|
+
*
|
|
11
|
+
* * Redistributions of source code must retain the above copyright
|
|
12
|
+
* notice, this list of conditions and the following disclaimer.
|
|
13
|
+
* * Redistributions in binary form must reproduce the above
|
|
14
|
+
* copyright notice, this list of conditions and the following
|
|
15
|
+
* disclaimer in the documentation and/or other materials provided
|
|
16
|
+
* with the distribution.
|
|
17
|
+
*
|
|
18
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
|
19
|
+
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
|
20
|
+
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
21
|
+
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
22
|
+
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
23
|
+
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
24
|
+
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
25
|
+
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
26
|
+
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
27
|
+
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
28
|
+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
|
29
|
+
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
|
30
|
+
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
31
|
+
*
|
|
32
|
+
* ----------------------------------------------------------------------- */
|
|
33
|
+
|
|
34
|
+
/*
|
|
35
|
+
* rdfdump.c - dump RDOFF file header.
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
#include "compiler.h"
|
|
39
|
+
|
|
40
|
+
#include <stdio.h>
|
|
41
|
+
#include <stdlib.h>
|
|
42
|
+
#include <string.h>
|
|
43
|
+
|
|
44
|
+
#include "rdfutils.h"
|
|
45
|
+
|
|
46
|
+
#define PROGRAM_VERSION "2.3"
|
|
47
|
+
|
|
48
|
+
FILE *infile;
|
|
49
|
+
|
|
50
|
+
static void print_header(int32_t length, int rdf_version)
|
|
51
|
+
{
|
|
52
|
+
char buf[129], t, l, s, flags;
|
|
53
|
+
uint8_t reclen;
|
|
54
|
+
int32_t o, ll;
|
|
55
|
+
uint16_t rs;
|
|
56
|
+
|
|
57
|
+
while (length > 0) {
|
|
58
|
+
nasm_read(&t, 1, infile);
|
|
59
|
+
if (rdf_version >= 2) {
|
|
60
|
+
nasm_read(&reclen, 1, infile);
|
|
61
|
+
}
|
|
62
|
+
switch (t) {
|
|
63
|
+
case RDFREC_GENERIC: /* generic record */
|
|
64
|
+
printf(" generic record (length=%d)\n", (int)reclen);
|
|
65
|
+
fseek(infile, reclen, SEEK_CUR);
|
|
66
|
+
break;
|
|
67
|
+
|
|
68
|
+
case RDFREC_RELOC: /* relocation record */
|
|
69
|
+
case RDFREC_SEGRELOC: /* segment relocation */
|
|
70
|
+
nasm_read(&s, 1, infile);
|
|
71
|
+
nasm_read(&o, 4, infile);
|
|
72
|
+
nasm_read(&l, 1, infile);
|
|
73
|
+
nasm_read(&rs, 2, infile);
|
|
74
|
+
printf(" %s: location (%04x:%08"PRIx32"), length %d, "
|
|
75
|
+
"referred seg %04x\n",
|
|
76
|
+
t == 1 ? "relocation" : "seg relocation", (int)s,
|
|
77
|
+
translateint32_t(o), (int)l, translateint16_t(rs));
|
|
78
|
+
if (rdf_version >= 2 && reclen != 8)
|
|
79
|
+
printf(" warning: reclen != 8\n");
|
|
80
|
+
if (rdf_version == 1)
|
|
81
|
+
length -= 9;
|
|
82
|
+
if (rdf_version == 1 && t == 6)
|
|
83
|
+
printf
|
|
84
|
+
(" warning: seg relocation not supported in RDOFF1\n");
|
|
85
|
+
break;
|
|
86
|
+
|
|
87
|
+
case RDFREC_IMPORT: /* import record */
|
|
88
|
+
case RDFREC_FARIMPORT: /* import far symbol */
|
|
89
|
+
nasm_read(&flags, 1, infile);
|
|
90
|
+
nasm_read(&rs, 2, infile);
|
|
91
|
+
ll = 0;
|
|
92
|
+
|
|
93
|
+
if (rdf_version == 1) {
|
|
94
|
+
do {
|
|
95
|
+
nasm_read(&buf[ll], 1, infile);
|
|
96
|
+
} while (buf[ll++]);
|
|
97
|
+
} else {
|
|
98
|
+
for (; ll < reclen - 3; ll++)
|
|
99
|
+
nasm_read(&buf[ll], 1, infile);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
if (t == 7)
|
|
103
|
+
printf("far ");
|
|
104
|
+
printf((flags & SYM_IMPORT) ? " import" : " extern");
|
|
105
|
+
if (flags & SYM_FUNCTION)
|
|
106
|
+
printf(" proc");
|
|
107
|
+
if (flags & SYM_DATA)
|
|
108
|
+
printf(" data");
|
|
109
|
+
printf(": segment %04x = %s\n", translateint16_t(rs), buf);
|
|
110
|
+
if (rdf_version == 1)
|
|
111
|
+
length -= ll + 3;
|
|
112
|
+
if (rdf_version == 1 && t == 7)
|
|
113
|
+
printf
|
|
114
|
+
(" warning: far import not supported in RDOFF1\n");
|
|
115
|
+
break;
|
|
116
|
+
|
|
117
|
+
case RDFREC_GLOBAL: /* export record */
|
|
118
|
+
nasm_read(&flags, 1, infile);
|
|
119
|
+
nasm_read(&s, 1, infile);
|
|
120
|
+
nasm_read(&o, 4, infile);
|
|
121
|
+
ll = 0;
|
|
122
|
+
|
|
123
|
+
if (rdf_version == 1) {
|
|
124
|
+
do {
|
|
125
|
+
nasm_read(&buf[ll], 1, infile);
|
|
126
|
+
} while (buf[ll++]);
|
|
127
|
+
} else {
|
|
128
|
+
for (; ll < reclen - 6; ll++)
|
|
129
|
+
nasm_read(&buf[ll], 1, infile);
|
|
130
|
+
}
|
|
131
|
+
printf((flags & SYM_GLOBAL) ? " export" : " public");
|
|
132
|
+
if (flags & SYM_FUNCTION)
|
|
133
|
+
printf(" proc");
|
|
134
|
+
if (flags & SYM_DATA)
|
|
135
|
+
printf(" data");
|
|
136
|
+
printf(": (%04x:%08"PRIx32") = %s\n", (int)s, translateint32_t(o), buf);
|
|
137
|
+
if (rdf_version == 1)
|
|
138
|
+
length -= ll + 6;
|
|
139
|
+
break;
|
|
140
|
+
|
|
141
|
+
case RDFREC_DLL: /* DLL and Module records */
|
|
142
|
+
case RDFREC_MODNAME:
|
|
143
|
+
ll = 0;
|
|
144
|
+
if (rdf_version == 1) {
|
|
145
|
+
do {
|
|
146
|
+
nasm_read(&buf[ll], 1, infile);
|
|
147
|
+
} while (buf[ll++]);
|
|
148
|
+
} else {
|
|
149
|
+
for (; ll < reclen; ll++)
|
|
150
|
+
nasm_read(&buf[ll], 1, infile);
|
|
151
|
+
}
|
|
152
|
+
if (t == 4)
|
|
153
|
+
printf(" dll: %s\n", buf);
|
|
154
|
+
else
|
|
155
|
+
printf(" module: %s\n", buf);
|
|
156
|
+
if (rdf_version == 1)
|
|
157
|
+
length -= ll + 1;
|
|
158
|
+
break;
|
|
159
|
+
|
|
160
|
+
case RDFREC_BSS: /* BSS reservation */
|
|
161
|
+
nasm_read(&ll, 4, infile);
|
|
162
|
+
printf(" bss reservation: %08"PRIx32" bytes\n", translateint32_t(ll));
|
|
163
|
+
if (rdf_version == 1)
|
|
164
|
+
length -= 5;
|
|
165
|
+
if (rdf_version > 1 && reclen != 4)
|
|
166
|
+
printf(" warning: reclen != 4\n");
|
|
167
|
+
break;
|
|
168
|
+
|
|
169
|
+
case RDFREC_COMMON:{
|
|
170
|
+
uint16_t seg, align;
|
|
171
|
+
uint32_t size;
|
|
172
|
+
|
|
173
|
+
nasm_read(&seg, 2, infile);
|
|
174
|
+
nasm_read(&size, 4, infile);
|
|
175
|
+
nasm_read(&align, 2, infile);
|
|
176
|
+
for (ll = 0; ll < reclen - 8; ll++)
|
|
177
|
+
nasm_read(buf + ll, 1, infile);
|
|
178
|
+
printf(" common: segment %04x = %s, %"PRId32":%d\n",
|
|
179
|
+
translateint16_t(seg), buf, translateint32_t(size),
|
|
180
|
+
translateint16_t(align));
|
|
181
|
+
break;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
default:
|
|
185
|
+
printf(" unrecognized record (type %d", (int)t);
|
|
186
|
+
if (rdf_version > 1) {
|
|
187
|
+
printf(", length %d", (int)reclen);
|
|
188
|
+
fseek(infile, reclen, SEEK_CUR);
|
|
189
|
+
} else
|
|
190
|
+
length--;
|
|
191
|
+
printf(")\n");
|
|
192
|
+
}
|
|
193
|
+
if (rdf_version != 1)
|
|
194
|
+
length -= 2 + reclen;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
int main(int argc, char **argv)
|
|
199
|
+
{
|
|
200
|
+
char id[7];
|
|
201
|
+
int32_t l;
|
|
202
|
+
uint16_t s;
|
|
203
|
+
int verbose = 0;
|
|
204
|
+
int32_t offset;
|
|
205
|
+
int foundnullsegment = 0;
|
|
206
|
+
int version;
|
|
207
|
+
int32_t segmentcontentlength = 0;
|
|
208
|
+
int nsegments = 0;
|
|
209
|
+
int32_t headerlength = 0;
|
|
210
|
+
int32_t objectlength = 0;
|
|
211
|
+
|
|
212
|
+
printf("RDOFF dump utility, version %s\n", PROGRAM_VERSION);
|
|
213
|
+
printf("RDOFF2 revision %s\n", RDOFF2_REVISION);
|
|
214
|
+
puts("Copyright (c) 1996,99 Julian R Hall\n"
|
|
215
|
+
"Improvements and fixes (c) 2002-2004 RET & COM Research.");
|
|
216
|
+
|
|
217
|
+
if (argc < 2) {
|
|
218
|
+
fputs("Usage: rdfdump [-v] <filename>\n", stderr);
|
|
219
|
+
exit(1);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
rdoff_init();
|
|
223
|
+
|
|
224
|
+
if (!strcmp(argv[1], "-v")) {
|
|
225
|
+
verbose = 1;
|
|
226
|
+
if (argc < 3) {
|
|
227
|
+
fputs("required parameter missing\n", stderr);
|
|
228
|
+
exit(1);
|
|
229
|
+
}
|
|
230
|
+
argv++;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
infile = fopen(argv[1], "rb");
|
|
234
|
+
if (!infile) {
|
|
235
|
+
fprintf(stderr, "rdfdump: Could not open %s\n", argv[1]);
|
|
236
|
+
exit(1);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
nasm_read(id, 6, infile);
|
|
240
|
+
if (strncmp(id, "RDOFF", 5)) {
|
|
241
|
+
fputs("rdfdump: File does not contain valid RDOFF header\n",
|
|
242
|
+
stderr);
|
|
243
|
+
exit(1);
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
printf("File %s: RDOFF version %c\n\n", argv[1], id[5]);
|
|
247
|
+
if (id[5] < '1' || id[5] > '2') {
|
|
248
|
+
fprintf(stderr, "rdfdump: unknown RDOFF version '%c'\n", id[5]);
|
|
249
|
+
exit(1);
|
|
250
|
+
}
|
|
251
|
+
version = id[5] - '0';
|
|
252
|
+
|
|
253
|
+
if (version > 1) {
|
|
254
|
+
nasm_read(&l, 4, infile);
|
|
255
|
+
objectlength = translateint32_t(l);
|
|
256
|
+
printf("Object content size: %"PRId32" bytes\n", objectlength);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
nasm_read(&l, 4, infile);
|
|
260
|
+
headerlength = translateint32_t(l);
|
|
261
|
+
printf("Header (%"PRId32" bytes):\n", headerlength);
|
|
262
|
+
print_header(headerlength, version);
|
|
263
|
+
|
|
264
|
+
if (version == 1) {
|
|
265
|
+
nasm_read(&l, 4, infile);
|
|
266
|
+
l = translateint32_t(l);
|
|
267
|
+
printf("\nText segment length = %"PRId32" bytes\n", l);
|
|
268
|
+
offset = 0;
|
|
269
|
+
while (l--) {
|
|
270
|
+
nasm_read(id, 1, infile);
|
|
271
|
+
if (verbose) {
|
|
272
|
+
if (offset % 16 == 0)
|
|
273
|
+
printf("\n%08"PRIx32" ", offset);
|
|
274
|
+
printf(" %02x", (int)(uint8_t)id[0]);
|
|
275
|
+
offset++;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
if (verbose)
|
|
279
|
+
printf("\n\n");
|
|
280
|
+
|
|
281
|
+
nasm_read(&l, 4, infile);
|
|
282
|
+
l = translateint32_t(l);
|
|
283
|
+
printf("Data segment length = %"PRId32" bytes\n", l);
|
|
284
|
+
|
|
285
|
+
if (verbose) {
|
|
286
|
+
offset = 0;
|
|
287
|
+
while (l--) {
|
|
288
|
+
nasm_read(id, 1, infile);
|
|
289
|
+
if (offset % 16 == 0)
|
|
290
|
+
printf("\n%08"PRIx32" ", offset);
|
|
291
|
+
printf(" %02x", (int)(uint8_t)id[0]);
|
|
292
|
+
offset++;
|
|
293
|
+
}
|
|
294
|
+
printf("\n");
|
|
295
|
+
}
|
|
296
|
+
} else {
|
|
297
|
+
do {
|
|
298
|
+
nasm_read(&s, 2, infile);
|
|
299
|
+
s = translateint16_t(s);
|
|
300
|
+
if (!s) {
|
|
301
|
+
printf("\nNULL segment\n");
|
|
302
|
+
foundnullsegment = 1;
|
|
303
|
+
break;
|
|
304
|
+
}
|
|
305
|
+
printf("\nSegment:\n Type = %04X (%s)\n", (int)s,
|
|
306
|
+
translatesegmenttype(s));
|
|
307
|
+
nsegments++;
|
|
308
|
+
|
|
309
|
+
nasm_read(&s, 2, infile);
|
|
310
|
+
printf(" Number = %04X\n", (int)translateint16_t(s));
|
|
311
|
+
nasm_read(&s, 2, infile);
|
|
312
|
+
printf(" Resrvd = %04X\n", (int)translateint16_t(s));
|
|
313
|
+
nasm_read(&l, 4, infile);
|
|
314
|
+
l = translateint32_t(l);
|
|
315
|
+
printf(" Length = %"PRId32" bytes\n", l);
|
|
316
|
+
segmentcontentlength += l;
|
|
317
|
+
|
|
318
|
+
offset = 0;
|
|
319
|
+
while (l--) {
|
|
320
|
+
nasm_read(id, 1, infile);
|
|
321
|
+
if (verbose) {
|
|
322
|
+
if (offset % 16 == 0)
|
|
323
|
+
printf("\n%08"PRIx32" ", offset);
|
|
324
|
+
printf(" %02x", (int)(uint8_t)id[0]);
|
|
325
|
+
offset++;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
if (verbose)
|
|
329
|
+
printf("\n");
|
|
330
|
+
} while (!feof(infile));
|
|
331
|
+
if (!foundnullsegment)
|
|
332
|
+
printf("\nWarning: unexpected end of file - "
|
|
333
|
+
"NULL segment not found\n");
|
|
334
|
+
|
|
335
|
+
printf("\nTotal number of segments: %d\n", nsegments);
|
|
336
|
+
printf("Total segment content length: %"PRId32" bytes\n",
|
|
337
|
+
segmentcontentlength);
|
|
338
|
+
|
|
339
|
+
/* calculate what the total object content length should have been */
|
|
340
|
+
l = segmentcontentlength + 10 * (nsegments + 1) + headerlength + 4;
|
|
341
|
+
if (l != objectlength)
|
|
342
|
+
printf("Warning: actual object length (%"PRId32") != "
|
|
343
|
+
"stored object length (%"PRId32")\n", l, objectlength);
|
|
344
|
+
}
|
|
345
|
+
fclose(infile);
|
|
346
|
+
return 0;
|
|
347
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
.TH RDFLIB 1 "September 6, 1999" "Debian Project" "Debian Manual"
|
|
2
|
+
.SH NAME
|
|
3
|
+
rdflib \- manage a library file for use with ldrdf(1)
|
|
4
|
+
.SH SYNOPSIS
|
|
5
|
+
.B rdflib
|
|
6
|
+
.I command
|
|
7
|
+
.I arguments
|
|
8
|
+
.SH DESCRIPTION
|
|
9
|
+
.B rdflib
|
|
10
|
+
manages a library file which can be used by
|
|
11
|
+
.BR ldrdf (1).
|
|
12
|
+
It is supplied with a shell script
|
|
13
|
+
.B makelib
|
|
14
|
+
which should probably be used to create libraries.
|
|
15
|
+
.SH COMMANDS
|
|
16
|
+
.TP
|
|
17
|
+
.BI c " library-file"
|
|
18
|
+
Create (or truncate) a library.
|
|
19
|
+
.TP
|
|
20
|
+
.BI a " library-file object-file module"
|
|
21
|
+
Add the
|
|
22
|
+
.I object-file
|
|
23
|
+
to the library under the name
|
|
24
|
+
.IR module .
|
|
25
|
+
.TP
|
|
26
|
+
.BI x " library-file module object-file"
|
|
27
|
+
Extract a
|
|
28
|
+
.I module
|
|
29
|
+
from the library to the file
|
|
30
|
+
.IR object-file .
|
|
31
|
+
.TP
|
|
32
|
+
.B t " library-file"
|
|
33
|
+
Display a list of modules in the library.
|
|
34
|
+
.SH NOTES
|
|
35
|
+
A remove command will be added soon.
|
|
36
|
+
.SH AUTHORS
|
|
37
|
+
Julian Hall <jules@earthcorp.com>.
|
|
38
|
+
.PP
|
|
39
|
+
This manual page was written by Matej Vela <vela@debian.org>.
|
|
@@ -0,0 +1,434 @@
|
|
|
1
|
+
/* ----------------------------------------------------------------------- *
|
|
2
|
+
*
|
|
3
|
+
* Copyright 1996-2009 The NASM Authors - All Rights Reserved
|
|
4
|
+
* See the file AUTHORS included with the NASM distribution for
|
|
5
|
+
* the specific copyright holders.
|
|
6
|
+
*
|
|
7
|
+
* Redistribution and use in source and binary forms, with or without
|
|
8
|
+
* modification, are permitted provided that the following
|
|
9
|
+
* conditions are met:
|
|
10
|
+
*
|
|
11
|
+
* * Redistributions of source code must retain the above copyright
|
|
12
|
+
* notice, this list of conditions and the following disclaimer.
|
|
13
|
+
* * Redistributions in binary form must reproduce the above
|
|
14
|
+
* copyright notice, this list of conditions and the following
|
|
15
|
+
* disclaimer in the documentation and/or other materials provided
|
|
16
|
+
* with the distribution.
|
|
17
|
+
*
|
|
18
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
|
19
|
+
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
|
20
|
+
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
21
|
+
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
22
|
+
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
23
|
+
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
24
|
+
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
25
|
+
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
26
|
+
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
27
|
+
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
28
|
+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
|
29
|
+
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
|
30
|
+
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
31
|
+
*
|
|
32
|
+
* ----------------------------------------------------------------------- */
|
|
33
|
+
|
|
34
|
+
/* rdflib - manipulate RDOFF library files (.rdl) */
|
|
35
|
+
|
|
36
|
+
/*
|
|
37
|
+
* an rdoff library is simply a sequence of RDOFF object files, each
|
|
38
|
+
* preceded by the name of the module, an ASCII string of up to 255
|
|
39
|
+
* characters, terminated by a zero.
|
|
40
|
+
*
|
|
41
|
+
* When a library is being created, special signature block is placed
|
|
42
|
+
* in the beginning of the file. It is a string 'RDLIB' followed by a
|
|
43
|
+
* version number, then int32_t content size and a int32_t time stamp.
|
|
44
|
+
* The module name of the signature block is '.sig'.
|
|
45
|
+
*
|
|
46
|
+
*
|
|
47
|
+
* There may be an optional directory placed on the end of the file.
|
|
48
|
+
* The format of the directory will be 'RDLDD' followed by a version
|
|
49
|
+
* number, followed by the length of the directory, and then the
|
|
50
|
+
* directory, the format of which has not yet been designed.
|
|
51
|
+
* The module name of the directory must be '.dir'.
|
|
52
|
+
*
|
|
53
|
+
* All module names beginning with '.' are reserved for possible future
|
|
54
|
+
* extensions. The linker ignores all such modules, assuming they have
|
|
55
|
+
* the format of a six uint8_t type & version identifier followed by int32_t
|
|
56
|
+
* content size, followed by data.
|
|
57
|
+
*/
|
|
58
|
+
|
|
59
|
+
#include "compiler.h"
|
|
60
|
+
#include "rdfutils.h"
|
|
61
|
+
|
|
62
|
+
#include <stdio.h>
|
|
63
|
+
#include <stdlib.h>
|
|
64
|
+
#include <errno.h>
|
|
65
|
+
#include <string.h>
|
|
66
|
+
#include <time.h>
|
|
67
|
+
|
|
68
|
+
/* functions supported:
|
|
69
|
+
* create a library (no extra operands required)
|
|
70
|
+
* add a module from a library (requires filename and name to give mod.)
|
|
71
|
+
* replace a module in a library (requires given name and filename)
|
|
72
|
+
* delete a module from a library (requires given name)
|
|
73
|
+
* extract a module from the library (requires given name and filename)
|
|
74
|
+
* list modules
|
|
75
|
+
*/
|
|
76
|
+
|
|
77
|
+
const char *usage =
|
|
78
|
+
"usage:\n"
|
|
79
|
+
" rdflib x libname [extra operands]\n\n"
|
|
80
|
+
" where x is one of:\n"
|
|
81
|
+
" c - create library\n"
|
|
82
|
+
" a - add module (operands = filename module-name)\n"
|
|
83
|
+
" x - extract (module-name filename)\n"
|
|
84
|
+
" r - replace (module-name filename)\n"
|
|
85
|
+
" d - delete (module-name)\n" " t - list\n";
|
|
86
|
+
|
|
87
|
+
/* Library signature */
|
|
88
|
+
const char *rdl_signature = "RDLIB2", *sig_modname = ".sig";
|
|
89
|
+
|
|
90
|
+
char **_argv;
|
|
91
|
+
|
|
92
|
+
#define _ENDIANNESS 0 /* 0 for little, 1 for big */
|
|
93
|
+
|
|
94
|
+
static void int32_ttolocal(int32_t *l)
|
|
95
|
+
{
|
|
96
|
+
#if _ENDIANNESS
|
|
97
|
+
uint8_t t;
|
|
98
|
+
uint8_t *p = (uint8_t *)l;
|
|
99
|
+
|
|
100
|
+
t = p[0];
|
|
101
|
+
p[0] = p[3];
|
|
102
|
+
p[3] = t;
|
|
103
|
+
t = p[1];
|
|
104
|
+
p[1] = p[2];
|
|
105
|
+
p[2] = p[1];
|
|
106
|
+
#else
|
|
107
|
+
(void)l; /* placate optimizers */
|
|
108
|
+
#endif
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
static char copybytes(FILE * fp, FILE * fp2, int n)
|
|
112
|
+
{
|
|
113
|
+
int i, t = 0;
|
|
114
|
+
|
|
115
|
+
for (i = 0; i < n; i++) {
|
|
116
|
+
t = fgetc(fp);
|
|
117
|
+
if (t == EOF) {
|
|
118
|
+
fprintf(stderr, "rdflib: premature end of file in '%s'\n",
|
|
119
|
+
_argv[2]);
|
|
120
|
+
exit(1);
|
|
121
|
+
}
|
|
122
|
+
if (fp2)
|
|
123
|
+
if (fputc(t, fp2) == EOF) {
|
|
124
|
+
fprintf(stderr, "rdflib: write error\n");
|
|
125
|
+
exit(1);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return (char)t; /* return last char read */
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
static int32_t copyint32_t(FILE * fp, FILE * fp2)
|
|
132
|
+
{
|
|
133
|
+
int32_t l;
|
|
134
|
+
int i, t;
|
|
135
|
+
uint8_t *p = (uint8_t *)&l;
|
|
136
|
+
|
|
137
|
+
for (i = 0; i < 4; i++) { /* skip magic no */
|
|
138
|
+
t = fgetc(fp);
|
|
139
|
+
if (t == EOF) {
|
|
140
|
+
fprintf(stderr, "rdflib: premature end of file in '%s'\n",
|
|
141
|
+
_argv[2]);
|
|
142
|
+
exit(1);
|
|
143
|
+
}
|
|
144
|
+
if (fp2)
|
|
145
|
+
if (fputc(t, fp2) == EOF) {
|
|
146
|
+
fprintf(stderr, "rdflib: write error\n");
|
|
147
|
+
exit(1);
|
|
148
|
+
}
|
|
149
|
+
*p++ = t;
|
|
150
|
+
}
|
|
151
|
+
int32_ttolocal(&l);
|
|
152
|
+
return l;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
int main(int argc, char **argv)
|
|
156
|
+
{
|
|
157
|
+
FILE *fp, *fp2 = NULL, *fptmp;
|
|
158
|
+
char *p, buf[256], c;
|
|
159
|
+
int i;
|
|
160
|
+
int32_t l;
|
|
161
|
+
time_t t;
|
|
162
|
+
char rdbuf[10];
|
|
163
|
+
|
|
164
|
+
_argv = argv;
|
|
165
|
+
|
|
166
|
+
if (argc < 3 || !strncmp(argv[1], "-h", 2)
|
|
167
|
+
|| !strncmp(argv[1], "--h", 3)) {
|
|
168
|
+
fputs(usage, stdout);
|
|
169
|
+
exit(1);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
rdoff_init();
|
|
173
|
+
|
|
174
|
+
switch (argv[1][0]) {
|
|
175
|
+
case 'c': /* create library */
|
|
176
|
+
fp = fopen(argv[2], "wb");
|
|
177
|
+
if (!fp) {
|
|
178
|
+
fprintf(stderr, "rdflib: could not open '%s'\n", argv[2]);
|
|
179
|
+
perror("rdflib");
|
|
180
|
+
exit(1);
|
|
181
|
+
}
|
|
182
|
+
nasm_write(sig_modname, strlen(sig_modname) + 1, fp);
|
|
183
|
+
nasm_write(rdl_signature, strlen(rdl_signature), fp);
|
|
184
|
+
t = time(NULL);
|
|
185
|
+
fwriteint32_t(t, fp);
|
|
186
|
+
fclose(fp);
|
|
187
|
+
break;
|
|
188
|
+
|
|
189
|
+
case 'a': /* add module */
|
|
190
|
+
if (argc < 5) {
|
|
191
|
+
fprintf(stderr, "rdflib: required parameter missing\n");
|
|
192
|
+
exit(1);
|
|
193
|
+
}
|
|
194
|
+
fp = fopen(argv[2], "ab");
|
|
195
|
+
if (!fp) {
|
|
196
|
+
fprintf(stderr, "rdflib: could not open '%s'\n", argv[2]);
|
|
197
|
+
perror("rdflib");
|
|
198
|
+
exit(1);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
fp2 = fopen(argv[3], "rb");
|
|
202
|
+
if (!fp2) {
|
|
203
|
+
fprintf(stderr, "rdflib: could not open '%s'\n", argv[3]);
|
|
204
|
+
perror("rdflib");
|
|
205
|
+
exit(1);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
p = argv[4];
|
|
209
|
+
do {
|
|
210
|
+
if (fputc(*p, fp) == EOF) {
|
|
211
|
+
fprintf(stderr, "rdflib: write error\n");
|
|
212
|
+
exit(1);
|
|
213
|
+
}
|
|
214
|
+
} while (*p++);
|
|
215
|
+
|
|
216
|
+
while (!feof(fp2)) {
|
|
217
|
+
i = fgetc(fp2);
|
|
218
|
+
if (i == EOF) {
|
|
219
|
+
break;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
if (fputc(i, fp) == EOF) {
|
|
223
|
+
fprintf(stderr, "rdflib: write error\n");
|
|
224
|
+
exit(1);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
fclose(fp2);
|
|
228
|
+
fclose(fp);
|
|
229
|
+
break;
|
|
230
|
+
|
|
231
|
+
case 'x':
|
|
232
|
+
if (argc < 5) {
|
|
233
|
+
fprintf(stderr, "rdflib: required parameter missing\n");
|
|
234
|
+
exit(1);
|
|
235
|
+
}
|
|
236
|
+
case 't':
|
|
237
|
+
fp = fopen(argv[2], "rb");
|
|
238
|
+
if (!fp) {
|
|
239
|
+
fprintf(stderr, "rdflib: could not open '%s'\n", argv[2]);
|
|
240
|
+
perror("rdflib");
|
|
241
|
+
exit(1);
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
fp2 = NULL;
|
|
245
|
+
while (!feof(fp)) {
|
|
246
|
+
/* read name */
|
|
247
|
+
p = buf;
|
|
248
|
+
while ((*(p++) = (char)fgetc(fp)))
|
|
249
|
+
if (feof(fp))
|
|
250
|
+
break;
|
|
251
|
+
|
|
252
|
+
if (feof(fp))
|
|
253
|
+
break;
|
|
254
|
+
|
|
255
|
+
fp2 = NULL;
|
|
256
|
+
if (argv[1][0] == 'x') {
|
|
257
|
+
/* check against desired name */
|
|
258
|
+
if (!strcmp(buf, argv[3])) {
|
|
259
|
+
fp2 = fopen(argv[4], "wb");
|
|
260
|
+
if (!fp2) {
|
|
261
|
+
fprintf(stderr, "rdflib: could not open '%s'\n",
|
|
262
|
+
argv[4]);
|
|
263
|
+
perror("rdflib");
|
|
264
|
+
exit(1);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
} else
|
|
268
|
+
printf("%-40s ", buf);
|
|
269
|
+
|
|
270
|
+
/* step over the RDOFF file, extracting type information for
|
|
271
|
+
* the listing, and copying it if fp2 != NULL */
|
|
272
|
+
|
|
273
|
+
if (buf[0] == '.') {
|
|
274
|
+
|
|
275
|
+
if (argv[1][0] == 't')
|
|
276
|
+
for (i = 0; i < 6; i++)
|
|
277
|
+
printf("%c", copybytes(fp, fp2, 1));
|
|
278
|
+
else
|
|
279
|
+
copybytes(fp, fp2, 6);
|
|
280
|
+
|
|
281
|
+
l = copyint32_t(fp, fp2);
|
|
282
|
+
|
|
283
|
+
if (argv[1][0] == 't')
|
|
284
|
+
printf(" %"PRId32" bytes content\n", l);
|
|
285
|
+
|
|
286
|
+
copybytes(fp, fp2, l);
|
|
287
|
+
} else if ((c = copybytes(fp, fp2, 6)) >= '2') { /* version 2 or above */
|
|
288
|
+
l = copyint32_t(fp, fp2);
|
|
289
|
+
|
|
290
|
+
if (argv[1][0] == 't')
|
|
291
|
+
printf("RDOFF%c %"PRId32" bytes content\n", c, l);
|
|
292
|
+
copybytes(fp, fp2, l); /* entire object */
|
|
293
|
+
} else {
|
|
294
|
+
if (argv[1][0] == 't')
|
|
295
|
+
printf("RDOFF1\n");
|
|
296
|
+
/*
|
|
297
|
+
* version 1 object, so we don't have an object content
|
|
298
|
+
* length field.
|
|
299
|
+
*/
|
|
300
|
+
copybytes(fp, fp2, copyint32_t(fp, fp2)); /* header */
|
|
301
|
+
copybytes(fp, fp2, copyint32_t(fp, fp2)); /* text */
|
|
302
|
+
copybytes(fp, fp2, copyint32_t(fp, fp2)); /* data */
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
if (fp2)
|
|
306
|
+
break;
|
|
307
|
+
}
|
|
308
|
+
fclose(fp);
|
|
309
|
+
if (fp2)
|
|
310
|
+
fclose(fp2);
|
|
311
|
+
else if (argv[1][0] == 'x') {
|
|
312
|
+
fprintf(stderr, "rdflib: module '%s' not found in '%s'\n",
|
|
313
|
+
argv[3], argv[2]);
|
|
314
|
+
exit(1);
|
|
315
|
+
}
|
|
316
|
+
break;
|
|
317
|
+
|
|
318
|
+
case 'r': /* replace module */
|
|
319
|
+
argc--;
|
|
320
|
+
case 'd': /* delete module */
|
|
321
|
+
if (argc < 4) {
|
|
322
|
+
fprintf(stderr, "rdflib: required parameter missing\n");
|
|
323
|
+
exit(1);
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
fp = fopen(argv[2], "rb");
|
|
327
|
+
if (!fp) {
|
|
328
|
+
fprintf(stderr, "rdflib: could not open '%s'\n", argv[2]);
|
|
329
|
+
perror("rdflib");
|
|
330
|
+
exit(1);
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
if (argv[1][0] == 'r') {
|
|
334
|
+
fp2 = fopen(argv[4], "rb");
|
|
335
|
+
if (!fp2) {
|
|
336
|
+
fprintf(stderr, "rdflib: could not open '%s'\n", argv[4]);
|
|
337
|
+
perror("rdflib");
|
|
338
|
+
exit(1);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
fptmp = tmpfile();
|
|
343
|
+
if (!fptmp) {
|
|
344
|
+
fprintf(stderr, "rdflib: could not open temporary file\n");
|
|
345
|
+
perror("rdflib");
|
|
346
|
+
exit(1);
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
/* copy library into temporary file */
|
|
350
|
+
fseek(fp, 0, SEEK_END); /* get file length */
|
|
351
|
+
l = ftell(fp);
|
|
352
|
+
fseek(fp, 0, SEEK_SET);
|
|
353
|
+
copybytes(fp, fptmp, l);
|
|
354
|
+
rewind(fptmp);
|
|
355
|
+
if (freopen(argv[2], "wb", fp) == NULL) {
|
|
356
|
+
fprintf(stderr, "rdflib: could not reopen '%s'\n", argv[2]);
|
|
357
|
+
perror("rdflib");
|
|
358
|
+
exit(1);
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
while (!feof(fptmp)) {
|
|
362
|
+
/* read name */
|
|
363
|
+
p = buf;
|
|
364
|
+
while ((*(p++) = (char)fgetc(fptmp)))
|
|
365
|
+
if (feof(fptmp))
|
|
366
|
+
break;
|
|
367
|
+
|
|
368
|
+
if (feof(fptmp))
|
|
369
|
+
break;
|
|
370
|
+
|
|
371
|
+
/* check against desired name */
|
|
372
|
+
if (!strcmp(buf, argv[3])) {
|
|
373
|
+
if (fread(p = rdbuf, 1, sizeof(rdbuf), fptmp) < 10) {
|
|
374
|
+
nasm_fatal(0, "short read on input");
|
|
375
|
+
}
|
|
376
|
+
l = *(int32_t *)(p + 6);
|
|
377
|
+
fseek(fptmp, l, SEEK_CUR);
|
|
378
|
+
break;
|
|
379
|
+
} else {
|
|
380
|
+
nasm_write(buf, strlen(buf) + 1, fp); /* module name */
|
|
381
|
+
if ((c = copybytes(fptmp, fp, 6)) >= '2') {
|
|
382
|
+
l = copyint32_t(fptmp, fp); /* version 2 or above */
|
|
383
|
+
copybytes(fptmp, fp, l); /* entire object */
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
if (argv[1][0] == 'r') {
|
|
389
|
+
/* copy new module into library */
|
|
390
|
+
p = argv[3];
|
|
391
|
+
do {
|
|
392
|
+
if (fputc(*p, fp) == EOF) {
|
|
393
|
+
fprintf(stderr, "rdflib: write error\n");
|
|
394
|
+
exit(1);
|
|
395
|
+
}
|
|
396
|
+
} while (*p++);
|
|
397
|
+
|
|
398
|
+
while (!feof(fp2)) {
|
|
399
|
+
i = fgetc(fp2);
|
|
400
|
+
if (i == EOF) {
|
|
401
|
+
break;
|
|
402
|
+
}
|
|
403
|
+
if (fputc(i, fp) == EOF) {
|
|
404
|
+
fprintf(stderr, "rdflib: write error\n");
|
|
405
|
+
exit(1);
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
fclose(fp2);
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
/* copy rest of library if any */
|
|
412
|
+
while (!feof(fptmp)) {
|
|
413
|
+
i = fgetc(fptmp);
|
|
414
|
+
if (i == EOF) {
|
|
415
|
+
break;
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
if (fputc(i, fp) == EOF) {
|
|
419
|
+
fprintf(stderr, "rdflib: write error\n");
|
|
420
|
+
exit(1);
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
fclose(fp);
|
|
425
|
+
fclose(fptmp);
|
|
426
|
+
break;
|
|
427
|
+
|
|
428
|
+
default:
|
|
429
|
+
fprintf(stderr, "rdflib: command '%c' not recognized\n",
|
|
430
|
+
argv[1][0]);
|
|
431
|
+
exit(1);
|
|
432
|
+
}
|
|
433
|
+
return 0;
|
|
434
|
+
}
|